ETH Price: $3,307.25 (+0.00%)
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Take169524682023-04-01 6:16:59666 days ago1680329819IN
Ethfinex: Old Contract 2
0 ETH0.0029123525
Cancel Trade78927482019-06-04 12:08:422063 days ago1559650122IN
Ethfinex: Old Contract 2
0 ETH0.000054722
Cancel Trade78926002019-06-04 11:35:302063 days ago1559648130IN
Ethfinex: Old Contract 2
0 ETH0.000051312
Initiate Trade78922232019-06-04 10:06:012063 days ago1559642761IN
Ethfinex: Old Contract 2
0 ETH0.000256221
Take78919312019-06-04 8:59:462063 days ago1559638786IN
Ethfinex: Old Contract 2
0 ETH0.0002279610
Take78919312019-06-04 8:59:462063 days ago1559638786IN
Ethfinex: Old Contract 2
0 ETH0.0004327718.98472083
Take78919312019-06-04 8:59:462063 days ago1559638786IN
Ethfinex: Old Contract 2
0 ETH0.0010541246.2416132
Initiate Trade78919232019-06-04 8:58:112063 days ago1559638691IN
Ethfinex: Old Contract 2
0.3 ETH0.0018831210
Take78918892019-06-04 8:47:072063 days ago1559638027IN
Ethfinex: Old Contract 2
0 ETH0.000168091.25
Take78917872019-06-04 8:26:002063 days ago1559636760IN
Ethfinex: Old Contract 2
0.0155 ETH0.0008219310
Initiate Trade78917782019-06-04 8:23:592063 days ago1559636639IN
Ethfinex: Old Contract 2
0 ETH0.0022577510
Cancel Trade78917772019-06-04 8:23:492063 days ago1559636629IN
Ethfinex: Old Contract 2
0 ETH0.0004236210
Take78917542019-06-04 8:18:512063 days ago1559636331IN
Ethfinex: Old Contract 2
0.1 ETH0.000295993
Take78917432019-06-04 8:16:432063 days ago1559636203IN
Ethfinex: Old Contract 2
0.0155 ETH0.0011242510
Cancel Trade78917322019-06-04 8:14:312063 days ago1559636071IN
Ethfinex: Old Contract 2
0 ETH0.000226516
Initiate Trade78917322019-06-04 8:14:312063 days ago1559636071IN
Ethfinex: Old Contract 2
0 ETH0.001274986
Cancel Trade78917252019-06-04 8:12:592063 days ago1559635979IN
Ethfinex: Old Contract 2
0 ETH0.0005275210
Initiate Trade78917142019-06-04 8:09:512063 days ago1559635791IN
Ethfinex: Old Contract 2
0 ETH0.0022858510
Initiate Trade78916992019-06-04 8:07:032063 days ago1559635623IN
Ethfinex: Old Contract 2
0.0155 ETH0.002084811
Initiate Trade78916512019-06-04 7:58:022063 days ago1559635082IN
Ethfinex: Old Contract 2
0 ETH0.0024121710
Initiate Trade78916452019-06-04 7:55:592063 days ago1559634959IN
Ethfinex: Old Contract 2
0 ETH0.005089920
Initiate Trade78912032019-06-04 6:20:552063 days ago1559629255IN
Ethfinex: Old Contract 2
0.01 ETH0.000954964.7
Initiate Trade78908582019-06-04 5:05:412063 days ago1559624741IN
Ethfinex: Old Contract 2
0 ETH0.002199999.7
Cancel Trade78908212019-06-04 4:57:222063 days ago1559624242IN
Ethfinex: Old Contract 2
0 ETH0.0003763211
Initiate Trade78903722019-06-04 3:19:552063 days ago1559618395IN
Ethfinex: Old Contract 2
0 ETH0.000517443
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
169524682023-04-01 6:16:59666 days ago1680329819
Ethfinex: Old Contract 2
0.4999 ETH
78927482019-06-04 12:08:422063 days ago1559650122
Ethfinex: Old Contract 2
0.01 ETH
78919312019-06-04 8:59:462063 days ago1559638786
Ethfinex: Old Contract 2
0.29994 ETH
78918892019-06-04 8:47:072063 days ago1559638027
Ethfinex: Old Contract 2
0.29994 ETH
78917872019-06-04 8:26:002063 days ago1559636760
Ethfinex: Old Contract 2
0.0155 ETH
78917772019-06-04 8:23:492063 days ago1559636629
Ethfinex: Old Contract 2
0.0155 ETH
78917542019-06-04 8:18:512063 days ago1559636331
Ethfinex: Old Contract 2
0.1 ETH
78917432019-06-04 8:16:432063 days ago1559636203
Ethfinex: Old Contract 2
0.0155 ETH
78883562019-06-03 19:49:272063 days ago1559591367
Ethfinex: Old Contract 2
0.001 ETH
78883142019-06-03 19:39:102063 days ago1559590750
Ethfinex: Old Contract 2
0.0009998 ETH
78867602019-06-03 13:42:402064 days ago1559569360
Ethfinex: Old Contract 2
0.01 ETH
78867342019-06-03 13:36:202064 days ago1559568980
Ethfinex: Old Contract 2
0.087 ETH
78866142019-06-03 13:08:582064 days ago1559567338
Ethfinex: Old Contract 2
0.019996 ETH
78865732019-06-03 13:00:402064 days ago1559566840
Ethfinex: Old Contract 2
0.0869826 ETH
78858672019-06-03 10:19:082064 days ago1559557148
Ethfinex: Old Contract 2
0.09998 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TrustlessOTC

Compiler Version
v0.5.5+commit.47a71e8f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-06-03
*/

pragma solidity ^0.5.5;

/*
    This contract is open source under the MIT license
    Ethfinex Inc - 2019

/*

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error.
 */
library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
     * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

