docs: private static long getLong(final char[] charArr, final int index, final int rem) {
      long out = 0L;
      for (int i = rem; i-- > 0;) { //i= 3,2,1,0
        final char c = charArr[index + i];
        out ^= (c & 0xFFFFL) << (i * 16); //equivalent to |=
      }
      return out;
    }