ETH Price: $1,829.02 (-2.68%)
Gas: 0.04 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve173285032023-05-24 10:38:471006 days ago1684924727IN
Panzerprotocol: PNZR Token
0 ETH0.000749230.87203145
Approve133593572021-10-05 13:32:411602 days ago1633440761IN
Panzerprotocol: PNZR Token
0 ETH0.00584794125.62183861
Exclude From Fee...124828552021-05-22 7:47:201738 days ago1621669640IN
Panzerprotocol: PNZR Token
0 ETH0.0028766162
Transfer124828482021-05-22 7:46:181738 days ago1621669578IN
Panzerprotocol: PNZR Token
0 ETH0.0029368157
Exclude From Fee...124828412021-05-22 7:45:041738 days ago1621669504IN
Panzerprotocol: PNZR Token
0 ETH0.0028766162
Transfer124826552021-05-22 7:00:531738 days ago1621666853IN
Panzerprotocol: PNZR Token
0 ETH0.0035451653.35
Approve121860042021-04-06 11:54:161784 days ago1617710056IN
Panzerprotocol: PNZR Token
0 ETH0.00506752114
Approve121111312021-03-25 23:35:151796 days ago1616715315IN
Panzerprotocol: PNZR Token
0 ETH0.00488972110
Approve119533292021-03-01 16:10:261820 days ago1614615026IN
Panzerprotocol: PNZR Token
0 ETH0.00742348167.00000145
Transfer119533042021-03-01 16:04:301820 days ago1614614670IN
Panzerprotocol: PNZR Token
0 ETH0.00940231169
Approve119291412021-02-25 22:54:281824 days ago1614293668IN
Panzerprotocol: PNZR Token
0 ETH0.00782355176
Approve119291292021-02-25 22:51:411824 days ago1614293501IN
Panzerprotocol: PNZR Token
0 ETH0.007868177
Transfer119221452021-02-24 21:05:521825 days ago1614200752IN
Panzerprotocol: PNZR Token
0 ETH0.01058985150
Transfer119221422021-02-24 21:05:261825 days ago1614200726IN
Panzerprotocol: PNZR Token
0 ETH0.01009565143
Approve119154782021-02-23 20:14:081826 days ago1614111248IN
Panzerprotocol: PNZR Token
0 ETH0.01095297246.4
Approve119148302021-02-23 17:53:291826 days ago1614102809IN
Panzerprotocol: PNZR Token
0 ETH0.0089793202
Approve119137362021-02-23 14:02:491826 days ago1614088969IN
Panzerprotocol: PNZR Token
0 ETH0.02012208452.67000172
Approve119097162021-02-22 23:01:341827 days ago1614034894IN
Panzerprotocol: PNZR Token
0 ETH0.00662334149
Approve119092592021-02-22 21:25:571827 days ago1614029157IN
Panzerprotocol: PNZR Token
0 ETH0.00689006155
Approve119081682021-02-22 17:22:211827 days ago1614014541IN
Panzerprotocol: PNZR Token
0 ETH0.0245375552
Approve119080652021-02-22 16:59:341827 days ago1614013174IN
Panzerprotocol: PNZR Token
0 ETH0.02209264497
Approve119080332021-02-22 16:53:531827 days ago1614012833IN
Panzerprotocol: PNZR Token
0 ETH0.022226500
Approve119080312021-02-22 16:53:371827 days ago1614012817IN
Panzerprotocol: PNZR Token
0 ETH0.022226500
Transfer119080272021-02-22 16:53:011827 days ago1614012781IN
Panzerprotocol: PNZR Token
0 ETH0.03070212554
Approve119080002021-02-22 16:45:041827 days ago1614012304IN
Panzerprotocol: PNZR Token
0 ETH0.02662674599
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
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:
Panzerprotocol

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-02-15
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.7.4;


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

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

interface IERC20 {
    
    function totalSupply() external view returns (uint256);

    
    function balanceOf(address account) external view returns (uint256);

   
    function transfer(address recipient, uint256 amount) external returns (bool);

    
    function allowance(address owner, address spender) external view returns (uint256);

  
    function approve(address spender, uint256 amount) external returns (bool);

   
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    
    event Transfer(address indexed from, address indexed to, uint256 value);

    
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
   
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
    
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

   
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

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

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

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

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

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

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

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

   
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
       

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

   
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

 
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}



