// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) braces deadcode fieldsfirst 
// Source File Name:   CharacterConverter1Byte.java
// Class Version:      45.3

package oracle.sql.converter;

import java.sql.SQLException;
import java.util.Vector;

// Referenced classes of package oracle.sql.converter:
//            CharacterConverter

// flag ACC_SUPER is set
public class CharacterConverter1Byte extends CharacterConverter
{
    // Constants:          115
    // Interfaces:         0
    // Fields:             12
    // Methods:            16
    // Class Attributes:   1


    static final int ORACHARMASK = 255;
    static final int UCSCHARWIDTH = 16;
    public int m_l1KeyWidth;
    public int m_l1KeyShift;
    int m_l1KeyMask;
    int m_l2KeyMask;
    public char m_ucsReplacement;
    public char m_ucsChar[];
    public char m_oraCharLevel1[];
    public byte m_oraCharLevel2[];
    public byte m_oraCharReplacement;
    public char extraUnicodeToOracleMapping[][];

    // Decompiling method: <init>  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 60 bytes, Code offset: 1538
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 60 Range 0 59 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 60 Range 0 59 Init 0 fixed
    public CharacterConverter1Byte()
    {
        super();
        m_l1KeyWidth = 0;
        m_l1KeyShift = 0;
        m_l1KeyMask = 0;
        m_l2KeyMask = 0;
        m_ucsReplacement = '\0';
        m_ucsChar = null;
        m_oraCharLevel1 = null;
        m_oraCharLevel2 = null;
        m_oraCharReplacement = 0;
        extraUnicodeToOracleMapping = null;
        m_groupId = 0;
        return;
    }

