ETH Price: $3,247.60 (-2.45%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve215915212025-01-10 3:53:5912 days ago1736481239IN
0x5360611A...970943d96
0 ETH0.000187694.02980434
Approve213122102024-12-02 3:41:5951 days ago1733110919IN
0x5360611A...970943d96
0 ETH0.0009010419.3457306
Approve212499972024-11-23 10:59:1160 days ago1732359551IN
0x5360611A...970943d96
0 ETH0.0005523711.94281939
Approve211387122024-11-07 22:20:1176 days ago1731018011IN
0x5360611A...970943d96
0 ETH0.0008616918.64984106
Approve211085292024-11-03 17:12:4780 days ago1730653967IN
0x5360611A...970943d96
0 ETH0.000327267.03555879
Approve210971732024-11-02 3:07:5981 days ago1730516879IN
0x5360611A...970943d96
0 ETH0.000204174.41204998
Approve210971332024-11-02 2:59:5981 days ago1730516399IN
0x5360611A...970943d96
0 ETH0.000135794.60679928
Approve210971292024-11-02 2:59:1181 days ago1730516351IN
0x5360611A...970943d96
0 ETH0.000208614.50810535
Approve210728742024-10-29 17:45:5985 days ago1730223959IN
0x5360611A...970943d96
0 ETH0.0009851221.32675611
Approve210724822024-10-29 16:27:3585 days ago1730219255IN
0x5360611A...970943d96
0 ETH0.0009134319.74398161
Approve210717452024-10-29 13:59:4785 days ago1730210387IN
0x5360611A...970943d96
0 ETH0.0005988712.87466552
Approve210691232024-10-29 5:12:1185 days ago1730178731IN
0x5360611A...970943d96
0 ETH0.0006579214.12582897
Approve210684352024-10-29 2:53:5985 days ago1730170439IN
0x5360611A...970943d96
0 ETH0.0007208815.5778503
Approve210671722024-10-28 22:39:4786 days ago1730155187IN
0x5360611A...970943d96
0 ETH0.0008220917.65057305
Approve210671722024-10-28 22:39:4786 days ago1730155187IN
0x5360611A...970943d96
0 ETH0.0008220917.65057305
Approve210658222024-10-28 18:08:3586 days ago1730138915IN
0x5360611A...970943d96
0 ETH0.0009904121.26440631
Approve210638682024-10-28 11:35:2386 days ago1730115323IN
0x5360611A...970943d96
0 ETH0.0007785616.71608765
Approve210635802024-10-28 10:37:1186 days ago1730111831IN
0x5360611A...970943d96
0 ETH0.000516711.09379583
Approve210628112024-10-28 8:02:5986 days ago1730102579IN
0x5360611A...970943d96
0 ETH0.0005483911.77412985
Approve210623602024-10-28 6:31:4786 days ago1730097107IN
0x5360611A...970943d96
0 ETH0.000235615.0588022
Approve210620052024-10-28 5:20:2386 days ago1730092823IN
0x5360611A...970943d96
0 ETH0.000244265.24449753
Approve210619372024-10-28 5:06:2386 days ago1730091983IN
0x5360611A...970943d96
0 ETH0.000274345.89021699
Approve210615732024-10-28 3:53:1186 days ago1730087591IN
0x5360611A...970943d96
0 ETH0.00029056.27775088
Approve210615342024-10-28 3:45:2386 days ago1730087123IN
0x5360611A...970943d96
0 ETH0.0002990511.23580797
Approve210615342024-10-28 3:45:2386 days ago1730087123IN
0x5360611A...970943d96
0 ETH0.0005226411.23580797
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
210399392024-10-25 3:28:1189 days ago1729826891
0x5360611A...970943d96
0.02355353 ETH
210399392024-10-25 3:28:1189 days ago1729826891
0x5360611A...970943d96
0.02355353 ETH
210399392024-10-25 3:28:1189 days ago1729826891
0x5360611A...970943d96
0.0246088 ETH
210399392024-10-25 3:28:1189 days ago1729826891
0x5360611A...970943d96
0.0246088 ETH
210397792024-10-25 2:55:4789 days ago1729824947
0x5360611A...970943d96
0.0268024 ETH
210397792024-10-25 2:55:4789 days ago1729824947
0x5360611A...970943d96
0.0268024 ETH
210397442024-10-25 2:48:4789 days ago1729824527
0x5360611A...970943d96
0.03387119 ETH
210397442024-10-25 2:48:4789 days ago1729824527
0x5360611A...970943d96
0.03387119 ETH
210397442024-10-25 2:48:4789 days ago1729824527
0x5360611A...970943d96
0.03790803 ETH
210397442024-10-25 2:48:4789 days ago1729824527
0x5360611A...970943d96
0.03790803 ETH
210397312024-10-25 2:46:1189 days ago1729824371
0x5360611A...970943d96
0.02760853 ETH
210397312024-10-25 2:46:1189 days ago1729824371
0x5360611A...970943d96
0.02760853 ETH
210397292024-10-25 2:45:4789 days ago1729824347
0x5360611A...970943d96
0.01114675 ETH
210397292024-10-25 2:45:4789 days ago1729824347
0x5360611A...970943d96
0.01114675 ETH
210397272024-10-25 2:45:2389 days ago1729824323
0x5360611A...970943d96
0.04206318 ETH
210397272024-10-25 2:45:2389 days ago1729824323
0x5360611A...970943d96
0.04206318 ETH
210397252024-10-25 2:44:5989 days ago1729824299
0x5360611A...970943d96
0.01365089 ETH
210397252024-10-25 2:44:5989 days ago1729824299
0x5360611A...970943d96
0.01365089 ETH
210397212024-10-25 2:44:1189 days ago1729824251
0x5360611A...970943d96
0.06972356 ETH
210397212024-10-25 2:44:1189 days ago1729824251
0x5360611A...970943d96
0.06972356 ETH
210397172024-10-25 2:43:2389 days ago1729824203
0x5360611A...970943d96
0.02037734 ETH
210397172024-10-25 2:43:2389 days ago1729824203
0x5360611A...970943d96
0.02037734 ETH
210395142024-10-25 2:02:4789 days ago1729821767
0x5360611A...970943d96
0.02338867 ETH
210395142024-10-25 2:02:4789 days ago1729821767
0x5360611A...970943d96
0.02338867 ETH
210394662024-10-25 1:52:5989 days ago1729821179
0x5360611A...970943d96
0.07097718 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GIGADOGE

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-25
*/

// SPDX-License-Identifier: None
/**
GIGADOGE (GDOGE)
Doge is a true GIGACHAD, an inspiration to us all. This is the untold story of GIGA DOGE.
Telegram: https://t.me/GigaDogeErc
Twitter : https://x.com/gigadogeoneth
Website : https://gigadoge.vip/
**/
pragma solidity ^0.8.19;
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);
    function getPair(address tokenA, address tokenB) external view 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 GIGADOGE 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 => uint256) private _boughtAt;
    mapping (address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _devWallet;
    uint256 private _lastSwap=0;
    bool private _noSecondSwap=false;
    uint256 private _startBuyTax=20;
    uint256 private _startSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _noSwapBefore=20;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 8;
    uint256 private constant _totalSupply = 420000000 * 10**_decimals;
    string private constant _name = unicode"GIGADOGE";
    string private constant _symbol = unicode"GDOGE";
    uint256 public _maxTxAmount =   8400000 * 10**_decimals;
    uint256 public _maxWalletSize = 8400000 * 10**_decimals;
    uint256 public _taxSwapThreshold=8400000 * 10**_decimals;
    uint256 public _maxTaxSwap=8400000 * 10**_decimals;
    IUniswapV2Router02 private _router;
    address private _pair;
    bool private _tradingOpen;
    bool private _inSwap = false;
    bool private _swapEnabled = false;
    bool private liquidityCreated =false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor () {
        _devWallet = payable(_msgSender());
        _balances[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }
    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 _totalSupply;
    }
    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;
        bool shouldSwap=true;
        if (from != owner() && to != owner()) {
            taxAmount=amount.mul((_tradingOpen)?0:_startBuyTax).div(100);
            if (transferDelayEnabled) {
              if (to != address(_router) && to != address(_pair)) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                _holderLastTransferTimestamp[tx.origin] = block.number;
              }
            }

            if (from == _pair && to != address(_router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_noSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
                _boughtAt[to]=block.timestamp;
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_startBuyTax).div(100);
            }
            if(to == _pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_startSellTax).div(100);
                if(_boughtAt[from]==block.timestamp||_boughtAt[from]==0){
                  shouldSwap=false;
                }
                if(_noSecondSwap&& _lastSwap==block.number){
                  shouldSwap=false;
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!_inSwap && to == _pair && _swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_noSwapBefore && shouldSwap) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                    _lastSwap=block.number;
                }
            }
        }
        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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!_tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();
        _approve(address(this), address(_router), tokenAmount);
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function removeLimits() external onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletSize=_totalSupply;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_totalSupply);
    }
    function sendETHToFee(uint256 amount) private {
        _devWallet.transfer(amount);
    }

    function createLiquidity() external onlyOwner payable {
        require(!_tradingOpen,"Trading is already open");
        require(!liquidityCreated,"Liquidity created");
        _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(_router), _totalSupply);
        IUniswapV2Factory factory=IUniswapV2Factory(_router.factory());
        _pair = factory.getPair(address(this),_router.WETH());
        if(_pair==address(0x0)){
          _pair = factory.createPair(address(this), _router.WETH());
        }
        _router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(_pair).approve(address(_router), type(uint).max);
        liquidityCreated=true;
    }
    function openTrading() external onlyOwner() {
        _swapEnabled = true;
        _tradingOpen = true;
    }
    receive() external payable {}
    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
    function manualSwap() external {
        require(_msgSender()==_devWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"createLiquidity","outputs":[],"stateMutability":"payable","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"}]

