private static void assertRegionIndicesInRange(int s1Length, int start1, int end1,
                                                 int s2Length, int start2, int end2) {
    if (start1 < 0 || start1 > end1 || end1 > s1Length || start2 < 0 || start2 > end2 || end2 > s2Length) {
      throw new IllegalArgumentException("Indices out of bounds: (" + start1 + ", " + end1 + ") of CharSequence length " + s1Length + " vs (" + start2 + ", " + end2 + ") of CharSequence length " + s2Length);
    }
  }
private static void assertRegionIndicesInRange(int s1Length, int start1, int end1,
                                                 int s2Length, int start2, int end2)