    // Decompiling method: buildUnicodeToOracleMapping  Signature: ()V
    // Max stack: 5, #locals: 21, #params: 1
    // Code length: 629 bytes, Code offset: 1684
    // Line Number Table found: 83 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 629 Range 0 628 Init 0 fixed
    // RetValue  21 added: Name <returnValue> Type V At 0 629 Range 0 628 Init 0 fixed
    // LocalVar   1 added: Name i Type I At 4 37 Range 4 40 Init 4
    // LocalVar   2 added: Name j Type I At 9 550 Range 9 558 Init 9
    // LocalVar   3 added: Name k Type I At 15 546 Range 15 560 Init 15
    // LocalVar   4 added: Name l Type I At 21 547 Range 21 567 Init 21
    // LocalVar   5 added: Name i1 Type I At 42 363 Range 42 404 Init 42
    // LocalVar   6 added: Name ac Type [C At 48 571 Range 48 618 Init 48
    // LocalVar   7 added: Name ac1 Type [[C At 57 331 Range 57 387 Init 57
    // LocalVar   8 added: Name flag Type Z At 60 34 Range 60 93 Init 60
    // LocalVar   8 chged: Name j1 Oname flag Type I At 92 2 Range 60 93 Init 60
    // LocalVar  12 added: Name k1 Type I At 104 102 Range 104 205 Init 104
    // LocalVar  13 added: Name c Type C At 110 359 Range 110 468 Init 110
    // LocalVar   8 added: Name flag Type Z At 113 91 Range 113 203 Init 113
    // LocalVar   8 chged: Name l1 Oname flag Type I At 202 2 Range 113 203 Init 113
    // LocalVar  12 added: Name i2 Type I At 221 91 Range 221 311 Init 221
    // LocalVar   8 added: Name flag Type Z At 224 86 Range 224 309 Init 224
    // LocalVar   8 chged: Name j2 Oname flag Type I At 308 2 Range 224 309 Init 224
    // LocalVar  14 added: Name k2 Type I At 319 67 Range 319 385 Init 319
    // LocalVar  15 added: Name l2 Type I At 323 117 Range 323 439 Init 323
    // LocalVar  16 added: Name flag Type Z At 326 40 Range 326 365 Init 326
    // LocalVar   8 added: Name flag1 Type Z At 329 74 Range 329 402 Init 329
    // LocalVar   8 chged: Name i3 Oname flag1 Type I At 401 2 Range 329 402 Init 329
    // LocalVar  18 added: Name byte0 Type B At 412 176 Range 412 587 Init 412
    // LocalVar  19 added: Name abyte0 Type [B At 418 207 Range 418 624 Init 418
    // LocalVar   8 added: Name flag1 Type Z At 421 17 Range 421 437 Init 421
    // LocalVar   8 chged: Name j3 Oname flag1 Type I At 436 2 Range 421 437 Init 421
    // LocalVar  12 added: Name k3 Type I At 448 74 Range 448 521 Init 448
    // LocalVar   8 added: Name flag1 Type Z At 451 69 Range 451 519 Init 451
    // LocalVar   8 chged: Name l3 Oname flag1 Type I At 518 2 Range 451 519 Init 451
    // LocalVar  12 added: Name i4 Type I At 537 76 Range 537 612 Init 537
    // LocalVar   8 added: Name flag1 Type Z At 540 71 Range 540 610 Init 540
    // LocalVar   8 chged: Name j4 Oname flag1 Type I At 609 2 Range 540 610 Init 540
    // LocalVar  11 added: Name c1 Type C At 125 25 Range 125 149 Init 125
    // LocalVar   9 added: Name k4 Type I At 140 53 Range 140 192 Init 140
    // LocalVar  10 added: Name l4 Type I At 153 44 Range 153 196 Init 153
    // LocalVar  11 added: Name c2 Type C At 238 18 Range 238 255 Init 238
    // LocalVar   9 added: Name i5 Type I At 246 53 Range 246 298 Init 246
    // LocalVar  10 added: Name j5 Type I At 259 44 Range 259 302 Init 259
    // LocalVar  17 added: Name c3 Type C At 349 22 Range 349 370 Init 349
    // LocalVar  16 chged: Name k5 Oname flag Type I At 357 2 Range 326 365 Init 326
    // LocalVar  11 added: Name c4 Type C At 463 19 Range 463 481 Init 463
    // LocalVar   9 added: Name l5 Type I At 478 13 Range 478 490 Init 478
    // LocalVar  10 added: Name i6 Type I At 485 9 Range 485 493 Init 485
    // LocalVar  20 added: Name j6 Type I At 495 16 Range 495 510 Init 495
    // LocalVar  11 added: Name c5 Type C At 554 12 Range 554 565 Init 554
    // LocalVar   9 added: Name k6 Type I At 562 13 Range 562 574 Init 562
    // LocalVar  10 added: Name l6 Type I At 569 9 Range 569 577 Init 569
    // LocalVar  20 added: Name i7 Type I At 579 16 Range 579 594 Init 579
    // LocalVar  12 name k3(I) merged out into k1(I)
    // LocalVar  12 name i2(I) merged out into k1(I)
    public void buildUnicodeToOracleMapping()
    {
        int i = m_l1KeyWidth;
        int j = 16 - i;
        int k = (1 << i) - 1;
        int l = (1 << j) - 1;
        m_l1KeyShift = j;
        m_l1KeyMask = k;
        m_l2KeyMask = l;
        int i1 = 1 << i;
        char ac[] = new char[i1];
        char ac1[][] = new char[i1][2];
        for(int j1 = 0; j1 < i1; j1++)
        {
            ac[j1] = '\0';
            ac1[j1][0] = (char)l;
            ac1[j1][1] = '\0';
        }

        int i5 = m_ucsChar.length;
        char c4 = m_ucsReplacement;
        for(int k1 = 0; k1 < i5; k1++)
        {
            char c = m_ucsChar[k1];
            if(c != c4)
            {
                int i3 = c >> j & k;
                ac[i3] = '\001';
                int i4 = c & l;
                if(i4 < ac1[i3][0])
                {
                    ac1[i3][0] = (char)i4;
                }
                if(i4 > ac1[i3][1])
                {
                    ac1[i3][1] = (char)i4;
                }
            }
        }

        if(extraUnicodeToOracleMapping != null)
        {
            i5 = extraUnicodeToOracleMapping.length;
            for(int l1 = 0; l1 < i5; l1++)
            {
                char c1 = extraUnicodeToOracleMapping[l1][0];
                int j3 = c1 >> j & k;
                ac[j3] = '\001';
                int j4 = c1 & l;
                if(j4 < ac1[j3][0])
                {
                    ac1[j3][0] = (char)j4;
                }
                if(j4 > ac1[j3][1])
                {
                    ac1[j3][1] = (char)j4;
                }
            }

        }
        int k5 = l + 1;
        int l5 = k5;
        int i6 = 0;
        for(int i2 = 0; i2 < i1; i2++)
        {
            if(ac[i2] != 0)
            {
                char c5 = ac1[i2][0];
                ac[i2] = (char)(l5 - (i6 >= c5 ? c5 : i6));
                l5 = ac[i2] + k5;
                i6 = k5 - ac1[i2][1] - 1;
            }
        }

        byte byte0 = m_oraCharReplacement;
        byte abyte0[] = new byte[l5];
        for(int j2 = 0; j2 < l5; j2++)
        {
            abyte0[j2] = byte0;
        }

        i5 = m_ucsChar.length;
        for(int k2 = 0; k2 < i5; k2++)
        {
            char c2 = m_ucsChar[k2];
            if(c2 != c4)
            {
                int k3 = c2 >> j & k;
                int k4 = c2 & l;
                int j6 = ac[k3] + k4;
                if(abyte0[j6] == byte0)
                {
                    abyte0[j6] = (byte)k2;
                }
            }
        }

        if(extraUnicodeToOracleMapping != null)
        {
            int j5 = extraUnicodeToOracleMapping.length;
            for(int l2 = 0; l2 < j5; l2++)
            {
                char c3 = extraUnicodeToOracleMapping[l2][0];
                int l3 = c3 >> j & k;
                int l4 = c3 & l;
                int k6 = ac[l3] + l4;
                if(abyte0[k6] == byte0)
                {
                    abyte0[k6] = (byte)extraUnicodeToOracleMapping[l2][1];
                }
            }

        }
        m_oraCharLevel1 = ac;
        m_oraCharLevel2 = abyte0;
        return;
    }