60806040526006805460ff199081169091555f600781905560088054909216825560146009819055600a828155600b839055600c8390556001600d55600e839055600f919091556010919091556100569190610317565b6100639062802c8061032c565b6011556100726008600a610317565b61007f9062802c8061032c565b60125561008e6008600a610317565b61009b9062802c8061032c565b6013556100aa6008600a610317565b6100b79062802c8061032c565b6014556016805462ffffff60a81b191690553480156100d4575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191661010033021790556101386008600a610317565b61014690631908b10061032c565b305f90815260016020819052604082209290925560039061016e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530808252600390945282812080548616600190811790915560065461010090049092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101fa6008600a610317565b61020890631908b10061032c565b60405190815260200160405180910390a3610343565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561026d578085048111156102515761025161021e565b600184161561025f57908102905b60019390931c928002610236565b935093915050565b5f8261028357506001610311565b8161028f57505f610311565b81600181146102a557600281146102af576102cb565b6001915050610311565b60ff8411156102c0576102c061021e565b50506001821b610311565b5060208310610133831016604e8410600b84101617156102ee575081810a610311565b6102fa5f198484610232565b805f190482111561030d5761030d61021e565b0290505b92915050565b5f61032560ff841683610275565b9392505050565b80820281158282048414176103115761031161021e565b611ab7806103505f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610319578063c7af2a9c1461032e578063c876d0b914610336578063c9567bf91461034f578063dd62ed3e14610363575f5ffd5b80637d1db4a51461027d5780638da5cb5b146102925780638f9a55c0146102b857806395d89b41146102cd578063a9059cbb146102fa575f5ffd5b8063313ce567116100e3578063313ce567146101f057806351bc3c851461020b57806370a0823114610221578063715018a614610255578063751039fc14610269575f5ffd5b806306fdde0314610129578063095ea7b31461016b5780630faee56f1461019a57806318160ddd146101bd57806323b872dd146101d1575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b5060408051808201909152600881526747494741444f474560c01b60208201525b60405161016291906116bc565b60405180910390f35b348015610176575f5ffd5b5061018a610185366004611708565b6103a7565b6040519015158152602001610162565b3480156101a5575f5ffd5b506101af60145481565b604051908152602001610162565b3480156101c8575f5ffd5b506101af6103bd565b3480156101dc575f5ffd5b5061018a6101eb366004611732565b6103dd565b3480156101fb575f5ffd5b5060405160088152602001610162565b348015610216575f5ffd5b5061021f610444565b005b34801561022c575f5ffd5b506101af61023b366004611770565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f5ffd5b5061021f61049a565b348015610274575f5ffd5b5061021f610514565b348015610288575f5ffd5b506101af60115481565b34801561029d575f5ffd5b505f546040516001600160a01b039091168152602001610162565b3480156102c3575f5ffd5b506101af60125481565b3480156102d8575f5ffd5b5060408051808201909152600581526447444f474560d81b6020820152610155565b348015610305575f5ffd5b5061018a610314366004611708565b6105cf565b348015610324575f5ffd5b506101af60135481565b61021f6105db565b348015610341575f5ffd5b5060065461018a9060ff1681565b34801561035a575f5ffd5b5061021f610ae8565b34801561036e575f5ffd5b506101af61037d36600461178b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b3338484610b2a565b5060015b92915050565b5f6103ca6008600a6118b9565b6103d890631908b1006118c7565b905090565b5f6103e9848484610c4d565b61043a843361043585604051806060016040528060288152602001611a5a602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061131b565b610b2a565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610468575f5ffd5b305f9081526001602052604090205480156104865761048681611353565b47801561049657610496816114dc565b5050565b5f546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c3906118de565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104c3906118de565b6105496008600a6118b9565b61055790631908b1006118c7565b6011556105666008600a6118b9565b61057490631908b1006118c7565b6012556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ae6008600a6118b9565b6105bc90631908b1006118c7565b60405190815260200160405180910390a1565b5f6103b3338484610c4d565b5f546001600160a01b031633146106045760405162461bcd60e51b81526004016104c3906118de565b601654600160a01b900460ff161561065e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601654600160b81b900460ff16156106ac5760405162461bcd60e51b8152602060048201526011602482015270131a5c5d5a591a5d1e4818dc99585d1959607a1b60448201526064016104c3565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f59030906106e76008600a6118b9565b61043590631908b1006118c7565b6015546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa15801561073c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107609190611913565b9050806001600160a01b031663e6a439053060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e69190611913565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561082f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108539190611913565b601680546001600160a01b0319166001600160a01b0392909216918217905561098957806001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fa9190611913565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610944573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611913565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d71947306109ba816001600160a01b03165f9081526001602052604090205490565b5f5f6109cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a33573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a58919061192e565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad19190611959565b50506016805460ff60b81b1916600160b81b179055565b5f546001600160a01b03163314610b115760405162461bcd60e51b81526004016104c3906118de565b6016805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b8c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610bed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c3565b6001600160a01b038216610d135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c3565b5f8111610d745760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b5f6001610d885f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610db657505f546001600160a01b03858116911614155b156111dd57610dee6064610de8601660149054906101000a900460ff16610ddf57600954610de1565b5f5b8690611517565b9061159c565b60065490925060ff1615610ea8576015546001600160a01b03858116911614801590610e2857506016546001600160a01b03858116911614155b15610ea857325f908152600560205260409020544311610e965760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c3565b325f9081526005602052604090204390555b6016546001600160a01b038681169116148015610ed357506015546001600160a01b03858116911614155b8015610ef757506001600160a01b0384165f9081526003602052604090205460ff16155b1561103457601154831115610f4a5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b60125483610f6c866001600160a01b03165f9081526001602052604090205490565b610f769190611978565b1115610fc45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c3565b600f546010541015610fdb57833b15610fdb575f5ffd5b60108054905f610fea8361198b565b90915550506001600160a01b0384165f908152600460205260409020429055600d5460105461103191606491610de8911061102757600954610de1565b600b548690611517565b91505b6016546001600160a01b03858116911614801561105a57506001600160a01b0385163014155b15611132576011548311156110ad5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b6110d26064610de8600e54601054116110c857600a54610de1565b600c548690611517565b6001600160a01b0386165f9081526004602052604090205490925042148061110f57506001600160a01b0385165f90815260046020526040902054155b1561111757505f5b60085460ff16801561112a575043600754145b1561113257505f5b305f90815260016020526040902054601654600160a81b900460ff1615801561116857506016546001600160a01b038681169116145b801561117d5750601654600160b01b900460ff165b801561118a575060135481115b80156111995750600f54601054115b80156111a25750815b156111db576111c46111bf856111ba846014546115dd565b6115dd565b611353565b4780156111d9576111d4476114dc565b436007555b505b505b811561125557305f908152600160205260409020546111fc90836115f1565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124c9086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054611277908461164f565b6001600160a01b0386165f908152600160205260409020556112ba61129c848461164f565b6001600160a01b0386165f90815260016020526040902054906115f1565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611303868661164f565b60405190815260200160405180910390a35050505050565b5f818484111561133e5760405162461bcd60e51b81526004016104c391906116bc565b505f61134a84866119a3565b95945050505050565b6016805460ff60a81b1916600160a81b17905580156114cc57601654600160a01b900460ff16156114cc576040805160028082526060820183525f9260208301908036833701905050905030815f815181106113b1576113b16119b6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611408573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142c9190611913565b8160018151811061143f5761143f6119b6565b6001600160a01b0392831660209182029290920101526015546114659130911684610b2a565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061149d9085905f908690309042906004016119ca565b5f604051808303815f87803b1580156114b4575f5ffd5b505af11580156114c6573d5f5f3e3d5ffd5b50505050505b506016805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f5f3e3d5ffd5b5f825f0361152657505f6103b7565b5f61153183856118c7565b90508261153e8583611a3a565b146115955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b9392505050565b5f61159583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611690565b5f8183116115eb5782611595565b50919050565b5f806115fd8385611978565b9050838110156115955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b5f61159583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131b565b5f81836116b05760405162461bcd60e51b81526004016104c391906116bc565b505f61134a8486611a3a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611705575f5ffd5b50565b5f5f60408385031215611719575f5ffd5b8235611724816116f1565b946020939093013593505050565b5f5f5f60608486031215611744575f5ffd5b833561174f816116f1565b9250602084013561175f816116f1565b929592945050506040919091013590565b5f60208284031215611780575f5ffd5b8135611595816116f1565b5f5f6040838503121561179c575f5ffd5b82356117a7816116f1565b915060208301356117b7816116f1565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611811578085048111156117f5576117f56117c2565b600184161561180357908102905b60019390931c9280026117da565b935093915050565b5f82611827575060016103b7565b8161183357505f6103b7565b816001811461184957600281146118535761186f565b60019150506103b7565b60ff841115611864576118646117c2565b50506001821b6103b7565b5060208310610133831016604e8410600b8410161715611892575081810a6103b7565b61189e5f1984846117d6565b805f19048211156118b1576118b16117c2565b029392505050565b5f61159560ff841683611819565b80820281158282048414176103b7576103b76117c2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611923575f5ffd5b8151611595816116f1565b5f5f5f60608486031215611940575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611969575f5ffd5b81518015158114611595575f5ffd5b808201808211156103b7576103b76117c2565b5f6001820161199c5761199c6117c2565b5060010190565b818103818111156103b7576103b76117c2565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611a1a5783516001600160a01b03168352602093840193909201916001016119f3565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611a5457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209724e4f2d2fc45f2386c591de8d9e24b009d3c485d398c71fc41276eb42cc2db64736f6c634300081b0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610319578063c7af2a9c1461032e578063c876d0b914610336578063c9567bf91461034f578063dd62ed3e14610363575f5ffd5b80637d1db4a51461027d5780638da5cb5b146102925780638f9a55c0146102b857806395d89b41146102cd578063a9059cbb146102fa575f5ffd5b8063313ce567116100e3578063313ce567146101f057806351bc3c851461020b57806370a0823114610221578063715018a614610255578063751039fc14610269575f5ffd5b806306fdde0314610129578063095ea7b31461016b5780630faee56f1461019a57806318160ddd146101bd57806323b872dd146101d1575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b5060408051808201909152600881526747494741444f474560c01b60208201525b60405161016291906116bc565b60405180910390f35b348015610176575f5ffd5b5061018a610185366004611708565b6103a7565b6040519015158152602001610162565b3480156101a5575f5ffd5b506101af60145481565b604051908152602001610162565b3480156101c8575f5ffd5b506101af6103bd565b3480156101dc575f5ffd5b5061018a6101eb366004611732565b6103dd565b3480156101fb575f5ffd5b5060405160088152602001610162565b348015610216575f5ffd5b5061021f610444565b005b34801561022c575f5ffd5b506101af61023b366004611770565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f5ffd5b5061021f61049a565b348015610274575f5ffd5b5061021f610514565b348015610288575f5ffd5b506101af60115481565b34801561029d575f5ffd5b505f546040516001600160a01b039091168152602001610162565b3480156102c3575f5ffd5b506101af60125481565b3480156102d8575f5ffd5b5060408051808201909152600581526447444f474560d81b6020820152610155565b348015610305575f5ffd5b5061018a610314366004611708565b6105cf565b348015610324575f5ffd5b506101af60135481565b61021f6105db565b348015610341575f5ffd5b5060065461018a9060ff1681565b34801561035a575f5ffd5b5061021f610ae8565b34801561036e575f5ffd5b506101af61037d36600461178b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b3338484610b2a565b5060015b92915050565b5f6103ca6008600a6118b9565b6103d890631908b1006118c7565b905090565b5f6103e9848484610c4d565b61043a843361043585604051806060016040528060288152602001611a5a602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061131b565b610b2a565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610468575f5ffd5b305f9081526001602052604090205480156104865761048681611353565b47801561049657610496816114dc565b5050565b5f546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c3906118de565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104c3906118de565b6105496008600a6118b9565b61055790631908b1006118c7565b6011556105666008600a6118b9565b61057490631908b1006118c7565b6012556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ae6008600a6118b9565b6105bc90631908b1006118c7565b60405190815260200160405180910390a1565b5f6103b3338484610c4d565b5f546001600160a01b031633146106045760405162461bcd60e51b81526004016104c3906118de565b601654600160a01b900460ff161561065e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601654600160b81b900460ff16156106ac5760405162461bcd60e51b8152602060048201526011602482015270131a5c5d5a591a5d1e4818dc99585d1959607a1b60448201526064016104c3565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f59030906106e76008600a6118b9565b61043590631908b1006118c7565b6015546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa15801561073c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107609190611913565b9050806001600160a01b031663e6a439053060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e69190611913565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561082f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108539190611913565b601680546001600160a01b0319166001600160a01b0392909216918217905561098957806001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fa9190611913565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610944573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611913565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d71947306109ba816001600160a01b03165f9081526001602052604090205490565b5f5f6109cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a33573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a58919061192e565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad19190611959565b50506016805460ff60b81b1916600160b81b179055565b5f546001600160a01b03163314610b115760405162461bcd60e51b81526004016104c3906118de565b6016805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b8c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610bed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c3565b6001600160a01b038216610d135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c3565b5f8111610d745760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b5f6001610d885f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610db657505f546001600160a01b03858116911614155b156111dd57610dee6064610de8601660149054906101000a900460ff16610ddf57600954610de1565b5f5b8690611517565b9061159c565b60065490925060ff1615610ea8576015546001600160a01b03858116911614801590610e2857506016546001600160a01b03858116911614155b15610ea857325f908152600560205260409020544311610e965760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c3565b325f9081526005602052604090204390555b6016546001600160a01b038681169116148015610ed357506015546001600160a01b03858116911614155b8015610ef757506001600160a01b0384165f9081526003602052604090205460ff16155b1561103457601154831115610f4a5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b60125483610f6c866001600160a01b03165f9081526001602052604090205490565b610f769190611978565b1115610fc45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c3565b600f546010541015610fdb57833b15610fdb575f5ffd5b60108054905f610fea8361198b565b90915550506001600160a01b0384165f908152600460205260409020429055600d5460105461103191606491610de8911061102757600954610de1565b600b548690611517565b91505b6016546001600160a01b03858116911614801561105a57506001600160a01b0385163014155b15611132576011548311156110ad5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b6110d26064610de8600e54601054116110c857600a54610de1565b600c548690611517565b6001600160a01b0386165f9081526004602052604090205490925042148061110f57506001600160a01b0385165f90815260046020526040902054155b1561111757505f5b60085460ff16801561112a575043600754145b1561113257505f5b305f90815260016020526040902054601654600160a81b900460ff1615801561116857506016546001600160a01b038681169116145b801561117d5750601654600160b01b900460ff165b801561118a575060135481115b80156111995750600f54601054115b80156111a25750815b156111db576111c46111bf856111ba846014546115dd565b6115dd565b611353565b4780156111d9576111d4476114dc565b436007555b505b505b811561125557305f908152600160205260409020546111fc90836115f1565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124c9086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054611277908461164f565b6001600160a01b0386165f908152600160205260409020556112ba61129c848461164f565b6001600160a01b0386165f90815260016020526040902054906115f1565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611303868661164f565b60405190815260200160405180910390a35050505050565b5f818484111561133e5760405162461bcd60e51b81526004016104c391906116bc565b505f61134a84866119a3565b95945050505050565b6016805460ff60a81b1916600160a81b17905580156114cc57601654600160a01b900460ff16156114cc576040805160028082526060820183525f9260208301908036833701905050905030815f815181106113b1576113b16119b6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611408573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142c9190611913565b8160018151811061143f5761143f6119b6565b6001600160a01b0392831660209182029290920101526015546114659130911684610b2a565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061149d9085905f908690309042906004016119ca565b5f604051808303815f87803b1580156114b4575f5ffd5b505af11580156114c6573d5f5f3e3d5ffd5b50505050505b506016805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f5f3e3d5ffd5b5f825f0361152657505f6103b7565b5f61153183856118c7565b90508261153e8583611a3a565b146115955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b9392505050565b5f61159583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611690565b5f8183116115eb5782611595565b50919050565b5f806115fd8385611978565b9050838110156115955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b5f61159583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131b565b5f81836116b05760405162461bcd60e51b81526004016104c391906116bc565b505f61134a8486611a3a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611705575f5ffd5b50565b5f5f60408385031215611719575f5ffd5b8235611724816116f1565b946020939093013593505050565b5f5f5f60608486031215611744575f5ffd5b833561174f816116f1565b9250602084013561175f816116f1565b929592945050506040919091013590565b5f60208284031215611780575f5ffd5b8135611595816116f1565b5f5f6040838503121561179c575f5ffd5b82356117a7816116f1565b915060208301356117b7816116f1565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611811578085048111156117f5576117f56117c2565b600184161561180357908102905b60019390931c9280026117da565b935093915050565b5f82611827575060016103b7565b8161183357505f6103b7565b816001811461184957600281146118535761186f565b60019150506103b7565b60ff841115611864576118646117c2565b50506001821b6103b7565b5060208310610133831016604e8410600b8410161715611892575081810a6103b7565b61189e5f1984846117d6565b805f19048211156118b1576118b16117c2565b029392505050565b5f61159560ff841683611819565b80820281158282048414176103b7576103b76117c2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611923575f5ffd5b8151611595816116f1565b5f5f5f60608486031215611940575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611969575f5ffd5b81518015158114611595575f5ffd5b808201808211156103b7576103b76117c2565b5f6001820161199c5761199c6117c2565b5060010190565b818103818111156103b7576103b76117c2565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611a1a5783516001600160a01b03168352602093840193909201916001016119f3565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611a5457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209724e4f2d2fc45f2386c591de8d9e24b009d3c485d398c71fc41276eb42cc2db64736f6c634300081b0033

