code: public byte[] createInitVector(@Nullable Date timestamp, long serverId) {
      return createInitVector(
          timestamp == null ? 0L : millisToSecsAndMicros(timestamp.getTime()),
          serverId);
    }
docs: Creates the initialization vector from component {@code (timestamp, serverId)} fields.
  
  @param timestamp Timestamp subfield. Notice that Data is not ideal for this because it's
  limited to millisecond precision, which leaves leave some bits unused in the init vector
  @param serverId Server ID subfield (whatever a server uses as a public ID, e.g. its IPv4)
  @return initialization vector
  @see #createInitVector(long, long)