class com.mongodb.internal.connection.ZstdCompressor extends com.mongodb.internal.connection.Compressor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.internal.connection.ZstdCompressor
  super_class: com.mongodb.internal.connection.Compressor
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.ZstdCompressor this
         0: .line 29
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.Compressor.<init>:()V
            return
        end local 0 // com.mongodb.internal.connection.ZstdCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/ZstdCompressor;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.ZstdCompressor this
         0: .line 32
            ldc "zstd"
            areturn
        end local 0 // com.mongodb.internal.connection.ZstdCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/ZstdCompressor;

  public byte getId();
    descriptor: ()B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.ZstdCompressor this
         0: .line 37
            iconst_3
            ireturn
        end local 0 // com.mongodb.internal.connection.ZstdCompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/ZstdCompressor;

  public void compress(java.util.List<org.bson.ByteBuf>, org.bson.io.BsonOutput);
    descriptor: (Ljava/util/List;Lorg/bson/io/BsonOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.mongodb.internal.connection.ZstdCompressor this
        start local 1 // java.util.List source
        start local 2 // org.bson.io.BsonOutput target
         0: .line 42
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.mongodb.internal.connection.ZstdCompressor.getUncompressedSize:(Ljava/util/List;)I
            istore 3 /* uncompressedSize */
        start local 3 // int uncompressedSize
         1: .line 44
            iload 3 /* uncompressedSize */
            newarray 8
            astore 4 /* singleByteArraySource */
        start local 4 // byte[] singleByteArraySource
         2: .line 45
            aload 0 /* this */
            aload 1 /* source */
            aload 4 /* singleByteArraySource */
            invokevirtual com.mongodb.internal.connection.ZstdCompressor.copy:(Ljava/util/List;[B)V
         3: .line 48
            iload 3 /* uncompressedSize */
            i2l
            invokestatic com.github.luben.zstd.Zstd.compressBound:(J)J
            l2i
            newarray 8
            astore 5 /* out */
        start local 5 // byte[] out
         4: .line 49
            aload 5 /* out */
            aload 4 /* singleByteArraySource */
            invokestatic com.github.luben.zstd.Zstd.maxCompressionLevel:()I
            invokestatic com.github.luben.zstd.Zstd.compress:([B[BI)J
            l2i
            istore 6 /* compressedSize */
        start local 6 // int compressedSize
         5: .line 50
            aload 2 /* target */
            aload 5 /* out */
            iconst_0
            iload 6 /* compressedSize */
            invokeinterface org.bson.io.BsonOutput.writeBytes:([BII)V
        end local 6 // int compressedSize
        end local 5 // byte[] out
         6: .line 51
            goto 9
      StackMap locals: com.mongodb.internal.connection.ZstdCompressor java.util.List org.bson.io.BsonOutput int byte[]
      StackMap stack: java.lang.RuntimeException
         7: astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
         8: .line 52
            new com.mongodb.MongoInternalException
            dup
            ldc "Unexpected RuntimeException"
            aload 5 /* e */
            invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.RuntimeException e
         9: .line 54
      StackMap locals:
      StackMap stack:
            return
        end local 4 // byte[] singleByteArraySource
        end local 3 // int uncompressedSize
        end local 2 // org.bson.io.BsonOutput target
        end local 1 // java.util.List source
        end local 0 // com.mongodb.internal.connection.ZstdCompressor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lcom/mongodb/internal/connection/ZstdCompressor;
            0   10     1                 source  Ljava/util/List<Lorg/bson/ByteBuf;>;
            0   10     2                 target  Lorg/bson/io/BsonOutput;
            1   10     3       uncompressedSize  I
            2   10     4  singleByteArraySource  [B
            4    6     5                    out  [B
            5    6     6         compressedSize  I
            8    9     5                      e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.RuntimeException
    Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;Lorg/bson/io/BsonOutput;)V
    MethodParameters:
        Name  Flags
      source  final
      target  final

  private int getUncompressedSize(java.util.List<org.bson.ByteBuf>);
    descriptor: (Ljava/util/List;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.mongodb.internal.connection.ZstdCompressor this
        start local 1 // java.util.List source
         0: .line 57
            iconst_0
            istore 2 /* uncompressedSize */
        start local 2 // int uncompressedSize
         1: .line 58
            aload 1 /* source */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.mongodb.internal.connection.ZstdCompressor java.util.List int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bson.ByteBuf
            astore 3 /* cur */
        start local 3 // org.bson.ByteBuf cur
         3: .line 59
            iload 2 /* uncompressedSize */
            aload 3 /* cur */
            invokeinterface org.bson.ByteBuf.remaining:()I
            iadd
            istore 2 /* uncompressedSize */
        end local 3 // org.bson.ByteBuf cur
         4: .line 58
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 61
            iload 2 /* uncompressedSize */
            ireturn
        end local 2 // int uncompressedSize
        end local 1 // java.util.List source
        end local 0 // com.mongodb.internal.connection.ZstdCompressor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/mongodb/internal/connection/ZstdCompressor;
            0    6     1            source  Ljava/util/List<Lorg/bson/ByteBuf;>;
            1    6     2  uncompressedSize  I
            3    4     3               cur  Lorg/bson/ByteBuf;
    Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;)I
    MethodParameters:
        Name  Flags
      source  final

  private void copy(java.util.List<org.bson.ByteBuf>, );
    descriptor: (Ljava/util/List;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.mongodb.internal.connection.ZstdCompressor this
        start local 1 // java.util.List source
        start local 2 // byte[] in
         0: .line 65
            iconst_0
            istore 3 /* offset */
        start local 3 // int offset
         1: .line 66
            aload 1 /* source */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.mongodb.internal.connection.ZstdCompressor java.util.List byte[] int top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bson.ByteBuf
            astore 4 /* cur */
        start local 4 // org.bson.ByteBuf cur
         3: .line 67
            aload 4 /* cur */
            invokeinterface org.bson.ByteBuf.remaining:()I
            istore 6 /* remaining */
        start local 6 // int remaining
         4: .line 68
            aload 4 /* cur */
            aload 2 /* in */
            iload 3 /* offset */
            iload 6 /* remaining */
            invokeinterface org.bson.ByteBuf.get:([BII)Lorg/bson/ByteBuf;
            pop
         5: .line 69
            iload 3 /* offset */
            iload 6 /* remaining */
            iadd
            istore 3 /* offset */
        end local 6 // int remaining
        end local 4 // org.bson.ByteBuf cur
         6: .line 66
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 71
            return
        end local 3 // int offset
        end local 2 // byte[] in
        end local 1 // java.util.List source
        end local 0 // com.mongodb.internal.connection.ZstdCompressor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/mongodb/internal/connection/ZstdCompressor;
            0    8     1     source  Ljava/util/List<Lorg/bson/ByteBuf;>;
            0    8     2         in  [B
            1    8     3     offset  I
            3    6     4        cur  Lorg/bson/ByteBuf;
            4    6     6  remaining  I
    Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;[B)V
    MethodParameters:
        Name  Flags
      source  final
      in      final

  java.io.InputStream getInputStream(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.ZstdCompressor this
        start local 1 // java.io.InputStream source
         0: .line 75
            new com.github.luben.zstd.ZstdInputStream
            dup
            aload 1 /* source */
            invokespecial com.github.luben.zstd.ZstdInputStream.<init>:(Ljava/io/InputStream;)V
            areturn
        end local 1 // java.io.InputStream source
        end local 0 // com.mongodb.internal.connection.ZstdCompressor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/internal/connection/ZstdCompressor;
            0    1     1  source  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      source  final
}
SourceFile: "ZstdCompressor.java"