public class com.mongodb.internal.connection.DefaultServerConnection extends com.mongodb.internal.connection.AbstractReferenceCounted implements com.mongodb.connection.Connection, com.mongodb.connection.AsyncConnection
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.internal.connection.DefaultServerConnection
  super_class: com.mongodb.internal.connection.AbstractReferenceCounted
{
  private static final com.mongodb.diagnostics.logging.Logger LOGGER;
    descriptor: Lcom/mongodb/diagnostics/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.mongodb.internal.connection.InternalConnection wrapped;
    descriptor: Lcom/mongodb/internal/connection/InternalConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.connection.ProtocolExecutor protocolExecutor;
    descriptor: Lcom/mongodb/internal/connection/ProtocolExecutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.connection.ClusterConnectionMode clusterConnectionMode;
    descriptor: Lcom/mongodb/connection/ClusterConnectionMode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 47
            ldc "connection"
            invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
            putstatic com.mongodb.internal.connection.DefaultServerConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.mongodb.internal.connection.InternalConnection, com.mongodb.internal.connection.ProtocolExecutor, com.mongodb.connection.ClusterConnectionMode);
    descriptor: (Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/internal/connection/ProtocolExecutor;Lcom/mongodb/connection/ClusterConnectionMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.internal.connection.InternalConnection wrapped
        start local 2 // com.mongodb.internal.connection.ProtocolExecutor protocolExecutor
        start local 3 // com.mongodb.connection.ClusterConnectionMode clusterConnectionMode
         0: .line 52
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.AbstractReferenceCounted.<init>:()V
         1: .line 54
            aload 0 /* this */
            aload 1 /* wrapped */
            putfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
         2: .line 55
            aload 0 /* this */
            aload 2 /* protocolExecutor */
            putfield com.mongodb.internal.connection.DefaultServerConnection.protocolExecutor:Lcom/mongodb/internal/connection/ProtocolExecutor;
         3: .line 56
            aload 0 /* this */
            aload 3 /* clusterConnectionMode */
            putfield com.mongodb.internal.connection.DefaultServerConnection.clusterConnectionMode:Lcom/mongodb/connection/ClusterConnectionMode;
         4: .line 57
            return
        end local 3 // com.mongodb.connection.ClusterConnectionMode clusterConnectionMode
        end local 2 // com.mongodb.internal.connection.ProtocolExecutor protocolExecutor
        end local 1 // com.mongodb.internal.connection.InternalConnection wrapped
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    5     1                wrapped  Lcom/mongodb/internal/connection/InternalConnection;
            0    5     2       protocolExecutor  Lcom/mongodb/internal/connection/ProtocolExecutor;
            0    5     3  clusterConnectionMode  Lcom/mongodb/connection/ClusterConnectionMode;
    MethodParameters:
                       Name  Flags
      wrapped                final
      protocolExecutor       final
      clusterConnectionMode  final

  public com.mongodb.internal.connection.DefaultServerConnection retain();
    descriptor: ()Lcom/mongodb/internal/connection/DefaultServerConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
         0: .line 61
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.AbstractReferenceCounted.retain:()Lcom/mongodb/binding/ReferenceCounted;
            pop
         1: .line 62
            aload 0 /* this */
            areturn
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/internal/connection/DefaultServerConnection;

  public void release();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
         0: .line 67
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.AbstractReferenceCounted.release:()V
         1: .line 68
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getCount:()I
            ifne 3
         2: .line 69
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
            invokeinterface com.mongodb.internal.connection.InternalConnection.close:()V
         3: .line 71
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/internal/connection/DefaultServerConnection;

  public com.mongodb.connection.ConnectionDescription getDescription();
    descriptor: ()Lcom/mongodb/connection/ConnectionDescription;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
         0: .line 75
            ldc "open"
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getCount:()I
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: java.lang.String
         1: iconst_0
      StackMap locals: com.mongodb.internal.connection.DefaultServerConnection
      StackMap stack: java.lang.String int
         2: invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
         3: .line 76
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            areturn
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/internal/connection/DefaultServerConnection;

  public com.mongodb.WriteConcernResult insert(com.mongodb.MongoNamespace, boolean, com.mongodb.bulk.InsertRequest);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/InsertRequest;)Lcom/mongodb/WriteConcernResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.bulk.InsertRequest insertRequest
         0: .line 81
            aload 0 /* this */
            new com.mongodb.internal.connection.InsertProtocol
            dup
            aload 1 /* namespace */
            iload 2 /* ordered */
            aload 3 /* insertRequest */
            invokespecial com.mongodb.internal.connection.InsertProtocol.<init>:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/InsertRequest;)V
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcernResult
            areturn
        end local 3 // com.mongodb.bulk.InsertRequest insertRequest
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    1     1      namespace  Lcom/mongodb/MongoNamespace;
            0    1     2        ordered  Z
            0    1     3  insertRequest  Lcom/mongodb/bulk/InsertRequest;
    MethodParameters:
               Name  Flags
      namespace      final
      ordered        final
      insertRequest  final

  public void insertAsync(com.mongodb.MongoNamespace, boolean, com.mongodb.bulk.InsertRequest, com.mongodb.async.SingleResultCallback<com.mongodb.WriteConcernResult>);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/InsertRequest;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.bulk.InsertRequest insertRequest
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 87
            aload 0 /* this */
            new com.mongodb.internal.connection.InsertProtocol
            dup
            aload 1 /* namespace */
            iload 2 /* ordered */
            aload 3 /* insertRequest */
            invokespecial com.mongodb.internal.connection.InsertProtocol.<init>:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/InsertRequest;)V
            aload 4 /* callback */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 88
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.bulk.InsertRequest insertRequest
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1      namespace  Lcom/mongodb/MongoNamespace;
            0    2     2        ordered  Z
            0    2     3  insertRequest  Lcom/mongodb/bulk/InsertRequest;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;
    Signature: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/InsertRequest;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;)V
    MethodParameters:
               Name  Flags
      namespace      final
      ordered        final
      insertRequest  final
      callback       final

  public com.mongodb.WriteConcernResult update(com.mongodb.MongoNamespace, boolean, com.mongodb.bulk.UpdateRequest);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/UpdateRequest;)Lcom/mongodb/WriteConcernResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.bulk.UpdateRequest updateRequest
         0: .line 92
            aload 0 /* this */
            new com.mongodb.internal.connection.UpdateProtocol
            dup
            aload 1 /* namespace */
            iload 2 /* ordered */
            aload 3 /* updateRequest */
            invokespecial com.mongodb.internal.connection.UpdateProtocol.<init>:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/UpdateRequest;)V
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcernResult
            areturn
        end local 3 // com.mongodb.bulk.UpdateRequest updateRequest
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    1     1      namespace  Lcom/mongodb/MongoNamespace;
            0    1     2        ordered  Z
            0    1     3  updateRequest  Lcom/mongodb/bulk/UpdateRequest;
    MethodParameters:
               Name  Flags
      namespace      final
      ordered        final
      updateRequest  final

  public void updateAsync(com.mongodb.MongoNamespace, boolean, com.mongodb.bulk.UpdateRequest, com.mongodb.async.SingleResultCallback<com.mongodb.WriteConcernResult>);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/UpdateRequest;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.bulk.UpdateRequest updateRequest
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 98
            aload 0 /* this */
            new com.mongodb.internal.connection.UpdateProtocol
            dup
            aload 1 /* namespace */
            iload 2 /* ordered */
            aload 3 /* updateRequest */
            invokespecial com.mongodb.internal.connection.UpdateProtocol.<init>:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/UpdateRequest;)V
            aload 4 /* callback */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 99
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.bulk.UpdateRequest updateRequest
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1      namespace  Lcom/mongodb/MongoNamespace;
            0    2     2        ordered  Z
            0    2     3  updateRequest  Lcom/mongodb/bulk/UpdateRequest;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;
    Signature: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/UpdateRequest;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;)V
    MethodParameters:
               Name  Flags
      namespace      final
      ordered        final
      updateRequest  final
      callback       final

  public com.mongodb.WriteConcernResult delete(com.mongodb.MongoNamespace, boolean, com.mongodb.bulk.DeleteRequest);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/DeleteRequest;)Lcom/mongodb/WriteConcernResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.bulk.DeleteRequest deleteRequest
         0: .line 103
            aload 0 /* this */
            new com.mongodb.internal.connection.DeleteProtocol
            dup
            aload 1 /* namespace */
            iload 2 /* ordered */
            aload 3 /* deleteRequest */
            invokespecial com.mongodb.internal.connection.DeleteProtocol.<init>:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/DeleteRequest;)V
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcernResult
            areturn
        end local 3 // com.mongodb.bulk.DeleteRequest deleteRequest
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    1     1      namespace  Lcom/mongodb/MongoNamespace;
            0    1     2        ordered  Z
            0    1     3  deleteRequest  Lcom/mongodb/bulk/DeleteRequest;
    MethodParameters:
               Name  Flags
      namespace      final
      ordered        final
      deleteRequest  final

  public void deleteAsync(com.mongodb.MongoNamespace, boolean, com.mongodb.bulk.DeleteRequest, com.mongodb.async.SingleResultCallback<com.mongodb.WriteConcernResult>);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/DeleteRequest;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.bulk.DeleteRequest deleteRequest
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 109
            aload 0 /* this */
            new com.mongodb.internal.connection.DeleteProtocol
            dup
            aload 1 /* namespace */
            iload 2 /* ordered */
            aload 3 /* deleteRequest */
            invokespecial com.mongodb.internal.connection.DeleteProtocol.<init>:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/DeleteRequest;)V
            aload 4 /* callback */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 110
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.bulk.DeleteRequest deleteRequest
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1      namespace  Lcom/mongodb/MongoNamespace;
            0    2     2        ordered  Z
            0    2     3  deleteRequest  Lcom/mongodb/bulk/DeleteRequest;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;
    Signature: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/DeleteRequest;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;)V
    MethodParameters:
               Name  Flags
      namespace      final
      ordered        final
      deleteRequest  final
      callback       final

  public <T> T command(java.lang.String, org.bson.BsonDocument, boolean, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;ZLorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // boolean slaveOk
        start local 4 // org.bson.FieldNameValidator fieldNameValidator
        start local 5 // org.bson.codecs.Decoder commandResultDecoder
         0: .line 116
            aload 0 /* this */
            aload 1 /* database */
            aload 2 /* command */
            aload 4 /* fieldNameValidator */
            aload 0 /* this */
            iload 3 /* slaveOk */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getReadPreferenceFromSlaveOk:(Z)Lcom/mongodb/ReadPreference;
            aload 5 /* commandResultDecoder */
         1: .line 117
            getstatic com.mongodb.internal.connection.NoOpSessionContext.INSTANCE:Lcom/mongodb/internal/connection/NoOpSessionContext;
         2: .line 116
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.command:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 5 // org.bson.codecs.Decoder commandResultDecoder
        end local 4 // org.bson.FieldNameValidator fieldNameValidator
        end local 3 // boolean slaveOk
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                  this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    3     1              database  Ljava/lang/String;
            0    3     2               command  Lorg/bson/BsonDocument;
            0    3     3               slaveOk  Z
            0    3     4    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    3     5  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;ZLorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;)TT;
    MethodParameters:
                      Name  Flags
      database              final
      command               final
      slaveOk               final
      fieldNameValidator    final
      commandResultDecoder  final

  public <T> T command(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, com.mongodb.ReadPreference, org.bson.codecs.Decoder<T>, com.mongodb.session.SessionContext);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=7, args_size=7
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // org.bson.codecs.Decoder commandResultDecoder
        start local 6 // com.mongodb.session.SessionContext sessionContext
         0: .line 123
            aload 0 /* this */
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* fieldNameValidator */
            aload 4 /* readPreference */
            aload 5 /* commandResultDecoder */
            aload 6 /* sessionContext */
            iconst_1
            aconst_null
            aconst_null
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.command:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;)Ljava/lang/Object;
            areturn
        end local 6 // com.mongodb.session.SessionContext sessionContext
        end local 5 // org.bson.codecs.Decoder commandResultDecoder
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0                  this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    1     1              database  Ljava/lang/String;
            0    1     2               command  Lorg/bson/BsonDocument;
            0    1     3    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    1     4        readPreference  Lcom/mongodb/ReadPreference;
            0    1     5  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    1     6        sessionContext  Lcom/mongodb/session/SessionContext;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/session/SessionContext;)TT;
    MethodParameters:
                      Name  Flags
      database              final
      command               final
      fieldNameValidator    final
      readPreference        final
      commandResultDecoder  final
      sessionContext        final

  public <T> T command(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, com.mongodb.ReadPreference, org.bson.codecs.Decoder<T>, com.mongodb.session.SessionContext, boolean, com.mongodb.connection.SplittablePayload, org.bson.FieldNameValidator);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=10, args_size=10
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator commandFieldNameValidator
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // org.bson.codecs.Decoder commandResultDecoder
        start local 6 // com.mongodb.session.SessionContext sessionContext
        start local 7 // boolean responseExpected
        start local 8 // com.mongodb.connection.SplittablePayload payload
        start local 9 // org.bson.FieldNameValidator payloadFieldNameValidator
         0: .line 131
            aload 0 /* this */
            new com.mongodb.internal.connection.CommandProtocolImpl
            dup
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* commandFieldNameValidator */
            aload 4 /* readPreference */
         1: .line 132
            aload 5 /* commandResultDecoder */
            iload 7 /* responseExpected */
            aload 8 /* payload */
            aload 9 /* payloadFieldNameValidator */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.clusterConnectionMode:Lcom/mongodb/connection/ClusterConnectionMode;
            invokespecial com.mongodb.internal.connection.CommandProtocolImpl.<init>:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/connection/ClusterConnectionMode;)V
            aload 6 /* sessionContext */
         2: .line 131
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/CommandProtocol;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 9 // org.bson.FieldNameValidator payloadFieldNameValidator
        end local 8 // com.mongodb.connection.SplittablePayload payload
        end local 7 // boolean responseExpected
        end local 6 // com.mongodb.session.SessionContext sessionContext
        end local 5 // org.bson.codecs.Decoder commandResultDecoder
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // org.bson.FieldNameValidator commandFieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    3     0                       this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    3     1                   database  Ljava/lang/String;
            0    3     2                    command  Lorg/bson/BsonDocument;
            0    3     3  commandFieldNameValidator  Lorg/bson/FieldNameValidator;
            0    3     4             readPreference  Lcom/mongodb/ReadPreference;
            0    3     5       commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    3     6             sessionContext  Lcom/mongodb/session/SessionContext;
            0    3     7           responseExpected  Z
            0    3     8                    payload  Lcom/mongodb/connection/SplittablePayload;
            0    3     9  payloadFieldNameValidator  Lorg/bson/FieldNameValidator;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;)TT;
    MethodParameters:
                           Name  Flags
      database                   final
      command                    final
      commandFieldNameValidator  final
      readPreference             final
      commandResultDecoder       final
      sessionContext             final
      responseExpected           final
      payload                    final
      payloadFieldNameValidator  final

  public <T> void commandAsync(java.lang.String, org.bson.BsonDocument, boolean, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;ZLorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // boolean slaveOk
        start local 4 // org.bson.FieldNameValidator fieldNameValidator
        start local 5 // org.bson.codecs.Decoder commandResultDecoder
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 139
            aload 0 /* this */
            aload 1 /* database */
            aload 2 /* command */
            aload 4 /* fieldNameValidator */
            aload 0 /* this */
            iload 3 /* slaveOk */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getReadPreferenceFromSlaveOk:(Z)Lcom/mongodb/ReadPreference;
            aload 5 /* commandResultDecoder */
         1: .line 140
            getstatic com.mongodb.internal.connection.NoOpSessionContext.INSTANCE:Lcom/mongodb/internal/connection/NoOpSessionContext;
            aload 6 /* callback */
         2: .line 139
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.commandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 141
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // org.bson.codecs.Decoder commandResultDecoder
        end local 4 // org.bson.FieldNameValidator fieldNameValidator
        end local 3 // boolean slaveOk
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    4     1              database  Ljava/lang/String;
            0    4     2               command  Lorg/bson/BsonDocument;
            0    4     3               slaveOk  Z
            0    4     4    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    4     5  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    4     6              callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;ZLorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                      Name  Flags
      database              final
      command               final
      slaveOk               final
      fieldNameValidator    final
      commandResultDecoder  final
      callback              final

  public <T> void commandAsync(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, com.mongodb.ReadPreference, org.bson.codecs.Decoder<T>, com.mongodb.session.SessionContext, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=8, args_size=8
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // org.bson.codecs.Decoder commandResultDecoder
        start local 6 // com.mongodb.session.SessionContext sessionContext
        start local 7 // com.mongodb.async.SingleResultCallback callback
         0: .line 147
            aload 0 /* this */
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* fieldNameValidator */
            aload 4 /* readPreference */
            aload 5 /* commandResultDecoder */
            aload 6 /* sessionContext */
            iconst_1
            aconst_null
            aconst_null
         1: .line 148
            aload 7 /* callback */
         2: .line 147
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.commandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 149
            return
        end local 7 // com.mongodb.async.SingleResultCallback callback
        end local 6 // com.mongodb.session.SessionContext sessionContext
        end local 5 // org.bson.codecs.Decoder commandResultDecoder
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    4     1              database  Ljava/lang/String;
            0    4     2               command  Lorg/bson/BsonDocument;
            0    4     3    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    4     4        readPreference  Lcom/mongodb/ReadPreference;
            0    4     5  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    4     6        sessionContext  Lcom/mongodb/session/SessionContext;
            0    4     7              callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                      Name  Flags
      database              final
      command               final
      fieldNameValidator    final
      readPreference        final
      commandResultDecoder  final
      sessionContext        final
      callback              final

  public <T> void commandAsync(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, com.mongodb.ReadPreference, org.bson.codecs.Decoder<T>, com.mongodb.session.SessionContext, boolean, com.mongodb.connection.SplittablePayload, org.bson.FieldNameValidator, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=11, args_size=11
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator commandFieldNameValidator
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // org.bson.codecs.Decoder commandResultDecoder
        start local 6 // com.mongodb.session.SessionContext sessionContext
        start local 7 // boolean responseExpected
        start local 8 // com.mongodb.connection.SplittablePayload payload
        start local 9 // org.bson.FieldNameValidator payloadFieldNameValidator
        start local 10 // com.mongodb.async.SingleResultCallback callback
         0: .line 156
            aload 0 /* this */
            new com.mongodb.internal.connection.CommandProtocolImpl
            dup
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* commandFieldNameValidator */
            aload 4 /* readPreference */
         1: .line 157
            aload 5 /* commandResultDecoder */
            iload 7 /* responseExpected */
            aload 8 /* payload */
            aload 9 /* payloadFieldNameValidator */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.clusterConnectionMode:Lcom/mongodb/connection/ClusterConnectionMode;
            invokespecial com.mongodb.internal.connection.CommandProtocolImpl.<init>:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/connection/ClusterConnectionMode;)V
         2: .line 158
            aload 6 /* sessionContext */
            aload 10 /* callback */
         3: .line 156
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/CommandProtocol;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 159
            return
        end local 10 // com.mongodb.async.SingleResultCallback callback
        end local 9 // org.bson.FieldNameValidator payloadFieldNameValidator
        end local 8 // com.mongodb.connection.SplittablePayload payload
        end local 7 // boolean responseExpected
        end local 6 // com.mongodb.session.SessionContext sessionContext
        end local 5 // org.bson.codecs.Decoder commandResultDecoder
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // org.bson.FieldNameValidator commandFieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    5     0                       this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    5     1                   database  Ljava/lang/String;
            0    5     2                    command  Lorg/bson/BsonDocument;
            0    5     3  commandFieldNameValidator  Lorg/bson/FieldNameValidator;
            0    5     4             readPreference  Lcom/mongodb/ReadPreference;
            0    5     5       commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    5     6             sessionContext  Lcom/mongodb/session/SessionContext;
            0    5     7           responseExpected  Z
            0    5     8                    payload  Lcom/mongodb/connection/SplittablePayload;
            0    5     9  payloadFieldNameValidator  Lorg/bson/FieldNameValidator;
            0    5    10                   callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                           Name  Flags
      database                   final
      command                    final
      commandFieldNameValidator  final
      readPreference             final
      commandResultDecoder       final
      sessionContext             final
      responseExpected           final
      payload                    final
      payloadFieldNameValidator  final
      callback                   final

  public <T> com.mongodb.connection.QueryResult<T> query(com.mongodb.MongoNamespace, org.bson.BsonDocument, org.bson.BsonDocument, int, int, boolean, boolean, boolean, boolean, boolean, boolean, org.bson.codecs.Decoder<T>);
    descriptor: (Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIZZZZZZLorg/bson/codecs/Decoder;)Lcom/mongodb/connection/QueryResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=13, args_size=13
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // org.bson.BsonDocument queryDocument
        start local 3 // org.bson.BsonDocument fields
        start local 4 // int numberToReturn
        start local 5 // int skip
        start local 6 // boolean slaveOk
        start local 7 // boolean tailableCursor
        start local 8 // boolean awaitData
        start local 9 // boolean noCursorTimeout
        start local 10 // boolean partial
        start local 11 // boolean oplogReplay
        start local 12 // org.bson.codecs.Decoder resultDecoder
         0: .line 168
            aload 0 /* this */
            new com.mongodb.internal.connection.QueryProtocol
            dup
            aload 1 /* namespace */
            iload 5 /* skip */
            iload 4 /* numberToReturn */
            aload 2 /* queryDocument */
            aload 3 /* fields */
            aload 12 /* resultDecoder */
            invokespecial com.mongodb.internal.connection.QueryProtocol.<init>:(Lcom/mongodb/MongoNamespace;IILorg/bson/BsonDocument;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;)V
         1: .line 169
            iload 7 /* tailableCursor */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.tailableCursor:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         2: .line 170
            aload 0 /* this */
            iload 6 /* slaveOk */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getSlaveOk:(Z)Z
            invokevirtual com.mongodb.internal.connection.QueryProtocol.slaveOk:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         3: .line 171
            iload 11 /* oplogReplay */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.oplogReplay:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         4: .line 172
            iload 9 /* noCursorTimeout */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.noCursorTimeout:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         5: .line 173
            iload 8 /* awaitData */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.awaitData:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         6: .line 174
            iload 10 /* partial */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.partial:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         7: .line 168
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
            checkcast com.mongodb.connection.QueryResult
            areturn
        end local 12 // org.bson.codecs.Decoder resultDecoder
        end local 11 // boolean oplogReplay
        end local 10 // boolean partial
        end local 9 // boolean noCursorTimeout
        end local 8 // boolean awaitData
        end local 7 // boolean tailableCursor
        end local 6 // boolean slaveOk
        end local 5 // int skip
        end local 4 // int numberToReturn
        end local 3 // org.bson.BsonDocument fields
        end local 2 // org.bson.BsonDocument queryDocument
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    8     1        namespace  Lcom/mongodb/MongoNamespace;
            0    8     2    queryDocument  Lorg/bson/BsonDocument;
            0    8     3           fields  Lorg/bson/BsonDocument;
            0    8     4   numberToReturn  I
            0    8     5             skip  I
            0    8     6          slaveOk  Z
            0    8     7   tailableCursor  Z
            0    8     8        awaitData  Z
            0    8     9  noCursorTimeout  Z
            0    8    10          partial  Z
            0    8    11      oplogReplay  Z
            0    8    12    resultDecoder  Lorg/bson/codecs/Decoder<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIZZZZZZLorg/bson/codecs/Decoder<TT;>;)Lcom/mongodb/connection/QueryResult<TT;>;
    MethodParameters:
                 Name  Flags
      namespace        final
      queryDocument    final
      fields           final
      numberToReturn   final
      skip             final
      slaveOk          final
      tailableCursor   final
      awaitData        final
      noCursorTimeout  final
      partial          final
      oplogReplay      final
      resultDecoder    final

  public <T> com.mongodb.connection.QueryResult<T> query(com.mongodb.MongoNamespace, org.bson.BsonDocument, org.bson.BsonDocument, int, int, int, boolean, boolean, boolean, boolean, boolean, boolean, org.bson.codecs.Decoder<T>);
    descriptor: (Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIIZZZZZZLorg/bson/codecs/Decoder;)Lcom/mongodb/connection/QueryResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=14, args_size=14
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // org.bson.BsonDocument queryDocument
        start local 3 // org.bson.BsonDocument fields
        start local 4 // int skip
        start local 5 // int limit
        start local 6 // int batchSize
        start local 7 // boolean slaveOk
        start local 8 // boolean tailableCursor
        start local 9 // boolean awaitData
        start local 10 // boolean noCursorTimeout
        start local 11 // boolean partial
        start local 12 // boolean oplogReplay
        start local 13 // org.bson.codecs.Decoder resultDecoder
         0: .line 184
            aload 0 /* this */
            new com.mongodb.internal.connection.QueryProtocol
            dup
            aload 1 /* namespace */
            iload 4 /* skip */
            iload 5 /* limit */
            iload 6 /* batchSize */
            aload 2 /* queryDocument */
            aload 3 /* fields */
            aload 13 /* resultDecoder */
            invokespecial com.mongodb.internal.connection.QueryProtocol.<init>:(Lcom/mongodb/MongoNamespace;IIILorg/bson/BsonDocument;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;)V
         1: .line 185
            iload 8 /* tailableCursor */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.tailableCursor:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         2: .line 186
            aload 0 /* this */
            iload 7 /* slaveOk */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getSlaveOk:(Z)Z
            invokevirtual com.mongodb.internal.connection.QueryProtocol.slaveOk:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         3: .line 187
            iload 12 /* oplogReplay */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.oplogReplay:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         4: .line 188
            iload 10 /* noCursorTimeout */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.noCursorTimeout:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         5: .line 189
            iload 9 /* awaitData */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.awaitData:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         6: .line 190
            iload 11 /* partial */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.partial:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         7: .line 184
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
            checkcast com.mongodb.connection.QueryResult
            areturn
        end local 13 // org.bson.codecs.Decoder resultDecoder
        end local 12 // boolean oplogReplay
        end local 11 // boolean partial
        end local 10 // boolean noCursorTimeout
        end local 9 // boolean awaitData
        end local 8 // boolean tailableCursor
        end local 7 // boolean slaveOk
        end local 6 // int batchSize
        end local 5 // int limit
        end local 4 // int skip
        end local 3 // org.bson.BsonDocument fields
        end local 2 // org.bson.BsonDocument queryDocument
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    8     1        namespace  Lcom/mongodb/MongoNamespace;
            0    8     2    queryDocument  Lorg/bson/BsonDocument;
            0    8     3           fields  Lorg/bson/BsonDocument;
            0    8     4             skip  I
            0    8     5            limit  I
            0    8     6        batchSize  I
            0    8     7          slaveOk  Z
            0    8     8   tailableCursor  Z
            0    8     9        awaitData  Z
            0    8    10  noCursorTimeout  Z
            0    8    11          partial  Z
            0    8    12      oplogReplay  Z
            0    8    13    resultDecoder  Lorg/bson/codecs/Decoder<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIIZZZZZZLorg/bson/codecs/Decoder<TT;>;)Lcom/mongodb/connection/QueryResult<TT;>;
    MethodParameters:
                 Name  Flags
      namespace        final
      queryDocument    final
      fields           final
      skip             final
      limit            final
      batchSize        final
      slaveOk          final
      tailableCursor   final
      awaitData        final
      noCursorTimeout  final
      partial          final
      oplogReplay      final
      resultDecoder    final

  public <T> void queryAsync(com.mongodb.MongoNamespace, org.bson.BsonDocument, org.bson.BsonDocument, int, int, boolean, boolean, boolean, boolean, boolean, boolean, org.bson.codecs.Decoder<T>, com.mongodb.async.SingleResultCallback<com.mongodb.connection.QueryResult<T>>);
    descriptor: (Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIZZZZZZLorg/bson/codecs/Decoder;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=14, args_size=14
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // org.bson.BsonDocument queryDocument
        start local 3 // org.bson.BsonDocument fields
        start local 4 // int numberToReturn
        start local 5 // int skip
        start local 6 // boolean slaveOk
        start local 7 // boolean tailableCursor
        start local 8 // boolean awaitData
        start local 9 // boolean noCursorTimeout
        start local 10 // boolean partial
        start local 11 // boolean oplogReplay
        start local 12 // org.bson.codecs.Decoder resultDecoder
        start local 13 // com.mongodb.async.SingleResultCallback callback
         0: .line 200
            aload 0 /* this */
            new com.mongodb.internal.connection.QueryProtocol
            dup
            aload 1 /* namespace */
            iload 5 /* skip */
            iload 4 /* numberToReturn */
            aload 2 /* queryDocument */
            aload 3 /* fields */
            aload 12 /* resultDecoder */
            invokespecial com.mongodb.internal.connection.QueryProtocol.<init>:(Lcom/mongodb/MongoNamespace;IILorg/bson/BsonDocument;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;)V
         1: .line 201
            iload 7 /* tailableCursor */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.tailableCursor:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         2: .line 202
            aload 0 /* this */
            iload 6 /* slaveOk */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getSlaveOk:(Z)Z
            invokevirtual com.mongodb.internal.connection.QueryProtocol.slaveOk:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         3: .line 203
            iload 11 /* oplogReplay */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.oplogReplay:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         4: .line 204
            iload 9 /* noCursorTimeout */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.noCursorTimeout:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         5: .line 205
            iload 8 /* awaitData */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.awaitData:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         6: .line 206
            iload 10 /* partial */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.partial:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
            aload 13 /* callback */
         7: .line 200
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
         8: .line 207
            return
        end local 13 // com.mongodb.async.SingleResultCallback callback
        end local 12 // org.bson.codecs.Decoder resultDecoder
        end local 11 // boolean oplogReplay
        end local 10 // boolean partial
        end local 9 // boolean noCursorTimeout
        end local 8 // boolean awaitData
        end local 7 // boolean tailableCursor
        end local 6 // boolean slaveOk
        end local 5 // int skip
        end local 4 // int numberToReturn
        end local 3 // org.bson.BsonDocument fields
        end local 2 // org.bson.BsonDocument queryDocument
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    9     1        namespace  Lcom/mongodb/MongoNamespace;
            0    9     2    queryDocument  Lorg/bson/BsonDocument;
            0    9     3           fields  Lorg/bson/BsonDocument;
            0    9     4   numberToReturn  I
            0    9     5             skip  I
            0    9     6          slaveOk  Z
            0    9     7   tailableCursor  Z
            0    9     8        awaitData  Z
            0    9     9  noCursorTimeout  Z
            0    9    10          partial  Z
            0    9    11      oplogReplay  Z
            0    9    12    resultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    9    13         callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIZZZZZZLorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;)V
    MethodParameters:
                 Name  Flags
      namespace        final
      queryDocument    final
      fields           final
      numberToReturn   final
      skip             final
      slaveOk          final
      tailableCursor   final
      awaitData        final
      noCursorTimeout  final
      partial          final
      oplogReplay      final
      resultDecoder    final
      callback         final

  public <T> void queryAsync(com.mongodb.MongoNamespace, org.bson.BsonDocument, org.bson.BsonDocument, int, int, int, boolean, boolean, boolean, boolean, boolean, boolean, org.bson.codecs.Decoder<T>, com.mongodb.async.SingleResultCallback<com.mongodb.connection.QueryResult<T>>);
    descriptor: (Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIIZZZZZZLorg/bson/codecs/Decoder;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=15, args_size=15
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // org.bson.BsonDocument queryDocument
        start local 3 // org.bson.BsonDocument fields
        start local 4 // int skip
        start local 5 // int limit
        start local 6 // int batchSize
        start local 7 // boolean slaveOk
        start local 8 // boolean tailableCursor
        start local 9 // boolean awaitData
        start local 10 // boolean noCursorTimeout
        start local 11 // boolean partial
        start local 12 // boolean oplogReplay
        start local 13 // org.bson.codecs.Decoder resultDecoder
        start local 14 // com.mongodb.async.SingleResultCallback callback
         0: .line 214
            aload 0 /* this */
            new com.mongodb.internal.connection.QueryProtocol
            dup
            aload 1 /* namespace */
            iload 4 /* skip */
            iload 5 /* limit */
            iload 6 /* batchSize */
            aload 2 /* queryDocument */
            aload 3 /* fields */
            aload 13 /* resultDecoder */
            invokespecial com.mongodb.internal.connection.QueryProtocol.<init>:(Lcom/mongodb/MongoNamespace;IIILorg/bson/BsonDocument;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;)V
         1: .line 215
            iload 8 /* tailableCursor */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.tailableCursor:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         2: .line 216
            aload 0 /* this */
            iload 7 /* slaveOk */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getSlaveOk:(Z)Z
            invokevirtual com.mongodb.internal.connection.QueryProtocol.slaveOk:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         3: .line 217
            iload 12 /* oplogReplay */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.oplogReplay:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         4: .line 218
            iload 10 /* noCursorTimeout */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.noCursorTimeout:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         5: .line 219
            iload 9 /* awaitData */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.awaitData:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
         6: .line 220
            iload 11 /* partial */
            invokevirtual com.mongodb.internal.connection.QueryProtocol.partial:(Z)Lcom/mongodb/internal/connection/QueryProtocol;
            aload 14 /* callback */
         7: .line 214
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
         8: .line 221
            return
        end local 14 // com.mongodb.async.SingleResultCallback callback
        end local 13 // org.bson.codecs.Decoder resultDecoder
        end local 12 // boolean oplogReplay
        end local 11 // boolean partial
        end local 10 // boolean noCursorTimeout
        end local 9 // boolean awaitData
        end local 8 // boolean tailableCursor
        end local 7 // boolean slaveOk
        end local 6 // int batchSize
        end local 5 // int limit
        end local 4 // int skip
        end local 3 // org.bson.BsonDocument fields
        end local 2 // org.bson.BsonDocument queryDocument
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    9     1        namespace  Lcom/mongodb/MongoNamespace;
            0    9     2    queryDocument  Lorg/bson/BsonDocument;
            0    9     3           fields  Lorg/bson/BsonDocument;
            0    9     4             skip  I
            0    9     5            limit  I
            0    9     6        batchSize  I
            0    9     7          slaveOk  Z
            0    9     8   tailableCursor  Z
            0    9     9        awaitData  Z
            0    9    10  noCursorTimeout  Z
            0    9    11          partial  Z
            0    9    12      oplogReplay  Z
            0    9    13    resultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    9    14         callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIIZZZZZZLorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;)V
    MethodParameters:
                 Name  Flags
      namespace        final
      queryDocument    final
      fields           final
      skip             final
      limit            final
      batchSize        final
      slaveOk          final
      tailableCursor   final
      awaitData        final
      noCursorTimeout  final
      partial          final
      oplogReplay      final
      resultDecoder    final
      callback         final

  public <T> com.mongodb.connection.QueryResult<T> getMore(com.mongodb.MongoNamespace, long, int, org.bson.codecs.Decoder<T>);
    descriptor: (Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder;)Lcom/mongodb/connection/QueryResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // long cursorId
        start local 4 // int numberToReturn
        start local 5 // org.bson.codecs.Decoder resultDecoder
         0: .line 226
            aload 0 /* this */
            new com.mongodb.internal.connection.GetMoreProtocol
            dup
            aload 1 /* namespace */
            lload 2 /* cursorId */
            iload 4 /* numberToReturn */
            aload 5 /* resultDecoder */
            invokespecial com.mongodb.internal.connection.GetMoreProtocol.<init>:(Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder;)V
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
            checkcast com.mongodb.connection.QueryResult
            areturn
        end local 5 // org.bson.codecs.Decoder resultDecoder
        end local 4 // int numberToReturn
        end local 2 // long cursorId
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    1     1       namespace  Lcom/mongodb/MongoNamespace;
            0    1     2        cursorId  J
            0    1     4  numberToReturn  I
            0    1     5   resultDecoder  Lorg/bson/codecs/Decoder<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder<TT;>;)Lcom/mongodb/connection/QueryResult<TT;>;
    MethodParameters:
                Name  Flags
      namespace       final
      cursorId        final
      numberToReturn  final
      resultDecoder   final

  public <T> void getMoreAsync(com.mongodb.MongoNamespace, long, int, org.bson.codecs.Decoder<T>, com.mongodb.async.SingleResultCallback<com.mongodb.connection.QueryResult<T>>);
    descriptor: (Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // long cursorId
        start local 4 // int numberToReturn
        start local 5 // org.bson.codecs.Decoder resultDecoder
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 232
            aload 0 /* this */
            new com.mongodb.internal.connection.GetMoreProtocol
            dup
            aload 1 /* namespace */
            lload 2 /* cursorId */
            iload 4 /* numberToReturn */
            aload 5 /* resultDecoder */
            invokespecial com.mongodb.internal.connection.GetMoreProtocol.<init>:(Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder;)V
            aload 6 /* callback */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 233
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // org.bson.codecs.Decoder resultDecoder
        end local 4 // int numberToReturn
        end local 2 // long cursorId
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1       namespace  Lcom/mongodb/MongoNamespace;
            0    2     2        cursorId  J
            0    2     4  numberToReturn  I
            0    2     5   resultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    2     6        callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;)V
    MethodParameters:
                Name  Flags
      namespace       final
      cursorId        final
      numberToReturn  final
      resultDecoder   final
      callback        final

  public void killCursor(java.util.List<java.lang.Long>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.util.List cursors
         0: .line 237
            aload 0 /* this */
            aconst_null
            aload 1 /* cursors */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.killCursor:(Lcom/mongodb/MongoNamespace;Ljava/util/List;)V
         1: .line 238
            return
        end local 1 // java.util.List cursors
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1  cursors  Ljava/util/List<Ljava/lang/Long;>;
    Signature: (Ljava/util/List<Ljava/lang/Long;>;)V
    MethodParameters:
         Name  Flags
      cursors  final

  public void killCursor(com.mongodb.MongoNamespace, java.util.List<java.lang.Long>);
    descriptor: (Lcom/mongodb/MongoNamespace;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // java.util.List cursors
         0: .line 242
            aload 0 /* this */
            new com.mongodb.internal.connection.KillCursorProtocol
            dup
            aload 1 /* namespace */
            aload 2 /* cursors */
            invokespecial com.mongodb.internal.connection.KillCursorProtocol.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;)V
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocol:(Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
            pop
         1: .line 243
            return
        end local 2 // java.util.List cursors
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1  namespace  Lcom/mongodb/MongoNamespace;
            0    2     2    cursors  Ljava/util/List<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/MongoNamespace;Ljava/util/List<Ljava/lang/Long;>;)V
    MethodParameters:
           Name  Flags
      namespace  final
      cursors    final

  public void killCursorAsync(java.util.List<java.lang.Long>, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // java.util.List cursors
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 247
            aload 0 /* this */
            aconst_null
            aload 1 /* cursors */
            aload 2 /* callback */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.killCursorAsync:(Lcom/mongodb/MongoNamespace;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 248
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // java.util.List cursors
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1   cursors  Ljava/util/List<Ljava/lang/Long;>;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/util/List<Ljava/lang/Long;>;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      cursors   final
      callback  final

  public void killCursorAsync(com.mongodb.MongoNamespace, java.util.List<java.lang.Long>, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/MongoNamespace;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // java.util.List cursors
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 252
            aload 0 /* this */
            new com.mongodb.internal.connection.KillCursorProtocol
            dup
            aload 1 /* namespace */
            aload 2 /* cursors */
            invokespecial com.mongodb.internal.connection.KillCursorProtocol.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;)V
            aload 3 /* callback */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.executeProtocolAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 253
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.util.List cursors
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    2     1  namespace  Lcom/mongodb/MongoNamespace;
            0    2     2    cursors  Ljava/util/List<Ljava/lang/Long;>;
            0    2     3   callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/MongoNamespace;Ljava/util/List<Ljava/lang/Long;>;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
           Name  Flags
      namespace  final
      cursors    final
      callback   final

  private com.mongodb.ReadPreference getReadPreferenceFromSlaveOk(boolean);
    descriptor: (Z)Lcom/mongodb/ReadPreference;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // boolean slaveOk
         0: .line 256
            aload 0 /* this */
            iload 1 /* slaveOk */
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.getSlaveOk:(Z)Z
            ifeq 1
            invokestatic com.mongodb.ReadPreference.secondaryPreferred:()Lcom/mongodb/ReadPreference;
            goto 2
      StackMap locals:
      StackMap stack:
         1: invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
      StackMap locals:
      StackMap stack: com.mongodb.ReadPreference
         2: areturn
        end local 1 // boolean slaveOk
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    3     1  slaveOk  Z
    MethodParameters:
         Name  Flags
      slaveOk  final

  private boolean getSlaveOk(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // boolean slaveOk
         0: .line 260
            iload 1 /* slaveOk */
            ifne 3
         1: .line 261
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.clusterConnectionMode:Lcom/mongodb/connection/ClusterConnectionMode;
            getstatic com.mongodb.connection.ClusterConnectionMode.SINGLE:Lcom/mongodb/connection/ClusterConnectionMode;
            if_acmpne 2
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerType:()Lcom/mongodb/connection/ServerType;
            getstatic com.mongodb.connection.ServerType.SHARD_ROUTER:Lcom/mongodb/connection/ServerType;
            if_acmpne 3
         2: .line 260
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // boolean slaveOk
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    4     1  slaveOk  Z
    MethodParameters:
         Name  Flags
      slaveOk  final

  private <T> T executeProtocol(com.mongodb.internal.connection.LegacyProtocol<T>);
    descriptor: (Lcom/mongodb/internal/connection/LegacyProtocol;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.internal.connection.LegacyProtocol protocol
         0: .line 265
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.protocolExecutor:Lcom/mongodb/internal/connection/ProtocolExecutor;
            aload 1 /* protocol */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
            invokeinterface com.mongodb.internal.connection.ProtocolExecutor.execute:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/internal/connection/InternalConnection;)Ljava/lang/Object;
            areturn
        end local 1 // com.mongodb.internal.connection.LegacyProtocol protocol
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    1     1  protocol  Lcom/mongodb/internal/connection/LegacyProtocol<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/LegacyProtocol<TT;>;)TT;
    MethodParameters:
          Name  Flags
      protocol  final

  private <T> T executeProtocol(com.mongodb.internal.connection.CommandProtocol<T>, com.mongodb.session.SessionContext);
    descriptor: (Lcom/mongodb/internal/connection/CommandProtocol;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.internal.connection.CommandProtocol protocol
        start local 2 // com.mongodb.session.SessionContext sessionContext
         0: .line 269
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.protocolExecutor:Lcom/mongodb/internal/connection/ProtocolExecutor;
            aload 1 /* protocol */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
            aload 2 /* sessionContext */
            invokeinterface com.mongodb.internal.connection.ProtocolExecutor.execute:(Lcom/mongodb/internal/connection/CommandProtocol;Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 2 // com.mongodb.session.SessionContext sessionContext
        end local 1 // com.mongodb.internal.connection.CommandProtocol protocol
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    1     1        protocol  Lcom/mongodb/internal/connection/CommandProtocol<TT;>;
            0    1     2  sessionContext  Lcom/mongodb/session/SessionContext;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/CommandProtocol<TT;>;Lcom/mongodb/session/SessionContext;)TT;
    MethodParameters:
                Name  Flags
      protocol        final
      sessionContext  final

  private <T> void executeProtocolAsync(com.mongodb.internal.connection.LegacyProtocol<T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.internal.connection.LegacyProtocol protocol
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 273
            aload 2 /* callback */
            getstatic com.mongodb.internal.connection.DefaultServerConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            astore 3 /* errHandlingCallback */
        start local 3 // com.mongodb.async.SingleResultCallback errHandlingCallback
         1: .line 275
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.protocolExecutor:Lcom/mongodb/internal/connection/ProtocolExecutor;
            aload 1 /* protocol */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
            aload 3 /* errHandlingCallback */
            invokeinterface com.mongodb.internal.connection.ProtocolExecutor.executeAsync:(Lcom/mongodb/internal/connection/LegacyProtocol;Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 276
            goto 5
      StackMap locals: com.mongodb.internal.connection.DefaultServerConnection com.mongodb.internal.connection.LegacyProtocol com.mongodb.async.SingleResultCallback com.mongodb.async.SingleResultCallback
      StackMap stack: java.lang.Throwable
         3: astore 4 /* t */
        start local 4 // java.lang.Throwable t
         4: .line 277
            aload 3 /* errHandlingCallback */
            aconst_null
            aload 4 /* t */
            invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Throwable t
         5: .line 279
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.mongodb.async.SingleResultCallback errHandlingCallback
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.internal.connection.LegacyProtocol protocol
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    6     1             protocol  Lcom/mongodb/internal/connection/LegacyProtocol<TT;>;
            0    6     2             callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
            1    6     3  errHandlingCallback  Lcom/mongodb/async/SingleResultCallback<TT;>;
            4    5     4                    t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/LegacyProtocol<TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
          Name  Flags
      protocol  final
      callback  final

  private <T> void executeProtocolAsync(com.mongodb.internal.connection.CommandProtocol<T>, com.mongodb.session.SessionContext, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/internal/connection/CommandProtocol;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.mongodb.internal.connection.DefaultServerConnection this
        start local 1 // com.mongodb.internal.connection.CommandProtocol protocol
        start local 2 // com.mongodb.session.SessionContext sessionContext
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 283
            aload 3 /* callback */
            getstatic com.mongodb.internal.connection.DefaultServerConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            astore 4 /* errHandlingCallback */
        start local 4 // com.mongodb.async.SingleResultCallback errHandlingCallback
         1: .line 285
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.protocolExecutor:Lcom/mongodb/internal/connection/ProtocolExecutor;
            aload 1 /* protocol */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultServerConnection.wrapped:Lcom/mongodb/internal/connection/InternalConnection;
            aload 2 /* sessionContext */
            aload 4 /* errHandlingCallback */
            invokeinterface com.mongodb.internal.connection.ProtocolExecutor.executeAsync:(Lcom/mongodb/internal/connection/CommandProtocol;Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 286
            goto 5
      StackMap locals: com.mongodb.internal.connection.DefaultServerConnection com.mongodb.internal.connection.CommandProtocol com.mongodb.session.SessionContext com.mongodb.async.SingleResultCallback com.mongodb.async.SingleResultCallback
      StackMap stack: java.lang.Throwable
         3: astore 5 /* t */
        start local 5 // java.lang.Throwable t
         4: .line 287
            aload 4 /* errHandlingCallback */
            aconst_null
            aload 5 /* t */
            invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
         5: .line 289
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.mongodb.async.SingleResultCallback errHandlingCallback
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.session.SessionContext sessionContext
        end local 1 // com.mongodb.internal.connection.CommandProtocol protocol
        end local 0 // com.mongodb.internal.connection.DefaultServerConnection this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lcom/mongodb/internal/connection/DefaultServerConnection;
            0    6     1             protocol  Lcom/mongodb/internal/connection/CommandProtocol<TT;>;
            0    6     2       sessionContext  Lcom/mongodb/session/SessionContext;
            0    6     3             callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
            1    6     4  errHandlingCallback  Lcom/mongodb/async/SingleResultCallback<TT;>;
            4    5     5                    t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/CommandProtocol<TT;>;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                Name  Flags
      protocol        final
      sessionContext  final
      callback        final

  public com.mongodb.connection.Connection retain();
    descriptor: ()Lcom/mongodb/connection/Connection;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.retain:()Lcom/mongodb/internal/connection/DefaultServerConnection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.connection.AsyncConnection retain();
    descriptor: ()Lcom/mongodb/connection/AsyncConnection;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.retain:()Lcom/mongodb/internal/connection/DefaultServerConnection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.binding.ReferenceCounted retain();
    descriptor: ()Lcom/mongodb/binding/ReferenceCounted;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.mongodb.internal.connection.DefaultServerConnection.retain:()Lcom/mongodb/internal/connection/DefaultServerConnection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public int getCount();
    descriptor: ()I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.mongodb.internal.connection.AbstractReferenceCounted.getCount:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "DefaultServerConnection.java"