Contract 0x97fc45145204d501bce3e8608d28b7daec837539

Scan QRCode

Contract Overview

Public Name Tag
Not Available


Balance:
0.00000000 BTA

BTA Value
$0.00 (@ $0.0041/BTA)

Token Tracker

  Latest 0 internal transactions

Parent Txn Hash Block Age From To Value
No Transaction

 Latest 25 BTA-20 Token Transfer Events

Parent Txn Hash Age From To Value Token
No Transaction

 Latest 25 BTA-721 Token Transfer Events

Parent Txn Hash Age From To Token ID Token
No Transaction
Contract Name:
tokenomics

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
byzantium, No License (None) license

Contract Source Code (Solidity)

// SPDX-License-Identifier: MIT

pragma solidity ^0.4.17;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;

    /**
      * @dev The Ownable constructor sets the original `owner` of the contract to the sender
      * account.
      */
    function Ownable() public {
        owner = msg.sender;
    }

    /**
      * @dev Throws if called by any account other than the owner.
      */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) public onlyOwner {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

}

/**
 * @title BEP20Basic
 * @dev Simpler version of BEP20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract BEP20Basic {
    uint public _totalSupply;
    function totalSupply() public constant returns (uint);
    function balanceOf(address who) public constant returns (uint);
    function transfer(address to, uint value) public;
    event Transfer(address indexed from, address indexed to, uint value);
}

/**
 * @title BEP20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract BEP20 is BEP20Basic {
    function allowance(address owner, address spender) public constant returns (uint);
    function transferFrom(address from, address to, uint value) public;
    function approve(address spender, uint value) public;
    event Approval(address indexed owner, address indexed spender, uint value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is Ownable, BEP20Basic {
    using SafeMath for uint;

    mapping(address => uint) public balances;

    // additional variables for use if transaction fees ever became necessary
    uint public basisPointsRate = 0;
    uint public maximumFee = 0;

    /**
    * @dev Fix for the BEP20 short address attack.
    */
    modifier onlyPayloadSize(uint size) {
        require(!(msg.data.length < size + 4));
        _;
    }

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint _value) public onlyPayloadSize(2 * 32) {
        uint fee = (_value.mul(basisPointsRate)).div(10000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        uint sendAmount = _value.sub(fee);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(sendAmount);
        if (fee > 0) {
            balances[owner] = balances[owner].add(fee);
            Transfer(msg.sender, owner, fee);
        }
        Transfer(msg.sender, _to, sendAmount);
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public constant returns (uint balance) {
        return balances[_owner];
    }

}

/**
 * @title Standard BEP20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based oncode by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is BasicToken, BEP20 {

    mapping (address => mapping (address => uint)) public allowed;

    uint public constant MAX_UINT = 2**256 - 1;

    /**
    * @dev Transfer tokens from one address to another
    * @param _from address The address which you want to send tokens from
    * @param _to address The address which you want to transfer to
    * @param _value uint the amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint _value) public onlyPayloadSize(3 * 32) {
        var _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // if (_value > _allowance) throw;

        uint fee = (_value.mul(basisPointsRate)).div(10000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        if (_allowance < MAX_UINT) {
            allowed[_from][msg.sender] = _allowance.sub(_value);
        }
        uint sendAmount = _value.sub(fee);
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(sendAmount);
        if (fee > 0) {
            balances[owner] = balances[owner].add(fee);
            Transfer(_from, owner, fee);
        }
        Transfer(_from, _to, sendAmount);
    }

    /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
    function approve(address _spender, uint _value) public onlyPayloadSize(2 * 32) {

        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require(!((_value != 0) && (allowed[msg.sender][_spender] != 0)));

        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
    }

    /**
    * @dev Function to check the amount of tokens than an owner allowed to a spender.
    * @param _owner address The address which owns the funds.
    * @param _spender address The address which will spend the funds.
    * @return A uint specifying the amount of tokens still available for the spender.
    */
    function allowance(address _owner, address _spender) public constant returns (uint remaining) {
        return allowed[_owner][_spender];
    }

}


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    Unpause();
  }
}

contract BlackList is Ownable, BasicToken {

    /////// Getters to allow the same blacklist to be used also by other contracts (including upgraded Tether) ///////
    function getBlackListStatus(address _maker) external constant returns (bool) {
        return isBlackListed[_maker];
    }

    function getOwner() external constant returns (address) {
        return owner;
    }

    mapping (address => bool) public isBlackListed;
    
    function addBlackList (address _evilUser) public onlyOwner {
        isBlackListed[_evilUser] = true;
        AddedBlackList(_evilUser);
    }

    function removeBlackList (address _clearedUser) public onlyOwner {
        isBlackListed[_clearedUser] = false;
        RemovedBlackList(_clearedUser);
    }

    function destroyBlackFunds (address _blackListedUser) public onlyOwner {
        require(isBlackListed[_blackListedUser]);
        uint dirtyFunds = balanceOf(_blackListedUser);
        balances[_blackListedUser] = 0;
        _totalSupply -= dirtyFunds;
        DestroyedBlackFunds(_blackListedUser, dirtyFunds);
    }

    event DestroyedBlackFunds(address _blackListedUser, uint _balance);

    event AddedBlackList(address _user);

    event RemovedBlackList(address _user);

}

