class com.mongodb.client.internal.MongoCollectionImpl<TDocument> implements com.mongodb.client.MongoCollection<TDocument>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.client.internal.MongoCollectionImpl
  super_class: java.lang.Object
{
  private final com.mongodb.MongoNamespace namespace;
    descriptor: Lcom/mongodb/MongoNamespace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<TDocument> documentClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<TTDocument;>;

  private final com.mongodb.ReadPreference readPreference;
    descriptor: Lcom/mongodb/ReadPreference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bson.codecs.configuration.CodecRegistry codecRegistry;
    descriptor: Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.WriteConcern writeConcern;
    descriptor: Lcom/mongodb/WriteConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean retryWrites;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean retryReads;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.ReadConcern readConcern;
    descriptor: Lcom/mongodb/ReadConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.operation.SyncOperations<TDocument> operations;
    descriptor: Lcom/mongodb/internal/operation/SyncOperations;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/mongodb/internal/operation/SyncOperations<TTDocument;>;

  private final org.bson.UuidRepresentation uuidRepresentation;
    descriptor: Lorg/bson/UuidRepresentation;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.client.internal.OperationExecutor executor;
    descriptor: Lcom/mongodb/client/internal/OperationExecutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(com.mongodb.MongoNamespace, java.lang.Class<TDocument>, org.bson.codecs.configuration.CodecRegistry, com.mongodb.ReadPreference, com.mongodb.WriteConcern, boolean, boolean, com.mongodb.ReadConcern, org.bson.UuidRepresentation, com.mongodb.client.internal.OperationExecutor);
    descriptor: (Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
    flags: (0x0000) 
    Code:
      stack=11, locals=11, args_size=11
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // java.lang.Class documentClass
        start local 3 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // com.mongodb.WriteConcern writeConcern
        start local 6 // boolean retryWrites
        start local 7 // boolean retryReads
        start local 8 // com.mongodb.ReadConcern readConcern
        start local 9 // org.bson.UuidRepresentation uuidRepresentation
        start local 10 // com.mongodb.client.internal.OperationExecutor executor
         0: .line 99
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            aload 0 /* this */
            ldc "namespace"
            aload 1 /* namespace */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.MongoNamespace
            putfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
         2: .line 104
            aload 0 /* this */
            ldc "documentClass"
            aload 2 /* documentClass */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            putfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
         3: .line 105
            aload 0 /* this */
            ldc "codecRegistry"
            aload 3 /* codecRegistry */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.configuration.CodecRegistry
            putfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         4: .line 106
            aload 0 /* this */
            ldc "readPreference"
            aload 4 /* readPreference */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadPreference
            putfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
         5: .line 107
            aload 0 /* this */
            ldc "writeConcern"
            aload 5 /* writeConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcern
            putfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
         6: .line 108
            aload 0 /* this */
            iload 6 /* retryWrites */
            putfield com.mongodb.client.internal.MongoCollectionImpl.retryWrites:Z
         7: .line 109
            aload 0 /* this */
            iload 7 /* retryReads */
            putfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
         8: .line 110
            aload 0 /* this */
            ldc "readConcern"
            aload 8 /* readConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadConcern
            putfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
         9: .line 111
            aload 0 /* this */
            ldc "executor"
            aload 10 /* executor */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.client.internal.OperationExecutor
            putfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
        10: .line 112
            aload 0 /* this */
            ldc "uuidRepresentation"
            aload 9 /* uuidRepresentation */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.UuidRepresentation
            putfield com.mongodb.client.internal.MongoCollectionImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
        11: .line 113
            aload 0 /* this */
            new com.mongodb.internal.operation.SyncOperations
            dup
            aload 1 /* namespace */
            aload 2 /* documentClass */
            aload 4 /* readPreference */
            aload 3 /* codecRegistry */
            aload 8 /* readConcern */
            aload 5 /* writeConcern */
        12: .line 114
            iload 6 /* retryWrites */
            iload 7 /* retryReads */
            invokespecial com.mongodb.internal.operation.SyncOperations.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;ZZ)V
        13: .line 113
            putfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
        14: .line 115
            return
        end local 10 // com.mongodb.client.internal.OperationExecutor executor
        end local 9 // org.bson.UuidRepresentation uuidRepresentation
        end local 8 // com.mongodb.ReadConcern readConcern
        end local 7 // boolean retryReads
        end local 6 // boolean retryWrites
        end local 5 // com.mongodb.WriteConcern writeConcern
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 2 // java.lang.Class documentClass
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0                this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0   15     1           namespace  Lcom/mongodb/MongoNamespace;
            0   15     2       documentClass  Ljava/lang/Class<TTDocument;>;
            0   15     3       codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0   15     4      readPreference  Lcom/mongodb/ReadPreference;
            0   15     5        writeConcern  Lcom/mongodb/WriteConcern;
            0   15     6         retryWrites  Z
            0   15     7          retryReads  Z
            0   15     8         readConcern  Lcom/mongodb/ReadConcern;
            0   15     9  uuidRepresentation  Lorg/bson/UuidRepresentation;
            0   15    10            executor  Lcom/mongodb/client/internal/OperationExecutor;
    Signature: (Lcom/mongodb/MongoNamespace;Ljava/lang/Class<TTDocument;>;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
    MethodParameters:
                    Name  Flags
      namespace           final
      documentClass       final
      codecRegistry       final
      readPreference      final
      writeConcern        final
      retryWrites         final
      retryReads          final
      readConcern         final
      uuidRepresentation  final
      executor            final

  public com.mongodb.MongoNamespace getNamespace();
    descriptor: ()Lcom/mongodb/MongoNamespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 119
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public java.lang.Class<TDocument> getDocumentClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 124
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
    Signature: ()Ljava/lang/Class<TTDocument;>;

  public org.bson.codecs.configuration.CodecRegistry getCodecRegistry();
    descriptor: ()Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 129
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public com.mongodb.ReadPreference getReadPreference();
    descriptor: ()Lcom/mongodb/ReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 134
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public com.mongodb.WriteConcern getWriteConcern();
    descriptor: ()Lcom/mongodb/WriteConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 139
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public com.mongodb.ReadConcern getReadConcern();
    descriptor: ()Lcom/mongodb/ReadConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 144
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public <NewTDocument> com.mongodb.client.MongoCollection<NewTDocument> withDocumentClass(java.lang.Class<NewTDocument>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.Class clazz
         0: .line 149
            new com.mongodb.client.internal.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 1 /* clazz */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryWrites:Z
         1: .line 150
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 149
            invokespecial com.mongodb.client.internal.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clazz  Ljava/lang/Class<TNewTDocument;>;
    Signature: <NewTDocument:Ljava/lang/Object;>(Ljava/lang/Class<TNewTDocument;>;)Lcom/mongodb/client/MongoCollection<TNewTDocument;>;
    MethodParameters:
       Name  Flags
      clazz  final

  public com.mongodb.client.MongoCollection<TDocument> withCodecRegistry(org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 155
            new com.mongodb.client.internal.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 1 /* codecRegistry */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            invokestatic org.bson.internal.CodecRegistryHelper.createRegistry:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/UuidRepresentation;)Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 156
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 155
            invokespecial com.mongodb.client.internal.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    Signature: (Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/client/MongoCollection<TTDocument;>;
    MethodParameters:
               Name  Flags
      codecRegistry  final

  public com.mongodb.client.MongoCollection<TDocument> withReadPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.ReadPreference readPreference
         0: .line 161
            new com.mongodb.client.internal.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 1 /* readPreference */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryWrites:Z
         1: .line 162
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 161
            invokespecial com.mongodb.client.internal.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadPreference readPreference
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  readPreference  Lcom/mongodb/ReadPreference;
    Signature: (Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoCollection<TTDocument;>;
    MethodParameters:
                Name  Flags
      readPreference  final

  public com.mongodb.client.MongoCollection<TDocument> withWriteConcern(com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/WriteConcern;)Lcom/mongodb/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.WriteConcern writeConcern
         0: .line 167
            new com.mongodb.client.internal.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 1 /* writeConcern */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryWrites:Z
         1: .line 168
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 167
            invokespecial com.mongodb.client.internal.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.WriteConcern writeConcern
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  writeConcern  Lcom/mongodb/WriteConcern;
    Signature: (Lcom/mongodb/WriteConcern;)Lcom/mongodb/client/MongoCollection<TTDocument;>;
    MethodParameters:
              Name  Flags
      writeConcern  final

  public com.mongodb.client.MongoCollection<TDocument> withReadConcern(com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/ReadConcern;)Lcom/mongodb/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 173
            new com.mongodb.client.internal.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryWrites:Z
         1: .line 174
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
            aload 1 /* readConcern */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 173
            invokespecial com.mongodb.client.internal.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  readConcern  Lcom/mongodb/ReadConcern;
    Signature: (Lcom/mongodb/ReadConcern;)Lcom/mongodb/client/MongoCollection<TTDocument;>;
    MethodParameters:
             Name  Flags
      readConcern  final

  public long count();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 180
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.count:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
            lreturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public long count(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 186
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.count:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
            lreturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
    MethodParameters:
        Name  Flags
      filter  final

  public long count(org.bson.conversions.Bson, com.mongodb.client.model.CountOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.CountOptions options
         0: .line 192
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.COMMAND:Lcom/mongodb/internal/client/model/CountStrategy;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeCount:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)J
            lreturn
        end local 2 // com.mongodb.client.model.CountOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   filter  Lorg/bson/conversions/Bson;
            0    1     2  options  Lcom/mongodb/client/model/CountOptions;
    MethodParameters:
         Name  Flags
      filter   final
      options  final

  public long count(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 198
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.count:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)J
            lreturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
               Name  Flags
      clientSession  final

  public long count(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 204
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.count:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
            lreturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public long count(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.CountOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.CountOptions options
         0: .line 210
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 211
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.COMMAND:Lcom/mongodb/internal/client/model/CountStrategy;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeCount:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)J
            lreturn
        end local 3 // com.mongodb.client.model.CountOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3        options  Lcom/mongodb/client/model/CountOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final

  public long countDocuments();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 216
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.countDocuments:(Lorg/bson/conversions/Bson;)J
            lreturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public long countDocuments(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 221
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.countDocuments:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
            lreturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
    MethodParameters:
        Name  Flags
      filter  final

  public long countDocuments(org.bson.conversions.Bson, com.mongodb.client.model.CountOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.CountOptions options
         0: .line 226
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.AGGREGATE:Lcom/mongodb/internal/client/model/CountStrategy;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeCount:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)J
            lreturn
        end local 2 // com.mongodb.client.model.CountOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   filter  Lorg/bson/conversions/Bson;
            0    1     2  options  Lcom/mongodb/client/model/CountOptions;
    MethodParameters:
         Name  Flags
      filter   final
      options  final

  public long countDocuments(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 231
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.countDocuments:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)J
            lreturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
               Name  Flags
      clientSession  final

  public long countDocuments(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 236
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.countDocuments:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
            lreturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public long countDocuments(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.CountOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.CountOptions options
         0: .line 241
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 242
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.AGGREGATE:Lcom/mongodb/internal/client/model/CountStrategy;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeCount:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)J
            lreturn
        end local 3 // com.mongodb.client.model.CountOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3        options  Lcom/mongodb/client/model/CountOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final

  public long estimatedDocumentCount();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 247
            aload 0 /* this */
            new com.mongodb.client.model.EstimatedDocumentCountOptions
            dup
            invokespecial com.mongodb.client.model.EstimatedDocumentCountOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.estimatedDocumentCount:(Lcom/mongodb/client/model/EstimatedDocumentCountOptions;)J
            lreturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public long estimatedDocumentCount(com.mongodb.client.model.EstimatedDocumentCountOptions);
    descriptor: (Lcom/mongodb/client/model/EstimatedDocumentCountOptions;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.model.EstimatedDocumentCountOptions options
         0: .line 252
            aload 0 /* this */
            aconst_null
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 1 /* options */
            invokestatic com.mongodb.internal.client.model.CountOptionsHelper.fromEstimatedDocumentCountOptions:(Lcom/mongodb/client/model/EstimatedDocumentCountOptions;)Lcom/mongodb/client/model/CountOptions;
            getstatic com.mongodb.internal.client.model.CountStrategy.COMMAND:Lcom/mongodb/internal/client/model/CountStrategy;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeCount:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)J
            lreturn
        end local 1 // com.mongodb.client.model.EstimatedDocumentCountOptions options
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  options  Lcom/mongodb/client/model/EstimatedDocumentCountOptions;
    MethodParameters:
         Name  Flags
      options  final

  private long executeCount(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.CountOptions, com.mongodb.internal.client.model.CountStrategy);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.CountOptions options
        start local 4 // com.mongodb.internal.client.model.CountStrategy countStrategy
         0: .line 257
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* options */
            aload 4 /* countStrategy */
            invokevirtual com.mongodb.internal.operation.SyncOperations.count:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)Lcom/mongodb/operation/ReadOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/ReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lreturn
        end local 4 // com.mongodb.internal.client.model.CountStrategy countStrategy
        end local 3 // com.mongodb.client.model.CountOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3        options  Lcom/mongodb/client/model/CountOptions;
            0    1     4  countStrategy  Lcom/mongodb/internal/client/model/CountStrategy;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      countStrategy  final

  public <TResult> com.mongodb.client.DistinctIterable<TResult> distinct(java.lang.String, java.lang.Class<TResult>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Class resultClass
         0: .line 262
            aload 0 /* this */
            aload 1 /* fieldName */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.distinct:(Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.lang.String fieldName
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1    fieldName  Ljava/lang/String;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/DistinctIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      fieldName    final
      resultClass  final

  public <TResult> com.mongodb.client.DistinctIterable<TResult> distinct(java.lang.String, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.String fieldName
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Class resultClass
         0: .line 267
            aload 0 /* this */
            aconst_null
            aload 1 /* fieldName */
            aload 2 /* filter */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createDistinctIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // java.lang.String fieldName
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1    fieldName  Ljava/lang/String;
            0    1     2       filter  Lorg/bson/conversions/Bson;
            0    1     3  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/DistinctIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      fieldName    final
      filter       final
      resultClass  final

  public <TResult> com.mongodb.client.DistinctIterable<TResult> distinct(com.mongodb.client.ClientSession, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.Class resultClass
         0: .line 273
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* fieldName */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.distinct:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.lang.String fieldName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2      fieldName  Ljava/lang/String;
            0    1     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/DistinctIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      fieldName      final
      resultClass    final

  public <TResult> com.mongodb.client.DistinctIterable<TResult> distinct(com.mongodb.client.ClientSession, java.lang.String, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String fieldName
        start local 3 // org.bson.conversions.Bson filter
        start local 4 // java.lang.Class resultClass
         0: .line 279
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 280
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* fieldName */
            aload 3 /* filter */
            aload 4 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createDistinctIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // org.bson.conversions.Bson filter
        end local 2 // java.lang.String fieldName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2      fieldName  Ljava/lang/String;
            0    2     3         filter  Lorg/bson/conversions/Bson;
            0    2     4    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/DistinctIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      fieldName      final
      filter         final
      resultClass    final

  private <TResult> com.mongodb.client.DistinctIterable<TResult> createDistinctIterable(com.mongodb.client.ClientSession, java.lang.String, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/DistinctIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String fieldName
        start local 3 // org.bson.conversions.Bson filter
        start local 4 // java.lang.Class resultClass
         0: .line 285
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 4 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 286
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* fieldName */
            aload 3 /* filter */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
         2: .line 285
            invokestatic com.mongodb.client.internal.MongoIterables.distinctOf:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/internal/OperationExecutor;Ljava/lang/String;Lorg/bson/conversions/Bson;Z)Lcom/mongodb/client/DistinctIterable;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // org.bson.conversions.Bson filter
        end local 2 // java.lang.String fieldName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2      fieldName  Ljava/lang/String;
            0    3     3         filter  Lorg/bson/conversions/Bson;
            0    3     4    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/DistinctIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      fieldName      final
      filter         final
      resultClass    final

  public com.mongodb.client.FindIterable<TDocument> find();
    descriptor: ()Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 291
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
    Signature: ()Lcom/mongodb/client/FindIterable<TTDocument;>;

  public <TResult> com.mongodb.client.FindIterable<TResult> find(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 296
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 1 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/FindIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.client.FindIterable<TDocument> find(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 301
            aload 0 /* this */
            aload 1 /* filter */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
    Signature: (Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable<TTDocument;>;
    MethodParameters:
        Name  Flags
      filter  final

  public <TResult> com.mongodb.client.FindIterable<TResult> find(org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Class resultClass
         0: .line 306
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1       filter  Lorg/bson/conversions/Bson;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/FindIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      filter       final
      resultClass  final

  public com.mongodb.client.FindIterable<TDocument> find(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 311
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 312
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.find:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/FindIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.client.FindIterable<TResult> find(com.mongodb.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 317
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 318
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.find:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/FindIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  public com.mongodb.client.FindIterable<TDocument> find(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 323
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 324
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.find:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public <TResult> com.mongodb.client.FindIterable<TResult> find(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Class resultClass
         0: .line 330
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 331
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/FindIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      resultClass    final

  private <TResult> com.mongodb.client.FindIterable<TResult> createFindIterable(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/client/FindIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Class resultClass
         0: .line 336
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 3 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 337
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* filter */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
         2: .line 336
            invokestatic com.mongodb.client.internal.MongoIterables.findOf:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/internal/OperationExecutor;Lorg/bson/conversions/Bson;Z)Lcom/mongodb/client/FindIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/FindIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      resultClass    final

  public com.mongodb.client.AggregateIterable<TDocument> aggregate(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
         0: .line 342
            aload 0 /* this */
            aload 1 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.aggregate:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/AggregateIterable<TTDocument;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  public <TResult> com.mongodb.client.AggregateIterable<TResult> aggregate(java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 347
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createAggregateIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1     pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/AggregateIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

  public com.mongodb.client.AggregateIterable<TDocument> aggregate(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;)Lcom/mongodb/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
         0: .line 352
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.aggregate:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/AggregateIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final

  public <TResult> com.mongodb.client.AggregateIterable<TResult> aggregate(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 358
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 359
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createAggregateIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/AggregateIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private <TResult> com.mongodb.client.AggregateIterable<TResult> createAggregateIterable(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 365
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 3 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 366
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* pipeline */
            getstatic com.mongodb.client.model.AggregationLevel.COLLECTION:Lcom/mongodb/client/model/AggregationLevel;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
         2: .line 365
            invokestatic com.mongodb.client.internal.MongoIterables.aggregateOf:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;Lcom/mongodb/client/internal/OperationExecutor;Ljava/util/List;Lcom/mongodb/client/model/AggregationLevel;Z)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/AggregateIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  public com.mongodb.client.ChangeStreamIterable<TDocument> watch();
    descriptor: ()Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 371
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.watch:(Ljava/util/List;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
    Signature: ()Lcom/mongodb/client/ChangeStreamIterable<TTDocument;>;

  public <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 376
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 1 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.client.ChangeStreamIterable<TDocument> watch(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
         0: .line 381
            aload 0 /* this */
            aload 1 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/ChangeStreamIterable<TTDocument;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  public <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 386
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createChangeStreamIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1     pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

  public com.mongodb.client.ChangeStreamIterable<TDocument> watch(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 391
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.watch:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ChangeStreamIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(com.mongodb.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 396
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.watch:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  public com.mongodb.client.ChangeStreamIterable<TDocument> watch(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
         0: .line 401
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.watch:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/ChangeStreamIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final

  public <TResult> com.mongodb.client.ChangeStreamIterable<TResult> watch(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 407
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 408
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createChangeStreamIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private <TResult> com.mongodb.client.ChangeStreamIterable<TResult> createChangeStreamIterable(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 414
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         1: .line 415
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            getstatic com.mongodb.client.model.changestream.ChangeStreamLevel.COLLECTION:Lcom/mongodb/client/model/changestream/ChangeStreamLevel;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
         2: .line 414
            invokestatic com.mongodb.client.internal.MongoIterables.changeStreamOf:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/internal/OperationExecutor;Ljava/util/List;Ljava/lang/Class;Lcom/mongodb/client/model/changestream/ChangeStreamLevel;Z)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  public com.mongodb.client.MapReduceIterable<TDocument> mapReduce(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.String mapFunction
        start local 2 // java.lang.String reduceFunction
         0: .line 420
            aload 0 /* this */
            aload 1 /* mapFunction */
            aload 2 /* reduceFunction */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.mapReduce:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MapReduceIterable;
            areturn
        end local 2 // java.lang.String reduceFunction
        end local 1 // java.lang.String mapFunction
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1     mapFunction  Ljava/lang/String;
            0    1     2  reduceFunction  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/client/MapReduceIterable<TTDocument;>;
    MethodParameters:
                Name  Flags
      mapFunction     final
      reduceFunction  final

  public <TResult> com.mongodb.client.MapReduceIterable<TResult> mapReduce(java.lang.String, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.String mapFunction
        start local 2 // java.lang.String reduceFunction
        start local 3 // java.lang.Class resultClass
         0: .line 426
            aload 0 /* this */
            aconst_null
            aload 1 /* mapFunction */
            aload 2 /* reduceFunction */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createMapReduceIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MapReduceIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.lang.String reduceFunction
        end local 1 // java.lang.String mapFunction
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1     mapFunction  Ljava/lang/String;
            0    1     2  reduceFunction  Ljava/lang/String;
            0    1     3     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/MapReduceIterable<TTResult;>;
    MethodParameters:
                Name  Flags
      mapFunction     final
      reduceFunction  final
      resultClass     final

  public com.mongodb.client.MapReduceIterable<TDocument> mapReduce(com.mongodb.client.ClientSession, java.lang.String, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String mapFunction
        start local 3 // java.lang.String reduceFunction
         0: .line 432
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* mapFunction */
            aload 3 /* reduceFunction */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.mapReduce:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MapReduceIterable;
            areturn
        end local 3 // java.lang.String reduceFunction
        end local 2 // java.lang.String mapFunction
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2     mapFunction  Ljava/lang/String;
            0    1     3  reduceFunction  Ljava/lang/String;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/client/MapReduceIterable<TTDocument;>;
    MethodParameters:
                Name  Flags
      clientSession   final
      mapFunction     final
      reduceFunction  final

  public <TResult> com.mongodb.client.MapReduceIterable<TResult> mapReduce(com.mongodb.client.ClientSession, java.lang.String, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String mapFunction
        start local 3 // java.lang.String reduceFunction
        start local 4 // java.lang.Class resultClass
         0: .line 438
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 439
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* mapFunction */
            aload 3 /* reduceFunction */
            aload 4 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createMapReduceIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MapReduceIterable;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // java.lang.String reduceFunction
        end local 2 // java.lang.String mapFunction
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2     mapFunction  Ljava/lang/String;
            0    2     3  reduceFunction  Ljava/lang/String;
            0    2     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/MapReduceIterable<TTResult;>;
    MethodParameters:
                Name  Flags
      clientSession   final
      mapFunction     final
      reduceFunction  final
      resultClass     final

  private <TResult> com.mongodb.client.MapReduceIterable<TResult> createMapReduceIterable(com.mongodb.client.ClientSession, java.lang.String, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MapReduceIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String mapFunction
        start local 3 // java.lang.String reduceFunction
        start local 4 // java.lang.Class resultClass
         0: .line 445
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 4 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 446
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* mapFunction */
            aload 3 /* reduceFunction */
         2: .line 445
            invokestatic com.mongodb.client.internal.MongoIterables.mapReduceOf:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;Lcom/mongodb/client/internal/OperationExecutor;Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/client/MapReduceIterable;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // java.lang.String reduceFunction
        end local 2 // java.lang.String mapFunction
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2     mapFunction  Ljava/lang/String;
            0    3     3  reduceFunction  Ljava/lang/String;
            0    3     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/MapReduceIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                Name  Flags
      clientSession   final
      mapFunction     final
      reduceFunction  final
      resultClass     final

  public com.mongodb.bulk.BulkWriteResult bulkWrite(java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List requests
         0: .line 451
            aload 0 /* this */
            aload 1 /* requests */
            new com.mongodb.client.model.BulkWriteOptions
            dup
            invokespecial com.mongodb.client.model.BulkWriteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.bulkWrite:(Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
            areturn
        end local 1 // java.util.List requests
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
    Signature: (Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;)Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
          Name  Flags
      requests  final

  public com.mongodb.bulk.BulkWriteResult bulkWrite(java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.client.model.BulkWriteOptions);
    descriptor: (Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List requests
        start local 2 // com.mongodb.client.model.BulkWriteOptions options
         0: .line 456
            aload 0 /* this */
            aconst_null
            aload 1 /* requests */
            aload 2 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeBulkWrite:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
            areturn
        end local 2 // com.mongodb.client.model.BulkWriteOptions options
        end local 1 // java.util.List requests
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    1     2   options  Lcom/mongodb/client/model/BulkWriteOptions;
    Signature: (Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
          Name  Flags
      requests  final
      options   final

  public com.mongodb.bulk.BulkWriteResult bulkWrite(com.mongodb.client.ClientSession, java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List requests
         0: .line 461
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* requests */
            new com.mongodb.client.model.BulkWriteOptions
            dup
            invokespecial com.mongodb.client.model.BulkWriteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.bulkWrite:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
            areturn
        end local 2 // java.util.List requests
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2       requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;)Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      requests       final

  public com.mongodb.bulk.BulkWriteResult bulkWrite(com.mongodb.client.ClientSession, java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.client.model.BulkWriteOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List requests
        start local 3 // com.mongodb.client.model.BulkWriteOptions options
         0: .line 467
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 468
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* requests */
            aload 3 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeBulkWrite:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
            areturn
        end local 3 // com.mongodb.client.model.BulkWriteOptions options
        end local 2 // java.util.List requests
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    2     3        options  Lcom/mongodb/client/model/BulkWriteOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      requests       final
      options        final

  private com.mongodb.bulk.BulkWriteResult executeBulkWrite(com.mongodb.client.ClientSession, java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.client.model.BulkWriteOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List requests
        start local 3 // com.mongodb.client.model.BulkWriteOptions options
         0: .line 475
            ldc "requests"
            aload 2 /* requests */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 476
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* requests */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.SyncOperations.bulkWrite:(Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteResult
            areturn
        end local 3 // com.mongodb.client.model.BulkWriteOptions options
        end local 2 // java.util.List requests
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    2     3        options  Lcom/mongodb/client/model/BulkWriteOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/bulk/BulkWriteResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      requests       final
      options        final

  public void insertOne();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.Object document
         0: .line 481
            aload 0 /* this */
            aload 1 /* document */
            new com.mongodb.client.model.InsertOneOptions
            dup
            invokespecial com.mongodb.client.model.InsertOneOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.insertOne:(Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)V
         1: .line 482
            return
        end local 1 // java.lang.Object document
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  document  TTDocument;
    Signature: (TTDocument;)V
    MethodParameters:
          Name  Flags
      document  final

  public void insertOne(TDocument, com.mongodb.client.model.InsertOneOptions);
    descriptor: (Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.Object document
        start local 2 // com.mongodb.client.model.InsertOneOptions options
         0: .line 486
            ldc "document"
            aload 1 /* document */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 487
            aload 0 /* this */
            aconst_null
            aload 1 /* document */
            aload 2 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeInsertOne:(Lcom/mongodb/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)V
         2: .line 488
            return
        end local 2 // com.mongodb.client.model.InsertOneOptions options
        end local 1 // java.lang.Object document
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  document  TTDocument;
            0    3     2   options  Lcom/mongodb/client/model/InsertOneOptions;
    Signature: (TTDocument;Lcom/mongodb/client/model/InsertOneOptions;)V
    MethodParameters:
          Name  Flags
      document  final
      options   final

  public void insertOne(com.mongodb.client.ClientSession, );
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Object document
         0: .line 492
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* document */
            new com.mongodb.client.model.InsertOneOptions
            dup
            invokespecial com.mongodb.client.model.InsertOneOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.insertOne:(Lcom/mongodb/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)V
         1: .line 493
            return
        end local 2 // java.lang.Object document
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       document  TTDocument;
    Signature: (Lcom/mongodb/client/ClientSession;TTDocument;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      document       final

  public void insertOne(com.mongodb.client.ClientSession, TDocument, com.mongodb.client.model.InsertOneOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Object document
        start local 3 // com.mongodb.client.model.InsertOneOptions options
         0: .line 497
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 498
            ldc "document"
            aload 2 /* document */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 499
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* document */
            aload 3 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeInsertOne:(Lcom/mongodb/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)V
         3: .line 500
            return
        end local 3 // com.mongodb.client.model.InsertOneOptions options
        end local 2 // java.lang.Object document
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    4     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    4     2       document  TTDocument;
            0    4     3        options  Lcom/mongodb/client/model/InsertOneOptions;
    Signature: (Lcom/mongodb/client/ClientSession;TTDocument;Lcom/mongodb/client/model/InsertOneOptions;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      document       final
      options        final

  private void executeInsertOne(com.mongodb.client.ClientSession, TDocument, com.mongodb.client.model.InsertOneOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Object document
        start local 3 // com.mongodb.client.model.InsertOneOptions options
         0: .line 503
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* document */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.SyncOperations.insertOne:(Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)Lcom/mongodb/operation/WriteOperation;
            getstatic com.mongodb.bulk.WriteRequest$Type.INSERT:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;)Lcom/mongodb/bulk/BulkWriteResult;
            pop
         1: .line 504
            return
        end local 3 // com.mongodb.client.model.InsertOneOptions options
        end local 2 // java.lang.Object document
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       document  TTDocument;
            0    2     3        options  Lcom/mongodb/client/model/InsertOneOptions;
    Signature: (Lcom/mongodb/client/ClientSession;TTDocument;Lcom/mongodb/client/model/InsertOneOptions;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      document       final
      options        final

  public void insertMany(java.util.List<? extends TDocument>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List documents
         0: .line 508
            aload 0 /* this */
            aload 1 /* documents */
            new com.mongodb.client.model.InsertManyOptions
            dup
            invokespecial com.mongodb.client.model.InsertManyOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.insertMany:(Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)V
         1: .line 509
            return
        end local 1 // java.util.List documents
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  documents  Ljava/util/List<+TTDocument;>;
    Signature: (Ljava/util/List<+TTDocument;>;)V
    MethodParameters:
           Name  Flags
      documents  final

  public void insertMany(java.util.List<? extends TDocument>, com.mongodb.client.model.InsertManyOptions);
    descriptor: (Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List documents
        start local 2 // com.mongodb.client.model.InsertManyOptions options
         0: .line 513
            aload 0 /* this */
            aconst_null
            aload 1 /* documents */
            aload 2 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeInsertMany:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)V
         1: .line 514
            return
        end local 2 // com.mongodb.client.model.InsertManyOptions options
        end local 1 // java.util.List documents
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  documents  Ljava/util/List<+TTDocument;>;
            0    2     2    options  Lcom/mongodb/client/model/InsertManyOptions;
    Signature: (Ljava/util/List<+TTDocument;>;Lcom/mongodb/client/model/InsertManyOptions;)V
    MethodParameters:
           Name  Flags
      documents  final
      options    final

  public void insertMany(com.mongodb.client.ClientSession, java.util.List<? extends TDocument>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List documents
         0: .line 518
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* documents */
            new com.mongodb.client.model.InsertManyOptions
            dup
            invokespecial com.mongodb.client.model.InsertManyOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.insertMany:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)V
         1: .line 519
            return
        end local 2 // java.util.List documents
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2      documents  Ljava/util/List<+TTDocument;>;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      documents      final

  public void insertMany(com.mongodb.client.ClientSession, java.util.List<? extends TDocument>, com.mongodb.client.model.InsertManyOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List documents
        start local 3 // com.mongodb.client.model.InsertManyOptions options
         0: .line 523
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 524
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* documents */
            aload 3 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeInsertMany:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)V
         2: .line 525
            return
        end local 3 // com.mongodb.client.model.InsertManyOptions options
        end local 2 // java.util.List documents
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2      documents  Ljava/util/List<+TTDocument;>;
            0    3     3        options  Lcom/mongodb/client/model/InsertManyOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+TTDocument;>;Lcom/mongodb/client/model/InsertManyOptions;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      documents      final
      options        final

  private void executeInsertMany(com.mongodb.client.ClientSession, java.util.List<? extends TDocument>, com.mongodb.client.model.InsertManyOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List documents
        start local 3 // com.mongodb.client.model.InsertManyOptions options
         0: .line 529
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* documents */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.SyncOperations.insertMany:(Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         1: .line 530
            return
        end local 3 // com.mongodb.client.model.InsertManyOptions options
        end local 2 // java.util.List documents
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2      documents  Ljava/util/List<+TTDocument;>;
            0    2     3        options  Lcom/mongodb/client/model/InsertManyOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<+TTDocument;>;Lcom/mongodb/client/model/InsertManyOptions;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      documents      final
      options        final

  public com.mongodb.client.result.DeleteResult deleteOne(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 534
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.deleteOne:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
    MethodParameters:
        Name  Flags
      filter  final

  public com.mongodb.client.result.DeleteResult deleteOne(org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.DeleteOptions options
         0: .line 539
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Z)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 2 // com.mongodb.client.model.DeleteOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   filter  Lorg/bson/conversions/Bson;
            0    1     2  options  Lcom/mongodb/client/model/DeleteOptions;
    MethodParameters:
         Name  Flags
      filter   final
      options  final

  public com.mongodb.client.result.DeleteResult deleteOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 544
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.deleteOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public com.mongodb.client.result.DeleteResult deleteOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.DeleteOptions options
         0: .line 549
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 550
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Z)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 3 // com.mongodb.client.model.DeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3        options  Lcom/mongodb/client/model/DeleteOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final

  public com.mongodb.client.result.DeleteResult deleteMany(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 555
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.deleteMany:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
    MethodParameters:
        Name  Flags
      filter  final

  public com.mongodb.client.result.DeleteResult deleteMany(org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.DeleteOptions options
         0: .line 560
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            iconst_1
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Z)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 2 // com.mongodb.client.model.DeleteOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   filter  Lorg/bson/conversions/Bson;
            0    1     2  options  Lcom/mongodb/client/model/DeleteOptions;
    MethodParameters:
         Name  Flags
      filter   final
      options  final

  public com.mongodb.client.result.DeleteResult deleteMany(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 565
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.deleteMany:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public com.mongodb.client.result.DeleteResult deleteMany(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.DeleteOptions options
         0: .line 570
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 571
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            iconst_1
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Z)Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 3 // com.mongodb.client.model.DeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3        options  Lcom/mongodb/client/model/DeleteOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final

  public com.mongodb.client.result.UpdateResult replaceOne(org.bson.conversions.Bson, TDocument);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
         0: .line 576
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* replacement */
            new com.mongodb.client.model.ReplaceOptions
            dup
            invokespecial com.mongodb.client.model.ReplaceOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1       filter  Lorg/bson/conversions/Bson;
            0    1     2  replacement  TTDocument;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final

  public com.mongodb.client.result.UpdateResult replaceOne(org.bson.conversions.Bson, TDocument, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 582
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* replacement */
            aload 3 /* updateOptions */
            invokestatic com.mongodb.client.model.ReplaceOptions.createReplaceOptions:(Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/model/ReplaceOptions;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1         filter  Lorg/bson/conversions/Bson;
            0    1     2    replacement  TTDocument;
            0    1     3  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      filter         final
      replacement    final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult replaceOne(org.bson.conversions.Bson, TDocument, com.mongodb.client.model.ReplaceOptions);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.client.model.ReplaceOptions replaceOptions
         0: .line 587
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* replacement */
            aload 3 /* replaceOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeReplaceOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // com.mongodb.client.model.ReplaceOptions replaceOptions
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1          filter  Lorg/bson/conversions/Bson;
            0    1     2     replacement  TTDocument;
            0    1     3  replaceOptions  Lcom/mongodb/client/model/ReplaceOptions;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
                Name  Flags
      filter          final
      replacement     final
      replaceOptions  final

  public com.mongodb.client.result.UpdateResult replaceOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, TDocument);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
         0: .line 592
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            new com.mongodb.client.model.ReplaceOptions
            dup
            invokespecial com.mongodb.client.model.ReplaceOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.replaceOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3    replacement  TTDocument;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final

  public com.mongodb.client.result.UpdateResult replaceOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 599
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* updateOptions */
            invokestatic com.mongodb.client.model.ReplaceOptions.createReplaceOptions:(Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/model/ReplaceOptions;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.replaceOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3    replacement  TTDocument;
            0    1     4  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult replaceOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.ReplaceOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.ReplaceOptions replaceOptions
         0: .line 605
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 606
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* replaceOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeReplaceOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 4 // com.mongodb.client.model.ReplaceOptions replaceOptions
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2          filter  Lorg/bson/conversions/Bson;
            0    2     3     replacement  TTDocument;
            0    2     4  replaceOptions  Lcom/mongodb/client/model/ReplaceOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
                Name  Flags
      clientSession   final
      filter          final
      replacement     final
      replaceOptions  final

  private com.mongodb.client.result.UpdateResult executeReplaceOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.ReplaceOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.ReplaceOptions replaceOptions
         0: .line 611
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* replaceOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/operation/WriteOperation;
         1: .line 612
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
         2: .line 611
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;)Lcom/mongodb/bulk/BulkWriteResult;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.toUpdateResult:(Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 4 // com.mongodb.client.model.ReplaceOptions replaceOptions
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2          filter  Lorg/bson/conversions/Bson;
            0    3     3     replacement  TTDocument;
            0    3     4  replaceOptions  Lcom/mongodb/client/model/ReplaceOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/client/result/UpdateResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                Name  Flags
      clientSession   final
      filter          final
      replacement     final
      replaceOptions  final

  public com.mongodb.client.result.UpdateResult updateOne(org.bson.conversions.Bson, org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
         0: .line 617
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateOne:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
            0    1     2  update  Lorg/bson/conversions/Bson;
    MethodParameters:
        Name  Flags
      filter  final
      update  final

  public com.mongodb.client.result.UpdateResult updateOne(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 622
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* updateOptions */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1         filter  Lorg/bson/conversions/Bson;
            0    1     2         update  Lorg/bson/conversions/Bson;
            0    1     3  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    MethodParameters:
               Name  Flags
      filter         final
      update         final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult updateOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
         0: .line 627
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final

  public com.mongodb.client.result.UpdateResult updateOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 633
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 634
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Lorg/bson/conversions/Bson;
            0    2     4  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult updateOne(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
         0: .line 640
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateOne:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
            0    1     2  update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
        Name  Flags
      filter  final
      update  final

  public com.mongodb.client.result.UpdateResult updateOne(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 645
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* updateOptions */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1         filter  Lorg/bson/conversions/Bson;
            0    1     2         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     3  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      filter         final
      update         final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult updateOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
         0: .line 650
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final

  public com.mongodb.client.result.UpdateResult updateOne(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 656
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 657
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult updateMany(org.bson.conversions.Bson, org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
         0: .line 663
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateMany:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
            0    1     2  update  Lorg/bson/conversions/Bson;
    MethodParameters:
        Name  Flags
      filter  final
      update  final

  public com.mongodb.client.result.UpdateResult updateMany(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 668
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* updateOptions */
            iconst_1
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1         filter  Lorg/bson/conversions/Bson;
            0    1     2         update  Lorg/bson/conversions/Bson;
            0    1     3  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    MethodParameters:
               Name  Flags
      filter         final
      update         final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult updateMany(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
         0: .line 673
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateMany:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final

  public com.mongodb.client.result.UpdateResult updateMany(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 679
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 680
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            iconst_1
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Lorg/bson/conversions/Bson;
            0    2     4  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult updateMany(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
         0: .line 685
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateMany:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
            0    1     2  update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
        Name  Flags
      filter  final
      update  final

  public com.mongodb.client.result.UpdateResult updateMany(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 690
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* updateOptions */
            iconst_1
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1         filter  Lorg/bson/conversions/Bson;
            0    1     2         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     3  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      filter         final
      update         final
      updateOptions  final

  public com.mongodb.client.result.UpdateResult updateMany(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
         0: .line 695
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.updateMany:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final

  public com.mongodb.client.result.UpdateResult updateMany(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.UpdateOptions updateOptions
         0: .line 701
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 702
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            iconst_1
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/result/UpdateResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      updateOptions  final

  public TDocument findOneAndDelete(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 708
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.FindOneAndDeleteOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndDeleteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndDelete:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Ljava/lang/Object;
            areturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
    Signature: (Lorg/bson/conversions/Bson;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
        Name  Flags
      filter  final

  public TDocument findOneAndDelete(org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndDeleteOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.FindOneAndDeleteOptions options
         0: .line 714
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Ljava/lang/Object;
            areturn
        end local 2 // com.mongodb.client.model.FindOneAndDeleteOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   filter  Lorg/bson/conversions/Bson;
            0    1     2  options  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
         Name  Flags
      filter   final
      options  final

  public TDocument findOneAndDelete(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 720
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.FindOneAndDeleteOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndDeleteOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Ljava/lang/Object;
            areturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public TDocument findOneAndDelete(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndDeleteOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
         0: .line 726
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 727
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Ljava/lang/Object;
            areturn
        end local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3        options  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final

  private TDocument executeFindOneAndDelete(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndDeleteOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
         0: .line 733
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.SyncOperations.findOneAndDelete:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            areturn
        end local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3        options  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final

  public TDocument findOneAndReplace(org.bson.conversions.Bson, );
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
         0: .line 739
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* replacement */
            new com.mongodb.client.model.FindOneAndReplaceOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndReplaceOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndReplace:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1       filter  Lorg/bson/conversions/Bson;
            0    1     2  replacement  TTDocument;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final

  public TDocument findOneAndReplace(org.bson.conversions.Bson, TDocument, com.mongodb.client.model.FindOneAndReplaceOptions);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.client.model.FindOneAndReplaceOptions options
         0: .line 745
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* replacement */
            aload 3 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndReplace:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Ljava/lang/Object;
            areturn
        end local 3 // com.mongodb.client.model.FindOneAndReplaceOptions options
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1       filter  Lorg/bson/conversions/Bson;
            0    1     2  replacement  TTDocument;
            0    1     3      options  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final
      options      final

  public TDocument findOneAndReplace(com.mongodb.client.ClientSession, org.bson.conversions.Bson, );
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
         0: .line 751
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            new com.mongodb.client.model.FindOneAndReplaceOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndReplaceOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndReplace:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3    replacement  TTDocument;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final

  public TDocument findOneAndReplace(com.mongodb.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.FindOneAndReplaceOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
         0: .line 758
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 759
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndReplace:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3    replacement  TTDocument;
            0    2     4        options  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      options        final

  private TDocument executeFindOneAndReplace(com.mongodb.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.FindOneAndReplaceOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
         0: .line 765
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.SyncOperations.findOneAndReplace:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3    replacement  TTDocument;
            0    1     4        options  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      options        final

  public TDocument findOneAndUpdate(org.bson.conversions.Bson, org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
         0: .line 771
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndUpdate:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
            0    1     2  update  Lorg/bson/conversions/Bson;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
        Name  Flags
      filter  final
      update  final

  public TDocument findOneAndUpdate(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndUpdateOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
         0: .line 777
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   filter  Lorg/bson/conversions/Bson;
            0    1     2   update  Lorg/bson/conversions/Bson;
            0    1     3  options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
         Name  Flags
      filter   final
      update   final
      options  final

  public TDocument findOneAndUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
         0: .line 783
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Lorg/bson/conversions/Bson;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final

  public TDocument findOneAndUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndUpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
         0: .line 790
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 791
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Lorg/bson/conversions/Bson;
            0    2     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final

  private TDocument executeFindOneAndUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndUpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
         0: .line 797
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.SyncOperations.findOneAndUpdate:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Lorg/bson/conversions/Bson;
            0    1     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final

  public TDocument findOneAndUpdate(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
         0: .line 803
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndUpdate:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
            0    1     2  update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
        Name  Flags
      filter  final
      update  final

  public TDocument findOneAndUpdate(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.FindOneAndUpdateOptions);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
         0: .line 809
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1   filter  Lorg/bson/conversions/Bson;
            0    1     2   update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     3  options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
         Name  Flags
      filter   final
      update   final
      options  final

  public TDocument findOneAndUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
         0: .line 815
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.findOneAndUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final

  public TDocument findOneAndUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.FindOneAndUpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
         0: .line 822
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 823
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final

  private TDocument executeFindOneAndUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.FindOneAndUpdateOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
         0: .line 829
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.SyncOperations.findOneAndUpdate:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
            0    1     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)TTDocument;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final

  public void drop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 834
            aload 0 /* this */
            aconst_null
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDrop:(Lcom/mongodb/client/ClientSession;)V
         1: .line 835
            return
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public void drop(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 839
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 840
            aload 0 /* this */
            aload 1 /* clientSession */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDrop:(Lcom/mongodb/client/ClientSession;)V
         2: .line 841
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
               Name  Flags
      clientSession  final

  private void executeDrop(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 844
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            invokevirtual com.mongodb.internal.operation.SyncOperations.dropCollection:()Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         1: .line 845
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final

  public java.lang.String createIndex(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson keys
         0: .line 849
            aload 0 /* this */
            aload 1 /* keys */
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Ljava/lang/String;
            areturn
        end local 1 // org.bson.conversions.Bson keys
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  keys  Lorg/bson/conversions/Bson;
    MethodParameters:
      Name  Flags
      keys  final

  public java.lang.String createIndex(org.bson.conversions.Bson, com.mongodb.client.model.IndexOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson keys
        start local 2 // com.mongodb.client.model.IndexOptions indexOptions
         0: .line 854
            aload 0 /* this */
            new com.mongodb.client.model.IndexModel
            dup
            aload 1 /* keys */
            aload 2 /* indexOptions */
            invokespecial com.mongodb.client.model.IndexModel.<init>:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createIndexes:(Ljava/util/List;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 2 // com.mongodb.client.model.IndexOptions indexOptions
        end local 1 // org.bson.conversions.Bson keys
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1          keys  Lorg/bson/conversions/Bson;
            0    1     2  indexOptions  Lcom/mongodb/client/model/IndexOptions;
    MethodParameters:
              Name  Flags
      keys          final
      indexOptions  final

  public java.lang.String createIndex(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
         0: .line 859
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* keys */
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createIndex:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Ljava/lang/String;
            areturn
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2           keys  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      keys           final

  public java.lang.String createIndex(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.IndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
        start local 3 // com.mongodb.client.model.IndexOptions indexOptions
         0: .line 864
            aload 0 /* this */
            aload 1 /* clientSession */
            new com.mongodb.client.model.IndexModel
            dup
            aload 2 /* keys */
            aload 3 /* indexOptions */
            invokespecial com.mongodb.client.model.IndexModel.<init>:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createIndexes:(Lcom/mongodb/client/ClientSession;Ljava/util/List;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 3 // com.mongodb.client.model.IndexOptions indexOptions
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2           keys  Lorg/bson/conversions/Bson;
            0    1     3   indexOptions  Lcom/mongodb/client/model/IndexOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      keys           final
      indexOptions   final

  public java.util.List<java.lang.String> createIndexes(java.util.List<com.mongodb.client.model.IndexModel>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List indexes
         0: .line 869
            aload 0 /* this */
            aload 1 /* indexes */
            new com.mongodb.client.model.CreateIndexOptions
            dup
            invokespecial com.mongodb.client.model.CreateIndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createIndexes:(Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List;
            areturn
        end local 1 // java.util.List indexes
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
    Signature: (Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
         Name  Flags
      indexes  final

  public java.util.List<java.lang.String> createIndexes(java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.client.model.CreateIndexOptions);
    descriptor: (Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.util.List indexes
        start local 2 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
         0: .line 874
            aload 0 /* this */
            aconst_null
            aload 1 /* indexes */
            aload 2 /* createIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeCreateIndexes:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List;
            areturn
        end local 2 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        end local 1 // java.util.List indexes
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1             indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    1     2  createIndexOptions  Lcom/mongodb/client/model/CreateIndexOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
                    Name  Flags
      indexes             final
      createIndexOptions  final

  public java.util.List<java.lang.String> createIndexes(com.mongodb.client.ClientSession, java.util.List<com.mongodb.client.model.IndexModel>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List indexes
         0: .line 879
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexes */
            new com.mongodb.client.model.CreateIndexOptions
            dup
            invokespecial com.mongodb.client.model.CreateIndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createIndexes:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List;
            areturn
        end local 2 // java.util.List indexes
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2        indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      indexes        final

  public java.util.List<java.lang.String> createIndexes(com.mongodb.client.ClientSession, java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.client.model.CreateIndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List indexes
        start local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
         0: .line 885
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 886
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexes */
            aload 3 /* createIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeCreateIndexes:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List;
            areturn
        end local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        end local 2 // java.util.List indexes
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1       clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    2     3  createIndexOptions  Lcom/mongodb/client/model/CreateIndexOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
                    Name  Flags
      clientSession       final
      indexes             final
      createIndexOptions  final

  private java.util.List<java.lang.String> executeCreateIndexes(com.mongodb.client.ClientSession, java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.client.model.CreateIndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List indexes
        start local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
         0: .line 891
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* indexes */
            aload 3 /* createIndexOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.createIndexes:(Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         1: .line 892
            aload 2 /* indexes */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            invokestatic com.mongodb.internal.operation.IndexHelper.getIndexNames:(Ljava/util/List;Lorg/bson/codecs/configuration/CodecRegistry;)Ljava/util/List;
            areturn
        end local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        end local 2 // java.util.List indexes
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1       clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    2     3  createIndexOptions  Lcom/mongodb/client/model/CreateIndexOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/client/model/CreateIndexOptions;)Ljava/util/List<Ljava/lang/String;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                    Name  Flags
      clientSession       final
      indexes             final
      createIndexOptions  final

  public com.mongodb.client.ListIndexesIterable<org.bson.Document> listIndexes();
    descriptor: ()Lcom/mongodb/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 897
            aload 0 /* this */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.listIndexes:(Ljava/lang/Class;)Lcom/mongodb/client/ListIndexesIterable;
            areturn
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
    Signature: ()Lcom/mongodb/client/ListIndexesIterable<Lorg/bson/Document;>;

  public <TResult> com.mongodb.client.ListIndexesIterable<TResult> listIndexes(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 902
            aload 0 /* this */
            aconst_null
            aload 1 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createListIndexesIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListIndexesIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ListIndexesIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.client.ListIndexesIterable<org.bson.Document> listIndexes(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 907
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.listIndexes:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListIndexesIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ListIndexesIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.client.ListIndexesIterable<TResult> listIndexes(com.mongodb.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 912
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 913
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.createListIndexesIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListIndexesIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ListIndexesIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  private <TResult> com.mongodb.client.ListIndexesIterable<TResult> createListIndexesIterable(com.mongodb.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListIndexesIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 918
            aload 1 /* clientSession */
            aload 0 /* this */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 2 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
         1: .line 919
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.retryReads:Z
         2: .line 918
            invokestatic com.mongodb.client.internal.MongoIterables.listIndexesOf:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/client/internal/OperationExecutor;Z)Lcom/mongodb/client/ListIndexesIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ListIndexesIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  public void dropIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.String indexName
         0: .line 924
            aload 0 /* this */
            aload 1 /* indexName */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.dropIndex:(Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 925
            return
        end local 1 // java.lang.String indexName
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  indexName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      indexName  final

  public void dropIndex(java.lang.String, com.mongodb.client.model.DropIndexOptions);
    descriptor: (Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // java.lang.String indexName
        start local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 929
            aload 0 /* this */
            aconst_null
            aload 1 /* indexName */
            aload 2 /* dropIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 930
            return
        end local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 1 // java.lang.String indexName
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1         indexName  Ljava/lang/String;
            0    2     2  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    MethodParameters:
                  Name  Flags
      indexName         final
      dropIndexOptions  final

  public void dropIndex(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson keys
         0: .line 934
            aload 0 /* this */
            aload 1 /* keys */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.dropIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 935
            return
        end local 1 // org.bson.conversions.Bson keys
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  keys  Lorg/bson/conversions/Bson;
    MethodParameters:
      Name  Flags
      keys  final

  public void dropIndex(org.bson.conversions.Bson, com.mongodb.client.model.DropIndexOptions);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson keys
        start local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 939
            aload 0 /* this */
            aconst_null
            aload 1 /* keys */
            aload 2 /* dropIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 940
            return
        end local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 1 // org.bson.conversions.Bson keys
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1              keys  Lorg/bson/conversions/Bson;
            0    2     2  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    MethodParameters:
                  Name  Flags
      keys              final
      dropIndexOptions  final

  public void dropIndex(com.mongodb.client.ClientSession, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String indexName
         0: .line 944
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexName */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.dropIndex:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 945
            return
        end local 2 // java.lang.String indexName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2      indexName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      clientSession  final
      indexName      final

  public void dropIndex(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
         0: .line 949
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* keys */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.dropIndex:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 950
            return
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2           keys  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      keys           final

  public void dropIndex(com.mongodb.client.ClientSession, java.lang.String, com.mongodb.client.model.DropIndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String indexName
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 954
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 955
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexName */
            aload 3 /* dropIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
         2: .line 956
            return
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // java.lang.String indexName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1     clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2         indexName  Ljava/lang/String;
            0    3     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    MethodParameters:
                  Name  Flags
      clientSession     final
      indexName         final
      dropIndexOptions  final

  public void dropIndex(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DropIndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 960
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 961
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* keys */
            aload 3 /* dropIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)V
         2: .line 962
            return
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1     clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2              keys  Lorg/bson/conversions/Bson;
            0    3     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    MethodParameters:
                  Name  Flags
      clientSession     final
      keys              final
      dropIndexOptions  final

  public void dropIndexes();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
         0: .line 966
            aload 0 /* this */
            ldc "*"
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.dropIndex:(Ljava/lang/String;)V
         1: .line 967
            return
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;

  public void dropIndexes(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 971
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 972
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc "*"
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
         2: .line 973
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
               Name  Flags
      clientSession  final

  public void dropIndexes(com.mongodb.client.model.DropIndexOptions);
    descriptor: (Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 977
            aload 0 /* this */
            ldc "*"
            aload 1 /* dropIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.dropIndex:(Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 978
            return
        end local 1 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    MethodParameters:
                  Name  Flags
      dropIndexOptions  final

  public void dropIndexes(com.mongodb.client.ClientSession, com.mongodb.client.model.DropIndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 982
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc "*"
            aload 2 /* dropIndexOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.dropIndex:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
         1: .line 983
            return
        end local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1     clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    MethodParameters:
                  Name  Flags
      clientSession     final
      dropIndexOptions  final

  private void executeDropIndex(com.mongodb.client.ClientSession, java.lang.String, com.mongodb.client.model.DropIndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String indexName
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 987
            ldc "dropIndexOptions"
            aload 3 /* dropIndexOptions */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 988
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* indexName */
            aload 3 /* dropIndexOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.dropIndex:(Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         2: .line 989
            return
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // java.lang.String indexName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1     clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2         indexName  Ljava/lang/String;
            0    3     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                  Name  Flags
      clientSession     final
      indexName         final
      dropIndexOptions  final

  private void executeDropIndex(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DropIndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
         0: .line 992
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* keys */
            aload 3 /* dropIndexOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.dropIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)Lcom/mongodb/operation/WriteOperation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         1: .line 993
            return
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1     clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2              keys  Lorg/bson/conversions/Bson;
            0    2     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                  Name  Flags
      clientSession     final
      keys              final
      dropIndexOptions  final

  public void renameCollection(com.mongodb.MongoNamespace);
    descriptor: (Lcom/mongodb/MongoNamespace;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.MongoNamespace newCollectionNamespace
         0: .line 997
            aload 0 /* this */
            aload 1 /* newCollectionNamespace */
            new com.mongodb.client.model.RenameCollectionOptions
            dup
            invokespecial com.mongodb.client.model.RenameCollectionOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.renameCollection:(Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)V
         1: .line 998
            return
        end local 1 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1  newCollectionNamespace  Lcom/mongodb/MongoNamespace;
    MethodParameters:
                        Name  Flags
      newCollectionNamespace  final

  public void renameCollection(com.mongodb.MongoNamespace, com.mongodb.client.model.RenameCollectionOptions);
    descriptor: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 2 // com.mongodb.client.model.RenameCollectionOptions renameCollectionOptions
         0: .line 1002
            aload 0 /* this */
            aconst_null
            aload 1 /* newCollectionNamespace */
            aload 2 /* renameCollectionOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeRenameCollection:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)V
         1: .line 1003
            return
        end local 2 // com.mongodb.client.model.RenameCollectionOptions renameCollectionOptions
        end local 1 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1   newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    2     2  renameCollectionOptions  Lcom/mongodb/client/model/RenameCollectionOptions;
    MethodParameters:
                         Name  Flags
      newCollectionNamespace   final
      renameCollectionOptions  final

  public void renameCollection(com.mongodb.client.ClientSession, com.mongodb.MongoNamespace);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.MongoNamespace newCollectionNamespace
         0: .line 1007
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* newCollectionNamespace */
            new com.mongodb.client.model.RenameCollectionOptions
            dup
            invokespecial com.mongodb.client.model.RenameCollectionOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.renameCollection:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)V
         1: .line 1008
            return
        end local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    2     1           clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2  newCollectionNamespace  Lcom/mongodb/MongoNamespace;
    MethodParameters:
                        Name  Flags
      clientSession           final
      newCollectionNamespace  final

  public void renameCollection(com.mongodb.client.ClientSession, com.mongodb.MongoNamespace, com.mongodb.client.model.RenameCollectionOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 3 // com.mongodb.client.model.RenameCollectionOptions renameCollectionOptions
         0: .line 1013
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1014
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* newCollectionNamespace */
            aload 3 /* renameCollectionOptions */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeRenameCollection:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)V
         2: .line 1015
            return
        end local 3 // com.mongodb.client.model.RenameCollectionOptions renameCollectionOptions
        end local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0                     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    3     1            clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2   newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    3     3  renameCollectionOptions  Lcom/mongodb/client/model/RenameCollectionOptions;
    MethodParameters:
                         Name  Flags
      clientSession            final
      newCollectionNamespace   final
      renameCollectionOptions  final

  private void executeRenameCollection(com.mongodb.client.ClientSession, com.mongodb.MongoNamespace, com.mongodb.client.model.RenameCollectionOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 3 // com.mongodb.client.model.RenameCollectionOptions renameCollectionOptions
         0: .line 1019
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.RenameCollectionOperation
            dup
            aload 0 /* this */
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 2 /* newCollectionNamespace */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.RenameCollectionOperation.<init>:(Lcom/mongodb/MongoNamespace;Lcom/mongodb/MongoNamespace;Lcom/mongodb/WriteConcern;)V
         1: .line 1020
            aload 3 /* renameCollectionOptions */
            invokevirtual com.mongodb.client.model.RenameCollectionOptions.isDropTarget:()Z
            invokevirtual com.mongodb.operation.RenameCollectionOperation.dropTarget:(Z)Lcom/mongodb/operation/RenameCollectionOperation;
         2: .line 1021
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
         3: .line 1019
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         4: .line 1022
            return
        end local 3 // com.mongodb.client.model.RenameCollectionOptions renameCollectionOptions
        end local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    5     0                     this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    5     1            clientSession  Lcom/mongodb/client/ClientSession;
            0    5     2   newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    5     3  renameCollectionOptions  Lcom/mongodb/client/model/RenameCollectionOptions;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                         Name  Flags
      clientSession            final
      newCollectionNamespace   final
      renameCollectionOptions  final

  private com.mongodb.client.result.DeleteResult executeDelete(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions, boolean);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Z)Lcom/mongodb/client/result/DeleteResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.DeleteOptions deleteOptions
        start local 4 // boolean multi
         0: .line 1026
            aload 0 /* this */
            aload 1 /* clientSession */
         1: .line 1027
            iload 4 /* multi */
            ifeq 2
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* deleteOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.deleteMany:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/operation/WriteOperation;
            goto 3
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession org.bson.conversions.Bson com.mongodb.client.model.DeleteOptions int
      StackMap stack: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession
         2: aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* deleteOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.deleteOne:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/operation/WriteOperation;
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession org.bson.conversions.Bson com.mongodb.client.model.DeleteOptions int
      StackMap stack: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession com.mongodb.operation.WriteOperation
         3: getstatic com.mongodb.bulk.WriteRequest$Type.DELETE:Lcom/mongodb/bulk/WriteRequest$Type;
         4: .line 1026
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;)Lcom/mongodb/bulk/BulkWriteResult;
            astore 5 /* result */
        start local 5 // com.mongodb.bulk.BulkWriteResult result
         5: .line 1028
            aload 5 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.wasAcknowledged:()Z
            ifeq 7
         6: .line 1029
            aload 5 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getDeletedCount:()I
            i2l
            invokestatic com.mongodb.client.result.DeleteResult.acknowledged:(J)Lcom/mongodb/client/result/DeleteResult;
            areturn
         7: .line 1031
      StackMap locals: com.mongodb.bulk.BulkWriteResult
      StackMap stack:
            invokestatic com.mongodb.client.result.DeleteResult.unacknowledged:()Lcom/mongodb/client/result/DeleteResult;
            areturn
        end local 5 // com.mongodb.bulk.BulkWriteResult result
        end local 4 // boolean multi
        end local 3 // com.mongodb.client.model.DeleteOptions deleteOptions
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    8     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    8     2         filter  Lorg/bson/conversions/Bson;
            0    8     3  deleteOptions  Lcom/mongodb/client/model/DeleteOptions;
            0    8     4          multi  Z
            5    8     5         result  Lcom/mongodb/bulk/BulkWriteResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      deleteOptions  final
      multi          final

  private com.mongodb.client.result.UpdateResult executeUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions, boolean);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        start local 5 // boolean multi
         0: .line 1037
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* clientSession */
         1: .line 1038
            iload 5 /* multi */
            ifeq 2
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.updateMany:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/WriteOperation;
            goto 3
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.UpdateOptions int
      StackMap stack: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession
         2: aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.updateOne:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/WriteOperation;
         3: .line 1039
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.UpdateOptions int
      StackMap stack: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession com.mongodb.operation.WriteOperation
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
         4: .line 1037
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;)Lcom/mongodb/bulk/BulkWriteResult;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.toUpdateResult:(Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 5 // boolean multi
        end local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    5     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    5     2         filter  Lorg/bson/conversions/Bson;
            0    5     3         update  Lorg/bson/conversions/Bson;
            0    5     4  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
            0    5     5          multi  Z
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      updateOptions  final
      multi          final

  private com.mongodb.client.result.UpdateResult executeUpdate(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions, boolean);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        start local 5 // boolean multi
         0: .line 1044
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* clientSession */
         1: .line 1045
            iload 5 /* multi */
            ifeq 2
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.updateMany:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/WriteOperation;
            goto 3
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession org.bson.conversions.Bson java.util.List com.mongodb.client.model.UpdateOptions int
      StackMap stack: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession
         2: aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/SyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* updateOptions */
            invokevirtual com.mongodb.internal.operation.SyncOperations.updateOne:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/WriteOperation;
         3: .line 1046
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession org.bson.conversions.Bson java.util.List com.mongodb.client.model.UpdateOptions int
      StackMap stack: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.internal.MongoCollectionImpl com.mongodb.client.ClientSession com.mongodb.operation.WriteOperation
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
         4: .line 1044
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;)Lcom/mongodb/bulk/BulkWriteResult;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.toUpdateResult:(Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 5 // boolean multi
        end local 4 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    5     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    5     2         filter  Lorg/bson/conversions/Bson;
            0    5     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    5     4  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
            0    5     5          multi  Z
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;Z)Lcom/mongodb/client/result/UpdateResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      updateOptions  final
      multi          final

  private com.mongodb.bulk.BulkWriteResult executeSingleWriteRequest(com.mongodb.client.ClientSession, com.mongodb.operation.WriteOperation<com.mongodb.bulk.BulkWriteResult>, com.mongodb.bulk.WriteRequest$Type);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.operation.WriteOperation writeOperation
        start local 3 // com.mongodb.bulk.WriteRequest$Type type
         0: .line 1053
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* writeOperation */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteResult
         1: areturn
         2: .line 1054
      StackMap locals:
      StackMap stack: com.mongodb.MongoBulkWriteException
            astore 4 /* e */
        start local 4 // com.mongodb.MongoBulkWriteException e
         3: .line 1055
            aload 4 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteErrors:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 8
         4: .line 1056
            new com.mongodb.MongoWriteConcernException
            dup
            aload 4 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteConcernError:()Lcom/mongodb/bulk/WriteConcernError;
         5: .line 1057
            aload 0 /* this */
            aload 3 /* type */
            aload 4 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteResult:()Lcom/mongodb/bulk/BulkWriteResult;
            invokevirtual com.mongodb.client.internal.MongoCollectionImpl.translateBulkWriteResult:(Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
         6: .line 1058
            aload 4 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getServerAddress:()Lcom/mongodb/ServerAddress;
         7: .line 1056
            invokespecial com.mongodb.MongoWriteConcernException.<init>:(Lcom/mongodb/bulk/WriteConcernError;Lcom/mongodb/WriteConcernResult;Lcom/mongodb/ServerAddress;)V
            athrow
         8: .line 1060
      StackMap locals: com.mongodb.MongoBulkWriteException
      StackMap stack:
            new com.mongodb.MongoWriteException
            dup
            new com.mongodb.WriteError
            dup
            aload 4 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteErrors:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.WriteError
            invokespecial com.mongodb.WriteError.<init>:(Lcom/mongodb/WriteError;)V
            aload 4 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getServerAddress:()Lcom/mongodb/ServerAddress;
            invokespecial com.mongodb.MongoWriteException.<init>:(Lcom/mongodb/WriteError;Lcom/mongodb/ServerAddress;)V
            athrow
        end local 4 // com.mongodb.MongoBulkWriteException e
        end local 3 // com.mongodb.bulk.WriteRequest$Type type
        end local 2 // com.mongodb.operation.WriteOperation writeOperation
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    9     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    9     2  writeOperation  Lcom/mongodb/operation/WriteOperation<Lcom/mongodb/bulk/BulkWriteResult;>;
            0    9     3            type  Lcom/mongodb/bulk/WriteRequest$Type;
            3    9     4               e  Lcom/mongodb/MongoBulkWriteException;
      Exception table:
        from    to  target  type
           0     1       2  Class com.mongodb.MongoBulkWriteException
    Signature: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/operation/WriteOperation<Lcom/mongodb/bulk/BulkWriteResult;>;Lcom/mongodb/bulk/WriteRequest$Type;)Lcom/mongodb/bulk/BulkWriteResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                Name  Flags
      clientSession   final
      writeOperation  final
      type            final

  private com.mongodb.WriteConcernResult translateBulkWriteResult(com.mongodb.bulk.WriteRequest$Type, com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.bulk.WriteRequest$Type type
        start local 2 // com.mongodb.bulk.BulkWriteResult writeResult
         0: .line 1066
            invokestatic com.mongodb.client.internal.MongoCollectionImpl.$SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type:()[I
            aload 1 /* type */
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 1
                    2: 3
                    3: 3
                    4: 2
              default: 10
          }
         1: .line 1068
      StackMap locals:
      StackMap stack:
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getInsertedCount:()I
            iconst_0
            aconst_null
            invokestatic com.mongodb.WriteConcernResult.acknowledged:(IZLorg/bson/BsonValue;)Lcom/mongodb/WriteConcernResult;
            areturn
         2: .line 1070
      StackMap locals:
      StackMap stack:
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getDeletedCount:()I
            iconst_0
            aconst_null
            invokestatic com.mongodb.WriteConcernResult.acknowledged:(IZLorg/bson/BsonValue;)Lcom/mongodb/WriteConcernResult;
            areturn
         3: .line 1073
      StackMap locals:
      StackMap stack:
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iadd
         4: .line 1074
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            ifle 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
         6: .line 1075
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.bulk.WriteRequest$Type com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 8
         7: .line 1076
            aconst_null
            goto 9
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.bulk.WriteRequest$Type com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int
         8: aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteUpsert
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getId:()Lorg/bson/BsonValue;
         9: .line 1073
      StackMap locals: com.mongodb.client.internal.MongoCollectionImpl com.mongodb.bulk.WriteRequest$Type com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int org.bson.BsonValue
            invokestatic com.mongodb.WriteConcernResult.acknowledged:(IZLorg/bson/BsonValue;)Lcom/mongodb/WriteConcernResult;
            areturn
        10: .line 1078
      StackMap locals:
      StackMap stack:
            new com.mongodb.MongoInternalException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unhandled write request type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.mongodb.bulk.BulkWriteResult writeResult
        end local 1 // com.mongodb.bulk.WriteRequest$Type type
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0   11     1         type  Lcom/mongodb/bulk/WriteRequest$Type;
            0   11     2  writeResult  Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
             Name  Flags
      type         final
      writeResult  final

  private com.mongodb.client.result.UpdateResult toUpdateResult(com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.mongodb.client.internal.MongoCollectionImpl this
        start local 1 // com.mongodb.bulk.BulkWriteResult result
         0: .line 1083
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.wasAcknowledged:()Z
            ifeq 5
         1: .line 1084
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteUpsert
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getId:()Lorg/bson/BsonValue;
      StackMap locals:
      StackMap stack: org.bson.BsonValue
         3: astore 2 /* upsertedId */
        start local 2 // org.bson.BsonValue upsertedId
         4: .line 1085
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            i2l
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getModifiedCount:()I
            i2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 2 /* upsertedId */
            invokestatic com.mongodb.client.result.UpdateResult.acknowledged:(JLjava/lang/Long;Lorg/bson/BsonValue;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 2 // org.bson.BsonValue upsertedId
         5: .line 1087
      StackMap locals:
      StackMap stack:
            invokestatic com.mongodb.client.result.UpdateResult.unacknowledged:()Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 1 // com.mongodb.bulk.BulkWriteResult result
        end local 0 // com.mongodb.client.internal.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/mongodb/client/internal/MongoCollectionImpl<TTDocument;>;
            0    6     1      result  Lcom/mongodb/bulk/BulkWriteResult;
            4    5     2  upsertedId  Lorg/bson/BsonValue;
    MethodParameters:
        Name  Flags
      result  final

  static int[] $SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 86
            getstatic com.mongodb.client.internal.MongoCollectionImpl.$SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.mongodb.bulk.WriteRequest$Type.values:()[Lcom/mongodb/bulk/WriteRequest$Type;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.DELETE:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.INSERT:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic com.mongodb.client.internal.MongoCollectionImpl.$SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
}
Signature: <TDocument:Ljava/lang/Object;>Ljava/lang/Object;Lcom/mongodb/client/MongoCollection<TTDocument;>;
SourceFile: "MongoCollectionImpl.java"
InnerClasses:
  public final Type = com.mongodb.bulk.WriteRequest$Type of com.mongodb.bulk.WriteRequest