public final class org.apache.lucene.index.SegmentInfos implements java.lang.Cloneable, java.lang.Iterable<org.apache.lucene.index.SegmentCommitInfo>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.index.SegmentInfos
  super_class: java.lang.Object
{
  public static final int VERSION_70;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int VERSION_72;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int VERSION_74;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  public static final int VERSION_86;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

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

  public long counter;
    descriptor: J
    flags: (0x0001) ACC_PUBLIC

  public long version;
    descriptor: J
    flags: (0x0001) ACC_PUBLIC

  private long generation;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long lastGeneration;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  public java.util.Map<java.lang.String, java.lang.String> userData;
    descriptor: Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private java.util.List<org.apache.lucene.index.SegmentCommitInfo> segments;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/apache/lucene/index/SegmentCommitInfo;>;

  private static java.io.PrintStream infoStream;
    descriptor: Ljava/io/PrintStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private byte[] id;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private org.apache.lucene.util.Version luceneVersion;
    descriptor: Lorg/apache/lucene/util/Version;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.lucene.util.Version minSegmentLuceneVersion;
    descriptor: Lorg/apache/lucene/util/Version;
    flags: (0x0002) ACC_PRIVATE

  private final int indexCreatedVersionMajor;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  boolean pendingCommit;
    descriptor: Z
    flags: (0x0000) 

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 119
            ldc Lorg/apache/lucene/index/SegmentInfos;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.index.SegmentInfos.$assertionsDisabled:Z
         3: .line 151
            aconst_null
            putstatic org.apache.lucene.index.SegmentInfos.infoStream:Ljava/io/PrintStream;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // int indexCreatedVersionMajor
         0: .line 167
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 143
            aload 0 /* this */
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            putfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
         2: .line 145
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
         3: .line 168
            iload 1 /* indexCreatedVersionMajor */
            getstatic org.apache.lucene.util.Version.LATEST:Lorg/apache/lucene/util/Version;
            getfield org.apache.lucene.util.Version.major:I
            if_icmple 5
         4: .line 169
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "indexCreatedVersionMajor is in the future: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* indexCreatedVersionMajor */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 171
      StackMap locals: org.apache.lucene.index.SegmentInfos int
      StackMap stack:
            iload 1 /* indexCreatedVersionMajor */
            bipush 6
            if_icmpge 7
         6: .line 172
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "indexCreatedVersionMajor must be >= 6, got: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* indexCreatedVersionMajor */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* indexCreatedVersionMajor */
            putfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
         8: .line 175
            return
        end local 1 // int indexCreatedVersionMajor
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    9     0                      this  Lorg/apache/lucene/index/SegmentInfos;
            0    9     1  indexCreatedVersionMajor  I
    MethodParameters:
                          Name  Flags
      indexCreatedVersionMajor  

  public org.apache.lucene.index.SegmentCommitInfo info(int);
    descriptor: (I)Lorg/apache/lucene/index/SegmentCommitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // int i
         0: .line 180
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            areturn
        end local 1 // int i
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public static long getLastCommitGeneration(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.lang.String[] files
         0: .line 190
            ldc -1
            lstore 1 /* max */
        start local 1 // long max
         1: .line 191
            aload 0 /* files */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: java.lang.String[] long top int int java.lang.String[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* file */
        start local 3 // java.lang.String file
         3: .line 192
            aload 3 /* file */
            ldc "segments"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 3 /* file */
            ldc "segments.gen"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         4: .line 193
            aload 3 /* file */
            invokestatic org.apache.lucene.index.SegmentInfos.generationFromSegmentsFileName:(Ljava/lang/String;)J
            lstore 7 /* gen */
        start local 7 // long gen
         5: .line 194
            lload 7 /* gen */
            lload 1 /* max */
            lcmp
            ifle 7
         6: .line 195
            lload 7 /* gen */
            lstore 1 /* max */
        end local 7 // long gen
        end local 3 // java.lang.String file
         7: .line 191
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 2
         9: .line 199
            lload 1 /* max */
            lreturn
        end local 1 // long max
        end local 0 // java.lang.String[] files
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  files  [Ljava/lang/String;
            1   10     1    max  J
            3    7     3   file  Ljava/lang/String;
            5    7     7    gen  J
    MethodParameters:
       Name  Flags
      files  

  public static long getLastCommitGeneration(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.store.Directory directory
         0: .line 209
            aload 0 /* directory */
            invokevirtual org.apache.lucene.store.Directory.listAll:()[Ljava/lang/String;
            invokestatic org.apache.lucene.index.SegmentInfos.getLastCommitGeneration:([Ljava/lang/String;)J
            lreturn
        end local 0 // org.apache.lucene.store.Directory directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  directory  Lorg/apache/lucene/store/Directory;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  

  public static java.lang.String getLastCommitSegmentsFileName(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String[] files
         0: .line 220
            ldc "segments"
         1: .line 221
            ldc ""
         2: .line 222
            aload 0 /* files */
            invokestatic org.apache.lucene.index.SegmentInfos.getLastCommitGeneration:([Ljava/lang/String;)J
         3: .line 220
            invokestatic org.apache.lucene.index.IndexFileNames.fileNameFromGeneration:(Ljava/lang/String;Ljava/lang/String;J)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String[] files
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  files  [Ljava/lang/String;
    MethodParameters:
       Name  Flags
      files  

  public static java.lang.String getLastCommitSegmentsFileName(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.lucene.store.Directory directory
         0: .line 232
            ldc "segments"
         1: .line 233
            ldc ""
         2: .line 234
            aload 0 /* directory */
            invokestatic org.apache.lucene.index.SegmentInfos.getLastCommitGeneration:(Lorg/apache/lucene/store/Directory;)J
         3: .line 232
            invokestatic org.apache.lucene.index.IndexFileNames.fileNameFromGeneration:(Ljava/lang/String;Ljava/lang/String;J)Ljava/lang/String;
            areturn
        end local 0 // org.apache.lucene.store.Directory directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  directory  Lorg/apache/lucene/store/Directory;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  

  public java.lang.String getSegmentsFileName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 241
            ldc "segments"
         1: .line 242
            ldc ""
         2: .line 243
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
         3: .line 241
            invokestatic org.apache.lucene.index.IndexFileNames.fileNameFromGeneration:(Ljava/lang/String;Ljava/lang/String;J)Ljava/lang/String;
            areturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public static long generationFromSegmentsFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String fileName
         0: .line 251
            aload 0 /* fileName */
            ldc "segments"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 252
            lconst_0
            lreturn
         2: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* fileName */
            ldc "segments"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         3: .line 254
            aload 0 /* fileName */
            iconst_1
            ldc "segments"
            invokevirtual java.lang.String.length:()I
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
         4: .line 255
            bipush 36
         5: .line 254
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;I)J
            lreturn
         6: .line 257
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "fileName \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* fileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" is not a segments file"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  fileName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      fileName  

  private long getNextPendingGeneration();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 263
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            ldc -1
            lcmp
            ifne 2
         1: .line 264
            lconst_1
            lreturn
         2: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            lconst_1
            ladd
            lreturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public byte[] getId();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 273
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.id:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            areturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public static final org.apache.lucene.index.SegmentInfos readCommit(org.apache.lucene.store.Directory, java.lang.String);
    descriptor: (Lorg/apache/lucene/store/Directory;Ljava/lang/String;)Lorg/apache/lucene/index/SegmentInfos;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.apache.lucene.store.Directory directory
        start local 1 // java.lang.String segmentFileName
         0: .line 287
            aload 1 /* segmentFileName */
            invokestatic org.apache.lucene.index.SegmentInfos.generationFromSegmentsFileName:(Ljava/lang/String;)J
            lstore 2 /* generation */
        start local 2 // long generation
         1: .line 289
            aconst_null
            astore 4
            aconst_null
            astore 5
         2: aload 0 /* directory */
            aload 1 /* segmentFileName */
            getstatic org.apache.lucene.store.IOContext.READ:Lorg/apache/lucene/store/IOContext;
            invokevirtual org.apache.lucene.store.Directory.openChecksumInput:(Ljava/lang/String;Lorg/apache/lucene/store/IOContext;)Lorg/apache/lucene/store/ChecksumIndexInput;
            astore 6 /* input */
        start local 6 // org.apache.lucene.store.ChecksumIndexInput input
         3: .line 291
            aload 0 /* directory */
            aload 6 /* input */
            lload 2 /* generation */
            invokestatic org.apache.lucene.index.SegmentInfos.readCommit:(Lorg/apache/lucene/store/Directory;Lorg/apache/lucene/store/ChecksumIndexInput;J)Lorg/apache/lucene/index/SegmentInfos;
         4: .line 295
            aload 6 /* input */
            ifnull 5
            aload 6 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.close:()V
         5: .line 291
      StackMap locals: org.apache.lucene.store.Directory java.lang.String long java.lang.Throwable java.lang.Throwable org.apache.lucene.store.ChecksumIndexInput
      StackMap stack: org.apache.lucene.index.SegmentInfos
            areturn
         6: .line 292
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* e */
        start local 7 // java.io.IOException e
         7: .line 293
            new org.apache.lucene.index.CorruptIndexException
            dup
            ldc "Unexpected file read error while reading index."
            aload 6 /* input */
            aload 7 /* e */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.io.IOException e
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
         9: .line 295
            aload 6 /* input */
            ifnull 10
            aload 6 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.close:()V
        end local 6 // org.apache.lucene.store.ChecksumIndexInput input
      StackMap locals:
      StackMap stack:
        10: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 5
            aload 4
            ifnonnull 12
            aload 5
            astore 4
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 4
            aload 5
            if_acmpeq 13
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 4
            athrow
        end local 2 // long generation
        end local 1 // java.lang.String segmentFileName
        end local 0 // org.apache.lucene.store.Directory directory
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0        directory  Lorg/apache/lucene/store/Directory;
            0   14     1  segmentFileName  Ljava/lang/String;
            1   14     2       generation  J
            3   10     6            input  Lorg/apache/lucene/store/ChecksumIndexInput;
            7    8     7                e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       6  Class java.io.EOFException
           3     4       6  Class java.nio.file.NoSuchFileException
           3     4       6  Class java.io.FileNotFoundException
           3     4       8  any
           6     8       8  any
           2     5      11  any
           6    11      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      directory        
      segmentFileName  

  public static final org.apache.lucene.index.SegmentInfos readCommit(org.apache.lucene.store.Directory, org.apache.lucene.store.ChecksumIndexInput, long);
    descriptor: (Lorg/apache/lucene/store/Directory;Lorg/apache/lucene/store/ChecksumIndexInput;J)Lorg/apache/lucene/index/SegmentInfos;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=12, locals=35, args_size=3
        start local 0 // org.apache.lucene.store.Directory directory
        start local 1 // org.apache.lucene.store.ChecksumIndexInput input
        start local 2 // long generation
         0: .line 300
            aconst_null
            astore 4 /* priorE */
        start local 4 // java.lang.Throwable priorE
         1: .line 301
            iconst_m1
            istore 5 /* format */
        start local 5 // int format
         2: .line 305
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readInt:()I
            istore 6 /* magic */
        start local 6 // int magic
         3: .line 306
            iload 6 /* magic */
            ldc 1071082519
            if_icmpeq 5
         4: .line 307
            new org.apache.lucene.index.IndexFormatTooOldException
            dup
            aload 1 /* input */
            iload 6 /* magic */
            ldc 1071082519
            ldc 1071082519
            invokespecial org.apache.lucene.index.IndexFormatTooOldException.<init>:(Lorg/apache/lucene/store/DataInput;III)V
            athrow
         5: .line 309
      StackMap locals: java.lang.Throwable int int
      StackMap stack:
            aload 1 /* input */
            ldc "segments"
            bipush 7
            bipush 10
            invokestatic org.apache.lucene.codecs.CodecUtil.checkHeaderNoMagic:(Lorg/apache/lucene/store/DataInput;Ljava/lang/String;II)I
            istore 5 /* format */
         6: .line 310
            bipush 16
            newarray 8
            astore 7 /* id */
        start local 7 // byte[] id
         7: .line 311
            aload 1 /* input */
            aload 7 /* id */
            iconst_0
            aload 7 /* id */
            arraylength
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readBytes:([BII)V
         8: .line 312
            aload 1 /* input */
            lload 2 /* generation */
            bipush 36
            invokestatic java.lang.Long.toString:(JI)Ljava/lang/String;
            invokestatic org.apache.lucene.codecs.CodecUtil.checkIndexHeaderSuffix:(Lorg/apache/lucene/store/DataInput;Ljava/lang/String;)Ljava/lang/String;
            pop
         9: .line 314
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVInt:()I
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVInt:()I
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVInt:()I
            invokestatic org.apache.lucene.util.Version.fromBits:(III)Lorg/apache/lucene/util/Version;
            astore 8 /* luceneVersion */
        start local 8 // org.apache.lucene.util.Version luceneVersion
        10: .line 315
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVInt:()I
            istore 9 /* indexCreatedVersion */
        start local 9 // int indexCreatedVersion
        11: .line 316
            aload 8 /* luceneVersion */
            getfield org.apache.lucene.util.Version.major:I
            iload 9 /* indexCreatedVersion */
            if_icmpge 15
        12: .line 317
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Creation version ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* indexCreatedVersion */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        13: .line 318
            ldc ".x] can't be greater than the version that wrote the segment infos: ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* luceneVersion */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
        14: .line 317
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        15: .line 321
      StackMap locals: byte[] org.apache.lucene.util.Version int
      StackMap stack:
            iload 9 /* indexCreatedVersion */
            getstatic org.apache.lucene.util.Version.LATEST:Lorg/apache/lucene/util/Version;
            getfield org.apache.lucene.util.Version.major:I
            iconst_1
            isub
            if_icmpge 20
        16: .line 322
            new org.apache.lucene.index.IndexFormatTooOldException
            dup
            aload 1 /* input */
            new java.lang.StringBuilder
            dup
            ldc "This index was initially created with Lucene "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 323
            iload 9 /* indexCreatedVersion */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ".x while the current version is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.apache.lucene.util.Version.LATEST:Lorg/apache/lucene/util/Version;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        18: .line 324
            ldc " and Lucene only supports reading the current and previous major versions."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 322
            invokespecial org.apache.lucene.index.IndexFormatTooOldException.<init>:(Lorg/apache/lucene/store/DataInput;Ljava/lang/String;)V
            athrow
        20: .line 327
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.index.SegmentInfos
            dup
            iload 9 /* indexCreatedVersion */
            invokespecial org.apache.lucene.index.SegmentInfos.<init>:(I)V
            astore 10 /* infos */
        start local 10 // org.apache.lucene.index.SegmentInfos infos
        21: .line 328
            aload 10 /* infos */
            aload 7 /* id */
            putfield org.apache.lucene.index.SegmentInfos.id:[B
        22: .line 329
            aload 10 /* infos */
            lload 2 /* generation */
            putfield org.apache.lucene.index.SegmentInfos.generation:J
        23: .line 330
            aload 10 /* infos */
            lload 2 /* generation */
            putfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
        24: .line 331
            aload 10 /* infos */
            aload 8 /* luceneVersion */
            putfield org.apache.lucene.index.SegmentInfos.luceneVersion:Lorg/apache/lucene/util/Version;
        25: .line 333
            aload 10 /* infos */
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readLong:()J
            putfield org.apache.lucene.index.SegmentInfos.version:J
        26: .line 335
            iload 5 /* format */
            bipush 7
            if_icmple 29
        27: .line 336
            aload 10 /* infos */
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVLong:()J
            putfield org.apache.lucene.index.SegmentInfos.counter:J
        28: .line 337
            goto 30
        29: .line 338
      StackMap locals: org.apache.lucene.index.SegmentInfos
      StackMap stack:
            aload 10 /* infos */
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readInt:()I
            i2l
            putfield org.apache.lucene.index.SegmentInfos.counter:J
        30: .line 340
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readInt:()I
            istore 11 /* numSegments */
        start local 11 // int numSegments
        31: .line 341
            iload 11 /* numSegments */
            ifge 33
        32: .line 342
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid segment count: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* numSegments */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        33: .line 345
      StackMap locals: int
      StackMap stack:
            iload 11 /* numSegments */
            ifle 35
        34: .line 346
            aload 10 /* infos */
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVInt:()I
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVInt:()I
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readVInt:()I
            invokestatic org.apache.lucene.util.Version.fromBits:(III)Lorg/apache/lucene/util/Version;
            putfield org.apache.lucene.index.SegmentInfos.minSegmentLuceneVersion:Lorg/apache/lucene/util/Version;
        35: .line 351
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 12 /* totalDocs */
        start local 12 // long totalDocs
        36: .line 352
            iconst_0
            istore 14 /* seg */
        start local 14 // int seg
        37: goto 92
        38: .line 353
      StackMap locals: long int
      StackMap stack:
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readString:()Ljava/lang/String;
            astore 15 /* segName */
        start local 15 // java.lang.String segName
        39: .line 354
            bipush 16
            newarray 8
            astore 16 /* segmentID */
        start local 16 // byte[] segmentID
        40: .line 355
            aload 1 /* input */
            aload 16 /* segmentID */
            iconst_0
            aload 16 /* segmentID */
            arraylength
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readBytes:([BII)V
        41: .line 356
            aload 1 /* input */
            invokestatic org.apache.lucene.index.SegmentInfos.readCodec:(Lorg/apache/lucene/store/DataInput;)Lorg/apache/lucene/codecs/Codec;
            astore 17 /* codec */
        start local 17 // org.apache.lucene.codecs.Codec codec
        42: .line 357
            aload 17 /* codec */
            invokevirtual org.apache.lucene.codecs.Codec.segmentInfoFormat:()Lorg/apache/lucene/codecs/SegmentInfoFormat;
            aload 0 /* directory */
            aload 15 /* segName */
            aload 16 /* segmentID */
            getstatic org.apache.lucene.store.IOContext.READ:Lorg/apache/lucene/store/IOContext;
            invokevirtual org.apache.lucene.codecs.SegmentInfoFormat.read:(Lorg/apache/lucene/store/Directory;Ljava/lang/String;[BLorg/apache/lucene/store/IOContext;)Lorg/apache/lucene/index/SegmentInfo;
            astore 18 /* info */
        start local 18 // org.apache.lucene.index.SegmentInfo info
        43: .line 358
            aload 18 /* info */
            aload 17 /* codec */
            invokevirtual org.apache.lucene.index.SegmentInfo.setCodec:(Lorg/apache/lucene/codecs/Codec;)V
        44: .line 359
            lload 12 /* totalDocs */
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            i2l
            ladd
            lstore 12 /* totalDocs */
        45: .line 360
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readLong:()J
            lstore 19 /* delGen */
        start local 19 // long delGen
        46: .line 361
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readInt:()I
            istore 21 /* delCount */
        start local 21 // int delCount
        47: .line 362
            iload 21 /* delCount */
            iflt 48
            iload 21 /* delCount */
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            if_icmple 49
        48: .line 363
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int int byte[] org.apache.lucene.util.Version int org.apache.lucene.index.SegmentInfos int long int java.lang.String byte[] org.apache.lucene.codecs.Codec org.apache.lucene.index.SegmentInfo long int
      StackMap stack:
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid deletion count: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 21 /* delCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs maxDoc="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        49: .line 365
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readLong:()J
            lstore 22 /* fieldInfosGen */
        start local 22 // long fieldInfosGen
        50: .line 366
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readLong:()J
            lstore 24 /* dvGen */
        start local 24 // long dvGen
        51: .line 367
            iload 5 /* format */
            bipush 8
            if_icmple 52
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readInt:()I
            goto 53
      StackMap locals: long long
      StackMap stack:
        52: iconst_0
      StackMap locals:
      StackMap stack: int
        53: istore 26 /* softDelCount */
        start local 26 // int softDelCount
        54: .line 368
            iload 26 /* softDelCount */
            iflt 55
            iload 26 /* softDelCount */
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            if_icmple 56
        55: .line 369
      StackMap locals: int
      StackMap stack:
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid deletion count: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 26 /* softDelCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs maxDoc="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        56: .line 371
      StackMap locals:
      StackMap stack:
            iload 26 /* softDelCount */
            iload 21 /* delCount */
            iadd
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            if_icmple 58
        57: .line 372
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid deletion count: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 26 /* softDelCount */
            iload 21 /* delCount */
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs maxDoc="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        58: .line 375
      StackMap locals:
      StackMap stack:
            iload 5 /* format */
            bipush 9
            if_icmple 68
        59: .line 376
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readByte:()B
            istore 28 /* marker */
        start local 28 // byte marker
        60: .line 377
            iload 28 /* marker */
            tableswitch { // 0 - 1
                    0: 64
                    1: 61
              default: 66
          }
        61: .line 379
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int int byte[] org.apache.lucene.util.Version int org.apache.lucene.index.SegmentInfos int long int java.lang.String byte[] org.apache.lucene.codecs.Codec org.apache.lucene.index.SegmentInfo long int long long int top int
      StackMap stack:
            bipush 16
            newarray 8
            astore 27 /* sciId */
        start local 27 // byte[] sciId
        62: .line 380
            aload 1 /* input */
            aload 27 /* sciId */
            iconst_0
            aload 27 /* sciId */
            arraylength
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readBytes:([BII)V
        63: .line 381
            goto 69
        end local 27 // byte[] sciId
        64: .line 383
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 27 /* sciId */
        start local 27 // byte[] sciId
        65: .line 384
            goto 69
        end local 27 // byte[] sciId
        66: .line 386
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid SegmentCommitInfo ID marker: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 28 /* marker */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        end local 28 // byte marker
        start local 27 // byte[] sciId
        67: .line 388
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int int byte[] org.apache.lucene.util.Version int org.apache.lucene.index.SegmentInfos int long int java.lang.String byte[] org.apache.lucene.codecs.Codec org.apache.lucene.index.SegmentInfo long int long long int byte[]
      StackMap stack:
            goto 69
        end local 27 // byte[] sciId
        68: .line 389
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 27 /* sciId */
        start local 27 // byte[] sciId
        69: .line 391
      StackMap locals: byte[]
      StackMap stack:
            new org.apache.lucene.index.SegmentCommitInfo
            dup
            aload 18 /* info */
            iload 21 /* delCount */
            iload 26 /* softDelCount */
            lload 19 /* delGen */
            lload 22 /* fieldInfosGen */
            lload 24 /* dvGen */
            aload 27 /* sciId */
            invokespecial org.apache.lucene.index.SegmentCommitInfo.<init>:(Lorg/apache/lucene/index/SegmentInfo;IIJJJ[B)V
            astore 28 /* siPerCommit */
        start local 28 // org.apache.lucene.index.SegmentCommitInfo siPerCommit
        70: .line 392
            aload 28 /* siPerCommit */
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readSetOfStrings:()Ljava/util/Set;
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.setFieldInfosFiles:(Ljava/util/Set;)V
        71: .line 394
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readInt:()I
            istore 30 /* numDVFields */
        start local 30 // int numDVFields
        72: .line 395
            iload 30 /* numDVFields */
            ifne 75
        73: .line 396
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            astore 29 /* dvUpdateFiles */
        start local 29 // java.util.Map dvUpdateFiles
        74: .line 397
            goto 82
        end local 29 // java.util.Map dvUpdateFiles
        75: .line 398
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int int byte[] org.apache.lucene.util.Version int org.apache.lucene.index.SegmentInfos int long int java.lang.String byte[] org.apache.lucene.codecs.Codec org.apache.lucene.index.SegmentInfo long int long long int byte[] org.apache.lucene.index.SegmentCommitInfo top int
      StackMap stack:
            new java.util.HashMap
            dup
            iload 30 /* numDVFields */
            invokespecial java.util.HashMap.<init>:(I)V
            astore 31 /* map */
        start local 31 // java.util.Map map
        76: .line 399
            iconst_0
            istore 32 /* i */
        start local 32 // int i
        77: goto 80
        78: .line 400
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 31 /* map */
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readInt:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readSetOfStrings:()Ljava/util/Set;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        79: .line 399
            iinc 32 /* i */ 1
      StackMap locals:
      StackMap stack:
        80: iload 32 /* i */
            iload 30 /* numDVFields */
            if_icmplt 78
        end local 32 // int i
        81: .line 402
            aload 31 /* map */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            astore 29 /* dvUpdateFiles */
        end local 31 // java.util.Map map
        start local 29 // java.util.Map dvUpdateFiles
        82: .line 404
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int int byte[] org.apache.lucene.util.Version int org.apache.lucene.index.SegmentInfos int long int java.lang.String byte[] org.apache.lucene.codecs.Codec org.apache.lucene.index.SegmentInfo long int long long int byte[] org.apache.lucene.index.SegmentCommitInfo java.util.Map int
      StackMap stack:
            aload 28 /* siPerCommit */
            aload 29 /* dvUpdateFiles */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.setDocValuesUpdatesFiles:(Ljava/util/Map;)V
        83: .line 405
            aload 10 /* infos */
            aload 28 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentInfos.add:(Lorg/apache/lucene/index/SegmentCommitInfo;)V
        84: .line 407
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.getVersion:()Lorg/apache/lucene/util/Version;
            astore 31 /* segmentVersion */
        start local 31 // org.apache.lucene.util.Version segmentVersion
        85: .line 409
            aload 31 /* segmentVersion */
            aload 10 /* infos */
            getfield org.apache.lucene.index.SegmentInfos.minSegmentLuceneVersion:Lorg/apache/lucene/util/Version;
            invokevirtual org.apache.lucene.util.Version.onOrAfter:(Lorg/apache/lucene/util/Version;)Z
            ifne 87
        86: .line 410
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "segments file recorded minSegmentLuceneVersion="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* infos */
            getfield org.apache.lucene.index.SegmentInfos.minSegmentLuceneVersion:Lorg/apache/lucene/util/Version;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " but segment="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 18 /* info */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " has older version="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 31 /* segmentVersion */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        87: .line 413
      StackMap locals: org.apache.lucene.util.Version
      StackMap stack:
            aload 10 /* infos */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            bipush 7
            if_icmplt 89
            aload 31 /* segmentVersion */
            getfield org.apache.lucene.util.Version.major:I
            aload 10 /* infos */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            if_icmpge 89
        88: .line 414
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "segments file recorded indexCreatedVersionMajor="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* infos */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " but segment="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 18 /* info */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " has older version="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 31 /* segmentVersion */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        89: .line 417
      StackMap locals:
      StackMap stack:
            aload 10 /* infos */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            bipush 7
            if_icmplt 91
            aload 18 /* info */
            invokevirtual org.apache.lucene.index.SegmentInfo.getMinVersion:()Lorg/apache/lucene/util/Version;
            ifnonnull 91
        90: .line 418
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "segments infos must record minVersion with indexCreatedVersionMajor="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* infos */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        end local 31 // org.apache.lucene.util.Version segmentVersion
        end local 30 // int numDVFields
        end local 29 // java.util.Map dvUpdateFiles
        end local 28 // org.apache.lucene.index.SegmentCommitInfo siPerCommit
        end local 27 // byte[] sciId
        end local 26 // int softDelCount
        end local 24 // long dvGen
        end local 22 // long fieldInfosGen
        end local 21 // int delCount
        end local 19 // long delGen
        end local 18 // org.apache.lucene.index.SegmentInfo info
        end local 17 // org.apache.lucene.codecs.Codec codec
        end local 16 // byte[] segmentID
        end local 15 // java.lang.String segName
        91: .line 352
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int int byte[] org.apache.lucene.util.Version int org.apache.lucene.index.SegmentInfos int long int
      StackMap stack:
            iinc 14 /* seg */ 1
      StackMap locals:
      StackMap stack:
        92: iload 14 /* seg */
            iload 11 /* numSegments */
            if_icmplt 38
        end local 14 // int seg
        93: .line 422
            aload 10 /* infos */
            aload 1 /* input */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.readMapOfStrings:()Ljava/util/Map;
            putfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
        94: .line 425
            lload 12 /* totalDocs */
            invokestatic org.apache.lucene.index.IndexWriter.getActualMaxDocs:()I
            i2l
            lcmp
            ifle 96
        95: .line 426
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Too many documents: an index cannot exceed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.lucene.index.IndexWriter.getActualMaxDocs:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " but readers have total maxDoc="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 12 /* totalDocs */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        96: .line 429
      StackMap locals:
      StackMap stack:
            aload 10 /* infos */
            astore 34
        97: .line 433
            iload 5 /* format */
            bipush 7
            if_icmplt 100
        98: .line 434
            aload 1 /* input */
            aload 4 /* priorE */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkFooter:(Lorg/apache/lucene/store/ChecksumIndexInput;Ljava/lang/Throwable;)V
        99: .line 435
            goto 101
       100: .line 436
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int int byte[] org.apache.lucene.util.Version int org.apache.lucene.index.SegmentInfos int long top top top top top top top top top top top top top top top top top top top top org.apache.lucene.index.SegmentInfos
      StackMap stack:
            aload 4 /* priorE */
            invokestatic org.apache.lucene.util.IOUtils.rethrowAlways:(Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
       101: .line 429
      StackMap locals:
      StackMap stack:
            aload 34
            areturn
        end local 12 // long totalDocs
        end local 11 // int numSegments
        end local 10 // org.apache.lucene.index.SegmentInfos infos
        end local 9 // int indexCreatedVersion
        end local 8 // org.apache.lucene.util.Version luceneVersion
        end local 7 // byte[] id
        end local 6 // int magic
       102: .line 430
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
       103: .line 431
            aload 6 /* t */
            astore 4 /* priorE */
        end local 6 // java.lang.Throwable t
       104: .line 433
            iload 5 /* format */
            bipush 7
            if_icmplt 107
       105: .line 434
            aload 1 /* input */
            aload 4 /* priorE */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkFooter:(Lorg/apache/lucene/store/ChecksumIndexInput;Ljava/lang/Throwable;)V
       106: .line 435
            goto 114
       107: .line 436
      StackMap locals:
      StackMap stack:
            aload 4 /* priorE */
            invokestatic org.apache.lucene.util.IOUtils.rethrowAlways:(Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
       108: .line 432
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 33
       109: .line 433
            iload 5 /* format */
            bipush 7
            if_icmplt 112
       110: .line 434
            aload 1 /* input */
            aload 4 /* priorE */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkFooter:(Lorg/apache/lucene/store/ChecksumIndexInput;Ljava/lang/Throwable;)V
       111: .line 435
            goto 113
       112: .line 436
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int top top top top top top top top top top top top top top top top top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 4 /* priorE */
            invokestatic org.apache.lucene.util.IOUtils.rethrowAlways:(Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
       113: .line 438
      StackMap locals:
      StackMap stack:
            aload 33
            athrow
       114: .line 439
      StackMap locals: org.apache.lucene.store.Directory org.apache.lucene.store.ChecksumIndexInput long java.lang.Throwable int
      StackMap stack:
            new java.lang.Error
            dup
            ldc "Unreachable code"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // int format
        end local 4 // java.lang.Throwable priorE
        end local 2 // long generation
        end local 1 // org.apache.lucene.store.ChecksumIndexInput input
        end local 0 // org.apache.lucene.store.Directory directory
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  115     0            directory  Lorg/apache/lucene/store/Directory;
            0  115     1                input  Lorg/apache/lucene/store/ChecksumIndexInput;
            0  115     2           generation  J
            1  115     4               priorE  Ljava/lang/Throwable;
            2  115     5               format  I
            3  102     6                magic  I
            7  102     7                   id  [B
           10  102     8        luceneVersion  Lorg/apache/lucene/util/Version;
           11  102     9  indexCreatedVersion  I
           21  102    10                infos  Lorg/apache/lucene/index/SegmentInfos;
           31  102    11          numSegments  I
           36  102    12            totalDocs  J
           37   93    14                  seg  I
           39   91    15              segName  Ljava/lang/String;
           40   91    16            segmentID  [B
           42   91    17                codec  Lorg/apache/lucene/codecs/Codec;
           43   91    18                 info  Lorg/apache/lucene/index/SegmentInfo;
           46   91    19               delGen  J
           47   91    21             delCount  I
           50   91    22        fieldInfosGen  J
           51   91    24                dvGen  J
           54   91    26         softDelCount  I
           62   64    27                sciId  [B
           65   66    27                sciId  [B
           67   68    27                sciId  [B
           69   91    27                sciId  [B
           60   67    28               marker  B
           70   91    28          siPerCommit  Lorg/apache/lucene/index/SegmentCommitInfo;
           74   75    29        dvUpdateFiles  Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;
           82   91    29        dvUpdateFiles  Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;
           72   91    30          numDVFields  I
           76   82    31                  map  Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;
           77   81    32                    i  I
           85   91    31       segmentVersion  Lorg/apache/lucene/util/Version;
          103  104     6                    t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2    97     102  Class java.lang.Throwable
           2    97     108  any
         102   104     108  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      directory   
      input       
      generation  

  private static org.apache.lucene.codecs.Codec readCodec(org.apache.lucene.store.DataInput);
    descriptor: (Lorg/apache/lucene/store/DataInput;)Lorg/apache/lucene/codecs/Codec;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.lucene.store.DataInput input
         0: .line 443
            aload 0 /* input */
            invokevirtual org.apache.lucene.store.DataInput.readString:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 445
            aload 1 /* name */
            invokestatic org.apache.lucene.codecs.Codec.forName:(Ljava/lang/String;)Lorg/apache/lucene/codecs/Codec;
         2: areturn
         3: .line 446
      StackMap locals: org.apache.lucene.store.DataInput java.lang.String
      StackMap stack: java.lang.IllegalArgumentException
            astore 2 /* e */
        start local 2 // java.lang.IllegalArgumentException e
         4: .line 448
            aload 1 /* name */
            ldc "Lucene"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 449
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not load codec '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'.  Did you forget to add lucene-backward-codecs.jar?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
         6: .line 451
      StackMap locals: java.lang.IllegalArgumentException
      StackMap stack:
            aload 2 /* e */
            athrow
        end local 2 // java.lang.IllegalArgumentException e
        end local 1 // java.lang.String name
        end local 0 // org.apache.lucene.store.DataInput input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  input  Lorg/apache/lucene/store/DataInput;
            1    7     1   name  Ljava/lang/String;
            4    7     2      e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static final org.apache.lucene.index.SegmentInfos readLatestCommit(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)Lorg/apache/lucene/index/SegmentInfos;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.lucene.store.Directory directory
         0: .line 458
            new org.apache.lucene.index.SegmentInfos$1
            dup
            aload 0 /* directory */
            invokespecial org.apache.lucene.index.SegmentInfos$1.<init>:(Lorg/apache/lucene/store/Directory;)V
         1: .line 463
            invokevirtual org.apache.lucene.index.SegmentInfos$1.run:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentInfos
         2: .line 458
            areturn
        end local 0 // org.apache.lucene.store.Directory directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  directory  Lorg/apache/lucene/store/Directory;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  

  private void write(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.store.Directory directory
         0: .line 472
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.getNextPendingGeneration:()J
            lstore 2 /* nextGeneration */
        start local 2 // long nextGeneration
         1: .line 473
            ldc "pending_segments"
         2: .line 474
            ldc ""
         3: .line 475
            lload 2 /* nextGeneration */
         4: .line 473
            invokestatic org.apache.lucene.index.IndexFileNames.fileNameFromGeneration:(Ljava/lang/String;Ljava/lang/String;J)Ljava/lang/String;
            astore 4 /* segmentFileName */
        start local 4 // java.lang.String segmentFileName
         5: .line 478
            aload 0 /* this */
            lload 2 /* nextGeneration */
            putfield org.apache.lucene.index.SegmentInfos.generation:J
         6: .line 480
            aconst_null
            astore 5 /* segnOutput */
        start local 5 // org.apache.lucene.store.IndexOutput segnOutput
         7: .line 481
            iconst_0
            istore 6 /* success */
        start local 6 // boolean success
         8: .line 484
            aload 1 /* directory */
            aload 4 /* segmentFileName */
            getstatic org.apache.lucene.store.IOContext.DEFAULT:Lorg/apache/lucene/store/IOContext;
            invokevirtual org.apache.lucene.store.Directory.createOutput:(Ljava/lang/String;Lorg/apache/lucene/store/IOContext;)Lorg/apache/lucene/store/IndexOutput;
            astore 5 /* segnOutput */
         9: .line 485
            aload 0 /* this */
            aload 5 /* segnOutput */
            invokevirtual org.apache.lucene.index.SegmentInfos.write:(Lorg/apache/lucene/store/IndexOutput;)V
        10: .line 486
            aload 5 /* segnOutput */
            invokevirtual org.apache.lucene.store.IndexOutput.close:()V
        11: .line 487
            aload 1 /* directory */
            aload 4 /* segmentFileName */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual org.apache.lucene.store.Directory.sync:(Ljava/util/Collection;)V
        12: .line 488
            iconst_1
            istore 6 /* success */
        13: .line 489
            goto 22
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.Directory long java.lang.String org.apache.lucene.store.IndexOutput int
      StackMap stack: java.lang.Throwable
        14: astore 7
        15: .line 490
            iload 6 /* success */
            ifeq 18
        16: .line 491
            aload 0 /* this */
            iconst_1
            putfield org.apache.lucene.index.SegmentInfos.pendingCommit:Z
        17: .line 492
            goto 21
      StackMap locals: java.lang.Throwable
      StackMap stack:
        18: iconst_1
            anewarray java.io.Closeable
            dup
            iconst_0
        19: .line 495
            aload 5 /* segnOutput */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.closeWhileHandlingException:([Ljava/io/Closeable;)V
        20: .line 498
            aload 1 /* directory */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* segmentFileName */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        21: .line 500
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        22: .line 490
      StackMap locals:
      StackMap stack:
            iload 6 /* success */
            ifeq 25
        23: .line 491
            aload 0 /* this */
            iconst_1
            putfield org.apache.lucene.index.SegmentInfos.pendingCommit:Z
        24: .line 492
            goto 28
      StackMap locals:
      StackMap stack:
        25: iconst_1
            anewarray java.io.Closeable
            dup
            iconst_0
        26: .line 495
            aload 5 /* segnOutput */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.closeWhileHandlingException:([Ljava/io/Closeable;)V
        27: .line 498
            aload 1 /* directory */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* segmentFileName */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        28: .line 501
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean success
        end local 5 // org.apache.lucene.store.IndexOutput segnOutput
        end local 4 // java.lang.String segmentFileName
        end local 2 // long nextGeneration
        end local 1 // org.apache.lucene.store.Directory directory
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0             this  Lorg/apache/lucene/index/SegmentInfos;
            0   29     1        directory  Lorg/apache/lucene/store/Directory;
            1   29     2   nextGeneration  J
            5   29     4  segmentFileName  Ljava/lang/String;
            7   29     5       segnOutput  Lorg/apache/lucene/store/IndexOutput;
            8   29     6          success  Z
      Exception table:
        from    to  target  type
           8    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  

  public void write(org.apache.lucene.store.IndexOutput);
    descriptor: (Lorg/apache/lucene/store/IndexOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.store.IndexOutput out
         0: .line 505
            aload 1 /* out */
            ldc "segments"
            bipush 10
         1: .line 506
            invokestatic org.apache.lucene.util.StringHelper.randomId:()[B
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            bipush 36
            invokestatic java.lang.Long.toString:(JI)Ljava/lang/String;
         2: .line 505
            invokestatic org.apache.lucene.codecs.CodecUtil.writeIndexHeader:(Lorg/apache/lucene/store/DataOutput;Ljava/lang/String;I[BLjava/lang/String;)V
         3: .line 507
            aload 1 /* out */
            getstatic org.apache.lucene.util.Version.LATEST:Lorg/apache/lucene/util/Version;
            getfield org.apache.lucene.util.Version.major:I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
         4: .line 508
            aload 1 /* out */
            getstatic org.apache.lucene.util.Version.LATEST:Lorg/apache/lucene/util/Version;
            getfield org.apache.lucene.util.Version.minor:I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
         5: .line 509
            aload 1 /* out */
            getstatic org.apache.lucene.util.Version.LATEST:Lorg/apache/lucene/util/Version;
            getfield org.apache.lucene.util.Version.bugfix:I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
         6: .line 512
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
         7: .line 514
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.version:J
            invokevirtual org.apache.lucene.store.IndexOutput.writeLong:(J)V
         8: .line 515
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.counter:J
            invokevirtual org.apache.lucene.store.IndexOutput.writeVLong:(J)V
         9: .line 516
            aload 1 /* out */
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.size:()I
            invokevirtual org.apache.lucene.store.IndexOutput.writeInt:(I)V
        10: .line 518
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.size:()I
            ifle 21
        11: .line 520
            aconst_null
            astore 2 /* minSegmentVersion */
        start local 2 // org.apache.lucene.util.Version minSegmentVersion
        12: .line 524
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.iterator:()Ljava/util/Iterator;
            astore 4
            goto 17
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput org.apache.lucene.util.Version top java.util.Iterator
      StackMap stack:
        13: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            astore 3 /* siPerCommit */
        start local 3 // org.apache.lucene.index.SegmentCommitInfo siPerCommit
        14: .line 525
            aload 3 /* siPerCommit */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            invokevirtual org.apache.lucene.index.SegmentInfo.getVersion:()Lorg/apache/lucene/util/Version;
            astore 5 /* segmentVersion */
        start local 5 // org.apache.lucene.util.Version segmentVersion
        15: .line 526
            aload 2 /* minSegmentVersion */
            ifnull 16
            aload 5 /* segmentVersion */
            aload 2 /* minSegmentVersion */
            invokevirtual org.apache.lucene.util.Version.onOrAfter:(Lorg/apache/lucene/util/Version;)Z
            ifne 17
        16: .line 527
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput org.apache.lucene.util.Version org.apache.lucene.index.SegmentCommitInfo java.util.Iterator org.apache.lucene.util.Version
      StackMap stack:
            aload 5 /* segmentVersion */
            astore 2 /* minSegmentVersion */
        end local 5 // org.apache.lucene.util.Version segmentVersion
        end local 3 // org.apache.lucene.index.SegmentCommitInfo siPerCommit
        17: .line 524
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput org.apache.lucene.util.Version top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        18: .line 531
            aload 1 /* out */
            aload 2 /* minSegmentVersion */
            getfield org.apache.lucene.util.Version.major:I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
        19: .line 532
            aload 1 /* out */
            aload 2 /* minSegmentVersion */
            getfield org.apache.lucene.util.Version.minor:I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
        20: .line 533
            aload 1 /* out */
            aload 2 /* minSegmentVersion */
            getfield org.apache.lucene.util.Version.bugfix:I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
        end local 2 // org.apache.lucene.util.Version minSegmentVersion
        21: .line 537
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.iterator:()Ljava/util/Iterator;
            astore 3
            goto 58
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput top java.util.Iterator
      StackMap stack:
        22: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            astore 2 /* siPerCommit */
        start local 2 // org.apache.lucene.index.SegmentCommitInfo siPerCommit
        23: .line 538
            aload 2 /* siPerCommit */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            astore 4 /* si */
        start local 4 // org.apache.lucene.index.SegmentInfo si
        24: .line 539
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            bipush 7
            if_icmplt 26
            aload 4 /* si */
            getfield org.apache.lucene.index.SegmentInfo.minVersion:Lorg/apache/lucene/util/Version;
            ifnonnull 26
        25: .line 540
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Segments must record minVersion if they have been created on or after Lucene 7: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* si */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 542
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput org.apache.lucene.index.SegmentCommitInfo java.util.Iterator org.apache.lucene.index.SegmentInfo
      StackMap stack:
            aload 1 /* out */
            aload 4 /* si */
            getfield org.apache.lucene.index.SegmentInfo.name:Ljava/lang/String;
            invokevirtual org.apache.lucene.store.IndexOutput.writeString:(Ljava/lang/String;)V
        27: .line 543
            aload 4 /* si */
            invokevirtual org.apache.lucene.index.SegmentInfo.getId:()[B
            astore 5 /* segmentID */
        start local 5 // byte[] segmentID
        28: .line 544
            aload 5 /* segmentID */
            arraylength
            bipush 16
            if_icmpeq 30
        29: .line 545
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot write segment: invalid id segment="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* si */
            getfield org.apache.lucene.index.SegmentInfo.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* segmentID */
            invokestatic org.apache.lucene.util.StringHelper.idToString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 547
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* out */
            aload 5 /* segmentID */
            aload 5 /* segmentID */
            arraylength
            invokevirtual org.apache.lucene.store.IndexOutput.writeBytes:([BI)V
        31: .line 548
            aload 1 /* out */
            aload 4 /* si */
            invokevirtual org.apache.lucene.index.SegmentInfo.getCodec:()Lorg/apache/lucene/codecs/Codec;
            invokevirtual org.apache.lucene.codecs.Codec.getName:()Ljava/lang/String;
            invokevirtual org.apache.lucene.store.IndexOutput.writeString:(Ljava/lang/String;)V
        32: .line 549
            aload 1 /* out */
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getDelGen:()J
            invokevirtual org.apache.lucene.store.IndexOutput.writeLong:(J)V
        33: .line 550
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getDelCount:()I
            istore 6 /* delCount */
        start local 6 // int delCount
        34: .line 551
            iload 6 /* delCount */
            iflt 35
            iload 6 /* delCount */
            aload 4 /* si */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            if_icmple 36
        35: .line 552
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot write segment: invalid maxDoc segment="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* si */
            getfield org.apache.lucene.index.SegmentInfo.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " maxDoc="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* si */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " delCount="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* delCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 554
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            iload 6 /* delCount */
            invokevirtual org.apache.lucene.store.IndexOutput.writeInt:(I)V
        37: .line 555
            aload 1 /* out */
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getFieldInfosGen:()J
            invokevirtual org.apache.lucene.store.IndexOutput.writeLong:(J)V
        38: .line 556
            aload 1 /* out */
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getDocValuesGen:()J
            invokevirtual org.apache.lucene.store.IndexOutput.writeLong:(J)V
        39: .line 557
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getSoftDelCount:()I
            istore 7 /* softDelCount */
        start local 7 // int softDelCount
        40: .line 558
            iload 7 /* softDelCount */
            iflt 41
            iload 7 /* softDelCount */
            aload 4 /* si */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            if_icmple 42
        41: .line 559
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot write segment: invalid maxDoc segment="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* si */
            getfield org.apache.lucene.index.SegmentInfo.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " maxDoc="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* si */
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " softDelCount="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* softDelCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 561
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            iload 7 /* softDelCount */
            invokevirtual org.apache.lucene.store.IndexOutput.writeInt:(I)V
        43: .line 564
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getId:()[B
            astore 8 /* sciId */
        start local 8 // byte[] sciId
        44: .line 565
            aload 8 /* sciId */
            ifnull 49
        45: .line 566
            aload 1 /* out */
            iconst_1
            invokevirtual org.apache.lucene.store.IndexOutput.writeByte:(B)V
        46: .line 567
            getstatic org.apache.lucene.index.SegmentInfos.$assertionsDisabled:Z
            ifne 47
            aload 8 /* sciId */
            arraylength
            bipush 16
            if_icmpeq 47
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid SegmentCommitInfo#id: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* sciId */
            invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        47: .line 568
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* out */
            aload 8 /* sciId */
            iconst_0
            aload 8 /* sciId */
            arraylength
            invokevirtual org.apache.lucene.store.IndexOutput.writeBytes:([BII)V
        48: .line 569
            goto 50
        49: .line 570
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            iconst_0
            invokevirtual org.apache.lucene.store.IndexOutput.writeByte:(B)V
        50: .line 573
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getFieldInfosFiles:()Ljava/util/Set;
            invokevirtual org.apache.lucene.store.IndexOutput.writeSetOfStrings:(Ljava/util/Set;)V
        51: .line 574
            aload 2 /* siPerCommit */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getDocValuesUpdatesFiles:()Ljava/util/Map;
            astore 9 /* dvUpdatesFiles */
        start local 9 // java.util.Map dvUpdatesFiles
        52: .line 575
            aload 1 /* out */
            aload 9 /* dvUpdatesFiles */
            invokeinterface java.util.Map.size:()I
            invokevirtual org.apache.lucene.store.IndexOutput.writeInt:(I)V
        53: .line 576
            aload 9 /* dvUpdatesFiles */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 57
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput org.apache.lucene.index.SegmentCommitInfo java.util.Iterator org.apache.lucene.index.SegmentInfo byte[] int int byte[] java.util.Map top java.util.Iterator
      StackMap stack:
        54: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 10 /* e */
        start local 10 // java.util.Map$Entry e
        55: .line 577
            aload 1 /* out */
            aload 10 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.apache.lucene.store.IndexOutput.writeInt:(I)V
        56: .line 578
            aload 1 /* out */
            aload 10 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokevirtual org.apache.lucene.store.IndexOutput.writeSetOfStrings:(Ljava/util/Set;)V
        end local 10 // java.util.Map$Entry e
        57: .line 576
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 54
        end local 9 // java.util.Map dvUpdatesFiles
        end local 8 // byte[] sciId
        end local 7 // int softDelCount
        end local 6 // int delCount
        end local 5 // byte[] segmentID
        end local 4 // org.apache.lucene.index.SegmentInfo si
        end local 2 // org.apache.lucene.index.SegmentCommitInfo siPerCommit
        58: .line 537
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.IndexOutput top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        59: .line 581
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
            invokevirtual org.apache.lucene.store.IndexOutput.writeMapOfStrings:(Ljava/util/Map;)V
        60: .line 582
            aload 1 /* out */
            invokestatic org.apache.lucene.codecs.CodecUtil.writeFooter:(Lorg/apache/lucene/store/IndexOutput;)V
        61: .line 583
            return
        end local 1 // org.apache.lucene.store.IndexOutput out
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   62     0               this  Lorg/apache/lucene/index/SegmentInfos;
            0   62     1                out  Lorg/apache/lucene/store/IndexOutput;
           12   21     2  minSegmentVersion  Lorg/apache/lucene/util/Version;
           14   17     3        siPerCommit  Lorg/apache/lucene/index/SegmentCommitInfo;
           15   17     5     segmentVersion  Lorg/apache/lucene/util/Version;
           23   58     2        siPerCommit  Lorg/apache/lucene/index/SegmentCommitInfo;
           24   58     4                 si  Lorg/apache/lucene/index/SegmentInfo;
           28   58     5          segmentID  [B
           34   58     6           delCount  I
           40   58     7       softDelCount  I
           44   58     8              sciId  [B
           52   58     9     dvUpdatesFiles  Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;
           55   57    10                  e  Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public org.apache.lucene.index.SegmentInfos clone();
    descriptor: ()Lorg/apache/lucene/index/SegmentInfos;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 593
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentInfos
            astore 1 /* sis */
        start local 1 // org.apache.lucene.index.SegmentInfos sis
         1: .line 595
            aload 1 /* sis */
            new java.util.ArrayList
            dup
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
         2: .line 596
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.index.SegmentInfos top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            astore 2 /* info */
        start local 2 // org.apache.lucene.index.SegmentCommitInfo info
         4: .line 597
            getstatic org.apache.lucene.index.SegmentInfos.$assertionsDisabled:Z
            ifne 5
            aload 2 /* info */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            invokevirtual org.apache.lucene.index.SegmentInfo.getCodec:()Lorg/apache/lucene/codecs/Codec;
            ifnonnull 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 599
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.index.SegmentInfos org.apache.lucene.index.SegmentCommitInfo java.util.Iterator
      StackMap stack:
            aload 1 /* sis */
            aload 2 /* info */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.clone:()Lorg/apache/lucene/index/SegmentCommitInfo;
            invokevirtual org.apache.lucene.index.SegmentInfos.add:(Lorg/apache/lucene/index/SegmentCommitInfo;)V
        end local 2 // org.apache.lucene.index.SegmentCommitInfo info
         6: .line 596
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.index.SegmentInfos top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 601
            aload 1 /* sis */
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            putfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
         8: .line 602
            aload 1 /* sis */
         9: areturn
        end local 1 // org.apache.lucene.index.SegmentInfos sis
        10: .line 603
      StackMap locals: org.apache.lucene.index.SegmentInfos
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
        11: .line 604
            new java.lang.RuntimeException
            dup
            ldc "should not happen"
            aload 1 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/lucene/index/SegmentInfos;
            1   10     1   sis  Lorg/apache/lucene/index/SegmentInfos;
            4    6     2  info  Lorg/apache/lucene/index/SegmentCommitInfo;
           11   12     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.CloneNotSupportedException

  public long getVersion();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 612
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.version:J
            lreturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public long getGeneration();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 617
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            lreturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public long getLastGeneration();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 622
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
            lreturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public static void setInfoStream(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.PrintStream infoStream
         0: .line 629
            aload 0 /* infoStream */
            putstatic org.apache.lucene.index.SegmentInfos.infoStream:Ljava/io/PrintStream;
         1: .line 630
            return
        end local 0 // java.io.PrintStream infoStream
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  infoStream  Ljava/io/PrintStream;
    MethodParameters:
            Name  Flags
      infoStream  

  public static java.io.PrintStream getInfoStream();
    descriptor: ()Ljava/io/PrintStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 638
            getstatic org.apache.lucene.index.SegmentInfos.infoStream:Ljava/io/PrintStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void message(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String message
         0: .line 648
            getstatic org.apache.lucene.index.SegmentInfos.infoStream:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "SIS ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 649
            return
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  

  public void updateGeneration(org.apache.lucene.index.SegmentInfos);
    descriptor: (Lorg/apache/lucene/index/SegmentInfos;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.SegmentInfos other
         0: .line 754
            aload 0 /* this */
            aload 1 /* other */
            getfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
            putfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
         1: .line 755
            aload 0 /* this */
            aload 1 /* other */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            putfield org.apache.lucene.index.SegmentInfos.generation:J
         2: .line 756
            return
        end local 1 // org.apache.lucene.index.SegmentInfos other
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/lucene/index/SegmentInfos;
            0    3     1  other  Lorg/apache/lucene/index/SegmentInfos;
    MethodParameters:
       Name  Flags
      other  

  void updateGenerationVersionAndCounter(org.apache.lucene.index.SegmentInfos);
    descriptor: (Lorg/apache/lucene/index/SegmentInfos;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.SegmentInfos other
         0: .line 760
            aload 0 /* this */
            aload 1 /* other */
            invokevirtual org.apache.lucene.index.SegmentInfos.updateGeneration:(Lorg/apache/lucene/index/SegmentInfos;)V
         1: .line 761
            aload 0 /* this */
            aload 1 /* other */
            getfield org.apache.lucene.index.SegmentInfos.version:J
            putfield org.apache.lucene.index.SegmentInfos.version:J
         2: .line 762
            aload 0 /* this */
            aload 1 /* other */
            getfield org.apache.lucene.index.SegmentInfos.counter:J
            putfield org.apache.lucene.index.SegmentInfos.counter:J
         3: .line 763
            return
        end local 1 // org.apache.lucene.index.SegmentInfos other
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/apache/lucene/index/SegmentInfos;
            0    4     1  other  Lorg/apache/lucene/index/SegmentInfos;
    MethodParameters:
       Name  Flags
      other  

  public void setNextWriteGeneration(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // long generation
         0: .line 767
            lload 1 /* generation */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            lcmp
            ifge 2
         1: .line 768
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot decrease generation to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* generation */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " from current generation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* generation */
            putfield org.apache.lucene.index.SegmentInfos.generation:J
         3: .line 771
            return
        end local 1 // long generation
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/apache/lucene/index/SegmentInfos;
            0    4     1  generation  J
    MethodParameters:
            Name  Flags
      generation  

  final void rollbackCommit(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.store.Directory dir
         0: .line 774
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.pendingCommit:Z
            ifeq 4
         1: .line 775
            aload 0 /* this */
            iconst_0
            putfield org.apache.lucene.index.SegmentInfos.pendingCommit:Z
         2: .line 781
            ldc "pending_segments"
            ldc ""
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            invokestatic org.apache.lucene.index.IndexFileNames.fileNameFromGeneration:(Ljava/lang/String;Ljava/lang/String;J)Ljava/lang/String;
            astore 2 /* pending */
        start local 2 // java.lang.String pending
         3: .line 784
            aload 1 /* dir */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* pending */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        end local 2 // java.lang.String pending
         4: .line 786
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.lucene.store.Directory dir
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/apache/lucene/index/SegmentInfos;
            0    5     1      dir  Lorg/apache/lucene/store/Directory;
            3    4     2  pending  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      dir   

  final void prepareCommit(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.store.Directory dir
         0: .line 799
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.pendingCommit:Z
            ifeq 2
         1: .line 800
            new java.lang.IllegalStateException
            dup
            ldc "prepareCommit was already called"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 802
      StackMap locals:
      StackMap stack:
            aload 1 /* dir */
            invokevirtual org.apache.lucene.store.Directory.syncMetaData:()V
         3: .line 803
            aload 0 /* this */
            aload 1 /* dir */
            invokevirtual org.apache.lucene.index.SegmentInfos.write:(Lorg/apache/lucene/store/Directory;)V
         4: .line 804
            return
        end local 1 // org.apache.lucene.store.Directory dir
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    5     1   dir  Lorg/apache/lucene/store/Directory;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dir   

  public java.util.Collection<java.lang.String> files(boolean);
    descriptor: (Z)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // boolean includeSegmentsFile
         0: .line 810
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* files */
        start local 2 // java.util.HashSet files
         1: .line 811
            iload 1 /* includeSegmentsFile */
            ifeq 5
         2: .line 812
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.getSegmentsFileName:()Ljava/lang/String;
            astore 3 /* segmentFileName */
        start local 3 // java.lang.String segmentFileName
         3: .line 813
            aload 3 /* segmentFileName */
            ifnull 5
         4: .line 814
            aload 2 /* files */
            aload 3 /* segmentFileName */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String segmentFileName
         5: .line 817
      StackMap locals: java.util.HashSet
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.size:()I
            istore 3 /* size */
        start local 3 // int size
         6: .line 818
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 11
         8: .line 819
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* i */
            invokevirtual org.apache.lucene.index.SegmentInfos.info:(I)Lorg/apache/lucene/index/SegmentCommitInfo;
            astore 5 /* info */
        start local 5 // org.apache.lucene.index.SegmentCommitInfo info
         9: .line 820
            aload 2 /* files */
            aload 5 /* info */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.files:()Ljava/util/Collection;
            invokevirtual java.util.HashSet.addAll:(Ljava/util/Collection;)Z
            pop
        end local 5 // org.apache.lucene.index.SegmentCommitInfo info
        10: .line 818
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            iload 3 /* size */
            if_icmplt 8
        end local 4 // int i
        12: .line 823
            aload 2 /* files */
            areturn
        end local 3 // int size
        end local 2 // java.util.HashSet files
        end local 1 // boolean includeSegmentsFile
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   13     0                 this  Lorg/apache/lucene/index/SegmentInfos;
            0   13     1  includeSegmentsFile  Z
            1   13     2                files  Ljava/util/HashSet<Ljava/lang/String;>;
            3    5     3      segmentFileName  Ljava/lang/String;
            6   13     3                 size  I
            7   12     4                    i  I
            9   10     5                 info  Lorg/apache/lucene/index/SegmentCommitInfo;
    Exceptions:
      throws java.io.IOException
    Signature: (Z)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
                     Name  Flags
      includeSegmentsFile  

  final java.lang.String finishCommit(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)Ljava/lang/String;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.store.Directory dir
         0: .line 828
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.pendingCommit:Z
            ifne 2
         1: .line 829
            new java.lang.IllegalStateException
            dup
            ldc "prepareCommit was not called"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 831
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* successRenameAndSync */
        start local 2 // boolean successRenameAndSync
         3: .line 834
            ldc "pending_segments"
            ldc ""
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            invokestatic org.apache.lucene.index.IndexFileNames.fileNameFromGeneration:(Ljava/lang/String;Ljava/lang/String;J)Ljava/lang/String;
            astore 4 /* src */
        start local 4 // java.lang.String src
         4: .line 835
            ldc "segments"
            ldc ""
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            invokestatic org.apache.lucene.index.IndexFileNames.fileNameFromGeneration:(Ljava/lang/String;Ljava/lang/String;J)Ljava/lang/String;
            astore 3 /* dest */
        start local 3 // java.lang.String dest
         5: .line 836
            aload 1 /* dir */
            aload 4 /* src */
            aload 3 /* dest */
            invokevirtual org.apache.lucene.store.Directory.rename:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 838
            aload 1 /* dir */
            invokevirtual org.apache.lucene.store.Directory.syncMetaData:()V
         7: .line 839
            iconst_1
            istore 2 /* successRenameAndSync */
         8: .line 840
            goto 13
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.Directory int java.lang.String java.lang.String
      StackMap stack: java.lang.Throwable
         9: astore 5
        10: .line 841
            iload 2 /* successRenameAndSync */
            ifne 12
        11: .line 844
            aload 1 /* dir */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 3 /* dest */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        12: .line 846
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        13: .line 841
      StackMap locals:
      StackMap stack:
            iload 2 /* successRenameAndSync */
            ifne 20
        14: .line 844
            aload 1 /* dir */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 3 /* dest */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        end local 4 // java.lang.String src
        15: .line 847
            goto 20
        end local 3 // java.lang.String dest
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.Directory int
      StackMap stack: java.lang.Throwable
        16: astore 6
        17: .line 848
            iload 2 /* successRenameAndSync */
            ifne 19
        18: .line 850
            aload 0 /* this */
            aload 1 /* dir */
            invokevirtual org.apache.lucene.index.SegmentInfos.rollbackCommit:(Lorg/apache/lucene/store/Directory;)V
        19: .line 852
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.Directory int top top top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        start local 3 // java.lang.String dest
        20: .line 848
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.store.Directory int java.lang.String
      StackMap stack:
            iload 2 /* successRenameAndSync */
            ifne 22
        21: .line 850
            aload 0 /* this */
            aload 1 /* dir */
            invokevirtual org.apache.lucene.index.SegmentInfos.rollbackCommit:(Lorg/apache/lucene/store/Directory;)V
        22: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.apache.lucene.index.SegmentInfos.pendingCommit:Z
        23: .line 855
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.generation:J
            putfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
        24: .line 856
            aload 3 /* dest */
            areturn
        end local 3 // java.lang.String dest
        end local 2 // boolean successRenameAndSync
        end local 1 // org.apache.lucene.store.Directory dir
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   25     0                  this  Lorg/apache/lucene/index/SegmentInfos;
            0   25     1                   dir  Lorg/apache/lucene/store/Directory;
            3   25     2  successRenameAndSync  Z
            5   16     3                  dest  Ljava/lang/String;
           20   25     3                  dest  Ljava/lang/String;
            4   15     4                   src  Ljava/lang/String;
      Exception table:
        from    to  target  type
           6     9       9  any
           3    16      16  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dir   

  public final void commit(org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/store/Directory;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.store.Directory dir
         0: .line 867
            aload 0 /* this */
            aload 1 /* dir */
            invokevirtual org.apache.lucene.index.SegmentInfos.prepareCommit:(Lorg/apache/lucene/store/Directory;)V
         1: .line 868
            aload 0 /* this */
            aload 1 /* dir */
            invokevirtual org.apache.lucene.index.SegmentInfos.finishCommit:(Lorg/apache/lucene/store/Directory;)Ljava/lang/String;
            pop
         2: .line 869
            return
        end local 1 // org.apache.lucene.store.Directory dir
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    3     1   dir  Lorg/apache/lucene/store/Directory;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dir   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 874
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buffer */
        start local 1 // java.lang.StringBuilder buffer
         1: .line 875
            aload 1 /* buffer */
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.getSegmentsFileName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 876
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.size:()I
            istore 2 /* count */
        start local 2 // int count
         3: .line 877
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 10
         5: .line 878
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            iload 3 /* i */
            ifle 7
         6: .line 879
            aload 1 /* buffer */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.apache.lucene.index.SegmentInfos.info:(I)Lorg/apache/lucene/index/SegmentCommitInfo;
            astore 4 /* info */
        start local 4 // org.apache.lucene.index.SegmentCommitInfo info
         8: .line 882
            aload 1 /* buffer */
            aload 4 /* info */
            iconst_0
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // org.apache.lucene.index.SegmentCommitInfo info
         9: .line 877
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 5
        end local 3 // int i
        11: .line 884
            aload 1 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // int count
        end local 1 // java.lang.StringBuilder buffer
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/apache/lucene/index/SegmentInfos;
            1   12     1  buffer  Ljava/lang/StringBuilder;
            3   12     2   count  I
            4   11     3       i  I
            8    9     4    info  Lorg/apache/lucene/index/SegmentCommitInfo;

  public java.util.Map<java.lang.String, java.lang.String> getUserData();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 892
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
            areturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public void setUserData(java.util.Map<java.lang.String, java.lang.String>, );
    descriptor: (Ljava/util/Map;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // java.util.Map data
        start local 2 // boolean doIncrementVersion
         0: .line 897
            aload 1 /* data */
            ifnonnull 3
         1: .line 898
            aload 0 /* this */
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            putfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
         2: .line 899
            goto 4
         3: .line 900
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            putfield org.apache.lucene.index.SegmentInfos.userData:Ljava/util/Map;
         4: .line 902
      StackMap locals:
      StackMap stack:
            iload 2 /* doIncrementVersion */
            ifeq 6
         5: .line 903
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.changed:()V
         6: .line 905
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean doIncrementVersion
        end local 1 // java.util.Map data
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lorg/apache/lucene/index/SegmentInfos;
            0    7     1                data  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0    7     2  doIncrementVersion  Z
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Z)V
    MethodParameters:
                    Name  Flags
      data                
      doIncrementVersion  

  void replace(org.apache.lucene.index.SegmentInfos);
    descriptor: (Lorg/apache/lucene/index/SegmentInfos;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.SegmentInfos other
         0: .line 912
            aload 0 /* this */
            aload 1 /* other */
            invokevirtual org.apache.lucene.index.SegmentInfos.asList:()Ljava/util/List;
            invokevirtual org.apache.lucene.index.SegmentInfos.rollbackSegmentInfos:(Ljava/util/List;)V
         1: .line 913
            aload 0 /* this */
            aload 1 /* other */
            getfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
            putfield org.apache.lucene.index.SegmentInfos.lastGeneration:J
         2: .line 914
            return
        end local 1 // org.apache.lucene.index.SegmentInfos other
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/lucene/index/SegmentInfos;
            0    3     1  other  Lorg/apache/lucene/index/SegmentInfos;
    MethodParameters:
       Name  Flags
      other  

  public int totalMaxDoc();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 919
            lconst_0
            lstore 1 /* count */
        start local 1 // long count
         1: .line 920
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.lucene.index.SegmentInfos long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            astore 3 /* info */
        start local 3 // org.apache.lucene.index.SegmentCommitInfo info
         3: .line 921
            lload 1 /* count */
            aload 3 /* info */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            i2l
            ladd
            lstore 1 /* count */
        end local 3 // org.apache.lucene.index.SegmentCommitInfo info
         4: .line 920
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 924
            getstatic org.apache.lucene.index.SegmentInfos.$assertionsDisabled:Z
            ifne 6
            lload 1 /* count */
            invokestatic org.apache.lucene.index.IndexWriter.getActualMaxDocs:()I
            i2l
            lcmp
            ifle 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 925
      StackMap locals: org.apache.lucene.index.SegmentInfos long
      StackMap stack:
            lload 1 /* count */
            invokestatic java.lang.Math.toIntExact:(J)I
            ireturn
        end local 1 // long count
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/lucene/index/SegmentInfos;
            1    7     1  count  J
            3    4     3   info  Lorg/apache/lucene/index/SegmentCommitInfo;

  public void changed();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 931
            aload 0 /* this */
            dup
            getfield org.apache.lucene.index.SegmentInfos.version:J
            lconst_1
            ladd
            putfield org.apache.lucene.index.SegmentInfos.version:J
         1: .line 934
            return
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/index/SegmentInfos;

  void setVersion(long);
    descriptor: (J)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // long newVersion
         0: .line 937
            lload 1 /* newVersion */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.version:J
            lcmp
            ifge 2
         1: .line 938
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "newVersion (="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* newVersion */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ") cannot be less than current version (="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.version:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 941
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* newVersion */
            putfield org.apache.lucene.index.SegmentInfos.version:J
         3: .line 942
            return
        end local 1 // long newVersion
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/apache/lucene/index/SegmentInfos;
            0    4     1  newVersion  J
    MethodParameters:
            Name  Flags
      newVersion  

  void applyMergeChanges(org.apache.lucene.index.MergePolicy$OneMerge, boolean);
    descriptor: (Lorg/apache/lucene/index/MergePolicy$OneMerge;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.MergePolicy$OneMerge merge
        start local 2 // boolean dropSegment
         0: .line 946
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            bipush 7
            if_icmplt 2
            aload 1 /* merge */
            getfield org.apache.lucene.index.MergePolicy$OneMerge.info:Lorg/apache/lucene/index/SegmentCommitInfo;
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            getfield org.apache.lucene.index.SegmentInfo.minVersion:Lorg/apache/lucene/util/Version;
            ifnonnull 2
         1: .line 947
            new java.lang.IllegalArgumentException
            dup
            ldc "All segments must record the minVersion for indices created on or after Lucene 7"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 950
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 1 /* merge */
            getfield org.apache.lucene.index.MergePolicy$OneMerge.segments:Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* mergedAway */
        start local 3 // java.util.Set mergedAway
         3: .line 951
            iconst_0
            istore 4 /* inserted */
        start local 4 // boolean inserted
         4: .line 952
            iconst_0
            istore 5 /* newSegIdx */
        start local 5 // int newSegIdx
         5: .line 953
            iconst_0
            istore 6 /* segIdx */
        start local 6 // int segIdx
         6: aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 7 /* cnt */
        start local 7 // int cnt
         7: goto 19
         8: .line 954
      StackMap locals: org.apache.lucene.index.SegmentInfos org.apache.lucene.index.MergePolicy$OneMerge int java.util.Set int int int int
      StackMap stack:
            getstatic org.apache.lucene.index.SegmentInfos.$assertionsDisabled:Z
            ifne 9
            iload 6 /* segIdx */
            iload 5 /* newSegIdx */
            if_icmpge 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            iload 6 /* segIdx */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            astore 8 /* info */
        start local 8 // org.apache.lucene.index.SegmentCommitInfo info
        10: .line 956
            aload 3 /* mergedAway */
            aload 8 /* info */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 16
        11: .line 957
            iload 4 /* inserted */
            ifne 18
            iload 2 /* dropSegment */
            ifne 18
        12: .line 958
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            iload 6 /* segIdx */
            aload 1 /* merge */
            getfield org.apache.lucene.index.MergePolicy$OneMerge.info:Lorg/apache/lucene/index/SegmentCommitInfo;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 959
            iconst_1
            istore 4 /* inserted */
        14: .line 960
            iinc 5 /* newSegIdx */ 1
        15: .line 962
            goto 18
        16: .line 963
      StackMap locals: org.apache.lucene.index.SegmentCommitInfo
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            iload 5 /* newSegIdx */
            aload 8 /* info */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 964
            iinc 5 /* newSegIdx */ 1
        end local 8 // org.apache.lucene.index.SegmentCommitInfo info
        18: .line 953
      StackMap locals:
      StackMap stack:
            iinc 6 /* segIdx */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* segIdx */
            iload 7 /* cnt */
            if_icmplt 8
        end local 7 // int cnt
        end local 6 // int segIdx
        20: .line 969
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            iload 5 /* newSegIdx */
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        21: .line 976
            iload 4 /* inserted */
            ifne 23
            iload 2 /* dropSegment */
            ifne 23
        22: .line 977
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            iconst_0
            aload 1 /* merge */
            getfield org.apache.lucene.index.MergePolicy$OneMerge.info:Lorg/apache/lucene/index/SegmentCommitInfo;
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        23: .line 979
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int newSegIdx
        end local 4 // boolean inserted
        end local 3 // java.util.Set mergedAway
        end local 2 // boolean dropSegment
        end local 1 // org.apache.lucene.index.MergePolicy$OneMerge merge
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lorg/apache/lucene/index/SegmentInfos;
            0   24     1        merge  Lorg/apache/lucene/index/MergePolicy$OneMerge;
            0   24     2  dropSegment  Z
            3   24     3   mergedAway  Ljava/util/Set<Lorg/apache/lucene/index/SegmentCommitInfo;>;
            4   24     4     inserted  Z
            5   24     5    newSegIdx  I
            6   20     6       segIdx  I
            7   20     7          cnt  I
           10   18     8         info  Lorg/apache/lucene/index/SegmentCommitInfo;
    MethodParameters:
             Name  Flags
      merge        
      dropSegment  

  java.util.List<org.apache.lucene.index.SegmentCommitInfo> createBackupSegmentInfos();
    descriptor: ()Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 982
            new java.util.ArrayList
            dup
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* list */
        start local 1 // java.util.List list
         1: .line 983
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.apache.lucene.index.SegmentInfos java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            astore 2 /* info */
        start local 2 // org.apache.lucene.index.SegmentCommitInfo info
         3: .line 984
            getstatic org.apache.lucene.index.SegmentInfos.$assertionsDisabled:Z
            ifne 4
            aload 2 /* info */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            invokevirtual org.apache.lucene.index.SegmentInfo.getCodec:()Lorg/apache/lucene/codecs/Codec;
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 985
      StackMap locals: org.apache.lucene.index.SegmentInfos java.util.List org.apache.lucene.index.SegmentCommitInfo java.util.Iterator
      StackMap stack:
            aload 1 /* list */
            aload 2 /* info */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.clone:()Lorg/apache/lucene/index/SegmentCommitInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.apache.lucene.index.SegmentCommitInfo info
         5: .line 983
      StackMap locals: org.apache.lucene.index.SegmentInfos java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 987
            aload 1 /* list */
            areturn
        end local 1 // java.util.List list
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/lucene/index/SegmentInfos;
            1    7     1  list  Ljava/util/List<Lorg/apache/lucene/index/SegmentCommitInfo;>;
            3    5     2  info  Lorg/apache/lucene/index/SegmentCommitInfo;
    Signature: ()Ljava/util/List<Lorg/apache/lucene/index/SegmentCommitInfo;>;

  void rollbackSegmentInfos(java.util.List<org.apache.lucene.index.SegmentCommitInfo>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // java.util.List infos
         0: .line 991
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.clear:()V
         1: .line 992
            aload 0 /* this */
            aload 1 /* infos */
            invokevirtual org.apache.lucene.index.SegmentInfos.addAll:(Ljava/lang/Iterable;)V
         2: .line 993
            return
        end local 1 // java.util.List infos
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/lucene/index/SegmentInfos;
            0    3     1  infos  Ljava/util/List<Lorg/apache/lucene/index/SegmentCommitInfo;>;
    Signature: (Ljava/util/List<Lorg/apache/lucene/index/SegmentCommitInfo;>;)V
    MethodParameters:
       Name  Flags
      infos  

  public java.util.Iterator<org.apache.lucene.index.SegmentCommitInfo> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 999
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.SegmentInfos.asList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;
    Signature: ()Ljava/util/Iterator<Lorg/apache/lucene/index/SegmentCommitInfo;>;

  public java.util.List<org.apache.lucene.index.SegmentCommitInfo> asList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 1004
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;
    Signature: ()Ljava/util/List<Lorg/apache/lucene/index/SegmentCommitInfo;>;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 1009
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ireturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public void add(org.apache.lucene.index.SegmentCommitInfo);
    descriptor: (Lorg/apache/lucene/index/SegmentCommitInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.SegmentCommitInfo si
         0: .line 1014
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            bipush 7
            if_icmplt 2
            aload 1 /* si */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            getfield org.apache.lucene.index.SegmentInfo.minVersion:Lorg/apache/lucene/util/Version;
            ifnonnull 2
         1: .line 1015
            new java.lang.IllegalArgumentException
            dup
            ldc "All segments must record the minVersion for indices created on or after Lucene 7"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1018
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            aload 1 /* si */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1019
            return
        end local 1 // org.apache.lucene.index.SegmentCommitInfo si
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    4     1    si  Lorg/apache/lucene/index/SegmentCommitInfo;
    MethodParameters:
      Name  Flags
      si    

  public void addAll(java.lang.Iterable<org.apache.lucene.index.SegmentCommitInfo>);
    descriptor: (Ljava/lang/Iterable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // java.lang.Iterable sis
         0: .line 1023
            aload 1 /* sis */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.apache.lucene.index.SegmentInfos java.lang.Iterable top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.SegmentCommitInfo
            astore 2 /* si */
        start local 2 // org.apache.lucene.index.SegmentCommitInfo si
         2: .line 1024
            aload 0 /* this */
            aload 2 /* si */
            invokevirtual org.apache.lucene.index.SegmentInfos.add:(Lorg/apache/lucene/index/SegmentCommitInfo;)V
        end local 2 // org.apache.lucene.index.SegmentCommitInfo si
         3: .line 1023
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1026
            return
        end local 1 // java.lang.Iterable sis
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    5     1   sis  Ljava/lang/Iterable<Lorg/apache/lucene/index/SegmentCommitInfo;>;
            2    3     2    si  Lorg/apache/lucene/index/SegmentCommitInfo;
    Signature: (Ljava/lang/Iterable<Lorg/apache/lucene/index/SegmentCommitInfo;>;)V
    MethodParameters:
      Name  Flags
      sis   

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 1030
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 1031
            return
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public boolean remove(org.apache.lucene.index.SegmentCommitInfo);
    descriptor: (Lorg/apache/lucene/index/SegmentCommitInfo;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.SegmentCommitInfo si
         0: .line 1037
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            aload 1 /* si */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.lucene.index.SegmentCommitInfo si
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    1     1    si  Lorg/apache/lucene/index/SegmentCommitInfo;
    MethodParameters:
      Name  Flags
      si    

  void remove(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // int index
         0: .line 1045
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            iload 1 /* index */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
         1: .line 1046
            return
        end local 1 // int index
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/lucene/index/SegmentInfos;
            0    2     1  index  I
    MethodParameters:
       Name  Flags
      index  

  boolean contains(org.apache.lucene.index.SegmentCommitInfo);
    descriptor: (Lorg/apache/lucene/index/SegmentCommitInfo;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.SegmentCommitInfo si
         0: .line 1053
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            aload 1 /* si */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.lucene.index.SegmentCommitInfo si
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    1     1    si  Lorg/apache/lucene/index/SegmentCommitInfo;
    MethodParameters:
      Name  Flags
      si    

  int indexOf(org.apache.lucene.index.SegmentCommitInfo);
    descriptor: (Lorg/apache/lucene/index/SegmentCommitInfo;)I
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.index.SegmentInfos this
        start local 1 // org.apache.lucene.index.SegmentCommitInfo si
         0: .line 1061
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.segments:Ljava/util/List;
            aload 1 /* si */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            ireturn
        end local 1 // org.apache.lucene.index.SegmentCommitInfo si
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;
            0    1     1    si  Lorg/apache/lucene/index/SegmentCommitInfo;
    MethodParameters:
      Name  Flags
      si    

  public org.apache.lucene.util.Version getCommitLuceneVersion();
    descriptor: ()Lorg/apache/lucene/util/Version;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 1067
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.luceneVersion:Lorg/apache/lucene/util/Version;
            areturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public org.apache.lucene.util.Version getMinSegmentLuceneVersion();
    descriptor: ()Lorg/apache/lucene/util/Version;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 1072
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.minSegmentLuceneVersion:Lorg/apache/lucene/util/Version;
            areturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public int getIndexCreatedVersionMajor();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.SegmentInfos this
         0: .line 1080
            aload 0 /* this */
            getfield org.apache.lucene.index.SegmentInfos.indexCreatedVersionMajor:I
            ireturn
        end local 0 // org.apache.lucene.index.SegmentInfos this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/index/SegmentInfos;

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.apache.lucene.index.SegmentInfos.clone:()Lorg/apache/lucene/index/SegmentInfos;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
Signature: Ljava/lang/Object;Ljava/lang/Cloneable;Ljava/lang/Iterable<Lorg/apache/lucene/index/SegmentCommitInfo;>;
SourceFile: "SegmentInfos.java"
NestMembers:
  org.apache.lucene.index.SegmentInfos$1  org.apache.lucene.index.SegmentInfos$FindSegmentsFile
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public OneMerge = org.apache.lucene.index.MergePolicy$OneMerge of org.apache.lucene.index.MergePolicy
  org.apache.lucene.index.SegmentInfos$1
  public abstract FindSegmentsFile = org.apache.lucene.index.SegmentInfos$FindSegmentsFile of org.apache.lucene.index.SegmentInfos