class org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator implements java.util.function.Consumer<reactor.core.publisher.FluxSink<org.springframework.http.codec.multipart.Part>>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator
  super_class: java.lang.Object
{
  private final org.springframework.http.ReactiveHttpInputMessage inputMessage;
    descriptor: Lorg/springframework/http/ReactiveHttpInputMessage;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.core.io.buffer.DataBufferFactory bufferFactory;
    descriptor: Lorg/springframework/core/io/buffer/DataBufferFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.synchronoss.cloud.nio.multipart.PartBodyStreamStorageFactory streamStorageFactory;
    descriptor: Lorg/synchronoss/cloud/nio/multipart/PartBodyStreamStorageFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(org.springframework.http.ReactiveHttpInputMessage, org.springframework.core.io.buffer.DataBufferFactory, org.synchronoss.cloud.nio.multipart.PartBodyStreamStorageFactory);
    descriptor: (Lorg/springframework/http/ReactiveHttpInputMessage;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/synchronoss/cloud/nio/multipart/PartBodyStreamStorageFactory;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator this
        start local 1 // org.springframework.http.ReactiveHttpInputMessage inputMessage
        start local 2 // org.springframework.core.io.buffer.DataBufferFactory bufferFactory
        start local 3 // org.synchronoss.cloud.nio.multipart.PartBodyStreamStorageFactory streamStorageFactory
         0: .line 127
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 130
            aload 0 /* this */
            aload 1 /* inputMessage */
            putfield org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.inputMessage:Lorg/springframework/http/ReactiveHttpInputMessage;
         2: .line 131
            aload 0 /* this */
            aload 2 /* bufferFactory */
            putfield org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.bufferFactory:Lorg/springframework/core/io/buffer/DataBufferFactory;
         3: .line 132
            aload 0 /* this */
            aload 3 /* streamStorageFactory */
            putfield org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.streamStorageFactory:Lorg/synchronoss/cloud/nio/multipart/PartBodyStreamStorageFactory;
         4: .line 133
            return
        end local 3 // org.synchronoss.cloud.nio.multipart.PartBodyStreamStorageFactory streamStorageFactory
        end local 2 // org.springframework.core.io.buffer.DataBufferFactory bufferFactory
        end local 1 // org.springframework.http.ReactiveHttpInputMessage inputMessage
        end local 0 // org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    5     0                  this  Lorg/springframework/http/codec/multipart/SynchronossPartHttpMessageReader$SynchronossPartGenerator;
            0    5     1          inputMessage  Lorg/springframework/http/ReactiveHttpInputMessage;
            0    5     2         bufferFactory  Lorg/springframework/core/io/buffer/DataBufferFactory;
            0    5     3  streamStorageFactory  Lorg/synchronoss/cloud/nio/multipart/PartBodyStreamStorageFactory;
    MethodParameters:
                      Name  Flags
      inputMessage          
      bufferFactory         
      streamStorageFactory  

  public void accept(reactor.core.publisher.FluxSink<org.springframework.http.codec.multipart.Part>);
    descriptor: (Lreactor/core/publisher/FluxSink;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator this
        start local 1 // reactor.core.publisher.FluxSink emitter
         0: .line 137
            aload 0 /* this */
            getfield org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.inputMessage:Lorg/springframework/http/ReactiveHttpInputMessage;
            invokeinterface org.springframework.http.ReactiveHttpInputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
            astore 2 /* headers */
        start local 2 // org.springframework.http.HttpHeaders headers
         1: .line 138
            aload 2 /* headers */
            invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
            astore 3 /* mediaType */
        start local 3 // org.springframework.http.MediaType mediaType
         2: .line 139
            aload 3 /* mediaType */
            ifnull 3
            iconst_1
            goto 4
      StackMap locals: org.springframework.http.HttpHeaders org.springframework.http.MediaType
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: ldc "No content type set"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         5: .line 141
            aload 0 /* this */
            aload 2 /* headers */
            invokevirtual org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.getContentLength:(Lorg/springframework/http/HttpHeaders;)I
            istore 4 /* length */
        start local 4 // int length
         6: .line 142
            aload 3 /* mediaType */
            invokevirtual org.springframework.http.MediaType.getCharset:()Ljava/nio/charset/Charset;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.charset.Charset
            astore 5 /* charset */
        start local 5 // java.nio.charset.Charset charset
         7: .line 143
            new org.synchronoss.cloud.nio.multipart.MultipartContext
            dup
            aload 3 /* mediaType */
            invokevirtual org.springframework.http.MediaType.toString:()Ljava/lang/String;
            iload 4 /* length */
            aload 5 /* charset */
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokespecial org.synchronoss.cloud.nio.multipart.MultipartContext.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            astore 6 /* context */
        start local 6 // org.synchronoss.cloud.nio.multipart.MultipartContext context
         8: .line 145
            new org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$FluxSinkAdapterListener
            dup
            aload 1 /* emitter */
            aload 0 /* this */
            getfield org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.bufferFactory:Lorg/springframework/core/io/buffer/DataBufferFactory;
            aload 6 /* context */
            invokespecial org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$FluxSinkAdapterListener.<init>:(Lreactor/core/publisher/FluxSink;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/synchronoss/cloud/nio/multipart/MultipartContext;)V
            astore 7 /* listener */
        start local 7 // org.synchronoss.cloud.nio.multipart.NioMultipartParserListener listener
         9: .line 147
            aload 6 /* context */
            invokestatic org.synchronoss.cloud.nio.multipart.Multipart.multipart:(Lorg/synchronoss/cloud/nio/multipart/MultipartContext;)Lorg/synchronoss/cloud/nio/multipart/Multipart$Builder;
        10: .line 148
            aload 0 /* this */
            getfield org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.streamStorageFactory:Lorg/synchronoss/cloud/nio/multipart/PartBodyStreamStorageFactory;
            invokevirtual org.synchronoss.cloud.nio.multipart.Multipart$Builder.usePartBodyStreamStorageFactory:(Lorg/synchronoss/cloud/nio/multipart/PartBodyStreamStorageFactory;)Lorg/synchronoss/cloud/nio/multipart/Multipart$Builder;
        11: .line 149
            aload 7 /* listener */
            invokevirtual org.synchronoss.cloud.nio.multipart.Multipart$Builder.forNIO:(Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;)Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;
        12: .line 146
            astore 8 /* parser */
        start local 8 // org.synchronoss.cloud.nio.multipart.NioMultipartParser parser
        13: .line 151
            aload 0 /* this */
            getfield org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.inputMessage:Lorg/springframework/http/ReactiveHttpInputMessage;
            invokeinterface org.springframework.http.ReactiveHttpInputMessage.getBody:()Lreactor/core/publisher/Flux;
            aload 8 /* parser */
            aload 7 /* listener */
            invokedynamic accept(Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/springframework/http/codec/multipart/SynchronossPartHttpMessageReader$SynchronossPartGenerator.lambda$0(Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;Lorg/springframework/core/io/buffer/DataBuffer;)V (6)
                  (Lorg/springframework/core/io/buffer/DataBuffer;)V
        14: .line 163
            aload 7 /* listener */
            aload 8 /* parser */
            invokedynamic accept(Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/springframework/http/codec/multipart/SynchronossPartHttpMessageReader$SynchronossPartGenerator.lambda$1(Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Ljava/lang/Throwable;)V (6)
                  (Ljava/lang/Throwable;)V
        15: .line 171
            aload 8 /* parser */
            aload 7 /* listener */
            invokedynamic run(Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/springframework/http/codec/multipart/SynchronossPartHttpMessageReader$SynchronossPartGenerator.lambda$2(Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;)V (6)
                  ()V
        16: .line 151
            invokevirtual reactor.core.publisher.Flux.subscribe:(Ljava/util/function/Consumer;Ljava/util/function/Consumer;Ljava/lang/Runnable;)Lreactor/core/Disposable;
            pop
        17: .line 179
            return
        end local 8 // org.synchronoss.cloud.nio.multipart.NioMultipartParser parser
        end local 7 // org.synchronoss.cloud.nio.multipart.NioMultipartParserListener listener
        end local 6 // org.synchronoss.cloud.nio.multipart.MultipartContext context
        end local 5 // java.nio.charset.Charset charset
        end local 4 // int length
        end local 3 // org.springframework.http.MediaType mediaType
        end local 2 // org.springframework.http.HttpHeaders headers
        end local 1 // reactor.core.publisher.FluxSink emitter
        end local 0 // org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lorg/springframework/http/codec/multipart/SynchronossPartHttpMessageReader$SynchronossPartGenerator;
            0   18     1    emitter  Lreactor/core/publisher/FluxSink<Lorg/springframework/http/codec/multipart/Part;>;
            1   18     2    headers  Lorg/springframework/http/HttpHeaders;
            2   18     3  mediaType  Lorg/springframework/http/MediaType;
            6   18     4     length  I
            7   18     5    charset  Ljava/nio/charset/Charset;
            8   18     6    context  Lorg/synchronoss/cloud/nio/multipart/MultipartContext;
            9   18     7   listener  Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;
           13   18     8     parser  Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;
    Signature: (Lreactor/core/publisher/FluxSink<Lorg/springframework/http/codec/multipart/Part;>;)V
    MethodParameters:
         Name  Flags
      emitter  

  private int getContentLength(org.springframework.http.HttpHeaders);
    descriptor: (Lorg/springframework/http/HttpHeaders;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator this
        start local 1 // org.springframework.http.HttpHeaders headers
         0: .line 183
            aload 1 /* headers */
            invokevirtual org.springframework.http.HttpHeaders.getContentLength:()J
            lstore 2 /* length */
        start local 2 // long length
         1: .line 184
            lload 2 /* length */
            l2i
            i2l
            lload 2 /* length */
            lcmp
            ifne 2
            lload 2 /* length */
            l2i
            goto 3
      StackMap locals: long
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 2 // long length
        end local 1 // org.springframework.http.HttpHeaders headers
        end local 0 // org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/springframework/http/codec/multipart/SynchronossPartHttpMessageReader$SynchronossPartGenerator;
            0    4     1  headers  Lorg/springframework/http/HttpHeaders;
            1    4     2   length  J
    MethodParameters:
         Name  Flags
      headers  

  public void accept(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast reactor.core.publisher.FluxSink
            invokevirtual org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator.accept:(Lreactor/core/publisher/FluxSink;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$0(org.synchronoss.cloud.nio.multipart.NioMultipartParser, org.synchronoss.cloud.nio.multipart.NioMultipartParserListener, org.springframework.core.io.buffer.DataBuffer);
    descriptor: (Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;Lorg/springframework/core/io/buffer/DataBuffer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=6, args_size=3
        start local 2 // org.springframework.core.io.buffer.DataBuffer buffer
         0: .line 152
            aload 2 /* buffer */
            invokeinterface org.springframework.core.io.buffer.DataBuffer.readableByteCount:()I
            newarray 8
            astore 3 /* resultBytes */
        start local 3 // byte[] resultBytes
         1: .line 153
            aload 2 /* buffer */
            aload 3 /* resultBytes */
            invokeinterface org.springframework.core.io.buffer.DataBuffer.read:([B)Lorg/springframework/core/io/buffer/DataBuffer;
            pop
         2: .line 155
            aload 0
            aload 3 /* resultBytes */
            invokevirtual org.synchronoss.cloud.nio.multipart.NioMultipartParser.write:([B)V
         3: .line 156
            goto 10
         4: .line 157
      StackMap locals: org.synchronoss.cloud.nio.multipart.NioMultipartParser org.synchronoss.cloud.nio.multipart.NioMultipartParserListener org.springframework.core.io.buffer.DataBuffer byte[]
      StackMap stack: java.io.IOException
            astore 4 /* ex */
        start local 4 // java.io.IOException ex
         5: .line 158
            aload 1
            ldc "Exception thrown providing input to the parser"
            aload 4 /* ex */
            invokeinterface org.synchronoss.cloud.nio.multipart.NioMultipartParserListener.onError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ex
         6: .line 161
            aload 2 /* buffer */
            invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
            pop
            goto 11
         7: .line 160
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
         8: .line 161
            aload 2 /* buffer */
            invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
            pop
         9: .line 162
            aload 5
            athrow
        10: .line 161
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
            pop
        end local 3 // byte[] resultBytes
        11: .line 163
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.springframework.core.io.buffer.DataBuffer buffer
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     2       buffer  Lorg/springframework/core/io/buffer/DataBuffer;
            1   11     3  resultBytes  [B
            5    6     4           ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
           2     6       7  any

  private static void lambda$1(org.synchronoss.cloud.nio.multipart.NioMultipartParserListener, org.synchronoss.cloud.nio.multipart.NioMultipartParser, java.lang.Throwable);
    descriptor: (Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 2 // java.lang.Throwable ex
         0: .line 165
            aload 0
            ldc "Request body input error"
            aload 2 /* ex */
            invokeinterface org.synchronoss.cloud.nio.multipart.NioMultipartParserListener.onError:(Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 166
            aload 1
            invokevirtual org.synchronoss.cloud.nio.multipart.NioMultipartParser.close:()V
         2: .line 167
            goto 5
         3: .line 168
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* ex2 */
        start local 3 // java.io.IOException ex2
         4: .line 169
            aload 0
            ldc "Exception thrown while closing the parser"
            aload 3 /* ex2 */
            invokeinterface org.synchronoss.cloud.nio.multipart.NioMultipartParserListener.onError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.io.IOException ex2
         5: .line 171
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable ex
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     2    ex  Ljava/lang/Throwable;
            4    5     3   ex2  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException

  private static void lambda$2(org.synchronoss.cloud.nio.multipart.NioMultipartParser, org.synchronoss.cloud.nio.multipart.NioMultipartParserListener);
    descriptor: (Lorg/synchronoss/cloud/nio/multipart/NioMultipartParser;Lorg/synchronoss/cloud/nio/multipart/NioMultipartParserListener;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 173
            aload 0
            invokevirtual org.synchronoss.cloud.nio.multipart.NioMultipartParser.close:()V
         1: .line 174
            goto 4
         2: .line 175
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* ex */
        start local 2 // java.io.IOException ex
         3: .line 176
            aload 1
            ldc "Exception thrown while closing the parser"
            aload 2 /* ex */
            invokeinterface org.synchronoss.cloud.nio.multipart.NioMultipartParserListener.onError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.io.IOException ex
         4: .line 178
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    4     2    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
}
Signature: Ljava/lang/Object;Ljava/util/function/Consumer<Lreactor/core/publisher/FluxSink<Lorg/springframework/http/codec/multipart/Part;>;>;
SourceFile: "SynchronossPartHttpMessageReader.java"
NestHost: org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private FluxSinkAdapterListener = org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$FluxSinkAdapterListener of org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader
  private SynchronossPartGenerator = org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader$SynchronossPartGenerator of org.springframework.http.codec.multipart.SynchronossPartHttpMessageReader
  public Builder = org.synchronoss.cloud.nio.multipart.Multipart$Builder of org.synchronoss.cloud.nio.multipart.Multipart