if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newRanges = new int[rangeEnd - rangeStart + 2]; System.arraycopy(ranges, rangeStart, newRanges, 0, newRanges.length); } else { int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newRanges = new int[(rangeEnd - rangeStart + 1) << 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newRanges = new int[rangeEnd - rangeStart + 2]; System.arraycopy(ranges, rangeStart, newRanges, 0, newRanges.length); } else { int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newRanges = new int[(rangeEnd - rangeStart + 1) << 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newRanges = new int[rangeEnd - rangeStart + 2]; System.arraycopy(ranges, rangeStart, newRanges, 0, newRanges.length); } else { int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newRanges = new int[(rangeEnd - rangeStart + 1) << 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newRanges = new int[rangeEnd - rangeStart + 2]; System.arraycopy(ranges, rangeStart, newRanges, 0, newRanges.length); } else { int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newRanges = new int[(rangeEnd - rangeStart + 1) << 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newRanges = new int[rangeEnd - rangeStart + 2]; System.arraycopy(ranges, rangeStart, newRanges, 0, newRanges.length); } else { int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newRanges = new int[(rangeEnd - rangeStart + 1) << 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newStyles = new StyleRange[((rangeEnd - rangeStart) >> 1) + 1]; int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newStyles = new StyleRange[rangeEnd - rangeStart + 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newStyles = new StyleRange[((rangeEnd - rangeStart) >> 1) + 1]; int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newStyles = new StyleRange[rangeEnd - rangeStart + 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newStyles = new StyleRange[((rangeEnd - rangeStart) >> 1) + 1]; int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newStyles = new StyleRange[rangeEnd - rangeStart + 1];
if (ranges != null) { int rangeCount = styleCount << 1; int modifyStart = getRangeIndex(start, -1, rangeCount); if (modifyStart == rangeCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, rangeCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && ranges[modifyStart] < start && end < ranges[modifyEnd] + ranges[modifyEnd + 1]) { int modifyStart = getRangeIndex(start, -1, styleCount); if (modifyStart == styleCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, styleCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && styles[modifyStart].start < start && end < styles[modifyEnd].start + styles[modifyEnd].length) {
if (ranges != null) { int rangeCount = styleCount << 1; int modifyStart = getRangeIndex(start, -1, rangeCount); if (modifyStart == rangeCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, rangeCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && ranges[modifyStart] < start && end < ranges[modifyEnd] + ranges[modifyEnd + 1]) { int modifyStart = getRangeIndex(start, -1, styleCount); if (modifyStart == styleCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, styleCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && styles[modifyStart].start < start && end < styles[modifyEnd].start + styles[modifyEnd].length) {
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newStyles = new StyleRange[((rangeEnd - rangeStart) >> 1) + 1]; int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newStyles = new StyleRange[rangeEnd - rangeStart + 1];
if (ranges != null) { int rangeCount = styleCount << 1; int rangeStart = getRangeIndex(start, -1, rangeCount); if (rangeStart >= rangeCount) return null; if (ranges[rangeStart] > end) return null; int rangeEnd = Math.min(rangeCount - 2, getRangeIndex(end, rangeStart - 1, rangeCount)); if (ranges[rangeEnd] > end) rangeEnd = Math.max(rangeStart, rangeEnd - 2); newStyles = new StyleRange[((rangeEnd - rangeStart) >> 1) + 1]; int rangeStart = getRangeIndex(start, -1, styleCount); if (rangeStart >= styleCount) return null; if (styles[rangeStart].start > end) return null; int rangeEnd = Math.min(styleCount - 1, getRangeIndex(end, rangeStart - 1, styleCount)); if (styles[rangeEnd].start > end) rangeEnd = Math.max(rangeStart, rangeEnd - 1); newStyles = new StyleRange[rangeEnd - rangeStart + 1];
if (ranges != null) { int rangeCount = styleCount << 1; int modifyStart = getRangeIndex(start, -1, rangeCount); if (modifyStart == rangeCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, rangeCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && ranges[modifyStart] < start && end < ranges[modifyEnd] + ranges[modifyEnd + 1]) { int modifyStart = getRangeIndex(start, -1, styleCount); if (modifyStart == styleCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, styleCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && styles[modifyStart].start < start && end < styles[modifyEnd].start + styles[modifyEnd].length) {
if (ranges != null) { int rangeCount = styleCount << 1; int modifyStart = getRangeIndex(start, -1, rangeCount); if (modifyStart == rangeCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, rangeCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && ranges[modifyStart] < start && end < ranges[modifyEnd] + ranges[modifyEnd + 1]) { int modifyStart = getRangeIndex(start, -1, styleCount); if (modifyStart == styleCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, styleCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && styles[modifyStart].start < start && end < styles[modifyEnd].start + styles[modifyEnd].length) {
if (ranges != null) { int rangeCount = styleCount << 1; int modifyStart = getRangeIndex(start, -1, rangeCount); if (modifyStart == rangeCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, rangeCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && ranges[modifyStart] < start && end < ranges[modifyEnd] + ranges[modifyEnd + 1]) { int modifyStart = getRangeIndex(start, -1, styleCount); if (modifyStart == styleCount) return; int end = start + replaceCharCount; int modifyEnd = getRangeIndex(end, modifyStart - 1, styleCount); int offset = newCharCount - replaceCharCount; if (modifyStart == modifyEnd && styles[modifyStart].start < start && end < styles[modifyEnd].start + styles[modifyEnd].length) {
if (ranges != null) { int rangeCount = styleCount << 1; int index = getRangeIndex(offset, -1, rangeCount); if (index >= rangeCount) return false; int rangeStart = ranges[index];
if (ranges != null) { int rangeCount = styleCount << 1; int index = getRangeIndex(offset, -1, rangeCount); if (index >= rangeCount) return false; int rangeStart = ranges[index];
if (ranges != null) { int rangeCount = styleCount << 1; int index = getRangeIndex(offset, -1, rangeCount); if (index >= rangeCount) return false; int rangeStart = ranges[index];
if (ranges != null) { int rangeCount = styleCount << 1; int index = getRangeIndex(offset, -1, rangeCount); if (index >= rangeCount) return false; int rangeStart = ranges[index];
if (ranges != null) { int rangeCount = styleCount << 1; int index = getRangeIndex(offset, -1, rangeCount); if (index >= rangeCount) return false; int rangeStart = ranges[index];