code: public static <T> Collector<T, ?, OptionalLong> andingLong(ToLongFunction<T> mapper) {
          return new CancellableCollectorImpl<>(PrimitiveBox::new, (acc, t) -> {
              if (!acc.b) {
                  acc.l = mapper.applyAsLong(t);
                  acc.b = true;
              } else {
                  acc.l &= mapper.applyAsLong(t);
              }
          }, (acc1, acc2) -> {
              if (!acc1.b)
                  return acc2;
              if (!acc2.b)
                  return acc1;
              acc1.l &= acc2.l;
              return acc1;
          }, PrimitiveBox::asLong, acc -> acc.b && acc.l == 0, UNORDERED_CHARACTERISTICS);
      }
docs: Returns a {@code Collector} which performs the bitwise-and operation of a
  long-valued function applied to the input elements. If no elements are
  present, the result is empty {@link OptionalLong}.
  
  <p>
  This method returns a
  <a href="package-summary.html#ShortCircuitReduction">short-circuiting
  collector</a>: it may not process all the elements if the result is zero.
  
  @param <T> the type of the input elements
  @param mapper a function extracting the property to be processed
  @return a {@code Collector} that produces the bitwise-and operation of a
  derived property
  @since 0.4.0