contract UpgradedStandardToken is StandardToken{
    // those methods are called by the legacy contract
    // and they must ensure msg.sender to be the contract address
    function transferByLegacy(address from, address to, uint value) public;
    function transferFromByLegacy(address sender, address from, address spender, uint value) public;
    function approveByLegacy(address from, address spender, uint value) public;
}

contract tokenomics is Pausable, StandardToken, BlackList {

    string public name;
    string public symbol;
    uint public decimals;
    address public upgradedAddress;
    bool public deprecated;

    //  The contract can be initialized with a number of tokens
    //  All the tokens are deposited to the owner address
    //
    // @param _balance Initial supply of the contract
    // @param _name Token Name
    // @param _symbol Token symbol
    // @param _decimals Token decimals
    function tokenomics(uint _initialSupply, string _name, string _symbol, uint _decimals) public {
        _totalSupply = _initialSupply;
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        balances[owner] = _initialSupply;
        deprecated = false;
    }

    // Forward BEP20 methods to upgraded contract if this one is deprecated
    function transfer(address _to, uint _value) public whenNotPaused {
        require(!isBlackListed[msg.sender]);
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value);
        } else {
            return super.transfer(_to, _value);
        }
    }

    // Forward BEP20 methods to upgraded contract if this one is deprecated
    function transferFrom(address _from, address _to, uint _value) public whenNotPaused {
        require(!isBlackListed[_from]);
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value);
        } else {
            return super.transferFrom(_from, _to, _value);
        }
    }

    // Forward BEP20 methods to upgraded contract if this one is deprecated
    function balanceOf(address who) public constant returns (uint) {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).balanceOf(who);
        } else {
            return super.balanceOf(who);
        }
    }

    // Forward BEP20 methods to upgraded contract if this one is deprecated
    function approve(address _spender, uint _value) public onlyPayloadSize(2 * 32) {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);
        } else {
            return super.approve(_spender, _value);
        }
    }

    // Forward BEP20 methods to upgraded contract if this one is deprecated
    function allowance(address _owner, address _spender) public constant returns (uint remaining) {
        if (deprecated) {
            return StandardToken(upgradedAddress).allowance(_owner, _spender);
        } else {
            return super.allowance(_owner, _spender);
        }
    }

    // deprecate current contract in favour of a new one
    function deprecate(address _upgradedAddress) public onlyOwner {
        deprecated = true;
        upgradedAddress = _upgradedAddress;
        Deprecate(_upgradedAddress);
    }

    // deprecate current contract if favour of a new one
    function totalSupply() public constant returns (uint) {
        if (deprecated) {
            return StandardToken(upgradedAddress).totalSupply();
        } else {
            return _totalSupply;
        }
    }

    // Issue a new amount of tokens
    // these tokens are deposited into the owner address
    //
    // @param _amount Number of tokens to be issued
    function issue(uint amount) public onlyOwner {
        require(_totalSupply + amount > _totalSupply);
        require(balances[owner] + amount > balances[owner]);

        balances[owner] += amount;
        _totalSupply += amount;
        Issue(amount);
    }

    // Redeem tokens.
    // These tokens are withdrawn from the owner address
    // if the balance must be enough to cover the redeem
    // or the call will fail.
    // @param _amount Number of tokens to be issued
    function redeem(uint amount) public onlyOwner {
        require(_totalSupply >= amount);
        require(balances[owner] >= amount);

        _totalSupply -= amount;
        balances[owner] -= amount;
        Redeem(amount);
    }

    function setParams(uint newBasisPoints, uint newMaxFee) public onlyOwner {
        // Ensure transparency by hardcoding limit beyond which fees can never be added
        require(newBasisPoints < 20);
        require(newMaxFee < 50);

        basisPointsRate = newBasisPoints;
        maximumFee = newMaxFee.mul(10**decimals);

        Params(basisPointsRate, maximumFee);
    }

    // Called when new token are issued
    event Issue(uint amount);

    // Called when tokens are redeemed
    event Redeem(uint amount);

    // Called when contract is deprecated
    event Deprecate(address newAddress);

    // Called if contract ever adds fees
    event Params(uint feeBasisPoints, uint maxFee);
}

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newBasisPoints","type":"uint256"},{"name":"newMaxFee","type":"uint256"}],"name":"setParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPointsRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBlackListed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_initialSupply","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeBasisPoints","type":"uint256"},{"indexed":false,"name":"maxFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_blackListedUser","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]

