final class java.lang.ProcessImpl extends java.lang.Process
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.lang.ProcessImpl
  super_class: java.lang.Process
{
  private static final jdk.internal.misc.JavaIOFileDescriptorAccess fdAccess;
    descriptor: Ljdk/internal/misc/JavaIOFileDescriptorAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean SUPPORTS_NORMAL_TERMINATION;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final int pid;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ProcessHandleImpl processHandle;
    descriptor: Ljava/lang/ProcessHandleImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int exitcode;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean hasExited;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream stdin;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream stdout;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream stderr;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.ProcessImpl$DeferredCloseInputStream stdout_inner_stream;
    descriptor: Ljava/lang/ProcessImpl$DeferredCloseInputStream;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.ProcessImpl$Platform platform;
    descriptor: Ljava/lang/ProcessImpl$Platform;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.ProcessImpl$LaunchMechanism launchMechanism;
    descriptor: Ljava/lang/ProcessImpl$LaunchMechanism;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final byte[] helperpath;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$java$lang$ProcessImpl$Platform;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 64
            ldc Ljava/lang/ProcessImpl;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.lang.ProcessImpl.$assertionsDisabled:Z
         3: .line 66
            invokestatic jdk.internal.misc.SharedSecrets.getJavaIOFileDescriptorAccess:()Ljdk/internal/misc/JavaIOFileDescriptorAccess;
         4: .line 65
            putstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
         5: .line 170
            invokestatic java.lang.ProcessImpl$Platform.get:()Ljava/lang/ProcessImpl$Platform;
            putstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
         6: .line 171
            getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.launchMechanism:()Ljava/lang/ProcessImpl$LaunchMechanism;
            putstatic java.lang.ProcessImpl.launchMechanism:Ljava/lang/ProcessImpl$LaunchMechanism;
         7: .line 172
            getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.helperPath:()Ljava/lang/String;
            invokestatic java.lang.ProcessImpl.toCString:(Ljava/lang/String;)[B
            putstatic java.lang.ProcessImpl.helperpath:[B
         8: .line 645
            invokestatic java.lang.ProcessImpl.init:()V
         9: .line 646
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static byte[] toCString(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String s
         0: .line 175
            aload 0 /* s */
            ifnonnull 2
         1: .line 176
            aconst_null
            areturn
         2: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            invokevirtual java.lang.String.getBytes:()[B
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         3: .line 178
            aload 1 /* bytes */
            arraylength
            iconst_1
            iadd
            newarray 8
            astore 2 /* result */
        start local 2 // byte[] result
         4: .line 179
            aload 1 /* bytes */
            iconst_0
         5: .line 180
            aload 2 /* result */
            iconst_0
         6: .line 181
            aload 1 /* bytes */
            arraylength
         7: .line 179
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 182
            aload 2 /* result */
            aload 2 /* result */
            arraylength
            iconst_1
            isub
            iconst_0
            bastore
         9: .line 183
            aload 2 /* result */
            areturn
        end local 2 // byte[] result
        end local 1 // byte[] bytes
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0       s  Ljava/lang/String;
            3   10     1   bytes  [B
            4   10     2  result  [B
    MethodParameters:
      Name  Flags
      s     

  static java.lang.Process start(java.lang.String[], java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.ProcessBuilder$Redirect[], boolean);
    descriptor: ([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=11, locals=21, args_size=5
        start local 0 // java.lang.String[] cmdarray
        start local 1 // java.util.Map environment
        start local 2 // java.lang.String dir
        start local 3 // java.lang.ProcessBuilder$Redirect[] redirects
        start local 4 // boolean redirectErrorStream
         0: .line 194
            getstatic java.lang.ProcessImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* cmdarray */
            ifnull 1
            aload 0 /* cmdarray */
            arraylength
            ifgt 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* cmdarray */
            arraylength
            iconst_1
            isub
            anewarray byte[]
            astore 5 /* args */
        start local 5 // byte[][] args
         3: .line 199
            aload 5 /* args */
            arraylength
            istore 6 /* size */
        start local 6 // int size
         4: .line 200
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 9
         6: .line 201
      StackMap locals: byte[][] int int
      StackMap stack:
            aload 5 /* args */
            iload 7 /* i */
            aload 0 /* cmdarray */
            iload 7 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual java.lang.String.getBytes:()[B
            aastore
         7: .line 202
            iload 6 /* size */
            aload 5 /* args */
            iload 7 /* i */
            aaload
            arraylength
            iadd
            istore 6 /* size */
         8: .line 200
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 7 /* i */
            aload 5 /* args */
            arraylength
            if_icmplt 6
        end local 7 // int i
        10: .line 204
            iload 6 /* size */
            newarray 8
            astore 7 /* argBlock */
        start local 7 // byte[] argBlock
        11: .line 205
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        12: .line 206
            aload 5 /* args */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 17
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int top int int byte[][]
      StackMap stack:
        13: aload 12
            iload 10
            aaload
            astore 9 /* arg */
        start local 9 // byte[] arg
        14: .line 207
            aload 9 /* arg */
            iconst_0
            aload 7 /* argBlock */
            iload 8 /* i */
            aload 9 /* arg */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        15: .line 208
            iload 8 /* i */
            aload 9 /* arg */
            arraylength
            iconst_1
            iadd
            iadd
            istore 8 /* i */
        end local 9 // byte[] arg
        16: .line 206
            iinc 10 1
      StackMap locals:
      StackMap stack:
        17: iload 10
            iload 11
            if_icmplt 13
        18: .line 212
            iconst_1
            newarray 10
            astore 9 /* envc */
        start local 9 // int[] envc
        19: .line 213
            aload 1 /* environment */
            aload 9 /* envc */
            invokestatic java.lang.ProcessEnvironment.toEnvironmentBlock:(Ljava/util/Map;[I)[B
            astore 10 /* envBlock */
        start local 10 // byte[] envBlock
        20: .line 217
            aconst_null
            astore 12 /* f0 */
        start local 12 // java.io.FileInputStream f0
        21: .line 218
            aconst_null
            astore 13 /* f1 */
        start local 13 // java.io.FileOutputStream f1
        22: .line 219
            aconst_null
            astore 14 /* f2 */
        start local 14 // java.io.FileOutputStream f2
        23: .line 222
            iconst_0
            istore 15 /* forceNullOutputStream */
        start local 15 // boolean forceNullOutputStream
        24: .line 223
            aload 3 /* redirects */
            ifnonnull 27
        25: .line 224
            iconst_3
            newarray 10
            dup
            iconst_0
            iconst_m1
            iastore
            dup
            iconst_1
            iconst_m1
            iastore
            dup
            iconst_2
            iconst_m1
            iastore
            astore 11 /* std_fds */
        start local 11 // int[] std_fds
        26: .line 225
            goto 66
        end local 11 // int[] std_fds
        27: .line 226
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int
      StackMap stack:
            iconst_3
            newarray 10
            astore 11 /* std_fds */
        start local 11 // int[] std_fds
        28: .line 228
            aload 3 /* redirects */
            iconst_0
            aaload
            getstatic java.lang.ProcessBuilder$Redirect.PIPE:Ljava/lang/ProcessBuilder$Redirect;
            if_acmpne 31
        29: .line 229
            aload 11 /* std_fds */
            iconst_0
            iconst_m1
            iastore
        30: .line 230
            goto 39
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int
      StackMap stack:
        31: aload 3 /* redirects */
            iconst_0
            aaload
            getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
            if_acmpne 34
        32: .line 231
            aload 11 /* std_fds */
            iconst_0
            iconst_0
            iastore
        33: .line 232
            goto 39
      StackMap locals:
      StackMap stack:
        34: aload 3 /* redirects */
            iconst_0
            aaload
            instanceof java.lang.ProcessBuilder$RedirectPipeImpl
            ifeq 37
        35: .line 233
            aload 11 /* std_fds */
            iconst_0
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 3 /* redirects */
            iconst_0
            aaload
            checkcast java.lang.ProcessBuilder$RedirectPipeImpl
            invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            iastore
        36: .line 234
            goto 39
        37: .line 235
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 3 /* redirects */
            iconst_0
            aaload
            invokevirtual java.lang.ProcessBuilder$Redirect.file:()Ljava/io/File;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 12 /* f0 */
        38: .line 236
            aload 11 /* std_fds */
            iconst_0
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 12 /* f0 */
            invokevirtual java.io.FileInputStream.getFD:()Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            iastore
        39: .line 239
      StackMap locals:
      StackMap stack:
            aload 3 /* redirects */
            iconst_1
            aaload
            getstatic java.lang.ProcessBuilder$Redirect.PIPE:Ljava/lang/ProcessBuilder$Redirect;
            if_acmpne 42
        40: .line 240
            aload 11 /* std_fds */
            iconst_1
            iconst_m1
            iastore
        41: .line 241
            goto 53
      StackMap locals:
      StackMap stack:
        42: aload 3 /* redirects */
            iconst_1
            aaload
            getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
            if_acmpne 45
        43: .line 242
            aload 11 /* std_fds */
            iconst_1
            iconst_1
            iastore
        44: .line 243
            goto 53
      StackMap locals:
      StackMap stack:
        45: aload 3 /* redirects */
            iconst_1
            aaload
            instanceof java.lang.ProcessBuilder$RedirectPipeImpl
            ifeq 49
        46: .line 244
            aload 11 /* std_fds */
            iconst_1
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 3 /* redirects */
            iconst_1
            aaload
            checkcast java.lang.ProcessBuilder$RedirectPipeImpl
            invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            iastore
        47: .line 247
            iconst_1
            istore 15 /* forceNullOutputStream */
        48: .line 248
            goto 53
        49: .line 249
      StackMap locals:
      StackMap stack:
            new java.io.FileOutputStream
            dup
            aload 3 /* redirects */
            iconst_1
            aaload
            invokevirtual java.lang.ProcessBuilder$Redirect.file:()Ljava/io/File;
        50: .line 250
            aload 3 /* redirects */
            iconst_1
            aaload
            invokevirtual java.lang.ProcessBuilder$Redirect.append:()Z
        51: .line 249
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;Z)V
            astore 13 /* f1 */
        52: .line 251
            aload 11 /* std_fds */
            iconst_1
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 13 /* f1 */
            invokevirtual java.io.FileOutputStream.getFD:()Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            iastore
        53: .line 254
      StackMap locals:
      StackMap stack:
            aload 3 /* redirects */
            iconst_2
            aaload
            getstatic java.lang.ProcessBuilder$Redirect.PIPE:Ljava/lang/ProcessBuilder$Redirect;
            if_acmpne 56
        54: .line 255
            aload 11 /* std_fds */
            iconst_2
            iconst_m1
            iastore
        55: .line 256
            goto 66
      StackMap locals:
      StackMap stack:
        56: aload 3 /* redirects */
            iconst_2
            aaload
            getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
            if_acmpne 59
        57: .line 257
            aload 11 /* std_fds */
            iconst_2
            iconst_2
            iastore
        58: .line 258
            goto 66
      StackMap locals:
      StackMap stack:
        59: aload 3 /* redirects */
            iconst_2
            aaload
            instanceof java.lang.ProcessBuilder$RedirectPipeImpl
            ifeq 62
        60: .line 259
            aload 11 /* std_fds */
            iconst_2
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 3 /* redirects */
            iconst_2
            aaload
            checkcast java.lang.ProcessBuilder$RedirectPipeImpl
            invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            iastore
        61: .line 260
            goto 66
        62: .line 261
      StackMap locals:
      StackMap stack:
            new java.io.FileOutputStream
            dup
            aload 3 /* redirects */
            iconst_2
            aaload
            invokevirtual java.lang.ProcessBuilder$Redirect.file:()Ljava/io/File;
        63: .line 262
            aload 3 /* redirects */
            iconst_2
            aaload
            invokevirtual java.lang.ProcessBuilder$Redirect.append:()Z
        64: .line 261
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;Z)V
            astore 14 /* f2 */
        65: .line 263
            aload 11 /* std_fds */
            iconst_2
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.getFD:()Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            iastore
        66: .line 267
      StackMap locals:
      StackMap stack:
            new java.lang.ProcessImpl
            dup
        67: .line 268
            aload 0 /* cmdarray */
            iconst_0
            aaload
            invokestatic java.lang.ProcessImpl.toCString:(Ljava/lang/String;)[B
        68: .line 269
            aload 7 /* argBlock */
            aload 5 /* args */
            arraylength
        69: .line 270
            aload 10 /* envBlock */
            aload 9 /* envc */
            iconst_0
            iaload
        70: .line 271
            aload 2 /* dir */
            invokestatic java.lang.ProcessImpl.toCString:(Ljava/lang/String;)[B
        71: .line 272
            aload 11 /* std_fds */
        72: .line 273
            iload 15 /* forceNullOutputStream */
        73: .line 274
            iload 4 /* redirectErrorStream */
        74: .line 267
            invokespecial java.lang.ProcessImpl.<init>:([B[BI[BI[B[IZZ)V
            astore 16 /* p */
        start local 16 // java.lang.Process p
        75: .line 275
            aload 3 /* redirects */
            ifnull 85
        76: .line 277
            aload 11 /* std_fds */
            iconst_0
            iaload
            iflt 79
        77: .line 278
            aload 3 /* redirects */
            iconst_0
            aaload
            instanceof java.lang.ProcessBuilder$RedirectPipeImpl
            ifeq 79
        78: .line 279
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 3 /* redirects */
            iconst_0
            aaload
            checkcast java.lang.ProcessBuilder$RedirectPipeImpl
            invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
            aload 11 /* std_fds */
            iconst_0
            iaload
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
        79: .line 281
      StackMap locals: java.lang.Process
      StackMap stack:
            aload 11 /* std_fds */
            iconst_1
            iaload
            iflt 82
        80: .line 282
            aload 3 /* redirects */
            iconst_1
            aaload
            instanceof java.lang.ProcessBuilder$RedirectPipeImpl
            ifeq 82
        81: .line 283
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 3 /* redirects */
            iconst_1
            aaload
            checkcast java.lang.ProcessBuilder$RedirectPipeImpl
            invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
            aload 11 /* std_fds */
            iconst_1
            iaload
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
        82: .line 285
      StackMap locals:
      StackMap stack:
            aload 11 /* std_fds */
            iconst_2
            iaload
            iflt 85
        83: .line 286
            aload 3 /* redirects */
            iconst_2
            aaload
            instanceof java.lang.ProcessBuilder$RedirectPipeImpl
            ifeq 85
        84: .line 287
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 3 /* redirects */
            iconst_2
            aaload
            checkcast java.lang.ProcessBuilder$RedirectPipeImpl
            invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
            aload 11 /* std_fds */
            iconst_2
            iaload
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
        85: .line 290
      StackMap locals:
      StackMap stack:
            aload 16 /* p */
            astore 18
        86: .line 294
            aload 12 /* f0 */
            ifnull 93
            aload 12 /* f0 */
            invokevirtual java.io.FileInputStream.close:()V
            goto 93
        87: .line 295
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process
      StackMap stack: java.lang.Throwable
            astore 19
        88: .line 296
            aload 13 /* f1 */
            ifnull 91
            aload 13 /* f1 */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 91
        89: .line 297
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process java.lang.Throwable
      StackMap stack: java.lang.Throwable
            astore 20
            aload 14 /* f2 */
            ifnull 90
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
      StackMap locals: java.lang.Throwable
      StackMap stack:
        90: aload 20
            athrow
      StackMap locals:
      StackMap stack:
        91: aload 14 /* f2 */
            ifnull 92
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
        92: .line 298
      StackMap locals:
      StackMap stack:
            aload 19
            athrow
        93: .line 296
      StackMap locals:
      StackMap stack:
            aload 13 /* f1 */
            ifnull 96
            aload 13 /* f1 */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 96
        94: .line 297
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 20
            aload 14 /* f2 */
            ifnull 95
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process top java.lang.Throwable
      StackMap stack:
        95: aload 20
            athrow
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process
      StackMap stack:
        96: aload 14 /* f2 */
            ifnull 97
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
        97: .line 290
      StackMap locals:
      StackMap stack:
            aload 18
            areturn
        end local 16 // java.lang.Process p
        end local 15 // boolean forceNullOutputStream
        end local 11 // int[] std_fds
        98: .line 291
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
            astore 17
        99: .line 294
            aload 12 /* f0 */
            ifnull 106
            aload 12 /* f0 */
            invokevirtual java.io.FileInputStream.close:()V
            goto 106
       100: .line 295
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
            astore 19
       101: .line 296
            aload 13 /* f1 */
            ifnull 104
            aload 13 /* f1 */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 104
       102: .line 297
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable top java.lang.Throwable
      StackMap stack: java.lang.Throwable
            astore 20
            aload 14 /* f2 */
            ifnull 103
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
      StackMap locals: java.lang.Throwable
      StackMap stack:
       103: aload 20
            athrow
      StackMap locals:
      StackMap stack:
       104: aload 14 /* f2 */
            ifnull 105
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
       105: .line 298
      StackMap locals:
      StackMap stack:
            aload 19
            athrow
       106: .line 296
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable
      StackMap stack:
            aload 13 /* f1 */
            ifnull 109
            aload 13 /* f1 */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 109
       107: .line 297
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 20
            aload 14 /* f2 */
            ifnull 108
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable top top java.lang.Throwable
      StackMap stack:
       108: aload 20
            athrow
      StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable
      StackMap stack:
       109: aload 14 /* f2 */
            ifnull 110
            aload 14 /* f2 */
            invokevirtual java.io.FileOutputStream.close:()V
       110: .line 299
      StackMap locals:
      StackMap stack:
            aload 17
            athrow
        end local 14 // java.io.FileOutputStream f2
        end local 13 // java.io.FileOutputStream f1
        end local 12 // java.io.FileInputStream f0
        end local 10 // byte[] envBlock
        end local 9 // int[] envc
        end local 8 // int i
        end local 7 // byte[] argBlock
        end local 6 // int size
        end local 5 // byte[][] args
        end local 4 // boolean redirectErrorStream
        end local 3 // java.lang.ProcessBuilder$Redirect[] redirects
        end local 2 // java.lang.String dir
        end local 1 // java.util.Map environment
        end local 0 // java.lang.String[] cmdarray
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  111     0               cmdarray  [Ljava/lang/String;
            0  111     1            environment  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0  111     2                    dir  Ljava/lang/String;
            0  111     3              redirects  [Ljava/lang/ProcessBuilder$Redirect;
            0  111     4    redirectErrorStream  Z
            3  111     5                   args  [[B
            4  111     6                   size  I
            5   10     7                      i  I
           11  111     7               argBlock  [B
           12  111     8                      i  I
           14   16     9                    arg  [B
           19  111     9                   envc  [I
           20  111    10               envBlock  [B
           26   27    11                std_fds  [I
           28   98    11                std_fds  [I
           21  111    12                     f0  Ljava/io/FileInputStream;
           22  111    13                     f1  Ljava/io/FileOutputStream;
           23  111    14                     f2  Ljava/io/FileOutputStream;
           24   98    15  forceNullOutputStream  Z
           75   98    16                      p  Ljava/lang/Process;
      Exception table:
        from    to  target  type
          86    87      87  any
          88    89      89  any
          93    94      94  any
          23    86      98  any
          99   100     100  any
         101   102     102  any
         106   107     107  any
    Exceptions:
      throws java.io.IOException
    Signature: ([Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
    MethodParameters:
                     Name  Flags
      cmdarray             
      environment          
      dir                  
      redirects            
      redirectErrorStream  

  private native int forkAndExec(int, byte[], byte[], byte[], int, byte[], int, byte[], int[], boolean);
    descriptor: (I[B[B[BI[BI[B[IZ)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                     Name  Flags
      mode                 
      helperpath           
      prog                 
      argBlock             
      argc                 
      envBlock             
      envc                 
      dir                  
      fds                  
      redirectErrorStream  

  private void <init>(byte[], byte[], int, byte[], int, byte[], int[], boolean, boolean);
    descriptor: ([B[BI[BI[B[IZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=11, args_size=10
        start local 0 // java.lang.ProcessImpl this
        start local 1 // byte[] prog
        start local 2 // byte[] argBlock
        start local 3 // int argc
        start local 4 // byte[] envBlock
        start local 5 // int envc
        start local 6 // byte[] dir
        start local 7 // int[] fds
        start local 8 // boolean forceNullOutputStream
        start local 9 // boolean redirectErrorStream
         0: .line 331
            aload 0 /* this */
            invokespecial java.lang.Process.<init>:()V
         1: .line 340
            aload 0 /* this */
            aload 0 /* this */
            getstatic java.lang.ProcessImpl.launchMechanism:Ljava/lang/ProcessImpl$LaunchMechanism;
            invokevirtual java.lang.ProcessImpl$LaunchMechanism.ordinal:()I
            iconst_1
            iadd
         2: .line 341
            getstatic java.lang.ProcessImpl.helperpath:[B
         3: .line 342
            aload 1 /* prog */
         4: .line 343
            aload 2 /* argBlock */
            iload 3 /* argc */
         5: .line 344
            aload 4 /* envBlock */
            iload 5 /* envc */
         6: .line 345
            aload 6 /* dir */
         7: .line 346
            aload 7 /* fds */
         8: .line 347
            iload 9 /* redirectErrorStream */
         9: .line 340
            invokevirtual java.lang.ProcessImpl.forkAndExec:(I[B[B[BI[BI[B[IZ)I
            putfield java.lang.ProcessImpl.pid:I
        10: .line 348
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.ProcessImpl.pid:I
            i2l
            invokestatic java.lang.ProcessHandleImpl.getInternal:(J)Ljava/lang/ProcessHandleImpl;
            putfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
        11: .line 351
            aload 0 /* this */
            aload 7 /* fds */
            iload 8 /* forceNullOutputStream */
            invokedynamic run(Ljava/lang/ProcessImpl;[IZ)Ljava/security/PrivilegedExceptionAction;
              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;
                  java/lang/ProcessImpl.lambda$0([IZ)Ljava/lang/Void; (7)
                  ()Ljava/lang/Void;
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
        12: .line 355
            goto 15
      StackMap locals: java.lang.ProcessImpl byte[] byte[] int byte[] int byte[] int[] int int
      StackMap stack: java.security.PrivilegedActionException
        13: astore 10 /* ex */
        start local 10 // java.security.PrivilegedActionException ex
        14: .line 356
            aload 10 /* ex */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 10 // java.security.PrivilegedActionException ex
        15: .line 358
      StackMap locals:
      StackMap stack:
            return
        end local 9 // boolean redirectErrorStream
        end local 8 // boolean forceNullOutputStream
        end local 7 // int[] fds
        end local 6 // byte[] dir
        end local 5 // int envc
        end local 4 // byte[] envBlock
        end local 3 // int argc
        end local 2 // byte[] argBlock
        end local 1 // byte[] prog
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   16     0                   this  Ljava/lang/ProcessImpl;
            0   16     1                   prog  [B
            0   16     2               argBlock  [B
            0   16     3                   argc  I
            0   16     4               envBlock  [B
            0   16     5                   envc  I
            0   16     6                    dir  [B
            0   16     7                    fds  [I
            0   16     8  forceNullOutputStream  Z
            0   16     9    redirectErrorStream  Z
           14   15    10                     ex  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
          11    12      13  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                       Name  Flags
      prog                   final
      argBlock               final
      argc                   final
      envBlock               final
      envc                   final
      dir                    final
      fds                    final
      forceNullOutputStream  final
      redirectErrorStream    final

  static java.io.FileDescriptor newFileDescriptor(int);
    descriptor: (I)Ljava/io/FileDescriptor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // int fd
         0: .line 361
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 1 /* fileDescriptor */
        start local 1 // java.io.FileDescriptor fileDescriptor
         1: .line 362
            getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 1 /* fileDescriptor */
            iload 0 /* fd */
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
         2: .line 363
            aload 1 /* fileDescriptor */
            areturn
        end local 1 // java.io.FileDescriptor fileDescriptor
        end local 0 // int fd
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0              fd  I
            1    3     1  fileDescriptor  Ljava/io/FileDescriptor;
    MethodParameters:
      Name  Flags
      fd    

  void initStreams(int[], boolean);
    descriptor: ([IZ)V
    flags: (0x0000) 
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // java.lang.ProcessImpl this
        start local 1 // int[] fds
        start local 2 // boolean forceNullOutputStream
         0: .line 374
            invokestatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:()[I
            getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 1
                    2: 1
                    3: 15
                    4: 37
              default: 51
          }
         1: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fds */
            iconst_0
            iaload
            iconst_m1
            if_icmpne 3
         2: .line 378
            getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
            goto 4
         3: .line 379
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.lang.ProcessImpl$ProcessPipeOutputStream
            dup
            aload 1 /* fds */
            iconst_0
            iaload
            invokespecial java.lang.ProcessImpl$ProcessPipeOutputStream.<init>:(I)V
         4: .line 377
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.OutputStream
            putfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
         5: .line 381
            aload 0 /* this */
            aload 1 /* fds */
            iconst_1
            iaload
            iconst_m1
            if_icmpeq 6
            iload 2 /* forceNullOutputStream */
            ifeq 7
         6: .line 382
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 8
         7: .line 383
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.lang.ProcessImpl$ProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_1
            iaload
            invokespecial java.lang.ProcessImpl$ProcessPipeInputStream.<init>:(I)V
         8: .line 381
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.InputStream
            putfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
         9: .line 385
            aload 0 /* this */
            aload 1 /* fds */
            iconst_2
            iaload
            iconst_m1
            if_icmpne 11
        10: .line 386
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 12
        11: .line 387
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.lang.ProcessImpl$ProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_2
            iaload
            invokespecial java.lang.ProcessImpl$ProcessPipeInputStream.<init>:(I)V
        12: .line 385
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.InputStream
            putfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
        13: .line 389
            aload 0 /* this */
            getfield java.lang.ProcessImpl.pid:I
            i2l
            iconst_1
            invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
            aload 0 /* this */
            invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/ProcessImpl.lambda$1(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object; (7)
                  (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
            invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
            pop
        14: .line 407
            goto 52
        15: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fds */
            iconst_0
            iaload
            iconst_m1
            if_icmpne 17
        16: .line 411
            getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
            goto 20
        17: .line 412
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.io.BufferedOutputStream
            dup
        18: .line 413
            new java.io.FileOutputStream
            dup
            aload 1 /* fds */
            iconst_0
            iaload
            invokestatic java.lang.ProcessImpl.newFileDescriptor:(I)Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
        19: .line 412
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
        20: .line 410
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.OutputStream
            putfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
        21: .line 415
            aload 0 /* this */
            aload 1 /* fds */
            iconst_1
            iaload
            iconst_m1
            if_icmpeq 22
            iload 2 /* forceNullOutputStream */
            ifeq 23
        22: .line 416
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 30
        23: .line 417
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.io.BufferedInputStream
            dup
        24: .line 418
            aload 0 /* this */
        25: .line 419
            new java.lang.ProcessImpl$DeferredCloseInputStream
            dup
        26: .line 420
            aload 1 /* fds */
            iconst_1
            iaload
            invokestatic java.lang.ProcessImpl.newFileDescriptor:(I)Ljava/io/FileDescriptor;
        27: .line 419
            invokespecial java.lang.ProcessImpl$DeferredCloseInputStream.<init>:(Ljava/io/FileDescriptor;)V
        28: .line 418
            dup_x1
            putfield java.lang.ProcessImpl.stdout_inner_stream:Ljava/lang/ProcessImpl$DeferredCloseInputStream;
        29: .line 417
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
        30: .line 415
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.InputStream
            putfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
        31: .line 422
            aload 0 /* this */
            aload 1 /* fds */
            iconst_2
            iaload
            iconst_m1
            if_icmpne 33
        32: .line 423
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 34
        33: .line 424
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.lang.ProcessImpl$DeferredCloseInputStream
            dup
            aload 1 /* fds */
            iconst_2
            iaload
            invokestatic java.lang.ProcessImpl.newFileDescriptor:(I)Ljava/io/FileDescriptor;
            invokespecial java.lang.ProcessImpl$DeferredCloseInputStream.<init>:(Ljava/io/FileDescriptor;)V
        34: .line 422
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.InputStream
            putfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
        35: .line 434
            aload 0 /* this */
            getfield java.lang.ProcessImpl.pid:I
            i2l
            iconst_1
            invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
            aload 0 /* this */
            invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/ProcessImpl.lambda$2(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object; (7)
                  (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
            invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
            pop
        36: .line 442
            goto 52
        37: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fds */
            iconst_0
            iaload
            iconst_m1
            if_icmpne 39
        38: .line 446
            getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
            goto 40
        39: .line 447
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.lang.ProcessImpl$ProcessPipeOutputStream
            dup
            aload 1 /* fds */
            iconst_0
            iaload
            invokespecial java.lang.ProcessImpl$ProcessPipeOutputStream.<init>:(I)V
        40: .line 445
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.OutputStream
            putfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
        41: .line 449
            aload 0 /* this */
            aload 1 /* fds */
            iconst_1
            iaload
            iconst_m1
            if_icmpeq 42
            iload 2 /* forceNullOutputStream */
            ifeq 43
        42: .line 450
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 44
        43: .line 451
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_1
            iaload
            invokespecial java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.<init>:(I)V
        44: .line 449
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.InputStream
            putfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
        45: .line 453
            aload 0 /* this */
            aload 1 /* fds */
            iconst_2
            iaload
            iconst_m1
            if_icmpne 47
        46: .line 454
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 48
        47: .line 455
      StackMap locals:
      StackMap stack: java.lang.ProcessImpl
            new java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_2
            iaload
            invokespecial java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.<init>:(I)V
        48: .line 453
      StackMap locals: java.lang.ProcessImpl int[] int
      StackMap stack: java.lang.ProcessImpl java.io.InputStream
            putfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
        49: .line 457
            aload 0 /* this */
            getfield java.lang.ProcessImpl.pid:I
            i2l
            iconst_1
            invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
            aload 0 /* this */
            invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/ProcessImpl.lambda$3(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object; (7)
                  (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
            invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
            pop
        50: .line 475
            goto 52
        51: .line 477
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported platform: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        52: .line 479
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean forceNullOutputStream
        end local 1 // int[] fds
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   53     0                   this  Ljava/lang/ProcessImpl;
            0   53     1                    fds  [I
            0   53     2  forceNullOutputStream  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                       Name  Flags
      fds                    
      forceNullOutputStream  

  public java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 482
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
            areturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/ProcessImpl;

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 486
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
            areturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/ProcessImpl;

  public java.io.InputStream getErrorStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 490
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            areturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/ProcessImpl;

  public synchronized int waitFor();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 494
            goto 2
         1: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
         2: .line 494
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifeq 1
         3: .line 497
            aload 0 /* this */
            getfield java.lang.ProcessImpl.exitcode:I
            ireturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/ProcessImpl;
    Exceptions:
      throws java.lang.InterruptedException

  public synchronized boolean waitFor(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.lang.ProcessImpl this
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 504
            aload 3 /* unit */
            lload 1 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 4 /* remainingNanos */
        start local 4 // long remainingNanos
         1: .line 505
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifeq 2
            iconst_1
            ireturn
         2: .line 506
      StackMap locals: long
      StackMap stack:
            lload 1 /* timeout */
            lconst_0
            lcmp
            ifgt 3
            iconst_0
            ireturn
         3: .line 508
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 4 /* remainingNanos */
            ladd
            lstore 6 /* deadline */
        start local 6 // long deadline
         4: .line 510
      StackMap locals: long
      StackMap stack:
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            aload 0 /* this */
            lload 4 /* remainingNanos */
            invokevirtual java.util.concurrent.TimeUnit.timedWait:(Ljava/lang/Object;J)V
         5: .line 511
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifeq 7
         6: .line 512
            iconst_1
            ireturn
         7: .line 514
      StackMap locals:
      StackMap stack:
            lload 6 /* deadline */
            invokestatic java.lang.System.nanoTime:()J
            lsub
            lstore 4 /* remainingNanos */
         8: .line 515
            lload 4 /* remainingNanos */
            lconst_0
         9: .line 509
            lcmp
            ifgt 4
        10: .line 516
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ireturn
        end local 6 // long deadline
        end local 4 // long remainingNanos
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Ljava/lang/ProcessImpl;
            0   11     1         timeout  J
            0   11     3            unit  Ljava/util/concurrent/TimeUnit;
            1   11     4  remainingNanos  J
            4   11     6        deadline  J
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public synchronized int exitValue();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 520
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifne 2
         1: .line 521
            new java.lang.IllegalThreadStateException
            dup
            ldc "process hasn't exited"
            invokespecial java.lang.IllegalThreadStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.exitcode:I
            ireturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/ProcessImpl;

  private void destroy(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.ProcessImpl this
        start local 1 // boolean force
         0: .line 527
            invokestatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:()[I
            getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 1
                    2: 1
                    3: 18
                    4: 1
              default: 33
          }
         1: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 538
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifne 4
         3: .line 539
            aload 0 /* this */
            getfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
            iload 1 /* force */
            invokevirtual java.lang.ProcessHandleImpl.destroyProcess:(Z)Z
            pop
         4: .line 537
      StackMap locals: java.lang.ProcessImpl
      StackMap stack:
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
         9: goto 11
      StackMap locals:
      StackMap stack: java.io.IOException
        10: pop
        11: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        12: goto 14
      StackMap locals:
      StackMap stack: java.io.IOException
        13: pop
        14: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        15: goto 34
      StackMap locals:
      StackMap stack: java.io.IOException
        16: pop
        17: .line 544
            goto 34
        18: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
        19: .line 554
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifne 21
        20: .line 555
            aload 0 /* this */
            getfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
            iload 1 /* force */
            invokevirtual java.lang.ProcessHandleImpl.destroyProcess:(Z)Z
            pop
        21: .line 557
      StackMap locals: java.lang.ProcessImpl
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
        22: .line 558
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout_inner_stream:Ljava/lang/ProcessImpl$DeferredCloseInputStream;
            ifnull 24
        23: .line 559
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout_inner_stream:Ljava/lang/ProcessImpl$DeferredCloseInputStream;
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
            invokevirtual java.lang.ProcessImpl$DeferredCloseInputStream.closeDeferred:(Ljava/io/InputStream;)V
        24: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            instanceof java.lang.ProcessImpl$DeferredCloseInputStream
            ifeq 29
        25: .line 561
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            checkcast java.lang.ProcessImpl$DeferredCloseInputStream
        26: .line 562
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            invokevirtual java.lang.ProcessImpl$DeferredCloseInputStream.closeDeferred:(Ljava/io/InputStream;)V
        27: .line 563
            goto 29
      StackMap locals:
      StackMap stack: java.io.IOException
        28: pop
        29: .line 553
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        30: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: aload 2
            monitorexit
        32: athrow
        33: .line 569
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported platform: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        34: .line 571
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean force
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   35     0   this  Ljava/lang/ProcessImpl;
            0   35     1  force  Z
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
           8     9      10  Class java.io.IOException
          11    12      13  Class java.io.IOException
          14    15      16  Class java.io.IOException
          21    27      28  Class java.io.IOException
          19    30      31  any
          31    32      31  any
    MethodParameters:
       Name  Flags
      force  

  public java.util.concurrent.CompletableFuture<java.lang.Process> onExit();
    descriptor: ()Ljava/util/concurrent/CompletableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 575
            aload 0 /* this */
            getfield java.lang.ProcessImpl.pid:I
            i2l
            iconst_0
            invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
         1: .line 576
            aload 0 /* this */
            invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/ProcessImpl.lambda$4(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Process; (7)
                  (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Process;
            invokevirtual java.util.concurrent.CompletableFuture.handleAsync:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
         2: .line 575
            areturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/ProcessImpl;
    Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Process;>;

  public java.lang.ProcessHandle toHandle();
    descriptor: ()Ljava/lang/ProcessHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 596
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         1: .line 597
            aload 1 /* sm */
            ifnull 3
         2: .line 598
            aload 1 /* sm */
            new java.lang.RuntimePermission
            dup
            ldc "manageProcess"
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         3: .line 600
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
            areturn
        end local 1 // java.lang.SecurityManager sm
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/ProcessImpl;
            1    4     1    sm  Ljava/lang/SecurityManager;

  public boolean supportsNormalTermination();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 605
            iconst_1
            ireturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/ProcessImpl;

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 610
            aload 0 /* this */
            iconst_0
            invokevirtual java.lang.ProcessImpl.destroy:(Z)V
         1: .line 611
            return
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/ProcessImpl;

  public java.lang.Process destroyForcibly();
    descriptor: ()Ljava/lang/Process;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 615
            aload 0 /* this */
            iconst_1
            invokevirtual java.lang.ProcessImpl.destroy:(Z)V
         1: .line 616
            aload 0 /* this */
            areturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/ProcessImpl;

  public long pid();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 621
            aload 0 /* this */
            getfield java.lang.ProcessImpl.pid:I
            i2l
            lreturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/ProcessImpl;

  public synchronized boolean isAlive();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 626
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/ProcessImpl;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.ProcessImpl this
         0: .line 637
            new java.lang.StringBuilder
            dup
            ldc "Process[pid="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.lang.ProcessImpl.pid:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         1: .line 638
            ldc ", exitValue="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.ProcessImpl.hasExited:Z
            ifeq 2
            aload 0 /* this */
            getfield java.lang.ProcessImpl.exitcode:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            goto 3
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         2: ldc "\"not exited\""
      StackMap locals: java.lang.ProcessImpl
      StackMap stack: java.lang.StringBuilder java.lang.Comparable
         3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 639
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 637
            areturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/lang/ProcessImpl;

  private static native void init();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  static int[] $SWITCH_TABLE$java$lang$ProcessImpl$Platform();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 64
            getstatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic java.lang.ProcessImpl$Platform.values:()[Ljava/lang/ProcessImpl$Platform;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic java.lang.ProcessImpl$Platform.AIX:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic java.lang.ProcessImpl$Platform.BSD:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic java.lang.ProcessImpl$Platform.LINUX:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic java.lang.ProcessImpl$Platform.SOLARIS:Ljava/lang/ProcessImpl$Platform;
            invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  private java.lang.Void lambda$0(int[], boolean);
    descriptor: ([IZ)Ljava/lang/Void;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.ProcessImpl this
         0: .line 352
            aload 0 /* this */
            aload 1
            iload 2
            invokevirtual java.lang.ProcessImpl.initStreams:([IZ)V
         1: .line 353
            aconst_null
            areturn
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/ProcessImpl;
    Exceptions:
      throws java.lang.Exception

  private java.lang.Object lambda$1(java.lang.Integer, java.lang.Throwable);
    descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.ProcessImpl this
        start local 1 // java.lang.Integer exitcode
        start local 2 // java.lang.Throwable throwable
         0: .line 390
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 391
            aload 0 /* this */
            aload 1 /* exitcode */
            ifnonnull 2
            iconst_m1
            goto 3
      StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
      StackMap stack: java.lang.ProcessImpl
         2: aload 1 /* exitcode */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
      StackMap stack: java.lang.ProcessImpl int
         3: putfield java.lang.ProcessImpl.exitcode:I
         4: .line 392
            aload 0 /* this */
            iconst_1
            putfield java.lang.ProcessImpl.hasExited:Z
         5: .line 393
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         6: .line 390
            aload 3
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
            instanceof java.lang.ProcessImpl$ProcessPipeInputStream
            ifeq 12
        11: .line 397
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
            checkcast java.lang.ProcessImpl$ProcessPipeInputStream
            invokevirtual java.lang.ProcessImpl$ProcessPipeInputStream.processExited:()V
        12: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            instanceof java.lang.ProcessImpl$ProcessPipeInputStream
            ifeq 14
        13: .line 400
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            checkcast java.lang.ProcessImpl$ProcessPipeInputStream
            invokevirtual java.lang.ProcessImpl$ProcessPipeInputStream.processExited:()V
        14: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
            instanceof java.lang.ProcessImpl$ProcessPipeOutputStream
            ifeq 16
        15: .line 403
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
            checkcast java.lang.ProcessImpl$ProcessPipeOutputStream
            invokevirtual java.lang.ProcessImpl$ProcessPipeOutputStream.processExited:()V
        16: .line 405
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Throwable throwable
        end local 1 // java.lang.Integer exitcode
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Ljava/lang/ProcessImpl;
            0   17     1   exitcode  Ljava/lang/Integer;
            0   17     2  throwable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any

  private java.lang.Object lambda$2(java.lang.Integer, java.lang.Throwable);
    descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.ProcessImpl this
        start local 1 // java.lang.Integer exitcode
        start local 2 // java.lang.Throwable throwable
         0: .line 435
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 436
            aload 0 /* this */
            aload 1 /* exitcode */
            ifnonnull 2
            iconst_m1
            goto 3
      StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
      StackMap stack: java.lang.ProcessImpl
         2: aload 1 /* exitcode */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
      StackMap stack: java.lang.ProcessImpl int
         3: putfield java.lang.ProcessImpl.exitcode:I
         4: .line 437
            aload 0 /* this */
            iconst_1
            putfield java.lang.ProcessImpl.hasExited:Z
         5: .line 438
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         6: .line 435
            aload 3
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 440
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Throwable throwable
        end local 1 // java.lang.Integer exitcode
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Ljava/lang/ProcessImpl;
            0   11     1   exitcode  Ljava/lang/Integer;
            0   11     2  throwable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any

  private java.lang.Object lambda$3(java.lang.Integer, java.lang.Throwable);
    descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.ProcessImpl this
        start local 1 // java.lang.Integer exitcode
        start local 2 // java.lang.Throwable throwable
         0: .line 458
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 459
            aload 0 /* this */
            aload 1 /* exitcode */
            ifnonnull 2
            iconst_m1
            goto 3
      StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
      StackMap stack: java.lang.ProcessImpl
         2: aload 1 /* exitcode */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
      StackMap stack: java.lang.ProcessImpl int
         3: putfield java.lang.ProcessImpl.exitcode:I
         4: .line 460
            aload 0 /* this */
            iconst_1
            putfield java.lang.ProcessImpl.hasExited:Z
         5: .line 461
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         6: .line 458
            aload 3
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
            instanceof java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
            ifeq 12
        11: .line 465
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
            checkcast java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
            invokevirtual java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.processExited:()V
        12: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            instanceof java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
            ifeq 14
        13: .line 468
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
            checkcast java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
            invokevirtual java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.processExited:()V
        14: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
            instanceof java.lang.ProcessImpl$ProcessPipeOutputStream
            ifeq 16
        15: .line 471
            aload 0 /* this */
            getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
            checkcast java.lang.ProcessImpl$ProcessPipeOutputStream
            invokevirtual java.lang.ProcessImpl$ProcessPipeOutputStream.processExited:()V
        16: .line 473
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Throwable throwable
        end local 1 // java.lang.Integer exitcode
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Ljava/lang/ProcessImpl;
            0   17     1   exitcode  Ljava/lang/Integer;
            0   17     2  throwable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any

  private java.lang.Process lambda$4(java.lang.Integer, java.lang.Throwable);
    descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Process;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // java.lang.ProcessImpl this
        start local 1 // java.lang.Integer unusedExitStatus
        start local 2 // java.lang.Throwable unusedThrowable
         0: .line 577
            iconst_0
            istore 3 /* interrupted */
        start local 3 // boolean interrupted
         1: .line 581
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.ProcessImpl.waitFor:()I
            pop
         2: .line 582
            goto 6
         3: .line 583
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
         4: .line 584
            iconst_1
            istore 3 /* interrupted */
         5: .line 578
            goto 1
         6: .line 587
      StackMap locals:
      StackMap stack:
            iload 3 /* interrupted */
            ifeq 8
         7: .line 588
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         8: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // boolean interrupted
        end local 2 // java.lang.Throwable unusedThrowable
        end local 1 // java.lang.Integer unusedExitStatus
        end local 0 // java.lang.ProcessImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Ljava/lang/ProcessImpl;
            0    9     1  unusedExitStatus  Ljava/lang/Integer;
            0    9     2   unusedThrowable  Ljava/lang/Throwable;
            1    9     3       interrupted  Z
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException
}
SourceFile: "ProcessImpl.java"
NestMembers:
  java.lang.ProcessImpl$DeferredCloseInputStream  java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream  java.lang.ProcessImpl$LaunchMechanism  java.lang.ProcessImpl$Platform  java.lang.ProcessImpl$ProcessPipeInputStream  java.lang.ProcessImpl$ProcessPipeOutputStream
InnerClasses:
  NullInputStream = java.lang.ProcessBuilder$NullInputStream of java.lang.ProcessBuilder
  NullOutputStream = java.lang.ProcessBuilder$NullOutputStream of java.lang.ProcessBuilder
  public abstract Redirect = java.lang.ProcessBuilder$Redirect of java.lang.ProcessBuilder
  RedirectPipeImpl = java.lang.ProcessBuilder$RedirectPipeImpl of java.lang.ProcessBuilder
  private DeferredCloseInputStream = java.lang.ProcessImpl$DeferredCloseInputStream of java.lang.ProcessImpl
  private DeferredCloseProcessPipeInputStream = java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream of java.lang.ProcessImpl
  private final LaunchMechanism = java.lang.ProcessImpl$LaunchMechanism of java.lang.ProcessImpl
  private final Platform = java.lang.ProcessImpl$Platform of java.lang.ProcessImpl
  private ProcessPipeInputStream = java.lang.ProcessImpl$ProcessPipeInputStream of java.lang.ProcessImpl
  private ProcessPipeOutputStream = java.lang.ProcessImpl$ProcessPipeOutputStream of java.lang.ProcessImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles