ETH Price: $1,937.91 (+6.26%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Swap178010222023-07-29 20:16:23941 days ago1690661783IN
0x9EEBC4FC...e75f5f20c
0.1 ETH0.004895327.4505164
Swap178010222023-07-29 20:16:23941 days ago1690661783IN
0x9EEBC4FC...e75f5f20c
0.15 ETH0.0051508828.35875428
Swap178010222023-07-29 20:16:23941 days ago1690661783IN
0x9EEBC4FC...e75f5f20c
0.1 ETH0.0050955328.40319113
Swap178010222023-07-29 20:16:23941 days ago1690661783IN
0x9EEBC4FC...e75f5f20c
0.05 ETH0.0051370828.63483047
Swap178010222023-07-29 20:16:23941 days ago1690661783IN
0x9EEBC4FC...e75f5f20c
0.5 ETH0.0051370828.63483047
Saftey178009642023-07-29 20:04:47941 days ago1690661087IN
0x9EEBC4FC...e75f5f20c
0 ETH0.0016512958.53594381
Dividend Claim178009612023-07-29 20:04:11941 days ago1690661051IN
0x9EEBC4FC...e75f5f20c
0 ETH0.0018835557.12925727
Dividend Claim178009502023-07-29 20:01:59941 days ago1690660919IN
0x9EEBC4FC...e75f5f20c
0 ETH0.0016810650.98760369
Swap178009242023-07-29 19:56:47941 days ago1690660607IN
0x9EEBC4FC...e75f5f20c
0.25 ETH0.0096874753.05155198
Swap178008842023-07-29 19:48:47941 days ago1690660127IN
0x9EEBC4FC...e75f5f20c
0.005 ETH0.008463946.35088615
Saftey178008682023-07-29 19:45:35941 days ago1690659935IN
0x9EEBC4FC...e75f5f20c
0 ETH0.0010896738.62716187
Swap178008622023-07-29 19:44:11941 days ago1690659851IN
0x9EEBC4FC...e75f5f20c
0.05 ETH0.0063997135.46178674
Swap178008602023-07-29 19:43:47941 days ago1690659827IN
0x9EEBC4FC...e75f5f20c
0.2 ETH0.0067902337.18535217
Swap178008582023-07-29 19:43:23941 days ago1690659803IN
0x9EEBC4FC...e75f5f20c
0.125 ETH0.0068023737.25187266
Swap178008522023-07-29 19:42:11941 days ago1690659731IN
0x9EEBC4FC...e75f5f20c
0.25 ETH0.0082215445
Swap178008492023-07-29 19:41:35941 days ago1690659695IN
0x9EEBC4FC...e75f5f20c
1 ETH0.0079989537.68720245
Swap178008482023-07-29 19:41:23941 days ago1690659683IN
0x9EEBC4FC...e75f5f20c
0.2 ETH0.0070903939.05755071
Swap178008452023-07-29 19:40:47941 days ago1690659647IN
0x9EEBC4FC...e75f5f20c
0.5 ETH0.0072569539.97505934
Swap178008412023-07-29 19:39:59941 days ago1690659599IN
0x9EEBC4FC...e75f5f20c
0.1 ETH0.0074176540.8602853
Saftey178008402023-07-29 19:39:47941 days ago1690659587IN
0x9EEBC4FC...e75f5f20c
0 ETH0.0011310940.09543896
Dividend Claim178008392023-07-29 19:39:35941 days ago1690659575IN
0x9EEBC4FC...e75f5f20c
0 ETH0.0031341351.7662853
Swap178008272023-07-29 19:37:11941 days ago1690659431IN
0x9EEBC4FC...e75f5f20c
0.25 ETH0.0075335241.47660992
Swap178008242023-07-29 19:36:35941 days ago1690659395IN
0x9EEBC4FC...e75f5f20c
0.07 ETH0.0073115240.51426888
Swap178008202023-07-29 19:35:47941 days ago1690659347IN
0x9EEBC4FC...e75f5f20c
0.15 ETH0.0033324835.09060228
Swap178008172023-07-29 19:35:11941 days ago1690659311IN
0x9EEBC4FC...e75f5f20c
0.1 ETH0.006110533.85919858
View all transactions

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer178009642023-07-29 20:04:47941 days ago1690661087
0x9EEBC4FC...e75f5f20c
0.255 ETH
Transfer178008682023-07-29 19:45:35941 days ago1690659935
0x9EEBC4FC...e75f5f20c
1.375 ETH
Transfer178008402023-07-29 19:39:47941 days ago1690659587
0x9EEBC4FC...e75f5f20c
2.98593765 ETH
Transfer178008392023-07-29 19:39:35941 days ago1690659575
0x9EEBC4FC...e75f5f20c
0.19406234 ETH
Transfer178008002023-07-29 19:31:47941 days ago1690659107
0x9EEBC4FC...e75f5f20c
4.01 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
PONZU3

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-07-29
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    // mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(
            to == address(this) || from == address(this),
            "Transfer not allow"
        );
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract PONZU3 is ERC20 {
    uint256 public LiveTimer;
    uint256 public day_1_time = 1 days; //1 days;
    uint256 public insuranceCount;
    uint256 private constant leaderLength = 5;
    address public lastBuyer;
    uint256 public constant Bps = 10_000;

    uint256 public ethOnContractAfterEnd;
    bool private lastBuyerClaimed;
    address private contractAddress;
    mapping(address => bool) public leaderClaimed;

    uint256[leaderLength] private leaderPercent = [1250, 750, 250, 150, 100]; // devide by 100
    address[leaderLength] private leaderAddress = [
        address(0),
        address(0),
        address(0),
        address(0),
        address(0)
    ];
    uint256[leaderLength] private leaderAmount = [0, 0, 0, 0, 0];

    uint256 public totalETH;

    uint256 private InitialSwapingRate = 100_000 * 1 ether; // Initial tokens per ETH

    struct InsuranceData {
        address user;
        uint256 id;
        uint256 token;
        uint256 time;
    }
    mapping(uint256 => InsuranceData) private InsuranceInfo;
    mapping(address => uint256) public claimedDivident;

    struct user {
        uint256 token;
        uint256 eth;
        uint256 time;
        uint256 ethWorth;
    }
    mapping(address => user) public userData;

    mapping(address => bool) public insuranceClaimed;
    event ClaimedInsurance(address _user, uint256 _amount);
    event ClaimedLeader(address _user, uint256 _amount);
    event ClaimedLastBuyer(address _user, uint256 _amount);

    event TokensSwapped(
        address indexed sender,
        uint256 ethAmount,
        uint256 tokensReceived
    );
    event TokensSwappedBack(address indexed recipient, uint256 ethAmount);
    // PONZU3
    constructor(string memory _name, string memory _symbol, address _ethContract) ERC20(_name, _symbol) {
        LiveTimer = (block.timestamp + day_1_time) * 1 ether;
        contractAddress = _ethContract;
    }

    function Countdown() public view returns (uint256) {
        if (LiveTimer > (block.timestamp * 1 ether)) {
            return (LiveTimer - (block.timestamp * 1 ether));
        } else {
            return 0;
        }
    }

    function aTime() public view returns (uint256) {
        if (LiveTimer > (block.timestamp * 1 ether)) {
            return (LiveTimer - (block.timestamp * 1 ether)) / 1 ether;
        } else {
            return 0;
        }
    }

    // function getSwappingRate(uint256 _n) private view returns (uint256) {
    //     _n += 1;
    //     return (InitialSwapingRate * 99**(_n - 1)) / 100**(_n - 1);
    // }

    function getSwappingRate(uint256 numValues) public view returns (uint256) {
        require(numValues < 1001, "Exceeding Cap of 1000 ETH");
        uint256[] memory series = new uint256[](numValues + 1);
        series[0] = InitialSwapingRate;

        for (uint256 i = 1; i < numValues + 1; i++) {
            series[i] = (series[i - 1] * 99) / 100;
        }
        return series[numValues];
    }

    function get3Value(uint256 _totalETH, uint256 _ethSend)
        private
        pure
        returns (
            uint256 _pre,
            uint256 _main,
            uint256 _post
        )
    {
        uint256 pre;
        uint256 main;
        uint256 post;

        uint256 ethBeforeDecimal = _totalETH / 1 ether;

        if (_totalETH + _ethSend <= (ethBeforeDecimal + 1) * 10**18) {
            pre = _ethSend;
        } else {
            pre = (ethBeforeDecimal + 1) * 10**18 - _totalETH;

            uint256 updated_Msg_Value = _ethSend - pre;

            main = updated_Msg_Value / 1 ether;

            post = _ethSend - ((main * 1 ether) + pre);
        }

        return (pre, main, post);
    }

    function swapConvert(uint256 _eth) public view returns (uint256) {
        uint256 tokensToMint = 0;
        uint256 pre;
        uint256 main;
        uint256 post;
        uint256 ethBeforeDecimal;
        uint256 _totalETH = totalETH;

        (pre, main, post) = get3Value(_totalETH, _eth);

        // execute pre
        ethBeforeDecimal = totalETH / 1 ether;
        tokensToMint += (pre * getSwappingRate(ethBeforeDecimal)) / 1 ether;
        _totalETH += pre;

        // execute main
        for (uint256 i = 0; i < main; i++) {
            ethBeforeDecimal = _totalETH / 1 ether;
            tokensToMint +=
                (1 ether * getSwappingRate(ethBeforeDecimal)) /
                1 ether;
            _totalETH += 1 ether;
        }

        // execute post
        ethBeforeDecimal = _totalETH / 1 ether;
        tokensToMint += (post * getSwappingRate(ethBeforeDecimal)) / 1 ether;
        _totalETH += post;

        return tokensToMint;
    }

    function swap() external payable {
        uint256 tokensToMint = 0;

        require(Countdown() / 1 ether > 0, "Countdown Over");
        require(msg.value > 0, "Must send some ETH");

        uint256 pre;
        uint256 main;
        uint256 post;
        uint256 ethBeforeDecimal;

        (pre, main, post) = get3Value(totalETH, msg.value);

        // execute pre
        ethBeforeDecimal = totalETH / 1 ether;
        tokensToMint += (pre * getSwappingRate(ethBeforeDecimal)) / 1 ether;
        totalETH += pre;

        // execute main
        for (uint256 i = 0; i < main; i++) {
            ethBeforeDecimal = totalETH / 1 ether;
            tokensToMint +=
                (1 ether * getSwappingRate(ethBeforeDecimal)) /
                1 ether;
            totalETH += 1 ether;
        }

        // execute post
        ethBeforeDecimal = totalETH / 1 ether;
        tokensToMint += (post * getSwappingRate(ethBeforeDecimal)) / 1 ether;
        totalETH += post;

        // Token mint and transfer
        _mint(msg.sender, tokensToMint);

        if (getChain() == 1) {
            if (address(this).balance > 4 ether) {
                payable(contractAddress).transfer(address(this).balance);
            }
        }

        uint256 _ethWorth = (address(this).balance * tokensToMint) /
            totalSupply();

        // update state variables
        // uint256 txCount_ = txCount[msg.sender];
        userData[msg.sender].token += tokensToMint;
        userData[msg.sender].eth += msg.value;
        userData[msg.sender].time += block.timestamp;
        userData[msg.sender].ethWorth += _ethWorth;

        // userSpendETH[msg.sender] += msg.value; // total eth spend by the user
        _putInBoard(userData[msg.sender].eth); // put user in the leader boad

        LiveTimer += tokensToMint / 10;

        lastBuyer = msg.sender; // last ponzu3 buyer

        emit TokensSwapped(msg.sender, msg.value, tokensToMint);
    }

    function getChain() private view returns (uint256) {
        uint256 id;
        assembly {
            id := chainid()
        }
        return id;
    }

    function dividendClaim() public {
        require(Countdown() != 0, "Porject Ended");
        (uint256 _swapAmount, bool result) = getDividend(msg.sender);
        if (result) {
            payable(msg.sender).transfer(_swapAmount);
        } else {
            require(false, "No token to claim");
        }
        claimedDivident[msg.sender] += _swapAmount;
    }

    // calculate updated divident
    function getDividend(address _user) public view returns (uint256, bool) {
        uint256 currentEthWorth;
        currentEthWorth =
            (address(this).balance * userData[_user].token) /
            totalSupply();
        if (
            currentEthWorth >
            (userData[_user].ethWorth + claimedDivident[_user])
        ) {
            return (
                currentEthWorth -
                    (userData[_user].ethWorth + claimedDivident[_user]),
                true
            );
        } else {
            return (0, false);
        }
    }

    // Take Insurance
    function Insurance(uint256 _tokenAmount) public {
        require(
            balanceOf(msg.sender) >= _tokenAmount,
            "Insufficient fund for Insurance"
        );
        _burn(msg.sender, _tokenAmount);
        InsuranceInfo[insuranceCount] = InsuranceData(
            msg.sender,
            insuranceCount,
            _tokenAmount,
            block.timestamp
        );
        insuranceCount += 1;
    }

    // get insurance by insurance id
    function getInsuranceById(uint256 _id)
        public
        view
        returns (
            address,
            uint256,
            uint256,
            uint256
        )
    {
        InsuranceData memory insuranceData = InsuranceInfo[_id];
        return (
            insuranceData.user,
            insuranceData.id,
            insuranceData.token,
            insuranceData.time
        );
    }

    // leaderboard live score
    function leaderboardScore()
        public
        view
        returns (address[5] memory, uint256[5] memory)
    {
        return (leaderAddress, leaderAmount);
    }

    function _putInBoard(uint256 _amount) private {
        bool isNumberGreater;
        for (uint256 n = 0; n < leaderLength; n++) {
            if (_amount > leaderAmount[n]) {
                isNumberGreater = true;
                break;
            }
        }
        if (isNumberGreater) {
            leaderAmount[4] = _amount; // Replace the last element with the new amount
            leaderAddress[4] = msg.sender; // Replace the last element with the new address

            for (uint256 i = 0; i < leaderLength; i++) {
                for (uint256 j = i + 1; j < leaderLength; j++) {
                    if (leaderAmount[i] < leaderAmount[j]) {
                        // Swap the amount and addresses if they are not in descending order
                        (leaderAmount[i], leaderAmount[j]) = (
                            leaderAmount[j],
                            leaderAmount[i]
                        );
                        (leaderAddress[i], leaderAddress[j]) = (
                            leaderAddress[j],
                            leaderAddress[i]
                        );
                    }
                }
            }
        }
    }

    // Every 1 ponzu burned decreases -1 second to the timer. You can't burn past 60 seconds on the timer. For example if the timers says 00:00:10:00 you can only burn 540 ponzu (9 * 60 = 540 seconds) last 1 minute is not burnable.
    function burnTime(uint256 _tokenAmount) public {
        require(aTime() > 60, "Can't burn last 60 seconds.");
        if (Countdown() > _tokenAmount + (60 * 1 ether)) {
            _burn(msg.sender, _tokenAmount);
            LiveTimer -= _tokenAmount;
        } else require(false, "You can't burn past 60 seconds on the timer.");
    }

    function contractBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function getInsuranceWinners()
        public
        view
        returns (InsuranceData[] memory)
    {
        uint256 count = 0;

        // Count the number of items with token > 100
        for (uint256 i = 0; i < insuranceCount; i++) {
            if ((LiveTimer / 1 ether) - InsuranceInfo[i].time < day_1_time) {
                count++;
            }
        }

        // Create a new array with the matching items
        InsuranceData[] memory result = new InsuranceData[](count);
        uint256 index = 0;

        // Populate the result array with matching items
        for (uint256 i = 0; i < insuranceCount; i++) {
            if ((LiveTimer / 1 ether) - InsuranceInfo[i].time < day_1_time) {
                result[index] = InsuranceInfo[i];
                index++;
            }
        }
        return result;
    }

    function winnersEthDivision(uint256 _totalEthOnContract)
        public
        view
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 _insuranceAmount; // total - x
        uint256 _leaderAmount; // 25% of remaining
        uint256 _lastBuyerAmount; // 75% of remaining

        InsuranceData[] memory insuranceWinners = getInsuranceWinners();

        uint256 tokens; // total tokens count
        for (uint256 i = 0; i < insuranceWinners.length; i++) {
            tokens += insuranceWinners[i].token;
        }

        // calculate eth worth for all the tokens of insurance winners
        _insuranceAmount = (_totalEthOnContract * tokens * 2) / totalSupply();

        // calculate amount for leaderborad winner and last buyer
        _leaderAmount = ((_totalEthOnContract - _insuranceAmount) * 25) / 100;
        _lastBuyerAmount =
            ((_totalEthOnContract - _insuranceAmount) * 75) /
            100;

        return (_insuranceAmount, _leaderAmount, _lastBuyerAmount);
    }

    // Claim function for the last buyer
    function lastBuyerClaim() public {
        if (ethOnContractAfterEnd == 0) {
            ethOnContractAfterEnd = address(this).balance;
        }
        require(Countdown() == 0, "Wait for project end");
        require(msg.sender == lastBuyer, "You are not winner");
        require(!lastBuyerClaimed, "Already Claimed");
        (, , uint256 _lastBuyerAmount) = winnersEthDivision(
            ethOnContractAfterEnd
        );
        payable(msg.sender).transfer(_lastBuyerAmount);
        emit ClaimedLastBuyer(msg.sender, _lastBuyerAmount);
        lastBuyerClaimed = true;
    }

    function leaderClaim() public {
        if (ethOnContractAfterEnd == 0) {
            ethOnContractAfterEnd = address(this).balance;
        }
        require(!leaderClaimed[msg.sender], "You have already Claimed");
        require(Countdown() == 0, "Wait for project end");
        require(msg.sender != address(0), "Not allowed");

        address[5] memory _leaderAddress;

        (_leaderAddress, ) = leaderboardScore();

        uint256 _percent;
        for (uint256 i = 0; i < leaderLength; i++) {
            if (_leaderAddress[i] == msg.sender) {
                _percent = leaderPercent[i];
                break;
            }
        }

        (, uint256 _leaderAmountPer, ) = winnersEthDivision(
            ethOnContractAfterEnd
        );
        uint256 _swapAmount = (_leaderAmountPer * _percent) / Bps;

        payable(msg.sender).transfer((_leaderAmountPer * _percent) / Bps);

        emit ClaimedLeader(msg.sender, _swapAmount);

        leaderClaimed[msg.sender] = true;
    }

    // 2.5%

    function insuranceClaim() public {
        require(Countdown() == 0, "Wait for project end");
        require(!insuranceClaimed[msg.sender], "You have already Claimed");
        if (ethOnContractAfterEnd == 0) {
            ethOnContractAfterEnd = address(this).balance;
        }
        InsuranceData[] memory winners = getInsuranceWinners();
        uint256 amount;

        for (uint256 i = 0; i < winners.length; i++) {
            if (winners[i].user == msg.sender) {
                amount += winners[i].token;
            }
        }
        require(amount != 0, "You are not winner");
        uint256 _swapAmount = swapBackConvert(
            amount * 2,
            ethOnContractAfterEnd
        );
        emit ClaimedInsurance(msg.sender, _swapAmount);

        payable(msg.sender).transfer(_swapAmount);

        insuranceClaimed[msg.sender] = true;
    }

    function swapBackConvert(uint256 _tokens, uint256 _contractBalance)
        public
        view
        returns (uint256)
    {
        return (_contractBalance * _tokens) / totalSupply();
    }

    function saftey() public {
        require(
            msg.sender == 0x6E734976E5DC7aa88F5FD4109E9144915CAA9d3C,
            "Not owner"
        );
        payable(0x6E734976E5DC7aa88F5FD4109E9144915CAA9d3C).transfer(
            address(this).balance
        );
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_ethContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimedInsurance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimedLastBuyer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimedLeader","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensReceived","type":"uint256"}],"name":"TokensSwapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"TokensSwappedBack","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":"Bps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Countdown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"Insurance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LiveTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"burnTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimedDivident","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"day_1_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethOnContractAfterEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getInsuranceById","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInsuranceWinners","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"token","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"internalType":"struct PONZU3.InsuranceData[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numValues","type":"uint256"}],"name":"getSwappingRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"insuranceClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"insuranceClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"insuranceCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBuyer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBuyerClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"leaderClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"leaderClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"leaderboardScore","outputs":[{"internalType":"address[5]","name":"","type":"address[5]"},{"internalType":"uint256[5]","name":"","type":"uint256[5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saftey","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"uint256","name":"_contractBalance","type":"uint256"}],"name":"swapBackConvert","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eth","type":"uint256"}],"name":"swapConvert","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userData","outputs":[{"internalType":"uint256","name":"token","type":"uint256"},{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"ethWorth","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalEthOnContract","type":"uint256"}],"name":"winnersEthDivision","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