contract Panzerprotocol is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private constant NAME = "Panzerprotocol.io";
    string private constant SYMBOL = "PNZR";
    uint8 private constant DECIMALS = 18;

    mapping(address => uint256) private rewards;
    mapping(address => uint256) private actual;
    mapping(address => mapping(address => uint256)) private allowances;

    mapping(address => bool) private excludedFromFees;
    mapping(address => bool) private excludedFromRewards;
    address[] private rewardExcluded;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant ACTUAL_TOTAL = 111_000_000 * 1e18;
    uint256 private rewardsTotal = (MAX - (MAX % ACTUAL_TOTAL));
    uint256 private holderFeeTotal;
    uint256 private marketingFeeTotal;
    uint256 private lpFeeTotal;
    

    uint256 public taxPercentage = 3;
    uint256 public holderTaxAlloc = 10;
    uint256 public marketingTaxAlloc = 10;
    uint256 public lpTaxAlloc = 10;
    uint256 public totalTaxAlloc = marketingTaxAlloc.add(holderTaxAlloc).add(lpTaxAlloc);

    address public marketingAddress;
    address public lpStakingAddress;
    

    constructor(address _marketingAddress) {
        rewards[_marketingAddress] = rewardsTotal;
        emit Transfer(address(0), _marketingAddress, ACTUAL_TOTAL);

        marketingAddress = _marketingAddress;

        excludeFromRewards(_msgSender());
        excludeFromFees(_marketingAddress);

        if (_marketingAddress != _msgSender()) {
            excludeFromRewards(_marketingAddress);
            excludeFromFees(_msgSender());


        }

        excludeFromFees(address(0x000000000000000000000000000000000000dEaD));
    }

    function name() external pure returns (string memory) {
        return NAME;
    }

    function symbol() external pure returns (string memory) {
        return SYMBOL;
    }

    function decimals() external pure returns (uint8) {
        return DECIMALS;
    }

    function totalSupply() external pure override returns (uint256) {
        return ACTUAL_TOTAL;
    }

    function balanceOf(address _account) public view override returns (uint256) {
        if (excludedFromRewards[_account]) {
            return actual[_account];
        }
        return tokenWithRewards(rewards[_account]);
    }

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

    function allowance(address _owner, address _spender) public view override returns (uint256) {
        return allowances[_owner][_spender];
    }

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

    function transferFrom(
        address _sender,
        address _recipient,
        uint256 _amount
    ) public override returns (bool) {
        _transfer(_sender, _recipient, _amount);

        _approve(
        _sender,
            _msgSender(),
            allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance")
        );

        return true;
    }

    function increaseAllowance(address _spender, uint256 _addedValue) public virtual returns (bool) {
        _approve(_msgSender(), _spender, allowances[_msgSender()][_spender].add(_addedValue));
        return true;
    }

    function decreaseAllowance(address _spender, uint256 _subtractedValue) public virtual returns (bool) {
        _approve(
            _msgSender(),
            _spender,
            allowances[_msgSender()][_spender].sub(_subtractedValue, "ERC20: decreased allowance below zero")
        );
        return true;
    }

    function isExcludedFromRewards(address _account) external view returns (bool) {
        return excludedFromRewards[_account];
    }

    function isExcludedFromFees(address _account) external view returns (bool) {
        return excludedFromFees[_account];
    }

    function totalFees() external view returns (uint256) {
        return holderFeeTotal.add(marketingFeeTotal).add(lpFeeTotal);
    }

    function totalHolderFees() external view returns (uint256) {
        return holderFeeTotal;
    }

    function totalMarketingFees() external view returns (uint256) {
        return marketingFeeTotal;
    }

    function totalLpFees() external view returns (uint256) {
        return lpFeeTotal;
    }

   

    function distribute(uint256 _actualAmount) public {
        address sender = _msgSender();
        require(!excludedFromRewards[sender], "Excluded addresses cannot call this function");

        (uint256 rewardAmount, , , , ) = _getValues(_actualAmount);
        rewards[sender] = rewards[sender].sub(rewardAmount);
        rewardsTotal = rewardsTotal.sub(rewardAmount);
        holderFeeTotal = holderFeeTotal.add(_actualAmount);
    }

    function excludeFromFees(address _account) public onlyOwner() {
        require(!excludedFromFees[_account], "Account is already excluded from fee");
        excludedFromFees[_account] = true;
    }

    function includeInFees(address _account) public onlyOwner() {
        require(excludedFromFees[_account], "Account is already included in fee");
        excludedFromFees[_account] = false;
    }

    function excludeFromRewards(address _account) public onlyOwner() {
        require(!excludedFromRewards[_account], "Account is already excluded from reward");

        if (rewards[_account] > 0) {
            actual[_account] = tokenWithRewards(rewards[_account]);
        }

        excludedFromRewards[_account] = true;
        rewardExcluded.push(_account);
    }

    function includeInRewards(address _account) public onlyOwner() {
        require(excludedFromRewards[_account], "Account is already included in rewards");

        for (uint256 i = 0; i < rewardExcluded.length; i++) {
            if (rewardExcluded[i] == _account) {
                rewardExcluded[i] = rewardExcluded[rewardExcluded.length - 1];
                actual[_account] = 0;
                excludedFromRewards[_account] = false;
                rewardExcluded.pop();
                break;
            }
        }
    }

    function _approve(
        address _owner,
        address _spender,
        uint256 _amount
    ) private {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(_spender != address(0), "ERC20: approve to the zero address");

        allowances[_owner][_spender] = _amount;
        emit Approval(_owner, _spender, _amount);
    }

    function _transfer(
        address _sender,
        address _recipient,
        uint256 _amount
    ) private {
        require(_sender != address(0), "ERC20: transfer from the zero address");
        require(_recipient != address(0), "ERC20: transfer to the zero address");
        require(_amount > 0, "Transfer amount must be greater than zero");

        uint256 currentTaxPercentage = taxPercentage;
        if (excludedFromFees[_sender] || excludedFromFees[_recipient]) {
            taxPercentage = 0;
        } else {
            uint256 fee = _getFee(_amount);
            uint256 marketingFee = _getMarketingFee(fee);
            uint256 lpFee = _getLpFee(fee);

            _updateMarketingFee(marketingFee);
            _updateLpFee(lpFee);
            
        }

        if (excludedFromRewards[_sender] && !excludedFromRewards[_recipient]) {
            _transferWithoutSenderRewards(_sender, _recipient, _amount);
        } else if (!excludedFromRewards[_sender] && excludedFromRewards[_recipient]) {
            _transferWithRecipientRewards(_sender, _recipient, _amount);
        } else if (!excludedFromRewards[_sender] && !excludedFromRewards[_recipient]) {
            _transferWithRewards(_sender, _recipient, _amount);
        } else if (excludedFromRewards[_sender] && excludedFromRewards[_recipient]) {
            _transferWithoutRewards(_sender, _recipient, _amount);
        } else {
            _transferWithRewards(_sender, _recipient, _amount);
        }

        if (currentTaxPercentage != taxPercentage) {
            taxPercentage = currentTaxPercentage;
        }
    }

    function _transferWithRewards(
        address _sender,
        address _recipient,
        uint256 _actualAmount
    ) private {
        (
            uint256 rewardAmount,
            uint256 rewardTransferAmount,
            uint256 rewardFee,
            uint256 actualTransferAmount,
            uint256 actualFee
        ) = _getValues(_actualAmount);

        rewards[_sender] = rewards[_sender].sub(rewardAmount);
        rewards[_recipient] = rewards[_recipient].add(rewardTransferAmount);
        _updateHolderFee(rewardFee, actualFee);
        emit Transfer(_sender, _recipient, actualTransferAmount);
    }

    function _transferWithRecipientRewards(
        address _sender,
        address _recipient,
        uint256 _actualAmount
    ) private {
        (
            uint256 rewardAmount,
            uint256 rewardTransferAmount,
            uint256 rewardFee,
            uint256 actualTransferAmount,
            uint256 actualFee
        ) = _getValues(_actualAmount);

        rewards[_sender] = rewards[_sender].sub(rewardAmount);
        actual[_recipient] = actual[_recipient].add(actualTransferAmount);
        rewards[_recipient] = rewards[_recipient].add(rewardTransferAmount);
        _updateHolderFee(rewardFee, actualFee);
        emit Transfer(_sender, _recipient, actualTransferAmount);
    }

    function _transferWithoutSenderRewards(
        address _sender,
        address _recipient,
        uint256 _actualAmount
    ) private {
        (
            uint256 rewardAmount,
            uint256 rewardTransferAmount,
            uint256 rewardFee,
            uint256 actualTransferAmount,
            uint256 actualFee
        ) = _getValues(_actualAmount);

        actual[_sender] = actual[_sender].sub(_actualAmount);
        rewards[_sender] = rewards[_sender].sub(rewardAmount);
        rewards[_recipient] = rewards[_recipient].add(rewardTransferAmount);
        _updateHolderFee(rewardFee, actualFee);
        emit Transfer(_sender, _recipient, actualTransferAmount);
    }

    function _transferWithoutRewards(
        address _sender,
        address _recipient,
        uint256 _actualAmount
    ) private {
        (
            uint256 rewardAmount,
            uint256 rewardTransferAmount,
            uint256 rewardFee,
            uint256 actualTransferAmount,
            uint256 actualFee
        ) = _getValues(_actualAmount);

        actual[_sender] = actual[_sender].sub(_actualAmount);
        rewards[_sender] = rewards[_sender].sub(rewardAmount);
        actual[_recipient] = actual[_recipient].add(actualTransferAmount);
        rewards[_recipient] = rewards[_recipient].add(rewardTransferAmount);
        _updateHolderFee(rewardFee, actualFee);
        emit Transfer(_sender, _recipient, actualTransferAmount);
    }

    function _updateHolderFee(uint256 _rewardFee, uint256 _actualFee) private {
        rewardsTotal = rewardsTotal.sub(_rewardFee);
        holderFeeTotal = holderFeeTotal.add(_actualFee);
    }

    function _updateMarketingFee(uint256 _marketingFee) private {
        if (marketingAddress == address(0)) {
            return;
        }

        uint256 rewardsRate = _getRewardsRate();
        uint256 rewardMarketingFee = _marketingFee.mul(rewardsRate);
        marketingFeeTotal = marketingFeeTotal.add(_marketingFee);

        rewards[marketingAddress] = rewards[marketingAddress].add(rewardMarketingFee);
        if (excludedFromRewards[marketingAddress]) {
            actual[marketingAddress] = actual[marketingAddress].add(_marketingFee);
        }
    }

    function _updateLpFee(uint256 _lpFee) private {
        if (lpStakingAddress == address(0)) {
            return;
        }

        uint256 rewardsRate = _getRewardsRate();
        uint256 rewardLpFee = _lpFee.mul(rewardsRate);
        lpFeeTotal = lpFeeTotal.add(_lpFee);

        rewards[lpStakingAddress] = rewards[lpStakingAddress].add(rewardLpFee);
        if (excludedFromRewards[lpStakingAddress]) {
            actual[lpStakingAddress] = actual[lpStakingAddress].add(_lpFee);
        }
    }



    function rewardsFromToken(uint256 _actualAmount, bool _deductTransferFee) public view returns (uint256) {
        require(_actualAmount <= ACTUAL_TOTAL, "Amount must be less than supply");
        if (!_deductTransferFee) {
            (uint256 rewardAmount, , , , ) = _getValues(_actualAmount);
            return rewardAmount;
        } else {
            (, uint256 rewardTransferAmount, , , ) = _getValues(_actualAmount);
            return rewardTransferAmount;
        }
    }

    function tokenWithRewards(uint256 _rewardAmount) public view returns (uint256) {
        require(_rewardAmount <= rewardsTotal, "Amount must be less than total rewards");
        uint256 rewardsRate = _getRewardsRate();
        return _rewardAmount.div(rewardsRate);
    }

    function _getValues(uint256 _actualAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 actualTransferAmount, uint256 actualFee) = _getActualValues(_actualAmount);
        uint256 rewardsRate = _getRewardsRate();
        (
            uint256 rewardAmount,
            uint256 rewardTransferAmount,
            uint256 rewardFee
        ) = _getRewardValues(_actualAmount, actualFee, rewardsRate);

        return (rewardAmount, rewardTransferAmount, rewardFee, actualTransferAmount, actualFee);
    }

    function _getActualValues(uint256 _actualAmount) private view returns (uint256, uint256) {
        uint256 actualFee = _getFee(_actualAmount);
        uint256 actualHolderFee = _getHolderFee(actualFee);
        uint256 actualTransferAmount = _actualAmount.sub(actualFee);
        return (actualTransferAmount, actualHolderFee);
    }

    function _getRewardValues(
        uint256 _actualAmount,
        uint256 _actualHolderFee,
        uint256 _rewardsRate
    )
        private
        view
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 actualFee = _getFee(_actualAmount).mul(_rewardsRate);
        uint256 rewardAmount = _actualAmount.mul(_rewardsRate);
        uint256 rewardTransferAmount = rewardAmount.sub(actualFee);
        uint256 rewardFee = _actualHolderFee.mul(_rewardsRate);
        return (rewardAmount, rewardTransferAmount, rewardFee);
    }

    function _getRewardsRate() private view returns (uint256) {
        (uint256 rewardsSupply, uint256 actualSupply) = _getCurrentSupply();
        return rewardsSupply.div(actualSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rewardsSupply = rewardsTotal;
        uint256 actualSupply = ACTUAL_TOTAL;

        for (uint256 i = 0; i < rewardExcluded.length; i++) {
            if (rewards[rewardExcluded[i]] > rewardsSupply || actual[rewardExcluded[i]] > actualSupply) {
                return (rewardsTotal, ACTUAL_TOTAL);
            }

            rewardsSupply = rewardsSupply.sub(rewards[rewardExcluded[i]]);
            actualSupply = actualSupply.sub(actual[rewardExcluded[i]]);
        }

        if (rewardsSupply < rewardsTotal.div(ACTUAL_TOTAL)) {
            return (rewardsTotal, ACTUAL_TOTAL);
        }

        return (rewardsSupply, actualSupply);
    }

    function _getFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(taxPercentage).div(100);
    }

    function _getHolderFee(uint256 _tax) private view returns (uint256) {
        return _tax.mul(holderTaxAlloc).div(totalTaxAlloc);
    }

    function _getMarketingFee(uint256 _tax) private view returns (uint256) {
        return _tax.mul(marketingTaxAlloc).div(totalTaxAlloc);
    }

    function _getLpFee(uint256 _tax) private view returns (uint256) {
        return _tax.mul(lpTaxAlloc).div(totalTaxAlloc);
    }


    function setTaxPercentage(uint256 _taxPercentage) external onlyOwner {
        require(_taxPercentage >= 1 && _taxPercentage <= 10, "Value is outside of range 1-10");
        taxPercentage = _taxPercentage;
    }

    function setTaxAllocations(
        uint256 _holderTaxAlloc,
        uint256 _marketingTaxAlloc,
        uint256 _lpTaxAlloc
        
    ) external onlyOwner {
        totalTaxAlloc = _holderTaxAlloc.add(_marketingTaxAlloc).add(_lpTaxAlloc);

        require(_holderTaxAlloc >= 5 && _holderTaxAlloc <= 10, "_holderTaxAlloc is outside of range 5-10");
        require(_lpTaxAlloc >= 5 && _lpTaxAlloc <= 10, "_lpTaxAlloc is outside of range 5-10");
       

        holderTaxAlloc = _holderTaxAlloc;
        marketingTaxAlloc = _marketingTaxAlloc;
        lpTaxAlloc = _lpTaxAlloc;
        
    }

    function setMarketingAddress(address _marketingAddress) external onlyOwner {
        marketingAddress = _marketingAddress;
    }

    function setLpStakingAddress(address _lpStakingAddress) external onlyOwner {
        lpStakingAddress = _lpStakingAddress;
    }

    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_actualAmount","type":"uint256"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"excludeFromRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"holderTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"includeInRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isExcludedFromRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpStakingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_actualAmount","type":"uint256"},{"internalType":"bool","name":"_deductTransferFee","type":"bool"}],"name":"rewardsFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpStakingAddress","type":"address"}],"name":"setLpStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_holderTaxAlloc","type":"uint256"},{"internalType":"uint256","name":"_marketingTaxAlloc","type":"uint256"},{"internalType":"uint256","name":"_lpTaxAlloc","type":"uint256"}],"name":"setTaxAllocations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxPercentage","type":"uint256"}],"name":"setTaxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardAmount","type":"uint256"}],"name":"tokenWithRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalHolderFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLpFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526a472b90577347c921ffffff196007556003600b55600a600c819055600d819055600e8190556200005b90620000478180620001db602090811b6200153517901c565b620001db60201b620015351790919060201c565b600f553480156200006b57600080fd5b5060405162002d9938038062002d99833981810160405260208110156200009157600080fd5b505160006200009f6200023d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007546001600160a01b03821660008181526001602090815260408083209490945583516a5bd12a0eaadb08cf00000081529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3601080546001600160a01b0319166001600160a01b0383161790556200017a620001746200023d565b62000241565b6200018581620003c6565b6200018f6200023d565b6001600160a01b0316816001600160a01b031614620001c757620001b38162000241565b620001c7620001c16200023d565b620003c6565b620001d461dead620003c6565b50620007df565b60008282018381101562000236576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6200024b6200023d565b6001600160a01b03166200025e620004ac565b6001600160a01b031614620002a9576040805162461bcd60e51b8152602060048201819052602482015260008051602062002d2f833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff1615620003035760405162461bcd60e51b815260040180806020018281038252602781526020018062002d086027913960400191505060405180910390fd5b6001600160a01b0381166000908152600160205260409020541562000360576001600160a01b0381166000908152600160205260409020546200034690620004bb565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b620003d06200023d565b6001600160a01b0316620003e3620004ac565b6001600160a01b0316146200042e576040805162461bcd60e51b8152602060048201819052602482015260008051602062002d2f833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff1615620004885760405162461bcd60e51b815260040180806020018281038252602481526020018062002d756024913960400191505060405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031690565b6000600754821115620005005760405162461bcd60e51b815260040180806020018281038252602681526020018062002d4f6026913960400191505060405180910390fd5b60006200050c62000528565b90506200023681846200055b60201b6200158f1790919060201c565b6000808062000536620005c4565b915091506200055481836200055b60201b6200158f1790919060201c565b9250505090565b6000808211620005b2576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381620005bc57fe5b049392505050565b60075460009081906a5bd12a0eaadb08cf000000825b6006548110156200072c57826001600060068481548110620005f857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200065f57508160026000600684815481106200063857fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1562000681576007546a5bd12a0eaadb08cf000000945094505050506200077d565b620006d060016000600684815481106200069757fe5b60009182526020808320909101546001600160a01b031683528281019390935260409091019020548591620015f662000781821b17901c565b9250620007216002600060068481548110620006e857fe5b60009182526020808320909101546001600160a01b031683528281019390935260409091019020548491620015f662000781821b17901c565b9150600101620005da565b50620007546a5bd12a0eaadb08cf0000006007546200055b60201b6200158f1790919060201c565b82101562000777576007546a5bd12a0eaadb08cf0000009350935050506200077d565b90925090505b9091565b600082821115620007d9576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b61251980620007ef6000396000f3fe608060405234801561001057600080fd5b50600436106102315760003560e01c8063715018a61161013057806395d89b41116100b8578063b609995e1161007c578063b609995e1461061a578063d84bf7a814610640578063dd62ed3e14610648578063e57f14e114610676578063f2fde38b1461069c57610231565b806395d89b41146105aa578063a457c2d7146105b2578063a5ece941146105de578063a9059cbb146105e6578063ae7b6d161461061257610231565b80638baa3fd4116100ff5780638baa3fd41461051c5780638da05f8f146105395780638da5cb5b1461055f578063906e9dd01461056757806391c05b0b1461058d57610231565b8063715018a6146104fc57806374e47a1e1461050457806375edd5f21461050c5780637c31efb11461051457610231565b806323b872dd116101be5780634fbee193116101825780634fbee19314610483578063595f052e146104a95780636740b9c6146104b1578063699abb3c146104b957806370a08231146104d657610231565b806323b872dd146103d6578063313ce5671461040c5780633557ee771461042a578063395093511461044f57806340e7bdf41461047b57610231565b8063111e037611610205578063111e03761461033d57806313114a9d1461036557806313647dc81461037f57806316a2f82a146103a857806318160ddd146103ce57610231565b8062897ad31461023657806306fdde031461025a578063095ea7b3146102d75780630e83227314610317575b600080fd5b61023e6106c2565b604080516001600160a01b039092168252519081900360200190f35b6102626106d1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029c578181015183820152602001610284565b50505050905090810190601f1680156102c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610303600480360360408110156102ed57600080fd5b506001600160a01b0381351690602001356106fc565b604080519115158252519081900360200190f35b6103036004803603602081101561032d57600080fd5b50356001600160a01b031661071a565b6103636004803603602081101561035357600080fd5b50356001600160a01b031661073c565b005b61036d6108b6565b60408051918252519081900360200190f35b6103636004803603606081101561039557600080fd5b50803590602081013590604001356108e0565b610363600480360360208110156103be57600080fd5b50356001600160a01b03166109fb565b61036d610ad5565b610303600480360360608110156103ec57600080fd5b506001600160a01b03813581169160208101359091169060400135610ae4565b610414610b6b565b6040805160ff9092168252519081900360200190f35b61036d6004803603604081101561044057600080fd5b50803590602001351515610b70565b6103036004803603604081101561046557600080fd5b506001600160a01b038135169060200135610c09565b61036d610c57565b6103036004803603602081101561049957600080fd5b50356001600160a01b0316610c5d565b61036d610c7b565b61036d610c81565b610363600480360360208110156104cf57600080fd5b5035610c87565b61036d600480360360208110156104ec57600080fd5b50356001600160a01b0316610d51565b610363610db3565b61036d610e5f565b61036d610e65565b61036d610e6b565b61036d6004803603602081101561053257600080fd5b5035610e71565b6103636004803603602081101561054f57600080fd5b50356001600160a01b0316610ed1565b61023e610f55565b6103636004803603602081101561057d57600080fd5b50356001600160a01b0316610f64565b610363600480360360208110156105a357600080fd5b5035610fe8565b6102626110c0565b610303600480360360408110156105c857600080fd5b506001600160a01b0381351690602001356110de565b61023e611146565b610303600480360360408110156105fc57600080fd5b506001600160a01b038135169060200135611155565b61036d611169565b6103636004803603602081101561063057600080fd5b50356001600160a01b031661116f565b61036d611324565b61036d6004803603604081101561065e57600080fd5b506001600160a01b038135811691602001351661132a565b6103636004803603602081101561068c57600080fd5b50356001600160a01b0316611355565b610363600480360360208110156106b257600080fd5b50356001600160a01b0316611433565b6011546001600160a01b031681565b60408051808201909152601181527050616e7a657270726f746f636f6c2e696f60781b602082015290565b6000610710610709611653565b8484611657565b5060015b92915050565b6001600160a01b03811660009081526005602052604090205460ff165b919050565b610744611653565b6001600160a01b0316610755610f55565b6001600160a01b03161461079e576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16156107f65760405162461bcd60e51b81526004018080602001828103825260278152602001806122936027913960400191505060405180910390fd5b6001600160a01b03811660009081526001602052604090205415610850576001600160a01b03811660009081526001602052604090205461083690610e71565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b60006108db600a546108d560095460085461153590919063ffffffff16565b90611535565b905090565b6108e8611653565b6001600160a01b03166108f9610f55565b6001600160a01b031614610942576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b610950816108d58585611535565b600f55600583108015906109655750600a8311155b6109a05760405162461bcd60e51b815260040180806020018281038252602881526020018061226b6028913960400191505060405180910390fd5b600581101580156109b25750600a8111155b6109ed5760405162461bcd60e51b815260040180806020018281038252602481526020018061234a6024913960400191505060405180910390fd5b600c92909255600d55600e55565b610a03611653565b6001600160a01b0316610a14610f55565b6001600160a01b031614610a5d576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff16610ab45760405162461bcd60e51b81526004018080602001828103825260228152602001806122e06022913960400191505060405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6a5bd12a0eaadb08cf00000090565b6000610af1848484611743565b610b6184610afd611653565b610b5c8560405180606001604052806028815260200161238f602891396001600160a01b038a16600090815260036020526040812090610b3b611653565b6001600160a01b031681526020810191909152604001600020549190611a03565b611657565b5060019392505050565b601290565b60006a5bd12a0eaadb08cf000000831115610bd2576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610bf0576000610be284611a9a565b509294506107149350505050565b6000610bfb84611a9a565b509194506107149350505050565b6000610710610c16611653565b84610b5c8560036000610c27611653565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611535565b600f5481565b6001600160a01b031660009081526004602052604090205460ff1690565b600e5481565b600a5490565b610c8f611653565b6001600160a01b0316610ca0610f55565b6001600160a01b031614610ce9576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b60018110158015610cfb5750600a8111155b610d4c576040805162461bcd60e51b815260206004820152601e60248201527f56616c7565206973206f757473696465206f662072616e676520312d31300000604482015290519081900360640190fd5b600b55565b6001600160a01b03811660009081526005602052604081205460ff1615610d9157506001600160a01b038116600090815260026020526040902054610737565b6001600160a01b03821660009081526001602052604090205461071490610e71565b610dbb611653565b6001600160a01b0316610dcc610f55565b6001600160a01b031614610e15576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600c5481565b600d5481565b60085490565b6000600754821115610eb45760405162461bcd60e51b81526004018080602001828103825260268152602001806124496026913960400191505060405180910390fd5b6000610ebe611ae6565b9050610eca838261158f565b9392505050565b610ed9611653565b6001600160a01b0316610eea610f55565b6001600160a01b031614610f33576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b610f6c611653565b6001600160a01b0316610f7d610f55565b6001600160a01b031614610fc6576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ff2611653565b6001600160a01b03811660009081526005602052604090205490915060ff161561104d5760405162461bcd60e51b815260040180806020018281038252602c815260200180612493602c913960400191505060405180910390fd5b600061105883611a9a565b505050506001600160a01b03831660009081526001602052604090205490915061108290826115f6565b6001600160a01b0383166000908152600160205260409020556007546110a890826115f6565b6007556008546110b89084611535565b600855505050565b60408051808201909152600481526328272d2960e11b602082015290565b60006107106110eb611653565b84610b5c856040518060600160405280602581526020016124bf6025913960036000611115611653565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a03565b6010546001600160a01b031681565b6000610710611162611653565b8484611743565b600b5481565b611177611653565b6001600160a01b0316611188610f55565b6001600160a01b0316146111d1576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff166112285760405162461bcd60e51b81526004018080602001828103825260268152602001806122ba6026913960400191505060405180910390fd5b60005b60065481101561132057816001600160a01b03166006828154811061124c57fe5b6000918252602090912001546001600160a01b031614156113185760068054600019810190811061127957fe5b600091825260209091200154600680546001600160a01b03909216918390811061129f57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff1916905560068054806112f157fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611320565b60010161122b565b5050565b60095490565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61135d611653565b6001600160a01b031661136e610f55565b6001600160a01b0316146113b7576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff161561140f5760405162461bcd60e51b815260040180806020018281038252602481526020018061246f6024913960400191505060405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b61143b611653565b6001600160a01b031661144c610f55565b6001600160a01b031614611495576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b0381166114da5760405162461bcd60e51b81526004018080602001828103825260268152602001806123026026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610eca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008082116115e5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816115ee57fe5b049392505050565b60008282111561164d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3390565b6001600160a01b03831661169c5760405162461bcd60e51b81526004018080602001828103825260248152602001806124256024913960400191505060405180910390fd5b6001600160a01b0382166116e15760405162461bcd60e51b81526004018080602001828103825260228152602001806123286022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166117885760405162461bcd60e51b81526004018080602001828103825260258152602001806124006025913960400191505060405180910390fd5b6001600160a01b0382166117cd5760405162461bcd60e51b81526004018080602001828103825260238152602001806122486023913960400191505060405180910390fd5b6000811161180c5760405162461bcd60e51b81526004018080602001828103825260298152602001806123d76029913960400191505060405180910390fd5b600b546001600160a01b03841660009081526004602052604090205460ff168061184e57506001600160a01b03831660009081526004602052604090205460ff165b1561185d576000600b5561189a565b600061186883611b09565b9050600061187582611b2b565b9050600061188283611b48565b905061188d82611b65565b61189681611c4b565b5050505b6001600160a01b03841660009081526005602052604090205460ff1680156118db57506001600160a01b03831660009081526005602052604090205460ff16155b156118f0576118eb848484611d2f565b6119ee565b6001600160a01b03841660009081526005602052604090205460ff1615801561193157506001600160a01b03831660009081526005602052604090205460ff165b15611941576118eb848484611e46565b6001600160a01b03841660009081526005602052604090205460ff1615801561198357506001600160a01b03831660009081526005602052604090205460ff16155b15611993576118eb848484611eec565b6001600160a01b03841660009081526005602052604090205460ff1680156119d357506001600160a01b03831660009081526005602052604090205460ff165b156119e3576118eb848484611f2d565b6119ee848484611eec565b600b5481146119fd57600b8190555b50505050565b60008184841115611a925760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a57578181015183820152602001611a3f565b50505050905090810190601f168015611a845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000806000806000611aae88611f9d565b915091506000611abc611ae6565b90506000806000611ace8c8686611fd2565b919e909d50909b509599509397509395505050505050565b6000806000611af3612026565b9092509050611b02828261158f565b9250505090565b60006107146064611b25600b54856121ad90919063ffffffff16565b9061158f565b6000610714600f54611b25600d54856121ad90919063ffffffff16565b6000610714600f54611b25600e54856121ad90919063ffffffff16565b6010546001600160a01b0316611b7a57611c48565b6000611b84611ae6565b90506000611b9283836121ad565b600954909150611ba29084611535565b6009556010546001600160a01b0316600090815260016020526040902054611bca9082611535565b601080546001600160a01b03908116600090815260016020908152604080832095909555925490911681526005909152205460ff1615611c45576010546001600160a01b0316600090815260026020526040902054611c299084611535565b6010546001600160a01b03166000908152600260205260409020555b50505b50565b6011546001600160a01b0316611c6057611c48565b6000611c6a611ae6565b90506000611c7883836121ad565b600a54909150611c889084611535565b600a556011546001600160a01b0316600090815260016020526040902054611cb09082611535565b601180546001600160a01b03908116600090815260016020908152604080832095909555925490911681526005909152205460ff1615611c45576011546001600160a01b0316600090815260026020526040902054611d0f9084611535565b6011546001600160a01b0316600090815260026020526040902055505050565b6000806000806000611d4086611a9a565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611d7090876115f6565b6001600160a01b038916600090815260026020908152604080832093909355600190522054611d9f90866115f6565b6001600160a01b03808a166000908152600160205260408082209390935590891681522054611dce9085611535565b6001600160a01b038816600090815260016020526040902055611df18382612206565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000611e5786611a9a565b6001600160a01b038d1660009081526001602052604090205494995092975090955093509150611e8790866115f6565b6001600160a01b03808a16600090815260016020908152604080832094909455918a16815260029091522054611ebd9083611535565b6001600160a01b038816600090815260026020908152604080832093909355600190522054611dce9085611535565b6000806000806000611efd86611a9a565b6001600160a01b038d1660009081526001602052604090205494995092975090955093509150611d9f90866115f6565b6000806000806000611f3e86611a9a565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611f6e90876115f6565b6001600160a01b038916600090815260026020908152604080832093909355600190522054611e8790866115f6565b6000806000611fab84611b09565b90506000611fb88261222a565b90506000611fc686846115f6565b94509092505050915091565b600080600080611feb85611fe589611b09565b906121ad565b90506000611ff988876121ad565b9050600061200782846115f6565b9050600061201589896121ad565b929a91995091975095505050505050565b60075460009081906a5bd12a0eaadb08cf000000825b6006548110156121695782600160006006848154811061205857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806120bd575081600260006006848154811061209657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156120dd576007546a5bd12a0eaadb08cf000000945094505050506121a9565b61211d60016000600684815481106120f157fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906115f6565b925061215f600260006006848154811061213357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906115f6565b915060010161203c565b50600754612182906a5bd12a0eaadb08cf00000061158f565b8210156121a3576007546a5bd12a0eaadb08cf0000009350935050506121a9565b90925090505b9091565b6000826121bc57506000610714565b828202828482816121c957fe5b0414610eca5760405162461bcd60e51b815260040180806020018281038252602181526020018061236e6021913960400191505060405180910390fd5b60075461221390836115f6565b6007556008546122239082611535565b6008555050565b6000610714600f54611b25600c54856121ad90919063ffffffff1656fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735f686f6c646572546178416c6c6f63206973206f757473696465206f662072616e676520352d31304163636f756e7420697320616c7265616479206578636c756465642066726f6d207265776172644163636f756e7420697320616c726561647920696e636c7564656420696e20726577617264734163636f756e7420697320616c726561647920696e636c7564656420696e206665654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735f6c70546178416c6c6f63206973206f757473696465206f662072616e676520352d3130536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c20726577617264734163636f756e7420697320616c7265616479206578636c756465642066726f6d206665654578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220570c4252a59e23995950ead8b639aa6a16bec506caa031f3c5fcbe274581fb7964736f6c634300070400334163636f756e7420697320616c7265616479206578636c756465642066726f6d207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572416d6f756e74206d757374206265206c657373207468616e20746f74616c20726577617264734163636f756e7420697320616c7265616479206578636c756465642066726f6d206665650000000000000000000000008650501ba870b8df5353c21a6a62953a8ff5ea91

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102315760003560e01c8063715018a61161013057806395d89b41116100b8578063b609995e1161007c578063b609995e1461061a578063d84bf7a814610640578063dd62ed3e14610648578063e57f14e114610676578063f2fde38b1461069c57610231565b806395d89b41146105aa578063a457c2d7146105b2578063a5ece941146105de578063a9059cbb146105e6578063ae7b6d161461061257610231565b80638baa3fd4116100ff5780638baa3fd41461051c5780638da05f8f146105395780638da5cb5b1461055f578063906e9dd01461056757806391c05b0b1461058d57610231565b8063715018a6146104fc57806374e47a1e1461050457806375edd5f21461050c5780637c31efb11461051457610231565b806323b872dd116101be5780634fbee193116101825780634fbee19314610483578063595f052e146104a95780636740b9c6146104b1578063699abb3c146104b957806370a08231146104d657610231565b806323b872dd146103d6578063313ce5671461040c5780633557ee771461042a578063395093511461044f57806340e7bdf41461047b57610231565b8063111e037611610205578063111e03761461033d57806313114a9d1461036557806313647dc81461037f57806316a2f82a146103a857806318160ddd146103ce57610231565b8062897ad31461023657806306fdde031461025a578063095ea7b3146102d75780630e83227314610317575b600080fd5b61023e6106c2565b604080516001600160a01b039092168252519081900360200190f35b6102626106d1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029c578181015183820152602001610284565b50505050905090810190601f1680156102c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610303600480360360408110156102ed57600080fd5b506001600160a01b0381351690602001356106fc565b604080519115158252519081900360200190f35b6103036004803603602081101561032d57600080fd5b50356001600160a01b031661071a565b6103636004803603602081101561035357600080fd5b50356001600160a01b031661073c565b005b61036d6108b6565b60408051918252519081900360200190f35b6103636004803603606081101561039557600080fd5b50803590602081013590604001356108e0565b610363600480360360208110156103be57600080fd5b50356001600160a01b03166109fb565b61036d610ad5565b610303600480360360608110156103ec57600080fd5b506001600160a01b03813581169160208101359091169060400135610ae4565b610414610b6b565b6040805160ff9092168252519081900360200190f35b61036d6004803603604081101561044057600080fd5b50803590602001351515610b70565b6103036004803603604081101561046557600080fd5b506001600160a01b038135169060200135610c09565b61036d610c57565b6103036004803603602081101561049957600080fd5b50356001600160a01b0316610c5d565b61036d610c7b565b61036d610c81565b610363600480360360208110156104cf57600080fd5b5035610c87565b61036d600480360360208110156104ec57600080fd5b50356001600160a01b0316610d51565b610363610db3565b61036d610e5f565b61036d610e65565b61036d610e6b565b61036d6004803603602081101561053257600080fd5b5035610e71565b6103636004803603602081101561054f57600080fd5b50356001600160a01b0316610ed1565b61023e610f55565b6103636004803603602081101561057d57600080fd5b50356001600160a01b0316610f64565b610363600480360360208110156105a357600080fd5b5035610fe8565b6102626110c0565b610303600480360360408110156105c857600080fd5b506001600160a01b0381351690602001356110de565b61023e611146565b610303600480360360408110156105fc57600080fd5b506001600160a01b038135169060200135611155565b61036d611169565b6103636004803603602081101561063057600080fd5b50356001600160a01b031661116f565b61036d611324565b61036d6004803603604081101561065e57600080fd5b506001600160a01b038135811691602001351661132a565b6103636004803603602081101561068c57600080fd5b50356001600160a01b0316611355565b610363600480360360208110156106b257600080fd5b50356001600160a01b0316611433565b6011546001600160a01b031681565b60408051808201909152601181527050616e7a657270726f746f636f6c2e696f60781b602082015290565b6000610710610709611653565b8484611657565b5060015b92915050565b6001600160a01b03811660009081526005602052604090205460ff165b919050565b610744611653565b6001600160a01b0316610755610f55565b6001600160a01b03161461079e576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16156107f65760405162461bcd60e51b81526004018080602001828103825260278152602001806122936027913960400191505060405180910390fd5b6001600160a01b03811660009081526001602052604090205415610850576001600160a01b03811660009081526001602052604090205461083690610e71565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b60006108db600a546108d560095460085461153590919063ffffffff16565b90611535565b905090565b6108e8611653565b6001600160a01b03166108f9610f55565b6001600160a01b031614610942576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b610950816108d58585611535565b600f55600583108015906109655750600a8311155b6109a05760405162461bcd60e51b815260040180806020018281038252602881526020018061226b6028913960400191505060405180910390fd5b600581101580156109b25750600a8111155b6109ed5760405162461bcd60e51b815260040180806020018281038252602481526020018061234a6024913960400191505060405180910390fd5b600c92909255600d55600e55565b610a03611653565b6001600160a01b0316610a14610f55565b6001600160a01b031614610a5d576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff16610ab45760405162461bcd60e51b81526004018080602001828103825260228152602001806122e06022913960400191505060405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6a5bd12a0eaadb08cf00000090565b6000610af1848484611743565b610b6184610afd611653565b610b5c8560405180606001604052806028815260200161238f602891396001600160a01b038a16600090815260036020526040812090610b3b611653565b6001600160a01b031681526020810191909152604001600020549190611a03565b611657565b5060019392505050565b601290565b60006a5bd12a0eaadb08cf000000831115610bd2576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610bf0576000610be284611a9a565b509294506107149350505050565b6000610bfb84611a9a565b509194506107149350505050565b6000610710610c16611653565b84610b5c8560036000610c27611653565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611535565b600f5481565b6001600160a01b031660009081526004602052604090205460ff1690565b600e5481565b600a5490565b610c8f611653565b6001600160a01b0316610ca0610f55565b6001600160a01b031614610ce9576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b60018110158015610cfb5750600a8111155b610d4c576040805162461bcd60e51b815260206004820152601e60248201527f56616c7565206973206f757473696465206f662072616e676520312d31300000604482015290519081900360640190fd5b600b55565b6001600160a01b03811660009081526005602052604081205460ff1615610d9157506001600160a01b038116600090815260026020526040902054610737565b6001600160a01b03821660009081526001602052604090205461071490610e71565b610dbb611653565b6001600160a01b0316610dcc610f55565b6001600160a01b031614610e15576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600c5481565b600d5481565b60085490565b6000600754821115610eb45760405162461bcd60e51b81526004018080602001828103825260268152602001806124496026913960400191505060405180910390fd5b6000610ebe611ae6565b9050610eca838261158f565b9392505050565b610ed9611653565b6001600160a01b0316610eea610f55565b6001600160a01b031614610f33576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b610f6c611653565b6001600160a01b0316610f7d610f55565b6001600160a01b031614610fc6576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ff2611653565b6001600160a01b03811660009081526005602052604090205490915060ff161561104d5760405162461bcd60e51b815260040180806020018281038252602c815260200180612493602c913960400191505060405180910390fd5b600061105883611a9a565b505050506001600160a01b03831660009081526001602052604090205490915061108290826115f6565b6001600160a01b0383166000908152600160205260409020556007546110a890826115f6565b6007556008546110b89084611535565b600855505050565b60408051808201909152600481526328272d2960e11b602082015290565b60006107106110eb611653565b84610b5c856040518060600160405280602581526020016124bf6025913960036000611115611653565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a03565b6010546001600160a01b031681565b6000610710611162611653565b8484611743565b600b5481565b611177611653565b6001600160a01b0316611188610f55565b6001600160a01b0316146111d1576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff166112285760405162461bcd60e51b81526004018080602001828103825260268152602001806122ba6026913960400191505060405180910390fd5b60005b60065481101561132057816001600160a01b03166006828154811061124c57fe5b6000918252602090912001546001600160a01b031614156113185760068054600019810190811061127957fe5b600091825260209091200154600680546001600160a01b03909216918390811061129f57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff1916905560068054806112f157fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611320565b60010161122b565b5050565b60095490565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61135d611653565b6001600160a01b031661136e610f55565b6001600160a01b0316146113b7576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff161561140f5760405162461bcd60e51b815260040180806020018281038252602481526020018061246f6024913960400191505060405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b61143b611653565b6001600160a01b031661144c610f55565b6001600160a01b031614611495576040805162461bcd60e51b815260206004820181905260248201526000805160206123b7833981519152604482015290519081900360640190fd5b6001600160a01b0381166114da5760405162461bcd60e51b81526004018080602001828103825260268152602001806123026026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610eca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008082116115e5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816115ee57fe5b049392505050565b60008282111561164d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3390565b6001600160a01b03831661169c5760405162461bcd60e51b81526004018080602001828103825260248152602001806124256024913960400191505060405180910390fd5b6001600160a01b0382166116e15760405162461bcd60e51b81526004018080602001828103825260228152602001806123286022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166117885760405162461bcd60e51b81526004018080602001828103825260258152602001806124006025913960400191505060405180910390fd5b6001600160a01b0382166117cd5760405162461bcd60e51b81526004018080602001828103825260238152602001806122486023913960400191505060405180910390fd5b6000811161180c5760405162461bcd60e51b81526004018080602001828103825260298152602001806123d76029913960400191505060405180910390fd5b600b546001600160a01b03841660009081526004602052604090205460ff168061184e57506001600160a01b03831660009081526004602052604090205460ff165b1561185d576000600b5561189a565b600061186883611b09565b9050600061187582611b2b565b9050600061188283611b48565b905061188d82611b65565b61189681611c4b565b5050505b6001600160a01b03841660009081526005602052604090205460ff1680156118db57506001600160a01b03831660009081526005602052604090205460ff16155b156118f0576118eb848484611d2f565b6119ee565b6001600160a01b03841660009081526005602052604090205460ff1615801561193157506001600160a01b03831660009081526005602052604090205460ff165b15611941576118eb848484611e46565b6001600160a01b03841660009081526005602052604090205460ff1615801561198357506001600160a01b03831660009081526005602052604090205460ff16155b15611993576118eb848484611eec565b6001600160a01b03841660009081526005602052604090205460ff1680156119d357506001600160a01b03831660009081526005602052604090205460ff165b156119e3576118eb848484611f2d565b6119ee848484611eec565b600b5481146119fd57600b8190555b50505050565b60008184841115611a925760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a57578181015183820152602001611a3f565b50505050905090810190601f168015611a845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000806000806000611aae88611f9d565b915091506000611abc611ae6565b90506000806000611ace8c8686611fd2565b919e909d50909b509599509397509395505050505050565b6000806000611af3612026565b9092509050611b02828261158f565b9250505090565b60006107146064611b25600b54856121ad90919063ffffffff16565b9061158f565b6000610714600f54611b25600d54856121ad90919063ffffffff16565b6000610714600f54611b25600e54856121ad90919063ffffffff16565b6010546001600160a01b0316611b7a57611c48565b6000611b84611ae6565b90506000611b9283836121ad565b600954909150611ba29084611535565b6009556010546001600160a01b0316600090815260016020526040902054611bca9082611535565b601080546001600160a01b03908116600090815260016020908152604080832095909555925490911681526005909152205460ff1615611c45576010546001600160a01b0316600090815260026020526040902054611c299084611535565b6010546001600160a01b03166000908152600260205260409020555b50505b50565b6011546001600160a01b0316611c6057611c48565b6000611c6a611ae6565b90506000611c7883836121ad565b600a54909150611c889084611535565b600a556011546001600160a01b0316600090815260016020526040902054611cb09082611535565b601180546001600160a01b03908116600090815260016020908152604080832095909555925490911681526005909152205460ff1615611c45576011546001600160a01b0316600090815260026020526040902054611d0f9084611535565b6011546001600160a01b0316600090815260026020526040902055505050565b6000806000806000611d4086611a9a565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611d7090876115f6565b6001600160a01b038916600090815260026020908152604080832093909355600190522054611d9f90866115f6565b6001600160a01b03808a166000908152600160205260408082209390935590891681522054611dce9085611535565b6001600160a01b038816600090815260016020526040902055611df18382612206565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000611e5786611a9a565b6001600160a01b038d1660009081526001602052604090205494995092975090955093509150611e8790866115f6565b6001600160a01b03808a16600090815260016020908152604080832094909455918a16815260029091522054611ebd9083611535565b6001600160a01b038816600090815260026020908152604080832093909355600190522054611dce9085611535565b6000806000806000611efd86611a9a565b6001600160a01b038d1660009081526001602052604090205494995092975090955093509150611d9f90866115f6565b6000806000806000611f3e86611a9a565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611f6e90876115f6565b6001600160a01b038916600090815260026020908152604080832093909355600190522054611e8790866115f6565b6000806000611fab84611b09565b90506000611fb88261222a565b90506000611fc686846115f6565b94509092505050915091565b600080600080611feb85611fe589611b09565b906121ad565b90506000611ff988876121ad565b9050600061200782846115f6565b9050600061201589896121ad565b929a91995091975095505050505050565b60075460009081906a5bd12a0eaadb08cf000000825b6006548110156121695782600160006006848154811061205857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806120bd575081600260006006848154811061209657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156120dd576007546a5bd12a0eaadb08cf000000945094505050506121a9565b61211d60016000600684815481106120f157fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906115f6565b925061215f600260006006848154811061213357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906115f6565b915060010161203c565b50600754612182906a5bd12a0eaadb08cf00000061158f565b8210156121a3576007546a5bd12a0eaadb08cf0000009350935050506121a9565b90925090505b9091565b6000826121bc57506000610714565b828202828482816121c957fe5b0414610eca5760405162461bcd60e51b815260040180806020018281038252602181526020018061236e6021913960400191505060405180910390fd5b60075461221390836115f6565b6007556008546122239082611535565b6008555050565b6000610714600f54611b25600c54856121ad90919063ffffffff1656fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735f686f6c646572546178416c6c6f63206973206f757473696465206f662072616e676520352d31304163636f756e7420697320616c7265616479206578636c756465642066726f6d207265776172644163636f756e7420697320616c726561647920696e636c7564656420696e20726577617264734163636f756e7420697320616c726561647920696e636c7564656420696e206665654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735f6c70546178416c6c6f63206973206f757473696465206f662072616e676520352d3130536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c20726577617264734163636f756e7420697320616c7265616479206578636c756465642066726f6d206665654578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220570c4252a59e23995950ead8b639aa6a16bec506caa031f3c5fcbe274581fb7964736f6c63430007040033

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

