contract XTRD is MintableToken, Claimable, Contactable {
  /*----------- ERC20 GLOBALS -----------*/
  string public constant name = "XTRD"; 
  string public constant symbol = "XTRD";
  uint public constant decimals = 18;

  /*----------- Ownership Reclaim -----------*/
  address public reclaimableOwner;

  /**
   * @dev Restricts method call to only the address set as `reclaimableOwner`.
   */
  modifier onlyReclaimableOwner() {
      require(msg.sender == reclaimableOwner);
      _;
  }

  /**
   * @dev Sets the reclaim address to current owner.
   */
  function setupReclaim() public onlyOwner {
      require(reclaimableOwner == address(0));

      reclaimableOwner = msg.sender;
  }

  /**
   * @dev Resets the reclaim address to address(0).
   */
  function resetReclaim() public onlyReclaimableOwner {
      reclaimableOwner = address(0);
  }

  /**
   * @dev Failsafe to reclaim ownership in the event sale is unable to
   *      return ownership. Reclaims ownership regardless of
   *      pending ownership transfer.
   */
  function reclaimOwnership() public onlyReclaimableOwner {

      // Erase any pending transfer.
      pendingOwner = address(0);

      // Transfer ownership.
      OwnershipTransferred(owner, reclaimableOwner);
      owner = reclaimableOwner;

      // Reset reclaimableOwner.
      reclaimableOwner = address(0);

  }
}
function setupReclaim() public onlyOwner {
    require(reclaimableOwner == address(0));

    reclaimableOwner = msg.sender;
}

/**
 * @dev Sets the reclaim address to current owner.
 */