ETH Price: $3,995.02 (+2.20%)

Contract

0x656d3c77Cb94fd14Fe75047752B82Cc87486F235
 

Overview

ETH Balance

0.325734133694732221 ETH

Eth Value

$1,301.31 (@ $3,995.02/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer214114052024-12-16 0:09:4717 hrs ago1734307787IN
0x656d3c77...87486F235
0 ETH0.0006802714.90847163
Approve214062592024-12-15 6:53:5934 hrs ago1734245639IN
0x656d3c77...87486F235
0 ETH0.000357757.68711753
Approve213683742024-12-09 23:56:596 days ago1733788619IN
0x656d3c77...87486F235
0 ETH0.0011354824.39806325
Approve213617952024-12-09 1:56:237 days ago1733709383IN
0x656d3c77...87486F235
0 ETH0.0014406731.1
Transfer213497002024-12-07 9:23:359 days ago1733563415IN
0x656d3c77...87486F235
0 ETH0.0006660214.60398387
Transfer213476332024-12-07 2:28:479 days ago1733538527IN
0x656d3c77...87486F235
0 ETH0.0007390816.22724521
Transfer213469112024-12-07 0:03:239 days ago1733529803IN
0x656d3c77...87486F235
0 ETH0.0009573320.98035171
Approve213440952024-12-06 14:36:5910 days ago1733495819IN
0x656d3c77...87486F235
0 ETH0.0012371126.54755842
Approve213422742024-12-06 8:30:4710 days ago1733473847IN
0x656d3c77...87486F235
0 ETH0.000678814.65339092
Transfer213415142024-12-06 5:58:3510 days ago1733464715IN
0x656d3c77...87486F235
0 ETH0.0006468814.17664085
Transfer213407902024-12-06 3:32:2310 days ago1733455943IN
0x656d3c77...87486F235
0 ETH0.0013895122.15915386
Approve213233782024-12-03 17:10:1113 days ago1733245811IN
0x656d3c77...87486F235
0 ETH0.0012905127.73633266
Approve212899362024-11-29 1:00:4717 days ago1732842047IN
0x656d3c77...87486F235
0 ETH0.000245295.29511387
Approve212643512024-11-25 11:03:2321 days ago1732532603IN
0x656d3c77...87486F235
0 ETH0.0008802218.88885888
Approve212622282024-11-25 3:57:2321 days ago1732507043IN
0x656d3c77...87486F235
0 ETH0.000327427.06813284
Approve212599752024-11-24 20:24:5921 days ago1732479899IN
0x656d3c77...87486F235
0 ETH0.000453449.74309773
Approve212501442024-11-23 11:28:4723 days ago1732361327IN
0x656d3c77...87486F235
0 ETH0.0006536214.02627239
Approve212434042024-11-22 12:54:5924 days ago1732280099IN
0x656d3c77...87486F235
0 ETH0.0007972617.13080114
Approve212401802024-11-22 2:06:4724 days ago1732241207IN
0x656d3c77...87486F235
0 ETH0.0005949512.78373914
Approve212294412024-11-20 14:06:5926 days ago1732111619IN
0x656d3c77...87486F235
0 ETH0.0009083119.51687734
Approve212284742024-11-20 10:52:3526 days ago1732099955IN
0x656d3c77...87486F235
0 ETH0.0004991710.77581461
Approve212251282024-11-19 23:40:3526 days ago1732059635IN
0x656d3c77...87486F235
0 ETH0.0003270611.21457541
Approve212250322024-11-19 23:21:2326 days ago1732058483IN
0x656d3c77...87486F235
0 ETH0.0004989310.77056758
Transfer212240842024-11-19 20:10:4726 days ago1732047047IN
0x656d3c77...87486F235
0 ETH0.0011113817.72038376
Transfer212240812024-11-19 20:10:1126 days ago1732047011IN
0x656d3c77...87486F235
0 ETH0.0013052819.32548761
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
211878582024-11-14 18:55:4731 days ago1731610547
0x656d3c77...87486F235
4.2069 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EPA

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-14
*/

// SPDX-License-Identifier: Unlicensed


// https://pepecoin.net


pragma solidity 0.8.26;

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 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 EPA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isUnrestricted;
    mapping (address => bool) private _isBlocked;

    uint8 private constant _decimals = 9;
    uint256 private constant _totalTokens = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"Enterprise Pepecoin Alliance";
    string private constant _symbol = unicode"EPA";
    uint256 public maxTransferLimit = (_totalTokens * 20) / 1000;
    uint256 public maxSellLimit = (_totalTokens * 20) / 1000;
    uint256 public maxHoldingLimit = (_totalTokens * 20) / 1000;
    
    IUniswapV2Router02 private dexRouter;
    address private liquidityPool;
    uint256 public marketStartBlock = 9999999999;
    uint256 private transactionsThisBlock = 0;
    uint256 private currentBlockNum = 0;
    
    event LimitsUpdated(uint newLimit);
    event MarketEnabled(uint256 timestamp, uint256 blockNumber);
    event AccessStateUpdated(address indexed account, bool status);

    constructor () {
        _isUnrestricted[owner()] = true;
        _isUnrestricted[address(this)] = true;
        
        _balances[_msgSender()] = _totalTokens;
        emit Transfer(address(0), _msgSender(), _totalTokens);
    }

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

    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 sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isBlocked[sender] && !_isBlocked[recipient], "Address cannot trade");
        
        if (block.number < marketStartBlock) {
            require(
                _isUnrestricted[sender] || _isUnrestricted[recipient],
                "Market not active - unauthorized transfer"
            );
        }

        if (sender != owner() && recipient != owner() && !_isUnrestricted[sender] && !_isUnrestricted[recipient]) {
            if (sender == liquidityPool) {
                require(amount <= maxTransferLimit, "Amount exceeds transfer limit");
                require(balanceOf(recipient) + amount <= maxHoldingLimit, "Would exceed holding limit");
            }

            if (recipient == liquidityPool) {
                if (block.number > currentBlockNum) {
                    transactionsThisBlock = 0;
                }
                require(transactionsThisBlock < 3, "Transaction limit per block reached");
                require(amount <= maxSellLimit, "Amount exceeds sell limit");
                transactionsThisBlock++;
                currentBlockNum = block.number;
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function removeLimits() external onlyOwner {
        maxTransferLimit = _totalTokens;
        maxHoldingLimit = _totalTokens;
        maxSellLimit = _totalTokens;
        emit LimitsUpdated(_totalTokens);
    }

    function enableMarket() external onlyOwner() {
        require(marketStartBlock > block.number, "Market already enabled");
        dexRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(dexRouter), _totalTokens);
        liquidityPool = IUniswapV2Factory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());
        dexRouter.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(liquidityPool).approve(address(dexRouter), type(uint).max);
        marketStartBlock = block.number;
        emit MarketEnabled(block.timestamp, block.number);
    }

    function setUnrestricted(address account, bool status) external onlyOwner {
        require(account != address(0), "Cannot set zero address");
        _isUnrestricted[account] = status;
    }

    function bulkSetUnrestricted(address[] calldata accounts, bool status) external onlyOwner {
        require(accounts.length > 0, "Empty array");
        for (uint256 i = 0; i < accounts.length; i++) {
            require(accounts[i] != address(0), "Cannot set zero address");
            _isUnrestricted[accounts[i]] = status;
        }
    }

    function updateBlockStatus(address account, bool status) external onlyOwner {
        require(account != address(0), "Cannot update zero address");
        require(account != owner(), "Cannot update owner status");
        require(account != address(this), "Cannot update contract status");
        require(_isBlocked[account] != status, "Status already set");
        _isBlocked[account] = status;
        emit AccessStateUpdated(account, status);
    }

    function bulkUpdateBlockStatus(address[] calldata accounts, bool status) external onlyOwner {
        require(accounts.length > 0, "Empty array");
        for (uint256 i = 0; i < accounts.length; i++) {
            require(accounts[i] != address(0), "Cannot update zero address");
            require(accounts[i] != owner(), "Cannot update owner status");
            require(accounts[i] != address(this), "Cannot update contract status");
            if (_isBlocked[accounts[i]] != status) {
                _isBlocked[accounts[i]] = status;
                emit AccessStateUpdated(accounts[i], status);
            }
        }
    }

    function getBlockStatus(address account) external view returns (bool) {
        return _isBlocked[account];
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AccessStateUpdated","type":"event"},{"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":"newLimit","type":"uint256"}],"name":"LimitsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"MarketEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"bulkSetUnrestricted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"bulkUpdateBlockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getBlockStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketStartBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setUnrestricted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"updateBlockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526103e86100136009600a6102db565b6100249066017e9d8602b4006102f0565b61002f9060146102f0565b6100399190610307565b6005556103e861004b6009600a6102db565b61005c9066017e9d8602b4006102f0565b6100679060146102f0565b6100719190610307565b6006556103e86100836009600a6102db565b6100949066017e9d8602b4006102f0565b61009f9060146102f0565b6100a99190610307565b6007556402540be3ff600a555f600b555f600c553480156100c8575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160035f61011f5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308152600390925290208054909116600117905561016a6009600a6102db565b61017b9066017e9d8602b4006102f0565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101bb6009600a6102db565b6101cc9066017e9d8602b4006102f0565b60405190815260200160405180910390a3610326565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561023157808504811115610215576102156101e2565b600184161561022357908102905b60019390931c9280026101fa565b935093915050565b5f82610247575060016102d5565b8161025357505f6102d5565b816001811461026957600281146102735761028f565b60019150506102d5565b60ff841115610284576102846101e2565b50506001821b6102d5565b5060208310610133831016604e8410600b84101617156102b2575081810a6102d5565b6102be5f1984846101f6565b805f19048211156102d1576102d16101e2565b0290505b92915050565b5f6102e960ff841683610239565b9392505050565b80820281158282048414176102d5576102d56101e2565b5f8261032157634e487b7160e01b5f52601260045260245ffd5b500490565b611c62806103335f395ff3fe608060405260043610610134575f3560e01c806370a08231116100a8578063a9059cbb1161006d578063a9059cbb14610384578063b10fc89d146103a3578063b8106b99146103c2578063bd85e93b146103e1578063dd62ed3e146103f6578063f6c16d351461043a575f80fd5b806370a08231146102d7578063715018a61461030b578063751039fc1461031f5780638da5cb5b1461033357806395d89b4114610359575f80fd5b8063313ce567116100f9578063313ce56714610227578063348e4774146102425780633e594aa4146102795780634ac6c63b1461028e5780635154f136146102ad578063652e2f04146102c2575f80fd5b806302f377fc1461013f57806306fdde0314610160578063095ea7b3146101b757806318160ddd146101e657806323b872dd14610208575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015e61015936600461184f565b61044e565b005b34801561016b575f80fd5b5060408051808201909152601c81527f456e74657270726973652050657065636f696e20416c6c69616e63650000000060208201525b6040516101ae91906118d1565b60405180910390f35b3480156101c2575f80fd5b506101d66101d136600461191a565b610765565b60405190151581526020016101ae565b3480156101f1575f80fd5b506101fa61077b565b6040519081526020016101ae565b348015610213575f80fd5b506101d6610222366004611944565b61079e565b348015610232575f80fd5b50604051600981526020016101ae565b34801561024d575f80fd5b506101d661025c366004611982565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610284575f80fd5b506101fa600a5481565b348015610299575f80fd5b5061015e6102a836600461184f565b610805565b3480156102b8575f80fd5b506101fa60075481565b3480156102cd575f80fd5b506101fa60065481565b3480156102e2575f80fd5b506101fa6102f1366004611982565b6001600160a01b03165f9081526001602052604090205490565b348015610316575f80fd5b5061015e610945565b34801561032a575f80fd5b5061015e6109b6565b34801561033e575f80fd5b505f546040516001600160a01b0390911681526020016101ae565b348015610364575f80fd5b5060408051808201909152600381526245504160e81b60208201526101a1565b34801561038f575f80fd5b506101d661039e36600461191a565b610a91565b3480156103ae575f80fd5b5061015e6103bd36600461199d565b610a9d565b3480156103cd575f80fd5b5061015e6103dc36600461199d565b610ca1565b3480156103ec575f80fd5b506101fa60055481565b348015610401575f80fd5b506101fa6104103660046119d4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610445575f80fd5b5061015e610d44565b5f546001600160a01b031633146104805760405162461bcd60e51b815260040161047790611a00565b60405180910390fd5b816104bb5760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f8484838181106104d8576104d8611a35565b90506020020160208101906104ed9190611982565b6001600160a01b0316036105435760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b031684848381811061056057610560611a35565b90506020020160208101906105759190611982565b6001600160a01b0316036105cb5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b308484838181106105de576105de611a35565b90506020020160208101906105f39190611982565b6001600160a01b0316036106495760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b81151560045f86868581811061066157610661611a35565b90506020020160208101906106769190611982565b6001600160a01b0316815260208101919091526040015f205460ff16151514610757578160045f8686858181106106af576106af611a35565b90506020020160208101906106c49190611982565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558383828181106106fd576106fd611a35565b90506020020160208101906107129190611982565b6001600160a01b03167fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a553198360405161074e911515815260200190565b60405180910390a25b6001016104bd565b50505050565b5f610771338484611104565b5060015b92915050565b5f6107886009600a611b40565b6107999066017e9d8602b400611b4e565b905090565b5f6107aa848484611228565b6107fb84336107f685604051806060016040528060288152602001611c05602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611761565b611104565b5060019392505050565b5f546001600160a01b0316331461082e5760405162461bcd60e51b815260040161047790611a00565b816108695760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f84848381811061088657610886611a35565b905060200201602081019061089b9190611982565b6001600160a01b0316036108eb5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b8160035f86868581811061090157610901611a35565b90506020020160208101906109169190611982565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161086b565b5f546001600160a01b0316331461096e5760405162461bcd60e51b815260040161047790611a00565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109df5760405162461bcd60e51b815260040161047790611a00565b6109eb6009600a611b40565b6109fc9066017e9d8602b400611b4e565b600555610a0b6009600a611b40565b610a1c9066017e9d8602b400611b4e565b600755610a2b6009600a611b40565b610a3c9066017e9d8602b400611b4e565b6006557f9da1d91fa7d0082eb55c343a33f4ea427cbaab2ff539d2c0bf4bc5d536e4bcc6610a6c6009600a611b40565b610a7d9066017e9d8602b400611b4e565b6040519081526020015b60405180910390a1565b5f610771338484611228565b5f546001600160a01b03163314610ac65760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b03166001600160a01b0316826001600160a01b031603610b875760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b306001600160a01b03831603610bdf5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b6001600160a01b0382165f9081526004602052604090205481151560ff909116151503610c435760405162461bcd60e51b815260206004820152601260248201527114dd185d1d5cc8185b1c9958591e481cd95d60721b6044820152606401610477565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a55319910160405180910390a25050565b5f546001600160a01b03163314610cca5760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610d1a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d6d5760405162461bcd60e51b815260040161047790611a00565b43600a5411610db75760405162461bcd60e51b815260206004820152601660248201527513585c9ad95d08185b1c9958591e48195b98589b195960521b6044820152606401610477565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e03903090610df26009600a611b40565b6107f69066017e9d8602b400611b4e565b60085f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e779190611b65565b6001600160a01b031663c9c653963060085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efa9190611b65565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610f44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f689190611b65565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d7194730610faf816001600160a01b03165f9081526001602052604090205490565b5f80610fc25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611028573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061104d9190611b80565b505060095460085460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156110a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c69190611bab565b5043600a8190556040805142815260208101929092527fb5ab7082c95178f2fb913db100315ace1a06a9de710260741e25d2da8beb169c9101610a87565b6001600160a01b0383166111665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b0382166111c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661128c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b0382166112ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b5f811161134f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6001600160a01b0383165f9081526004602052604090205460ff1615801561138f57506001600160a01b0382165f9081526004602052604090205460ff16155b6113d25760405162461bcd60e51b8152602060048201526014602482015273416464726573732063616e6e6f7420747261646560601b6044820152606401610477565b600a54431015611477576001600160a01b0383165f9081526003602052604090205460ff168061141957506001600160a01b0382165f9081526003602052604090205460ff165b6114775760405162461bcd60e51b815260206004820152602960248201527f4d61726b6574206e6f7420616374697665202d20756e617574686f72697a6564604482015268103a3930b739b332b960b91b6064820152608401610477565b5f546001600160a01b038481169116148015906114a157505f546001600160a01b03838116911614155b80156114c557506001600160a01b0383165f9081526003602052604090205460ff16155b80156114e957506001600160a01b0382165f9081526003602052604090205460ff16155b156116be576009546001600160a01b03908116908416036115d0576005548111156115565760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e742065786365656473207472616e73666572206c696d69740000006044820152606401610477565b60075481611578846001600160a01b03165f9081526001602052604090205490565b6115829190611bc6565b11156115d05760405162461bcd60e51b815260206004820152601a60248201527f576f756c642065786365656420686f6c64696e67206c696d69740000000000006044820152606401610477565b6009546001600160a01b03908116908316036116be57600c544311156115f5575f600b555b6003600b54106116535760405162461bcd60e51b815260206004820152602360248201527f5472616e73616374696f6e206c696d69742070657220626c6f636b20726561636044820152621a195960ea1b6064820152608401610477565b6006548111156116a55760405162461bcd60e51b815260206004820152601960248201527f416d6f756e7420657863656564732073656c6c206c696d6974000000000000006044820152606401610477565b600b8054905f6116b483611bd9565b909155505043600c555b6001600160a01b0383165f908152600160205260409020546116e09082611799565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461170e90826117e1565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121b9085815260200190565b5f81848411156117845760405162461bcd60e51b815260040161047791906118d1565b505f6117908486611bf1565b95945050505050565b5f6117da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611761565b9392505050565b5f806117ed8385611bc6565b9050838110156117da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b801515811461184c575f80fd5b50565b5f805f60408486031215611861575f80fd5b833567ffffffffffffffff811115611877575f80fd5b8401601f81018613611887575f80fd5b803567ffffffffffffffff81111561189d575f80fd5b8660208260051b84010111156118b1575f80fd5b6020918201945092508401356118c68161183f565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461184c575f80fd5b5f806040838503121561192b575f80fd5b823561193681611906565b946020939093013593505050565b5f805f60608486031215611956575f80fd5b833561196181611906565b9250602084013561197181611906565b929592945050506040919091013590565b5f60208284031215611992575f80fd5b81356117da81611906565b5f80604083850312156119ae575f80fd5b82356119b981611906565b915060208301356119c98161183f565b809150509250929050565b5f80604083850312156119e5575f80fd5b82356119f081611906565b915060208301356119c981611906565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611a9857808504811115611a7c57611a7c611a49565b6001841615611a8a57908102905b60019390931c928002611a61565b935093915050565b5f82611aae57506001610775565b81611aba57505f610775565b8160018114611ad05760028114611ada57611af6565b6001915050610775565b60ff841115611aeb57611aeb611a49565b50506001821b610775565b5060208310610133831016604e8410600b8410161715611b19575081810a610775565b611b255f198484611a5d565b805f1904821115611b3857611b38611a49565b029392505050565b5f6117da60ff841683611aa0565b808202811582820484141761077557610775611a49565b5f60208284031215611b75575f80fd5b81516117da81611906565b5f805f60608486031215611b92575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611bbb575f80fd5b81516117da8161183f565b8082018082111561077557610775611a49565b5f60018201611bea57611bea611a49565b5060010190565b8181038181111561077557610775611a4956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220206dc29b71c4680936e9ca279be11ded83dd654cd65d74d847802d2b2939235764736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610134575f3560e01c806370a08231116100a8578063a9059cbb1161006d578063a9059cbb14610384578063b10fc89d146103a3578063b8106b99146103c2578063bd85e93b146103e1578063dd62ed3e146103f6578063f6c16d351461043a575f80fd5b806370a08231146102d7578063715018a61461030b578063751039fc1461031f5780638da5cb5b1461033357806395d89b4114610359575f80fd5b8063313ce567116100f9578063313ce56714610227578063348e4774146102425780633e594aa4146102795780634ac6c63b1461028e5780635154f136146102ad578063652e2f04146102c2575f80fd5b806302f377fc1461013f57806306fdde0314610160578063095ea7b3146101b757806318160ddd146101e657806323b872dd14610208575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015e61015936600461184f565b61044e565b005b34801561016b575f80fd5b5060408051808201909152601c81527f456e74657270726973652050657065636f696e20416c6c69616e63650000000060208201525b6040516101ae91906118d1565b60405180910390f35b3480156101c2575f80fd5b506101d66101d136600461191a565b610765565b60405190151581526020016101ae565b3480156101f1575f80fd5b506101fa61077b565b6040519081526020016101ae565b348015610213575f80fd5b506101d6610222366004611944565b61079e565b348015610232575f80fd5b50604051600981526020016101ae565b34801561024d575f80fd5b506101d661025c366004611982565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610284575f80fd5b506101fa600a5481565b348015610299575f80fd5b5061015e6102a836600461184f565b610805565b3480156102b8575f80fd5b506101fa60075481565b3480156102cd575f80fd5b506101fa60065481565b3480156102e2575f80fd5b506101fa6102f1366004611982565b6001600160a01b03165f9081526001602052604090205490565b348015610316575f80fd5b5061015e610945565b34801561032a575f80fd5b5061015e6109b6565b34801561033e575f80fd5b505f546040516001600160a01b0390911681526020016101ae565b348015610364575f80fd5b5060408051808201909152600381526245504160e81b60208201526101a1565b34801561038f575f80fd5b506101d661039e36600461191a565b610a91565b3480156103ae575f80fd5b5061015e6103bd36600461199d565b610a9d565b3480156103cd575f80fd5b5061015e6103dc36600461199d565b610ca1565b3480156103ec575f80fd5b506101fa60055481565b348015610401575f80fd5b506101fa6104103660046119d4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610445575f80fd5b5061015e610d44565b5f546001600160a01b031633146104805760405162461bcd60e51b815260040161047790611a00565b60405180910390fd5b816104bb5760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f8484838181106104d8576104d8611a35565b90506020020160208101906104ed9190611982565b6001600160a01b0316036105435760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b031684848381811061056057610560611a35565b90506020020160208101906105759190611982565b6001600160a01b0316036105cb5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b308484838181106105de576105de611a35565b90506020020160208101906105f39190611982565b6001600160a01b0316036106495760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b81151560045f86868581811061066157610661611a35565b90506020020160208101906106769190611982565b6001600160a01b0316815260208101919091526040015f205460ff16151514610757578160045f8686858181106106af576106af611a35565b90506020020160208101906106c49190611982565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558383828181106106fd576106fd611a35565b90506020020160208101906107129190611982565b6001600160a01b03167fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a553198360405161074e911515815260200190565b60405180910390a25b6001016104bd565b50505050565b5f610771338484611104565b5060015b92915050565b5f6107886009600a611b40565b6107999066017e9d8602b400611b4e565b905090565b5f6107aa848484611228565b6107fb84336107f685604051806060016040528060288152602001611c05602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611761565b611104565b5060019392505050565b5f546001600160a01b0316331461082e5760405162461bcd60e51b815260040161047790611a00565b816108695760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f84848381811061088657610886611a35565b905060200201602081019061089b9190611982565b6001600160a01b0316036108eb5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b8160035f86868581811061090157610901611a35565b90506020020160208101906109169190611982565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161086b565b5f546001600160a01b0316331461096e5760405162461bcd60e51b815260040161047790611a00565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109df5760405162461bcd60e51b815260040161047790611a00565b6109eb6009600a611b40565b6109fc9066017e9d8602b400611b4e565b600555610a0b6009600a611b40565b610a1c9066017e9d8602b400611b4e565b600755610a2b6009600a611b40565b610a3c9066017e9d8602b400611b4e565b6006557f9da1d91fa7d0082eb55c343a33f4ea427cbaab2ff539d2c0bf4bc5d536e4bcc6610a6c6009600a611b40565b610a7d9066017e9d8602b400611b4e565b6040519081526020015b60405180910390a1565b5f610771338484611228565b5f546001600160a01b03163314610ac65760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b03166001600160a01b0316826001600160a01b031603610b875760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b306001600160a01b03831603610bdf5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b6001600160a01b0382165f9081526004602052604090205481151560ff909116151503610c435760405162461bcd60e51b815260206004820152601260248201527114dd185d1d5cc8185b1c9958591e481cd95d60721b6044820152606401610477565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a55319910160405180910390a25050565b5f546001600160a01b03163314610cca5760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610d1a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d6d5760405162461bcd60e51b815260040161047790611a00565b43600a5411610db75760405162461bcd60e51b815260206004820152601660248201527513585c9ad95d08185b1c9958591e48195b98589b195960521b6044820152606401610477565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e03903090610df26009600a611b40565b6107f69066017e9d8602b400611b4e565b60085f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e779190611b65565b6001600160a01b031663c9c653963060085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efa9190611b65565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610f44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f689190611b65565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d7194730610faf816001600160a01b03165f9081526001602052604090205490565b5f80610fc25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611028573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061104d9190611b80565b505060095460085460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156110a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c69190611bab565b5043600a8190556040805142815260208101929092527fb5ab7082c95178f2fb913db100315ace1a06a9de710260741e25d2da8beb169c9101610a87565b6001600160a01b0383166111665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b0382166111c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661128c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b0382166112ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b5f811161134f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6001600160a01b0383165f9081526004602052604090205460ff1615801561138f57506001600160a01b0382165f9081526004602052604090205460ff16155b6113d25760405162461bcd60e51b8152602060048201526014602482015273416464726573732063616e6e6f7420747261646560601b6044820152606401610477565b600a54431015611477576001600160a01b0383165f9081526003602052604090205460ff168061141957506001600160a01b0382165f9081526003602052604090205460ff165b6114775760405162461bcd60e51b815260206004820152602960248201527f4d61726b6574206e6f7420616374697665202d20756e617574686f72697a6564604482015268103a3930b739b332b960b91b6064820152608401610477565b5f546001600160a01b038481169116148015906114a157505f546001600160a01b03838116911614155b80156114c557506001600160a01b0383165f9081526003602052604090205460ff16155b80156114e957506001600160a01b0382165f9081526003602052604090205460ff16155b156116be576009546001600160a01b03908116908416036115d0576005548111156115565760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e742065786365656473207472616e73666572206c696d69740000006044820152606401610477565b60075481611578846001600160a01b03165f9081526001602052604090205490565b6115829190611bc6565b11156115d05760405162461bcd60e51b815260206004820152601a60248201527f576f756c642065786365656420686f6c64696e67206c696d69740000000000006044820152606401610477565b6009546001600160a01b03908116908316036116be57600c544311156115f5575f600b555b6003600b54106116535760405162461bcd60e51b815260206004820152602360248201527f5472616e73616374696f6e206c696d69742070657220626c6f636b20726561636044820152621a195960ea1b6064820152608401610477565b6006548111156116a55760405162461bcd60e51b815260206004820152601960248201527f416d6f756e7420657863656564732073656c6c206c696d6974000000000000006044820152606401610477565b600b8054905f6116b483611bd9565b909155505043600c555b6001600160a01b0383165f908152600160205260409020546116e09082611799565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461170e90826117e1565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121b9085815260200190565b5f81848411156117845760405162461bcd60e51b815260040161047791906118d1565b505f6117908486611bf1565b95945050505050565b5f6117da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611761565b9392505050565b5f806117ed8385611bc6565b9050838110156117da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b801515811461184c575f80fd5b50565b5f805f60408486031215611861575f80fd5b833567ffffffffffffffff811115611877575f80fd5b8401601f81018613611887575f80fd5b803567ffffffffffffffff81111561189d575f80fd5b8660208260051b84010111156118b1575f80fd5b6020918201945092508401356118c68161183f565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461184c575f80fd5b5f806040838503121561192b575f80fd5b823561193681611906565b946020939093013593505050565b5f805f60608486031215611956575f80fd5b833561196181611906565b9250602084013561197181611906565b929592945050506040919091013590565b5f60208284031215611992575f80fd5b81356117da81611906565b5f80604083850312156119ae575f80fd5b82356119b981611906565b915060208301356119c98161183f565b809150509250929050565b5f80604083850312156119e5575f80fd5b82356119f081611906565b915060208301356119c981611906565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611a9857808504811115611a7c57611a7c611a49565b6001841615611a8a57908102905b60019390931c928002611a61565b935093915050565b5f82611aae57506001610775565b81611aba57505f610775565b8160018114611ad05760028114611ada57611af6565b6001915050610775565b60ff841115611aeb57611aeb611a49565b50506001821b610775565b5060208310610133831016604e8410600b8410161715611b19575081810a610775565b611b255f198484611a5d565b805f1904821115611b3857611b38611a49565b029392505050565b5f6117da60ff841683611aa0565b808202811582820484141761077557610775611a49565b5f60208284031215611b75575f80fd5b81516117da81611906565b5f805f60608486031215611b92575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611bbb575f80fd5b81516117da8161183f565b8082018082111561077557610775611a49565b5f60018201611bea57611bea611a49565b5060010190565b8181038181111561077557610775611a4956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220206dc29b71c4680936e9ca279be11ded83dd654cd65d74d847802d2b2939235764736f6c634300081a0033

Deployed Bytecode Sourcemap

3294:7535:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10021:645;;;;;;;;;;-1:-1:-1;10021:645:0;;;;;:::i;:::-;;:::i;:::-;;4713:83;;;;;;;;;;-1:-1:-1;4783:5:0;;;;;;;;;;;;;;;;;4713:83;;;;;;;:::i;:::-;;;;;;;;5551:161;;;;;;;;;;-1:-1:-1;5551:161:0;;;;;:::i;:::-;;:::i;:::-;;;1983:14:1;;1976:22;1958:41;;1946:2;1931:18;5551:161:0;1818:187:1;4990:100:0;;;;;;;;;;;;;:::i;:::-;;;2156:25:1;;;2144:2;2129:18;4990:100:0;2010:177:1;5720:313:0;;;;;;;;;;-1:-1:-1;5720:313:0;;;;;:::i;:::-;;:::i;4899:83::-;;;;;;;;;;-1:-1:-1;4899:83:0;;3648:1;2847:36:1;;2835:2;2820:18;4899:83:0;2705:184:1;10674:115:0;;;;;;;;;;-1:-1:-1;10674:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;10762:19:0;10738:4;10762:19;;;:10;:19;;;;;;;;;10674:115;4144:44;;;;;;;;;;;;;;;;9196:348;;;;;;;;;;-1:-1:-1;9196:348:0;;;;;:::i;:::-;;:::i;3993:59::-;;;;;;;;;;;;;;;;3930:56;;;;;;;;;;;;;;;;5098:119;;;;;;;;;;-1:-1:-1;5098:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5191:18:0;5164:7;5191:18;;;:9;:18;;;;;;;5098:119;2590:148;;;;;;;;;;;;;:::i;8054:215::-;;;;;;;;;;;;;:::i;2376:79::-;;;;;;;;;;-1:-1:-1;2414:7:0;2441:6;2376:79;;-1:-1:-1;;;;;2441:6:0;;;3292:51:1;;3280:2;3265:18;2376:79:0;3146:203:1;4804:87:0;;;;;;;;;;-1:-1:-1;4876:7:0;;;;;;;;;;;;-1:-1:-1;;;4876:7:0;;;;4804:87;;5225:167;;;;;;;;;;-1:-1:-1;5225:167:0;;;;;:::i;:::-;;:::i;9552:461::-;;;;;;;;;;-1:-1:-1;9552:461:0;;;;;:::i;:::-;;:::i;8994:194::-;;;;;;;;;;-1:-1:-1;8994:194:0;;;;;:::i;:::-;;:::i;3863:60::-;;;;;;;;;;;;;;;;5400:143;;;;;;;;;;-1:-1:-1;5400:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5508:18:0;;;5481:7;5508:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5400:143;8277:709;;;;;;;;;;;;;:::i;10021:645::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;;;;;;;;;10132:19;10124:43:::1;;;::::0;-1:-1:-1;;;10124:43:0;;4697:2:1;10124:43:0::1;::::0;::::1;4679:21:1::0;4736:2;4716:18;;;4709:30;-1:-1:-1;;;4755:18:1;;;4748:41;4806:18;;10124:43:0::1;4495:335:1::0;10124:43:0::1;10183:9;10178:481;10198:19:::0;;::::1;10178:481;;;10270:1;10247:8:::0;;10256:1;10247:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10247:25:0::1;::::0;10239:64:::1;;;::::0;-1:-1:-1;;;10239:64:0;;5169:2:1;10239:64:0::1;::::0;::::1;5151:21:1::0;5208:2;5188:18;;;5181:30;5247:28;5227:18;;;5220:56;5293:18;;10239:64:0::1;4967:350:1::0;10239:64:0::1;2414:7:::0;2441:6;-1:-1:-1;;;;;2441:6:0;10326:8;;10335:1;10326:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10326:22:0::1;::::0;10318:61:::1;;;::::0;-1:-1:-1;;;10318:61:0;;5524:2:1;10318:61:0::1;::::0;::::1;5506:21:1::0;5563:2;5543:18;;;5536:30;5602:28;5582:18;;;5575:56;5648:18;;10318:61:0::1;5322:350:1::0;10318:61:0::1;10425:4;10402:8:::0;;10411:1;10402:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10402:28:0::1;::::0;10394:70:::1;;;::::0;-1:-1:-1;;;10394:70:0;;5879:2:1;10394:70:0::1;::::0;::::1;5861:21:1::0;5918:2;5898:18;;;5891:30;5957:31;5937:18;;;5930:59;6006:18;;10394:70:0::1;5677:353:1::0;10394:70:0::1;10510:6;10483:33;;:10;:23;10494:8;;10503:1;10494:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10483:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10483:23:0;;::::1;;:33;;;10479:169;;10563:6;10537:10;:23;10548:8;;10557:1;10548:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10537:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10537:23:0;:32;;-1:-1:-1;;10537:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10612:8;;10621:1;10612:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10593:39:0::1;;10625:6;10593:39;;;;1983:14:1::0;1976:22;1958:41;;1946:2;1931:18;;1818:187;10593:39:0::1;;;;;;;;10479:169;10219:3;;10178:481;;;;10021:645:::0;;;:::o;5551:161::-;5626:4;5643:39;213:10;5666:7;5675:6;5643:8;:39::i;:::-;-1:-1:-1;5700:4:0;5551:161;;;;;:::o;4990:100::-;5043:7;3714:13;3648:1;3714:2;:13;:::i;:::-;3696:31;;:15;:31;:::i;:::-;5063:19;;4990:100;:::o;5720:313::-;5818:4;5835:36;5845:6;5853:9;5864:6;5835:9;:36::i;:::-;5882:121;5891:6;213:10;5913:89;5951:6;5913:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5913:19:0;;;;;;:11;:19;;;;;;;;213:10;5913:33;;;;;;;;;;:37;:89::i;:::-;5882:8;:121::i;:::-;-1:-1:-1;6021:4:0;5720:313;;;;;:::o;9196:348::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;9305:19;9297:43:::1;;;::::0;-1:-1:-1;;;9297:43:0;;4697:2:1;9297:43:0::1;::::0;::::1;4679:21:1::0;4736:2;4716:18;;;4709:30;-1:-1:-1;;;4755:18:1;;;4748:41;4806:18;;9297:43:0::1;4495:335:1::0;9297:43:0::1;9356:9;9351:186;9371:19:::0;;::::1;9351:186;;;9443:1;9420:8:::0;;9429:1;9420:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9420:25:0::1;::::0;9412:61:::1;;;::::0;-1:-1:-1;;;9412:61:0;;7974:2:1;9412:61:0::1;::::0;::::1;7956:21:1::0;8013:2;7993:18;;;7986:30;-1:-1:-1;;;8032:18:1;;;8025:53;8095:18;;9412:61:0::1;7772:347:1::0;9412:61:0::1;9519:6;9488:15;:28;9504:8;;9513:1;9504:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9488:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9488:28:0;:37;;-1:-1:-1;;9488:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;9392:3:0::1;9351:186;;2590:148:::0;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;2697:1:::1;2681:6:::0;;2660:40:::1;::::0;-1:-1:-1;;;;;2681:6:0;;::::1;::::0;2660:40:::1;::::0;2697:1;;2660:40:::1;2728:1;2711:19:::0;;-1:-1:-1;;;;;;2711:19:0::1;::::0;;2590:148::o;8054:215::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8108:16;:31:::0;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8150:15;:30:::0;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8191:12;:27:::0;8234::::1;3714:13;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8234:27;::::0;2156:25:1;;;2144:2;2129:18;8234:27:0::1;;;;;;;;8054:215::o:0;5225:167::-;5303:4;5320:42;213:10;5344:9;5355:6;5320:9;:42::i;9552:461::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9647:21:0;::::1;9639:60;;;::::0;-1:-1:-1;;;9639:60:0;;5169:2:1;9639:60:0::1;::::0;::::1;5151:21:1::0;5208:2;5188:18;;;5181:30;5247:28;5227:18;;;5220:56;5293:18;;9639:60:0::1;4967:350:1::0;9639:60:0::1;2414:7:::0;2441:6;-1:-1:-1;;;;;2441:6:0;-1:-1:-1;;;;;9718:18:0::1;:7;-1:-1:-1::0;;;;;9718:18:0::1;::::0;9710:57:::1;;;::::0;-1:-1:-1;;;9710:57:0;;5524:2:1;9710:57:0::1;::::0;::::1;5506:21:1::0;5563:2;5543:18;;;5536:30;5602:28;5582:18;;;5575:56;5648:18;;9710:57:0::1;5322:350:1::0;9710:57:0::1;9805:4;-1:-1:-1::0;;;;;9786:24:0;::::1;::::0;9778:66:::1;;;::::0;-1:-1:-1;;;9778:66:0;;5879:2:1;9778:66:0::1;::::0;::::1;5861:21:1::0;5918:2;5898:18;;;5891:30;5957:31;5937:18;;;5930:59;6006:18;;9778:66:0::1;5677:353:1::0;9778:66:0::1;-1:-1:-1::0;;;;;9863:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;:29;::::1;;:19;::::0;;::::1;:29;;::::0;9855:60:::1;;;::::0;-1:-1:-1;;;9855:60:0;;8326:2:1;9855:60:0::1;::::0;::::1;8308:21:1::0;8365:2;8345:18;;;8338:30;-1:-1:-1;;;8384:18:1;;;8377:48;8442:18;;9855:60:0::1;8124:342:1::0;9855:60:0::1;-1:-1:-1::0;;;;;9926:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;9926:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;9970:35;;1958:41:1;;;9970:35:0::1;::::0;1931:18:1;9970:35:0::1;;;;;;;9552:461:::0;;:::o;8994:194::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9087:21:0;::::1;9079:57;;;::::0;-1:-1:-1;;;9079:57:0;;7974:2:1;9079:57:0::1;::::0;::::1;7956:21:1::0;8013:2;7993:18;;;7986:30;-1:-1:-1;;;8032:18:1;;;8025:53;8095:18;;9079:57:0::1;7772:347:1::0;9079:57:0::1;-1:-1:-1::0;;;;;9147:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:33;;-1:-1:-1;;9147:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8994:194::o;8277:709::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;8360:12:::1;8341:16;;:31;8333:66;;;::::0;-1:-1:-1;;;8333:66:0;;8673:2:1;8333:66:0::1;::::0;::::1;8655:21:1::0;8712:2;8692:18;;;8685:30;-1:-1:-1;;;8731:18:1;;;8724:52;8793:18;;8333:66:0::1;8471:346:1::0;8333:66:0::1;8410:9;:74:::0;;-1:-1:-1;;;;;;8410:74:0::1;8441:42;8410:74:::0;;::::1;::::0;;;8495:57:::1;::::0;8512:4:::1;::::0;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;8495:57::-;8597:9;;;;;;;;;-1:-1:-1::0;;;;;8597:9:0::1;-1:-1:-1::0;;;;;8597:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8579:49:0::1;;8637:4;8644:9;;;;;;;;;-1:-1:-1::0;;;;;8644:9:0::1;-1:-1:-1::0;;;;;8644:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8579:82;::::0;-1:-1:-1;;;;;;8579:82:0::1;::::0;;;;;;-1:-1:-1;;;;;9270:32:1;;;8579:82:0::1;::::0;::::1;9252:51:1::0;9339:32;;9319:18;;;9312:60;9225:18;;8579:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8563:13;:98:::0;;-1:-1:-1;;;;;8563:98:0;;::::1;-1:-1:-1::0;;;;;;8563:98:0;;::::1;;::::0;;8672:9:::1;::::0;::::1;:25;8705:21;8736:4;8743:24;8736:4:::0;-1:-1:-1;;;;;5191:18:0;5164:7;5191:18;;;:9;:18;;;;;;;5098:119;8743:24:::1;8769:1;8772::::0;8775:7:::1;2414::::0;2441:6;-1:-1:-1;;;;;2441:6:0;;2376:79;8775:7:::1;8672:128;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8672:128:0;;;-1:-1:-1;;;;;9704:32:1;;;8672:128:0::1;::::0;::::1;9686:51:1::0;9753:18;;;9746:34;;;;9796:18;;;9789:34;;;;9839:18;;;9832:34;9903:32;;;9882:19;;;9875:61;8784:15:0::1;9952:19:1::0;;;9945:35;9658:19;;8672:128:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8818:13:0::1;::::0;8849:9:::1;::::0;8811:65:::1;::::0;-1:-1:-1;;;8811:65:0;;-1:-1:-1;;;;;8849:9:0;;::::1;8811:65;::::0;::::1;10626:51:1::0;-1:-1:-1;;10693:18:1;;;10686:34;8818:13:0;::::1;::::0;-1:-1:-1;8811:29:0::1;::::0;10599:18:1;;8811:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8906:12:0::1;8887:16;:31:::0;;;8934:44:::1;::::0;;8948:15:::1;11155:25:1::0;;11211:2;11196:18;;11189:34;;;;8934:44:0::1;::::0;11128:18:1;8934:44:0::1;10981:248:1::0;6041:335:0;-1:-1:-1;;;;;6134:19:0;;6126:68;;;;-1:-1:-1;;;6126:68:0;;11436:2:1;6126:68:0;;;11418:21:1;11475:2;11455:18;;;11448:30;11514:34;11494:18;;;11487:62;-1:-1:-1;;;11565:18:1;;;11558:34;11609:19;;6126:68:0;11234:400:1;6126:68:0;-1:-1:-1;;;;;6213:21:0;;6205:68;;;;-1:-1:-1;;;6205:68:0;;11841:2:1;6205:68:0;;;11823:21:1;11880:2;11860:18;;;11853:30;11919:34;11899:18;;;11892:62;-1:-1:-1;;;11970:18:1;;;11963:32;12012:19;;6205:68:0;11639:398:1;6205:68:0;-1:-1:-1;;;;;6284:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6336:32;;2156:25:1;;;6336:32:0;;2129:18:1;6336:32:0;;;;;;;;6041:335;;;:::o;6384:1662::-;-1:-1:-1;;;;;6481:20:0;;6473:70;;;;-1:-1:-1;;;6473:70:0;;12244:2:1;6473:70:0;;;12226:21:1;12283:2;12263:18;;;12256:30;12322:34;12302:18;;;12295:62;-1:-1:-1;;;12373:18:1;;;12366:35;12418:19;;6473:70:0;12042:401:1;6473:70:0;-1:-1:-1;;;;;6562:23:0;;6554:71;;;;-1:-1:-1;;;6554:71:0;;12650:2:1;6554:71:0;;;12632:21:1;12689:2;12669:18;;;12662:30;12728:34;12708:18;;;12701:62;-1:-1:-1;;;12779:18:1;;;12772:33;12822:19;;6554:71:0;12448:399:1;6554:71:0;6653:1;6644:6;:10;6636:64;;;;-1:-1:-1;;;6636:64:0;;13054:2:1;6636:64:0;;;13036:21:1;13093:2;13073:18;;;13066:30;13132:34;13112:18;;;13105:62;-1:-1:-1;;;13183:18:1;;;13176:39;13232:19;;6636:64:0;12852:405:1;6636:64:0;-1:-1:-1;;;;;6720:18:0;;;;;;:10;:18;;;;;;;;6719:19;:45;;;;-1:-1:-1;;;;;;6743:21:0;;;;;;:10;:21;;;;;;;;6742:22;6719:45;6711:78;;;;-1:-1:-1;;;6711:78:0;;13464:2:1;6711:78:0;;;13446:21:1;13503:2;13483:18;;;13476:30;-1:-1:-1;;;13522:18:1;;;13515:50;13582:18;;6711:78:0;13262:344:1;6711:78:0;6829:16;;6814:12;:31;6810:220;;;-1:-1:-1;;;;;6888:23:0;;;;;;:15;:23;;;;;;;;;:53;;-1:-1:-1;;;;;;6915:26:0;;;;;;:15;:26;;;;;;;;6888:53;6862:156;;;;-1:-1:-1;;;6862:156:0;;13813:2:1;6862:156:0;;;13795:21:1;13852:2;13832:18;;;13825:30;13891:34;13871:18;;;13864:62;-1:-1:-1;;;13942:18:1;;;13935:39;13991:19;;6862:156:0;13611:405:1;6862:156:0;2414:7;2441:6;-1:-1:-1;;;;;7046:17:0;;;2441:6;;7046:17;;;;:41;;-1:-1:-1;2414:7:0;2441:6;-1:-1:-1;;;;;7067:20:0;;;2441:6;;7067:20;;7046:41;:69;;;;-1:-1:-1;;;;;;7092:23:0;;;;;;:15;:23;;;;;;;;7091:24;7046:69;:100;;;;-1:-1:-1;;;;;;7120:26:0;;;;;;:15;:26;;;;;;;;7119:27;7046:100;7042:818;;;7177:13;;-1:-1:-1;;;;;7177:13:0;;;7167:23;;;;7163:238;;7229:16;;7219:6;:26;;7211:68;;;;-1:-1:-1;;;7211:68:0;;14223:2:1;7211:68:0;;;14205:21:1;14262:2;14242:18;;;14235:30;14301:31;14281:18;;;14274:59;14350:18;;7211:68:0;14021:353:1;7211:68:0;7339:15;;7329:6;7306:20;7316:9;-1:-1:-1;;;;;5191:18:0;5164:7;5191:18;;;:9;:18;;;;;;;5098:119;7306:20;:29;;;;:::i;:::-;:48;;7298:87;;;;-1:-1:-1;;;7298:87:0;;14711:2:1;7298:87:0;;;14693:21:1;14750:2;14730:18;;;14723:30;14789:28;14769:18;;;14762:56;14835:18;;7298:87:0;14509:350:1;7298:87:0;7434:13;;-1:-1:-1;;;;;7434:13:0;;;7421:26;;;;7417:432;;7487:15;;7472:12;:30;7468:104;;;7551:1;7527:21;:25;7468:104;7622:1;7598:21;;:25;7590:73;;;;-1:-1:-1;;;7590:73:0;;15066:2:1;7590:73:0;;;15048:21:1;15105:2;15085:18;;;15078:30;15144:34;15124:18;;;15117:62;-1:-1:-1;;;15195:18:1;;;15188:33;15238:19;;7590:73:0;14864:399:1;7590:73:0;7700:12;;7690:6;:22;;7682:60;;;;-1:-1:-1;;;7682:60:0;;15470:2:1;7682:60:0;;;15452:21:1;15509:2;15489:18;;;15482:30;15548:27;15528:18;;;15521:55;15593:18;;7682:60:0;15268:349:1;7682:60:0;7761:21;:23;;;:21;:23;;;:::i;:::-;;;;-1:-1:-1;;7821:12:0;7803:15;:30;7417:432;-1:-1:-1;;;;;7892:17:0;;;;;;:9;:17;;;;;;:29;;7914:6;7892:21;:29::i;:::-;-1:-1:-1;;;;;7872:17:0;;;;;;;:9;:17;;;;;;:49;;;;7955:20;;;;;;;:32;;7980:6;7955:24;:32::i;:::-;-1:-1:-1;;;;;7932:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8003:35;;;;;;;;;;8031:6;2156:25:1;;2144:2;2129:18;;2010:177;1270:190:0;1356:7;1392:12;1384:6;;;;1376:29;;;;-1:-1:-1;;;1376:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1416:9:0;1428:5;1432:1;1428;:5;:::i;:::-;1416:17;1270:190;-1:-1:-1;;;;;1270:190:0:o;1126:136::-;1184:7;1211:43;1215:1;1218;1211:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1204:50;1126:136;-1:-1:-1;;;1126:136:0:o;939:179::-;997:7;;1029:5;1033:1;1029;:5;:::i;:::-;1017:17;;1058:1;1053;:6;;1045:46;;;;-1:-1:-1;;;1045:46:0;;16097:2:1;1045:46:0;;;16079:21:1;16136:2;16116:18;;;16109:30;16175:29;16155:18;;;16148:57;16222:18;;1045:46:0;15895:351:1;14:118;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:745::-;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;387:18;379:6;376:30;373:50;;;419:1;416;409:12;373:50;442:22;;495:4;487:13;;483:27;-1:-1:-1;473:55:1;;524:1;521;514:12;473:55;564:2;551:16;590:18;582:6;579:30;576:50;;;622:1;619;612:12;576:50;677:7;670:4;660:6;657:1;653:14;649:2;645:23;641:34;638:47;635:67;;;698:1;695;688:12;635:67;729:4;721:13;;;;-1:-1:-1;753:6:1;-1:-1:-1;794:20:1;;781:34;824:28;781:34;824:28;:::i;:::-;871:5;861:15;;;137:745;;;;;:::o;887:418::-;1036:2;1025:9;1018:21;999:4;1068:6;1062:13;1111:6;1106:2;1095:9;1091:18;1084:34;1170:6;1165:2;1157:6;1153:15;1148:2;1137:9;1133:18;1127:50;1226:1;1221:2;1212:6;1201:9;1197:22;1193:31;1186:42;1296:2;1289;1285:7;1280:2;1272:6;1268:15;1264:29;1253:9;1249:45;1245:54;1237:62;;;887:418;;;;:::o;1310:131::-;-1:-1:-1;;;;;1385:31:1;;1375:42;;1365:70;;1431:1;1428;1421:12;1446:367;1514:6;1522;1575:2;1563:9;1554:7;1550:23;1546:32;1543:52;;;1591:1;1588;1581:12;1543:52;1630:9;1617:23;1649:31;1674:5;1649:31;:::i;:::-;1699:5;1777:2;1762:18;;;;1749:32;;-1:-1:-1;;;1446:367:1:o;2192:508::-;2269:6;2277;2285;2338:2;2326:9;2317:7;2313:23;2309:32;2306:52;;;2354:1;2351;2344:12;2306:52;2393:9;2380:23;2412:31;2437:5;2412:31;:::i;:::-;2462:5;-1:-1:-1;2519:2:1;2504:18;;2491:32;2532:33;2491:32;2532:33;:::i;:::-;2192:508;;2584:7;;-1:-1:-1;;;2664:2:1;2649:18;;;;2636:32;;2192:508::o;2894:247::-;2953:6;3006:2;2994:9;2985:7;2981:23;2977:32;2974:52;;;3022:1;3019;3012:12;2974:52;3061:9;3048:23;3080:31;3105:5;3080:31;:::i;3354:382::-;3419:6;3427;3480:2;3468:9;3459:7;3455:23;3451:32;3448:52;;;3496:1;3493;3486:12;3448:52;3535:9;3522:23;3554:31;3579:5;3554:31;:::i;:::-;3604:5;-1:-1:-1;3661:2:1;3646:18;;3633:32;3674:30;3633:32;3674:30;:::i;:::-;3723:7;3713:17;;;3354:382;;;;;:::o;3741:388::-;3809:6;3817;3870:2;3858:9;3849:7;3845:23;3841:32;3838:52;;;3886:1;3883;3876:12;3838:52;3925:9;3912:23;3944:31;3969:5;3944:31;:::i;:::-;3994:5;-1:-1:-1;4051:2:1;4036:18;;4023:32;4064:33;4023:32;4064:33;:::i;4134:356::-;4336:2;4318:21;;;4355:18;;;4348:30;4414:34;4409:2;4394:18;;4387:62;4481:2;4466:18;;4134:356::o;4835:127::-;4896:10;4891:3;4887:20;4884:1;4877:31;4927:4;4924:1;4917:15;4951:4;4948:1;4941:15;6035:127;6096:10;6091:3;6087:20;6084:1;6077:31;6127:4;6124:1;6117:15;6151:4;6148:1;6141:15;6167:375;6255:1;6273:5;6287:249;6308:1;6298:8;6295:15;6287:249;;;6358:4;6353:3;6349:14;6343:4;6340:24;6337:50;;;6367:18;;:::i;:::-;6417:1;6407:8;6403:16;6400:49;;;6431:16;;;;6400:49;6514:1;6510:16;;;;;6470:15;;6287:249;;;6167:375;;;;;;:::o;6547:902::-;6596:5;6626:8;6616:80;;-1:-1:-1;6667:1:1;6681:5;;6616:80;6715:4;6705:76;;-1:-1:-1;6752:1:1;6766:5;;6705:76;6797:4;6815:1;6810:59;;;;6883:1;6878:174;;;;6790:262;;6810:59;6840:1;6831:10;;6854:5;;;6878:174;6915:3;6905:8;6902:17;6899:43;;;6922:18;;:::i;:::-;-1:-1:-1;;6978:1:1;6964:16;;7037:5;;6790:262;;7136:2;7126:8;7123:16;7117:3;7111:4;7108:13;7104:36;7098:2;7088:8;7085:16;7080:2;7074:4;7071:12;7067:35;7064:77;7061:203;;;-1:-1:-1;7173:19:1;;;7249:5;;7061:203;7296:42;-1:-1:-1;;7321:8:1;7315:4;7296:42;:::i;:::-;7374:6;7370:1;7366:6;7362:19;7353:7;7350:32;7347:58;;;7385:18;;:::i;:::-;7423:20;;6547:902;-1:-1:-1;;;6547:902:1:o;7454:140::-;7512:5;7541:47;7582:4;7572:8;7568:19;7562:4;7541:47;:::i;7599:168::-;7672:9;;;7703;;7720:15;;;7714:22;;7700:37;7690:71;;7741:18;;:::i;8822:251::-;8892:6;8945:2;8933:9;8924:7;8920:23;8916:32;8913:52;;;8961:1;8958;8951:12;8913:52;8993:9;8987:16;9012:31;9037:5;9012:31;:::i;9991:456::-;10079:6;10087;10095;10148:2;10136:9;10127:7;10123:23;10119:32;10116:52;;;10164:1;10161;10154:12;10116:52;-1:-1:-1;;10209:16:1;;10315:2;10300:18;;10294:25;10411:2;10396:18;;;10390:25;10209:16;;10294:25;;-1:-1:-1;10390:25:1;9991:456;-1:-1:-1;9991:456:1:o;10731:245::-;10798:6;10851:2;10839:9;10830:7;10826:23;10822:32;10819:52;;;10867:1;10864;10857:12;10819:52;10899:9;10893:16;10918:28;10940:5;10918:28;:::i;14379:125::-;14444:9;;;14465:10;;;14462:36;;;14478:18;;:::i;15622:135::-;15661:3;15682:17;;;15679:43;;15702:18;;:::i;:::-;-1:-1:-1;15749:1:1;15738:13;;15622:135::o;15762:128::-;15829:9;;;15850:11;;;15847:37;;;15864:18;;:::i

Swarm Source

ipfs://206dc29b71c4680936e9ca279be11ded83dd654cd65d74d847802d2b29392357

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.