0000000000000000000000008650501ba870b8df5353c21a6a62953a8ff5ea91

-----Decoded View---------------
Arg [0] : _marketingAddress (address): 0x8650501BA870B8df5353c21a6a62953a8Ff5ea91

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008650501ba870b8df5353c21a6a62953a8ff5ea91


Deployed Bytecode Sourcemap

8213:17728:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9407:31;;;:::i;:::-;;;;-1:-1:-1;;;;;9407:31:0;;;;;;;;;;;;;;10012:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10975:165;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10975:165:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12122:133;;;;;;;;;;;;;;;;-1:-1:-1;12122:133:0;-1:-1:-1;;;;;12122:133:0;;:::i;13730:375::-;;;;;;;;;;;;;;;;-1:-1:-1;13730:375:0;-1:-1:-1;;;;;13730:375:0;;:::i;:::-;;12398:132;;;:::i;:::-;;;;;;;;;;;;;;;;25043:611;;;;;;;;;;;;;;;;-1:-1:-1;25043:611:0;;;;;;;;;;;;:::i;13525:197::-;;;;;;;;;;;;;;;;-1:-1:-1;13525:197:0;-1:-1:-1;;;;;13525:197:0;;:::i;10292:102::-;;;:::i;11148:405::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11148:405:0;;;;;;;;;;;;;;;;;:::i;10200:84::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20884:491;;;;;;;;;;;;;;;;-1:-1:-1;20884:491:0;;;;;;;;;:::i;11561:222::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11561:222:0;;;;;;;;:::i;9276:84::-;;;:::i;12263:127::-;;;;;;;;;;;;;;;;-1:-1:-1;12263:127:0;-1:-1:-1;;;;;12263:127:0;;:::i;9239:30::-;;;:::i;12758:91::-;;;:::i;24820:215::-;;;;;;;;;;;;;;;;-1:-1:-1;24820:215:0;;:::i;10402:232::-;;;;;;;;;;;;;;;;-1:-1:-1;10402:232:0;-1:-1:-1;;;;;10402:232:0;;:::i;7796:148::-;;;:::i;9154:34::-;;;:::i;9195:37::-;;;:::i;12538:99::-;;;:::i;21383:276::-;;;;;;;;;;;;;;;;-1:-1:-1;21383:276:0;;:::i;25800:130::-;;;;;;;;;;;;;;;;-1:-1:-1;25800:130:0;-1:-1:-1;;;;;25800:130:0;;:::i;7561:87::-;;;:::i;25662:130::-;;;;;;;;;;;;;;;;-1:-1:-1;25662:130:0;-1:-1:-1;;;;;25662:130:0;;:::i;12864:444::-;;;;;;;;;;;;;;;;-1:-1:-1;12864:444:0;;:::i;10104:88::-;;;:::i;11791:323::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11791:323:0;;;;;;;;:::i;9369:31::-;;;:::i;10642:171::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10642:171:0;;;;;;;;:::i;9115:32::-;;;:::i;14113:541::-;;;;;;;;;;;;;;;;-1:-1:-1;14113:541:0;-1:-1:-1;;;;;14113:541:0;;:::i;12645:105::-;;;:::i;10821:146::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10821:146:0;;;;;;;;;;:::i;13316:201::-;;;;;;;;;;;;;;;;-1:-1:-1;13316:201:0;-1:-1:-1;;;;;13316:201:0;;:::i;7958:244::-;;;;;;;;;;;;;;;;-1:-1:-1;7958:244:0;-1:-1:-1;;;;;7958:244:0;;:::i;9407:31::-;;;-1:-1:-1;;;;;9407:31:0;;:::o;10012:84::-;10084:4;;;;;;;;;;;;-1:-1:-1;;;10084:4:0;;;;10012:84;:::o;10975:165::-;11052:4;11069:41;11078:12;:10;:12::i;:::-;11092:8;11102:7;11069:8;:41::i;:::-;-1:-1:-1;11128:4:0;10975:165;;;;;:::o;12122:133::-;-1:-1:-1;;;;;12218:29:0;;12194:4;12218:29;;;:19;:29;;;;;;;;12122:133;;;;:::o;13730:375::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13815:29:0;::::1;;::::0;;;:19:::1;:29;::::0;;;;;::::1;;13814:30;13806:82;;;;-1:-1:-1::0;;;13806:82:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13905:17:0;::::1;13925:1;13905:17:::0;;;:7:::1;:17;::::0;;;;;:21;13901:108:::1;;-1:-1:-1::0;;;;;13979:17:0;::::1;;::::0;;;:7:::1;:17;::::0;;;;;13962:35:::1;::::0;:16:::1;:35::i;:::-;-1:-1:-1::0;;;;;13943:16:0;::::1;;::::0;;;:6:::1;:16;::::0;;;;:54;13901:108:::1;-1:-1:-1::0;;;;;14021:29:0::1;;::::0;;;:19:::1;:29;::::0;;;;:36;;-1:-1:-1;;14021:36:0::1;14053:4;14021:36:::0;;::::1;::::0;;;14068:14:::1;:29:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;14068:29:0::1;::::0;;::::1;::::0;;13730:375::o;12398:132::-;12442:7;12469:53;12511:10;;12469:37;12488:17;;12469:14;;:18;;:37;;;;:::i;:::-;:41;;:53::i;:::-;12462:60;;12398:132;:::o;25043:611::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;25234:56:::1;25278:11:::0;25234:39:::1;:15:::0;25254:18;25234:19:::1;:39::i;:56::-;25218:13;:72:::0;25330:1:::1;25311:20:::0;::::1;::::0;::::1;::::0;:45:::1;;;25354:2;25335:15;:21;;25311:45;25303:98;;;;-1:-1:-1::0;;;25303:98:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25435:1;25420:11;:16;;:37;;;;;25455:2;25440:11;:17;;25420:37;25412:86;;;;-1:-1:-1::0;;;25412:86:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25520:14;:32:::0;;;;25563:17:::1;:38:::0;25612:10:::1;:24:::0;25043:611::o;13525:197::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13604:26:0;::::1;;::::0;;;:16:::1;:26;::::0;;;;;::::1;;13596:73;;;;-1:-1:-1::0;;;13596:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13680:26:0::1;13709:5;13680:26:::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;13680:34:0::1;::::0;;13525:197::o;10292:102::-;8906:18;10292:102;:::o;11148:405::-;11283:4;11300:39;11310:7;11319:10;11331:7;11300:9;:39::i;:::-;11352:169;11371:7;11393:12;:10;:12::i;:::-;11420:90;11458:7;11420:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11420:19:0;;;;;;:10;:19;;;;;;11440:12;:10;:12::i;:::-;-1:-1:-1;;;;;11420:33:0;;;;;;;;;;;;-1:-1:-1;11420:33:0;;;:90;:37;:90::i;:::-;11352:8;:169::i;:::-;-1:-1:-1;11541:4:0;11148:405;;;;;:::o;10200:84::-;8476:2;10200:84;:::o;20884:491::-;20979:7;8906:18;21007:13;:29;;20999:73;;;;;-1:-1:-1;;;20999:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21088:18;21083:285;;21124:20;21156:25;21167:13;21156:10;:25::i;:::-;-1:-1:-1;21123:58:0;;-1:-1:-1;21196:19:0;;-1:-1:-1;;;;21196:19:0;21083:285;21251:28;21289:25;21300:13;21289:10;:25::i;:::-;-1:-1:-1;21248:66:0;;-1:-1:-1;21329:27:0;;-1:-1:-1;;;;21329:27:0;11561:222;11651:4;11668:85;11677:12;:10;:12::i;:::-;11691:8;11701:51;11740:11;11701:10;:24;11712:12;:10;:12::i;:::-;-1:-1:-1;;;;;11701:24:0;;;;;;;;;;;;;;;;;-1:-1:-1;11701:24:0;;;:34;;;;;;;;;;;:38;:51::i;9276:84::-;;;;:::o;12263:127::-;-1:-1:-1;;;;;12356:26:0;12332:4;12356:26;;;:16;:26;;;;;;;;;12263:127::o;9239:30::-;;;;:::o;12758:91::-;12831:10;;12758:91;:::o;24820:215::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;24926:1:::1;24908:14;:19;;:43;;;;;24949:2;24931:14;:20;;24908:43;24900:86;;;::::0;;-1:-1:-1;;;24900:86:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;24997:13;:30:::0;24820:215::o;10402:232::-;-1:-1:-1;;;;;10493:29:0;;10469:7;10493:29;;;:19;:29;;;;;;;;10489:85;;;-1:-1:-1;;;;;;10546:16:0;;;;;;:6;:16;;;;;;10539:23;;10489:85;-1:-1:-1;;;;;10608:17:0;;;;;;:7;:17;;;;;;10591:35;;:16;:35::i;7796:148::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;7903:1:::1;7887:6:::0;;7866:40:::1;::::0;-1:-1:-1;;;;;7887:6:0;;::::1;::::0;7866:40:::1;::::0;7903:1;;7866:40:::1;7934:1;7917:19:::0;;-1:-1:-1;;;;;;7917:19:0::1;::::0;;7796:148::o;9154:34::-;;;;:::o;9195:37::-;;;;:::o;12538:99::-;12615:14;;12538:99;:::o;21383:276::-;21453:7;21498:12;;21481:13;:29;;21473:80;;;;-1:-1:-1;;;21473:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21564:19;21586:17;:15;:17::i;:::-;21564:39;-1:-1:-1;21621:30:0;:13;21564:39;21621:17;:30::i;:::-;21614:37;21383:276;-1:-1:-1;;;21383:276:0:o;25800:130::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;25886:16:::1;:36:::0;;-1:-1:-1;;;;;;25886:36:0::1;-1:-1:-1::0;;;;;25886:36:0;;;::::1;::::0;;;::::1;::::0;;25800:130::o;7561:87::-;7607:7;7634:6;-1:-1:-1;;;;;7634:6:0;7561:87;:::o;25662:130::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;25748:16:::1;:36:::0;;-1:-1:-1;;;;;;25748:36:0::1;-1:-1:-1::0;;;;;25748:36:0;;;::::1;::::0;;;::::1;::::0;;25662:130::o;12864:444::-;12925:14;12942:12;:10;:12::i;:::-;-1:-1:-1;;;;;12974:27:0;;;;;;:19;:27;;;;;;12925:29;;-1:-1:-1;12974:27:0;;12973:28;12965:85;;;;-1:-1:-1;;;12965:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13064:20;13096:25;13107:13;13096:10;:25::i;:::-;-1:-1:-1;;;;;;;;;13150:15:0;;;;;;:7;:15;;;;;;13063:58;;-1:-1:-1;13150:33:0;;13063:58;13150:19;:33::i;:::-;-1:-1:-1;;;;;13132:15:0;;;;;;:7;:15;;;;;:51;13209:12;;:30;;13226:12;13209:16;:30::i;:::-;13194:12;:45;13267:14;;:33;;13286:13;13267:18;:33::i;:::-;13250:14;:50;-1:-1:-1;;;12864:444:0:o;10104:88::-;10178:6;;;;;;;;;;;;-1:-1:-1;;;10178:6:0;;;;10104:88;:::o;11791:323::-;11886:4;11903:181;11926:12;:10;:12::i;:::-;11953:8;11976:97;12015:16;11976:97;;;;;;;;;;;;;;;;;:10;:24;11987:12;:10;:12::i;:::-;-1:-1:-1;;;;;11976:24:0;;;;;;;;;;;;;;;;;-1:-1:-1;11976:24:0;;;:34;;;;;;;;;;;:97;:38;:97::i;9369:31::-;;;-1:-1:-1;;;;;9369:31:0;;:::o;10642:171::-;10722:4;10739:44;10749:12;:10;:12::i;:::-;10763:10;10775:7;10739:9;:44::i;9115:32::-;;;;:::o;14113:541::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14195:29:0;::::1;;::::0;;;:19:::1;:29;::::0;;;;;::::1;;14187:80;;;;-1:-1:-1::0;;;14187:80:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14285:9;14280:367;14304:14;:21:::0;14300:25;::::1;14280:367;;;14372:8;-1:-1:-1::0;;;;;14351:29:0::1;:14;14366:1;14351:17;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14351:17:0::1;:29;14347:289;;;14421:14;14436:21:::0;;-1:-1:-1;;14436:25:0;;;14421:41;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;14401:14:::1;:17:::0;;-1:-1:-1;;;;;14421:41:0;;::::1;::::0;14416:1;;14401:17;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:61:::0;;-1:-1:-1;;;;;;14401:61:0::1;-1:-1:-1::0;;;;;14401:61:0;;::::1;;::::0;;14481:16;;::::1;::::0;;:6:::1;:16:::0;;;;;;:20;;;14520:19:::1;:29:::0;;;;:37;;-1:-1:-1;;14520:37:0::1;::::0;;14576:14:::1;:20:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;14576:20:0;;;;;-1:-1:-1;;;;;;14576:20:0::1;::::0;;;;;14615:5:::1;;14347:289;14327:3;;14280:367;;;;14113:541:::0;:::o;12645:105::-;12725:17;;12645:105;:::o;10821:146::-;-1:-1:-1;;;;;10931:18:0;;;10904:7;10931:18;;;:10;:18;;;;;;;;:28;;;;;;;;;;;;;10821:146::o;13316:201::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13398:26:0;::::1;;::::0;;;:16:::1;:26;::::0;;;;;::::1;;13397:27;13389:76;;;;-1:-1:-1::0;;;13389:76:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13476:26:0::1;;::::0;;;:16:::1;:26;::::0;;;;:33;;-1:-1:-1;;13476:33:0::1;13505:4;13476:33;::::0;;13316:201::o;7958:244::-;7713:12;:10;:12::i;:::-;-1:-1:-1;;;;;7702:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7702:23:0;;7694:68;;;;;-1:-1:-1;;;7694:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7694:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8047:22:0;::::1;8039:73;;;;-1:-1:-1::0;;;8039:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8149:6;::::0;;8128:38:::1;::::0;-1:-1:-1;;;;;8128:38:0;;::::1;::::0;8149:6;::::1;::::0;8128:38:::1;::::0;::::1;8177:6;:17:::0;;-1:-1:-1;;;;;;8177:17:0::1;-1:-1:-1::0;;;;;8177:17:0;;;::::1;::::0;;;::::1;::::0;;7958:244::o;1994:179::-;2052:7;2084:5;;;2108:6;;;;2100:46;;;;;-1:-1:-1;;;2100:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2590:153;2648:7;2680:1;2676;:5;2668:44;;;;;-1:-1:-1;;;2668:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2734:1;2730;:5;;;;;;;2590:153;-1:-1:-1;;;2590:153:0:o;2185:158::-;2243:7;2276:1;2271;:6;;2263:49;;;;;-1:-1:-1;;;2263:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2330:5:0;;;2185:158::o;87:98::-;167:10;87:98;:::o;14662:381::-;-1:-1:-1;;;;;14792:20:0;;14784:69;;;;-1:-1:-1;;;14784:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14872:22:0;;14864:69;;;;-1:-1:-1;;;14864:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14946:18:0;;;;;;;:10;:18;;;;;;;;:28;;;;;;;;;;;;;:38;;;15000:35;;;;;;;;;;;;;;;;;14662:381;;;:::o;15051:1643::-;-1:-1:-1;;;;;15185:21:0;;15177:71;;;;-1:-1:-1;;;15177:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15267:24:0;;15259:72;;;;-1:-1:-1;;;15259:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15360:1;15350:7;:11;15342:65;;;;-1:-1:-1;;;15342:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15451:13;;-1:-1:-1;;;;;15479:25:0;;15420:28;15479:25;;;:16;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15508:28:0;;;;;;:16;:28;;;;;;;;15479:57;15475:372;;;15569:1;15553:13;:17;15475:372;;;15603:11;15617:16;15625:7;15617;:16::i;:::-;15603:30;;15648:20;15671:21;15688:3;15671:16;:21::i;:::-;15648:44;;15707:13;15723:14;15733:3;15723:9;:14::i;:::-;15707:30;;15754:33;15774:12;15754:19;:33::i;:::-;15802:19;15815:5;15802:12;:19::i;:::-;15475:372;;;;-1:-1:-1;;;;;15863:28:0;;;;;;:19;:28;;;;;;;;:64;;;;-1:-1:-1;;;;;;15896:31:0;;;;;;:19;:31;;;;;;;;15895:32;15863:64;15859:710;;;15944:59;15974:7;15983:10;15995:7;15944:29;:59::i;:::-;15859:710;;;-1:-1:-1;;;;;16026:28:0;;;;;;:19;:28;;;;;;;;16025:29;:64;;;;-1:-1:-1;;;;;;16058:31:0;;;;;;:19;:31;;;;;;;;16025:64;16021:548;;;16106:59;16136:7;16145:10;16157:7;16106:29;:59::i;16021:548::-;-1:-1:-1;;;;;16188:28:0;;;;;;:19;:28;;;;;;;;16187:29;:65;;;;-1:-1:-1;;;;;;16221:31:0;;;;;;:19;:31;;;;;;;;16220:32;16187:65;16183:386;;;16269:50;16290:7;16299:10;16311:7;16269:20;:50::i;16183:386::-;-1:-1:-1;;;;;16341:28:0;;;;;;:19;:28;;;;;;;;:63;;;;-1:-1:-1;;;;;;16373:31:0;;;;;;:19;:31;;;;;;;;16341:63;16337:232;;;16421:53;16445:7;16454:10;16466:7;16421:23;:53::i;16337:232::-;16507:50;16528:7;16537:10;16549:7;16507:20;:50::i;:::-;16609:13;;16585:20;:37;16581:106;;16639:13;:36;;;16581:106;15051:1643;;;;:::o;2922:166::-;3008:7;3044:12;3036:6;;;;3028:29;;;;-1:-1:-1;;;3028:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3075:5:0;;;2922:166::o;21667:660::-;21773:7;21795;21817;21839;21861;21897:28;21927:17;21948:31;21965:13;21948:16;:31::i;:::-;21896:83;;;;21990:19;22012:17;:15;:17::i;:::-;21990:39;;22055:20;22090:28;22133:17;22164:55;22181:13;22196:9;22207:11;22164:16;:55::i;:::-;22040:179;;;;-1:-1:-1;22040:179:0;;-1:-1:-1;22287:20:0;;-1:-1:-1;22309:9:0;;-1:-1:-1;21667:660:0;;-1:-1:-1;;;;;;21667:660:0:o;23294:193::-;23343:7;23364:21;23387:20;23411:19;:17;:19::i;:::-;23363:67;;-1:-1:-1;23363:67:0;-1:-1:-1;23448:31:0;23363:67;;23448:17;:31::i;:::-;23441:38;;;;23294:193;:::o;24251:126::-;24307:7;24334:35;24365:3;24334:26;24346:13;;24334:7;:11;;:26;;;;:::i;:::-;:30;;:35::i;24530:143::-;24592:7;24619:46;24651:13;;24619:27;24628:17;;24619:4;:8;;:27;;;;:::i;24681:129::-;24736:7;24763:39;24788:13;;24763:20;24772:10;;24763:4;:8;;:20;;;;:::i;19775:576::-;19850:16;;-1:-1:-1;;;;;19850:16:0;19846:69;;19897:7;;19846:69;19927:19;19949:17;:15;:17::i;:::-;19927:39;-1:-1:-1;19977:26:0;20006:30;:13;19927:39;20006:17;:30::i;:::-;20067:17;;19977:59;;-1:-1:-1;20067:36:0;;20089:13;20067:21;:36::i;:::-;20047:17;:56;20152:16;;-1:-1:-1;;;;;20152:16:0;20144:25;;;;:7;:25;;;;;;:49;;20174:18;20144:29;:49::i;:::-;20124:16;;;-1:-1:-1;;;;;20124:16:0;;;20116:25;;;;:7;:25;;;;;;;;:77;;;;20228:16;;;;;20208:37;;:19;:37;;;;;;;20204:140;;;20296:16;;-1:-1:-1;;;;;20296:16:0;20289:24;;;;:6;:24;;;;;;:43;;20318:13;20289:28;:43::i;:::-;20269:16;;-1:-1:-1;;;;;20269:16:0;20262:24;;;;:6;:24;;;;;:70;20204:140;19775:576;;;;:::o;20359:513::-;20420:16;;-1:-1:-1;;;;;20420:16:0;20416:69;;20467:7;;20416:69;20497:19;20519:17;:15;:17::i;:::-;20497:39;-1:-1:-1;20547:19:0;20569:23;:6;20497:39;20569:10;:23::i;:::-;20616:10;;20547:45;;-1:-1:-1;20616:22:0;;20631:6;20616:14;:22::i;:::-;20603:10;:35;20687:16;;-1:-1:-1;;;;;20687:16:0;20679:25;;;;:7;:25;;;;;;:42;;20709:11;20679:29;:42::i;:::-;20659:16;;;-1:-1:-1;;;;;20659:16:0;;;20651:25;;;;:7;:25;;;;;;;;:70;;;;20756:16;;;;;20736:37;;:19;:37;;;;;;;20732:133;;;20824:16;;-1:-1:-1;;;;;20824:16:0;20817:24;;;;:6;:24;;;;;;:36;;20846:6;20817:28;:36::i;:::-;20797:16;;-1:-1:-1;;;;;20797:16:0;20790:24;;;;:6;:24;;;;;:63;20359:513;;;:::o;18073:707::-;18240:20;18275:28;18318:17;18350:28;18393:17;18424:25;18435:13;18424:10;:25::i;:::-;-1:-1:-1;;;;;18480:15:0;;;;;;:6;:15;;;;;;18225:224;;-1:-1:-1;18225:224:0;;-1:-1:-1;18225:224:0;;-1:-1:-1;18225:224:0;-1:-1:-1;18225:224:0;-1:-1:-1;18480:34:0;;18500:13;18480:19;:34::i;:::-;-1:-1:-1;;;;;18462:15:0;;;;;;:6;:15;;;;;;;;:52;;;;18544:7;:16;;;;:34;;18565:12;18544:20;:34::i;:::-;-1:-1:-1;;;;;18525:16:0;;;;;;;:7;:16;;;;;;:53;;;;18611:19;;;;;;;:45;;18635:20;18611:23;:45::i;:::-;-1:-1:-1;;;;;18589:19:0;;;;;;:7;:19;;;;;:67;18667:38;18684:9;18695;18667:16;:38::i;:::-;18739:10;-1:-1:-1;;;;;18721:51:0;18730:7;-1:-1:-1;;;;;18721:51:0;;18751:20;18721:51;;;;;;;;;;;;;;;;;;18073:707;;;;;;;;:::o;17345:720::-;17512:20;17547:28;17590:17;17622:28;17665:17;17696:25;17707:13;17696:10;:25::i;:::-;-1:-1:-1;;;;;17753:16:0;;;;;;:7;:16;;;;;;17497:224;;-1:-1:-1;17497:224:0;;-1:-1:-1;17497:224:0;;-1:-1:-1;17497:224:0;-1:-1:-1;17497:224:0;-1:-1:-1;17753:34:0;;17497:224;17753:20;:34::i;:::-;-1:-1:-1;;;;;17734:16:0;;;;;;;:7;:16;;;;;;;;:53;;;;17819:18;;;;;:6;:18;;;;;:44;;17842:20;17819:22;:44::i;:::-;-1:-1:-1;;;;;17798:18:0;;;;;;:6;:18;;;;;;;;:65;;;;17896:7;:19;;;;:45;;17920:20;17896:23;:45::i;16702:635::-;16860:20;16895:28;16938:17;16970:28;17013:17;17044:25;17055:13;17044:10;:25::i;:::-;-1:-1:-1;;;;;17101:16:0;;;;;;:7;:16;;;;;;16845:224;;-1:-1:-1;16845:224:0;;-1:-1:-1;16845:224:0;;-1:-1:-1;16845:224:0;-1:-1:-1;16845:224:0;-1:-1:-1;17101:34:0;;16845:224;17101:20;:34::i;18788:777::-;18949:20;18984:28;19027:17;19059:28;19102:17;19133:25;19144:13;19133:10;:25::i;:::-;-1:-1:-1;;;;;19189:15:0;;;;;;:6;:15;;;;;;18934:224;;-1:-1:-1;18934:224:0;;-1:-1:-1;18934:224:0;;-1:-1:-1;18934:224:0;-1:-1:-1;18934:224:0;-1:-1:-1;19189:34:0;;19209:13;19189:19;:34::i;:::-;-1:-1:-1;;;;;19171:15:0;;;;;;:6;:15;;;;;;;;:52;;;;19253:7;:16;;;;:34;;19274:12;19253:20;:34::i;22335:338::-;22406:7;22415;22435:17;22455:22;22463:13;22455:7;:22::i;:::-;22435:42;;22488:23;22514:24;22528:9;22514:13;:24::i;:::-;22488:50;-1:-1:-1;22549:28:0;22580;:13;22598:9;22580:17;:28::i;:::-;22549:59;-1:-1:-1;22649:15:0;;-1:-1:-1;;;22335:338:0;;;:::o;22681:605::-;22875:7;22897;22919;22954:17;22974:40;23001:12;22974:22;22982:13;22974:7;:22::i;:::-;:26;;:40::i;:::-;22954:60;-1:-1:-1;23025:20:0;23048:31;:13;23066:12;23048:17;:31::i;:::-;23025:54;-1:-1:-1;23090:28:0;23121:27;23025:54;23138:9;23121:16;:27::i;:::-;23090:58;-1:-1:-1;23159:17:0;23179:34;:16;23200:12;23179:20;:34::i;:::-;23232:12;;23246:20;;-1:-1:-1;23232:12:0;;-1:-1:-1;22681:605:0;-1:-1:-1;;;;;;22681:605:0:o;23495:748::-;23599:12;;23546:7;;;;8906:18;23546:7;23670:391;23694:14;:21;23690:25;;23670:391;;;23770:13;23741:7;:26;23749:14;23764:1;23749:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23749:17:0;23741:26;;;;;;;;;;;;;:42;;:86;;;23815:12;23787:6;:25;23794:14;23809:1;23794:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23794:17:0;23787:25;;;;;;;;;;;;;:40;23741:86;23737:162;;;23856:12;;8906:18;23848:35;;;;;;;;;23737:162;23931:45;23949:7;:26;23957:14;23972:1;23957:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23957:17:0;23949:26;;;;;;;;;;;;;23931:13;;:17;:45::i;:::-;23915:61;;24006:43;24023:6;:25;24030:14;24045:1;24030:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24030:17:0;24023:25;;;;;;;;;;;;;24006:12;;:16;:43::i;:::-;23991:58;-1:-1:-1;23717:3:0;;23670:391;;;-1:-1:-1;24093:12:0;;:30;;8906:18;24093:16;:30::i;:::-;24077:13;:46;24073:114;;;24148:12;;8906:18;24140:35;;;;;;;;24073:114;24207:13;;-1:-1:-1;24222:12:0;-1:-1:-1;23495:748:0;;;:::o;2356:220::-;2414:7;2438:6;2434:20;;-1:-1:-1;2453:1:0;2446:8;;2434:20;2477:5;;;2481:1;2477;:5;:1;2501:5;;;;;:10;2493:56;;;;-1:-1:-1;;;2493:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19573:194;19673:12;;:28;;19690:10;19673:16;:28::i;:::-;19658:12;:43;19729:14;;:30;;19748:10;19729:18;:30::i;:::-;19712:14;:47;-1:-1:-1;;19573:194:0:o;24385:137::-;24444:7;24471:43;24500:13;;24471:24;24480:14;;24471:4;:8;;:24;;;;:::i

Swarm Source

ipfs://570c4252a59e23995950ead8b639aa6a16bec506caa031f3c5fcbe274581fb79

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

OVERVIEW

Panzerprotocol will combine tokenomics of frictionless yield for instant rewards with the benefits of creating, selling, and vote on Panzerprotocol NFT Platform.

Loading...
Loading
[ 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.