code: public static <K, V> ImmutableMap<K, V> mapFromPairedKeyValueSequences(
        final Iterable<K> keys, final Iterable<V> values) {
      final ImmutableMap.Builder<K, V> builder = ImmutableMap.builder();
      for (final ZipPair<K, V> pair : zip(keys, values)) {
        builder.put(pair.first(), pair.second());
      }
      return builder.build();
    }
docs: Given a paired sequence of Iterables, produce a map with keys from the first and values from
  the second. An exception will be raised if the Iterables have different numbers of elements, or
  if there are multiple mappings for the same key.