public final class org.apache.lucene.index.SoftDeletesRetentionMergePolicy extends org.apache.lucene.index.OneMergeWrappingMergePolicy
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.index.SoftDeletesRetentionMergePolicy
  super_class: org.apache.lucene.index.OneMergeWrappingMergePolicy
{
  private final java.lang.String field;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.function.Supplier<org.apache.lucene.search.Query> retentionQuerySupplier;
    descriptor: Ljava/util/function/Supplier;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/Supplier<Lorg/apache/lucene/search/Query;>;

  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 46
            ldc Lorg/apache/lucene/index/SoftDeletesRetentionMergePolicy;
            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.SoftDeletesRetentionMergePolicy.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.util.function.Supplier<org.apache.lucene.search.Query>, org.apache.lucene.index.MergePolicy);
    descriptor: (Ljava/lang/String;Ljava/util/function/Supplier;Lorg/apache/lucene/index/MergePolicy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.lucene.index.SoftDeletesRetentionMergePolicy this
        start local 1 // java.lang.String field
        start local 2 // java.util.function.Supplier retentionQuerySupplier
        start local 3 // org.apache.lucene.index.MergePolicy in
         0: .line 56
            aload 0 /* this */
            aload 3 /* in */
            aload 1 /* field */
            aload 2 /* retentionQuerySupplier */
            invokedynamic apply(Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/util/function/UnaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/lucene/index/SoftDeletesRetentionMergePolicy.lambda$0(Ljava/lang/String;Ljava/util/function/Supplier;Lorg/apache/lucene/index/MergePolicy$OneMerge;)Lorg/apache/lucene/index/MergePolicy$OneMerge; (6)
                  (Lorg/apache/lucene/index/MergePolicy$OneMerge;)Lorg/apache/lucene/index/MergePolicy$OneMerge;
            invokespecial org.apache.lucene.index.OneMergeWrappingMergePolicy.<init>:(Lorg/apache/lucene/index/MergePolicy;Ljava/util/function/UnaryOperator;)V
         1: .line 67
            aload 1 /* field */
            ldc "field must not be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 68
            aload 2 /* retentionQuerySupplier */
            ldc "retentionQuerySupplier must not be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 69
            aload 0 /* this */
            aload 1 /* field */
            putfield org.apache.lucene.index.SoftDeletesRetentionMergePolicy.field:Ljava/lang/String;
         4: .line 70
            aload 0 /* this */
            aload 2 /* retentionQuerySupplier */
            putfield org.apache.lucene.index.SoftDeletesRetentionMergePolicy.retentionQuerySupplier:Ljava/util/function/Supplier;
         5: .line 71
            return
        end local 3 // org.apache.lucene.index.MergePolicy in
        end local 2 // java.util.function.Supplier retentionQuerySupplier
        end local 1 // java.lang.String field
        end local 0 // org.apache.lucene.index.SoftDeletesRetentionMergePolicy this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    6     0                    this  Lorg/apache/lucene/index/SoftDeletesRetentionMergePolicy;
            0    6     1                   field  Ljava/lang/String;
            0    6     2  retentionQuerySupplier  Ljava/util/function/Supplier<Lorg/apache/lucene/search/Query;>;
            0    6     3                      in  Lorg/apache/lucene/index/MergePolicy;
    Signature: (Ljava/lang/String;Ljava/util/function/Supplier<Lorg/apache/lucene/search/Query;>;Lorg/apache/lucene/index/MergePolicy;)V
    MethodParameters:
                        Name  Flags
      field                   
      retentionQuerySupplier  
      in                      

  public boolean keepFullyDeletedSegment(org.apache.lucene.util.IOSupplier<org.apache.lucene.index.CodecReader>);
    descriptor: (Lorg/apache/lucene/util/IOSupplier;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.apache.lucene.index.SoftDeletesRetentionMergePolicy this
        start local 1 // org.apache.lucene.util.IOSupplier readerIOSupplier
         0: .line 75
            aload 1 /* readerIOSupplier */
            invokeinterface org.apache.lucene.util.IOSupplier.get:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.CodecReader
            astore 2 /* reader */
        start local 2 // org.apache.lucene.index.CodecReader reader
         1: .line 77
            aload 0 /* this */
            getfield org.apache.lucene.index.SoftDeletesRetentionMergePolicy.retentionQuerySupplier:Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast org.apache.lucene.search.Query
            aload 2 /* reader */
            aconst_null
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.maxDoc:()I
            invokestatic org.apache.lucene.index.FilterCodecReader.wrapLiveDocs:(Lorg/apache/lucene/index/CodecReader;Lorg/apache/lucene/util/Bits;I)Lorg/apache/lucene/index/FilterCodecReader;
            invokestatic org.apache.lucene.index.SoftDeletesRetentionMergePolicy.getScorer:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/index/CodecReader;)Lorg/apache/lucene/search/Scorer;
            astore 3 /* scorer */
        start local 3 // org.apache.lucene.search.Scorer scorer
         2: .line 78
            aload 3 /* scorer */
            ifnull 8
         3: .line 79
            aload 3 /* scorer */
            invokevirtual org.apache.lucene.search.Scorer.iterator:()Lorg/apache/lucene/search/DocIdSetIterator;
            astore 4 /* iterator */
        start local 4 // org.apache.lucene.search.DocIdSetIterator iterator
         4: .line 80
            aload 4 /* iterator */
            invokevirtual org.apache.lucene.search.DocIdSetIterator.nextDoc:()I
            ldc 2147483647
            if_icmpeq 5
            iconst_1
            goto 6
      StackMap locals: org.apache.lucene.index.CodecReader org.apache.lucene.search.Scorer org.apache.lucene.search.DocIdSetIterator
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* atLeastOneHit */
        start local 5 // boolean atLeastOneHit
         7: .line 81
            iload 5 /* atLeastOneHit */
            ireturn
        end local 5 // boolean atLeastOneHit
        end local 4 // org.apache.lucene.search.DocIdSetIterator iterator
         8: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* readerIOSupplier */
            invokespecial org.apache.lucene.index.OneMergeWrappingMergePolicy.keepFullyDeletedSegment:(Lorg/apache/lucene/util/IOSupplier;)Z
            ireturn
        end local 3 // org.apache.lucene.search.Scorer scorer
        end local 2 // org.apache.lucene.index.CodecReader reader
        end local 1 // org.apache.lucene.util.IOSupplier readerIOSupplier
        end local 0 // org.apache.lucene.index.SoftDeletesRetentionMergePolicy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/apache/lucene/index/SoftDeletesRetentionMergePolicy;
            0    9     1  readerIOSupplier  Lorg/apache/lucene/util/IOSupplier<Lorg/apache/lucene/index/CodecReader;>;
            1    9     2            reader  Lorg/apache/lucene/index/CodecReader;
            2    9     3            scorer  Lorg/apache/lucene/search/Scorer;
            4    8     4          iterator  Lorg/apache/lucene/search/DocIdSetIterator;
            7    8     5     atLeastOneHit  Z
    Exceptions:
      throws java.io.IOException
    Signature: (Lorg/apache/lucene/util/IOSupplier<Lorg/apache/lucene/index/CodecReader;>;)Z
    MethodParameters:
                  Name  Flags
      readerIOSupplier  

  static org.apache.lucene.index.CodecReader applyRetentionQuery(java.lang.String, org.apache.lucene.search.Query, org.apache.lucene.index.CodecReader);
    descriptor: (Ljava/lang/String;Lorg/apache/lucene/search/Query;Lorg/apache/lucene/index/CodecReader;)Lorg/apache/lucene/index/CodecReader;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.lang.String softDeleteField
        start local 1 // org.apache.lucene.search.Query retentionQuery
        start local 2 // org.apache.lucene.index.CodecReader reader
         0: .line 88
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.getLiveDocs:()Lorg/apache/lucene/util/Bits;
            astore 3 /* liveDocs */
        start local 3 // org.apache.lucene.util.Bits liveDocs
         1: .line 89
            aload 3 /* liveDocs */
            ifnonnull 3
         2: .line 90
            aload 2 /* reader */
            areturn
         3: .line 92
      StackMap locals: org.apache.lucene.util.Bits
      StackMap stack:
            aload 2 /* reader */
            new org.apache.lucene.index.SoftDeletesRetentionMergePolicy$2
            dup
            aload 3 /* liveDocs */
            invokespecial org.apache.lucene.index.SoftDeletesRetentionMergePolicy$2.<init>:(Lorg/apache/lucene/util/Bits;)V
         4: .line 102
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.maxDoc:()I
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.numDocs:()I
            isub
         5: .line 92
            invokestatic org.apache.lucene.index.FilterCodecReader.wrapLiveDocs:(Lorg/apache/lucene/index/CodecReader;Lorg/apache/lucene/util/Bits;I)Lorg/apache/lucene/index/FilterCodecReader;
            astore 4 /* wrappedReader */
        start local 4 // org.apache.lucene.index.CodecReader wrappedReader
         6: .line 103
            new org.apache.lucene.search.BooleanQuery$Builder
            dup
            invokespecial org.apache.lucene.search.BooleanQuery$Builder.<init>:()V
            astore 5 /* builder */
        start local 5 // org.apache.lucene.search.BooleanQuery$Builder builder
         7: .line 104
            aload 5 /* builder */
            new org.apache.lucene.search.DocValuesFieldExistsQuery
            dup
            aload 0 /* softDeleteField */
            invokespecial org.apache.lucene.search.DocValuesFieldExistsQuery.<init>:(Ljava/lang/String;)V
            getstatic org.apache.lucene.search.BooleanClause$Occur.FILTER:Lorg/apache/lucene/search/BooleanClause$Occur;
            invokevirtual org.apache.lucene.search.BooleanQuery$Builder.add:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/BooleanClause$Occur;)Lorg/apache/lucene/search/BooleanQuery$Builder;
            pop
         8: .line 105
            aload 5 /* builder */
            aload 1 /* retentionQuery */
            getstatic org.apache.lucene.search.BooleanClause$Occur.FILTER:Lorg/apache/lucene/search/BooleanClause$Occur;
            invokevirtual org.apache.lucene.search.BooleanQuery$Builder.add:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/BooleanClause$Occur;)Lorg/apache/lucene/search/BooleanQuery$Builder;
            pop
         9: .line 106
            aload 5 /* builder */
            invokevirtual org.apache.lucene.search.BooleanQuery$Builder.build:()Lorg/apache/lucene/search/BooleanQuery;
            aload 4 /* wrappedReader */
            invokestatic org.apache.lucene.index.SoftDeletesRetentionMergePolicy.getScorer:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/index/CodecReader;)Lorg/apache/lucene/search/Scorer;
            astore 6 /* scorer */
        start local 6 // org.apache.lucene.search.Scorer scorer
        10: .line 107
            aload 6 /* scorer */
            ifnull 20
        11: .line 108
            aload 3 /* liveDocs */
            invokestatic org.apache.lucene.util.FixedBitSet.copyOf:(Lorg/apache/lucene/util/Bits;)Lorg/apache/lucene/util/FixedBitSet;
            astore 7 /* cloneLiveDocs */
        start local 7 // org.apache.lucene.util.FixedBitSet cloneLiveDocs
        12: .line 109
            aload 6 /* scorer */
            invokevirtual org.apache.lucene.search.Scorer.iterator:()Lorg/apache/lucene/search/DocIdSetIterator;
            astore 8 /* iterator */
        start local 8 // org.apache.lucene.search.DocIdSetIterator iterator
        13: .line 110
            iconst_0
            istore 9 /* numExtraLiveDocs */
        start local 9 // int numExtraLiveDocs
        14: .line 111
            goto 17
        15: .line 112
      StackMap locals: java.lang.String org.apache.lucene.search.Query org.apache.lucene.index.CodecReader org.apache.lucene.util.Bits org.apache.lucene.index.CodecReader org.apache.lucene.search.BooleanQuery$Builder org.apache.lucene.search.Scorer org.apache.lucene.util.FixedBitSet org.apache.lucene.search.DocIdSetIterator int
      StackMap stack:
            aload 7 /* cloneLiveDocs */
            aload 8 /* iterator */
            invokevirtual org.apache.lucene.search.DocIdSetIterator.docID:()I
            invokevirtual org.apache.lucene.util.FixedBitSet.getAndSet:(I)Z
            ifne 17
        16: .line 114
            iinc 9 /* numExtraLiveDocs */ 1
        17: .line 111
      StackMap locals:
      StackMap stack:
            aload 8 /* iterator */
            invokevirtual org.apache.lucene.search.DocIdSetIterator.nextDoc:()I
            ldc 2147483647
            if_icmpne 15
        18: .line 117
            getstatic org.apache.lucene.index.SoftDeletesRetentionMergePolicy.$assertionsDisabled:Z
            ifne 19
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.numDocs:()I
            iload 9 /* numExtraLiveDocs */
            iadd
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.maxDoc:()I
            if_icmple 19
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "numDocs: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.numDocs:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " numExtraLiveDocs: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* numExtraLiveDocs */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " maxDoc: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.maxDoc:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        19: .line 118
      StackMap locals:
      StackMap stack:
            aload 2 /* reader */
            aload 7 /* cloneLiveDocs */
            aload 2 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.numDocs:()I
            iload 9 /* numExtraLiveDocs */
            iadd
            invokestatic org.apache.lucene.index.FilterCodecReader.wrapLiveDocs:(Lorg/apache/lucene/index/CodecReader;Lorg/apache/lucene/util/Bits;I)Lorg/apache/lucene/index/FilterCodecReader;
            areturn
        end local 9 // int numExtraLiveDocs
        end local 8 // org.apache.lucene.search.DocIdSetIterator iterator
        end local 7 // org.apache.lucene.util.FixedBitSet cloneLiveDocs
        20: .line 120
      StackMap locals:
      StackMap stack:
            aload 2 /* reader */
            areturn
        end local 6 // org.apache.lucene.search.Scorer scorer
        end local 5 // org.apache.lucene.search.BooleanQuery$Builder builder
        end local 4 // org.apache.lucene.index.CodecReader wrappedReader
        end local 3 // org.apache.lucene.util.Bits liveDocs
        end local 2 // org.apache.lucene.index.CodecReader reader
        end local 1 // org.apache.lucene.search.Query retentionQuery
        end local 0 // java.lang.String softDeleteField
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0   softDeleteField  Ljava/lang/String;
            0   21     1    retentionQuery  Lorg/apache/lucene/search/Query;
            0   21     2            reader  Lorg/apache/lucene/index/CodecReader;
            1   21     3          liveDocs  Lorg/apache/lucene/util/Bits;
            6   21     4     wrappedReader  Lorg/apache/lucene/index/CodecReader;
            7   21     5           builder  Lorg/apache/lucene/search/BooleanQuery$Builder;
           10   21     6            scorer  Lorg/apache/lucene/search/Scorer;
           12   20     7     cloneLiveDocs  Lorg/apache/lucene/util/FixedBitSet;
           13   20     8          iterator  Lorg/apache/lucene/search/DocIdSetIterator;
           14   20     9  numExtraLiveDocs  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      softDeleteField  
      retentionQuery   
      reader           

  private static org.apache.lucene.search.Scorer getScorer(org.apache.lucene.search.Query, org.apache.lucene.index.CodecReader);
    descriptor: (Lorg/apache/lucene/search/Query;Lorg/apache/lucene/index/CodecReader;)Lorg/apache/lucene/search/Scorer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.lucene.search.Query query
        start local 1 // org.apache.lucene.index.CodecReader reader
         0: .line 125
            new org.apache.lucene.search.IndexSearcher
            dup
            aload 1 /* reader */
            invokespecial org.apache.lucene.search.IndexSearcher.<init>:(Lorg/apache/lucene/index/IndexReader;)V
            astore 2 /* s */
        start local 2 // org.apache.lucene.search.IndexSearcher s
         1: .line 126
            aload 2 /* s */
            aconst_null
            invokevirtual org.apache.lucene.search.IndexSearcher.setQueryCache:(Lorg/apache/lucene/search/QueryCache;)V
         2: .line 127
            aload 2 /* s */
            aload 2 /* s */
            aload 0 /* query */
            invokevirtual org.apache.lucene.search.IndexSearcher.rewrite:(Lorg/apache/lucene/search/Query;)Lorg/apache/lucene/search/Query;
            getstatic org.apache.lucene.search.ScoreMode.COMPLETE_NO_SCORES:Lorg/apache/lucene/search/ScoreMode;
            fconst_1
            invokevirtual org.apache.lucene.search.IndexSearcher.createWeight:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/ScoreMode;F)Lorg/apache/lucene/search/Weight;
            astore 3 /* weight */
        start local 3 // org.apache.lucene.search.Weight weight
         3: .line 128
            aload 3 /* weight */
            aload 1 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.getContext:()Lorg/apache/lucene/index/LeafReaderContext;
            invokevirtual org.apache.lucene.search.Weight.scorer:(Lorg/apache/lucene/index/LeafReaderContext;)Lorg/apache/lucene/search/Scorer;
            areturn
        end local 3 // org.apache.lucene.search.Weight weight
        end local 2 // org.apache.lucene.search.IndexSearcher s
        end local 1 // org.apache.lucene.index.CodecReader reader
        end local 0 // org.apache.lucene.search.Query query
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0   query  Lorg/apache/lucene/search/Query;
            0    4     1  reader  Lorg/apache/lucene/index/CodecReader;
            1    4     2       s  Lorg/apache/lucene/search/IndexSearcher;
            3    4     3  weight  Lorg/apache/lucene/search/Weight;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      query   
      reader  

  public int numDeletesToMerge(org.apache.lucene.index.SegmentCommitInfo, int, org.apache.lucene.util.IOSupplier<org.apache.lucene.index.CodecReader>);
    descriptor: (Lorg/apache/lucene/index/SegmentCommitInfo;ILorg/apache/lucene/util/IOSupplier;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.apache.lucene.index.SoftDeletesRetentionMergePolicy this
        start local 1 // org.apache.lucene.index.SegmentCommitInfo info
        start local 2 // int delCount
        start local 3 // org.apache.lucene.util.IOSupplier readerSupplier
         0: .line 133
            aload 0 /* this */
            aload 1 /* info */
            iload 2 /* delCount */
            aload 3 /* readerSupplier */
            invokespecial org.apache.lucene.index.OneMergeWrappingMergePolicy.numDeletesToMerge:(Lorg/apache/lucene/index/SegmentCommitInfo;ILorg/apache/lucene/util/IOSupplier;)I
            istore 4 /* numDeletesToMerge */
        start local 4 // int numDeletesToMerge
         1: .line 134
            iload 4 /* numDeletesToMerge */
            ifeq 17
            aload 1 /* info */
            invokevirtual org.apache.lucene.index.SegmentCommitInfo.getSoftDelCount:()I
            ifle 17
         2: .line 135
            aload 3 /* readerSupplier */
            invokeinterface org.apache.lucene.util.IOSupplier.get:()Ljava/lang/Object;
            checkcast org.apache.lucene.index.CodecReader
            astore 5 /* reader */
        start local 5 // org.apache.lucene.index.CodecReader reader
         3: .line 136
            aload 5 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.getLiveDocs:()Lorg/apache/lucene/util/Bits;
            ifnull 17
         4: .line 137
            new org.apache.lucene.search.BooleanQuery$Builder
            dup
            invokespecial org.apache.lucene.search.BooleanQuery$Builder.<init>:()V
            astore 6 /* builder */
        start local 6 // org.apache.lucene.search.BooleanQuery$Builder builder
         5: .line 138
            aload 6 /* builder */
            new org.apache.lucene.search.DocValuesFieldExistsQuery
            dup
            aload 0 /* this */
            getfield org.apache.lucene.index.SoftDeletesRetentionMergePolicy.field:Ljava/lang/String;
            invokespecial org.apache.lucene.search.DocValuesFieldExistsQuery.<init>:(Ljava/lang/String;)V
            getstatic org.apache.lucene.search.BooleanClause$Occur.FILTER:Lorg/apache/lucene/search/BooleanClause$Occur;
            invokevirtual org.apache.lucene.search.BooleanQuery$Builder.add:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/BooleanClause$Occur;)Lorg/apache/lucene/search/BooleanQuery$Builder;
            pop
         6: .line 139
            aload 6 /* builder */
            aload 0 /* this */
            getfield org.apache.lucene.index.SoftDeletesRetentionMergePolicy.retentionQuerySupplier:Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast org.apache.lucene.search.Query
            getstatic org.apache.lucene.search.BooleanClause$Occur.FILTER:Lorg/apache/lucene/search/BooleanClause$Occur;
            invokevirtual org.apache.lucene.search.BooleanQuery$Builder.add:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/BooleanClause$Occur;)Lorg/apache/lucene/search/BooleanQuery$Builder;
            pop
         7: .line 140
            aload 6 /* builder */
            invokevirtual org.apache.lucene.search.BooleanQuery$Builder.build:()Lorg/apache/lucene/search/BooleanQuery;
            aload 5 /* reader */
            aconst_null
            aload 5 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.maxDoc:()I
            invokestatic org.apache.lucene.index.FilterCodecReader.wrapLiveDocs:(Lorg/apache/lucene/index/CodecReader;Lorg/apache/lucene/util/Bits;I)Lorg/apache/lucene/index/FilterCodecReader;
            invokestatic org.apache.lucene.index.SoftDeletesRetentionMergePolicy.getScorer:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/index/CodecReader;)Lorg/apache/lucene/search/Scorer;
            astore 7 /* scorer */
        start local 7 // org.apache.lucene.search.Scorer scorer
         8: .line 141
            aload 7 /* scorer */
            ifnull 17
         9: .line 142
            aload 7 /* scorer */
            invokevirtual org.apache.lucene.search.Scorer.iterator:()Lorg/apache/lucene/search/DocIdSetIterator;
            astore 8 /* iterator */
        start local 8 // org.apache.lucene.search.DocIdSetIterator iterator
        10: .line 143
            aload 5 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.getLiveDocs:()Lorg/apache/lucene/util/Bits;
            astore 9 /* liveDocs */
        start local 9 // org.apache.lucene.util.Bits liveDocs
        11: .line 144
            aload 5 /* reader */
            invokevirtual org.apache.lucene.index.CodecReader.numDeletedDocs:()I
            istore 10 /* numDeletedDocs */
        start local 10 // int numDeletedDocs
        12: .line 145
            goto 15
        13: .line 146
      StackMap locals: org.apache.lucene.index.SoftDeletesRetentionMergePolicy org.apache.lucene.index.SegmentCommitInfo int org.apache.lucene.util.IOSupplier int org.apache.lucene.index.CodecReader org.apache.lucene.search.BooleanQuery$Builder org.apache.lucene.search.Scorer org.apache.lucene.search.DocIdSetIterator org.apache.lucene.util.Bits int
      StackMap stack:
            aload 9 /* liveDocs */
            aload 8 /* iterator */
            invokevirtual org.apache.lucene.search.DocIdSetIterator.docID:()I
            invokeinterface org.apache.lucene.util.Bits.get:(I)Z
            ifne 15
        14: .line 147
            iinc 10 /* numDeletedDocs */ -1
        15: .line 145
      StackMap locals:
      StackMap stack:
            aload 8 /* iterator */
            invokevirtual org.apache.lucene.search.DocIdSetIterator.nextDoc:()I
            ldc 2147483647
            if_icmpne 13
        16: .line 150
            iload 10 /* numDeletedDocs */
            ireturn
        end local 10 // int numDeletedDocs
        end local 9 // org.apache.lucene.util.Bits liveDocs
        end local 8 // org.apache.lucene.search.DocIdSetIterator iterator
        end local 7 // org.apache.lucene.search.Scorer scorer
        end local 6 // org.apache.lucene.search.BooleanQuery$Builder builder
        end local 5 // org.apache.lucene.index.CodecReader reader
        17: .line 154
      StackMap locals: org.apache.lucene.index.SoftDeletesRetentionMergePolicy org.apache.lucene.index.SegmentCommitInfo int org.apache.lucene.util.IOSupplier int
      StackMap stack:
            getstatic org.apache.lucene.index.SoftDeletesRetentionMergePolicy.$assertionsDisabled:Z
            ifne 18
            iload 4 /* numDeletesToMerge */
            ifge 18
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "numDeletesToMerge: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* numDeletesToMerge */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        18: .line 155
      StackMap locals:
      StackMap stack:
            getstatic org.apache.lucene.index.SoftDeletesRetentionMergePolicy.$assertionsDisabled:Z
            ifne 19
            iload 4 /* numDeletesToMerge */
            aload 1 /* info */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            invokevirtual org.apache.lucene.index.SegmentInfo.maxDoc:()I
            if_icmple 19
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "numDeletesToMerge: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* numDeletesToMerge */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " maxDoc:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* info */
            getfield org.apache.lucene.index.SegmentCommitInfo.info:Lorg/apache/lucene/index/SegmentInfo;
            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;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        19: .line 156
      StackMap locals:
      StackMap stack:
            iload 4 /* numDeletesToMerge */
            ireturn
        end local 4 // int numDeletesToMerge
        end local 3 // org.apache.lucene.util.IOSupplier readerSupplier
        end local 2 // int delCount
        end local 1 // org.apache.lucene.index.SegmentCommitInfo info
        end local 0 // org.apache.lucene.index.SoftDeletesRetentionMergePolicy this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   20     0               this  Lorg/apache/lucene/index/SoftDeletesRetentionMergePolicy;
            0   20     1               info  Lorg/apache/lucene/index/SegmentCommitInfo;
            0   20     2           delCount  I
            0   20     3     readerSupplier  Lorg/apache/lucene/util/IOSupplier<Lorg/apache/lucene/index/CodecReader;>;
            1   20     4  numDeletesToMerge  I
            3   17     5             reader  Lorg/apache/lucene/index/CodecReader;
            5   17     6            builder  Lorg/apache/lucene/search/BooleanQuery$Builder;
            8   17     7             scorer  Lorg/apache/lucene/search/Scorer;
           10   17     8           iterator  Lorg/apache/lucene/search/DocIdSetIterator;
           11   17     9           liveDocs  Lorg/apache/lucene/util/Bits;
           12   17    10     numDeletedDocs  I
    Exceptions:
      throws java.io.IOException
    Signature: (Lorg/apache/lucene/index/SegmentCommitInfo;ILorg/apache/lucene/util/IOSupplier<Lorg/apache/lucene/index/CodecReader;>;)I
    MethodParameters:
                Name  Flags
      info            
      delCount        
      readerSupplier  

  private static org.apache.lucene.index.MergePolicy$OneMerge lambda$0(java.lang.String, java.util.function.Supplier, org.apache.lucene.index.MergePolicy$OneMerge);
    descriptor: (Ljava/lang/String;Ljava/util/function/Supplier;Lorg/apache/lucene/index/MergePolicy$OneMerge;)Lorg/apache/lucene/index/MergePolicy$OneMerge;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=3
        start local 2 // org.apache.lucene.index.MergePolicy$OneMerge toWrap
         0: .line 56
            new org.apache.lucene.index.SoftDeletesRetentionMergePolicy$1
            dup
            aload 2 /* toWrap */
            getfield org.apache.lucene.index.MergePolicy$OneMerge.segments:Ljava/util/List;
            aload 2 /* toWrap */
            aload 0
            aload 1
            invokespecial org.apache.lucene.index.SoftDeletesRetentionMergePolicy$1.<init>:(Ljava/util/List;Lorg/apache/lucene/index/MergePolicy$OneMerge;Ljava/lang/String;Ljava/util/function/Supplier;)V
         1: .line 66
            areturn
        end local 2 // org.apache.lucene.index.MergePolicy$OneMerge toWrap
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     2  toWrap  Lorg/apache/lucene/index/MergePolicy$OneMerge;
}
SourceFile: "SoftDeletesRetentionMergePolicy.java"
NestMembers:
  org.apache.lucene.index.SoftDeletesRetentionMergePolicy$1  org.apache.lucene.index.SoftDeletesRetentionMergePolicy$2  org.apache.lucene.index.SoftDeletesRetentionMergePolicy$3
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public OneMerge = org.apache.lucene.index.MergePolicy$OneMerge of org.apache.lucene.index.MergePolicy
  org.apache.lucene.index.SoftDeletesRetentionMergePolicy$1
  org.apache.lucene.index.SoftDeletesRetentionMergePolicy$2
  public Occur = org.apache.lucene.search.BooleanClause$Occur of org.apache.lucene.search.BooleanClause
  public Builder = org.apache.lucene.search.BooleanQuery$Builder of org.apache.lucene.search.BooleanQuery