Yields (hash, client_files) pairs for all the specified hashes.

    Args:
      hashes: List of RDFURN's.
      token: Security token.
      age: AFF4 age specification. Only get hits corresponding to the given age
        spec. Should be aff4.NEWEST_TIME or a time range given as a tuple
        (start, end) in microseconds since Jan 1st, 1970. If just a microseconds
        value is given it's treated as the higher end of the range, i.e. (0,
        age). See aff4.FACTORY.ParseAgeSpecification for details.

    Yields:
      (hash, client_files) tuples, where hash is a FileStoreHash instance and
      client_files is a list of RDFURN's corresponding to client files that
      have the hash.

    Raises:
      ValueError: if age was set to aff4.ALL_TIMES.

def GetClientsForHashes(cls, hashes, token=None, age=aff4.NEWEST_TIME):
    """Yields (hash, client_files) pairs for all the specified hashes.

    Args:
      hashes: List of RDFURN's.
      token: Security token.
      age: AFF4 age specification. Only get hits corresponding to the given age
        spec. Should be aff4.NEWEST_TIME or a time range given as a tuple
        (start, end) in microseconds since Jan 1st, 1970. If just a microseconds
        value is given it's treated as the higher end of the range, i.e. (0,
        age). See aff4.FACTORY.ParseAgeSpecification for details.

    Yields:
      (hash, client_files) tuples, where hash is a FileStoreHash instance and
      client_files is a list of RDFURN's corresponding to client files that
      have the hash.

    Raises:
      ValueError: if age was set to aff4.ALL_TIMES.
    """
    if age == aff4.ALL_TIMES:
      raise ValueError("age==aff4.ALL_TIMES is not supported.")
    timestamp = aff4.FACTORY.ParseAgeSpecification(age)

    index_objects = list(aff4.FACTORY.MultiOpen(hashes, token=token))
    index_locations = {}
    for o in index_objects:
      index_locations.setdefault(o.urn, []).append(o.symlink_urn)
    for hash_obj, client_files in data_store.DB.FileHashIndexQueryMultiple(
        index_locations, timestamp=timestamp):
      symlinks = index_locations[hash_obj]
      for original_hash in symlinks:
        hash_obj = original_hash or hash_obj
        yield (FileStoreHash(hash_obj), client_files)