    // Decompiling method: extractCodepoints  Signature: (Ljava/util/Vector;)V
    // Max stack: 4, #locals: 6, #params: 2
    // Code length: 57 bytes, Code offset: 2679
    // Exception table: 1 entries
    //           start  12 end 40 handler 43 type SQLException
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 57 Range 0 56 Init 0 fixed
    // Parameter  1 added: Name vector Type Ljava/util/Vector; At 0 57 Range 0 56 Init 0
    // RetValue   6 added: Name <returnValue> Type V At 0 57 Range 0 56 Init 0 fixed
    // LocalVar   2 added: Name flag Type Z At 1 6 Range 1 6 Init 1
    // LocalVar   3 added: Name c Type C At 5 48 Range 5 52 Init 5
    // LocalVar   5 added: Name flag1 Type Z At 7 45 Range 7 51 Init 7
    // LocalVar   5 chged: Name i Oname flag1 Type I At 50 2 Range 7 51 Init 7
    // LocalVar   4 added: Name ai Type [I At 15 22 Range 15 36 Init 15
    public void extractCodepoints(Vector vector)
    {
        boolean flag = false;
        char c = '\377';
        for(int i = flag; i <= c; i++)
        {
            try
            {
                int ai[] = new int[2];
                ai[0] = i;
                ai[1] = toUnicode((byte)i);
                vector.addElement(ai);
            }
            catch(SQLException _ex) { }
        }

        return;
    }

    // Decompiling method: extractExtraMappings  Signature: (Ljava/util/Vector;)V
    // Max stack: 4, #locals: 4, #params: 2
    // Code length: 57 bytes, Code offset: 2830
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 57 Range 0 56 Init 0 fixed
    // Parameter  1 added: Name vector Type Ljava/util/Vector; At 0 57 Range 0 56 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 57 Range 0 56 Init 0 fixed
    // LocalVar   3 added: Name flag Type Z At 9 39 Range 9 47 Init 9
    // LocalVar   3 chged: Name i Oname flag Type I At 47 1 Range 9 47 Init 9
    // LocalVar   2 added: Name ai Type [I At 16 25 Range 16 40 Init 16
    public void extractExtraMappings(Vector vector)
    {
        if(extraUnicodeToOracleMapping == null)
        {
            return;
        }
        for(int i = 0; i < extraUnicodeToOracleMapping.length; i++)
        {
            int ai[] = new int[2];
            ai[0] = extraUnicodeToOracleMapping[i][0];
            ai[1] = extraUnicodeToOracleMapping[i][1];
            vector.addElement(ai);
        }

        return;
    }

    // Decompiling method: getOraChar1ByteRep  Signature: ()C
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 6 bytes, Code offset: 2957
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 6 Range 0 5 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type C At 0 6 Range 0 5 Init 0 fixed
    public char getOraChar1ByteRep()
    {
        return (char)m_oraCharReplacement;
    }

    // Decompiling method: getOraChar2ByteRep  Signature: ()C
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 2 bytes, Code offset: 3001
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 2 Range 0 1 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type C At 0 2 Range 0 1 Init 0 fixed
    public char getOraChar2ByteRep()
    {
        return '\0';
    }

    // Decompiling method: getUCS2CharRep  Signature: ()C
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 3041
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type C At 0 5 Range 0 4 Init 0 fixed
    public char getUCS2CharRep()
    {
        return m_ucsReplacement;
    }

