class java.util.regex.Pattern$BnM extends java.util.regex.Pattern$Node
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.util.regex.Pattern$BnM
  super_class: java.util.regex.Pattern$Node
{
  int[] buffer;
    descriptor: [I
    flags: (0x0000) 

  int[] lastOcc;
    descriptor: [I
    flags: (0x0000) 

  int[] optoSft;
    descriptor: [I
    flags: (0x0000) 

  static java.util.regex.Pattern$Node optimize(java.util.regex.Pattern$Node);
    descriptor: (Ljava/util/regex/Pattern$Node;)Ljava/util/regex/Pattern$Node;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // java.util.regex.Pattern$Node node
         0: .line 5526
            aload 0 /* node */
            instanceof java.util.regex.Pattern$Slice
            ifne 2
         1: .line 5527
            aload 0 /* node */
            areturn
         2: .line 5530
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            checkcast java.util.regex.Pattern$Slice
            getfield java.util.regex.Pattern$Slice.buffer:[I
            astore 1 /* src */
        start local 1 // int[] src
         3: .line 5531
            aload 1 /* src */
            arraylength
            istore 2 /* patternLength */
        start local 2 // int patternLength
         4: .line 5536
            iload 2 /* patternLength */
            iconst_4
            if_icmpge 6
         5: .line 5537
            aload 0 /* node */
            areturn
         6: .line 5540
      StackMap locals: int[] int
      StackMap stack:
            sipush 128
            newarray 10
            astore 5 /* lastOcc */
        start local 5 // int[] lastOcc
         7: .line 5541
            iload 2 /* patternLength */
            newarray 10
            astore 6 /* optoSft */
        start local 6 // int[] optoSft
         8: .line 5545
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 12
        10: .line 5546
      StackMap locals: java.util.regex.Pattern$Node int[] int int top int[] int[]
      StackMap stack:
            aload 5 /* lastOcc */
            aload 1 /* src */
            iload 3 /* i */
            iaload
            bipush 127
            iand
            iload 3 /* i */
            iconst_1
            iadd
            iastore
        11: .line 5545
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            iload 2 /* patternLength */
            if_icmplt 10
        13: .line 5550
            iload 2 /* patternLength */
            istore 3 /* i */
            goto 24
        14: .line 5552
      StackMap locals:
      StackMap stack:
            iload 2 /* patternLength */
            iconst_1
            isub
            istore 4 /* j */
        start local 4 // int j
        15: goto 19
        16: .line 5554
      StackMap locals: java.util.regex.Pattern$Node int[] int int int int[] int[]
      StackMap stack:
            aload 1 /* src */
            iload 4 /* j */
            iaload
            aload 1 /* src */
            iload 4 /* j */
            iload 3 /* i */
            isub
            iaload
            if_icmpne 23
        17: .line 5556
            aload 6 /* optoSft */
            iload 4 /* j */
            iconst_1
            isub
            iload 3 /* i */
            iastore
        18: .line 5552
            iinc 4 /* j */ -1
      StackMap locals:
      StackMap stack:
        19: iload 4 /* j */
            iload 3 /* i */
            if_icmpge 16
        20: .line 5566
            goto 22
        21: .line 5567
      StackMap locals:
      StackMap stack:
            aload 6 /* optoSft */
            iinc 4 /* j */ -1
            iload 4 /* j */
            iload 3 /* i */
            iastore
        22: .line 5566
      StackMap locals:
      StackMap stack:
            iload 4 /* j */
            ifgt 21
        23: .line 5550
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
        end local 4 // int j
      StackMap locals: java.util.regex.Pattern$Node int[] int int top int[] int[]
      StackMap stack:
        24: iload 3 /* i */
            ifgt 14
        25: .line 5571
            aload 6 /* optoSft */
            iload 2 /* patternLength */
            iconst_1
            isub
            iconst_1
            iastore
        26: .line 5572
            aload 0 /* node */
            instanceof java.util.regex.Pattern$SliceS
            ifeq 28
        27: .line 5573
            new java.util.regex.Pattern$BnMS
            dup
            aload 1 /* src */
            aload 5 /* lastOcc */
            aload 6 /* optoSft */
            aload 0 /* node */
            getfield java.util.regex.Pattern$Node.next:Ljava/util/regex/Pattern$Node;
            invokespecial java.util.regex.Pattern$BnMS.<init>:([I[I[ILjava/util/regex/Pattern$Node;)V
            areturn
        28: .line 5574
      StackMap locals:
      StackMap stack:
            new java.util.regex.Pattern$BnM
            dup
            aload 1 /* src */
            aload 5 /* lastOcc */
            aload 6 /* optoSft */
            aload 0 /* node */
            getfield java.util.regex.Pattern$Node.next:Ljava/util/regex/Pattern$Node;
            invokespecial java.util.regex.Pattern$BnM.<init>:([I[I[ILjava/util/regex/Pattern$Node;)V
            areturn
        end local 6 // int[] optoSft
        end local 5 // int[] lastOcc
        end local 3 // int i
        end local 2 // int patternLength
        end local 1 // int[] src
        end local 0 // java.util.regex.Pattern$Node node
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0           node  Ljava/util/regex/Pattern$Node;
            3   29     1            src  [I
            4   29     2  patternLength  I
            9   29     3              i  I
           15   24     4              j  I
            7   29     5        lastOcc  [I
            8   29     6        optoSft  [I
    MethodParameters:
      Name  Flags
      node  

  void <init>(int[], int[], int[], java.util.regex.Pattern$Node);
    descriptor: ([I[I[ILjava/util/regex/Pattern$Node;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // java.util.regex.Pattern$BnM this
        start local 1 // int[] src
        start local 2 // int[] lastOcc
        start local 3 // int[] optoSft
        start local 4 // java.util.regex.Pattern$Node next
         0: .line 5576
            aload 0 /* this */
            invokespecial java.util.regex.Pattern$Node.<init>:()V
         1: .line 5577
            aload 0 /* this */
            aload 1 /* src */
            putfield java.util.regex.Pattern$BnM.buffer:[I
         2: .line 5578
            aload 0 /* this */
            aload 2 /* lastOcc */
            putfield java.util.regex.Pattern$BnM.lastOcc:[I
         3: .line 5579
            aload 0 /* this */
            aload 3 /* optoSft */
            putfield java.util.regex.Pattern$BnM.optoSft:[I
         4: .line 5580
            aload 0 /* this */
            aload 4 /* next */
            putfield java.util.regex.Pattern$BnM.next:Ljava/util/regex/Pattern$Node;
         5: .line 5581
            return
        end local 4 // java.util.regex.Pattern$Node next
        end local 3 // int[] optoSft
        end local 2 // int[] lastOcc
        end local 1 // int[] src
        end local 0 // java.util.regex.Pattern$BnM this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/util/regex/Pattern$BnM;
            0    6     1      src  [I
            0    6     2  lastOcc  [I
            0    6     3  optoSft  [I
            0    6     4     next  Ljava/util/regex/Pattern$Node;
    MethodParameters:
         Name  Flags
      src      
      lastOcc  
      optoSft  
      next     

  boolean match(java.util.regex.Matcher, int, java.lang.CharSequence);
    descriptor: (Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // java.util.regex.Pattern$BnM this
        start local 1 // java.util.regex.Matcher matcher
        start local 2 // int i
        start local 3 // java.lang.CharSequence seq
         0: .line 5583
            aload 0 /* this */
            getfield java.util.regex.Pattern$BnM.buffer:[I
            astore 4 /* src */
        start local 4 // int[] src
         1: .line 5584
            aload 4 /* src */
            arraylength
            istore 5 /* patternLength */
        start local 5 // int patternLength
         2: .line 5585
            aload 1 /* matcher */
            getfield java.util.regex.Matcher.to:I
            iload 5 /* patternLength */
            isub
            istore 6 /* last */
        start local 6 // int last
         3: .line 5588
            goto 20
         4: .line 5590
      StackMap locals: int[] int int
      StackMap stack:
            iload 5 /* patternLength */
            iconst_1
            isub
            istore 7 /* j */
        start local 7 // int j
         5: goto 11
         6: .line 5591
      StackMap locals: int
      StackMap stack:
            aload 3 /* seq */
            iload 2 /* i */
            iload 7 /* j */
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 8 /* ch */
        start local 8 // int ch
         7: .line 5592
            iload 8 /* ch */
            aload 4 /* src */
            iload 7 /* j */
            iaload
            if_icmpeq 10
         8: .line 5595
            iload 2 /* i */
            iload 7 /* j */
            iconst_1
            iadd
            aload 0 /* this */
            getfield java.util.regex.Pattern$BnM.lastOcc:[I
            iload 8 /* ch */
            bipush 127
            iand
            iaload
            isub
            aload 0 /* this */
            getfield java.util.regex.Pattern$BnM.optoSft:[I
            iload 7 /* j */
            iaload
            invokestatic java.lang.Math.max:(II)I
            iadd
            istore 2 /* i */
         9: .line 5596
            goto 20
        end local 8 // int ch
        10: .line 5590
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ -1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* j */
            ifge 6
        end local 7 // int j
        12: .line 5600
            aload 1 /* matcher */
            iload 2 /* i */
            putfield java.util.regex.Matcher.first:I
        13: .line 5601
            aload 0 /* this */
            getfield java.util.regex.Pattern$BnM.next:Ljava/util/regex/Pattern$Node;
            aload 1 /* matcher */
            iload 2 /* i */
            iload 5 /* patternLength */
            iadd
            aload 3 /* seq */
            invokevirtual java.util.regex.Pattern$Node.match:(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z
            istore 7 /* ret */
        start local 7 // boolean ret
        14: .line 5602
            iload 7 /* ret */
            ifeq 19
        15: .line 5603
            aload 1 /* matcher */
            iload 2 /* i */
            putfield java.util.regex.Matcher.first:I
        16: .line 5604
            aload 1 /* matcher */
            getfield java.util.regex.Matcher.groups:[I
            iconst_0
            aload 1 /* matcher */
            getfield java.util.regex.Matcher.first:I
            iastore
        17: .line 5605
            aload 1 /* matcher */
            getfield java.util.regex.Matcher.groups:[I
            iconst_1
            aload 1 /* matcher */
            getfield java.util.regex.Matcher.last:I
            iastore
        18: .line 5606
            iconst_1
            ireturn
        19: .line 5608
      StackMap locals: java.util.regex.Pattern$BnM java.util.regex.Matcher int java.lang.CharSequence int[] int int int
      StackMap stack:
            iinc 2 /* i */ 1
        end local 7 // boolean ret
        20: .line 5588
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 6 /* last */
            if_icmple 4
        21: .line 5613
            aload 1 /* matcher */
            iconst_1
            putfield java.util.regex.Matcher.hitEnd:Z
        22: .line 5614
            iconst_0
            ireturn
        end local 6 // int last
        end local 5 // int patternLength
        end local 4 // int[] src
        end local 3 // java.lang.CharSequence seq
        end local 2 // int i
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // java.util.regex.Pattern$BnM this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Ljava/util/regex/Pattern$BnM;
            0   23     1        matcher  Ljava/util/regex/Matcher;
            0   23     2              i  I
            0   23     3            seq  Ljava/lang/CharSequence;
            1   23     4            src  [I
            2   23     5  patternLength  I
            3   23     6           last  I
            5   12     7              j  I
            7   10     8             ch  I
           14   20     7            ret  Z
    MethodParameters:
         Name  Flags
      matcher  
      i        
      seq      

  boolean study(java.util.regex.Pattern$TreeInfo);
    descriptor: (Ljava/util/regex/Pattern$TreeInfo;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.regex.Pattern$BnM this
        start local 1 // java.util.regex.Pattern$TreeInfo info
         0: .line 5617
            aload 1 /* info */
            dup
            getfield java.util.regex.Pattern$TreeInfo.minLength:I
            aload 0 /* this */
            getfield java.util.regex.Pattern$BnM.buffer:[I
            arraylength
            iadd
            putfield java.util.regex.Pattern$TreeInfo.minLength:I
         1: .line 5618
            aload 1 /* info */
            iconst_0
            putfield java.util.regex.Pattern$TreeInfo.maxValid:Z
         2: .line 5619
            aload 0 /* this */
            getfield java.util.regex.Pattern$BnM.next:Ljava/util/regex/Pattern$Node;
            aload 1 /* info */
            invokevirtual java.util.regex.Pattern$Node.study:(Ljava/util/regex/Pattern$TreeInfo;)Z
            ireturn
        end local 1 // java.util.regex.Pattern$TreeInfo info
        end local 0 // java.util.regex.Pattern$BnM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/regex/Pattern$BnM;
            0    3     1  info  Ljava/util/regex/Pattern$TreeInfo;
    MethodParameters:
      Name  Flags
      info  
}
SourceFile: "Pattern.java"
NestHost: java.util.regex.Pattern
InnerClasses:
  BnM = java.util.regex.Pattern$BnM of java.util.regex.Pattern
  final BnMS = java.util.regex.Pattern$BnMS of java.util.regex.Pattern
  Node = java.util.regex.Pattern$Node of java.util.regex.Pattern
  Slice = java.util.regex.Pattern$Slice of java.util.regex.Pattern
  final SliceS = java.util.regex.Pattern$SliceS of java.util.regex.Pattern
  final TreeInfo = java.util.regex.Pattern$TreeInfo of java.util.regex.Pattern