public byte[] encodeAsUTF8(String paramString) { ByteArrayBuilder localByteArrayBuilder = this._byteBuilder; if (localByteArrayBuilder == null) { localByteArrayBuilder = new ByteArrayBuilder(null); this._byteBuilder = localByteArrayBuilder; } int i = paramString.length(); Object localObject1 = localByteArrayBuilder.resetAndGetFirstSegment(); int j = localObject1.length; int k = 0; int m = 0; int i1; int i2; Object localObject2; int i4; int i5; label81: int i18; if (m < i) { i1 = m + 1; i2 = paramString.charAt(m); int i3 = j; localObject2 = localObject1; i4 = k; i5 = i3; if (i2 <= 127) { if (i4 >= i5) { localObject2 = localByteArrayBuilder.finishCurrentSegment(); i5 = localObject2.length; i4 = 0; } i18 = i4 + 1; localObject2[i4] = ((byte)i2); if (i1 < i); } } for (int n = i18; ; n = k) { return this._byteBuilder.completeAndCoalesce(n); int i19 = i1 + 1; i2 = paramString.charAt(i1); i1 = i19; i4 = i18; break label81; if (i4 >= i5) { localObject2 = localByteArrayBuilder.finishCurrentSegment(); i5 = localObject2.length; } for (int i6 = 0; ; i6 = i4) { int i9; int i10; if (i2 < 2048) { i9 = i6 + 1; localObject2[i6] = ((byte)(0xC0 | i2 >> 6)); i10 = i2; } for (m = i1; ; m = i1) { if (i9 >= i5) { localObject2 = localByteArrayBuilder.finishCurrentSegment(); i5 = localObject2.length; i9 = 0; } int i11 = i9 + 1; localObject2[i9] = ((byte)(0x80 | i10 & 0x3F)); localObject1 = localObject2; j = i5; k = i11; break; if ((i2 >= 55296) && (i2 <= 57343)) break label378; int i7 = i6 + 1; localObject2[i6] = ((byte)(0xE0 | i2 >> 12)); if (i7 >= i5) { localObject2 = localByteArrayBuilder.finishCurrentSegment(); i5 = localObject2.length; i7 = 0; } int i8 = i7 + 1; localObject2[i7] = ((byte)(0x80 | 0x3F & i2 >> 6)); i9 = i8; i10 = i2; } label378: if (i2 > 56319) _illegalSurrogate(i2); if (i1 >= i) _illegalSurrogate(i2); int i12 = i1 + 1; int i13 = _convertSurrogate(i2, paramString.charAt(i1)); if (i13 > 1114111) _illegalSurrogate(i13); int i14 = i6 + 1; localObject2[i6] = ((byte)(0xF0 | i13 >> 18)); if (i14 >= i5) { localObject2 = localByteArrayBuilder.finishCurrentSegment(); i5 = localObject2.length; i14 = 0; } int i15 = i14 + 1; localObject2[i14] = ((byte)(0x80 | 0x3F & i13 >> 12)); if (i15 >= i5) { localObject2 = localByteArrayBuilder.finishCurrentSegment(); i5 = localObject2.length; } for (int i16 = 0; ; i16 = i15) { int i17 = i16 + 1; localObject2[i16] = ((byte)(0x80 | 0x3F & i13 >> 6)); i9 = i17; i10 = i13; m = i12; break; } } } }
public byte[] quoteAsUTF8(String paramString) { ByteArrayBuilder localByteArrayBuilder = this._byteBuilder; if (localByteArrayBuilder == null) { localByteArrayBuilder = new ByteArrayBuilder(null); this._byteBuilder = localByteArrayBuilder; } int i = paramString.length(); Object localObject1 = localByteArrayBuilder.resetAndGetFirstSegment(); int j = 0; int k = 0; label51: int m; int n; int i1; while (k < i) { int[] arrayOfInt = CharTypes.get7BitOutputEscapes(); m = paramString.charAt(k); if ((m > 127) || (arrayOfInt[m] != 0)) { if (j >= localObject1.length) { localObject1 = localByteArrayBuilder.finishCurrentSegment(); j = 0; } n = k + 1; i1 = paramString.charAt(k); if (i1 > 127) break label191; j = _appendByteEscape(i1, arrayOfInt[i1], localByteArrayBuilder, j); localObject1 = localByteArrayBuilder.getCurrentSegment(); k = n; } else { if (j < localObject1.length) break label591; localObject1 = localByteArrayBuilder.finishCurrentSegment(); } } label191: label584: label591: for (int i16 = 0; ; i16 = j) { j = i16 + 1; localObject1[i16] = ((byte)m); k++; if (k < i) break label51; return this._byteBuilder.completeAndCoalesce(j); int i4; Object localObject2; int i6; if (i1 <= 2047) { i4 = j + 1; localObject1[j] = ((byte)(0xC0 | i1 >> 6)); int i15 = 0x80 | i1 & 0x3F; localObject2 = localObject1; i6 = i15; if (i4 >= localObject2.length) { localObject2 = localByteArrayBuilder.finishCurrentSegment(); i4 = 0; } int i7 = i4 + 1; localObject2[i4] = ((byte)i6); localObject1 = localObject2; k = n; j = i7; break; } int i2; if ((i1 < 55296) || (i1 > 57343)) { i2 = j + 1; localObject1[j] = ((byte)(0xE0 | i1 >> 12)); if (i2 < localObject1.length) break label584; localObject1 = localByteArrayBuilder.finishCurrentSegment(); } for (int i3 = 0; ; i3 = i2) { i4 = i3 + 1; localObject1[i3] = ((byte)(0x80 | 0x3F & i1 >> 6)); int i5 = 0x80 | i1 & 0x3F; localObject2 = localObject1; i6 = i5; break; if (i1 > 56319) _illegalSurrogate(i1); if (n >= i) _illegalSurrogate(i1); int i8 = n + 1; int i9 = _convertSurrogate(i1, paramString.charAt(n)); if (i9 > 1114111) _illegalSurrogate(i9); int i10 = j + 1; localObject1[j] = ((byte)(0xF0 | i9 >> 18)); if (i10 >= localObject1.length) localObject1 = localByteArrayBuilder.finishCurrentSegment(); for (int i11 = 0; ; i11 = i10) { int i12 = i11 + 1; localObject1[i11] = ((byte)(0x80 | 0x3F & i9 >> 12)); if (i12 >= localObject1.length) localObject1 = localByteArrayBuilder.finishCurrentSegment(); for (int i13 = 0; ; i13 = i12) { i4 = i13 + 1; localObject1[i13] = ((byte)(0x80 | 0x3F & i9 >> 6)); int i14 = 0x80 | i9 & 0x3F; n = i8; Object localObject3 = localObject1; i6 = i14; localObject2 = localObject3; break; } } } } }