public class java.text.RuleBasedCollator extends java.text.Collator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.text.RuleBasedCollator
  super_class: java.text.Collator
{
  static final int CHARINDEX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1879048192

  static final int EXPANDCHARINDEX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2113929216

  static final int CONTRACTCHARINDEX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2130706432

  static final int UNMAPPED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int COLLATIONKEYOFFSET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private java.text.RBCollationTables tables;
    descriptor: Ljava/text/RBCollationTables;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.StringBuffer primResult;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.StringBuffer secResult;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.StringBuffer terResult;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.text.CollationElementIterator sourceCursor;
    descriptor: Ljava/text/CollationElementIterator;
    flags: (0x0002) ACC_PRIVATE

  private java.text.CollationElementIterator targetCursor;
    descriptor: Ljava/text/CollationElementIterator;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.lang.String rules
         0: .line 281
            aload 0 /* this */
            aload 1 /* rules */
            iconst_1
            invokespecial java.text.RuleBasedCollator.<init>:(Ljava/lang/String;I)V
         1: .line 282
            return
        end local 1 // java.lang.String rules
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/text/RuleBasedCollator;
            0    2     1  rules  Ljava/lang/String;
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
       Name  Flags
      rules  

  void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.lang.String rules
        start local 2 // int decomp
         0: .line 297
            aload 0 /* this */
            invokespecial java.text.Collator.<init>:()V
         1: .line 760
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
         2: .line 764
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
         3: .line 765
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
         4: .line 766
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
         5: .line 767
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
         6: .line 768
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
         7: .line 298
            aload 0 /* this */
            iconst_2
            invokevirtual java.text.RuleBasedCollator.setStrength:(I)V
         8: .line 299
            aload 0 /* this */
            iload 2 /* decomp */
            invokevirtual java.text.RuleBasedCollator.setDecomposition:(I)V
         9: .line 300
            aload 0 /* this */
            new java.text.RBCollationTables
            dup
            aload 1 /* rules */
            iload 2 /* decomp */
            invokespecial java.text.RBCollationTables.<init>:(Ljava/lang/String;I)V
            putfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
        10: .line 301
            return
        end local 2 // int decomp
        end local 1 // java.lang.String rules
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Ljava/text/RuleBasedCollator;
            0   11     1   rules  Ljava/lang/String;
            0   11     2  decomp  I
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
        Name  Flags
      rules   
      decomp  

  private void <init>(java.text.RuleBasedCollator);
    descriptor: (Ljava/text/RuleBasedCollator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.text.RuleBasedCollator that
         0: .line 306
            aload 0 /* this */
            invokespecial java.text.Collator.<init>:()V
         1: .line 760
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
         2: .line 764
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
         3: .line 765
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
         4: .line 766
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
         5: .line 767
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
         6: .line 768
            aload 0 /* this */
            aconst_null
            putfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
         7: .line 307
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.text.RuleBasedCollator.getStrength:()I
            invokevirtual java.text.RuleBasedCollator.setStrength:(I)V
         8: .line 308
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.text.RuleBasedCollator.getDecomposition:()I
            invokevirtual java.text.RuleBasedCollator.setDecomposition:(I)V
         9: .line 309
            aload 0 /* this */
            aload 1 /* that */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            putfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
        10: .line 310
            return
        end local 1 // java.text.RuleBasedCollator that
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/text/RuleBasedCollator;
            0   11     1  that  Ljava/text/RuleBasedCollator;
    MethodParameters:
      Name  Flags
      that  

  public java.lang.String getRules();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.text.RuleBasedCollator this
         0: .line 319
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            invokevirtual java.text.RBCollationTables.getRules:()Ljava/lang/String;
            areturn
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/text/RuleBasedCollator;

  public java.text.CollationElementIterator getCollationElementIterator(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/text/CollationElementIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.lang.String source
         0: .line 330
            new java.text.CollationElementIterator
            dup
            aload 1 /* source */
            aload 0 /* this */
            invokespecial java.text.CollationElementIterator.<init>:(Ljava/lang/String;Ljava/text/RuleBasedCollator;)V
            areturn
        end local 1 // java.lang.String source
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/text/RuleBasedCollator;
            0    1     1  source  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      source  

  public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
    descriptor: (Ljava/text/CharacterIterator;)Ljava/text/CollationElementIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.text.CharacterIterator source
         0: .line 343
            new java.text.CollationElementIterator
            dup
            aload 1 /* source */
            aload 0 /* this */
            invokespecial java.text.CollationElementIterator.<init>:(Ljava/text/CharacterIterator;Ljava/text/RuleBasedCollator;)V
            areturn
        end local 1 // java.text.CharacterIterator source
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/text/RuleBasedCollator;
            0    1     1  source  Ljava/text/CharacterIterator;
    MethodParameters:
        Name  Flags
      source  

  public synchronized int compare(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=17, args_size=3
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.lang.String source
        start local 2 // java.lang.String target
         0: .line 356
            aload 1 /* source */
            ifnull 1
            aload 2 /* target */
            ifnonnull 2
         1: .line 357
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 379
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* result */
        start local 3 // int result
         3: .line 381
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
            ifnonnull 6
         4: .line 382
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual java.text.RuleBasedCollator.getCollationElementIterator:(Ljava/lang/String;)Ljava/text/CollationElementIterator;
            putfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
         5: .line 383
            goto 7
         6: .line 384
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
            aload 1 /* source */
            invokevirtual java.text.CollationElementIterator.setText:(Ljava/lang/String;)V
         7: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
            ifnonnull 10
         8: .line 387
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* target */
            invokevirtual java.text.RuleBasedCollator.getCollationElementIterator:(Ljava/lang/String;)Ljava/text/CollationElementIterator;
            putfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
         9: .line 388
            goto 11
        10: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
            aload 2 /* target */
            invokevirtual java.text.CollationElementIterator.setText:(Ljava/lang/String;)V
        11: .line 392
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* sOrder */
        start local 4 // int sOrder
        12: iconst_0
            istore 5 /* tOrder */
        start local 5 // int tOrder
        13: .line 394
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getStrength:()I
            iconst_1
            if_icmplt 14
            iconst_1
            goto 15
      StackMap locals: int int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 6 /* initialCheckSecTer */
        start local 6 // boolean initialCheckSecTer
        16: .line 395
            iload 6 /* initialCheckSecTer */
            istore 7 /* checkSecTer */
        start local 7 // boolean checkSecTer
        17: .line 396
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getStrength:()I
            iconst_2
            if_icmplt 18
            iconst_1
            goto 19
      StackMap locals: int int
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 8 /* checkTertiary */
        start local 8 // boolean checkTertiary
        20: .line 398
            iconst_1
            istore 9 /* gets */
        start local 9 // boolean gets
        21: iconst_1
            istore 10 /* gett */
        start local 10 // boolean gett
        22: .line 403
      StackMap locals: int int int
      StackMap stack:
            iload 9 /* gets */
            ifeq 23
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
            invokevirtual java.text.CollationElementIterator.next:()I
            istore 4 /* sOrder */
            goto 24
      StackMap locals:
      StackMap stack:
        23: iconst_1
            istore 9 /* gets */
        24: .line 404
      StackMap locals:
      StackMap stack:
            iload 10 /* gett */
            ifeq 25
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
            invokevirtual java.text.CollationElementIterator.next:()I
            istore 5 /* tOrder */
            goto 26
      StackMap locals:
      StackMap stack:
        25: iconst_1
            istore 10 /* gett */
        26: .line 407
      StackMap locals:
      StackMap stack:
            iload 4 /* sOrder */
            iconst_m1
            if_icmpeq 77
        27: .line 408
            iload 5 /* tOrder */
            iconst_m1
            if_icmpne 29
        28: .line 409
            goto 77
        29: .line 411
      StackMap locals:
      StackMap stack:
            iload 4 /* sOrder */
            invokestatic java.text.CollationElementIterator.primaryOrder:(I)I
            istore 11 /* pSOrder */
        start local 11 // int pSOrder
        30: .line 412
            iload 5 /* tOrder */
            invokestatic java.text.CollationElementIterator.primaryOrder:(I)I
            istore 12 /* pTOrder */
        start local 12 // int pTOrder
        31: .line 415
            iload 4 /* sOrder */
            iload 5 /* tOrder */
            if_icmpne 37
        32: .line 416
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            invokevirtual java.text.RBCollationTables.isFrenchSec:()Z
            ifeq 22
            iload 11 /* pSOrder */
            ifeq 22
        33: .line 417
            iload 7 /* checkSecTer */
            ifne 22
        34: .line 420
            iload 6 /* initialCheckSecTer */
            istore 7 /* checkSecTer */
        35: .line 423
            iconst_0
            istore 8 /* checkTertiary */
        36: .line 426
            goto 22
        37: .line 430
      StackMap locals: int int
      StackMap stack:
            iload 11 /* pSOrder */
            iload 12 /* pTOrder */
            if_icmpeq 59
        38: .line 432
            iload 4 /* sOrder */
            ifne 41
        39: .line 435
            iconst_0
            istore 10 /* gett */
        40: .line 436
            goto 22
        41: .line 438
      StackMap locals:
      StackMap stack:
            iload 5 /* tOrder */
            ifne 44
        42: .line 439
            iconst_0
            istore 9 /* gets */
        43: .line 440
            goto 22
        44: .line 446
      StackMap locals:
      StackMap stack:
            iload 11 /* pSOrder */
            ifne 50
        45: .line 450
            iload 7 /* checkSecTer */
            ifeq 48
        46: .line 451
            iconst_1
            istore 3 /* result */
        47: .line 452
            iconst_0
            istore 7 /* checkSecTer */
        48: .line 455
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* gett */
        49: .line 456
            goto 22
        50: .line 457
      StackMap locals:
      StackMap stack:
            iload 12 /* pTOrder */
            ifne 56
        51: .line 460
            iload 7 /* checkSecTer */
            ifeq 54
        52: .line 461
            iconst_m1
            istore 3 /* result */
        53: .line 462
            iconst_0
            istore 7 /* checkSecTer */
        54: .line 465
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* gets */
        55: .line 466
            goto 22
        56: .line 470
      StackMap locals:
      StackMap stack:
            iload 11 /* pSOrder */
            iload 12 /* pTOrder */
            if_icmpge 58
        57: .line 471
            iconst_m1
            ireturn
        58: .line 473
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        59: .line 481
      StackMap locals:
      StackMap stack:
            iload 7 /* checkSecTer */
            ifeq 22
        60: .line 483
            iload 4 /* sOrder */
            invokestatic java.text.CollationElementIterator.secondaryOrder:(I)S
            istore 13 /* secSOrder */
        start local 13 // short secSOrder
        61: .line 484
            iload 5 /* tOrder */
            invokestatic java.text.CollationElementIterator.secondaryOrder:(I)S
            istore 14 /* secTOrder */
        start local 14 // short secTOrder
        62: .line 485
            iload 13 /* secSOrder */
            iload 14 /* secTOrder */
            if_icmpeq 68
        63: .line 487
            iload 13 /* secSOrder */
            iload 14 /* secTOrder */
            if_icmpge 64
            iconst_m1
            goto 65
      StackMap locals: int int
      StackMap stack:
        64: iconst_1
      StackMap locals:
      StackMap stack: int
        65: istore 3 /* result */
        66: .line 489
            iconst_0
            istore 7 /* checkSecTer */
        67: .line 492
            goto 22
        68: .line 493
      StackMap locals:
      StackMap stack:
            iload 8 /* checkTertiary */
            ifeq 22
        69: .line 495
            iload 4 /* sOrder */
            invokestatic java.text.CollationElementIterator.tertiaryOrder:(I)S
            istore 15 /* terSOrder */
        start local 15 // short terSOrder
        70: .line 496
            iload 5 /* tOrder */
            invokestatic java.text.CollationElementIterator.tertiaryOrder:(I)S
            istore 16 /* terTOrder */
        start local 16 // short terTOrder
        71: .line 497
            iload 15 /* terSOrder */
            iload 16 /* terTOrder */
            if_icmpeq 22
        72: .line 499
            iload 15 /* terSOrder */
            iload 16 /* terTOrder */
            if_icmpge 73
            iconst_m1
            goto 74
      StackMap locals: int int
      StackMap stack:
        73: iconst_1
      StackMap locals:
      StackMap stack: int
        74: istore 3 /* result */
        75: .line 501
            iconst_0
            istore 8 /* checkTertiary */
        end local 16 // short terTOrder
        end local 15 // short terSOrder
        end local 14 // short secTOrder
        end local 13 // short secSOrder
        end local 12 // int pTOrder
        end local 11 // int pSOrder
        76: .line 400
            goto 22
        77: .line 510
      StackMap locals: java.text.RuleBasedCollator java.lang.String java.lang.String int int int int int int int int
      StackMap stack:
            iload 4 /* sOrder */
            iconst_m1
            if_icmpeq 86
        78: .line 515
      StackMap locals:
      StackMap stack:
            iload 4 /* sOrder */
            invokestatic java.text.CollationElementIterator.primaryOrder:(I)I
            ifeq 80
        79: .line 518
            iconst_1
            ireturn
        80: .line 520
      StackMap locals:
      StackMap stack:
            iload 4 /* sOrder */
            invokestatic java.text.CollationElementIterator.secondaryOrder:(I)S
            ifeq 84
        81: .line 522
            iload 7 /* checkSecTer */
            ifeq 84
        82: .line 523
            iconst_1
            istore 3 /* result */
        83: .line 524
            iconst_0
            istore 7 /* checkSecTer */
        84: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
            invokevirtual java.text.CollationElementIterator.next:()I
            dup
            istore 4 /* sOrder */
            iconst_m1
            if_icmpne 78
        85: .line 528
            goto 94
        86: .line 529
      StackMap locals:
      StackMap stack:
            iload 5 /* tOrder */
            iconst_m1
            if_icmpeq 94
        87: .line 532
      StackMap locals:
      StackMap stack:
            iload 5 /* tOrder */
            invokestatic java.text.CollationElementIterator.primaryOrder:(I)I
            ifeq 89
        88: .line 535
            iconst_m1
            ireturn
        89: .line 536
      StackMap locals:
      StackMap stack:
            iload 5 /* tOrder */
            invokestatic java.text.CollationElementIterator.secondaryOrder:(I)S
            ifeq 93
        90: .line 538
            iload 7 /* checkSecTer */
            ifeq 93
        91: .line 539
            iconst_m1
            istore 3 /* result */
        92: .line 540
            iconst_0
            istore 7 /* checkSecTer */
        93: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
            invokevirtual java.text.CollationElementIterator.next:()I
            dup
            istore 5 /* tOrder */
            iconst_m1
            if_icmpne 87
        94: .line 548
      StackMap locals:
      StackMap stack:
            iload 3 /* result */
            ifne 106
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getStrength:()I
            iconst_3
            if_icmpne 106
        95: .line 549
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getDecomposition:()I
            istore 11 /* mode */
        start local 11 // int mode
        96: .line 551
            iload 11 /* mode */
            iconst_1
            if_icmpne 99
        97: .line 552
            getstatic java.text.Normalizer$Form.NFD:Ljava/text/Normalizer$Form;
            astore 12 /* form */
        start local 12 // java.text.Normalizer$Form form
        98: .line 553
            goto 103
        end local 12 // java.text.Normalizer$Form form
      StackMap locals: int
      StackMap stack:
        99: iload 11 /* mode */
            iconst_2
            if_icmpne 102
       100: .line 554
            getstatic java.text.Normalizer$Form.NFKD:Ljava/text/Normalizer$Form;
            astore 12 /* form */
        start local 12 // java.text.Normalizer$Form form
       101: .line 555
            goto 103
        end local 12 // java.text.Normalizer$Form form
       102: .line 556
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            aload 2 /* target */
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        start local 12 // java.text.Normalizer$Form form
       103: .line 559
      StackMap locals: java.text.Normalizer$Form
      StackMap stack:
            aload 1 /* source */
            aload 12 /* form */
            invokestatic java.text.Normalizer.normalize:(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;
            astore 13 /* sourceDecomposition */
        start local 13 // java.lang.String sourceDecomposition
       104: .line 560
            aload 2 /* target */
            aload 12 /* form */
            invokestatic java.text.Normalizer.normalize:(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;
            astore 14 /* targetDecomposition */
        start local 14 // java.lang.String targetDecomposition
       105: .line 561
            aload 13 /* sourceDecomposition */
            aload 14 /* targetDecomposition */
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 14 // java.lang.String targetDecomposition
        end local 13 // java.lang.String sourceDecomposition
        end local 12 // java.text.Normalizer$Form form
        end local 11 // int mode
       106: .line 563
      StackMap locals:
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 10 // boolean gett
        end local 9 // boolean gets
        end local 8 // boolean checkTertiary
        end local 7 // boolean checkSecTer
        end local 6 // boolean initialCheckSecTer
        end local 5 // int tOrder
        end local 4 // int sOrder
        end local 3 // int result
        end local 2 // java.lang.String target
        end local 1 // java.lang.String source
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  107     0                 this  Ljava/text/RuleBasedCollator;
            0  107     1               source  Ljava/lang/String;
            0  107     2               target  Ljava/lang/String;
            3  107     3               result  I
           12  107     4               sOrder  I
           13  107     5               tOrder  I
           16  107     6   initialCheckSecTer  Z
           17  107     7          checkSecTer  Z
           20  107     8        checkTertiary  Z
           21  107     9                 gets  Z
           22  107    10                 gett  Z
           30   76    11              pSOrder  I
           31   76    12              pTOrder  I
           61   76    13            secSOrder  S
           62   76    14            secTOrder  S
           70   76    15            terSOrder  S
           71   76    16            terTOrder  S
           96  106    11                 mode  I
           98   99    12                 form  Ljava/text/Normalizer$Form;
          101  102    12                 form  Ljava/text/Normalizer$Form;
          103  106    12                 form  Ljava/text/Normalizer$Form;
          104  106    13  sourceDecomposition  Ljava/lang/String;
          105  106    14  targetDecomposition  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      source  
      target  

  public synchronized java.text.CollationKey getCollationKey(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/text/CollationKey;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.lang.String source
         0: .line 603
            aload 1 /* source */
            ifnonnull 2
         1: .line 604
            aconst_null
            areturn
         2: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            ifnonnull 7
         3: .line 607
            aload 0 /* this */
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            putfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
         4: .line 608
            aload 0 /* this */
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            putfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
         5: .line 609
            aload 0 /* this */
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            putfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
         6: .line 610
            goto 10
         7: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            iconst_0
            invokevirtual java.lang.StringBuffer.setLength:(I)V
         8: .line 612
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            iconst_0
            invokevirtual java.lang.StringBuffer.setLength:(I)V
         9: .line 613
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
            iconst_0
            invokevirtual java.lang.StringBuffer.setLength:(I)V
        10: .line 615
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* order */
        start local 2 // int order
        11: .line 616
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getStrength:()I
            iconst_1
            if_icmplt 12
            iconst_1
            goto 13
      StackMap locals: int
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 3 /* compareSec */
        start local 3 // boolean compareSec
        14: .line 617
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getStrength:()I
            iconst_2
            if_icmplt 15
            iconst_1
            goto 16
      StackMap locals: int
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 4 /* compareTer */
        start local 4 // boolean compareTer
        17: .line 618
            iconst_m1
            istore 5 /* secOrder */
        start local 5 // int secOrder
        18: .line 619
            iconst_m1
            istore 6 /* terOrder */
        start local 6 // int terOrder
        19: .line 620
            iconst_0
            istore 7 /* preSecIgnore */
        start local 7 // int preSecIgnore
        20: .line 622
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
            ifnonnull 23
        21: .line 623
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual java.text.RuleBasedCollator.getCollationElementIterator:(Ljava/lang/String;)Ljava/text/CollationElementIterator;
            putfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
        22: .line 624
            goto 47
        23: .line 625
      StackMap locals: java.text.RuleBasedCollator java.lang.String int int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
            aload 1 /* source */
            invokevirtual java.text.CollationElementIterator.setText:(Ljava/lang/String;)V
        24: .line 629
            goto 47
        25: .line 632
      StackMap locals:
      StackMap stack:
            iload 2 /* order */
            invokestatic java.text.CollationElementIterator.secondaryOrder:(I)S
            istore 5 /* secOrder */
        26: .line 633
            iload 2 /* order */
            invokestatic java.text.CollationElementIterator.tertiaryOrder:(I)S
            istore 6 /* terOrder */
        27: .line 634
            iload 2 /* order */
            invokestatic java.text.CollationElementIterator.isIgnorable:(I)Z
            ifne 39
        28: .line 636
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            iload 2 /* order */
            invokestatic java.text.CollationElementIterator.primaryOrder:(I)I
        29: .line 637
            iconst_1
            iadd
            i2c
        30: .line 636
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        31: .line 639
            iload 3 /* compareSec */
            ifeq 36
        32: .line 644
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            invokevirtual java.text.RBCollationTables.isFrenchSec:()Z
            ifeq 34
            iload 7 /* preSecIgnore */
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            if_icmpge 34
        33: .line 650
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            iload 7 /* preSecIgnore */
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            invokestatic java.text.RBCollationTables.reverse:(Ljava/lang/StringBuffer;II)V
        34: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            iload 5 /* secOrder */
            iconst_1
            iadd
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        35: .line 655
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            istore 7 /* preSecIgnore */
        36: .line 657
      StackMap locals:
      StackMap stack:
            iload 4 /* compareTer */
            ifeq 47
        37: .line 658
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
            iload 6 /* terOrder */
            iconst_1
            iadd
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        38: .line 660
            goto 47
        39: .line 663
      StackMap locals:
      StackMap stack:
            iload 3 /* compareSec */
            ifeq 43
            iload 5 /* secOrder */
            ifeq 43
        40: .line 664
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
        41: .line 665
            iload 5 /* secOrder */
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            invokevirtual java.text.RBCollationTables.getMaxSecOrder:()S
            iadd
            iconst_1
            iadd
            i2c
        42: .line 664
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        43: .line 666
      StackMap locals:
      StackMap stack:
            iload 4 /* compareTer */
            ifeq 47
            iload 6 /* terOrder */
            ifeq 47
        44: .line 667
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
        45: .line 668
            iload 6 /* terOrder */
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            invokevirtual java.text.RBCollationTables.getMaxTerOrder:()S
            iadd
            iconst_1
            iadd
            i2c
        46: .line 667
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        47: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
            invokevirtual java.text.CollationElementIterator.next:()I
            dup
            istore 2 /* order */
        48: .line 630
            iconst_m1
        49: .line 629
            if_icmpne 25
        50: .line 671
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            invokevirtual java.text.RBCollationTables.isFrenchSec:()Z
            ifeq 54
        51: .line 673
            iload 7 /* preSecIgnore */
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            if_icmpge 53
        52: .line 676
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            iload 7 /* preSecIgnore */
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            invokestatic java.text.RBCollationTables.reverse:(Ljava/lang/StringBuffer;II)V
        53: .line 679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            iconst_0
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            invokestatic java.text.RBCollationTables.reverse:(Ljava/lang/StringBuffer;II)V
        54: .line 681
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            iconst_0
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        55: .line 682
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            iconst_0
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        56: .line 683
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        57: .line 684
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        58: .line 686
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getStrength:()I
            iconst_3
            if_icmpne 68
        59: .line 687
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            iconst_0
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        60: .line 688
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getDecomposition:()I
            istore 8 /* mode */
        start local 8 // int mode
        61: .line 689
            iload 8 /* mode */
            iconst_1
            if_icmpne 64
        62: .line 690
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            aload 1 /* source */
            getstatic java.text.Normalizer$Form.NFD:Ljava/text/Normalizer$Form;
            invokestatic java.text.Normalizer.normalize:(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        63: .line 691
            goto 68
      StackMap locals: int
      StackMap stack:
        64: iload 8 /* mode */
            iconst_2
            if_icmpne 67
        65: .line 692
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            aload 1 /* source */
            getstatic java.text.Normalizer$Form.NFKD:Ljava/text/Normalizer$Form;
            invokestatic java.text.Normalizer.normalize:(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        66: .line 693
            goto 68
        67: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            aload 1 /* source */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 8 // int mode
        68: .line 697
      StackMap locals:
      StackMap stack:
            new java.text.RuleBasedCollationKey
            dup
            aload 1 /* source */
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokespecial java.text.RuleBasedCollationKey.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 7 // int preSecIgnore
        end local 6 // int terOrder
        end local 5 // int secOrder
        end local 4 // boolean compareTer
        end local 3 // boolean compareSec
        end local 2 // int order
        end local 1 // java.lang.String source
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   69     0          this  Ljava/text/RuleBasedCollator;
            0   69     1        source  Ljava/lang/String;
           11   69     2         order  I
           14   69     3    compareSec  Z
           17   69     4    compareTer  Z
           18   69     5      secOrder  I
           19   69     6      terOrder  I
           20   69     7  preSecIgnore  I
           61   68     8          mode  I
    MethodParameters:
        Name  Flags
      source  

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.text.RuleBasedCollator this
         0: .line 707
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/text/RuleBasedCollator;
            if_acmpne 2
         1: .line 708
            new java.text.RuleBasedCollator
            dup
            aload 0 /* this */
            invokespecial java.text.RuleBasedCollator.<init>:(Ljava/text/RuleBasedCollator;)V
            areturn
         2: .line 711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.text.Collator.clone:()Ljava/lang/Object;
            checkcast java.text.RuleBasedCollator
            astore 1 /* result */
        start local 1 // java.text.RuleBasedCollator result
         3: .line 712
            aload 1 /* result */
            aconst_null
            putfield java.text.RuleBasedCollator.primResult:Ljava/lang/StringBuffer;
         4: .line 713
            aload 1 /* result */
            aconst_null
            putfield java.text.RuleBasedCollator.secResult:Ljava/lang/StringBuffer;
         5: .line 714
            aload 1 /* result */
            aconst_null
            putfield java.text.RuleBasedCollator.terResult:Ljava/lang/StringBuffer;
         6: .line 715
            aload 1 /* result */
            aconst_null
            putfield java.text.RuleBasedCollator.sourceCursor:Ljava/text/CollationElementIterator;
         7: .line 716
            aload 1 /* result */
            aconst_null
            putfield java.text.RuleBasedCollator.targetCursor:Ljava/text/CollationElementIterator;
         8: .line 717
            aload 1 /* result */
            areturn
        end local 1 // java.text.RuleBasedCollator result
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/text/RuleBasedCollator;
            3    9     1  result  Ljava/text/RuleBasedCollator;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.text.RuleBasedCollator this
        start local 1 // java.lang.Object obj
         0: .line 728
            aload 1 /* obj */
            ifnonnull 1
            iconst_0
            ireturn
         1: .line 729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            invokespecial java.text.Collator.equals:(Ljava/lang/Object;)Z
            ifne 2
            iconst_0
            ireturn
         2: .line 730
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.text.RuleBasedCollator
            astore 2 /* other */
        start local 2 // java.text.RuleBasedCollator other
         3: .line 732
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getRules:()Ljava/lang/String;
            aload 2 /* other */
            invokevirtual java.text.RuleBasedCollator.getRules:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.text.RuleBasedCollator other
        end local 1 // java.lang.Object obj
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljava/text/RuleBasedCollator;
            0    4     1    obj  Ljava/lang/Object;
            3    4     2  other  Ljava/text/RuleBasedCollator;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.text.RuleBasedCollator this
         0: .line 739
            aload 0 /* this */
            invokevirtual java.text.RuleBasedCollator.getRules:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/text/RuleBasedCollator;

  java.text.RBCollationTables getTables();
    descriptor: ()Ljava/text/RBCollationTables;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.text.RuleBasedCollator this
         0: .line 746
            aload 0 /* this */
            getfield java.text.RuleBasedCollator.tables:Ljava/text/RBCollationTables;
            areturn
        end local 0 // java.text.RuleBasedCollator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/text/RuleBasedCollator;
}
SourceFile: "RuleBasedCollator.java"
InnerClasses:
  public final Form = java.text.Normalizer$Form of java.text.Normalizer