0x6080604052600436106101955763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461019a5780630753c30c14610224578063095ea7b3146102475780630e136b191461026b5780630ecb93c01461029457806318160ddd146102b557806323b872dd146102dc57806326976e3f1461030657806327e235e314610337578063313ce56714610358578063353907141461036d5780633eaaf86b146103825780633f4ba83a1461039757806359bf1abe146103ac5780635c658165146103cd5780635c975abb146103f457806370a08231146104095780638456cb591461042a578063893d20e81461043f5780638da5cb5b1461045457806395d89b4114610469578063a9059cbb1461047e578063c0324c77146104a2578063cc872b66146104bd578063db006a75146104d5578063dd62ed3e146104ed578063dd644f7214610514578063e47d606014610529578063e4997dc51461054a578063e5b5019a1461056b578063f2fde38b14610580578063f3bdc228146105a1575b600080fd5b3480156101a657600080fd5b506101af6105c2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e95781810151838201526020016101d1565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023057600080fd5b50610245600160a060020a0360043516610650565b005b34801561025357600080fd5b50610245600160a060020a03600435166024356106e8565b34801561027757600080fd5b506102806107aa565b604080519115158252519081900360200190f35b3480156102a057600080fd5b50610245600160a060020a03600435166107ba565b3480156102c157600080fd5b506102ca61082c565b60408051918252519081900360200190f35b3480156102e857600080fd5b50610245600160a060020a03600435811690602435166044356108e8565b34801561031257600080fd5b5061031b6109be565b60408051600160a060020a039092168252519081900360200190f35b34801561034357600080fd5b506102ca600160a060020a03600435166109cd565b34801561036457600080fd5b506102ca6109df565b34801561037957600080fd5b506102ca6109e5565b34801561038e57600080fd5b506102ca6109eb565b3480156103a357600080fd5b506102456109f1565b3480156103b857600080fd5b50610280600160a060020a0360043516610a67565b3480156103d957600080fd5b506102ca600160a060020a0360043581169060243516610a89565b34801561040057600080fd5b50610280610aa6565b34801561041557600080fd5b506102ca600160a060020a0360043516610ab6565b34801561043657600080fd5b50610245610b76565b34801561044b57600080fd5b5061031b610bf1565b34801561046057600080fd5b5061031b610c00565b34801561047557600080fd5b506101af610c0f565b34801561048a57600080fd5b50610245600160a060020a0360043516602435610c6a565b3480156104ae57600080fd5b50610245600435602435610d4f565b3480156104c957600080fd5b50610245600435610de4565b3480156104e157600080fd5b50610245600435610e8f565b3480156104f957600080fd5b506102ca600160a060020a0360043581169060243516610f3a565b34801561052057600080fd5b506102ca611005565b34801561053557600080fd5b50610280600160a060020a036004351661100b565b34801561055657600080fd5b50610245600160a060020a0360043516611020565b34801561057757600080fd5b506102ca61108f565b34801561058c57600080fd5b50610245600160a060020a0360043516611095565b3480156105ad57600080fd5b50610245600160a060020a03600435166110e7565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106485780601f1061061d57610100808354040283529160200191610648565b820191906000526020600020905b81548152906001019060200180831161062b57829003601f168201915b505050505081565b600054600160a060020a0316331461066757600080fd5b600a805460a060020a74ff0000000000000000000000000000000000000000199091161773ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831690811790915560408051918252517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e916020908290030190a150565b604060443610156106f857600080fd5b600a5460a060020a900460ff161561079b57600a54604080517faee92d33000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169163aee92d3391606480830192600092919082900301818387803b15801561077e57600080fd5b505af1158015610792573d6000803e3d6000fd5b505050506107a5565b6107a58383611193565b505050565b600a5460a060020a900460ff1681565b600054600160a060020a031633146107d157600080fd5b600160a060020a038116600081815260066020908152604091829020805460ff19166001179055815192835290517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9281900390910190a150565b600a5460009060a060020a900460ff16156108e057600a60009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b505050506040513d60208110156108d757600080fd5b505190506108e5565b506001545b90565b60005460a060020a900460ff16156108ff57600080fd5b600160a060020a03831660009081526006602052604090205460ff161561092557600080fd5b600a5460a060020a900460ff16156109b357600a54604080517f8b477adb000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03868116602483015285811660448301526064820185905291519190921691638b477adb91608480830192600092919082900301818387803b15801561077e57600080fd5b6107a5838383611241565b600a54600160a060020a031681565b60026020526000908152604090205481565b60095481565b60045481565b60015481565b600054600160a060020a03163314610a0857600080fd5b60005460a060020a900460ff161515610a2057600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600160a060020a03811660009081526006602052604090205460ff165b919050565b600560209081526000928352604080842090915290825290205481565b60005460a060020a900460ff1681565b600a5460009060a060020a900460ff1615610b6657600a54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216916370a082319160248083019260209291908290030181600087803b158015610b3357600080fd5b505af1158015610b47573d6000803e3d6000fd5b505050506040513d6020811015610b5d57600080fd5b50519050610a84565b610b6f8261143d565b9050610a84565b600054600160a060020a03163314610b8d57600080fd5b60005460a060020a900460ff1615610ba457600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031690565b600054600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106485780601f1061061d57610100808354040283529160200191610648565b60005460a060020a900460ff1615610c8157600080fd5b3360009081526006602052604090205460ff1615610c9e57600080fd5b600a5460a060020a900460ff1615610d4157600a54604080517f6e18980a000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0385811660248301526044820185905291519190921691636e18980a91606480830192600092919082900301818387803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b50505050610d4b565b610d4b8282611458565b5050565b600054600160a060020a03163314610d6657600080fd5b60148210610d7357600080fd5b60328110610d8057600080fd5b6003829055600954610d9c908290600a0a63ffffffff6115c516565b600481905560035460408051918252602082019290925281517fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e929181900390910190a15050565b600054600160a060020a03163314610dfb57600080fd5b60015481810111610e0b57600080fd5b60008054600160a060020a031681526002602052604090205481810111610e3157600080fd5b60008054600160a060020a03168152600260209081526040918290208054840190556001805484019055815183815291517fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a9281900390910190a150565b600054600160a060020a03163314610ea657600080fd5b600154811115610eb557600080fd5b60008054600160a060020a0316815260026020526040902054811115610eda57600080fd5b60018054829003905560008054600160a060020a031681526002602090815260409182902080548490039055815183815291517f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a449281900390910190a150565b600a5460009060a060020a900460ff1615610ff257600a54604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50519050610fff565b610ffc83836115fb565b90505b92915050565b60035481565b60066020526000908152604090205460ff1681565b600054600160a060020a0316331461103757600080fd5b600160a060020a038116600081815260066020908152604091829020805460ff19169055815192835290517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9281900390910190a150565b60001981565b600054600160a060020a031633146110ac57600080fd5b600160a060020a038116156110e4576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60008054600160a060020a031633146110ff57600080fd5b600160a060020a03821660009081526006602052604090205460ff16151561112657600080fd5b61112f82610ab6565b600160a060020a0383166000818152600260209081526040808320929092556001805485900390558151928352820183905280519293507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c692918290030190a15050565b604060443610156111a357600080fd5b81158015906111d45750336000908152600560209081526040808320600160a060020a038716845290915290205415155b156111de57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b600080806060606436101561125557600080fd5b600160a060020a03871660009081526005602090815260408083203384529091529020546003549094506112a4906127109061129890889063ffffffff6115c516565b9063ffffffff61162616565b92506004548311156112b65760045492505b6000198410156112f5576112d0848663ffffffff61163d16565b600160a060020a03881660009081526005602090815260408083203384529091529020555b611305858463ffffffff61163d16565b600160a060020a038816600090815260026020526040902054909250611331908663ffffffff61163d16565b600160a060020a038089166000908152600260205260408082209390935590881681522054611366908363ffffffff61164f16565b600160a060020a0387166000908152600260205260408120919091558311156113fb5760008054600160a060020a03168152600260205260409020546113b2908463ffffffff61164f16565b60008054600160a060020a0390811682526002602090815260408084209490945591548351878152935190821693918b169260008051602061165f833981519152928290030190a35b85600160a060020a031687600160a060020a031660008051602061165f833981519152846040518082815260200191505060405180910390a350505050505050565b600160a060020a031660009081526002602052604090205490565b6000806040604436101561146b57600080fd5b611486612710611298600354876115c590919063ffffffff16565b92506004548311156114985760045492505b6114a8848463ffffffff61163d16565b336000908152600260205260409020549092506114cb908563ffffffff61163d16565b3360009081526002602052604080822092909255600160a060020a038716815220546114fd908363ffffffff61164f16565b600160a060020a0386166000908152600260205260408120919091558311156115905760008054600160a060020a0316815260026020526040902054611549908463ffffffff61164f16565b60008054600160a060020a03908116825260026020908152604080842094909455915483518781529351911692339260008051602061165f83398151915292918290030190a35b604080518381529051600160a060020a03871691339160008051602061165f8339815191529181900360200190a35050505050565b6000808315156115d857600091506115f4565b508282028284828115156115e857fe5b04146115f057fe5b8091505b5092915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600080828481151561163457fe5b04949350505050565b60008282111561164957fe5b50900390565b6000828201838110156115f057fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206c16cb06ae797f78bcb6c0c9ea1b288e5df4c8ffec8f3ca142775359f18d61c60029