    // Decompiling method: hasExtraMappings  Signature: ()Z
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 13 bytes, Code offset: 3084
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 13 Range 0 12 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 13 Range 0 12 Init 0 fixed
    public boolean hasExtraMappings()
    {
        return extraUnicodeToOracleMapping != null;
    }

    // Decompiling method: toOracleCharacter  Signature: (C)B
    // Max stack: 3, #locals: 5, #params: 2
    // Code length: 56 bytes, Code offset: 3135
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 56 Range 0 55 Init 0 fixed
    // Parameter  1 added: Name c Type C At 0 56 Range 0 55 Init 0
    // RetValue   5 added: Name <returnValue> Type B At 0 56 Range 0 55 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 11 17 Range 11 27 Init 11
    // LocalVar   3 added: Name j Type I At 18 12 Range 18 29 Init 18
    // LocalVar   4 added: Name byte0 Type B At 32 23 Range 32 54 Init 32
    byte toOracleCharacter(char c)
        throws SQLException
    {
        int i = c >> m_l1KeyShift & m_l1KeyMask;
        int j = c & m_l2KeyMask;
        byte byte0 = m_oraCharLevel2[m_oraCharLevel1[i] + j];
        if(byte0 == m_oraCharReplacement)
        {
            throw new SQLException("Cannot map Unicode to Oracle character.");
        } else
        {
            return byte0;
        }
    }

    // Decompiling method: toOracleCharacterWithReplacement  Signature: (C)B
    // Max stack: 3, #locals: 4, #params: 2
    // Code length: 33 bytes, Code offset: 3259
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 33 Range 0 32 Init 0 fixed
    // Parameter  1 added: Name c Type C At 0 33 Range 0 32 Init 0
    // RetValue   4 added: Name <returnValue> Type B At 0 33 Range 0 32 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 11 17 Range 11 27 Init 11
    // LocalVar   3 added: Name j Type I At 18 12 Range 18 29 Init 18
    byte toOracleCharacterWithReplacement(char c)
    {
        int i = c >> m_l1KeyShift & m_l1KeyMask;
        int j = c & m_l2KeyMask;
        return m_oraCharLevel2[m_oraCharLevel1[i] + j];
    }

    // Decompiling method: toOracleString  Signature: (Ljava/lang/String;)[B
    // Max stack: 5, #locals: 6, #params: 2
    // Code length: 61 bytes, Code offset: 3338
    // Line Number Table found: 10 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 61 Range 0 60 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 61 Range 0 60 Init 0
    // RetValue   6 added: Name <returnValue> Type [B At 0 61 Range 0 60 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 4 51 Range 4 54 Init 4
    // LocalVar   3 added: Name ac Type [C At 16 26 Range 16 41 Init 16
    // LocalVar   4 added: Name abyte0 Type [B At 28 32 Range 28 59 Init 28
    // LocalVar   5 added: Name flag Type Z At 31 23 Range 31 53 Init 31
    // LocalVar   5 chged: Name j Oname flag Type I At 52 2 Range 31 53 Init 31
    public byte[] toOracleString(String s)
        throws SQLException
    {
        int i = s.length();
        if(i == 0)
        {
            return new byte[0];
        }
        char ac[] = new char[i];
        s.getChars(0, i, ac, 0);
        byte abyte0[] = new byte[i];
        for(int j = 0; j < i; j++)
        {
            abyte0[j] = toOracleCharacter(ac[j]);
        }

        return abyte0;
    }

    // Decompiling method: toOracleStringWithReplacement  Signature: (Ljava/lang/String;)[B
    // Max stack: 5, #locals: 6, #params: 2
    // Code length: 61 bytes, Code offset: 3483
    // Line Number Table found: 10 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 61 Range 0 60 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 61 Range 0 60 Init 0
    // RetValue   6 added: Name <returnValue> Type [B At 0 61 Range 0 60 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 4 51 Range 4 54 Init 4
    // LocalVar   3 added: Name ac Type [C At 16 26 Range 16 41 Init 16
    // LocalVar   4 added: Name abyte0 Type [B At 28 32 Range 28 59 Init 28
    // LocalVar   5 added: Name flag Type Z At 31 23 Range 31 53 Init 31
    // LocalVar   5 chged: Name j Oname flag Type I At 52 2 Range 31 53 Init 31
    public byte[] toOracleStringWithReplacement(String s)
    {
        int i = s.length();
        if(i == 0)
        {
            return new byte[0];
        }
        char ac[] = new char[i];
        s.getChars(0, i, ac, 0);
        byte abyte0[] = new byte[i];
        for(int j = 0; j < i; j++)
        {
            abyte0[j] = toOracleCharacterWithReplacement(ac[j]);
        }

        return abyte0;
    }

