ETH Price: $3,927.37 (+1.14%)

Contract

0xcae8C1688C37f75fA4c5051dd25De4C5400F1F6c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve235682412025-10-13 10:37:3511 days ago1760351855IN
0xcae8C168...5400F1F6c
0 ETH0.000057841.24532841
Approve233635682025-09-14 20:00:1140 days ago1757880011IN
0xcae8C168...5400F1F6c
0 ETH0.000052291.1244085
Approve231698562025-08-18 18:52:5967 days ago1755543179IN
0xcae8C168...5400F1F6c
0 ETH0.000016170.34822435
Approve231226852025-08-12 4:49:3573 days ago1754974175IN
0xcae8C168...5400F1F6c
0 ETH0.000150093.22690042
Approve231193962025-08-11 17:47:3574 days ago1754934455IN
0xcae8C168...5400F1F6c
0 ETH0.000052681.14007608
Transfer228122372025-06-29 19:42:11117 days ago1751226131IN
0xcae8C168...5400F1F6c
0 ETH0.000024370.49137255
Approve225594982025-05-25 11:20:11152 days ago1748172011IN
0xcae8C168...5400F1F6c
0 ETH0.000045110.96996136
Approve225475232025-05-23 19:02:11154 days ago1748026931IN
0xcae8C168...5400F1F6c
0 ETH0.000167183.5991115
Approve224888372025-05-15 13:32:59162 days ago1747315979IN
0xcae8C168...5400F1F6c
0 ETH0.000413848.89743197
Approve224888372025-05-15 13:32:59162 days ago1747315979IN
0xcae8C168...5400F1F6c
0 ETH0.000413848.89743197
Approve224888372025-05-15 13:32:59162 days ago1747315979IN
0xcae8C168...5400F1F6c
0 ETH0.000413848.89743197
Approve224888372025-05-15 13:32:59162 days ago1747315979IN
0xcae8C168...5400F1F6c
0 ETH0.000413848.89743197
Approve224888372025-05-15 13:32:59162 days ago1747315979IN
0xcae8C168...5400F1F6c
0 ETH0.000413848.89743197
Approve223101382025-04-20 12:13:11187 days ago1745151191IN
0xcae8C168...5400F1F6c
0 ETH0.000020460.44
Transfer223026772025-04-19 11:13:23188 days ago1745061203IN
0xcae8C168...5400F1F6c
0 ETH0.000029250.42183932
Approve221672542025-03-31 13:39:35207 days ago1743428375IN
0xcae8C168...5400F1F6c
0 ETH0.000093852.01781543
Approve220282952025-03-12 4:07:35226 days ago1741752455IN
0xcae8C168...5400F1F6c
0 ETH0.000030140.64899729
Approve217909022025-02-06 23:59:23260 days ago1738886363IN
0xcae8C168...5400F1F6c
0 ETH0.000135912.92585594
Approve216634702025-01-20 5:00:11277 days ago1737349211IN
0xcae8C168...5400F1F6c
0 ETH0.0014054430.21623332
Approve216280122025-01-15 6:11:23282 days ago1736921483IN
0xcae8C168...5400F1F6c
0 ETH0.000184483.96640289
Approve216279242025-01-15 5:53:47282 days ago1736920427IN
0xcae8C168...5400F1F6c
0 ETH0.000140783.02689216
Approve214402412024-12-20 0:46:35309 days ago1734655595IN
0xcae8C168...5400F1F6c
0 ETH0.0006090913.11216845
Approve214228942024-12-17 14:36:23311 days ago1734446183IN
0xcae8C168...5400F1F6c
0 ETH0.0016673235.89267029
Approve214228862024-12-17 14:34:47311 days ago1734446087IN
0xcae8C168...5400F1F6c
0 ETH0.0016759536.07850076
Approve214180692024-12-16 22:27:47312 days ago1734388067IN
0xcae8C168...5400F1F6c
0 ETH0.0007153415.37955597
View all transactions

Latest 25 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer170953232023-04-21 14:21:59917 days ago1682086919
0xcae8C168...5400F1F6c
0.05383467 ETH
Transfer170953232023-04-21 14:21:59917 days ago1682086919
0xcae8C168...5400F1F6c
0.05383467 ETH
Transfer170953162023-04-21 14:20:35917 days ago1682086835
0xcae8C168...5400F1F6c
0.04562605 ETH
Transfer170953162023-04-21 14:20:35917 days ago1682086835
0xcae8C168...5400F1F6c
0.04562605 ETH
Transfer170953162023-04-21 14:20:35917 days ago1682086835
0xcae8C168...5400F1F6c
0.04392683 ETH
Transfer170953162023-04-21 14:20:35917 days ago1682086835
0xcae8C168...5400F1F6c
0.04392683 ETH
Transfer170952982023-04-21 14:16:59917 days ago1682086619
0xcae8C168...5400F1F6c
0.29158274 ETH
Transfer170952982023-04-21 14:16:59917 days ago1682086619
0xcae8C168...5400F1F6c
0.29158274 ETH
Transfer170952932023-04-21 14:15:59917 days ago1682086559
0xcae8C168...5400F1F6c
0.54724121 ETH
Transfer170952932023-04-21 14:15:59917 days ago1682086559
0xcae8C168...5400F1F6c
0.54724121 ETH
Transfer170952912023-04-21 14:15:35917 days ago1682086535
0xcae8C168...5400F1F6c
0.55587802 ETH
Transfer170952912023-04-21 14:15:35917 days ago1682086535
0xcae8C168...5400F1F6c
0.55587802 ETH
Transfer170952902023-04-21 14:15:23917 days ago1682086523
0xcae8C168...5400F1F6c
0.66314901 ETH
Transfer170952902023-04-21 14:15:23917 days ago1682086523
0xcae8C168...5400F1F6c
0.66314901 ETH
Transfer170952862023-04-21 14:14:35917 days ago1682086475
0xcae8C168...5400F1F6c
0.67710877 ETH
Transfer170952862023-04-21 14:14:35917 days ago1682086475
0xcae8C168...5400F1F6c
0.67710877 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.24155106 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.24155106 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.27257686 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.27257686 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.31017246 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.31017246 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.36194132 ETH
Transfer170952742023-04-21 14:11:59917 days ago1682086319
0xcae8C168...5400F1F6c
0.36194132 ETH
Transfer170952722023-04-21 14:11:35917 days ago1682086295
0xcae8C168...5400F1F6c
0.33526024 ETH
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20SOYJAKTOKEN

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2023-04-21
*/