Deployed ByteCode Sourcemap

9694:4779:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9759:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9759:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9759:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12444:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12444:177:0;-1:-1:-1;;;;;12444:177:0;;;;;;;11716:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11716:296:0;-1:-1:-1;;;;;11716:296:0;;;;;;;9871:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9871:22:0;;;;;;;;;;;;;;;;;;;;;;8471:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8471:142:0;-1:-1:-1;;;;;8471:142:0;;;;;12684:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12684:212:0;;;;;;;;;;;;;;;;;;;;10959:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10959:355:0;-1:-1:-1;;;;;10959:355:0;;;;;;;;;;;;9835:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9835:30:0;;;;;;;;-1:-1:-1;;;;;9835:30:0;;;;;;;;;;;;;;2882:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2882:40:0;-1:-1:-1;;;;;2882:40:0;;;;;9809:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9809:20:0;;;;3044:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3044:26:0;;;;2009:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2009:24:0;;;;7936:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7936:87:0;;;;8195:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8195:122:0;-1:-1:-1;;;;;8195:122:0;;;;;4618:61;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4618:61:0;-1:-1:-1;;;;;4618:61:0;;;;;;;;;;7350:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7350:26:0;;;;11396:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11396:238:0;-1:-1:-1;;;;;11396:238:0;;;;;7769:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7769:85:0;;;;8323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8323:85:0;;;;1154:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1154:20:0;;;;9783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9783:20:0;;;;10558:319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10558:319:0;-1:-1:-1;;;;;10558:319:0;;;;;;;13773:378;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13773:378:0;;;;;;;13054:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13054:259:0;;;;;13537:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13537:230:0;;;;;12094:287;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12094:287:0;-1:-1:-1;;;;;12094:287:0;;;;;;;;;;3007:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3007:31:0;;;;8414:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8414:46:0;-1:-1:-1;;;;;8414:46:0;;;;;8619:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8619:157:0;-1:-1:-1;;;;;8619:157:0;;;;;4686:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4686:42:0;;;;1704:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1704:147:0;-1:-1:-1;;;;;1704:147:0;;;;;8782:318;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8782:318:0;-1:-1:-1;;;;;8782:318:0;;;;;9759:18;;;;;;;;;;;;;;;-1:-1:-1;;9759:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12444:177::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;12516:10;:17;;-1:-1:-1;;;;;12516:17:0;;;;-1:-1:-1;;12543:34:0;-1:-1:-1;;;;;12543:34:0;;;;;;;;12587:27;;;;;;;;;;;;;;;;;12444:177;:::o;11716:296::-;11787:6;3217:8;3199;:26;3197:29;3189:38;;;;;;11809:10;;-1:-1:-1;;;11809:10:0;;;;11805:201;;;11864:15;;11842:84;;;;;;11897:10;11842:84;;;;-1:-1:-1;;;;;11842:84:0;;;;;;;;;;;;;;;11864:15;;;;;11842:54;;:84;;;;;11864:15;;11842:84;;;;;;;11864:15;;11842:84;;;5:2:-1;;;;30:1;27;20:12;5:2;11842:84:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11842:84:0;;;;11835:91;;11805:201;11964:31;11978:8;11988:6;11964:13;:31::i;:::-;11716:296;;;:::o;9871:22::-;;;-1:-1:-1;;;9871:22:0;;;;;:::o;8471:142::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;-1:-1:-1;;;;;8540:24:0;;;;;;:13;:24;;;;;;;;;:31;;-1:-1:-1;;8540:31:0;8567:4;8540:31;;;8581:25;;;;;;;;;;;;;;;;;8471:142;:::o;12684:212::-;12752:10;;12732:4;;-1:-1:-1;;;12752:10:0;;;;12748:142;;;12799:15;;;;;;;;;-1:-1:-1;;;;;12799:15:0;-1:-1:-1;;;;;12785:42:0;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12785:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12785:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12785:44:0;;-1:-1:-1;12778:51:0;;12748:142;-1:-1:-1;12867:12:0;;12748:142;12684:212;:::o;10959:355::-;7519:6;;-1:-1:-1;;;7519:6:0;;;;7518:7;7510:16;;;;;;-1:-1:-1;;;;;11062:20:0;;;;;;:13;:20;;;;;;;;11061:21;11053:30;;;;;;11097:10;;-1:-1:-1;;;11097:10:0;;;;11093:215;;;11152:15;;11130:91;;;;;;11190:10;11130:91;;;;-1:-1:-1;;;;;11130:91:0;;;;;;;;;;;;;;;;;;;;;;11152:15;;;;;11130:59;;:91;;;;;11152:15;;11130:91;;;;;;;11152:15;;11130:91;;;5:2:-1;;;;30:1;27;20:12;11093:215:0;11259:38;11278:5;11285:3;11290:6;11259:18;:38::i;9835:30::-;;;-1:-1:-1;;;;;9835:30:0;;:::o;2882:40::-;;;;;;;;;;;;;:::o;9809:20::-;;;;:::o;3044:26::-;;;;:::o;2009:24::-;;;;:::o;7936:87::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;7671:6;;-1:-1:-1;;;7671:6:0;;;;7663:15;;;;;;;;7998:5;7989:14;;-1:-1:-1;;7989:14:0;;;8009:9;;;;7998:5;8009:9;7936:87::o;8195:122::-;-1:-1:-1;;;;;8289:21:0;;8266:4;8289:21;;;:13;:21;;;;;;;;8195:122;;;;:::o;4618:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7350:26::-;;;-1:-1:-1;;;7350:26:0;;;;;:::o;11396:238::-;11473:10;;11453:4;;-1:-1:-1;;;11473:10:0;;;;11469:159;;;11528:15;;11506:53;;;;;;-1:-1:-1;;;;;11506:53:0;;;;;;;;;11528:15;;;;;11506:48;;:53;;;;;;;;;;;;;;11528:15;;11506:53;;;5:2:-1;;;;30:1;27;20:12;5:2;11506:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11506:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11506:53:0;;-1:-1:-1;11499:60:0;;11469:159;11597:20;11613:3;11597:15;:20::i;:::-;11590:27;;;;7769:85;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;7519:6;;-1:-1:-1;;;7519:6:0;;;;7518:7;7510:16;;;;;;7823:6;:13;;-1:-1:-1;;7823:13:0;-1:-1:-1;;;7823:13:0;;;7842:7;;;;7823:6;7842:7;7769:85::o;8323:::-;8370:7;8396:5;-1:-1:-1;;;;;8396:5:0;8323:85;:::o;1154:20::-;;;-1:-1:-1;;;;;1154:20:0;;:::o;9783:::-;;;;;;;;;;;;;;;-1:-1:-1;;9783:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10558:319;7519:6;;-1:-1:-1;;;7519:6:0;;;;7518:7;7510:16;;;;;;10656:10;10642:25;;;;:13;:25;;;;;;;;10641:26;10633:35;;;;;;10682:10;;-1:-1:-1;;;10682:10:0;;;;10678:193;;;10737:15;;10715:80;;;;;;10771:10;10715:80;;;;-1:-1:-1;;;;;10715:80:0;;;;;;;;;;;;;;;10737:15;;;;;10715:55;;:80;;;;;10737:15;;10715:80;;;;;;;10737:15;;10715:80;;;5:2:-1;;;;30:1;27;20:12;5:2;10715:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10715:80:0;;;;10708:87;;10678:193;10833:27;10848:3;10853:6;10833:14;:27::i;:::-;10558:319;;:::o;13773:378::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;13969:2;13952:19;;13944:28;;;;;;14002:2;13990:14;;13982:23;;;;;;14016:15;:32;;;14089:8;;14071:27;;:9;;14085:2;:12;14071:27;:13;:27;:::i;:::-;14058:10;:40;;;14116:15;;14109:35;;;;;;;;;;;;;;;;;;;;;;;;;;13773:378;;:::o;13054:259::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;13141:12;;13117:21;;;:36;13109:45;;;;;;13199:15;13208:5;;-1:-1:-1;;;;;13208:5:0;13199:15;;:8;:15;;;;;;13172:24;;;:42;13164:51;;;;;;13226:15;13235:5;;-1:-1:-1;;;;;13235:5:0;13226:15;;:8;:15;;;;;;;;;:25;;;;;;13235:5;13261:22;;;;;;13293:13;;;;;;;;;;;;;;;;;13054:259;:::o;13537:230::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;13601:12;;:22;-1:-1:-1;13601:22:0;13593:31;;;;;;13642:15;13651:5;;-1:-1:-1;;;;;13651:5:0;13642:15;;:8;:15;;;;;;:25;-1:-1:-1;13642:25:0;13634:34;;;;;;13679:12;:22;;;;;;;:12;13720:5;;-1:-1:-1;;;;;13720:5:0;13711:15;;:8;:15;;;;;;;;;:25;;;;;;;13746:14;;;;;;;;;;;;;;;;;13537:230;:::o;12094:287::-;12202:10;;12172:14;;-1:-1:-1;;;12202:10:0;;;;12198:177;;;12249:15;;12235:58;;;;;;-1:-1:-1;;;;;12235:58:0;;;;;;;;;;;;;;;;12249:15;;;;;12235:40;;:58;;;;;;;;;;;;;;12249:15;;12235:58;;;5:2:-1;;;;30:1;27;20:12;5:2;12235:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12235:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12235:58:0;;-1:-1:-1;12228:65:0;;12198:177;12331:33;12347:6;12355:8;12331:15;:33::i;:::-;12324:40;;12198:177;12094:287;;;;:::o;3007:31::-;;;;:::o;8414:46::-;;;;;;;;;;;;;;;:::o;8619:157::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;-1:-1:-1;;;;;8694:27:0;;8724:5;8694:27;;;:13;:27;;;;;;;;;:35;;-1:-1:-1;;8694:35:0;;;8739:30;;;;;;;;;;;;;;;;;8619:157;:::o;4686:42::-;-1:-1:-1;;4686:42:0;:::o;1704:147::-;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;-1:-1:-1;;;;;1780:22:0;;;1776:69;;1818:5;:16;;-1:-1:-1;;1818:16:0;-1:-1:-1;;;;;1818:16:0;;;;;1776:69;1704:147;:::o;8782:318::-;8913:15;1512:5;;-1:-1:-1;;;;;1512:5:0;1498:10;:19;1490:28;;;;;;-1:-1:-1;;;;;8871:31:0;;;;;;:13;:31;;;;;;;;8863:40;;;;;;;;8931:27;8941:16;8931:9;:27::i;:::-;-1:-1:-1;;;;;8968:26:0;;8997:1;8968:26;;;:8;:26;;;;;;;;:30;;;;9008:12;:26;;;;;;;9044:49;;;;;;;;;;;;8913:45;;-1:-1:-1;9044:49:0;;;;;;;;;8782:318;;:::o;6130:563::-;6201:6;3217:8;3199;:26;3197:29;3189:38;;;;;;6535:11;;;;;6534:53;;-1:-1:-1;6560:10:0;6552:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6552:29:0;;;;;;;;;;:34;;6534:53;6532:56;6524:65;;;;;;6608:10;6600:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6600:29:0;;;;;;;;;;;;:38;;;6648;;;;;;;6600:29;;6608:10;6648:38;;;;;;;;;;;6130:563;;;:::o;5010:880::-;5114:14;;;5096:6;3217:8;3199;:26;3197:29;3189:38;;;;;;-1:-1:-1;;;;;5131:14:0;;;;;;:7;:14;;;;;;;;5146:10;5131:26;;;;;;;;5346:15;;5131:26;;-1:-1:-1;5334:40:0;;5368:5;;5335:27;;:6;;:27;:10;:27;:::i;:::-;5334:33;:40;:33;:40;:::i;:::-;5323:51;;5394:10;;5388:3;:16;5384:63;;;5426:10;;5420:16;;5384:63;-1:-1:-1;;5460:10:0;:21;5456:103;;;5526:22;:10;5541:6;5526:22;:14;:22;:::i;:::-;-1:-1:-1;;;;;5497:14:0;;;;;;:7;:14;;;;;;;;5512:10;5497:26;;;;;;;:51;5456:103;5586:15;:6;5597:3;5586:15;:10;:15;:::i;:::-;-1:-1:-1;;;;;5629:15:0;;;;;;:8;:15;;;;;;5568:33;;-1:-1:-1;5629:27:0;;5649:6;5629:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;5611:15:0;;;;;;;:8;:15;;;;;;:45;;;;5682:13;;;;;;;:29;;5700:10;5682:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;5666:13:0;;;;;;:8;:13;;;;;:45;;;;5725:7;;5721:121;;;5766:15;5775:5;;-1:-1:-1;;;;;5775:5:0;5766:15;;:8;:15;;;;;;:24;;5786:3;5766:24;:19;:24;:::i;:::-;5748:15;5757:5;;-1:-1:-1;;;;;5757:5:0;;;5748:15;;:8;:15;;;;;;;;:42;;;;5820:5;;5804:27;;;;;;;5820:5;;;;5804:27;;;;-1:-1:-1;;;;;;;;;;;5804:27:0;;;;;;;5721:121;5867:3;-1:-1:-1;;;;;5851:32:0;5860:5;-1:-1:-1;;;;;5851:32:0;-1:-1:-1;;;;;;;;;;;5872:10:0;5851:32;;;;;;;;;;;;;;;;;;5010:880;;;;;;;:::o;4182:114::-;-1:-1:-1;;;;;4273:16:0;4242:12;4273:16;;;:8;:16;;;;;;;4182:114::o;3411:560::-;3496:8;;3478:6;3217:8;3199;:26;3197:29;3189:38;;;;;;3507:40;3541:5;3508:27;3519:15;;3508:6;:10;;:27;;;;:::i;3507:40::-;3496:51;;3567:10;;3561:3;:16;3557:63;;;3599:10;;3593:16;;3557:63;3647:15;:6;3658:3;3647:15;:10;:15;:::i;:::-;3704:10;3695:20;;;;:8;:20;;;;;;3629:33;;-1:-1:-1;3695:32:0;;3720:6;3695:32;:24;:32;:::i;:::-;3681:10;3672:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;3753:13:0;;;;;;:29;;3771:10;3753:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;3737:13:0;;;;;;:8;:13;;;;;:45;;;;3796:7;;3792:126;;;3837:15;3846:5;;-1:-1:-1;;;;;3846:5:0;3837:15;;:8;:15;;;;;;:24;;3857:3;3837:24;:19;:24;:::i;:::-;3819:15;3828:5;;-1:-1:-1;;;;;3828:5:0;;;3819:15;;:8;:15;;;;;;;;:42;;;;3896:5;;3875:32;;;;;;;3896:5;;;3884:10;;-1:-1:-1;;;;;;;;;;;3875:32:0;;;;;;;;3792:126;3927:37;;;;;;;;-1:-1:-1;;;;;3927:37:0;;;3936:10;;-1:-1:-1;;;;;;;;;;;3927:37:0;;;;;;;;3411:560;;;;;:::o;172:201::-;230:7;;253:6;;249:45;;;282:1;275:8;;;;249:45;-1:-1:-1;315:5:0;;;319:1;315;:5;337;;;;;;;;:10;330:18;;;;365:1;358:8;;172:201;;;;;;:::o;7018:143::-;-1:-1:-1;;;;;7129:15:0;;;7096:14;7129:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;7018:143::o;379:283::-;437:7;534:9;550:1;546;:5;;;;;;;;;379:283;-1:-1:-1;;;;379:283:0:o;668:120::-;726:7;752:6;;;;745:14;;;;-1:-1:-1;776:5:0;;;668:120::o;794:143::-;852:7;883:5;;;905:6;;;;898:14;;

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