    // Decompiling method: toUnicode  Signature: (B)C
    // Max stack: 3, #locals: 3, #params: 2
    // Code length: 31 bytes, Code offset: 3618
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 31 Range 0 30 Init 0 fixed
    // Parameter  1 added: Name byte0 Type B At 0 31 Range 0 30 Init 0
    // RetValue   3 added: Name <returnValue> Type C At 0 31 Range 0 30 Init 0 fixed
    // LocalVar   2 added: Name c Type C At 10 20 Range 10 29 Init 10
    char toUnicode(byte byte0)
        throws SQLException
    {
        char c = m_ucsChar[byte0 & 0xff];
        if(c == m_ucsReplacement)
        {
            throw new SQLException("Cannot map Oracle character to Unicode.");
        } else
        {
            return c;
        }
    }

    // Decompiling method: toUnicodeString  Signature: ([BII)Ljava/lang/String;
    // Max stack: 5, #locals: 8, #params: 4
    // Code length: 78 bytes, Code offset: 3709
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 78 Range 0 77 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 78 Range 0 77 Init 0
    // Parameter  2 added: Name i Type I At 0 78 Range 0 77 Init 0
    // Parameter  3 added: Name j Type I At 0 78 Range 0 77 Init 0
    // RetValue   8 added: Name <returnValue> Type Ljava/lang/String; At 0 78 Range 0 77 Init 0 fixed
    // LocalVar   4 added: Name k Type I At 3 62 Range 3 64 Init 3
    // LocalVar   5 added: Name ac Type [C At 8 66 Range 8 73 Init 8
    // LocalVar   6 added: Name l Type I At 11 52 Range 11 62 Init 11
    // LocalVar   7 added: Name flag Type Z At 14 47 Range 14 60 Init 14
    // LocalVar   7 chged: Name i1 Oname flag Type I At 21 2 Range 14 60 Init 14
    public String toUnicodeString(byte abyte0[], int i, int j)
        throws SQLException
    {
        int k = i + j;
        char ac[] = new char[j];
        int l = i;
        for(int i1 = 0; l < k; i1++)
        {
            if((ac[i1] = m_ucsChar[abyte0[l] & 0xff]) == m_ucsReplacement)
            {
                throw new SQLException("Cannot map Oracle character to Unicode.");
            }
            l++;
        }

        return new String(ac);
    }

    // Decompiling method: toUnicodeStringWithReplacement  Signature: ([BII)Ljava/lang/String;
    // Max stack: 5, #locals: 8, #params: 4
    // Code length: 60 bytes, Code offset: 3867
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 60 Range 0 59 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 60 Range 0 59 Init 0
    // Parameter  2 added: Name i Type I At 0 60 Range 0 59 Init 0
    // Parameter  3 added: Name j Type I At 0 60 Range 0 59 Init 0
    // RetValue   8 added: Name <returnValue> Type Ljava/lang/String; At 0 60 Range 0 59 Init 0 fixed
    // LocalVar   4 added: Name k Type I At 3 44 Range 3 46 Init 3
    // LocalVar   5 added: Name ac Type [C At 8 48 Range 8 55 Init 8
    // LocalVar   6 added: Name l Type I At 11 34 Range 11 44 Init 11
    // LocalVar   7 added: Name flag Type Z At 14 29 Range 14 42 Init 14
    // LocalVar   7 chged: Name i1 Oname flag Type I At 21 2 Range 14 42 Init 14
    public String toUnicodeStringWithReplacement(byte abyte0[], int i, int j)
    {
        int k = i + j;
        char ac[] = new char[j];
        int l = i;
        for(int i1 = 0; l < k; i1++)
        {
            ac[i1] = m_ucsChar[abyte0[l] & 0xff];
            l++;
        }

        return new String(ac);
    }

    // Decompiling method: toUnicodeWithReplacement  Signature: (B)C
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 11 bytes, Code offset: 3985
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/converter/CharacterConverter1Byte; At 0 11 Range 0 10 Init 0 fixed
    // Parameter  1 added: Name byte0 Type B At 0 11 Range 0 10 Init 0
    // RetValue   2 added: Name <returnValue> Type C At 0 11 Range 0 10 Init 0 fixed
    char toUnicodeWithReplacement(byte byte0)
    {
        return m_ucsChar[byte0 & 0xff];
    }
}