// SPDX-License-Identifier: UNLICENSED

/*

https://t.me/soyjakcommunity
https://twitter.com/SoyjakCommunity

www.soyjak.wtf

*/

pragma solidity 0.8.16;

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

        return c;
    }
    function sub(uint256 a, uint256 b) 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;
    }
}

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;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
    }

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

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function renounceOwnership() external onlyOwner {
        authorizations[owner] = false;
        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 ERC20SOYJAKTOKEN is ERC20, Auth {
    using SafeMath for uint256;

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

    string public constant name = "Soyjak Coin";
    string public constant symbol = "SOYJAK";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 69420 * 10**6 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 100;

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

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

    uint256 public totalFee = 10;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 900;
    uint256 sellMultiplier = 990;
    uint256 transferMultiplier = 900;

    address marketingFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool swapEnabled = true;
    uint256 swapThreshold = totalSupply / 200;
    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 = 0x8c5e43fa6C3941F8A8B8913c7EDDD97D70bd7aA5;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = 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 getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

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

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

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient] || totalFee == 0) ? 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) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = (amount * totalFee * multiplier) / (feeDenominator * 100);

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

        return amount.sub(feeAmount);
    }

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

    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;
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETH}("");
        tmpSuccess = false;
    }

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

    function setFees(uint256 _marketingFee) external onlyOwner {
        totalFee = _marketingFee;
    }

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

    function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner {
        _maxWalletToken = (totalSupply * maxWallPercent ) / 1000;
    }

    function setMaxTxPercent(uint256 maxTXPercentage) external onlyOwner {
        _maxTxAmount = (totalSupply * maxTXPercentage ) / 1000;
    }

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

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

Contract Security Audit

Contract ABI