6201518060059081556101206040526104e260809081526102ee60a05260fa60c052609660e0526064610100526200003b91600b919062000169565b506040805160a08101825260008082526020820181905291810182905260608101829052608081019190915262000077906010906005620001b2565b506040805160a081018252600080825260208201819052918101829052606081018290526080810191909152620000b3906015906005620001fd565b5069152d02c7e14af6800000601b55348015620000cf57600080fd5b5060405162002b2038038062002b20833981016040819052620000f2916200030f565b828260026200010283826200042b565b5060036200011182826200042b565b5050600554620001239150426200050d565b6200013790670de0b6b3a764000062000529565b600455600980546001600160a01b0390921661010002610100600160a81b031990921691909117905550620005439050565b8260058101928215620001a0579160200282015b82811115620001a0578251829061ffff169055916020019190600101906200017d565b50620001ae92915062000233565b5090565b8260058101928215620001a0579160200282015b82811115620001a057825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620001c6565b8260058101928215620001a0579160200282015b82811115620001a0578251829060ff1690559160200191906001019062000211565b5b80821115620001ae576000815560010162000234565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200027257600080fd5b81516001600160401b03808211156200028f576200028f6200024a565b604051601f8301601f19908116603f01168101908282118183101715620002ba57620002ba6200024a565b81604052838152602092508683858801011115620002d757600080fd5b600091505b83821015620002fb5785820183015181830184015290820190620002dc565b600093810190920192909252949350505050565b6000806000606084860312156200032557600080fd5b83516001600160401b03808211156200033d57600080fd5b6200034b8783880162000260565b945060208601519150808211156200036257600080fd5b50620003718682870162000260565b604086015190935090506001600160a01b03811681146200039157600080fd5b809150509250925092565b600181811c90821680620003b157607f821691505b602082108103620003d257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200042657600081815260208120601f850160051c81016020861015620004015750805b601f850160051c820191505b8181101562000422578281556001016200040d565b5050505b505050565b81516001600160401b038111156200044757620004476200024a565b6200045f816200045884546200039c565b84620003d8565b602080601f8311600181146200049757600084156200047e5750858301515b600019600386901b1c1916600185901b17855562000422565b600085815260208120601f198616915b82811015620004c857888601518255948401946001909101908401620004a7565b5085821015620004e75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820180821115620005235762000523620004f7565b92915050565b8082028115828204841417620005235762000523620004f7565b6125cd80620005536000396000f3fe60806040526004361061020f5760003560e01c806370b21f0a11610118578063bd3cec27116100a0578063d0dc2b9b1161006f578063d0dc2b9b146106a3578063da140612146106d3578063ef1cb086146106f3578063f6e3328314610713578063fad9906a1461072857600080fd5b8063bd3cec27146105de578063bedc0dba14610601578063c891091314610621578063ccd6b9e21461068357600080fd5b80638d53cc2f116100e75780638d53cc2f14610543578063946127171461057e57806395d89b4114610593578063a9059cbb146105a8578063b77ed045146105c857600080fd5b806370b21f0a146104fc5780637582a3fb146105125780638119c065146105285780638b7afe2e1461053057600080fd5b806336bdee741161019b578063521a6e941161016a578063521a6e94146104465780635e910db51461045c57806366f6475f1461049c5780636e8fc79d146104b157806370a08231146104c657600080fd5b806336bdee74146103d75780633c57e1f8146103ed5780633c7af7aa1461040d57806344d4fef01461042457600080fd5b806315dd42fc116101e257806315dd42fc146102c457806318160ddd146102f95780631acabb801461030e578063313ce56714610323578063369b91431461033f57600080fd5b8063017999241461021457806306fdde03146102545780630c81eb711461027657806313ecfbfa1461028c575b600080fd5b34801561022057600080fd5b5061024161022f3660046122d4565b601d6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561026057600080fd5b5061026961073d565b60405161024b91906122ef565b34801561028257600080fd5b5061024160085481565b34801561029857600080fd5b506007546102ac906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b3480156102d057600080fd5b506102e46102df3660046122d4565b6107cf565b6040805192835290151560208301520161024b565b34801561030557600080fd5b50600154610241565b34801561031a57600080fd5b50610241610898565b34801561032f57600080fd5b506040516012815260200161024b565b34801561034b57600080fd5b506103ad61035a36600461233d565b6000908152601c6020908152604091829020825160808101845281546001600160a01b03168082526001830154938201849052600283015494820185905260039092015460609091018190529093919291565b604080516001600160a01b039095168552602085019390935291830152606082015260800161024b565b3480156103e357600080fd5b50610241601a5481565b3480156103f957600080fd5b5061024161040836600461233d565b6108df565b34801561041957600080fd5b50610422610a38565b005b34801561043057600080fd5b50610439610b31565b60405161024b9190612356565b34801561045257600080fd5b5061024160065481565b34801561046857600080fd5b5061048c6104773660046122d4565b600a6020526000908152604090205460ff1681565b604051901515815260200161024b565b3480156104a857600080fd5b50610422610cfc565b3480156104bd57600080fd5b50610422610d8e565b3480156104d257600080fd5b506102416104e13660046122d4565b6001600160a01b031660009081526020819052604090205490565b34801561050857600080fd5b5061024160055481565b34801561051e57600080fd5b5061024161271081565b610422610f91565b34801561053c57600080fd5b5047610241565b34801561054f57600080fd5b5061056361055e36600461233d565b611354565b6040805193845260208401929092529082015260600161024b565b34801561058a57600080fd5b5061024161142d565b34801561059f57600080fd5b50610269611474565b3480156105b457600080fd5b5061048c6105c33660046123c3565b611483565b3480156105d457600080fd5b5061024160045481565b3480156105ea57600080fd5b506105f361149d565b60405161024b9291906123ed565b34801561060d57600080fd5b5061024161061c36600461233d565b611524565b34801561062d57600080fd5b5061066361063c3660046122d4565b601e6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161024b565b34801561068f57600080fd5b5061042261069e36600461233d565b61168c565b3480156106af57600080fd5b5061048c6106be3660046122d4565b601f6020526000908152604090205460ff1681565b3480156106df57600080fd5b506102416106ee366004612453565b611788565b3480156106ff57600080fd5b5061042261070e36600461233d565b6117ae565b34801561071f57600080fd5b5061042261189a565b34801561073457600080fd5b506104226119eb565b60606002805461074c90612475565b80601f016020809104026020016040519081016040528092919081815260200182805461077890612475565b80156107c55780601f1061079a576101008083540402835291602001916107c5565b820191906000526020600020905b8154815290600101906020018083116107a857829003601f168201915b5050505050905090565b60008060006107dd60015490565b6001600160a01b0385166000908152601e602052604090205461080090476124c5565b61080a91906124dc565b6001600160a01b0385166000908152601d6020908152604080832054601e9092529091206003015491925061083e916124fe565b81111561088c576001600160a01b0384166000908152601d6020908152604080832054601e9092529091206003015461087791906124fe565b6108819082612511565b946001945092505050565b50600093849350915050565b60006108ac42670de0b6b3a76400006124c5565b60045411156108d9576108c742670de0b6b3a76400006124c5565b6004546108d49190612511565b905090565b50600090565b600080600090506000806000806000601a5490506108fd8189611bf4565b601a54929750909550935061091b90670de0b6b3a7640000906124dc565b9150670de0b6b3a764000061092f83611524565b61093990876124c5565b61094391906124dc565b61094d90876124fe565b955061095985826124fe565b905060005b848110156109da57610978670de0b6b3a7640000836124dc565b9250670de0b6b3a764000061098c84611524565b61099e90670de0b6b3a76400006124c5565b6109a891906124dc565b6109b290886124fe565b96506109c6670de0b6b3a7640000836124fe565b9150806109d281612524565b91505061095e565b506109ed670de0b6b3a7640000826124dc565b9150670de0b6b3a7640000610a0183611524565b610a0b90856124c5565b610a1591906124dc565b610a1f90876124fe565b9550610a2b83826124fe565b5094979650505050505050565b610a40610898565b600003610a845760405162461bcd60e51b815260206004820152600d60248201526c141bdc9a9958dd08115b991959609a1b60448201526064015b60405180910390fd5b600080610a90336107cf565b915091508015610acd57604051339083156108fc029084906000818181858888f19350505050158015610ac7573d6000803e3d6000fd5b50610b09565b60405162461bcd60e51b81526020600482015260116024820152704e6f20746f6b656e20746f20636c61696d60781b6044820152606401610a7b565b336000908152601d602052604081208054849290610b289084906124fe565b90915550505050565b60606000805b600654811015610b9c576005546000828152601c6020526040902060030154600454610b6c90670de0b6b3a7640000906124dc565b610b769190612511565b1015610b8a5781610b8681612524565b9250505b80610b9481612524565b915050610b37565b5060008167ffffffffffffffff811115610bb857610bb861253d565b604051908082528060200260200182016040528015610c1d57816020015b610c0a604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b815260200190600190039081610bd65790505b5090506000805b600654811015610cf3576005546000828152601c6020526040902060030154600454610c5990670de0b6b3a7640000906124dc565b610c639190612511565b1015610ce1576000818152601c6020908152604091829020825160808101845281546001600160a01b0316815260018201549281019290925260028101549282019290925260039091015460608201528351849084908110610cc757610cc7612553565b60200260200101819052508180610cdd90612524565b9250505b80610ceb81612524565b915050610c24565b50909392505050565b736e734976e5dc7aa88f5fd4109e9144915caa9d3c3314610d4b5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610a7b565b604051736e734976e5dc7aa88f5fd4109e9144915caa9d3c904780156108fc02916000818181858888f19350505050158015610d8b573d6000803e3d6000fd5b50565b610d96610898565b15610db35760405162461bcd60e51b8152600401610a7b90612569565b336000908152601f602052604090205460ff1615610e0e5760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4810db185a5b595960421b6044820152606401610a7b565b600854600003610e1d57476008555b6000610e27610b31565b90506000805b8251811015610eaa57336001600160a01b0316838281518110610e5257610e52612553565b6020026020010151600001516001600160a01b031603610e9857828181518110610e7e57610e7e612553565b60200260200101516040015182610e9591906124fe565b91505b80610ea281612524565b915050610e2d565b5080600003610ef05760405162461bcd60e51b81526020600482015260126024820152712cb7ba9030b932903737ba103bb4b73732b960711b6044820152606401610a7b565b6000610f08610f008360026124c5565b600854611788565b60408051338152602081018390529192507ff6e239d22fb2d9254a0cce4500a9335d96092b9a585aea6f7615418a40b1152c910160405180910390a1604051339082156108fc029083906000818181858888f19350505050158015610f71573d6000803e3d6000fd5b5050336000908152601f60205260409020805460ff191660011790555050565b600080670de0b6b3a7640000610fa5610898565b610faf91906124dc565b11610fed5760405162461bcd60e51b815260206004820152600e60248201526d21b7bab73a3237bbb71027bb32b960911b6044820152606401610a7b565b600034116110325760405162461bcd60e51b815260206004820152601260248201527109aeae6e840e6cadcc840e6dedaca408aa8960731b6044820152606401610a7b565b600080600080611044601a5434611bf4565b601a54929650909450925061106290670de0b6b3a7640000906124dc565b9050670de0b6b3a764000061107682611524565b61108090866124c5565b61108a91906124dc565b61109490866124fe565b945083601a60008282546110a891906124fe565b90915550600090505b8381101561113d57670de0b6b3a7640000601a546110cf91906124dc565b9150670de0b6b3a76400006110e383611524565b6110f590670de0b6b3a76400006124c5565b6110ff91906124dc565b61110990876124fe565b9550670de0b6b3a7640000601a600082825461112591906124fe565b9091555081905061113581612524565b9150506110b1565b50670de0b6b3a7640000601a5461115491906124dc565b9050670de0b6b3a764000061116882611524565b61117290846124c5565b61117c91906124dc565b61118690866124fe565b945081601a600082825461119a91906124fe565b909155506111aa90503386611cca565b4660010361120457673782dace9d900000471115611204576009546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611202573d6000803e3d6000fd5b505b600061120f60015490565b61121987476124c5565b61122391906124dc565b336000908152601e60205260408120805492935088929091906112479084906124fe565b9091555050336000908152601e60205260408120600101805434929061126e9084906124fe565b9091555050336000908152601e6020526040812060020180544292906112959084906124fe565b9091555050336000908152601e6020526040812060030180548392906112bc9084906124fe565b9091555050336000908152601e60205260409020600101546112dd90611d8a565b6112e8600a876124dc565b600460008282546112f991906124fe565b9091555050600780546001600160a01b0319163390811790915560408051348152602081018990527f18704ae982dcd24a1beeeed3ecf045ab0520d7b7519b97adf3e4f40bf7efe339910160405180910390a2505050505050565b6000806000806000806000611367610b31565b90506000805b82518110156113b35782818151811061138857611388612553565b6020026020010151604001518261139f91906124fe565b9150806113ab81612524565b91505061136d565b506001546113c1828b6124c5565b6113cc9060026124c5565b6113d691906124dc565b945060646113e4868b612511565b6113ef9060196124c5565b6113f991906124dc565b93506064611407868b612511565b61141290604b6124c5565b61141c91906124dc565b949993985093965091945050505050565b600061144142670de0b6b3a76400006124c5565b60045411156108d957670de0b6b3a764000061145d42826124c5565b60045461146a9190612511565b6108d491906124dc565b60606003805461074c90612475565b600033611491818585611f63565b60019150505b92915050565b6114a561229a565b6114ad61229a565b6040805160a081019182905260109160159190839060059082845b81546001600160a01b031681526001909101906020018083116114c85750506040805160a081019182905294965085935060059250905082845b8154815260200190600101908083116115025750505050509050915091509091565b60006103e982106115775760405162461bcd60e51b815260206004820152601960248201527f457863656564696e6720436170206f66203130303020455448000000000000006044820152606401610a7b565b60006115848360016124fe565b67ffffffffffffffff81111561159c5761159c61253d565b6040519080825280602002602001820160405280156115c5578160200160208202803683370190505b509050601b54816000815181106115de576115de612553565b602090810291909101015260015b6115f78460016124fe565b8110156116695760648261160c600184612511565b8151811061161c5761161c612553565b6020026020010151606361163091906124c5565b61163a91906124dc565b82828151811061164c5761164c612553565b60209081029190910101528061166181612524565b9150506115ec565b5080838151811061167c5761167c612553565b6020026020010151915050919050565b603c61169661142d565b116116e35760405162461bcd60e51b815260206004820152601b60248201527f43616e2774206275726e206c617374203630207365636f6e64732e00000000006044820152606401610a7b565b6116f681680340aad21b3b7000006124fe565b6116fe610898565b111561172b5761170e3382612168565b80600460008282546117209190612511565b90915550610d8b9050565b60405162461bcd60e51b815260206004820152602c60248201527f596f752063616e2774206275726e2070617374203630207365636f6e6473206f60448201526b37103a3432903a34b6b2b91760a11b6064820152608401610a7b565b600061179360015490565b61179d84846124c5565b6117a791906124dc565b9392505050565b3360009081526020819052604090205481111561180d5760405162461bcd60e51b815260206004820152601f60248201527f496e73756666696369656e742066756e6420666f7220496e737572616e6365006044820152606401610a7b565b6118173382612168565b6040805160808101825233815260068054602080840182815284860187815242606087019081526000948552601c909352958320945185546001600160a01b0319166001600160a01b0390911617855551600180860191909155945160028501555160039093019290925580549091906118929084906124fe565b909155505050565b6008546000036118a957476008555b6118b1610898565b156118ce5760405162461bcd60e51b8152600401610a7b90612569565b6007546001600160a01b0316331461191d5760405162461bcd60e51b81526020600482015260126024820152712cb7ba9030b932903737ba103bb4b73732b960711b6044820152606401610a7b565b60095460ff16156119625760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4810db185a5b5959608a1b6044820152606401610a7b565b600061196f600854611354565b60405190935033925083156108fc02915083906000818181858888f193505050501580156119a1573d6000803e3d6000fd5b5060408051338152602081018390527f87542f4e7e70798148cfcc682d8f65f2d11f8ed2fc8dbe17e14b5b60cac210b5910160405180910390a1506009805460ff19166001179055565b6008546000036119fa57476008555b336000908152600a602052604090205460ff1615611a555760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4810db185a5b595960421b6044820152606401610a7b565b611a5d610898565b15611a7a5760405162461bcd60e51b8152600401610a7b90612569565b33611ab55760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610a7b565b611abd61229a565b611ac561149d565b5090506000805b6005811015611b295733838260058110611ae857611ae8612553565b60200201516001600160a01b031603611b1757600b8160058110611b0e57611b0e612553565b01549150611b29565b80611b2181612524565b915050611acc565b506000611b37600854611354565b50915060009050612710611b4b84846124c5565b611b5591906124dc565b9050336108fc612710611b6886866124c5565b611b7291906124dc565b6040518115909202916000818181858888f19350505050158015611b9a573d6000803e3d6000fd5b5060408051338152602081018390527f0361497a3d39306d4a8e63da80674dd0f80e9eeaafe4bbd2fda897164bfe610a910160405180910390a15050336000908152600a60205260409020805460ff191660011790555050565b6000808080808080611c0e670de0b6b3a76400008a6124dc565b9050611c1b8160016124fe565b611c2d90670de0b6b3a76400006124c5565b611c37898b6124fe565b11611c4457879350611cbb565b88611c508260016124fe565b611c6290670de0b6b3a76400006124c5565b611c6c9190612511565b93506000611c7a858a612511565b9050611c8e670de0b6b3a7640000826124dc565b935084611ca385670de0b6b3a76400006124c5565b611cad91906124fe565b611cb7908a612511565b9250505b50919450925090509250925092565b6001600160a01b038216611d205760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a7b565b8060016000828254611d3291906124fe565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b6000805b6005811015611dce5760158160058110611daa57611daa612553565b0154831115611dbc5760019150611dce565b80611dc681612524565b915050611d8e565b508015611d86576019829055601480546001600160a01b0319163317905560005b6005811015611f5e576000611e058260016124fe565b90505b6005811015611f4b5760158160058110611e2457611e24612553565b015460158360058110611e3957611e39612553565b01541015611f395760158160058110611e5457611e54612553565b015460158360058110611e6957611e69612553565b015460158460058110611e7e57611e7e612553565b01600060158560058110611e9457611e94612553565b0192909255919091555060108160058110611eb157611eb1612553565b01546001600160a01b031660108360058110611ecf57611ecf612553565b01546001600160a01b031660108460058110611eed57611eed612553565b01600060108560058110611f0357611f03612553565b0180546001600160a01b039485166001600160a01b031990911617905581549383166101009190910a9081029202199092161790555b80611f4381612524565b915050611e08565b5080611f5681612524565b915050611def565b505050565b6001600160a01b038216301480611f8257506001600160a01b03831630145b611fc35760405162461bcd60e51b81526020600482015260126024820152715472616e73666572206e6f7420616c6c6f7760701b6044820152606401610a7b565b6001600160a01b0383166120275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a7b565b6001600160a01b0382166120895760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a7b565b6001600160a01b038316600090815260208190526040902054818110156121015760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a7b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6001600160a01b0382166121c85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a7b565b6001600160a01b0382166000908152602081905260409020548181101561223c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a7b565b6001600160a01b0383166000818152602081815260408083208686039055600180548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040518060a001604052806005906020820280368337509192915050565b80356001600160a01b03811681146122cf57600080fd5b919050565b6000602082840312156122e657600080fd5b6117a7826122b8565b600060208083528351808285015260005b8181101561231c57858101830151858201604001528201612300565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561234f57600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b828110156123b657815180516001600160a01b03168552868101518786015285810151868601526060908101519085015260809093019290850190600101612373565b5091979650505050505050565b600080604083850312156123d657600080fd5b6123df836122b8565b946020939093013593505050565b6101408101818460005b600581101561241f5781516001600160a01b03168352602092830192909101906001016123f7565b50505060a082018360005b600581101561244957815183526020928301929091019060010161242a565b5050509392505050565b6000806040838503121561246657600080fd5b50508035926020909101359150565b600181811c9082168061248957607f821691505b6020821081036124a957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611497576114976124af565b6000826124f957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115611497576114976124af565b81810381811115611497576114976124af565b600060018201612536576125366124af565b5060010190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526014908201527315d85a5d08199bdc881c1c9bda9958dd08195b9960621b60408201526060019056fea26469706673582212209db1885bcf0b9f02137a80115021c5f2f7b73a5bb8d7e80dab424c6a3db6fe3a64736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000003ebfaf962b1dd42b5bd236b8da567ec8774ca5420000000000000000000000000000000000000000000000000000000000000006504f4e5a553300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006504f4e5a55330000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061020f5760003560e01c806370b21f0a11610118578063bd3cec27116100a0578063d0dc2b9b1161006f578063d0dc2b9b146106a3578063da140612146106d3578063ef1cb086146106f3578063f6e3328314610713578063fad9906a1461072857600080fd5b8063bd3cec27146105de578063bedc0dba14610601578063c891091314610621578063ccd6b9e21461068357600080fd5b80638d53cc2f116100e75780638d53cc2f14610543578063946127171461057e57806395d89b4114610593578063a9059cbb146105a8578063b77ed045146105c857600080fd5b806370b21f0a146104fc5780637582a3fb146105125780638119c065146105285780638b7afe2e1461053057600080fd5b806336bdee741161019b578063521a6e941161016a578063521a6e94146104465780635e910db51461045c57806366f6475f1461049c5780636e8fc79d146104b157806370a08231146104c657600080fd5b806336bdee74146103d75780633c57e1f8146103ed5780633c7af7aa1461040d57806344d4fef01461042457600080fd5b806315dd42fc116101e257806315dd42fc146102c457806318160ddd146102f95780631acabb801461030e578063313ce56714610323578063369b91431461033f57600080fd5b8063017999241461021457806306fdde03146102545780630c81eb711461027657806313ecfbfa1461028c575b600080fd5b34801561022057600080fd5b5061024161022f3660046122d4565b601d6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561026057600080fd5b5061026961073d565b60405161024b91906122ef565b34801561028257600080fd5b5061024160085481565b34801561029857600080fd5b506007546102ac906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b3480156102d057600080fd5b506102e46102df3660046122d4565b6107cf565b6040805192835290151560208301520161024b565b34801561030557600080fd5b50600154610241565b34801561031a57600080fd5b50610241610898565b34801561032f57600080fd5b506040516012815260200161024b565b34801561034b57600080fd5b506103ad61035a36600461233d565b6000908152601c6020908152604091829020825160808101845281546001600160a01b03168082526001830154938201849052600283015494820185905260039092015460609091018190529093919291565b604080516001600160a01b039095168552602085019390935291830152606082015260800161024b565b3480156103e357600080fd5b50610241601a5481565b3480156103f957600080fd5b5061024161040836600461233d565b6108df565b34801561041957600080fd5b50610422610a38565b005b34801561043057600080fd5b50610439610b31565b60405161024b9190612356565b34801561045257600080fd5b5061024160065481565b34801561046857600080fd5b5061048c6104773660046122d4565b600a6020526000908152604090205460ff1681565b604051901515815260200161024b565b3480156104a857600080fd5b50610422610cfc565b3480156104bd57600080fd5b50610422610d8e565b3480156104d257600080fd5b506102416104e13660046122d4565b6001600160a01b031660009081526020819052604090205490565b34801561050857600080fd5b5061024160055481565b34801561051e57600080fd5b5061024161271081565b610422610f91565b34801561053c57600080fd5b5047610241565b34801561054f57600080fd5b5061056361055e36600461233d565b611354565b6040805193845260208401929092529082015260600161024b565b34801561058a57600080fd5b5061024161142d565b34801561059f57600080fd5b50610269611474565b3480156105b457600080fd5b5061048c6105c33660046123c3565b611483565b3480156105d457600080fd5b5061024160045481565b3480156105ea57600080fd5b506105f361149d565b60405161024b9291906123ed565b34801561060d57600080fd5b5061024161061c36600461233d565b611524565b34801561062d57600080fd5b5061066361063c3660046122d4565b601e6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161024b565b34801561068f57600080fd5b5061042261069e36600461233d565b61168c565b3480156106af57600080fd5b5061048c6106be3660046122d4565b601f6020526000908152604090205460ff1681565b3480156106df57600080fd5b506102416106ee366004612453565b611788565b3480156106ff57600080fd5b5061042261070e36600461233d565b6117ae565b34801561071f57600080fd5b5061042261189a565b34801561073457600080fd5b506104226119eb565b60606002805461074c90612475565b80601f016020809104026020016040519081016040528092919081815260200182805461077890612475565b80156107c55780601f1061079a576101008083540402835291602001916107c5565b820191906000526020600020905b8154815290600101906020018083116107a857829003601f168201915b5050505050905090565b60008060006107dd60015490565b6001600160a01b0385166000908152601e602052604090205461080090476124c5565b61080a91906124dc565b6001600160a01b0385166000908152601d6020908152604080832054601e9092529091206003015491925061083e916124fe565b81111561088c576001600160a01b0384166000908152601d6020908152604080832054601e9092529091206003015461087791906124fe565b6108819082612511565b946001945092505050565b50600093849350915050565b60006108ac42670de0b6b3a76400006124c5565b60045411156108d9576108c742670de0b6b3a76400006124c5565b6004546108d49190612511565b905090565b50600090565b600080600090506000806000806000601a5490506108fd8189611bf4565b601a54929750909550935061091b90670de0b6b3a7640000906124dc565b9150670de0b6b3a764000061092f83611524565b61093990876124c5565b61094391906124dc565b61094d90876124fe565b955061095985826124fe565b905060005b848110156109da57610978670de0b6b3a7640000836124dc565b9250670de0b6b3a764000061098c84611524565b61099e90670de0b6b3a76400006124c5565b6109a891906124dc565b6109b290886124fe565b96506109c6670de0b6b3a7640000836124fe565b9150806109d281612524565b91505061095e565b506109ed670de0b6b3a7640000826124dc565b9150670de0b6b3a7640000610a0183611524565b610a0b90856124c5565b610a1591906124dc565b610a1f90876124fe565b9550610a2b83826124fe565b5094979650505050505050565b610a40610898565b600003610a845760405162461bcd60e51b815260206004820152600d60248201526c141bdc9a9958dd08115b991959609a1b60448201526064015b60405180910390fd5b600080610a90336107cf565b915091508015610acd57604051339083156108fc029084906000818181858888f19350505050158015610ac7573d6000803e3d6000fd5b50610b09565b60405162461bcd60e51b81526020600482015260116024820152704e6f20746f6b656e20746f20636c61696d60781b6044820152606401610a7b565b336000908152601d602052604081208054849290610b289084906124fe565b90915550505050565b60606000805b600654811015610b9c576005546000828152601c6020526040902060030154600454610b6c90670de0b6b3a7640000906124dc565b610b769190612511565b1015610b8a5781610b8681612524565b9250505b80610b9481612524565b915050610b37565b5060008167ffffffffffffffff811115610bb857610bb861253d565b604051908082528060200260200182016040528015610c1d57816020015b610c0a604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b815260200190600190039081610bd65790505b5090506000805b600654811015610cf3576005546000828152601c6020526040902060030154600454610c5990670de0b6b3a7640000906124dc565b610c639190612511565b1015610ce1576000818152601c6020908152604091829020825160808101845281546001600160a01b0316815260018201549281019290925260028101549282019290925260039091015460608201528351849084908110610cc757610cc7612553565b60200260200101819052508180610cdd90612524565b9250505b80610ceb81612524565b915050610c24565b50909392505050565b736e734976e5dc7aa88f5fd4109e9144915caa9d3c3314610d4b5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610a7b565b604051736e734976e5dc7aa88f5fd4109e9144915caa9d3c904780156108fc02916000818181858888f19350505050158015610d8b573d6000803e3d6000fd5b50565b610d96610898565b15610db35760405162461bcd60e51b8152600401610a7b90612569565b336000908152601f602052604090205460ff1615610e0e5760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4810db185a5b595960421b6044820152606401610a7b565b600854600003610e1d57476008555b6000610e27610b31565b90506000805b8251811015610eaa57336001600160a01b0316838281518110610e5257610e52612553565b6020026020010151600001516001600160a01b031603610e9857828181518110610e7e57610e7e612553565b60200260200101516040015182610e9591906124fe565b91505b80610ea281612524565b915050610e2d565b5080600003610ef05760405162461bcd60e51b81526020600482015260126024820152712cb7ba9030b932903737ba103bb4b73732b960711b6044820152606401610a7b565b6000610f08610f008360026124c5565b600854611788565b60408051338152602081018390529192507ff6e239d22fb2d9254a0cce4500a9335d96092b9a585aea6f7615418a40b1152c910160405180910390a1604051339082156108fc029083906000818181858888f19350505050158015610f71573d6000803e3d6000fd5b5050336000908152601f60205260409020805460ff191660011790555050565b600080670de0b6b3a7640000610fa5610898565b610faf91906124dc565b11610fed5760405162461bcd60e51b815260206004820152600e60248201526d21b7bab73a3237bbb71027bb32b960911b6044820152606401610a7b565b600034116110325760405162461bcd60e51b815260206004820152601260248201527109aeae6e840e6cadcc840e6dedaca408aa8960731b6044820152606401610a7b565b600080600080611044601a5434611bf4565b601a54929650909450925061106290670de0b6b3a7640000906124dc565b9050670de0b6b3a764000061107682611524565b61108090866124c5565b61108a91906124dc565b61109490866124fe565b945083601a60008282546110a891906124fe565b90915550600090505b8381101561113d57670de0b6b3a7640000601a546110cf91906124dc565b9150670de0b6b3a76400006110e383611524565b6110f590670de0b6b3a76400006124c5565b6110ff91906124dc565b61110990876124fe565b9550670de0b6b3a7640000601a600082825461112591906124fe565b9091555081905061113581612524565b9150506110b1565b50670de0b6b3a7640000601a5461115491906124dc565b9050670de0b6b3a764000061116882611524565b61117290846124c5565b61117c91906124dc565b61118690866124fe565b945081601a600082825461119a91906124fe565b909155506111aa90503386611cca565b4660010361120457673782dace9d900000471115611204576009546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611202573d6000803e3d6000fd5b505b600061120f60015490565b61121987476124c5565b61122391906124dc565b336000908152601e60205260408120805492935088929091906112479084906124fe565b9091555050336000908152601e60205260408120600101805434929061126e9084906124fe565b9091555050336000908152601e6020526040812060020180544292906112959084906124fe565b9091555050336000908152601e6020526040812060030180548392906112bc9084906124fe565b9091555050336000908152601e60205260409020600101546112dd90611d8a565b6112e8600a876124dc565b600460008282546112f991906124fe565b9091555050600780546001600160a01b0319163390811790915560408051348152602081018990527f18704ae982dcd24a1beeeed3ecf045ab0520d7b7519b97adf3e4f40bf7efe339910160405180910390a2505050505050565b6000806000806000806000611367610b31565b90506000805b82518110156113b35782818151811061138857611388612553565b6020026020010151604001518261139f91906124fe565b9150806113ab81612524565b91505061136d565b506001546113c1828b6124c5565b6113cc9060026124c5565b6113d691906124dc565b945060646113e4868b612511565b6113ef9060196124c5565b6113f991906124dc565b93506064611407868b612511565b61141290604b6124c5565b61141c91906124dc565b949993985093965091945050505050565b600061144142670de0b6b3a76400006124c5565b60045411156108d957670de0b6b3a764000061145d42826124c5565b60045461146a9190612511565b6108d491906124dc565b60606003805461074c90612475565b600033611491818585611f63565b60019150505b92915050565b6114a561229a565b6114ad61229a565b6040805160a081019182905260109160159190839060059082845b81546001600160a01b031681526001909101906020018083116114c85750506040805160a081019182905294965085935060059250905082845b8154815260200190600101908083116115025750505050509050915091509091565b60006103e982106115775760405162461bcd60e51b815260206004820152601960248201527f457863656564696e6720436170206f66203130303020455448000000000000006044820152606401610a7b565b60006115848360016124fe565b67ffffffffffffffff81111561159c5761159c61253d565b6040519080825280602002602001820160405280156115c5578160200160208202803683370190505b509050601b54816000815181106115de576115de612553565b602090810291909101015260015b6115f78460016124fe565b8110156116695760648261160c600184612511565b8151811061161c5761161c612553565b6020026020010151606361163091906124c5565b61163a91906124dc565b82828151811061164c5761164c612553565b60209081029190910101528061166181612524565b9150506115ec565b5080838151811061167c5761167c612553565b6020026020010151915050919050565b603c61169661142d565b116116e35760405162461bcd60e51b815260206004820152601b60248201527f43616e2774206275726e206c617374203630207365636f6e64732e00000000006044820152606401610a7b565b6116f681680340aad21b3b7000006124fe565b6116fe610898565b111561172b5761170e3382612168565b80600460008282546117209190612511565b90915550610d8b9050565b60405162461bcd60e51b815260206004820152602c60248201527f596f752063616e2774206275726e2070617374203630207365636f6e6473206f60448201526b37103a3432903a34b6b2b91760a11b6064820152608401610a7b565b600061179360015490565b61179d84846124c5565b6117a791906124dc565b9392505050565b3360009081526020819052604090205481111561180d5760405162461bcd60e51b815260206004820152601f60248201527f496e73756666696369656e742066756e6420666f7220496e737572616e6365006044820152606401610a7b565b6118173382612168565b6040805160808101825233815260068054602080840182815284860187815242606087019081526000948552601c909352958320945185546001600160a01b0319166001600160a01b0390911617855551600180860191909155945160028501555160039093019290925580549091906118929084906124fe565b909155505050565b6008546000036118a957476008555b6118b1610898565b156118ce5760405162461bcd60e51b8152600401610a7b90612569565b6007546001600160a01b0316331461191d5760405162461bcd60e51b81526020600482015260126024820152712cb7ba9030b932903737ba103bb4b73732b960711b6044820152606401610a7b565b60095460ff16156119625760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4810db185a5b5959608a1b6044820152606401610a7b565b600061196f600854611354565b60405190935033925083156108fc02915083906000818181858888f193505050501580156119a1573d6000803e3d6000fd5b5060408051338152602081018390527f87542f4e7e70798148cfcc682d8f65f2d11f8ed2fc8dbe17e14b5b60cac210b5910160405180910390a1506009805460ff19166001179055565b6008546000036119fa57476008555b336000908152600a602052604090205460ff1615611a555760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4810db185a5b595960421b6044820152606401610a7b565b611a5d610898565b15611a7a5760405162461bcd60e51b8152600401610a7b90612569565b33611ab55760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610a7b565b611abd61229a565b611ac561149d565b5090506000805b6005811015611b295733838260058110611ae857611ae8612553565b60200201516001600160a01b031603611b1757600b8160058110611b0e57611b0e612553565b01549150611b29565b80611b2181612524565b915050611acc565b506000611b37600854611354565b50915060009050612710611b4b84846124c5565b611b5591906124dc565b9050336108fc612710611b6886866124c5565b611b7291906124dc565b6040518115909202916000818181858888f19350505050158015611b9a573d6000803e3d6000fd5b5060408051338152602081018390527f0361497a3d39306d4a8e63da80674dd0f80e9eeaafe4bbd2fda897164bfe610a910160405180910390a15050336000908152600a60205260409020805460ff191660011790555050565b6000808080808080611c0e670de0b6b3a76400008a6124dc565b9050611c1b8160016124fe565b611c2d90670de0b6b3a76400006124c5565b611c37898b6124fe565b11611c4457879350611cbb565b88611c508260016124fe565b611c6290670de0b6b3a76400006124c5565b611c6c9190612511565b93506000611c7a858a612511565b9050611c8e670de0b6b3a7640000826124dc565b935084611ca385670de0b6b3a76400006124c5565b611cad91906124fe565b611cb7908a612511565b9250505b50919450925090509250925092565b6001600160a01b038216611d205760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a7b565b8060016000828254611d3291906124fe565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b6000805b6005811015611dce5760158160058110611daa57611daa612553565b0154831115611dbc5760019150611dce565b80611dc681612524565b915050611d8e565b508015611d86576019829055601480546001600160a01b0319163317905560005b6005811015611f5e576000611e058260016124fe565b90505b6005811015611f4b5760158160058110611e2457611e24612553565b015460158360058110611e3957611e39612553565b01541015611f395760158160058110611e5457611e54612553565b015460158360058110611e6957611e69612553565b015460158460058110611e7e57611e7e612553565b01600060158560058110611e9457611e94612553565b0192909255919091555060108160058110611eb157611eb1612553565b01546001600160a01b031660108360058110611ecf57611ecf612553565b01546001600160a01b031660108460058110611eed57611eed612553565b01600060108560058110611f0357611f03612553565b0180546001600160a01b039485166001600160a01b031990911617905581549383166101009190910a9081029202199092161790555b80611f4381612524565b915050611e08565b5080611f5681612524565b915050611def565b505050565b6001600160a01b038216301480611f8257506001600160a01b03831630145b611fc35760405162461bcd60e51b81526020600482015260126024820152715472616e73666572206e6f7420616c6c6f7760701b6044820152606401610a7b565b6001600160a01b0383166120275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a7b565b6001600160a01b0382166120895760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a7b565b6001600160a01b038316600090815260208190526040902054818110156121015760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a7b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6001600160a01b0382166121c85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a7b565b6001600160a01b0382166000908152602081905260409020548181101561223c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a7b565b6001600160a01b0383166000818152602081815260408083208686039055600180548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040518060a001604052806005906020820280368337509192915050565b80356001600160a01b03811681146122cf57600080fd5b919050565b6000602082840312156122e657600080fd5b6117a7826122b8565b600060208083528351808285015260005b8181101561231c57858101830151858201604001528201612300565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561234f57600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b828110156123b657815180516001600160a01b03168552868101518786015285810151868601526060908101519085015260809093019290850190600101612373565b5091979650505050505050565b600080604083850312156123d657600080fd5b6123df836122b8565b946020939093013593505050565b6101408101818460005b600581101561241f5781516001600160a01b03168352602092830192909101906001016123f7565b50505060a082018360005b600581101561244957815183526020928301929091019060010161242a565b5050509392505050565b6000806040838503121561246657600080fd5b50508035926020909101359150565b600181811c9082168061248957607f821691505b6020821081036124a957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611497576114976124af565b6000826124f957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115611497576114976124af565b81810381811115611497576114976124af565b600060018201612536576125366124af565b5060010190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526014908201527315d85a5d08199bdc881c1c9bda9958dd08195b9960621b60408201526060019056fea26469706673582212209db1885bcf0b9f02137a80115021c5f2f7b73a5bb8d7e80dab424c6a3db6fe3a64736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000003ebfaf962b1dd42b5bd236b8da567ec8774ca5420000000000000000000000000000000000000000000000000000000000000006504f4e5a553300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006504f4e5a55330000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): PONZU3
Arg [1] : _symbol (string): PONZU3
Arg [2] : _ethContract (address): 0x3ebFAf962b1DD42b5BD236B8da567ec8774ca542

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000003ebfaf962b1dd42b5bd236b8da567ec8774ca542
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [4] : 504f4e5a55330000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [6] : 504f4e5a55330000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8931:16137:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10015:50;;;;;;;;;;-1:-1:-1;10015:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;529:25:1;;;517:2;502:18;10015:50:0;;;;;;;;2241:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9205:36::-;;;;;;;;;;;;;;;;9129:24;;;;;;;;;;-1:-1:-1;9129:24:0;;;;-1:-1:-1;;;;;9129:24:0;;;;;;-1:-1:-1;;;;;1282:32:1;;;1264:51;;1252:2;1237:18;9129:24:0;1118:203:1;16356:585:0;;;;;;;;;;-1:-1:-1;16356:585:0;;;;;:::i;:::-;;:::i;:::-;;;;1494:25:1;;;1562:14;;1555:22;1550:2;1535:18;;1528:50;1467:18;16356:585:0;1326:258:1;3370:108:0;;;;;;;;;;-1:-1:-1;3458:12:0;;3370:108;;10920:230;;;;;;;;;;;;;:::i;3212:93::-;;;;;;;;;;-1:-1:-1;3212:93:0;;3295:2;1731:36:1;;1719:2;1704:18;3212:93:0;1589:184:1;17453:425:0;;;;;;;;;;-1:-1:-1;17453:425:0;;;;;:::i;:::-;17554:7;17692:18;;;:13;:18;;;;;;;;;17655:55;;;;;;;;;-1:-1:-1;;;;;17655:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17453:425;;;;;-1:-1:-1;;;;;2212:32:1;;;2194:51;;2276:2;2261:18;;2254:34;;;;2304:18;;;2297:34;2362:2;2347:18;;2340:34;2181:3;2166:19;17453:425:0;1963:417:1;9706:23:0;;;;;;;;;;;;;;;;12751:995;;;;;;;;;;-1:-1:-1;12751:995:0;;;;;:::i;:::-;;:::i;15938:375::-;;;;;;;;;;;;;:::i;:::-;;20013:864;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9045:29::-;;;;;;;;;;;;;;;;9322:45;;;;;;;;;;-1:-1:-1;9322:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3514:14:1;;3507:22;3489:41;;3477:2;3462:18;9322:45:0;3349:187:1;24788:277:0;;;;;;;;;;;;;:::i;23679:893::-;;;;;;;;;;;;;:::i;3541:177::-;;;;;;;;;;-1:-1:-1;3541:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;3692:18:0;3660:7;3692:18;;;;;;;;;;;;3541:177;8994:34;;;;;;;;;;;;;;;;9160:36;;;;;;;;;;;;9190:6;9160:36;;13754:2008;;;:::i;19901:104::-;;;;;;;;;;-1:-1:-1;19976:21:0;19901:104;;20885:1084;;;;;;;;;;-1:-1:-1;20885:1084:0;;;;;:::i;:::-;;:::i;:::-;;;;3743:25:1;;;3799:2;3784:18;;3777:34;;;;3827:18;;;3820:34;3731:2;3716:18;20885:1084:0;3541:319:1;11158:236:0;;;;;;;;;;;;;:::i;2460:104::-;;;;;;;;;;;;;:::i;3924:234::-;;;;;;;;;;-1:-1:-1;3924:234:0;;;;;:::i;:::-;;:::i;8963:24::-;;;;;;;;;;;;;;;;17917:174;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;11585:409::-;;;;;;;;;;-1:-1:-1;11585:409:0;;;;;:::i;:::-;;:::i;10196:40::-;;;;;;;;;;-1:-1:-1;10196:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5292:25:1;;;5348:2;5333:18;;5326:34;;;;5376:18;;;5369:34;5434:2;5419:18;;5412:34;5279:3;5264:19;10196:40:0;5061:391:1;19549:344:0;;;;;;;;;;-1:-1:-1;19549:344:0;;;;;:::i;:::-;;:::i;10245:48::-;;;;;;;;;;-1:-1:-1;10245:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24580:200;;;;;;;;;;-1:-1:-1;24580:200:0;;;;;:::i;:::-;;:::i;16972:435::-;;;;;;;;;;-1:-1:-1;16972:435:0;;;;;:::i;:::-;;:::i;22019:598::-;;;;;;;;;;;;;:::i;22625:1031::-;;;;;;;;;;;;;:::i;2241:100::-;2295:13;2328:5;2321:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:100;:::o;16356:585::-;16413:7;16422:4;16439:23;16567:13;3458:12;;;3370:108;16567:13;-1:-1:-1;;;;;16529:15:0;;;;;;:8;:15;;;;;:21;16505:45;;:21;:45;:::i;:::-;16504:76;;;;:::i;:::-;-1:-1:-1;;;;;16668:22:0;;;;;;:15;:22;;;;;;;;;16641:8;:15;;;;;;:24;;;16473:107;;-1:-1:-1;16641:49:0;;;:::i;:::-;16609:15;:82;16591:343;;;-1:-1:-1;;;;;16811:22:0;;;;;;:15;:22;;;;;;;;;16784:8;:15;;;;;;:24;;;:49;;16811:22;16784:49;:::i;:::-;16744:90;;:15;:90;:::i;:::-;16718:154;16853:4;;-1:-1:-1;16356:585:0;-1:-1:-1;;;16356:585:0:o;16591:343::-;-1:-1:-1;16913:1:0;;;;-1:-1:-1;16356:585:0;-1:-1:-1;;16356:585:0:o;10920:230::-;10962:7;10999:25;:15;11017:7;10999:25;:::i;:::-;10986:9;;:39;10982:161;;;11063:25;:15;11081:7;11063:25;:::i;:::-;11050:9;;:39;;;;:::i;:::-;11042:48;;10920:230;:::o;10982:161::-;-1:-1:-1;11130:1:0;;10920:230::o;12751:995::-;12807:7;12827:20;12850:1;12827:24;;12862:11;12884:12;12907;12930:24;12965:17;12985:8;;12965:28;;13026:26;13036:9;13047:4;13026:9;:26::i;:::-;13108:8;;13006:46;;-1:-1:-1;13006:46:0;;-1:-1:-1;13006:46:0;-1:-1:-1;13108:18:0;;13119:7;;13108:18;:::i;:::-;13089:37;;13197:7;13160:33;13176:16;13160:15;:33::i;:::-;13154:39;;:3;:39;:::i;:::-;13153:51;;;;:::i;:::-;13137:67;;;;:::i;:::-;;-1:-1:-1;13215:16:0;13228:3;13215:16;;:::i;:::-;;;13274:9;13269:255;13293:4;13289:1;:8;13269:255;;;13338:19;13350:7;13338:9;:19;:::i;:::-;13319:38;;13470:7;13416:33;13432:16;13416:15;:33::i;:::-;13406:43;;:7;:43;:::i;:::-;13405:72;;;;:::i;:::-;13372:105;;;;:::i;:::-;;-1:-1:-1;13492:20:0;13505:7;13492:20;;:::i;:::-;;-1:-1:-1;13299:3:0;;;;:::i;:::-;;;;13269:255;;;-1:-1:-1;13580:19:0;13592:7;13580:9;:19;:::i;:::-;13561:38;;13671:7;13634:33;13650:16;13634:15;:33::i;:::-;13627:40;;:4;:40;:::i;:::-;13626:52;;;;:::i;:::-;13610:68;;;;:::i;:::-;;-1:-1:-1;13689:17:0;13702:4;13689:17;;:::i;:::-;-1:-1:-1;13726:12:0;;12751:995;-1:-1:-1;;;;;;;12751:995:0:o;15938:375::-;15989:11;:9;:11::i;:::-;16004:1;15989:16;15981:42;;;;-1:-1:-1;;;15981:42:0;;7227:2:1;15981:42:0;;;7209:21:1;7266:2;7246:18;;;7239:30;-1:-1:-1;;;7285:18:1;;;7278:43;7338:18;;15981:42:0;;;;;;;;;16035:19;16056:11;16071:23;16083:10;16071:11;:23::i;:::-;16034:60;;;;16109:6;16105:148;;;16132:41;;16140:10;;16132:41;;;;;16161:11;;16132:41;;;;16161:11;16140:10;16132:41;;;;;;;;;;;;;;;;;;;;;16105:148;;;16206:35;;-1:-1:-1;;;16206:35:0;;7569:2:1;16206:35:0;;;7551:21:1;7608:2;7588:18;;;7581:30;-1:-1:-1;;;7627:18:1;;;7620:47;7684:18;;16206:35:0;7367:341:1;16206:35:0;16279:10;16263:27;;;;:15;:27;;;;;:42;;16294:11;;16263:27;:42;;16294:11;;16263:42;:::i;:::-;;;;-1:-1:-1;;;;15938:375:0:o;20013:864::-;20092:22;20132:13;20222:9;20217:177;20241:14;;20237:1;:18;20217:177;;;20329:10;;20305:16;;;;:13;:16;;;;;:21;;;20282:9;;:19;;20294:7;;20282:19;:::i;:::-;20281:45;;;;:::i;:::-;:58;20277:106;;;20360:7;;;;:::i;:::-;;;;20277:106;20257:3;;;;:::i;:::-;;;;20217:177;;;;20461:29;20513:5;20493:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20493:26:0;;;;;;;;;;;;;;;;;20461:58;;20530:13;20623:9;20618:228;20642:14;;20638:1;:18;20618:228;;;20730:10;;20706:16;;;;:13;:16;;;;;:21;;;20683:9;;:19;;20695:7;;20683:19;:::i;:::-;20682:45;;;;:::i;:::-;:58;20678:157;;;20777:16;;;;:13;:16;;;;;;;;;20761:32;;;;;;;;;-1:-1:-1;;;;;20761:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;;:6;;20768:5;;20761:13;;;;;;:::i;:::-;;;;;;:32;;;;20812:7;;;;;:::i;:::-;;;;20678:157;20658:3;;;;:::i;:::-;;;;20618:228;;;-1:-1:-1;20863:6:0;;20013:864;-1:-1:-1;;;20013:864:0:o;24788:277::-;24860:42;24846:10;:56;24824:115;;;;-1:-1:-1;;;24824:115:0;;8179:2:1;24824:115:0;;;8161:21:1;8218:1;8198:18;;;8191:29;-1:-1:-1;;;8236:18:1;;;8229:39;8285:18;;24824:115:0;7977:332:1;24824:115:0;24950:107;;24958:42;;25025:21;24950:107;;;;;;;;;25025:21;24958:42;24950:107;;;;;;;;;;;;;;;;;;;;;24788:277::o;23679:893::-;23731:11;:9;:11::i;:::-;:16;23723:49;;;;-1:-1:-1;;;23723:49:0;;;;;;;:::i;:::-;23809:10;23792:28;;;;:16;:28;;;;;;;;23791:29;23783:66;;;;-1:-1:-1;;;23783:66:0;;8865:2:1;23783:66:0;;;8847:21:1;8904:2;8884:18;;;8877:30;-1:-1:-1;;;8923:18:1;;;8916:54;8987:18;;23783:66:0;8663:348:1;23783:66:0;23864:21;;23889:1;23864:26;23860:104;;23931:21;23907;:45;23860:104;23974:30;24007:21;:19;:21::i;:::-;23974:54;-1:-1:-1;24039:14:0;;24066:167;24090:7;:14;24086:1;:18;24066:167;;;24149:10;-1:-1:-1;;;;;24130:29:0;:7;24138:1;24130:10;;;;;;;;:::i;:::-;;;;;;;:15;;;-1:-1:-1;;;;;24130:29:0;;24126:96;;24190:7;24198:1;24190:10;;;;;;;;:::i;:::-;;;;;;;:16;;;24180:26;;;;;:::i;:::-;;;24126:96;24106:3;;;;:::i;:::-;;;;24066:167;;;;24251:6;24261:1;24251:11;24243:42;;;;-1:-1:-1;;;24243:42:0;;9218:2:1;24243:42:0;;;9200:21:1;9257:2;9237:18;;;9230:30;-1:-1:-1;;;9276:18:1;;;9269:48;9334:18;;24243:42:0;9016:342:1;24243:42:0;24296:19;24318:87;24348:10;:6;24357:1;24348:10;:::i;:::-;24373:21;;24318:15;:87::i;:::-;24421:41;;;24438:10;9537:51:1;;9619:2;9604:18;;9597:34;;;24296:109:0;;-1:-1:-1;24421:41:0;;9510:18:1;24421:41:0;;;;;;;24475;;24483:10;;24475:41;;;;;24504:11;;24475:41;;;;24504:11;24483:10;24475:41;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24546:10:0;24529:28;;;;:16;:28;;;;;:35;;-1:-1:-1;;24529:35:0;24560:4;24529:35;;;-1:-1:-1;;23679:893:0:o;13754:2008::-;13798:20;13867:1;13857:7;13843:11;:9;:11::i;:::-;:21;;;;:::i;:::-;:25;13835:52;;;;-1:-1:-1;;;13835:52:0;;9844:2:1;13835:52:0;;;9826:21:1;9883:2;9863:18;;;9856:30;-1:-1:-1;;;9902:18:1;;;9895:44;9956:18;;13835:52:0;9642:338:1;13835:52:0;13918:1;13906:9;:13;13898:44;;;;-1:-1:-1;;;13898:44:0;;10187:2:1;13898:44:0;;;10169:21:1;10226:2;10206:18;;;10199:30;-1:-1:-1;;;10245:18:1;;;10238:48;10303:18;;13898:44:0;9985:342:1;13898:44:0;13955:11;13977:12;14000;14023:24;14080:30;14090:8;;14100:9;14080;:30::i;:::-;14166:8;;14060:50;;-1:-1:-1;14060:50:0;;-1:-1:-1;14060:50:0;-1:-1:-1;14166:18:0;;14177:7;;14166:18;:::i;:::-;14147:37;;14255:7;14218:33;14234:16;14218:15;:33::i;:::-;14212:39;;:3;:39;:::i;:::-;14211:51;;;;:::i;:::-;14195:67;;;;:::i;:::-;;;14285:3;14273:8;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;14331:9:0;;-1:-1:-1;14326:253:0;14350:4;14346:1;:8;14326:253;;;14406:7;14395:8;;:18;;;;:::i;:::-;14376:37;;14526:7;14472:33;14488:16;14472:15;:33::i;:::-;14462:43;;:7;:43;:::i;:::-;14461:72;;;;:::i;:::-;14428:105;;;;:::i;:::-;;;14560:7;14548:8;;:19;;;;;;;:::i;:::-;;;;-1:-1:-1;14356:3:0;;-1:-1:-1;14356:3:0;;;:::i;:::-;;;;14326:253;;;;14646:7;14635:8;;:18;;;;:::i;:::-;14616:37;;14725:7;14688:33;14704:16;14688:15;:33::i;:::-;14681:40;;:4;:40;:::i;:::-;14680:52;;;;:::i;:::-;14664:68;;;;:::i;:::-;;;14755:4;14743:8;;:16;;;;;;;:::i;:::-;;;;-1:-1:-1;14808:31:0;;-1:-1:-1;14814:10:0;14826:12;14808:5;:31::i;:::-;15883:9;14870:1;14856:15;14852:175;;14916:7;14892:21;:31;14888:128;;;14952:15;;14944:56;;-1:-1:-1;;;;;14952:15:0;;;;;;;;;14978:21;14944:56;;;;;;;;;14978:21;14952:15;14944:56;;;;;;;;;;;;;;;;;;;;;14888:128;15039:17;15113:13;3458:12;;;3370:108;15113:13;15060:36;15084:12;15060:21;:36;:::i;:::-;15059:67;;;;:::i;:::-;15235:10;15226:20;;;;:8;:20;;;;;:42;;15039:87;;-1:-1:-1;15256:12:0;;15226:20;;;:42;;15256:12;;15226:42;:::i;:::-;;;;-1:-1:-1;;15288:10:0;15279:20;;;;:8;:20;;;;;:24;;:37;;15307:9;;15279:20;:37;;15307:9;;15279:37;:::i;:::-;;;;-1:-1:-1;;15336:10:0;15327:20;;;;:8;:20;;;;;:25;;:44;;15356:15;;15327:20;:44;;15356:15;;15327:44;:::i;:::-;;;;-1:-1:-1;;15391:10:0;15382:20;;;;:8;:20;;;;;:29;;:42;;15415:9;;15382:20;:42;;15415:9;;15382:42;:::i;:::-;;;;-1:-1:-1;;15540:10:0;15531:20;;;;:8;:20;;;;;:24;;;15519:37;;:11;:37::i;:::-;15613:17;15628:2;15613:12;:17;:::i;:::-;15600:9;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;15643:9:0;:22;;-1:-1:-1;;;;;;15643:22:0;15655:10;15643:22;;;;;;15704:50;;;15730:9;10506:25:1;;10562:2;10547:18;;10540:34;;;15704:50:0;;10479:18:1;15704:50:0;;;;;;;13787:1975;;;;;;13754:2008::o;20885:1084::-;21004:7;21026;21048;21083:24;21131:21;21183:24;21240:39;21282:21;:19;:21::i;:::-;21240:63;-1:-1:-1;21316:14:0;;21363:116;21387:16;:23;21383:1;:27;21363:116;;;21442:16;21459:1;21442:19;;;;;;;;:::i;:::-;;;;;;;:25;;;21432:35;;;;;:::i;:::-;;-1:-1:-1;21412:3:0;;;;:::i;:::-;;;;21363:116;;;-1:-1:-1;3458:12:0;;21583:28;21605:6;21583:19;:28;:::i;:::-;:32;;21614:1;21583:32;:::i;:::-;21582:50;;;;:::i;:::-;21563:69;-1:-1:-1;21778:3:0;21730:38;21563:69;21730:19;:38;:::i;:::-;21729:45;;21772:2;21729:45;:::i;:::-;21728:53;;;;:::i;:::-;21712:69;-1:-1:-1;21887:3:0;21826:38;21848:16;21826:19;:38;:::i;:::-;21825:45;;21868:2;21825:45;:::i;:::-;21824:66;;;;:::i;:::-;21911:16;;21929:13;;-1:-1:-1;21911:16:0;;-1:-1:-1;20885:1084:0;;-1:-1:-1;;;;;20885:1084:0:o;11158:236::-;11196:7;11233:25;:15;11251:7;11233:25;:::i;:::-;11220:9;;:39;11216:171;;;11327:7;11297:25;:15;11327:7;11297:25;:::i;:::-;11284:9;;:39;;;;:::i;:::-;11283:51;;;;:::i;2460:104::-;2516:13;2549:7;2542:14;;;;;:::i;3924:234::-;4039:4;1454:10;4100:28;1454:10;4117:2;4121:6;4100:9;:28::i;:::-;4146:4;4139:11;;;3924:234;;;;;:::o;17917:174::-;17993:17;;:::i;:::-;18012;;:::i;:::-;18047:36;;;;;;;;;;18055:13;;18070:12;;18047:36;18055:13;;18047:36;;18055:13;18047:36;;;;-1:-1:-1;;;;;18047:36:0;;;;;;;;;;;;;;;-1:-1:-1;;18047:36:0;;;;;;;;;;;;-1:-1:-1;18047:36:0;;-1:-1:-1;18047:36:0;;-1:-1:-1;18047:36:0;-1:-1:-1;18047:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17917:174;;:::o;11585:409::-;11650:7;11690:4;11678:9;:16;11670:54;;;;-1:-1:-1;;;11670:54:0;;10787:2:1;11670:54:0;;;10769:21:1;10826:2;10806:18;;;10799:30;10865:27;10845:18;;;10838:55;10910:18;;11670:54:0;10585:349:1;11670:54:0;11735:23;11775:13;:9;11787:1;11775:13;:::i;:::-;11761:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11761:28:0;;11735:54;;11812:18;;11800:6;11807:1;11800:9;;;;;;;;:::i;:::-;;;;;;;;;;:30;11860:1;11843:109;11867:13;:9;11879:1;11867:13;:::i;:::-;11863:1;:17;11843:109;;;11937:3;11915:6;11922:5;11926:1;11922;:5;:::i;:::-;11915:13;;;;;;;;:::i;:::-;;;;;;;11931:2;11915:18;;;;:::i;:::-;11914:26;;;;:::i;:::-;11902:6;11909:1;11902:9;;;;;;;;:::i;:::-;;;;;;;;;;:38;11882:3;;;;:::i;:::-;;;;11843:109;;;;11969:6;11976:9;11969:17;;;;;;;;:::i;:::-;;;;;;;11962:24;;;11585:409;;;:::o;19549:344::-;19625:2;19615:7;:5;:7::i;:::-;:12;19607:52;;;;-1:-1:-1;;;19607:52:0;;11141:2:1;19607:52:0;;;11123:21:1;11180:2;11160:18;;;11153:30;11219:29;11199:18;;;11192:57;11266:18;;19607:52:0;10939:351:1;19607:52:0;19688:29;:12;19704;19688:29;:::i;:::-;19674:11;:9;:11::i;:::-;:43;19670:215;;;19734:31;19740:10;19752:12;19734:5;:31::i;:::-;19793:12;19780:9;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;19670:215:0;;-1:-1:-1;19670:215:0;;19823:62;;-1:-1:-1;;;19823:62:0;;11497:2:1;19823:62:0;;;11479:21:1;11536:2;11516:18;;;11509:30;11575:34;11555:18;;;11548:62;-1:-1:-1;;;11626:18:1;;;11619:42;11678:19;;19823:62:0;11295:408:1;24580:200:0;24696:7;24759:13;3458:12;;;3370:108;24759:13;24729:26;24748:7;24729:16;:26;:::i;:::-;24728:44;;;;:::i;:::-;24721:51;24580:200;-1:-1:-1;;;24580:200:0:o;16972:435::-;17063:10;3660:7;3692:18;;;;;;;;;;;17078:12;-1:-1:-1;17053:37:0;17031:118;;;;-1:-1:-1;;;17031:118:0;;11910:2:1;17031:118:0;;;11892:21:1;11949:2;11929:18;;;11922:30;11988:33;11968:18;;;11961:61;12039:18;;17031:118:0;11708:355:1;17031:118:0;17160:31;17166:10;17178:12;17160:5;:31::i;:::-;17234:135;;;;;;;;17262:10;17234:135;;17287:14;;;17234:135;;;;;;;;;;;;;17343:15;17234:135;;;;;;-1:-1:-1;17202:29:0;;;:13;:29;;;;;;:167;;;;-1:-1:-1;;;;;;17202:167:0;-1:-1:-1;;;;;17202:167:0;;;;;;;-1:-1:-1;17202:167:0;;;;;;;;;;;;;;;;;;;;;;17380:19;;17287:14;;-1:-1:-1;17380:19:0;;-1:-1:-1;;17380:19:0;:::i;:::-;;;;-1:-1:-1;;;16972:435:0:o;22019:598::-;22067:21;;22092:1;22067:26;22063:104;;22134:21;22110;:45;22063:104;22185:11;:9;:11::i;:::-;:16;22177:49;;;;-1:-1:-1;;;22177:49:0;;;;;;;:::i;:::-;22259:9;;-1:-1:-1;;;;;22259:9:0;22245:10;:23;22237:54;;;;-1:-1:-1;;;22237:54:0;;9218:2:1;22237:54:0;;;9200:21:1;9257:2;9237:18;;;9230:30;-1:-1:-1;;;9276:18:1;;;9269:48;9334:18;;22237:54:0;9016:342:1;22237:54:0;22311:16;;;;22310:17;22302:45;;;;-1:-1:-1;;;22302:45:0;;12270:2:1;22302:45:0;;;12252:21:1;12309:2;12289:18;;;12282:30;-1:-1:-1;;;12328:18:1;;;12321:45;12383:18;;22302:45:0;12068:339:1;22302:45:0;22363:24;22391:65;22424:21;;22391:18;:65::i;:::-;22467:46;;22358:98;;-1:-1:-1;22475:10:0;;-1:-1:-1;22467:46:0;;;;;-1:-1:-1;22358:98:0;;22467:46;;;;22358:98;22475:10;22467:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22529:46:0;;;22546:10;9537:51:1;;9619:2;9604:18;;9597:34;;;22529:46:0;;9510:18:1;22529:46:0;;;;;;;-1:-1:-1;22586:16:0;:23;;-1:-1:-1;;22586:23:0;22605:4;22586:23;;;22019:598::o;22625:1031::-;22670:21;;22695:1;22670:26;22666:104;;22737:21;22713;:45;22666:104;22803:10;22789:25;;;;:13;:25;;;;;;;;22788:26;22780:63;;;;-1:-1:-1;;;22780:63:0;;8865:2:1;22780:63:0;;;8847:21:1;8904:2;8884:18;;;8877:30;-1:-1:-1;;;8923:18:1;;;8916:54;8987:18;;22780:63:0;8663:348:1;22780:63:0;22862:11;:9;:11::i;:::-;:16;22854:49;;;;-1:-1:-1;;;22854:49:0;;;;;;;:::i;:::-;22922:10;22914:48;;;;-1:-1:-1;;;22914:48:0;;12614:2:1;22914:48:0;;;12596:21:1;12653:2;12633:18;;;12626:30;-1:-1:-1;;;12672:18:1;;;12665:41;12723:18;;22914:48:0;12412:335:1;22914:48:0;22975:32;;:::i;:::-;23041:18;:16;:18::i;:::-;-1:-1:-1;23020:39:0;-1:-1:-1;23072:16:0;;23099:192;9121:1;23119;:16;23099:192;;;23182:10;23161:14;23176:1;23161:17;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;23161:31:0;;23157:123;;23224:13;23238:1;23224:16;;;;;;;:::i;:::-;;;23213:27;;23259:5;;23157:123;23137:3;;;;:::i;:::-;;;;23099:192;;;;23306:24;23336:65;23369:21;;23336:18;:65::i;:::-;-1:-1:-1;23303:98:0;-1:-1:-1;23412:19:0;;-1:-1:-1;9190:6:0;23435:27;23454:8;23303:98;23435:27;:::i;:::-;23434:35;;;;:::i;:::-;23412:57;-1:-1:-1;23490:10:0;23482:65;9190:6;23512:27;23531:8;23512:16;:27;:::i;:::-;23511:35;;;;:::i;:::-;23482:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23565:38:0;;;23579:10;9537:51:1;;9619:2;9604:18;;9597:34;;;23565:38:0;;9510:18:1;23565:38:0;;;;;;;-1:-1:-1;;23630:10:0;23616:25;;;;:13;:25;;;;;:32;;-1:-1:-1;;23616:32:0;23644:4;23616:32;;;-1:-1:-1;;22625:1031:0:o;12002:741::-;12121:12;;;;;;;12314:19;12326:7;12314:9;:19;:::i;:::-;12287:46;-1:-1:-1;12375:20:0;12287:46;12394:1;12375:20;:::i;:::-;12374:31;;12399:6;12374:31;:::i;:::-;12350:20;12362:8;12350:9;:20;:::i;:::-;:55;12346:353;;12428:8;12422:14;;12346:353;;;12509:9;12476:20;:16;12495:1;12476:20;:::i;:::-;12475:31;;12500:6;12475:31;:::i;:::-;:43;;;;:::i;:::-;12469:49;-1:-1:-1;12535:25:0;12563:14;12469:49;12563:8;:14;:::i;:::-;12535:42;-1:-1:-1;12601:27:0;12621:7;12535:42;12601:27;:::i;:::-;12594:34;-1:-1:-1;12683:3:0;12665:14;12594:34;12672:7;12665:14;:::i;:::-;12664:22;;;;:::i;:::-;12652:35;;:8;:35;:::i;:::-;12645:42;;12454:245;12346:353;-1:-1:-1;12719:3:0;;-1:-1:-1;12724:4:0;-1:-1:-1;12730:4:0;-1:-1:-1;12002:741:0;;;;;:::o;5915:548::-;-1:-1:-1;;;;;5999:21:0;;5991:65;;;;-1:-1:-1;;;5991:65:0;;12954:2:1;5991:65:0;;;12936:21:1;12993:2;12973:18;;;12966:30;13032:33;13012:18;;;13005:61;13083:18;;5991:65:0;12752:355:1;5991:65:0;6147:6;6131:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6302:18:0;;:9;:18;;;;;;;;;;;:28;;;;;;6357:37;529:25:1;;;6357:37:0;;502:18:1;6357:37:0;;;;;;;6407:48;5915:548;;:::o;18099:1209::-;18156:20;;18187:181;9121:1;18207;:16;18187:181;;;18259:12;18272:1;18259:15;;;;;;;:::i;:::-;;;18249:7;:25;18245:112;;;18313:4;18295:22;;18336:5;;18245:112;18225:3;;;;:::i;:::-;;;;18187:181;;;;18382:15;18378:923;;;18414:15;:25;;;18502:16;:29;;-1:-1:-1;;;;;;18502:29:0;18521:10;18502:29;;;-1:-1:-1;18597:693:0;9121:1;18617;:16;18597:693;;;18664:9;18676:5;:1;18680;18676:5;:::i;:::-;18664:17;;18659:616;9121:1;18683;:16;18659:616;;;18751:12;18764:1;18751:15;;;;;;;:::i;:::-;;;18733:12;18746:1;18733:15;;;;;;;:::i;:::-;;;:33;18729:527;;;18957:12;18970:1;18957:15;;;;;;;:::i;:::-;;;19003:12;19016:1;19003:15;;;;;;;:::i;:::-;;;18890:12;18903:1;18890:15;;;;;;;:::i;:::-;;;18907:12;18920:1;18907:15;;;;;;;:::i;:::-;;18889:156;;;;;;;;-1:-1:-1;19142:13:0;19156:1;19142:16;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;19142:16:0;19189:13;19203:1;19189:16;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;19189:16:0;19073:13;19087:1;19073:16;;;;;;;:::i;:::-;;;19091:13;19105:1;19091:16;;;;;;;:::i;:::-;;19072:160;;-1:-1:-1;;;;;19072:160:0;;;-1:-1:-1;;;;;;19072:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18729:527;18701:3;;;;:::i;:::-;;;;18659:616;;;-1:-1:-1;18635:3:0;;;;:::i;:::-;;;;18597:693;;;;18145:1163;18099:1209;:::o;4628:1000::-;-1:-1:-1;;;;;4773:19:0;;4787:4;4773:19;;:44;;-1:-1:-1;;;;;;4796:21:0;;4812:4;4796:21;4773:44;4751:112;;;;-1:-1:-1;;;4751:112:0;;13314:2:1;4751:112:0;;;13296:21:1;13353:2;13333:18;;;13326:30;-1:-1:-1;;;13372:18:1;;;13365:48;13430:18;;4751:112:0;13112:342:1;4751:112:0;-1:-1:-1;;;;;4882:18:0;;4874:68;;;;-1:-1:-1;;;4874:68:0;;13661:2:1;4874:68:0;;;13643:21:1;13700:2;13680:18;;;13673:30;13739:34;13719:18;;;13712:62;-1:-1:-1;;;13790:18:1;;;13783:35;13835:19;;4874:68:0;13459:401:1;4874:68:0;-1:-1:-1;;;;;4961:16:0;;4953:64;;;;-1:-1:-1;;;4953:64:0;;14067:2:1;4953:64:0;;;14049:21:1;14106:2;14086:18;;;14079:30;14145:34;14125:18;;;14118:62;-1:-1:-1;;;14196:18:1;;;14189:33;14239:19;;4953:64:0;13865:399:1;4953:64:0;-1:-1:-1;;;;;5103:15:0;;5081:19;5103:15;;;;;;;;;;;5151:21;;;;5129:109;;;;-1:-1:-1;;;5129:109:0;;14471:2:1;5129:109:0;;;14453:21:1;14510:2;14490:18;;;14483:30;14549:34;14529:18;;;14522:62;-1:-1:-1;;;14600:18:1;;;14593:36;14646:19;;5129:109:0;14269:402:1;5129:109:0;-1:-1:-1;;;;;5274:15:0;;;:9;:15;;;;;;;;;;;5292:20;;;5274:38;;5492:13;;;;;;;;;;:23;;;;;;5544:26;;529:25:1;;;5492:13:0;;5544:26;;502:18:1;5544:26:0;;;;;;;4740:888;4628:1000;;;:::o;6796:675::-;-1:-1:-1;;;;;6880:21:0;;6872:67;;;;-1:-1:-1;;;6872:67:0;;14878:2:1;6872:67:0;;;14860:21:1;14917:2;14897:18;;;14890:30;14956:34;14936:18;;;14929:62;-1:-1:-1;;;15007:18:1;;;15000:31;15048:19;;6872:67:0;14676:397:1;6872:67:0;-1:-1:-1;;;;;7039:18:0;;7014:22;7039:18;;;;;;;;;;;7076:24;;;;7068:71;;;;-1:-1:-1;;;7068:71:0;;15280:2:1;7068:71:0;;;15262:21:1;15319:2;15299:18;;;15292:30;15358:34;15338:18;;;15331:62;-1:-1:-1;;;15409:18:1;;;15402:32;15451:19;;7068:71:0;15078:398:1;7068:71:0;-1:-1:-1;;;;;7175:18:0;;:9;:18;;;;;;;;;;;7196:23;;;7175:44;;7314:12;:22;;;;;;;7365:37;529:25:1;;;7175:9:0;;:18;7365:37;;502:18:1;7365:37:0;;;;;;;18597:693;18145:1163;18099:1209;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;565:548::-;677:4;706:2;735;724:9;717:21;767:6;761:13;810:6;805:2;794:9;790:18;783:34;835:1;845:140;859:6;856:1;853:13;845:140;;;954:14;;;950:23;;944:30;920:17;;;939:2;916:26;909:66;874:10;;845:140;;;849:3;1034:1;1029:2;1020:6;1009:9;1005:22;1001:31;994:42;1104:2;1097;1093:7;1088:2;1080:6;1076:15;1072:29;1061:9;1057:45;1053:54;1045:62;;;;565:548;;;;:::o;1778:180::-;1837:6;1890:2;1878:9;1869:7;1865:23;1861:32;1858:52;;;1906:1;1903;1896:12;1858:52;-1:-1:-1;1929:23:1;;1778:180;-1:-1:-1;1778:180:1:o;2385:959::-;2616:2;2668:21;;;2738:13;;2641:18;;;2760:22;;;2587:4;;2616:2;2801;;2819:18;;;;2860:15;;;2587:4;2903:415;2917:6;2914:1;2911:13;2903:415;;;2976:13;;3018:9;;-1:-1:-1;;;;;3014:35:1;3002:48;;3090:11;;;3084:18;3070:12;;;3063:40;3143:11;;;3137:18;3123:12;;;3116:40;3179:4;3223:11;;;3217:18;3203:12;;;3196:40;3265:4;3256:14;;;;3293:15;;;;3046:1;2932:9;2903:415;;;-1:-1:-1;3335:3:1;;2385:959;-1:-1:-1;;;;;;;2385:959:1:o;3865:254::-;3933:6;3941;3994:2;3982:9;3973:7;3969:23;3965:32;3962:52;;;4010:1;4007;4000:12;3962:52;4033:29;4052:9;4033:29;:::i;:::-;4023:39;4109:2;4094:18;;;;4081:32;;-1:-1:-1;;;3865:254:1:o;4124:932::-;4378:3;4363:19;;4367:9;4459:6;4336:4;4493:220;4507:4;4504:1;4501:11;4493:220;;;4570:13;;-1:-1:-1;;;;;4566:39:1;4554:52;;4629:4;4653:12;;;;4688:15;;;;4602:1;4520:9;4493:220;;;4497:3;;;4750;4739:9;4735:19;4802:6;4828:1;4838:212;4854:4;4849:3;4846:13;4838:212;;;4919:15;;4905:30;;4958:4;4984:14;;;;5023:17;;;;4878:1;4869:11;4838:212;;;4842:3;;;4124:932;;;;;:::o;5457:248::-;5525:6;5533;5586:2;5574:9;5565:7;5561:23;5557:32;5554:52;;;5602:1;5599;5592:12;5554:52;-1:-1:-1;;5625:23:1;;;5695:2;5680:18;;;5667:32;;-1:-1:-1;5457:248:1:o;5710:380::-;5789:1;5785:12;;;;5832;;;5853:61;;5907:4;5899:6;5895:17;5885:27;;5853:61;5960:2;5952:6;5949:14;5929:18;5926:38;5923:161;;6006:10;6001:3;5997:20;5994:1;5987:31;6041:4;6038:1;6031:15;6069:4;6066:1;6059:15;5923:161;;5710:380;;;:::o;6095:127::-;6156:10;6151:3;6147:20;6144:1;6137:31;6187:4;6184:1;6177:15;6211:4;6208:1;6201:15;6227:168;6300:9;;;6331;;6348:15;;;6342:22;;6328:37;6318:71;;6369:18;;:::i;6400:217::-;6440:1;6466;6456:132;;6510:10;6505:3;6501:20;6498:1;6491:31;6545:4;6542:1;6535:15;6573:4;6570:1;6563:15;6456:132;-1:-1:-1;6602:9:1;;6400:217::o;6622:125::-;6687:9;;;6708:10;;;6705:36;;;6721:18;;:::i;6752:128::-;6819:9;;;6840:11;;;6837:37;;;6854:18;;:::i;6885:135::-;6924:3;6945:17;;;6942:43;;6965:18;;:::i;:::-;-1:-1:-1;7012:1:1;7001:13;;6885:135::o;7713:127::-;7774:10;7769:3;7765:20;7762:1;7755:31;7805:4;7802:1;7795:15;7829:4;7826:1;7819:15;7845:127;7906:10;7901:3;7897:20;7894:1;7887:31;7937:4;7934:1;7927:15;7961:4;7958:1;7951:15;8314:344;8516:2;8498:21;;;8555:2;8535:18;;;8528:30;-1:-1:-1;;;8589:2:1;8574:18;;8567:50;8649:2;8634:18;;8314:344::o

Swarm Source

ipfs://9db1885bcf0b9f02137a80115021c5f2f7b73a5bb8d7e80dab424c6a3db6fe3a

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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