/**
 * @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 private _owner;

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

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

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

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     * @notice Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @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 {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


interface Token {

    function transfer(address _to, uint _value) external returns (bool);
    function transferFrom(address _from, address _to, uint _value) external returns (bool);
    function approve(address _spender, uint _value) external returns (bool);
    function balanceOf(address _owner) external view returns (uint);
    function allowance(address _owner, address _spender) external view returns (uint);

    event Transfer(address indexed _from, address indexed _to, uint _value); // solhint-disable-line
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

interface TokenNoReturn {

    function transfer(address _to, uint _value) external;
    function transferFrom(address _from, address _to, uint _value) external;
    function balanceOf(address _owner) external view returns (uint);
}

contract TrustlessOTC is Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) public balanceTracker;
    mapping(address => uint256) public feeTracker;
    mapping(address => uint[]) public tradeTracker;

    mapping(address => bool) public noERC20Return;

    event OfferCreated(uint indexed tradeID);
    event OfferCancelled(uint indexed tradeID);
    event OfferTaken(uint indexed tradeID);

    uint256 public feeBasisPoints;

    constructor (uint256 _feeBasisPoints) public {
      feeBasisPoints = _feeBasisPoints;
      noERC20Return[0xdAC17F958D2ee523a2206206994597C13D831ec7] = true;
      noERC20Return[0xB97048628DB6B661D4C2aA833e95Dbe1A905B280] = true;
      noERC20Return[0x4470BB87d77b963A013DB939BE332f927f2b992e] = true;
      noERC20Return[0xd26114cd6EE289AccF82350c8d8487fedB8A0C07] = true;
      noERC20Return[0xB8c77482e45F1F44dE1745F52C74426C631bDD52] = true;
      noERC20Return[0xF433089366899D83a9f26A773D59ec7eCF30355e] = true;
      noERC20Return[0xe3818504c1B32bF1557b16C238B2E01Fd3149C17] = true;
      noERC20Return[0x81c9151de0C8bafCd325a57E3dB5a5dF1CEBf79c] = true;
    }

    struct TradeOffer {
        address tokenFrom;
        address tokenTo;
        uint256 amountFrom;
        uint256 amountTo;
        address payable creator;
        address optionalTaker;
        bool active;
        bool completed;
        uint tradeID;
    }

    TradeOffer[] public offers;

    function initiateTrade(
        address _tokenFrom,
        address _tokenTo,
        uint256 _amountFrom,
        uint256 _amountTo,
        address _optionalTaker
        ) public payable returns (uint newTradeID) {
            if (_tokenFrom == address(0)) {
                require(msg.value == _amountFrom);
            } else {
                require(msg.value == 0);
                if(noERC20Return[_tokenFrom]) {
                  TokenNoReturn(_tokenFrom).transferFrom(msg.sender, address(this), _amountFrom);
                } else {
                  Token(_tokenFrom).transferFrom(msg.sender, address(this), _amountFrom);
                }
            }
            newTradeID = offers.length;
            offers.length++;
            TradeOffer storage o = offers[newTradeID];
            balanceTracker[_tokenFrom] = balanceTracker[_tokenFrom].add(_amountFrom);
            o.tokenFrom = _tokenFrom;
            o.tokenTo = _tokenTo;
            o.amountFrom = _amountFrom;
            o.amountTo = _amountTo;
            o.creator = msg.sender;
            o.optionalTaker = _optionalTaker;
            o.active = true;
            o.tradeID = newTradeID;
            tradeTracker[msg.sender].push(newTradeID);
            emit OfferCreated(newTradeID);
    }

    function cancelTrade(uint tradeID) public returns (bool) {
        TradeOffer storage o = offers[tradeID];
        require(msg.sender == o.creator);
        if (o.tokenFrom == address(0)) {
          msg.sender.transfer(o.amountFrom);
        } else {
          if(noERC20Return[o.tokenFrom]) {
            TokenNoReturn(o.tokenFrom).transfer(o.creator, o.amountFrom);
          } else {
            Token(o.tokenFrom).transfer(o.creator, o.amountFrom);
          }
        }
        balanceTracker[o.tokenFrom] -= o.amountFrom;
        o.active = false;
        emit OfferCancelled(tradeID);
        return true;
    }

    function take(uint tradeID) public payable returns (bool) {
        TradeOffer storage o = offers[tradeID];
        require(o.optionalTaker == msg.sender || o.optionalTaker == address(0));
        require(o.active == true);
        o.active = false;
        balanceTracker[o.tokenFrom] = balanceTracker[o.tokenFrom].sub(o.amountFrom);
        uint256 fee = o.amountFrom.mul(feeBasisPoints).div(10000);
        feeTracker[o.tokenFrom] = feeTracker[o.tokenFrom].add(fee);
        tradeTracker[msg.sender].push(tradeID);

        if (o.tokenFrom == address(0)) {
            msg.sender.transfer(o.amountFrom.sub(fee));
        } else {
          if(noERC20Return[o.tokenFrom]) {
            TokenNoReturn(o.tokenFrom).transfer(msg.sender, o.amountFrom.sub(fee));
          } else {
            Token(o.tokenFrom).transfer(msg.sender, o.amountFrom.sub(fee));
          }
        }

        if (o.tokenTo == address(0)) {
            require(msg.value == o.amountTo);
            o.creator.transfer(msg.value);
        } else {
            require(msg.value == 0);
            if(noERC20Return[o.tokenTo]) {
              TokenNoReturn(o.tokenTo).transferFrom(msg.sender, o.creator, o.amountTo);
            } else {
              Token(o.tokenTo).transferFrom(msg.sender, o.creator, o.amountTo);
            }
        }
        o.completed = true;
        emit OfferTaken(tradeID);
        return true;
    }

    function getOfferDetails(uint tradeID) external view returns (
        address _tokenFrom,
        address _tokenTo,
        uint256 _amountFrom,
        uint256 _amountTo,
        address _creator,
        uint256 _fee,
        bool _active,
        bool _completed
    ) {
        TradeOffer storage o = offers[tradeID];
        _tokenFrom = o.tokenFrom;
        _tokenTo = o.tokenTo;
        _amountFrom = o.amountFrom;
        _amountTo = o.amountTo;
        _creator = o.creator;
        _fee = o.amountFrom.mul(feeBasisPoints).div(10000);
        _active = o.active;
        _completed = o.completed;
    }

    function getUserTrades(address user) external view returns (uint[] memory){
      return tradeTracker[user];
    }

    function reclaimToken(Token _token) external onlyOwner {
        uint256 balance = _token.balanceOf(address(this));
        uint256 excess = balance.sub(balanceTracker[address(_token)]);
        require(excess > 0);
        if (address(_token) == address(0)) {
            msg.sender.transfer(excess);
        } else {
            _token.transfer(owner(), excess);
        }
    }

    function reclaimTokenNoReturn(TokenNoReturn _token) external onlyOwner {
        uint256 balance = _token.balanceOf(address(this));
        uint256 excess = balance.sub(balanceTracker[address(_token)]);
        require(excess > 0);
        if (address(_token) == address(0)) {
            msg.sender.transfer(excess);
        } else {
            _token.transfer(owner(), excess);
        }
    }

    function claimFees(Token _token) external onlyOwner {
        uint256 feesToClaim = feeTracker[address(_token)];
        feeTracker[address(_token)] = 0;
        require(feesToClaim > 0);
        if (address(_token) == address(0)) {
            msg.sender.transfer(feesToClaim);
        } else {
            _token.transfer(owner(), feesToClaim);
        }
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"tradeID","type":"uint256"}],"name":"cancelTrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenFrom","type":"address"},{"name":"_tokenTo","type":"address"},{"name":"_amountFrom","type":"uint256"},{"name":"_amountTo","type":"uint256"},{"name":"_optionalTaker","type":"address"}],"name":"initiateTrade","outputs":[{"name":"newTradeID","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"noERC20Return","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"tradeTracker","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tradeID","type":"uint256"}],"name":"getOfferDetails","outputs":[{"name":"_tokenFrom","type":"address"},{"name":"_tokenTo","type":"address"},{"name":"_amountFrom","type":"uint256"},{"name":"_amountTo","type":"uint256"},{"name":"_creator","type":"address"},{"name":"_fee","type":"uint256"},{"name":"_active","type":"bool"},{"name":"_completed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tradeID","type":"uint256"}],"name":"take","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"feeTracker","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"offers","outputs":[{"name":"tokenFrom","type":"address"},{"name":"tokenTo","type":"address"},{"name":"amountFrom","type":"uint256"},{"name":"amountTo","type":"uint256"},{"name":"creator","type":"address"},{"name":"optionalTaker","type":"address"},{"name":"active","type":"bool"},{"name":"completed","type":"bool"},{"name":"tradeID","type":"uint256"}],"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":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getUserTrades","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceTracker","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeBasisPoints","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":"_token","type":"address"}],"name":"reclaimTokenNoReturn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_feeBasisPoints","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tradeID","type":"uint256"}],"name":"OfferCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tradeID","type":"uint256"}],"name":"OfferCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tradeID","type":"uint256"}],"name":"OfferTaken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405234801561001057600080fd5b506040516020806119998339810180604052602081101561003057600080fd5b5051600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360055560046020527fce6b0bb3482d6fcd115ad33ec4464c30e4c8b24ec6e3e5aa13819b39c576a85c805460ff1990811660019081179092557f96b71ed8a0d33b5eb8fc32b88b328439231bc131560bfa19fb1e78f538553cfc80548216831790557fa15a7e8d66aeae5859dfee597622f3585745e8cc87e2448ee8a6ae420bc71d1980548216831790557f04d64a859bba4ebc0be910a2b2b3ac1834e6c675498448319c3b0df72d58e84980548216831790557ffc9d96605ab08a854e1ecc8c578e39886ee7a88a7ea018aa012d45620753282a80548216831790557fbdf8f2bfaa401e7c19caad28f41ab5941f2e52f7d5af9074204b46bff9f3639280548216831790557fc1c24513024cb2d523e450e83a353e817871f8002375b11c639a5db6bbdc8f8d80548216831790557381c9151de0c8bafcd325a57e3db5a5df1cebf79c6000527f6235dc72de82ec2cb8bc5e31f0301b485e9e24407f8e02fe4fa0033c10ddd75e8054909116909117905561179d806101fc6000396000f3fe6080604052600436106101095760003560e01c8063715018a611610095578063927c774211610064578063927c7742146104285780639c1e89d6146104ab578063b8606eef146104de578063f2fde38b146104f3578063fec82b5c1461052657610109565b8063715018a6146103465780638a72ea6a1461035b5780638da5cb5b146103e25780638f32d59b1461041357610109565b806317ffc320116100dc57806317ffc3201461020a5780632b4c1fdc1461023d5780634fb64be2146102765780634fd9efc4146102f65780635d58bcce1461031357610109565b806309ec6cc71461010e5780630adbf7431461014c5780630c065e24146101a257806315a0ea6a146101d5575b600080fd5b34801561011a57600080fd5b506101386004803603602081101561013157600080fd5b5035610559565b604080519115158252519081900360200190f35b610190600480360360a081101561016257600080fd5b506001600160a01b03813581169160208101358216916040820135916060810135916080909101351661077b565b60408051918252519081900360200190f35b3480156101ae57600080fd5b50610138600480360360208110156101c557600080fd5b50356001600160a01b03166109fa565b3480156101e157600080fd5b50610208600480360360208110156101f857600080fd5b50356001600160a01b0316610a0f565b005b34801561021657600080fd5b506102086004803603602081101561022d57600080fd5b50356001600160a01b0316610b26565b34801561024957600080fd5b506101906004803603604081101561026057600080fd5b506001600160a01b038135169060200135610cca565b34801561028257600080fd5b506102a06004803603602081101561029957600080fd5b5035610cfa565b604080516001600160a01b03998a168152978916602089015287810196909652606087019490945291909516608085015260a084019490945292151560c083015291151560e08201529051908190036101000190f35b6101386004803603602081101561030c57600080fd5b5035610db2565b34801561031f57600080fd5b506101906004803603602081101561033657600080fd5b50356001600160a01b03166112c6565b34801561035257600080fd5b506102086112d8565b34801561036757600080fd5b506103856004803603602081101561037e57600080fd5b5035611335565b604080516001600160a01b039a8b168152988a1660208a01528881019790975260608801959095529287166080870152951660a085015293151560c084015292151560e08301526101008201929092529051908190036101200190f35b3480156103ee57600080fd5b506103f76113aa565b604080516001600160a01b039092168252519081900360200190f35b34801561041f57600080fd5b506101386113ba565b34801561043457600080fd5b5061045b6004803603602081101561044b57600080fd5b50356001600160a01b03166113cb565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561049757818101518382015260200161047f565b505050509050019250505060405180910390f35b3480156104b757600080fd5b50610190600480360360208110156104ce57600080fd5b50356001600160a01b0316611437565b3480156104ea57600080fd5b50610190611449565b3480156104ff57600080fd5b506102086004803603602081101561051657600080fd5b50356001600160a01b031661144f565b34801561053257600080fd5b506102086004803603602081101561054957600080fd5b50356001600160a01b031661146e565b60008060068381548110151561056b57fe5b6000918252602090912060079091020160048101549091506001600160a01b0316331461059757600080fd5b80546001600160a01b031615156105de576002810154604051339180156108fc02916000818181858888f193505050501580156105d8573d6000803e3d6000fd5b50610711565b80546001600160a01b031660009081526004602052604090205460ff1615610680578054600480830154600284015460408051600160e01b63a9059cbb0281526001600160a01b039384169481019490945260248401919091525192169163a9059cbb9160448082019260009290919082900301818387803b15801561066357600080fd5b505af1158015610677573d6000803e3d6000fd5b50505050610711565b8054600480830154600284015460408051600160e01b63a9059cbb0281526001600160a01b039384169481019490945260248401919091525192169163a9059cbb916044808201926020929091908290030181600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50505b600281015481546001600160a01b0316600090815260016020526040808220805493909303909255600583018054600160a01b60ff0219169055905184917fc28b4aed030bfacc245c0501326e1beb8c0ef0d60e4edc21067fdeb52da2a7aa91a250600192915050565b60006001600160a01b038616151561079e5734841461079957600080fd5b6108c3565b34156107a957600080fd5b6001600160a01b03861660009081526004602052604090205460ff161561083e5760408051600160e01b6323b872dd0281523360048201523060248201526044810186905290516001600160a01b038816916323b872dd91606480830192600092919082900301818387803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b505050506108c3565b60408051600160e01b6323b872dd0281523360048201523060248201526044810186905290516001600160a01b038816916323b872dd9160648083019260209291908290030181600087803b15801561089657600080fd5b505af11580156108aa573d6000803e3d6000fd5b505050506040513d60208110156108c057600080fd5b50505b50600680549081906108d890600183016116e6565b5060006006828154811015156108ea57fe5b600091825260208083206001600160a01b038b168452600190915260409092205460079091029091019150610925908663ffffffff6115f716565b6001600160a01b0380891660008181526001602081815260408084209690965586546001600160a01b0319908116909417875586820180548d8716908616179055600287018b905560038088018b9055600488018054861633908117909155600589018054600160a01b60ff0219988d1697169690961796909616600160a01b179094556006870188905593825291835283812080549283018155815291822001849055905183917f682fd9923da5632e7c7702dabcfa626195d5f444833bc25f94e418e258e7918691a25095945050505050565b60046020526000908152604090205460ff1681565b610a176113ba565b1515610a2257600080fd5b6001600160a01b03811660009081526002602052604081208054919055801515610a4b57600080fd5b6001600160a01b0382161515610a8e57604051339082156108fc029083906000818181858888f19350505050158015610a88573d6000803e3d6000fd5b50610b22565b816001600160a01b031663a9059cbb610aa56113aa565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610af557600080fd5b505af1158015610b09573d6000803e3d6000fd5b505050506040513d6020811015610b1f57600080fd5b50505b5050565b610b2e6113ba565b1515610b3957600080fd5b60408051600160e01b6370a0823102815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b50516001600160a01b03831660009081526001602052604081205491925090610be090839063ffffffff61161216565b9050801515610bee57600080fd5b6001600160a01b0383161515610c3157604051339082156108fc029083906000818181858888f19350505050158015610c2b573d6000803e3d6000fd5b50610cc5565b826001600160a01b031663a9059cbb610c486113aa565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b505050506040513d6020811015610cc257600080fd5b50505b505050565b600360205281600052604060002081815481101515610ce557fe5b90600052602060002001600091509150505481565b600080600080600080600080600060068a815481101515610d1757fe5b60009182526020909120600790910201805460018201546002830154600384015460048501546005546001600160a01b039586169f509385169d50919b5099509091169650909150610d849061271090610d78908a9063ffffffff61162716565b9063ffffffff61165216565b600590910154989a9799509597949693959460ff600160a01b8204811695600160a81b909204169350915050565b600080600683815481101515610dc457fe5b600091825260209091206005600790920201908101549091506001600160a01b0316331480610dfe575060058101546001600160a01b0316155b1515610e0957600080fd5b6005810154600160a01b900460ff161515600114610e2657600080fd5b600581018054600160a01b60ff0219169055600281015481546001600160a01b0316600090815260016020526040902054610e669163ffffffff61161216565b81546001600160a01b03166000908152600160205260408120919091556005546002830154610ea29161271091610d789163ffffffff61162716565b82546001600160a01b0316600090815260026020526040902054909150610ecf908263ffffffff6115f716565b82546001600160a01b039081166000908152600260209081526040808320949094553382526003815292812080546001810182559082529290209091018590558254161515610f6157600282015433906108fc90610f33908463ffffffff61161216565b6040518115909202916000818181858888f19350505050158015610f5b573d6000803e3d6000fd5b506110c1565b81546001600160a01b031660009081526004602052604090205460ff161561101a57815460028301546001600160a01b039091169063a9059cbb903390610fae908563ffffffff61161216565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b505050506110c1565b815460028301546001600160a01b039091169063a9059cbb903390611045908563ffffffff61161216565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561109457600080fd5b505af11580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b50505b60018201546001600160a01b0316151561112657600382015434146110e557600080fd5b60048201546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015611120573d6000803e3d6000fd5b50611279565b341561113157600080fd5b60018201546001600160a01b031660009081526004602052604090205460ff16156111df576001820154600480840154600385015460408051600160e01b6323b872dd02815233948101949094526001600160a01b0392831660248501526044840191909152519216916323b872dd9160648082019260009290919082900301818387803b1580156111c257600080fd5b505af11580156111d6573d6000803e3d6000fd5b50505050611279565b6001820154600480840154600385015460408051600160e01b6323b872dd02815233948101949094526001600160a01b0392831660248501526044840191909152519216916323b872dd916064808201926020929091908290030181600087803b15801561124c57600080fd5b505af1158015611260573d6000803e3d6000fd5b505050506040513d602081101561127657600080fd5b50505b600582018054600160a81b60ff021916600160a81b17905560405184907f8d41497c7e1d1f357a01f988d454a86c537c3800ab8da3f91bfa5f5e73a1d5f290600090a25060019392505050565b60026020526000908152604090205481565b6112e06113ba565b15156112eb57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600680548290811061134357fe5b600091825260209091206007909102018054600182015460028301546003840154600485015460058601546006909601546001600160a01b0395861697509385169592949193908216929182169160ff600160a01b8204811692600160a81b909204169089565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001600160a01b03811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561142b57602002820191906000526020600020905b815481526020019060010190808311611417575b50505050509050919050565b60016020526000908152604090205481565b60055481565b6114576113ba565b151561146257600080fd5b61146b81611676565b50565b6114766113ba565b151561148157600080fd5b60408051600160e01b6370a0823102815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156114ce57600080fd5b505afa1580156114e2573d6000803e3d6000fd5b505050506040513d60208110156114f857600080fd5b50516001600160a01b0383166000908152600160205260408120549192509061152890839063ffffffff61161216565b905080151561153657600080fd5b6001600160a01b038316151561157357604051339082156108fc029083906000818181858888f19350505050158015610c2b573d6000803e3d6000fd5b826001600160a01b031663a9059cbb61158a6113aa565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156115da57600080fd5b505af11580156115ee573d6000803e3d6000fd5b50505050505050565b60008282018381101561160957600080fd5b90505b92915050565b60008282111561162157600080fd5b50900390565b60008215156116385750600061160c565b82820282848281151561164757fe5b041461160957600080fd5b600081151561166057600080fd5b6000828481151561166d57fe5b04949350505050565b6001600160a01b038116151561168b57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815481835581811115610cc557600083815260209020610cc5916113b79160079182028101918502015b8082111561176d5780546001600160a01b0319908116825560018201805482169055600060028301819055600383018190556004830180549092169091556005820180546001600160b01b03191690556006820155600701611710565b509056fea165627a7a723058206f746ce8bac8fdc64a6bfb304404274f16f0fc7ed44a0477223a33ee930494ec00290000000000000000000000000000000000000000000000000000000000000002

Deployed Bytecode

0x6080604052600436106101095760003560e01c8063715018a611610095578063927c774211610064578063927c7742146104285780639c1e89d6146104ab578063b8606eef146104de578063f2fde38b146104f3578063fec82b5c1461052657610109565b8063715018a6146103465780638a72ea6a1461035b5780638da5cb5b146103e25780638f32d59b1461041357610109565b806317ffc320116100dc57806317ffc3201461020a5780632b4c1fdc1461023d5780634fb64be2146102765780634fd9efc4146102f65780635d58bcce1461031357610109565b806309ec6cc71461010e5780630adbf7431461014c5780630c065e24146101a257806315a0ea6a146101d5575b600080fd5b34801561011a57600080fd5b506101386004803603602081101561013157600080fd5b5035610559565b604080519115158252519081900360200190f35b610190600480360360a081101561016257600080fd5b506001600160a01b03813581169160208101358216916040820135916060810135916080909101351661077b565b60408051918252519081900360200190f35b3480156101ae57600080fd5b50610138600480360360208110156101c557600080fd5b50356001600160a01b03166109fa565b3480156101e157600080fd5b50610208600480360360208110156101f857600080fd5b50356001600160a01b0316610a0f565b005b34801561021657600080fd5b506102086004803603602081101561022d57600080fd5b50356001600160a01b0316610b26565b34801561024957600080fd5b506101906004803603604081101561026057600080fd5b506001600160a01b038135169060200135610cca565b34801561028257600080fd5b506102a06004803603602081101561029957600080fd5b5035610cfa565b604080516001600160a01b03998a168152978916602089015287810196909652606087019490945291909516608085015260a084019490945292151560c083015291151560e08201529051908190036101000190f35b6101386004803603602081101561030c57600080fd5b5035610db2565b34801561031f57600080fd5b506101906004803603602081101561033657600080fd5b50356001600160a01b03166112c6565b34801561035257600080fd5b506102086112d8565b34801561036757600080fd5b506103856004803603602081101561037e57600080fd5b5035611335565b604080516001600160a01b039a8b168152988a1660208a01528881019790975260608801959095529287166080870152951660a085015293151560c084015292151560e08301526101008201929092529051908190036101200190f35b3480156103ee57600080fd5b506103f76113aa565b604080516001600160a01b039092168252519081900360200190f35b34801561041f57600080fd5b506101386113ba565b34801561043457600080fd5b5061045b6004803603602081101561044b57600080fd5b50356001600160a01b03166113cb565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561049757818101518382015260200161047f565b505050509050019250505060405180910390f35b3480156104b757600080fd5b50610190600480360360208110156104ce57600080fd5b50356001600160a01b0316611437565b3480156104ea57600080fd5b50610190611449565b3480156104ff57600080fd5b506102086004803603602081101561051657600080fd5b50356001600160a01b031661144f565b34801561053257600080fd5b506102086004803603602081101561054957600080fd5b50356001600160a01b031661146e565b60008060068381548110151561056b57fe5b6000918252602090912060079091020160048101549091506001600160a01b0316331461059757600080fd5b80546001600160a01b031615156105de576002810154604051339180156108fc02916000818181858888f193505050501580156105d8573d6000803e3d6000fd5b50610711565b80546001600160a01b031660009081526004602052604090205460ff1615610680578054600480830154600284015460408051600160e01b63a9059cbb0281526001600160a01b039384169481019490945260248401919091525192169163a9059cbb9160448082019260009290919082900301818387803b15801561066357600080fd5b505af1158015610677573d6000803e3d6000fd5b50505050610711565b8054600480830154600284015460408051600160e01b63a9059cbb0281526001600160a01b039384169481019490945260248401919091525192169163a9059cbb916044808201926020929091908290030181600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50505b600281015481546001600160a01b0316600090815260016020526040808220805493909303909255600583018054600160a01b60ff0219169055905184917fc28b4aed030bfacc245c0501326e1beb8c0ef0d60e4edc21067fdeb52da2a7aa91a250600192915050565b60006001600160a01b038616151561079e5734841461079957600080fd5b6108c3565b34156107a957600080fd5b6001600160a01b03861660009081526004602052604090205460ff161561083e5760408051600160e01b6323b872dd0281523360048201523060248201526044810186905290516001600160a01b038816916323b872dd91606480830192600092919082900301818387803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b505050506108c3565b60408051600160e01b6323b872dd0281523360048201523060248201526044810186905290516001600160a01b038816916323b872dd9160648083019260209291908290030181600087803b15801561089657600080fd5b505af11580156108aa573d6000803e3d6000fd5b505050506040513d60208110156108c057600080fd5b50505b50600680549081906108d890600183016116e6565b5060006006828154811015156108ea57fe5b600091825260208083206001600160a01b038b168452600190915260409092205460079091029091019150610925908663ffffffff6115f716565b6001600160a01b0380891660008181526001602081815260408084209690965586546001600160a01b0319908116909417875586820180548d8716908616179055600287018b905560038088018b9055600488018054861633908117909155600589018054600160a01b60ff0219988d1697169690961796909616600160a01b179094556006870188905593825291835283812080549283018155815291822001849055905183917f682fd9923da5632e7c7702dabcfa626195d5f444833bc25f94e418e258e7918691a25095945050505050565b60046020526000908152604090205460ff1681565b610a176113ba565b1515610a2257600080fd5b6001600160a01b03811660009081526002602052604081208054919055801515610a4b57600080fd5b6001600160a01b0382161515610a8e57604051339082156108fc029083906000818181858888f19350505050158015610a88573d6000803e3d6000fd5b50610b22565b816001600160a01b031663a9059cbb610aa56113aa565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610af557600080fd5b505af1158015610b09573d6000803e3d6000fd5b505050506040513d6020811015610b1f57600080fd5b50505b5050565b610b2e6113ba565b1515610b3957600080fd5b60408051600160e01b6370a0823102815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b50516001600160a01b03831660009081526001602052604081205491925090610be090839063ffffffff61161216565b9050801515610bee57600080fd5b6001600160a01b0383161515610c3157604051339082156108fc029083906000818181858888f19350505050158015610c2b573d6000803e3d6000fd5b50610cc5565b826001600160a01b031663a9059cbb610c486113aa565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b505050506040513d6020811015610cc257600080fd5b50505b505050565b600360205281600052604060002081815481101515610ce557fe5b90600052602060002001600091509150505481565b600080600080600080600080600060068a815481101515610d1757fe5b60009182526020909120600790910201805460018201546002830154600384015460048501546005546001600160a01b039586169f509385169d50919b5099509091169650909150610d849061271090610d78908a9063ffffffff61162716565b9063ffffffff61165216565b600590910154989a9799509597949693959460ff600160a01b8204811695600160a81b909204169350915050565b600080600683815481101515610dc457fe5b600091825260209091206005600790920201908101549091506001600160a01b0316331480610dfe575060058101546001600160a01b0316155b1515610e0957600080fd5b6005810154600160a01b900460ff161515600114610e2657600080fd5b600581018054600160a01b60ff0219169055600281015481546001600160a01b0316600090815260016020526040902054610e669163ffffffff61161216565b81546001600160a01b03166000908152600160205260408120919091556005546002830154610ea29161271091610d789163ffffffff61162716565b82546001600160a01b0316600090815260026020526040902054909150610ecf908263ffffffff6115f716565b82546001600160a01b039081166000908152600260209081526040808320949094553382526003815292812080546001810182559082529290209091018590558254161515610f6157600282015433906108fc90610f33908463ffffffff61161216565b6040518115909202916000818181858888f19350505050158015610f5b573d6000803e3d6000fd5b506110c1565b81546001600160a01b031660009081526004602052604090205460ff161561101a57815460028301546001600160a01b039091169063a9059cbb903390610fae908563ffffffff61161216565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b505050506110c1565b815460028301546001600160a01b039091169063a9059cbb903390611045908563ffffffff61161216565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561109457600080fd5b505af11580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b50505b60018201546001600160a01b0316151561112657600382015434146110e557600080fd5b60048201546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015611120573d6000803e3d6000fd5b50611279565b341561113157600080fd5b60018201546001600160a01b031660009081526004602052604090205460ff16156111df576001820154600480840154600385015460408051600160e01b6323b872dd02815233948101949094526001600160a01b0392831660248501526044840191909152519216916323b872dd9160648082019260009290919082900301818387803b1580156111c257600080fd5b505af11580156111d6573d6000803e3d6000fd5b50505050611279565b6001820154600480840154600385015460408051600160e01b6323b872dd02815233948101949094526001600160a01b0392831660248501526044840191909152519216916323b872dd916064808201926020929091908290030181600087803b15801561124c57600080fd5b505af1158015611260573d6000803e3d6000fd5b505050506040513d602081101561127657600080fd5b50505b600582018054600160a81b60ff021916600160a81b17905560405184907f8d41497c7e1d1f357a01f988d454a86c537c3800ab8da3f91bfa5f5e73a1d5f290600090a25060019392505050565b60026020526000908152604090205481565b6112e06113ba565b15156112eb57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600680548290811061134357fe5b600091825260209091206007909102018054600182015460028301546003840154600485015460058601546006909601546001600160a01b0395861697509385169592949193908216929182169160ff600160a01b8204811692600160a81b909204169089565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001600160a01b03811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561142b57602002820191906000526020600020905b815481526020019060010190808311611417575b50505050509050919050565b60016020526000908152604090205481565b60055481565b6114576113ba565b151561146257600080fd5b61146b81611676565b50565b6114766113ba565b151561148157600080fd5b60408051600160e01b6370a0823102815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156114ce57600080fd5b505afa1580156114e2573d6000803e3d6000fd5b505050506040513d60208110156114f857600080fd5b50516001600160a01b0383166000908152600160205260408120549192509061152890839063ffffffff61161216565b905080151561153657600080fd5b6001600160a01b038316151561157357604051339082156108fc029083906000818181858888f19350505050158015610c2b573d6000803e3d6000fd5b826001600160a01b031663a9059cbb61158a6113aa565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156115da57600080fd5b505af11580156115ee573d6000803e3d6000fd5b50505050505050565b60008282018381101561160957600080fd5b90505b92915050565b60008282111561162157600080fd5b50900390565b60008215156116385750600061160c565b82820282848281151561164757fe5b041461160957600080fd5b600081151561166057600080fd5b6000828481151561166d57fe5b04949350505050565b6001600160a01b038116151561168b57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815481835581811115610cc557600083815260209020610cc5916113b79160079182028101918502015b8082111561176d5780546001600160a01b0319908116825560018201805482169055600060028301819055600383018190556004830180549092169091556005820180546001600160b01b03191690556006820155600701611710565b509056fea165627a7a723058206f746ce8bac8fdc64a6bfb304404274f16f0fc7ed44a0477223a33ee930494ec0029

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

0000000000000000000000000000000000000000000000000000000000000002

-----Decoded View---------------
Arg [0] : _feeBasisPoints (uint256): 2

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


Deployed Bytecode Sourcemap

5100:6827:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7889:635;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7889:635:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7889:635:0;;:::i;:::-;;;;;;;;;;;;;;;;;;6574:1307;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;6574:1307:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5338:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5338:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5338:45:0;-1:-1:-1;;;;;5338:45:0;;:::i;11551:371::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11551:371:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11551:371:0;-1:-1:-1;;;;;11551:371:0;;:::i;:::-;;10741:389;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10741:389:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10741:389:0;-1:-1:-1;;;;;10741:389:0;;:::i;5283:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5283:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5283:46:0;;;;;;;;:::i;9978:631::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9978:631:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9978:631:0;;:::i;:::-;;;;-1:-1:-1;;;;;9978:631:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8532:1438;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8532:1438:0;;:::i;5231:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5231:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5231:45:0;-1:-1:-1;;;;;5231:45:0;;:::i;3470:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3470:140:0;;;:::i;6539:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6539:26:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6539:26:0;;:::i;:::-;;;;-1:-1:-1;;;;;6539:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2680:79:0;;;:::i;:::-;;;;-1:-1:-1;;;;;2680:79:0;;;;;;;;;;;;;;3015:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3015:92:0;;;:::i;10617:116::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10617:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10617:116:0;-1:-1:-1;;;;;10617:116:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;10617:116:0;;;;;;;;;;;;;;;;;5175:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5175:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5175:49:0;-1:-1:-1;;;;;5175:49:0;;:::i;5535:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5535:29:0;;;:::i;3787:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3787:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3787:109:0;-1:-1:-1;;;;;3787:109:0;;:::i;11138:405::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11138:405:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11138:405:0;-1:-1:-1;;;;;11138:405:0;;:::i;7889:635::-;7940:4;7957:20;7980:6;7987:7;7980:15;;;;;;;;;;;;;;;;;;;;;;;8028:9;;;;7980:15;;-1:-1:-1;;;;;;8028:9:0;8014:10;:23;8006:32;;;;;;8053:11;;-1:-1:-1;;;;;8053:11:0;:25;8049:326;;;8113:12;;;;8093:33;;:10;;:33;;;;;;;;;8113:12;8093:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8093:33:0;8049:326;;;8174:11;;-1:-1:-1;;;;;8174:11:0;8160:26;;;;:13;:26;;;;;;;;8157:207;;;8217:11;;8239:9;;;;;8250:12;;;;8203:60;;;-1:-1:-1;;;;;8203:60:0;;-1:-1:-1;;;;;8239:9:0;;;8203:60;;;;;;;;;;;;;;;8217:11;;;8203:35;;:60;;;;;8217:11;;8203:60;;;;;;;;8217:11;;8203:60;;;5:2:-1;;;;30:1;27;20:12;5:2;8203:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8203:60:0;;;;8157:207;;;8304:11;;8326:9;;;;;8337:12;;;;8298:52;;;-1:-1:-1;;;;;8298:52:0;;-1:-1:-1;;;;;8326:9:0;;;8298:52;;;;;;;;;;;;;;;8304:11;;;8298:27;;:52;;;;;;;;;;;;;;;8304:11;;8298:52;;;5:2:-1;;;;30:1;27;20:12;5:2;8298:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8298:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;8157:207:0;8416:12;;;;8400:11;;-1:-1:-1;;;;;8400:11:0;8385:27;;;;:14;:27;;;;;;:43;;;;;;;;;8439:8;;;:16;;-1:-1:-1;;;;;;8439:16:0;;;8471:23;;8486:7;;8471:23;;;-1:-1:-1;8512:4:0;;7889:635;-1:-1:-1;;7889:635:0:o;6574:1307::-;6779:15;-1:-1:-1;;;;;6815:24:0;;;6811:446;;;6868:9;:24;;6860:33;;;;;;6811:446;;;6942:9;:14;6934:23;;;;;;-1:-1:-1;;;;;6979:25:0;;;;;;:13;:25;;;;;;;;6976:266;;;7027:78;;;-1:-1:-1;;;;;7027:78:0;;7066:10;7027:78;;;;7086:4;7027:78;;;;;;;;;;;;-1:-1:-1;;;;;7027:38:0;;;;;:78;;;;;-1:-1:-1;;7027:78:0;;;;;;;-1:-1:-1;7027:38:0;:78;;;5:2:-1;;;;30:1;27;20:12;5:2;7027:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7027:78:0;;;;6976:266;;;7152:70;;;-1:-1:-1;;;;;7152:70:0;;7183:10;7152:70;;;;7203:4;7152:70;;;;;;;;;;;;-1:-1:-1;;;;;7152:30:0;;;;;:70;;;;;;;;;;;;;;-1:-1:-1;7152:30:0;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;7152:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7152:70:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6976:266:0;-1:-1:-1;7284:6:0;:13;;;;;7312:15;;;;;;:::i;:::-;;7342:20;7365:6;7372:10;7365:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7427:26:0;;;;:14;:26;;;;;;;;7365:18;;;;;;;;-1:-1:-1;7427:43:0;;7458:11;7427:43;:30;:43;:::i;:::-;-1:-1:-1;;;;;7398:26:0;;;;;;;:14;:26;;;;;;;;:72;;;;7485:24;;-1:-1:-1;;;;;;7485:24:0;;;;;;;;7524:9;;;:20;;;;;;;;;;;7559:12;;;:26;;;7600:10;;;;:22;;;7637:9;;;:22;;;;7649:10;7637:22;;;;;;7674:15;;;:32;;-1:-1:-1;;;;;;7674:32:0;;;;;;;;;7721:15;;;;-1:-1:-1;;;7721:15:0;;;;7751:9;;;:22;;;7788:24;;;;;;;;;27:10:-1;;23:18;;;45:23;;7788:41:0;;;;;;;;;7849:24;;7763:10;;7849:24;;;6574:1307;;;;;;;;:::o;5338:45::-;;;;;;;;;;;;;;;:::o;11551:371::-;2892:9;:7;:9::i;:::-;2884:18;;;;;;;;-1:-1:-1;;;;;11636:27:0;;11614:19;11636:27;;;:10;:27;;;;;;;11674:31;;;11724:15;;;11716:24;;;;;;-1:-1:-1;;;;;11755:29:0;;;11751:164;;;11801:32;;:10;;:32;;;;;11821:11;;11801:32;;;;11821:11;11801:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11801:32:0;11751:164;;;11866:6;-1:-1:-1;;;;;11866:15:0;;11882:7;:5;:7::i;:::-;11891:11;11866:37;;;;;;;;;;;;;-1:-1:-1;;;;;11866:37:0;-1:-1:-1;;;;;11866:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11866:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11866:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;11751:164:0;2913:1;11551:371;:::o;10741:389::-;2892:9;:7;:9::i;:::-;2884:18;;;;;;;;10825:31;;;-1:-1:-1;;;;;10825:31:0;;10850:4;10825:31;;;;;;10807:15;;-1:-1:-1;;;;;10825:16:0;;;;;:31;;;;;;;;;;;;;;;:16;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;10825:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10825:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10825:31:0;-1:-1:-1;;;;;10896:31:0;;10867:14;10896:31;;;:14;10825:31;10896;;;;;10825;;-1:-1:-1;10867:14:0;10884:44;;10825:31;;10884:44;:11;:44;:::i;:::-;10867:61;-1:-1:-1;10947:10:0;;;10939:19;;;;;;-1:-1:-1;;;;;10973:29:0;;;10969:154;;;11019:27;;:10;;:27;;;;;11039:6;;11019:27;;;;11039:6;11019:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11019:27:0;10969:154;;;11079:6;-1:-1:-1;;;;;11079:15:0;;11095:7;:5;:7::i;:::-;11104:6;11079:32;;;;;;;;;;;;;-1:-1:-1;;;;;11079:32:0;-1:-1:-1;;;;;11079:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11079:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11079:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;10969:154:0;2913:1;;10741:389;:::o;5283:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9978:631::-;10050:18;10079:16;10106:19;10136:17;10164:16;10191:12;10214;10237:15;10271:20;10294:6;10301:7;10294:15;;;;;;;;;;;;;;;;;;;;;;;10333:11;;;10366:9;;;10400:12;;;;10435:10;;;;10467:9;;;;10511:14;;-1:-1:-1;;;;;10333:11:0;;;;-1:-1:-1;10366:9:0;;;;-1:-1:-1;10400:12:0;;-1:-1:-1;10435:10:0;-1:-1:-1;10467:9:0;;;;-1:-1:-1;10294:15:0;;-1:-1:-1;10494:43:0;;10531:5;;10494:32;;10400:12;;10494:32;:16;:32;:::i;:::-;:36;:43;:36;:43;:::i;:::-;10558:8;;;;;9978:631;;;;-1:-1:-1;9978:631:0;;;;;;10487:50;10558:8;-1:-1:-1;;;10558:8:0;;;;;-1:-1:-1;;;10590:11:0;;;;;-1:-1:-1;9978:631:0;-1:-1:-1;;9978:631:0:o;8532:1438::-;8584:4;8601:20;8624:6;8631:7;8624:15;;;;;;;;;;;;;;;;;;8658;8624;;;;;8658;;;;8624;;-1:-1:-1;;;;;;8658:15:0;8677:10;8658:29;;:62;;-1:-1:-1;8691:15:0;;;;-1:-1:-1;;;;;8691:15:0;:29;8658:62;8650:71;;;;;;;;8740:8;;;;-1:-1:-1;;;8740:8:0;;;;:16;;8752:4;8740:16;8732:25;;;;;;8768:8;;;:16;;-1:-1:-1;;;;;;8768:16:0;;;8857:12;;;;8840:11;;-1:-1:-1;;;;;8840:11:0;8779:5;8825:27;;;8768:16;8825:27;;;;;;:45;;;:31;:45;:::i;:::-;8810:11;;-1:-1:-1;;;;;8810:11:0;8795:27;;;;:14;:27;;;;;:75;;;;8912:14;;8895:12;;;;:43;;8932:5;;8895:32;;;:16;:32;:::i;:43::-;8986:11;;-1:-1:-1;;;;;8986:11:0;8975:23;;;;:10;:23;;;;;;8881:57;;-1:-1:-1;8975:32:0;;8881:57;8975:32;:27;:32;:::i;:::-;8960:11;;-1:-1:-1;;;;;8960:11:0;;;8949:23;;;;:10;:23;;;;;;;;:58;;;;9031:10;9018:24;;:12;:24;;;;;27:10:-1;;8960:11:0;23:18:-1;;45:23;;9018:38:0;;;;;;;;;;;;9073:11;;;:25;9069:357;;;9135:12;;;;9115:10;;:42;;9135:21;;9152:3;9135:21;:16;:21;:::i;:::-;9115:42;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9115:42:0;9069:357;;;9205:11;;-1:-1:-1;;;;;9205:11:0;9191:26;;;;:13;:26;;;;;;;;9188:227;;;9248:11;;9282:12;;;;-1:-1:-1;;;;;9248:11:0;;;;9234:35;;9270:10;;9282:21;;9299:3;9282:21;:16;:21;:::i;:::-;9234:70;;;;;;;;;;;;;-1:-1:-1;;;;;9234:70:0;-1:-1:-1;;;;;9234:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9234:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9234:70:0;;;;9188:227;;;9345:11;;9379:12;;;;-1:-1:-1;;;;;9345:11:0;;;;9339:27;;9367:10;;9379:21;;9396:3;9379:21;:16;:21;:::i;:::-;9339:62;;;;;;;;;;;;;-1:-1:-1;;;;;9339:62:0;-1:-1:-1;;;;;9339:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9339:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9339:62:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;9188:227:0;9442:9;;;;-1:-1:-1;;;;;9442:9:0;:23;9438:439;;;9503:10;;;;9490:9;:23;9482:32;;;;;;9529:9;;;;:29;;-1:-1:-1;;;;;9529:9:0;;;;9548;9529:29;;;;;:9;:29;:9;:29;9548:9;9529;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9529:29:0;9438:439;;;9599:9;:14;9591:23;;;;;;9646:9;;;;-1:-1:-1;;;;;9646:9:0;9632:24;;;;:13;:24;;;;;;;;9629:237;;;9689:9;;;;9725;;;;;9736:10;;;;9675:72;;;-1:-1:-1;;;;;9675:72:0;;9713:10;9675:72;;;;;;;-1:-1:-1;;;;;9725:9:0;;;9675:72;;;;;;;;;;;;9689:9;;;9675:37;;:72;;;;;9689:9;;9675:72;;;;;;;;9689:9;;9675:72;;;5:2:-1;;;;30:1;27;20:12;5:2;9675:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9675:72:0;;;;9629:237;;;9792:9;;;;9828;;;;;9839:10;;;;9786:64;;;-1:-1:-1;;;;;9786:64:0;;9816:10;9786:64;;;;;;;-1:-1:-1;;;;;9828:9:0;;;9786:64;;;;;;;;;;;;9792:9;;;9786:29;;:64;;;;;;;;;;;;;;;9792:9;;9786:64;;;5:2:-1;;;;30:1;27;20:12;5:2;9786:64:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9786:64:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;9629:237:0;9887:11;;;:18;;-1:-1:-1;;;;;;9887:18:0;-1:-1:-1;;;9887:18:0;;;9921:19;;9932:7;;9921:19;;9887:18;;9921:19;-1:-1:-1;9958:4:0;;8532:1438;-1:-1:-1;;;8532:1438:0:o;5231:45::-;;;;;;;;;;;;;:::o;3470:140::-;2892:9;:7;:9::i;:::-;2884:18;;;;;;;;3569:1;3553:6;;3532:40;;-1:-1:-1;;;;;3553:6:0;;;;3532:40;;3569:1;;3532:40;3600:1;3583:19;;-1:-1:-1;;;;;;3583:19:0;;;3470:140::o;6539:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6539:26:0;;;;-1:-1:-1;6539:26:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;6539:26:0;;;;;-1:-1:-1;;;6539:26:0;;;;;;:::o;2680:79::-;2718:7;2745:6;-1:-1:-1;;;;;2745:6:0;2680:79;;:::o;3015:92::-;3055:4;3093:6;-1:-1:-1;;;;;3093:6:0;3079:10;:20;;3015:92::o;10617:116::-;-1:-1:-1;;;;;10707:18:0;;;;;;:12;:18;;;;;;;;;10700:25;;;;;;;;;;;;;;;;;10677:13;;10700:25;;;10707:18;10700:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10617:116;;;:::o;5175:49::-;;;;;;;;;;;;;:::o;5535:29::-;;;;:::o;3787:109::-;2892:9;:7;:9::i;:::-;2884:18;;;;;;;;3860:28;3879:8;3860:18;:28::i;:::-;3787:109;:::o;11138:405::-;2892:9;:7;:9::i;:::-;2884:18;;;;;;;;11238:31;;;-1:-1:-1;;;;;11238:31:0;;11263:4;11238:31;;;;;;11220:15;;-1:-1:-1;;;;;11238:16:0;;;;;:31;;;;;;;;;;;;;;;:16;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;11238:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11238:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11238:31:0;-1:-1:-1;;;;;11309:31:0;;11280:14;11309:31;;;:14;11238:31;11309;;;;;11238;;-1:-1:-1;11280:14:0;11297:44;;11238:31;;11297:44;:11;:44;:::i;:::-;11280:61;-1:-1:-1;11360:10:0;;;11352:19;;;;;;-1:-1:-1;;;;;11386:29:0;;;11382:154;;;11432:27;;:10;;:27;;;;;11452:6;;11432:27;;;;11452:6;11432:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;11382:154:0;11492:6;-1:-1:-1;;;;;11492:15:0;;11508:7;:5;:7::i;:::-;11517:6;11492:32;;;;;;;;;;;;;-1:-1:-1;;;;;11492:32:0;-1:-1:-1;;;;;11492:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11492:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11492:32:0;;;;2913:1;;11138:405;:::o;1582:150::-;1640:7;1672:5;;;1696:6;;;;1688:15;;;;;;1723:1;-1:-1:-1;1582:150:0;;;;;:::o;1344:::-;1402:7;1430:6;;;;1422:15;;;;;;-1:-1:-1;1460:5:0;;;1344:150::o;335:433::-;393:7;637:6;;633:47;;;-1:-1:-1;667:1:0;660:8;;633:47;704:5;;;708:1;704;:5;728;;;;;;;;:10;720:19;;;;;903:303;961:7;1056:5;;;1048:14;;;;;;1073:9;1089:1;1085;:5;;;;;;;;;903:303;-1:-1:-1;;;;903:303:0:o;4046:187::-;-1:-1:-1;;;;;4120:22:0;;;;4112:31;;;;;;4180:6;;;4159:38;;-1:-1:-1;;;;;4159:38:0;;;;4180:6;;;4159:38;;;4208:6;:17;;-1:-1:-1;;;;;;4208:17:0;-1:-1:-1;;;;;4208:17:0;;;;;;;;;;4046:187::o;5100:6827::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5100:6827:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5100:6827:0;;;;;;;;;;;;;;

Swarm Source

bzzr://6f746ce8bac8fdc64a6bfb304404274f16f0fc7ed44a0477223a33ee930494ec

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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