API
[{"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isTxLimitExempt","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":"_marketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","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"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146009600a62000524565b6200002590641029c123006200053c565b6200003191906200055e565b6002556064620000446009600a62000524565b6200005590641029c123006200053c565b6200006191906200055e565b600355600a60098181556103848083556103de600b55600c55600e805460ff60a01b1916600160a01b17905560c8916200009c919062000524565b620000ad90641029c123006200053c565b620000b991906200055e565b600f55348015620000c957600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155600e8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000150573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000176919062000581565b6001600160a01b03908116608052600e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000581565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000265919062000581565b6001600160a01b0390811660a052306000818152600560209081526040808320600e5490951683529381528382206000199055600d80546001600160a01b031916738c5e43fa6c3941f8a8b8913c7eddd97d70bd7aa517905533825260068152838220805460ff1990811660019081179092556007835285842080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805482168317905560089092528483208054831682179055928252928120805484168317905561dead90527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054909216179055620003936009600a62000524565b620003a490641029c123006200053c565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003e76009600a62000524565b620003f890641029c123006200053c565b60405190815260200160405180910390a3620005ac565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004665781600019048211156200044a576200044a6200040f565b808516156200045857918102915b93841c93908002906200042a565b509250929050565b6000826200047f575060016200051e565b816200048e575060006200051e565b8160018114620004a75760028114620004b257620004d2565b60019150506200051e565b60ff841115620004c657620004c66200040f565b50506001821b6200051e565b5060208310610133831016604e8410600b8410161715620004f7575081810a6200051e565b62000503838362000425565b80600019048211156200051a576200051a6200040f565b0290505b92915050565b60006200053560ff8416836200046e565b9392505050565b60008160001904831182151516156200055957620005596200040f565b500290565b6000826200057c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059457600080fd5b81516001600160a01b03811681146200053557600080fd5b60805160a0516119cd620005ee6000396000818161055a01528181610e4b015281816111df015281816113e7015261141b015260006112a901526119cd6000f3fe6080604052600436106101f25760003560e01c806377b54bad1161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e1461060c578063df20fd4914610652578063f0b37c0414610672578063f887ea4014610692578063fe9fbb80146106b257600080fd5b8063a9059cbb1461057c578063b6a5d7de1461059c578063c867d60b146105bc578063d543dbeb146105ec57600080fd5b8063893d20e8116100dc578063893d20e8146104b45780638b42507f146104e657806395d89b4114610516578063a8aa1b311461054857600080fd5b806377b54bad1461044857806378109e54146104685780637d1db4a51461047e57806382bf293c1461049457600080fd5b80632f54bf6e11610185578063571ac8b011610154578063571ac8b0146103c65780636ce46bc3146103e657806370a0823114610406578063715018a61461043357600080fd5b80632f54bf6e14610320578063313ce5671461034f5780633d18678e146103765780633f4218e01461039657600080fd5b80631da1db5e116101c15780631da1db5e146102b35780631df4ccfc146102d557806323b872dd146102eb5780632b112e491461030b57600080fd5b806306fdde03146101fe578063095ea7b31461024b578063180b0d7e1461027b57806318160ddd1461029e57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b506102356040518060400160405280600b81526020016a29b7bcb530b59021b7b4b760a91b81525081565b60405161024291906115b8565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611622565b6106eb565b6040519015158152602001610242565b34801561028757600080fd5b50610290606481565b604051908152602001610242565b3480156102aa57600080fd5b50610290610758565b3480156102bf57600080fd5b506102d36102ce36600461164c565b610776565b005b3480156102e157600080fd5b5061029060095481565b3480156102f757600080fd5b5061026b610306366004611665565b6107f8565b34801561031757600080fd5b506102906108ba565b34801561032c57600080fd5b5061026b61033b3660046116a1565b6000546001600160a01b0391821691161490565b34801561035b57600080fd5b50610364600981565b60405160ff9091168152602001610242565b34801561038257600080fd5b506102d361039136600461164c565b610942565b3480156103a257600080fd5b5061026b6103b13660046116a1565b60066020526000908152604090205460ff1681565b3480156103d257600080fd5b5061026b6103e13660046116a1565b610971565b3480156103f257600080fd5b506102d36104013660046116bc565b61097f565b34801561041257600080fd5b506102906104213660046116a1565b60046020526000908152604090205481565b34801561043f57600080fd5b506102d36109dd565b34801561045457600080fd5b5061026b610463366004611622565b610a37565b34801561047457600080fd5b5061029060035481565b34801561048a57600080fd5b5061029060025481565b3480156104a057600080fd5b506102d36104af36600461164c565b610b46565b3480156104c057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610242565b3480156104f257600080fd5b5061026b6105013660046116a1565b60076020526000908152604090205460ff1681565b34801561052257600080fd5b5061023560405180604001604052806006815260200165534f594a414b60d01b81525081565b34801561055457600080fd5b506104ce7f000000000000000000000000000000000000000000000000000000000000000081565b34801561058857600080fd5b5061026b610597366004611622565b610ba9565b3480156105a857600080fd5b506102d36105b73660046116a1565b610bb6565b3480156105c857600080fd5b5061026b6105d73660046116a1565b60086020526000908152604090205460ff1681565b3480156105f857600080fd5b506102d361060736600461164c565b610c07565b34801561061857600080fd5b506102906106273660046116e8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065e57600080fd5b506102d361066d36600461172c565b610c6a565b34801561067e57600080fd5b506102d361068d3660046116a1565b610cd8565b34801561069e57600080fd5b50600e546104ce906001600160a01b031681565b3480156106be57600080fd5b5061026b6106cd3660046116a1565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107469086815260200190565b60405180910390a35060015b92915050565b6107646009600a611844565b61077390641029c12300611853565b81565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016107a090611872565b60405180910390fd5b47600060646107b88484611853565b6107c29190611892565b604051909150339082156108fc029083906000818181858888f193505050501580156107f2573d6000803e3d6000fd5b50505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146108a5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610880918490610d81565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6108b0848484610dbb565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd5490919061091a6009600a611844565b61092990641029c12300611853565b61093391906118b4565b61093d91906118b4565b905090565b6000546001600160a01b0316331461096c5760405162461bcd60e51b81526004016107a090611872565b600955565b6000610752826000196106eb565b3360009081526001602052604090205460ff166109cc5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016107a0565b600b91909155600a91909155600c55565b6000546001600160a01b03163314610a075760405162461bcd60e51b81526004016107a090611872565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610a625760405162461bcd60e51b81526004016107a090611872565b81600003610ad5576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad291906118c7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b391906118e0565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016107a090611872565b6103e881610b806009600a611844565b610b8f90641029c12300611853565b610b999190611853565b610ba39190611892565b60035550565b60006108b3338484610dbb565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016107a090611872565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610c315760405162461bcd60e51b81526004016107a090611872565b6103e881610c416009600a611844565b610c5090641029c12300611853565b610c5a9190611853565b610c649190611892565b60025550565b6000546001600160a01b03163314610c945760405162461bcd60e51b81526004016107a090611872565b600e805460ff60a01b1916600160a01b8415150217905580610cb86009600a611844565b610cc790641029c12300611853565b610cd19190611892565b600f555050565b6000546001600160a01b03163314610d025760405162461bcd60e51b81526004016107a090611872565b6000546001600160a01b0390811690821603610d605760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016107a0565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60008184841115610da55760405162461bcd60e51b81526004016107a091906115b8565b506000610db284866118b4565b95945050505050565b60105460009060ff1615610ddb57610dd48484846110ec565b90506108b3565b6001600160a01b03841660009081526001602052604090205460ff16158015610e1d57506001600160a01b03841660009081526008602052604090205460ff16155b8015610e4257506001600160a01b03831660009081526008602052604090205460ff16155b8015610e8057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610efa576003546001600160a01b038416600090815260046020526040902054610eac9084906118fd565b1115610efa5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107a0565b60025482111580610f2357506001600160a01b03841660009081526007602052604090205460ff165b80610f4657506001600160a01b03831660009081526007602052604090205460ff165b610f8a5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016107a0565b610f926111d2565b15610f9f57610f9f611245565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260049091529190912054610ff1918490610d81565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061103e57506001600160a01b03841660009081526006602052604090205460ff165b806110495750600954155b61105d576110588584866113bf565b61105f565b825b6001600160a01b0385166000908152600460205260409020549091506110859082611517565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461113d918490610d81565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461116c9083611517565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c09086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611210575060105460ff16155b80156112255750600e54600160a01b900460ff165b801561093d575050600f5430600090815260046020526040902054101590565b6010805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061128757611287611910565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106112db576112db611910565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916113259190600090869030904290600401611926565b600060405180830381600087803b15801561133f57600080fd5b505af1158015611353573d6000803e3d6000fd5b5050600d54604051479350600092506001600160a01b039091169083908381818185875af1925050503d80600081146113a8576040519150601f19603f3d011682016040523d82523d6000602084013e6113ad565b606091505b50506010805460ff1916905550505050565b60008215806113ce5750600954155b156113da5750816108b3565b600c546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036114195750600b54611457565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036114575750600a545b6000611464606480611853565b82600954876114739190611853565b61147d9190611853565b6114879190611892565b9050801561150357306000908152600460205260409020546114a99082611517565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114fa9085815260200190565b60405180910390a35b61150d8582611576565b9695505050505050565b60008061152483856118fd565b9050838110156108b35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a0565b60006108b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d81565b600060208083528351808285015260005b818110156115e5578581018301518582016040015282016115c9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461161d57600080fd5b919050565b6000806040838503121561163557600080fd5b61163e83611606565b946020939093013593505050565b60006020828403121561165e57600080fd5b5035919050565b60008060006060848603121561167a57600080fd5b61168384611606565b925061169160208501611606565b9150604084013590509250925092565b6000602082840312156116b357600080fd5b6108b382611606565b6000806000606084860312156116d157600080fd5b505081359360208301359350604090920135919050565b600080604083850312156116fb57600080fd5b61170483611606565b915061171260208401611606565b90509250929050565b801515811461172957600080fd5b50565b6000806040838503121561173f57600080fd5b823561163e8161171b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561179b5781600019048211156117815761178161174a565b8085161561178e57918102915b93841c9390800290611765565b509250929050565b6000826117b257506001610752565b816117bf57506000610752565b81600181146117d557600281146117df576117fb565b6001915050610752565b60ff8411156117f0576117f061174a565b50506001821b610752565b5060208310610133831016604e8410600b841016171561181e575081810a610752565b6118288383611760565b806000190482111561183c5761183c61174a565b029392505050565b60006108b360ff8416836117a3565b600081600019048311821515161561186d5761186d61174a565b500290565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000826118af57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107525761075261174a565b6000602082840312156118d957600080fd5b5051919050565b6000602082840312156118f257600080fd5b81516108b38161171b565b808201808211156107525761075261174a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119765784516001600160a01b031683529383019391830191600101611951565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202b7ee76dc842e8e7b34f82f4ee4c8a82e5624a18e4e5f810275cb31121486fff64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806377b54bad1161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e1461060c578063df20fd4914610652578063f0b37c0414610672578063f887ea4014610692578063fe9fbb80146106b257600080fd5b8063a9059cbb1461057c578063b6a5d7de1461059c578063c867d60b146105bc578063d543dbeb146105ec57600080fd5b8063893d20e8116100dc578063893d20e8146104b45780638b42507f146104e657806395d89b4114610516578063a8aa1b311461054857600080fd5b806377b54bad1461044857806378109e54146104685780637d1db4a51461047e57806382bf293c1461049457600080fd5b80632f54bf6e11610185578063571ac8b011610154578063571ac8b0146103c65780636ce46bc3146103e657806370a0823114610406578063715018a61461043357600080fd5b80632f54bf6e14610320578063313ce5671461034f5780633d18678e146103765780633f4218e01461039657600080fd5b80631da1db5e116101c15780631da1db5e146102b35780631df4ccfc146102d557806323b872dd146102eb5780632b112e491461030b57600080fd5b806306fdde03146101fe578063095ea7b31461024b578063180b0d7e1461027b57806318160ddd1461029e57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b506102356040518060400160405280600b81526020016a29b7bcb530b59021b7b4b760a91b81525081565b60405161024291906115b8565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611622565b6106eb565b6040519015158152602001610242565b34801561028757600080fd5b50610290606481565b604051908152602001610242565b3480156102aa57600080fd5b50610290610758565b3480156102bf57600080fd5b506102d36102ce36600461164c565b610776565b005b3480156102e157600080fd5b5061029060095481565b3480156102f757600080fd5b5061026b610306366004611665565b6107f8565b34801561031757600080fd5b506102906108ba565b34801561032c57600080fd5b5061026b61033b3660046116a1565b6000546001600160a01b0391821691161490565b34801561035b57600080fd5b50610364600981565b60405160ff9091168152602001610242565b34801561038257600080fd5b506102d361039136600461164c565b610942565b3480156103a257600080fd5b5061026b6103b13660046116a1565b60066020526000908152604090205460ff1681565b3480156103d257600080fd5b5061026b6103e13660046116a1565b610971565b3480156103f257600080fd5b506102d36104013660046116bc565b61097f565b34801561041257600080fd5b506102906104213660046116a1565b60046020526000908152604090205481565b34801561043f57600080fd5b506102d36109dd565b34801561045457600080fd5b5061026b610463366004611622565b610a37565b34801561047457600080fd5b5061029060035481565b34801561048a57600080fd5b5061029060025481565b3480156104a057600080fd5b506102d36104af36600461164c565b610b46565b3480156104c057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610242565b3480156104f257600080fd5b5061026b6105013660046116a1565b60076020526000908152604090205460ff1681565b34801561052257600080fd5b5061023560405180604001604052806006815260200165534f594a414b60d01b81525081565b34801561055457600080fd5b506104ce7f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d281565b34801561058857600080fd5b5061026b610597366004611622565b610ba9565b3480156105a857600080fd5b506102d36105b73660046116a1565b610bb6565b3480156105c857600080fd5b5061026b6105d73660046116a1565b60086020526000908152604090205460ff1681565b3480156105f857600080fd5b506102d361060736600461164c565b610c07565b34801561061857600080fd5b506102906106273660046116e8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065e57600080fd5b506102d361066d36600461172c565b610c6a565b34801561067e57600080fd5b506102d361068d3660046116a1565b610cd8565b34801561069e57600080fd5b50600e546104ce906001600160a01b031681565b3480156106be57600080fd5b5061026b6106cd3660046116a1565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107469086815260200190565b60405180910390a35060015b92915050565b6107646009600a611844565b61077390641029c12300611853565b81565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016107a090611872565b60405180910390fd5b47600060646107b88484611853565b6107c29190611892565b604051909150339082156108fc029083906000818181858888f193505050501580156107f2573d6000803e3d6000fd5b50505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146108a5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610880918490610d81565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6108b0848484610dbb565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd5490919061091a6009600a611844565b61092990641029c12300611853565b61093391906118b4565b61093d91906118b4565b905090565b6000546001600160a01b0316331461096c5760405162461bcd60e51b81526004016107a090611872565b600955565b6000610752826000196106eb565b3360009081526001602052604090205460ff166109cc5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016107a0565b600b91909155600a91909155600c55565b6000546001600160a01b03163314610a075760405162461bcd60e51b81526004016107a090611872565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610a625760405162461bcd60e51b81526004016107a090611872565b81600003610ad5576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad291906118c7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b391906118e0565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016107a090611872565b6103e881610b806009600a611844565b610b8f90641029c12300611853565b610b999190611853565b610ba39190611892565b60035550565b60006108b3338484610dbb565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016107a090611872565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610c315760405162461bcd60e51b81526004016107a090611872565b6103e881610c416009600a611844565b610c5090641029c12300611853565b610c5a9190611853565b610c649190611892565b60025550565b6000546001600160a01b03163314610c945760405162461bcd60e51b81526004016107a090611872565b600e805460ff60a01b1916600160a01b8415150217905580610cb86009600a611844565b610cc790641029c12300611853565b610cd19190611892565b600f555050565b6000546001600160a01b03163314610d025760405162461bcd60e51b81526004016107a090611872565b6000546001600160a01b0390811690821603610d605760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016107a0565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60008184841115610da55760405162461bcd60e51b81526004016107a091906115b8565b506000610db284866118b4565b95945050505050565b60105460009060ff1615610ddb57610dd48484846110ec565b90506108b3565b6001600160a01b03841660009081526001602052604090205460ff16158015610e1d57506001600160a01b03841660009081526008602052604090205460ff16155b8015610e4257506001600160a01b03831660009081526008602052604090205460ff16155b8015610e8057507f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d26001600160a01b0316836001600160a01b031614155b15610efa576003546001600160a01b038416600090815260046020526040902054610eac9084906118fd565b1115610efa5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107a0565b60025482111580610f2357506001600160a01b03841660009081526007602052604090205460ff165b80610f4657506001600160a01b03831660009081526007602052604090205460ff165b610f8a5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016107a0565b610f926111d2565b15610f9f57610f9f611245565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260049091529190912054610ff1918490610d81565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061103e57506001600160a01b03841660009081526006602052604090205460ff165b806110495750600954155b61105d576110588584866113bf565b61105f565b825b6001600160a01b0385166000908152600460205260409020549091506110859082611517565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461113d918490610d81565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461116c9083611517565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c09086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d21614801590611210575060105460ff16155b80156112255750600e54600160a01b900460ff165b801561093d575050600f5430600090815260046020526040902054101590565b6010805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061128757611287611910565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106112db576112db611910565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916113259190600090869030904290600401611926565b600060405180830381600087803b15801561133f57600080fd5b505af1158015611353573d6000803e3d6000fd5b5050600d54604051479350600092506001600160a01b039091169083908381818185875af1925050503d80600081146113a8576040519150601f19603f3d011682016040523d82523d6000602084013e6113ad565b606091505b50506010805460ff1916905550505050565b60008215806113ce5750600954155b156113da5750816108b3565b600c546001600160a01b037f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d28116908416036114195750600b54611457565b7f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d26001600160a01b0316856001600160a01b0316036114575750600a545b6000611464606480611853565b82600954876114739190611853565b61147d9190611853565b6114879190611892565b9050801561150357306000908152600460205260409020546114a99082611517565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114fa9085815260200190565b60405180910390a35b61150d8582611576565b9695505050505050565b60008061152483856118fd565b9050838110156108b35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a0565b60006108b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d81565b600060208083528351808285015260005b818110156115e5578581018301518582016040015282016115c9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461161d57600080fd5b919050565b6000806040838503121561163557600080fd5b61163e83611606565b946020939093013593505050565b60006020828403121561165e57600080fd5b5035919050565b60008060006060848603121561167a57600080fd5b61168384611606565b925061169160208501611606565b9150604084013590509250925092565b6000602082840312156116b357600080fd5b6108b382611606565b6000806000606084860312156116d157600080fd5b505081359360208301359350604090920135919050565b600080604083850312156116fb57600080fd5b61170483611606565b915061171260208401611606565b90509250929050565b801515811461172957600080fd5b50565b6000806040838503121561173f57600080fd5b823561163e8161171b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561179b5781600019048211156117815761178161174a565b8085161561178e57918102915b93841c9390800290611765565b509250929050565b6000826117b257506001610752565b816117bf57506000610752565b81600181146117d557600281146117df576117fb565b6001915050610752565b60ff8411156117f0576117f061174a565b50506001821b610752565b5060208310610133831016604e8410600b841016171561181e575081810a610752565b6118288383611760565b806000190482111561183c5761183c61174a565b029392505050565b60006108b360ff8416836117a3565b600081600019048311821515161561186d5761186d61174a565b500290565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000826118af57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107525761075261174a565b6000602082840312156118d957600080fd5b5051919050565b6000602082840312156118f257600080fd5b81516108b38161171b565b808201808211156107525761075261174a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119765784516001600160a01b031683529383019391830191600101611951565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202b7ee76dc842e8e7b34f82f4ee4c8a82e5624a18e4e5f810275cb31121486fff64736f6c63430008100033

Deployed Bytecode Sourcemap

2913:7633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3173:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3173:43:0;;;;;;;;;;;;:::i;:::-;;;;;;;;5474:216;;;;;;;;;;-1:-1:-1;5474:216:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;5474:216:0;1004:187:1;3825:44:0;;;;;;;;;;;;3866:3;3825:44;;;;;1342:25:1;;;1330:2;1315:18;3825:44:0;1196:177:1;3313:66:0;;;;;;;;;;;;;:::i;9992:259::-;;;;;;;;;;-1:-1:-1;9992:259:0;;;;;:::i;:::-;;:::i;:::-;;3790:28;;;;;;;;;;;;;;;;5992:370;;;;;;;;;;-1:-1:-1;5992:370:0;;;;;:::i;:::-;;:::i;5329:137::-;;;;;;;;;;;;;:::i;2080:103::-;;;;;;;;;;-1:-1:-1;2080:103:0;;;;;:::i;:::-;2135:4;2170:5;-1:-1:-1;;;;;2159:16:0;;;2170:5;;2159:16;;2080:103;3270:34;;;;;;;;;;;;3303:1;3270:34;;;;;2259:4:1;2247:17;;;2229:36;;2217:2;2202:18;3270:34:0;2087:184:1;9390:102:0;;;;;;;;;;-1:-1:-1;9390:102:0;;;;;:::i;:::-;;:::i;3623:44::-;;;;;;;;;;-1:-1:-1;3623:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5698:122;;;;;;;;;;-1:-1:-1;5698:122:0;;;;;:::i;:::-;;:::i;9183:199::-;;;;;;;;;;-1:-1:-1;9183:199:0;;;;;:::i;:::-;;:::i;3501:45::-;;;;;;;;;;-1:-1:-1;3501:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2306:125;;;;;;;;;;;;;:::i;10259:284::-;;;;;;;;;;-1:-1:-1;10259:284:0;;;;;:::i;:::-;;:::i;3442:50::-;;;;;;;;;;;;;;;;3388:47;;;;;;;;;;;;;;;;9687:147;;;;;;;;;;-1:-1:-1;9687:147:0;;;;;:::i;:::-;;:::i;5106:78::-;;;;;;;;;;-1:-1:-1;5158:7:0;5176:5;-1:-1:-1;;;;;5176:5:0;5106:78;;;-1:-1:-1;;;;;2761:32:1;;;2743:51;;2731:2;2716:18;5106:78:0;2597:203:1;3674:48:0;;;;;;;;;;-1:-1:-1;3674:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3223:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3223:40:0;;;;;4060:29;;;;;;;;;;;;;;;5828:156;;;;;;;;;;-1:-1:-1;5828:156:0;;;;;:::i;:::-;;:::i;1809:94::-;;;;;;;;;;-1:-1:-1;1809:94:0;;;;;:::i;:::-;;:::i;3729:52::-;;;;;;;;;;-1:-1:-1;3729:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9842:142;;;;;;;;;;-1:-1:-1;9842:142:0;;;;;:::i;:::-;;:::i;5190:133::-;;;;;;;;;;-1:-1:-1;5190:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5292:19:0;;;5274:7;5292:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5190:133;9500:179;;;;;;;;;;-1:-1:-1;9500:179:0;;;;;:::i;:::-;;:::i;1911:161::-;;;;;;;;;;-1:-1:-1;1911:161:0;;;;;:::i;:::-;;:::i;4029:24::-;;;;;;;;;;-1:-1:-1;4029:24:0;;;;-1:-1:-1;;;;;4029:24:0;;;2191:107;;;;;;;;;;-1:-1:-1;2191:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;2271:19:0;2247:4;2271:19;;;:14;:19;;;;;;;;;2191:107;5474:216;5578:10;5549:4;5566:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5566:32:0;;;;;;;;;;:41;;;5623:37;5549:4;;5566:32;;5623:37;;;;5601:6;1342:25:1;;1330:2;1315:18;;1196:177;5623:37:0;;;;;;;;-1:-1:-1;5678:4:0;5474:216;;;;;:::o;3313:66::-;3367:12;3303:1;3367:2;:12;:::i;:::-;3351:28;;:13;:28;:::i;:::-;3313:66;:::o;9992:259::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;;;;;;;;;10095:21:::1;10075:17;10186:3;10153:28;10165:16:::0;10095:21;10153:28:::1;:::i;:::-;10151:38;;;;:::i;:::-;10200:43;::::0;10127:62;;-1:-1:-1;10208:10:0::1;::::0;10200:43;::::1;;;::::0;10127:62;;10200:43:::1;::::0;;;10127:62;10208:10;10200:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10064:187;;9992:259:::0;:::o;5992:370::-;-1:-1:-1;;;;;6112:19:0;;6092:4;6112:19;;;:11;:19;;;;;;;;6132:10;6112:31;;;;;;;;-1:-1:-1;;6112:52:0;6109:186;;6214:69;;;;;;;;;;;-1:-1:-1;;;6214:69:0;;;;;;;;-1:-1:-1;;;;;6214:19:0;;-1:-1:-1;6214:19:0;;;:11;:19;;;;;6234:10;6214:31;;;;;;;;;;:69;;6250:6;;6214:35;:69::i;:::-;-1:-1:-1;;;;;6180:19:0;;;;;;:11;:19;;;;;;;;6200:10;6180:31;;;;;;;:103;6109:186;6314:40;6328:6;6336:9;6347:6;6314:13;:40::i;:::-;6307:47;;5992:370;;;;;;:::o;5329:137::-;5442:9;:15;;;;3049:42;5382:7;5424:15;;;;;5382:7;;5442:15;3367:12;3303:1;3367:2;:12;:::i;:::-;3351:28;;:13;:28;:::i;:::-;5410:29;;;;:::i;:::-;:47;;;;:::i;:::-;5402:56;;5329:137;:::o;9390:102::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9460:8:::1;:24:::0;9390:102::o;5698:122::-;5753:4;5777:35;5785:7;-1:-1:-1;;5777:7:0;:35::i;9183:199::-;1763:10;2247:4;2271:19;;;:14;:19;;;;;;;;1742:48;;;;-1:-1:-1;;;1742:48:0;;6312:2:1;1742:48:0;;;6294:21:1;6351:2;6331:18;;;6324:30;-1:-1:-1;;;6370:18:1;;;6363:41;6421:18;;1742:48:0;6110:335:1;1742:48:0;9283:14:::1;:22:::0;;;;9316:13:::1;:20:::0;;;;9347:18:::1;:27:::0;9183:199::o;2306:125::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;2389:5:::1;2380::::0;;-1:-1:-1;;;;;2380:5:0::1;2365:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;2365:29:0::1;::::0;;2405:18;;-1:-1:-1;;;;;;2405:18:0::1;::::0;;2306:125::o;10259:284::-;10350:12;2170:5;;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;10378:6:::1;10388:1;10378:11:::0;10375:95:::1;;10414:44;::::0;-1:-1:-1;;;10414:44:0;;10452:4:::1;10414:44;::::0;::::1;2743:51:1::0;-1:-1:-1;;;;;10414:29:0;::::1;::::0;::::1;::::0;2716:18:1;;10414:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10405:53;;10375:95;10487:48;::::0;-1:-1:-1;;;10487:48:0;;10516:10:::1;10487:48;::::0;::::1;6813:51:1::0;6880:18;;;6873:34;;;-1:-1:-1;;;;;10487:28:0;::::1;::::0;::::1;::::0;6786:18:1;;10487:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9687:147::-:0;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9822:4:::1;9803:14:::0;3367:12:::1;3303:1;3367:2;:12;:::i;:::-;3351:28;::::0;:13:::1;:28;:::i;:::-;9789;;;;:::i;:::-;9788:38;;;;:::i;:::-;9770:15;:56:::0;-1:-1:-1;9687:147:0:o;5828:156::-;5908:4;5932:44;5946:10;5958:9;5969:6;5932:13;:44::i;1809:94::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1869:19:0::1;;::::0;;;1891:4:::1;1869:19;::::0;;;;;;;:26;;-1:-1:-1;;1869:26:0::1;::::0;;::::1;::::0;;1809:94::o;9842:142::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9972:4:::1;9952:15:::0;3367:12:::1;3303:1;3367:2;:12;:::i;:::-;3351:28;::::0;:13:::1;:28;:::i;:::-;9938:29;;;;:::i;:::-;9937:39;;;;:::i;:::-;9922:12;:54:::0;-1:-1:-1;9842:142:0:o;9500:179::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9596:11:::1;:22:::0;;-1:-1:-1;;;;9596:22:0::1;-1:-1:-1::0;;;9596:22:0;::::1;;;;::::0;;9659:12;3367::::1;3303:1;3367:2;:12;:::i;:::-;3351:28;::::0;:13:::1;:28;:::i;:::-;9645:26;;;;:::i;:::-;9629:13;:42:::0;-1:-1:-1;;9500:179:0:o;1911:161::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;1990:5:::1;::::0;-1:-1:-1;;;;;1990:5:0;;::::1;1983:12:::0;;::::1;::::0;1975:51:::1;;;::::0;-1:-1:-1;;;1975:51:0;;7370:2:1;1975:51:0::1;::::0;::::1;7352:21:1::0;7409:2;7389:18;;;7382:30;7448:28;7428:18;;;7421:56;7494:18;;1975:51:0::1;7168:350:1::0;1975:51:0::1;-1:-1:-1::0;;;;;2037:19:0::1;2059:5;2037:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2037:27:0::1;::::0;;1911:161::o;521:192::-;607:7;643:12;635:6;;;;627:29;;;;-1:-1:-1;;;627:29:0;;;;;;;;:::i;:::-;-1:-1:-1;667:9:0;679:5;683:1;679;:5;:::i;:::-;667:17;521:192;-1:-1:-1;;;;;521:192:0:o;6370:993::-;6482:6;;6462:4;;6482:6;;6479:63;;;6498:41;6513:6;6521:9;6532:6;6498:14;:41::i;:::-;6491:48;;;;6479:63;-1:-1:-1;;;;;6559:22:0;;;;;;:14;:22;;;;;;;;6558:23;:55;;;;-1:-1:-1;;;;;;6586:27:0;;;;;;:19;:27;;;;;;;;6585:28;6558:55;:90;;;;-1:-1:-1;;;;;;6618:30:0;;;;;;:19;:30;;;;;;;;6617:31;6558:90;:111;;;;;6665:4;-1:-1:-1;;;;;6652:17:0;:9;-1:-1:-1;;;;;6652:17:0;;;6558:111;6554:230;;;6729:15;;-1:-1:-1;;;;;6695:20:0;;;;;;:9;:20;;;;;;:29;;6718:6;;6695:29;:::i;:::-;6694:50;;6686:86;;;;-1:-1:-1;;;6686:86:0;;7855:2:1;6686:86:0;;;7837:21:1;7894:2;7874:18;;;7867:30;7933:26;7913:18;;;7906:54;7977:18;;6686:86:0;7653:348:1;6686:86:0;6819:12;;6809:6;:22;;6808:51;;;-1:-1:-1;;;;;;6836:23:0;;;;;;:15;:23;;;;;;;;6808:51;:81;;;-1:-1:-1;;;;;;6863:26:0;;;;;;:15;:26;;;;;;;;6808:81;6800:115;;;;-1:-1:-1;;;6800:115:0;;8208:2:1;6800:115:0;;;8190:21:1;8247:2;8227:18;;;8220:30;-1:-1:-1;;;8266:18:1;;;8259:51;8327:18;;6800:115:0;8006:345:1;6800:115:0;6931:16;:14;:16::i;:::-;6928:35;;;6950:10;:8;:10::i;:::-;6995:53;;;;;;;;;;;-1:-1:-1;;;6995:53:0;;;;;;;;-1:-1:-1;;;;;6995:17:0;;-1:-1:-1;6995:17:0;;;:9;:17;;;;;;;;:53;;7017:6;;6995:21;:53::i;:::-;-1:-1:-1;;;;;6975:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7087:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7110:22:0;;;;;;:11;:22;;;;;;;;7087:45;:62;;;-1:-1:-1;7136:8:0;;:13;7087:62;7086:110;;7162:34;7170:6;7178;7186:9;7162:7;:34::i;:::-;7086:110;;;7153:6;7086:110;-1:-1:-1;;;;;7232:20:0;;;;;;:9;:20;;;;;;7061:135;;-1:-1:-1;7232:40:0;;7061:135;7232:24;:40::i;:::-;-1:-1:-1;;;;;7209:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7290:43;;;;;;;;;;7318:14;1342:25:1;;1330:2;1315:18;;1196:177;7290:43:0;;;;;;;;-1:-1:-1;7351:4:0;;6370:993;-1:-1:-1;;;;6370:993:0:o;7375:330::-;7505:53;;;;;;;;;;;-1:-1:-1;;;7505:53:0;;;;;;;;-1:-1:-1;;;;;7505:17:0;;7468:4;7505:17;;;:9;:17;;;;;;;:53;;7527:6;;7505:21;:53::i;:::-;-1:-1:-1;;;;;7485:17:0;;;;;;;:9;:17;;;;;;:73;;;;7592:20;;;;;;;:32;;7617:6;7592:24;:32::i;:::-;-1:-1:-1;;;;;7569:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7640:35;;;;;;;;;;7668:6;1342:25:1;;1330:2;1315:18;;1196:177;7640:35:0;;;;;;;;-1:-1:-1;7693:4:0;7375:330;;;;;:::o;8439:197::-;8488:4;8512:10;-1:-1:-1;;;;;8526:4:0;8512:18;;;;;:38;;-1:-1:-1;8544:6:0;;;;8543:7;8512:38;:62;;;;-1:-1:-1;8563:11:0;;-1:-1:-1;;;8563:11:0;;;;8512:62;:116;;;;-1:-1:-1;;8615:13:0;;8605:4;8587:24;;;;:9;:24;;;;;;:41;;;8439:197::o;8644:531::-;4216:6;:13;;-1:-1:-1;;4216:13:0;4225:4;4216:13;;;8719:16:::1;::::0;;8733:1:::1;8719:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8719:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8719:16:0::1;8695:40;;8764:4;8746;8751:1;8746:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8746:23:0::1;;;-1:-1:-1::0;;;;;8746:23:0::1;;;::::0;::::1;8790:4;8780;8785:1;8780:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8780:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;8807:6:::1;::::0;8879:13:::1;::::0;8807:189:::1;::::0;-1:-1:-1;;;8807:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;8879:13;8807:6:::1;::::0;8923:4;;8950::::1;::::0;8970:15:::1;::::0;8807:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9090:20:0::1;::::0;9082:56:::1;::::0;9029:21:::1;::::0;-1:-1:-1;9009:17:0::1;::::0;-1:-1:-1;;;;;;9090:20:0;;::::1;::::0;9029:21;;9009:17;9082:56;9009:17;9082:56;9029:21;9090:20;9082:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4234:6:0;:14;;-1:-1:-1;;4234:14:0;;;-1:-1:-1;;;;8644:531:0:o;7713:718::-;7799:7;7822:11;;;:28;;-1:-1:-1;7837:8:0;;:13;7822:28;7819:72;;;-1:-1:-1;7873:6:0;7866:13;;7819:72;7924:18;;-1:-1:-1;;;;;7971:4:0;7958:17;;;;;;7955:154;;-1:-1:-1;8005:14:0;;7955:154;;;8050:4;-1:-1:-1;;;;;8040:14:0;:6;-1:-1:-1;;;;;8040:14:0;;8037:72;;-1:-1:-1;8084:13:0;;8037:72;8121:17;8177:20;3866:3;;8177:20;:::i;:::-;8162:10;8151:8;;8142:6;:17;;;;:::i;:::-;:30;;;;:::i;:::-;8141:57;;;;:::i;:::-;8121:77;-1:-1:-1;8214:13:0;;8211:172;;8288:4;8270:24;;;;:9;:24;;;;;;:39;;8299:9;8270:28;:39::i;:::-;8261:4;8243:24;;;;:9;:24;;;;;;;:66;;;;8329:42;;-1:-1:-1;;;;;8329:42:0;;;;;;;8361:9;1342:25:1;;1330:2;1315:18;;1196:177;8329:42:0;;;;;;;;8211:172;8402:21;:6;8413:9;8402:10;:21::i;:::-;8395:28;7713:718;-1:-1:-1;;;;;;7713:718:0:o;192:181::-;250:7;;282:5;286:1;282;:5;:::i;:::-;270:17;;311:1;306;:6;;298:46;;;;-1:-1:-1;;;298:46:0;;10017:2:1;298:46:0;;;9999:21:1;10056:2;10036:18;;;10029:30;10095:29;10075:18;;;10068:57;10142:18;;298:46:0;9815:351:1;379:136:0;437:7;464:43;468:1;471;464:43;;;;;;;;;;;;;;;;;:3;:43::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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:180::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;-1:-1:-1;1529:23:1;;1378:180;-1:-1:-1;1378:180: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:127::-;3794:10;3789:3;3785:20;3782:1;3775:31;3825:4;3822:1;3815:15;3849:4;3846:1;3839:15;3865:422;3954:1;3997:5;3954:1;4011:270;4032:7;4022:8;4019:21;4011:270;;;4091:4;4087:1;4083:6;4079:17;4073:4;4070:27;4067:53;;;4100:18;;:::i;:::-;4150:7;4140:8;4136:22;4133:55;;;4170:16;;;;4133:55;4249:22;;;;4209:15;;;;4011:270;;;4015:3;3865:422;;;;;:::o;4292:806::-;4341:5;4371:8;4361:80;;-1:-1:-1;4412:1:1;4426:5;;4361:80;4460:4;4450:76;;-1:-1:-1;4497:1:1;4511:5;;4450:76;4542:4;4560:1;4555:59;;;;4628:1;4623:130;;;;4535:218;;4555:59;4585:1;4576:10;;4599:5;;;4623:130;4660:3;4650:8;4647:17;4644:43;;;4667:18;;:::i;:::-;-1:-1:-1;;4723:1:1;4709:16;;4738:5;;4535:218;;4837:2;4827:8;4824:16;4818:3;4812:4;4809:13;4805:36;4799:2;4789:8;4786:16;4781:2;4775:4;4772:12;4768:35;4765:77;4762:159;;;-1:-1:-1;4874:19:1;;;4906:5;;4762:159;4953:34;4978:8;4972:4;4953:34;:::i;:::-;5023:6;5019:1;5015:6;5011:19;5002:7;4999:32;4996:58;;;5034:18;;:::i;:::-;5072:20;;4292:806;-1:-1:-1;;;4292:806:1:o;5103:140::-;5161:5;5190:47;5231:4;5221:8;5217:19;5211:4;5190:47;:::i;5248:168::-;5288:7;5354:1;5350;5346:6;5342:14;5339:1;5336:21;5331:1;5324:9;5317:17;5313:45;5310:71;;;5361:18;;:::i;:::-;-1:-1:-1;5401:9:1;;5248:168::o;5421:329::-;5623:2;5605:21;;;5662:1;5642:18;;;5635:29;-1:-1:-1;;;5695:2:1;5680:18;;5673:36;5741:2;5726:18;;5421:329::o;5755:217::-;5795:1;5821;5811:132;;5865:10;5860:3;5856:20;5853:1;5846:31;5900:4;5897:1;5890:15;5928:4;5925:1;5918:15;5811:132;-1:-1:-1;5957:9:1;;5755:217::o;5977:128::-;6044:9;;;6065:11;;;6062:37;;;6079:18;;:::i;6450:184::-;6520:6;6573:2;6561:9;6552:7;6548:23;6544:32;6541:52;;;6589:1;6586;6579:12;6541:52;-1:-1:-1;6612:16:1;;6450:184;-1:-1:-1;6450:184:1:o;6918:245::-;6985:6;7038:2;7026:9;7017:7;7013:23;7009:32;7006:52;;;7054:1;7051;7044:12;7006:52;7086:9;7080:16;7105:28;7127:5;7105:28;:::i;7523:125::-;7588:9;;;7609:10;;;7606:36;;;7622:18;;:::i;8488:127::-;8549:10;8544:3;8540:20;8537:1;8530:31;8580:4;8577:1;8570:15;8604:4;8601:1;8594:15;8620:980;8882:4;8930:3;8919:9;8915:19;8961:6;8950:9;8943:25;8987:2;9025:6;9020:2;9009:9;9005:18;8998:34;9068:3;9063:2;9052:9;9048:18;9041:31;9092:6;9127;9121:13;9158:6;9150;9143:22;9196:3;9185:9;9181:19;9174:26;;9235:2;9227:6;9223:15;9209:29;;9256:1;9266:195;9280:6;9277:1;9274:13;9266:195;;;9345:13;;-1:-1:-1;;;;;9341:39:1;9329:52;;9436:15;;;;9401:12;;;;9377:1;9295:9;9266:195;;;-1:-1:-1;;;;;;;9517:32:1;;;;9512:2;9497:18;;9490:60;-1:-1:-1;;;9581:3:1;9566:19;9559:35;9478:3;8620:980;-1:-1:-1;;;8620:980:1:o

Swarm Source

ipfs://2b7ee76dc842e8e7b34f82f4ee4c8a82e5624a18e4e5f810275cb31121486fff

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.