0x00000000000000000000000000000000000000000000d3c21bcecceda1000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000055445534c41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354534c0000000000000000000000000000000000000000000000000000000000

Swarm Source

bzzr://6c16cb06ae797f78bcb6c0c9ea1b288e5df4c8ffec8f3ca142775359f18d61c6

Read Contract

Loading

Write Contract

Loading

 Latest 10 Events Logs

0
Address
0x97fc45145204d501bce3e8608d28b7daec837539
Topics
  • 0  0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
  • 1  0x00000000000000000000000021f0bc42cb3837c072292ba64baae36835ab040b
  • 2  0x000000000000000000000000417aaa17b8e26d674e6b10401b0db10d1e19949d
Data
  • 0x00000000000000000000000000000000000000000000005150ae84a8cdf00000
0
Address
0x97fc45145204d501bce3e8608d28b7daec837539
Topics
  • 0  0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
  • 1  0x00000000000000000000000021f0bc42cb3837c072292ba64baae36835ab040b
  • 2  0x000000000000000000000000417aaa17b8e26d674e6b10401b0db10d1e19949d
Data
  • 0x00000000000000000000000000000000000000000000003635c9adc5dea00000
0
Address
0x97fc45145204d501bce3e8608d28b7daec837539
Topics
  • 0  0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
  • 1  0x000000000000000000000000417aaa17b8e26d674e6b10401b0db10d1e19949d
  • 2  0x000000000000000000000000cabbb9bdc5b3150d2c526468eea5050dc3510fb7
Data
  • 0x0000000000000000000000000000000000000000000000000de0b6b3a7640000
0
Address
0x97fc45145204d501bce3e8608d28b7daec837539
Topics
  • 0  0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
  • 1  0x00000000000000000000000021f0bc42cb3837c072292ba64baae36835ab040b
  • 2  0x00000000000000000000000021f0bc42cb3837c072292ba64baae36835ab040b
Data
  • 0x0000000000000000000000000000000000000000000001969368974c05b00000
0
Address
0x97fc45145204d501bce3e8608d28b7daec837539
Topics
  • 0  0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
  • 1  0x00000000000000000000000021f0bc42cb3837c072292ba64baae36835ab040b
  • 2  0x000000000000000000000000417aaa17b8e26d674e6b10401b0db10d1e19949d
Data
  • 0x0000000000000000000000000000000000000000000000878678326eac900000