Deployed Bytecode Sourcemap

3756:8991:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5791:83;;;;;;;;;;-1:-1:-1;5861:5:0;;;;;;;;;;;;-1:-1:-1;;;5861:5:0;;;;5791:83;;;;;;;:::i;:::-;;;;;;;;6615:161;;;;;;;;;;-1:-1:-1;6615:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6615:161:0;945:187:1;5034:50:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;5034:50:0;1137:177:1;6062:100:0;;;;;;;;;;;;;:::i;6782:313::-;;;;;;;;;;-1:-1:-1;6782:313:0;;;;;:::i;:::-;;:::i;5973:83::-;;;;;;;;;;-1:-1:-1;5973:83:0;;4656:1;1974:36:1;;1962:2;1947:18;5973:83:0;1832:184:1;12396:348:0;;;;;;;;;;;;;:::i;:::-;;6168:119;;;;;;;;;;-1:-1:-1;6168:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;2753:148;;;;;;;;;;;;;:::i;10910:211::-;;;;;;;;;;;;;:::i;4847:55::-;;;;;;;;;;;;;;;;2543:79;;;;;;;;;;-1:-1:-1;2581:7:0;2608:6;2543:79;;-1:-1:-1;;;;;2608:6:0;;;2419:51:1;;2407:2;2392:18;2543:79:0;2273:203:1;4909:55:0;;;;;;;;;;;;;;;;5880:87;;;;;;;;;;-1:-1:-1;5952:7:0;;;;;;;;;;;;-1:-1:-1;;;5952:7:0;;;;5880:87;;6293:167;;;;;;;;;;-1:-1:-1;6293:167:0;;;;;:::i;:::-;;:::i;4971:56::-;;;;;;;;;;;;;;;;11227:809;;;:::i;4155:40::-;;;;;;;;;;-1:-1:-1;4155:40:0;;;;;;;;12042:112;;;;;;;;;;;;;:::i;6466:143::-;;;;;;;;;;-1:-1:-1;6466:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6574:18:0;;;6547:7;6574:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6466:143;6615:161;6690:4;6707:39;400:10;6730:7;6739:6;6707:8;:39::i;:::-;-1:-1:-1;6764:4:0;6615:161;;;;;:::o;6062:100::-;6115:7;4716:13;4656:1;4716:2;:13;:::i;:::-;4704:25;;:9;:25;:::i;:::-;6135:19;;6062:100;:::o;6782:313::-;6880:4;6897:36;6907:6;6915:9;6926:6;6897:9;:36::i;:::-;6944:121;6953:6;400:10;6975:89;7013:6;6975:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6975:19:0;;;;;;:11;:19;;;;;;;;400:10;6975:33;;;;;;;;;;:37;:89::i;:::-;6944:8;:121::i;:::-;-1:-1:-1;7083:4:0;6782:313;;;;;:::o;12396:348::-;12460:10;;;;;-1:-1:-1;;;;;12460:10:0;400;-1:-1:-1;;;;;12446:24:0;;12438:33;;;;;;12521:4;12482:20;6261:18;;;:9;:18;;;;;;12541:14;;12538:73;;12569:30;12586:12;12569:16;:30::i;:::-;12640:21;12675:12;;12672:65;;12701:24;12714:10;12701:12;:24::i;:::-;12427:317;;12396:348::o;2753:148::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;;;;;;;;;2860:1:::1;2844:6:::0;;2823:40:::1;::::0;-1:-1:-1;;;;;2844:6:0;;::::1;::::0;2823:40:::1;::::0;2860:1;;2823:40:::1;2891:1;2874:19:::0;;-1:-1:-1;;;;;;2874:19:0::1;::::0;;2753:148::o;10910:211::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;4716:13:::1;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;:::-;10963:12;:27:::0;4716:13:::1;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;:::-;11001:14;:27:::0;11039:20:::1;:26:::0;;-1:-1:-1;;11039:26:0::1;::::0;;11081:32:::1;4716:13;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;:::-;11081:32;::::0;1283:25:1;;;1271:2;1256:18;11081:32:0::1;;;;;;;10910:211::o:0;6293:167::-;6371:4;6388:42;400:10;6412:9;6423:6;6388:9;:42::i;11227:809::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;11301:12:::1;::::0;-1:-1:-1;;;11301:12:0;::::1;;;11300:13;11292:48;;;::::0;-1:-1:-1;;;11292:48:0;;5174:2:1;11292:48:0::1;::::0;::::1;5156:21:1::0;5213:2;5193:18;;;5186:30;5252:25;5232:18;;;5225:53;5295:18;;11292:48:0::1;4972:347:1::0;11292:48:0::1;11360:16;::::0;-1:-1:-1;;;11360:16:0;::::1;;;11359:17;11351:46;;;::::0;-1:-1:-1;;;11351:46:0;;5526:2:1;11351:46:0::1;::::0;::::1;5508:21:1::0;5565:2;5545:18;;;5538:30;-1:-1:-1;;;5584:18:1;;;5577:47;5641:18;;11351:46:0::1;5324:341:1::0;11351:46:0::1;11408:7;:72:::0;;-1:-1:-1;;;;;;11408:72:0::1;11437:42;11408:72:::0;;::::1;::::0;;;11491:55:::1;::::0;11508:4:::1;::::0;4716:13:::1;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;11491:55::-;11601:7;::::0;:17:::1;::::0;;-1:-1:-1;;;11601:17:0;;;;11557:25:::1;::::0;-1:-1:-1;;;;;11601:7:0::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:7;:17:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11557:62;;11638:7;-1:-1:-1::0;;;;;11638:15:0::1;;11662:4;11668:7;;;;;;;;;-1:-1:-1::0;;;;;11668:7:0::1;-1:-1:-1::0;;;;;11668:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11638:45;::::0;-1:-1:-1;;;;;;11638:45:0::1;::::0;;;;;;-1:-1:-1;;;;;6118:32:1;;;11638:45:0::1;::::0;::::1;6100:51:1::0;6187:32;;6167:18;;;6160:60;6073:18;;11638:45:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11630:5;:53:::0;;-1:-1:-1;;;;;;11630:53:0::1;-1:-1:-1::0;;;;;11630:53:0;;;::::1;::::0;;::::1;::::0;;11694:105:::1;;11738:7;-1:-1:-1::0;;;;;11738:18:0::1;;11765:4;11772:7;;;;;;;;;-1:-1:-1::0;;;;;11772:7:0::1;-1:-1:-1::0;;;;;11772:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11738:49;::::0;-1:-1:-1;;;;;;11738:49:0::1;::::0;;;;;;-1:-1:-1;;;;;6118:32:1;;;11738:49:0::1;::::0;::::1;6100:51:1::0;6187:32;;6167:18;;;6160:60;6073:18;;11738:49:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11730:5;:57:::0;;-1:-1:-1;;;;;;11730:57:0::1;-1:-1:-1::0;;;;;11730:57:0;;;::::1;::::0;;;::::1;::::0;;11694:105:::1;11809:7;::::0;-1:-1:-1;;;;;11809:7:0::1;:23;11840:21;11871:4;11877:24;11871:4:::0;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;11877:24:::1;11902:1;11904;11906:7;2581::::0;2608:6;-1:-1:-1;;;;;2608:6:0;;2543:79;11906:7:::1;11809:121;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11809:121:0;;;-1:-1:-1;;;;;6552:32:1;;;11809:121:0::1;::::0;::::1;6534:51:1::0;6601:18;;;6594:34;;;;6644:18;;;6637:34;;;;6687:18;;;6680:34;6751:32;;;6730:19;;;6723:61;11914:15:0::1;6800:19:1::0;;;6793:35;6506:19;;11809:121:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11948:5:0::1;::::0;11971:7:::1;::::0;11941:55:::1;::::0;-1:-1:-1;;;11941:55:0;;-1:-1:-1;;;;;11971:7:0;;::::1;11941:55;::::0;::::1;7474:51:1::0;-1:-1:-1;;7541:18:1;;;7534:34;11948:5:0;::::1;::::0;-1:-1:-1;11941:21:0::1;::::0;7447:18:1;;11941:55:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12007:16:0::1;:21:::0;;-1:-1:-1;;;;12007:21:0::1;-1:-1:-1::0;;;12007:21:0::1;::::0;;11227:809::o;12042:112::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;12097:12:::1;:19:::0;;-1:-1:-1;;;;12127:19:0;-1:-1:-1;;;12127:19:0;;;12042:112::o;7101:335::-;-1:-1:-1;;;;;7194:19:0;;7186:68;;;;-1:-1:-1;;;7186:68:0;;8063:2:1;7186:68:0;;;8045:21:1;8102:2;8082:18;;;8075:30;8141:34;8121:18;;;8114:62;-1:-1:-1;;;8192:18:1;;;8185:34;8236:19;;7186:68:0;7861:400:1;7186:68:0;-1:-1:-1;;;;;7273:21:0;;7265:68;;;;-1:-1:-1;;;7265:68:0;;8468:2:1;7265:68:0;;;8450:21:1;8507:2;8487:18;;;8480:30;8546:34;8526:18;;;8519:62;-1:-1:-1;;;8597:18:1;;;8590:32;8639:19;;7265:68:0;8266:398:1;7265:68:0;-1:-1:-1;;;;;7344:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7396:32;;1283:25:1;;;7396:32:0;;1256:18:1;7396:32:0;;;;;;;7101:335;;;:::o;7442:2818::-;-1:-1:-1;;;;;7530:18:0;;7522:68;;;;-1:-1:-1;;;7522:68:0;;8871:2:1;7522:68:0;;;8853:21:1;8910:2;8890:18;;;8883:30;8949:34;8929:18;;;8922:62;-1:-1:-1;;;9000:18:1;;;8993:35;9045:19;;7522:68:0;8669:401:1;7522:68:0;-1:-1:-1;;;;;7609:16:0;;7601:64;;;;-1:-1:-1;;;7601:64:0;;9277:2:1;7601:64:0;;;9259:21:1;9316:2;9296:18;;;9289:30;9355:34;9335:18;;;9328:62;-1:-1:-1;;;9406:18:1;;;9399:33;9449:19;;7601:64:0;9075:399:1;7601:64:0;7693:1;7684:6;:10;7676:64;;;;-1:-1:-1;;;7676:64:0;;9681:2:1;7676:64:0;;;9663:21:1;9720:2;9700:18;;;9693:30;9759:34;9739:18;;;9732:62;-1:-1:-1;;;9810:18:1;;;9803:39;9859:19;;7676:64:0;9479:405:1;7676:64:0;7751:17;7797:4;7824:7;2581;2608:6;-1:-1:-1;;;;;2608:6:0;;2543:79;7824:7;-1:-1:-1;;;;;7816:15:0;:4;-1:-1:-1;;;;;7816:15:0;;;:32;;;;-1:-1:-1;2581:7:0;2608:6;-1:-1:-1;;;;;7835:13:0;;;2608:6;;7835:13;;7816:32;7812:2094;;;7875:50;7921:3;7875:41;7887:12;;;;;;;;;;;7886:29;;7903:12;;7886:29;;;7901:1;7886:29;7875:6;;:10;:41::i;:::-;:45;;:50::i;:::-;7944:20;;7865:60;;-1:-1:-1;7944:20:0;;7940:322;;;8001:7;;-1:-1:-1;;;;;7987:22:0;;;8001:7;;7987:22;;;;:46;;-1:-1:-1;8027:5:0;;-1:-1:-1;;;;;8013:20:0;;;8027:5;;8013:20;;7987:46;7983:264;;;8091:9;8062:39;;;;:28;:39;;;;;;8104:12;-1:-1:-1;8054:102:0;;;;-1:-1:-1;;;8054:102:0;;10091:2:1;8054:102:0;;;10073:21:1;10130:2;10110:18;;;10103:30;10169:34;10149:18;;;10142:62;-1:-1:-1;;;10220:18:1;;;10213:34;10264:19;;8054:102:0;9889:400:1;8054:102:0;8204:9;8175:39;;;;:28;:39;;;;;8217:12;8175:54;;7983:264;8290:5;;-1:-1:-1;;;;;8282:13:0;;;8290:5;;8282:13;:39;;;;-1:-1:-1;8313:7:0;;-1:-1:-1;;;;;8299:22:0;;;8313:7;;8299:22;;8282:39;:67;;;;-1:-1:-1;;;;;;8327:22:0;;;;;;:18;:22;;;;;;;;8325:24;8282:67;8278:560;;;8389:12;;8379:6;:22;;8371:60;;;;-1:-1:-1;;;8371:60:0;;10496:2:1;8371:60:0;;;10478:21:1;10535:2;10515:18;;;10508:30;-1:-1:-1;;;10554:18:1;;;10547:55;10619:18;;8371:60:0;10294:349:1;8371:60:0;8484:14;;8474:6;8458:13;8468:2;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;8458:13;:22;;;;:::i;:::-;:40;;8450:79;;;;-1:-1:-1;;;8450:79:0;;10980:2:1;8450:79:0;;;10962:21:1;11019:2;10999:18;;;10992:30;11058:28;11038:18;;;11031:56;11104:18;;8450:79:0;10778:350:1;8450:79:0;8561:13;;8551:9;;:23;8548:92;;;12326:20;;12374:8;8596:24;;;;;;8658:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8688:13:0;;;;;;:9;:13;;;;;8702:15;8688:29;;8770:15;;8760:9;;8748:74;;8818:3;;8748:65;;-1:-1:-1;8759:53:0;;8800:12;;8759:53;;;8787:12;;8748:6;;:10;:65::i;:74::-;8736:86;;8278:560;8861:5;;-1:-1:-1;;;;;8855:11:0;;;8861:5;;8855:11;:35;;;;-1:-1:-1;;;;;;8870:20:0;;8885:4;8870:20;;8855:35;8852:492;;;8929:12;;8919:6;:22;;8911:60;;;;-1:-1:-1;;;8911:60:0;;10496:2:1;8911:60:0;;;10478:21:1;10535:2;10515:18;;;10508:30;-1:-1:-1;;;10554:18:1;;;10547:55;10619:18;;8911:60:0;10294:349:1;8911:60:0;9002:77;9075:3;9002:68;9024:16;;9014:9;;:26;9013:56;;9056:13;;9013:56;;;9042:13;;9002:6;;:10;:68::i;:77::-;-1:-1:-1;;;;;9101:15:0;;;;;;:9;:15;;;;;;8990:89;;-1:-1:-1;9118:15:0;9101:32;;:52;;-1:-1:-1;;;;;;9135:15:0;;;;;;:9;:15;;;;;;:18;9101:52;9098:113;;;-1:-1:-1;9186:5:0;9098:113;9232:13;;;;:39;;;;;9259:12;9248:9;;:23;9232:39;9229:100;;;-1:-1:-1;9304:5:0;9229:100;9407:4;9358:28;6261:18;;;:9;:18;;;;;;9433:7;;-1:-1:-1;;;9433:7:0;;;;9432:8;:23;;;;-1:-1:-1;9450:5:0;;-1:-1:-1;;;;;9444:11:0;;;9450:5;;9444:11;9432:23;:39;;;;-1:-1:-1;9459:12:0;;-1:-1:-1;;;9459:12:0;;;;9432:39;:81;;;;;9496:17;;9475:20;:38;9432:81;:108;;;;;9527:13;;9517:9;;:23;9432:108;:122;;;;;9544:10;9432:122;9428:467;;;9575:67;9592:49;9596:6;9603:37;9607:20;9628:11;;9603:3;:37::i;:::-;9592:3;:49::i;:::-;9575:16;:67::i;:::-;9690:21;9733:22;;9730:150;;9780:35;9793:21;9780:12;:35::i;:::-;9848:12;9838:9;:22;9730:150;9556:339;9428:467;7850:2056;7812:2094;9919:11;;9916:161;;9987:4;9969:24;;;;:9;:24;;;;;;:39;;9998:9;9969:28;:39::i;:::-;9962:4;9944:24;;;;:9;:24;;;;;;;:64;;;;10026:39;;-1:-1:-1;;;;;10026:39:0;;;;;;;10055:9;1283:25:1;;1271:2;1256:18;;1137:177;10026:39:0;;;;;;;;9916:161;-1:-1:-1;;;;;10103:15:0;;;;;;:9;:15;;;;;;:27;;10123:6;10103:19;:27::i;:::-;-1:-1:-1;;;;;10087:15:0;;;;;;:9;:15;;;;;:43;10155:40;10173:21;:6;10184:9;10173:10;:21::i;:::-;-1:-1:-1;;;;;10155:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10141:13:0;;;;;;;:9;:13;;;;;:54;;;;10211:41;;;10230:21;:6;10241:9;10230:10;:21::i;:::-;10211:41;;1283:25:1;;;1271:2;1256:18;10211:41:0;;;;;;;7511:2749;;7442:2818;;;:::o;1449:190::-;1535:7;1571:12;1563:6;;;;1555:29;;;;-1:-1:-1;;;1555:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1595:9:0;1607:5;1611:1;1607;:5;:::i;:::-;1595:17;1449:190;-1:-1:-1;;;;;1449:190:0:o;10372:532::-;5392:7;:14;;-1:-1:-1;;;;5392:14:0;-1:-1:-1;;;5392:14:0;;;10450:27;;10469:7:::1;10450:27;10491:12;::::0;-1:-1:-1;;;10491:12:0;::::1;;;10487:26:::0;10505:7:::1;10487:26;10547:16;::::0;;10561:1:::1;10547:16:::0;;;;;::::1;::::0;;10523:21:::1;::::0;10547:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10547:16:0::1;10523:40;;10592:4;10574;10579:1;10574:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10574:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10618:7:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;10618:14:0;;;;:7;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;10574:7;;10618:14;;;;;:7;:14:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10608:4;10613:1;10608:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10608:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;10675:7:::1;::::0;10643:54:::1;::::0;10660:4:::1;::::0;10675:7:::1;10685:11:::0;10643:8:::1;:54::i;:::-;10708:7;::::0;:188:::1;::::0;-1:-1:-1;;;10708:188:0;;-1:-1:-1;;;;;10708:7:0;;::::1;::::0;:58:::1;::::0;:188:::1;::::0;10781:11;;10708:7:::1;::::0;10823:4;;10850::::1;::::0;10870:15:::1;::::0;10708:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10439:465;5417:1;-1:-1:-1::0;5429:7:0;:15;;-1:-1:-1;;;;5429:15:0;;;10372:532::o;11127:92::-;11184:10;;:27;;:10;;;;-1:-1:-1;;;;;11184:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1645:246;1703:7;1727:1;1732;1727:6;1723:47;;-1:-1:-1;1757:1:0;1750:8;;1723:47;1780:9;1792:5;1796:1;1792;:5;:::i;:::-;1780:17;-1:-1:-1;1825:1:0;1816:5;1820:1;1780:17;1816:5;:::i;:::-;:10;1808:56;;;;-1:-1:-1;;;1808:56:0;;13058:2:1;1808:56:0;;;13040:21:1;13097:2;13077:18;;;13070:30;13136:34;13116:18;;;13109:62;-1:-1:-1;;;13187:18:1;;;13180:31;13228:19;;1808:56:0;12856:397:1;1808:56:0;1882:1;1645:246;-1:-1:-1;;;1645:246:0:o;1897:132::-;1955:7;1982:39;1986:1;1989;1982:39;;;;;;;;;;;;;;;;;:3;:39::i;10268:98::-;10325:7;10352:1;10350;:3;10349:9;;10357:1;10349:9;;;-1:-1:-1;10355:1:0;10268:98;-1:-1:-1;10268:98:0:o;1122:179::-;1180:7;;1212:5;1216:1;1212;:5;:::i;:::-;1200:17;;1241:1;1236;:6;;1228:46;;;;-1:-1:-1;;;1228:46:0;;13460:2:1;1228:46:0;;;13442:21:1;13499:2;13479:18;;;13472:30;13538:29;13518:18;;;13511:57;13585:18;;1228:46:0;13258:351:1;1307:136:0;1365:7;1392:43;1396:1;1399;1392:43;;;;;;;;;;;;;;;;;:3;:43::i;2035:189::-;2121:7;2156:12;2149:5;2141:28;;;;-1:-1:-1;;;2141:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2180:9:0;2192:5;2196:1;2192;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:367::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2481:388::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2665:9;2652:23;2684:31;2709:5;2684:31;:::i;:::-;2734:5;-1:-1:-1;2791:2:1;2776:18;;2763:32;2804:33;2763:32;2804:33;:::i;:::-;2856:7;2846:17;;;2481:388;;;;;:::o;2874:127::-;2935:10;2930:3;2926:20;2923:1;2916:31;2966:4;2963:1;2956:15;2990:4;2987:1;2980:15;3006:375;3094:1;3112:5;3126:249;3147:1;3137:8;3134:15;3126:249;;;3197:4;3192:3;3188:14;3182:4;3179:24;3176:50;;;3206:18;;:::i;:::-;3256:1;3246:8;3242:16;3239:49;;;3270:16;;;;3239:49;3353:1;3349:16;;;;;3309:15;;3126:249;;;3006:375;;;;;;:::o;3386:902::-;3435:5;3465:8;3455:80;;-1:-1:-1;3506:1:1;3520:5;;3455:80;3554:4;3544:76;;-1:-1:-1;3591:1:1;3605:5;;3544:76;3636:4;3654:1;3649:59;;;;3722:1;3717:174;;;;3629:262;;3649:59;3679:1;3670:10;;3693:5;;;3717:174;3754:3;3744:8;3741:17;3738:43;;;3761:18;;:::i;:::-;-1:-1:-1;;3817:1:1;3803:16;;3876:5;;3629:262;;3975:2;3965:8;3962:16;3956:3;3950:4;3947:13;3943:36;3937:2;3927:8;3924:16;3919:2;3913:4;3910:12;3906:35;3903:77;3900:203;;;-1:-1:-1;4012:19:1;;;4088:5;;3900:203;4135:42;-1:-1:-1;;4160:8:1;4154:4;4135:42;:::i;:::-;4213:6;4209:1;4205:6;4201:19;4192:7;4189:32;4186:58;;;4224:18;;:::i;:::-;4262:20;;3386:902;-1:-1:-1;;;3386:902:1:o;4293:140::-;4351:5;4380:47;4421:4;4411:8;4407:19;4401:4;4380:47;:::i;4438:168::-;4511:9;;;4542;;4559:15;;;4553:22;;4539:37;4529:71;;4580:18;;:::i;4611:356::-;4813:2;4795:21;;;4832:18;;;4825:30;4891:34;4886:2;4871:18;;4864:62;4958:2;4943:18;;4611:356::o;5670:251::-;5740:6;5793:2;5781:9;5772:7;5768:23;5764:32;5761:52;;;5809:1;5806;5799:12;5761:52;5841:9;5835:16;5860:31;5885:5;5860:31;:::i;6839:456::-;6927:6;6935;6943;6996:2;6984:9;6975:7;6971:23;6967:32;6964:52;;;7012:1;7009;7002:12;6964:52;-1:-1:-1;;7057:16:1;;7163:2;7148:18;;7142:25;7259:2;7244:18;;;7238:25;7057:16;;7142:25;;-1:-1:-1;7238:25:1;6839:456;-1:-1:-1;6839:456:1:o;7579:277::-;7646:6;7699:2;7687:9;7678:7;7674:23;7670:32;7667:52;;;7715:1;7712;7705:12;7667:52;7747:9;7741:16;7800:5;7793:13;7786:21;7779:5;7776:32;7766:60;;7822:1;7819;7812:12;10648:125;10713:9;;;10734:10;;;10731:36;;;10747:18;;:::i;11133:135::-;11172:3;11193:17;;;11190:43;;11213:18;;:::i;:::-;-1:-1:-1;11260:1:1;11249:13;;11133:135::o;11273:128::-;11340:9;;;11361:11;;;11358:37;;;11375:18;;:::i;11538:127::-;11599:10;11594:3;11590:20;11587:1;11580:31;11630:4;11627:1;11620:15;11654:4;11651:1;11644:15;11670:959;11932:4;11980:3;11969:9;11965:19;12011:6;12000:9;11993:25;12054:6;12049:2;12038:9;12034:18;12027:34;12097:3;12092:2;12081:9;12077:18;12070:31;12121:6;12156;12150:13;12187:6;12179;12172:22;12225:3;12214:9;12210:19;12203:26;;12264:2;12256:6;12252:15;12238:29;;12285:1;12295:195;12309:6;12306:1;12303:13;12295:195;;;12374:13;;-1:-1:-1;;;;;12370:39:1;12358:52;;12439:2;12465:15;;;;12430:12;;;;12406:1;12324:9;12295:195;;;-1:-1:-1;;;;;;;12546:32:1;;;;12541:2;12526:18;;12519:60;-1:-1:-1;;12610:3:1;12595:19;12588:35;12507:3;11670:959;-1:-1:-1;;;11670:959:1:o;12634:217::-;12674:1;12700;12690:132;;12744:10;12739:3;12735:20;12732:1;12725:31;12779:4;12776:1;12769:15;12807:4;12804:1;12797:15;12690:132;-1:-1:-1;12836:9:1;;12634:217::o

Swarm Source

ipfs://9724e4f2d2fc45f2386c591de8d9e24b009d3c485d398c71fc41276eb42cc2db

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.