public final class jdk.tools.jlink.builder.DefaultImageBuilder implements jdk.tools.jlink.builder.ImageBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.tools.jlink.builder.DefaultImageBuilder
  super_class: java.lang.Object
{
  public static final java.lang.String BIN_DIRNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "bin"

  public static final java.lang.String CONF_DIRNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "conf"

  public static final java.lang.String INCLUDE_DIRNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "include"

  public static final java.lang.String LIB_DIRNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lib"

  public static final java.lang.String LEGAL_DIRNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "legal"

  public static final java.lang.String MAN_DIRNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "man"

  private final java.nio.file.Path root;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, java.lang.String> launchers;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private final java.nio.file.Path mdir;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Set<java.lang.String> modules;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private jdk.tools.jlink.internal.Platform targetPlatform;
    descriptor: Ljdk/tools/jlink/internal/Platform;
    flags: (0x0002) ACC_PRIVATE

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

  private static volatile int[] $SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type;
    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 73
            ldc Ljdk/tools/jlink/builder/DefaultImageBuilder;
            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 jdk.tools.jlink.builder.DefaultImageBuilder.$assertionsDisabled:Z
         3: .line 80
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.nio.file.Path, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // java.nio.file.Path root
        start local 2 // java.util.Map launchers
         0: .line 145
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 136
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield jdk.tools.jlink.builder.DefaultImageBuilder.modules:Ljava/util/Set;
         2: .line 146
            aload 0 /* this */
            aload 1 /* root */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            putfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
         3: .line 147
            aload 0 /* this */
            aload 2 /* launchers */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            putfield jdk.tools.jlink.builder.DefaultImageBuilder.launchers:Ljava/util/Map;
         4: .line 148
            aload 0 /* this */
            aload 1 /* root */
            ldc "lib"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            putfield jdk.tools.jlink.builder.DefaultImageBuilder.mdir:Ljava/nio/file/Path;
         5: .line 149
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.mdir:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         6: .line 150
            return
        end local 2 // java.util.Map launchers
        end local 1 // java.nio.file.Path root
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    7     1       root  Ljava/nio/file/Path;
            0    7     2  launchers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
           Name  Flags
      root       
      launchers  

  public void storeFiles(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool files
         0: .line 155
            aload 1 /* files */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.moduleView:()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
         1: .line 156
            ldc "java.base"
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModuleView.findModule:(Ljava/lang/String;)Ljava/util/Optional;
         2: .line 157
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  jdk/tools/jlink/plugin/ResourcePoolModule.targetPlatform()Ljava/lang/String; (9 itf)
                  (Ljdk/tools/jlink/plugin/ResourcePoolModule;)Ljava/lang/String;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
         3: .line 158
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
         4: .line 155
            astore 2 /* value */
        start local 2 // java.lang.String value
         5: .line 159
            aload 2 /* value */
            ifnonnull 7
         6: .line 160
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "ModuleTarget attribute is missing for java.base module"
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 162
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            invokestatic jdk.tools.jlink.internal.Platform.toPlatform:(Ljava/lang/String;)Ljdk/tools/jlink/internal/Platform;
            putfield jdk.tools.jlink.builder.DefaultImageBuilder.targetPlatform:Ljdk/tools/jlink/internal/Platform;
         8: .line 164
            aload 0 /* this */
            aload 1 /* files */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.checkResourcePool:(Ljdk/tools/jlink/plugin/ResourcePool;)V
         9: .line 166
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            ldc "bin"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* bin */
        start local 3 // java.nio.file.Path bin
        10: .line 169
            aload 1 /* files */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.entries:()Ljava/util/stream/Stream;
        11: .line 170
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$1(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        12: .line 171
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)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
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$2(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V (7)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        13: .line 182
            aload 1 /* files */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.moduleView:()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModuleView.modules:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)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
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$3(Ljdk/tools/jlink/plugin/ResourcePoolModule;)V (7)
                  (Ljdk/tools/jlink/plugin/ResourcePoolModule;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        14: .line 189
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
            invokevirtual java.nio.file.FileSystem.supportedFileAttributeViews:()Ljava/util/Set;
        15: .line 190
            ldc "posix"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 27
        16: .line 193
            aload 3 /* bin */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 19
        17: .line 194
            aload 3 /* bin */
            iconst_2
            invokedynamic test()Ljava/util/function/BiPredicate;
              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;)Z
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$4(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
                  (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
            iconst_0
            anewarray java.nio.file.FileVisitOption
            invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
        18: .line 196
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)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
                  jdk/tools/jlink/builder/DefaultImageBuilder.setExecutable(Ljava/nio/file/Path;)V (7)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        19: .line 200
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            ldc "lib"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* lib */
        start local 5 // java.nio.file.Path lib
        20: .line 201
            aload 5 /* lib */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 23
        21: .line 202
            aload 5 /* lib */
            iconst_2
            invokedynamic test()Ljava/util/function/BiPredicate;
              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;)Z
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$6(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
                  (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
            iconst_0
            anewarray java.nio.file.FileVisitOption
            invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
        22: .line 205
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)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
                  jdk/tools/jlink/builder/DefaultImageBuilder.setExecutable(Ljava/nio/file/Path;)V (7)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        23: .line 209
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.lang.String java.nio.file.Path top java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            ldc "legal"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 7 /* legal */
        start local 7 // java.nio.file.Path legal
        24: .line 210
            aload 7 /* legal */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 27
        25: .line 211
            aload 7 /* legal */
            iconst_2
            invokedynamic test()Ljava/util/function/BiPredicate;
              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;)Z
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$8(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
                  (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
            iconst_0
            anewarray java.nio.file.FileVisitOption
            invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
        26: .line 213
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)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
                  jdk/tools/jlink/builder/DefaultImageBuilder.setReadOnly(Ljava/nio/file/Path;)V (7)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 7 // java.nio.file.Path legal
        end local 5 // java.nio.file.Path lib
        27: .line 219
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.lang.String java.nio.file.Path
      StackMap stack:
            aload 3 /* bin */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 32
        28: .line 220
            aload 0 /* this */
            aload 1 /* files */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.prepareApplicationFiles:(Ljdk/tools/jlink/plugin/ResourcePool;)V
        end local 3 // java.nio.file.Path bin
        end local 2 // java.lang.String value
        29: .line 222
            goto 32
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool
      StackMap stack: java.io.IOException
        30: astore 2 /* ex */
        start local 2 // java.io.IOException ex
        31: .line 223
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 2 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException ex
        32: .line 225
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePool files
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   33     0   this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0   33     1  files  Ljdk/tools/jlink/plugin/ResourcePool;
            5   29     2  value  Ljava/lang/String;
           10   29     3    bin  Ljava/nio/file/Path;
           20   27     5    lib  Ljava/nio/file/Path;
           24   27     7  legal  Ljava/nio/file/Path;
           31   32     2     ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    29      30  Class java.io.IOException
    MethodParameters:
       Name  Flags
      files  

  private void checkResourcePool(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool pool
         0: .line 229
            aload 0 /* this */
            aload 1 /* pool */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.checkDuplicateResources:(Ljdk/tools/jlink/plugin/ResourcePool;)V
         1: .line 230
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePool pool
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    2     1  pool  Ljdk/tools/jlink/plugin/ResourcePool;
    MethodParameters:
      Name  Flags
      pool  

  private void checkDuplicateResources(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool pool
         0: .line 234
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* duplicates */
        start local 2 // java.util.Map duplicates
         1: .line 235
            aload 1 /* pool */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.entries:()Ljava/util/stream/Stream;
         2: .line 236
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$10(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 237
            aload 0 /* this */
            invokedynamic apply(Ljdk/tools/jlink/builder/DefaultImageBuilder;)Ljava/util/function/Function;
              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;
                  jdk/tools/jlink/builder/DefaultImageBuilder.entryToImagePath(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path; (7)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
         4: .line 238
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  jdk/tools/jlink/plugin/ResourcePoolEntry.moduleName()Ljava/lang/String; (9 itf)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokestatic java.util.stream.Collectors.mapping:(Ljava/util/function/Function;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
         5: .line 237
            invokestatic java.util.stream.Collectors.groupingBy:(Ljava/util/function/Function;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
         6: .line 239
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
         7: .line 240
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         8: .line 241
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$13(Ljava/util/Map$Entry;)Z (6)
                  (Ljava/util/Map$Entry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         9: .line 242
            aload 2 /* duplicates */
            invokedynamic accept(Ljava/util/Map;)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
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$14(Ljava/util/Map;Ljava/util/Map$Entry;)V (6)
                  (Ljava/util/Map$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        10: .line 243
            aload 2 /* duplicates */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 12
        11: .line 244
            new jdk.tools.jlink.plugin.PluginException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Duplicate resources: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* duplicates */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 246
      StackMap locals: java.util.Map
      StackMap stack:
            return
        end local 2 // java.util.Map duplicates
        end local 1 // jdk.tools.jlink.plugin.ResourcePool pool
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0   13     1        pool  Ljdk/tools/jlink/plugin/ResourcePool;
            1   13     2  duplicates  Ljava/util/Map<Ljava/nio/file/Path;Ljava/util/Set<Ljava/lang/String;>;>;
    MethodParameters:
      Name  Flags
      pool  

  protected void prepareApplicationFiles(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=19, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool imageContent
         0: .line 256
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.launchers:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 80
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         2: .line 257
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* launcherEntry */
        start local 4 // java.lang.String launcherEntry
         3: .line 258
            aload 4 /* launcherEntry */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* slashIdx */
        start local 5 // int slashIdx
         4: .line 260
            iload 5 /* slashIdx */
            iconst_m1
            if_icmpne 8
         5: .line 261
            aload 4 /* launcherEntry */
            astore 6 /* module */
        start local 6 // java.lang.String module
         6: .line 262
            aconst_null
            astore 7 /* mainClassName */
        start local 7 // java.lang.String mainClassName
         7: .line 263
            goto 12
        end local 7 // java.lang.String mainClassName
        end local 6 // java.lang.String module
         8: .line 264
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int
      StackMap stack:
            aload 4 /* launcherEntry */
            iconst_0
            iload 5 /* slashIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* module */
        start local 6 // java.lang.String module
         9: .line 265
            getstatic jdk.tools.jlink.builder.DefaultImageBuilder.$assertionsDisabled:Z
            ifne 10
            aload 6 /* module */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 266
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* launcherEntry */
            iload 5 /* slashIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* mainClassName */
        start local 7 // java.lang.String mainClassName
        11: .line 267
            getstatic jdk.tools.jlink.builder.DefaultImageBuilder.$assertionsDisabled:Z
            ifne 12
            aload 7 /* mainClassName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 270
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* module */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/module-info.class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* path */
        start local 8 // java.lang.String path
        13: .line 271
            aload 1 /* imageContent */
            aload 8 /* path */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
            astore 9 /* res */
        start local 9 // java.util.Optional res
        14: .line 272
            aload 9 /* res */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 16
        15: .line 273
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "module-info.class not found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* module */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " module"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 275
      StackMap locals: java.lang.String java.util.Optional
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
            aload 9 /* res */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.plugin.ResourcePoolEntry
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.contentBytes:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 10 /* stream */
        start local 10 // java.io.ByteArrayInputStream stream
        17: .line 276
            aload 10 /* stream */
            invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/io/InputStream;)Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
            astore 11 /* mainClass */
        start local 11 // java.util.Optional mainClass
        18: .line 277
            aload 7 /* mainClassName */
            ifnonnull 20
            aload 11 /* mainClass */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 20
        19: .line 278
            aload 11 /* mainClass */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* mainClassName */
        20: .line 281
      StackMap locals: java.io.ByteArrayInputStream java.util.Optional
      StackMap stack:
            aload 7 /* mainClassName */
            ifnull 79
        21: .line 283
            aload 1 /* imageContent */
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* module */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        22: .line 284
            aload 7 /* mainClassName */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 283
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
        24: .line 284
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 26
        25: .line 285
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 6 /* module */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " does not have main class: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* mainClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 288
      StackMap locals:
      StackMap stack:
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* launcherFile */
        start local 12 // java.lang.String launcherFile
        27: .line 289
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            ldc "bin"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            aload 12 /* launcherFile */
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 13 /* cmd */
        start local 13 // java.nio.file.Path cmd
        28: .line 291
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 14 /* sb */
        start local 14 // java.lang.StringBuilder sb
        29: .line 292
            aload 14 /* sb */
            ldc "#!/bin/sh"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 293
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        31: .line 294
            aload 14 /* sb */
            ldc "JLINK_VM_OPTIONS="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 295
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        33: .line 296
            aload 14 /* sb */
            ldc "DIR=`dirname $0`"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 297
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        35: .line 298
            aload 14 /* sb */
            ldc "$DIR/java $JLINK_VM_OPTIONS -m "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 299
            aload 6 /* module */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        37: .line 300
            aload 7 /* mainClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 301
            ldc " $@\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        39: .line 303
            aconst_null
            astore 15
            aconst_null
            astore 16
        40: aload 13 /* cmd */
        41: .line 304
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            iconst_1
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
        42: .line 305
            getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
            aastore
        43: .line 303
            invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 17 /* writer */
        start local 17 // java.io.BufferedWriter writer
        44: .line 306
            aload 17 /* writer */
            aload 14 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        45: .line 307
            aload 17 /* writer */
            ifnull 51
            aload 17 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 51
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int java.lang.String java.lang.String java.lang.String java.util.Optional java.io.ByteArrayInputStream java.util.Optional java.lang.String java.nio.file.Path java.lang.StringBuilder java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
        46: astore 15
            aload 17 /* writer */
            ifnull 47
            aload 17 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 17 // java.io.BufferedWriter writer
      StackMap locals:
      StackMap stack:
        47: aload 15
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        48: astore 16
            aload 15
            ifnonnull 49
            aload 16
            astore 15
            goto 50
      StackMap locals:
      StackMap stack:
        49: aload 15
            aload 16
            if_acmpeq 50
            aload 15
            aload 16
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        50: aload 15
            athrow
        51: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            ldc "bin"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
        52: .line 309
            invokevirtual java.nio.file.FileSystem.supportedFileAttributeViews:()Ljava/util/Set;
            ldc "posix"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 54
        53: .line 310
            aload 0 /* this */
            aload 13 /* cmd */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.setExecutable:(Ljava/nio/file/Path;)V
        54: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.isWindows:()Z
            ifeq 80
        55: .line 314
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            ldc "bin"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            new java.lang.StringBuilder
            dup
            aload 12 /* launcherFile */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".bat"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 15 /* bat */
        start local 15 // java.nio.file.Path bat
        56: .line 315
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 14 /* sb */
        57: .line 316
            aload 14 /* sb */
            ldc "@echo off"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        58: .line 317
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        59: .line 318
            aload 14 /* sb */
            ldc "set JLINK_VM_OPTIONS="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        60: .line 319
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        61: .line 320
            aload 14 /* sb */
            ldc "set DIR=%~dp0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        62: .line 321
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        63: .line 322
            aload 14 /* sb */
            ldc "\"%DIR%\\java\" %JLINK_VM_OPTIONS% -m "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        64: .line 323
            aload 6 /* module */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        65: .line 324
            aload 7 /* mainClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        66: .line 325
            ldc " %*\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        67: .line 327
            aconst_null
            astore 16
            aconst_null
            astore 17
        68: aload 15 /* bat */
        69: .line 328
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            iconst_1
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
        70: .line 329
            getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
            aastore
        71: .line 327
            invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 18 /* writer */
        start local 18 // java.io.BufferedWriter writer
        72: .line 330
            aload 18 /* writer */
            aload 14 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        73: .line 331
            aload 18 /* writer */
            ifnull 80
            aload 18 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 80
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int java.lang.String java.lang.String java.lang.String java.util.Optional java.io.ByteArrayInputStream java.util.Optional java.lang.String java.nio.file.Path java.lang.StringBuilder java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
        74: astore 16
            aload 18 /* writer */
            ifnull 75
            aload 18 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 18 // java.io.BufferedWriter writer
      StackMap locals:
      StackMap stack:
        75: aload 16
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        76: astore 17
            aload 16
            ifnonnull 77
            aload 17
            astore 16
            goto 78
      StackMap locals:
      StackMap stack:
        77: aload 16
            aload 17
            if_acmpeq 78
            aload 16
            aload 17
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        78: aload 16
            athrow
        end local 15 // java.nio.file.Path bat
        end local 14 // java.lang.StringBuilder sb
        end local 13 // java.nio.file.Path cmd
        end local 12 // java.lang.String launcherFile
        79: .line 334
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int java.lang.String java.lang.String java.lang.String java.util.Optional java.io.ByteArrayInputStream java.util.Optional
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 6 /* module */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " doesn't contain main class & main not specified in command line"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.util.Optional mainClass
        end local 10 // java.io.ByteArrayInputStream stream
        end local 9 // java.util.Optional res
        end local 8 // java.lang.String path
        end local 7 // java.lang.String mainClassName
        end local 6 // java.lang.String module
        end local 5 // int slashIdx
        end local 4 // java.lang.String launcherEntry
        end local 2 // java.util.Map$Entry entry
        80: .line 256
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        81: .line 337
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePool imageContent
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   82     0           this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0   82     1   imageContent  Ljdk/tools/jlink/plugin/ResourcePool;
            2   80     2          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
            3   80     4  launcherEntry  Ljava/lang/String;
            4   80     5       slashIdx  I
            6    8     6         module  Ljava/lang/String;
            9   80     6         module  Ljava/lang/String;
            7    8     7  mainClassName  Ljava/lang/String;
           11   80     7  mainClassName  Ljava/lang/String;
           13   80     8           path  Ljava/lang/String;
           14   80     9            res  Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
           17   80    10         stream  Ljava/io/ByteArrayInputStream;
           18   80    11      mainClass  Ljava/util/Optional<Ljava/lang/String;>;
           27   79    12   launcherFile  Ljava/lang/String;
           28   79    13            cmd  Ljava/nio/file/Path;
           29   79    14             sb  Ljava/lang/StringBuilder;
           44   47    17         writer  Ljava/io/BufferedWriter;
           56   79    15            bat  Ljava/nio/file/Path;
           72   75    18         writer  Ljava/io/BufferedWriter;
      Exception table:
        from    to  target  type
          44    45      46  any
          40    48      48  any
          72    73      74  any
          68    76      76  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      imageContent  

  public java.io.DataOutputStream getJImageOutputStream();
    descriptor: ()Ljava/io/DataOutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
         0: .line 342
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.mdir:Ljava/nio/file/Path;
            ldc "modules"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* jimageFile */
        start local 1 // java.nio.file.Path jimageFile
         1: .line 343
            aload 1 /* jimageFile */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
            astore 2 /* fos */
        start local 2 // java.io.OutputStream fos
         2: .line 344
            new java.io.BufferedOutputStream
            dup
            aload 2 /* fos */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 3 /* bos */
        start local 3 // java.io.BufferedOutputStream bos
         3: .line 345
            new java.io.DataOutputStream
            dup
            aload 3 /* bos */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
         4: areturn
        end local 3 // java.io.BufferedOutputStream bos
        end local 2 // java.io.OutputStream fos
        end local 1 // java.nio.file.Path jimageFile
         5: .line 346
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* ex */
        start local 1 // java.io.IOException ex
         6: .line 347
            new java.io.UncheckedIOException
            dup
            aload 1 /* ex */
            invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
            athrow
        end local 1 // java.io.IOException ex
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            1    5     1  jimageFile  Ljava/nio/file/Path;
            2    5     2         fos  Ljava/io/OutputStream;
            3    5     3         bos  Ljava/io/BufferedOutputStream;
            6    7     1          ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.io.IOException

  private java.lang.String entryToFileName(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 355
            aload 1 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            if_acmpne 2
         1: .line 356
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 358
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* module */
        start local 2 // java.lang.String module
         3: .line 359
            aload 1 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            aload 2 /* module */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* filename */
        start local 3 // java.lang.String filename
         4: .line 362
            aload 3 /* filename */
            aload 3 /* filename */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String filename
        end local 2 // java.lang.String module
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    5     1     entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            3    5     2    module  Ljava/lang/String;
            4    5     3  filename  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      entry  

  private java.nio.file.Path entryToImagePath(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 369
            invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:()[I
            aload 1 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            iaload
            tableswitch { // 2 - 8
                    2: 4
                    3: 5
                    4: 7
                    5: 6
                    6: 3
                    7: 1
                    8: 8
              default: 9
          }
         1: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            astore 2 /* filename */
        start local 2 // java.lang.String filename
         2: .line 372
            aload 0 /* this */
            aload 2 /* filename */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.nativeDir:(Ljava/lang/String;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* filename */
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
        end local 2 // java.lang.String filename
         3: .line 374
      StackMap locals:
      StackMap stack:
            ldc "bin"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
         4: .line 376
      StackMap locals:
      StackMap stack:
            ldc "conf"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
         5: .line 378
      StackMap locals:
      StackMap stack:
            ldc "include"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
         6: .line 380
      StackMap locals:
      StackMap stack:
            ldc "man"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
         7: .line 382
      StackMap locals:
      StackMap stack:
            ldc "legal"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
         8: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entry */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
         9: .line 386
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0   10     1     entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            2    3     2  filename  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      entry  

  private void accept(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry file
         0: .line 391
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.linkedTarget:()Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            ifnull 2
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.LEGAL_NOTICE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            if_acmpeq 2
         1: .line 392
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "symbolic link not implemented: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 395
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.content:()Ljava/io/InputStream;
            astore 4 /* in */
        start local 4 // java.io.InputStream in
         4: .line 396
            invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:()[I
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            iaload
            tableswitch { // 2 - 8
                    2: 12
                    3: 12
                    4: 14
                    5: 12
                    6: 8
                    7: 5
                    8: 22
              default: 26
          }
         5: .line 398
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 5 /* dest */
        start local 5 // java.nio.file.Path dest
         6: .line 399
            aload 0 /* this */
            aload 4 /* in */
            aload 5 /* dest */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
         7: .line 400
            goto 27
        end local 5 // java.nio.file.Path dest
         8: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 6 /* p */
        start local 6 // java.nio.file.Path p
         9: .line 403
            aload 0 /* this */
            aload 4 /* in */
            aload 6 /* p */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
        10: .line 404
            aload 6 /* p */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            iconst_1
            invokevirtual java.io.File.setExecutable:(Z)Z
            pop
        11: .line 405
            goto 27
        end local 6 // java.nio.file.Path p
        12: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* in */
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
        13: .line 410
            goto 27
        14: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
            astore 7 /* source */
        start local 7 // java.nio.file.Path source
        15: .line 413
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.linkedTarget:()Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            ifnonnull 18
        16: .line 414
            aload 0 /* this */
            aload 4 /* in */
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            aload 7 /* source */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
        17: .line 415
            goto 27
        18: .line 416
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.lang.Throwable java.lang.Throwable java.io.InputStream top top java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.linkedTarget:()Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
            astore 8 /* target */
        start local 8 // java.nio.file.Path target
        19: .line 417
            aload 7 /* source */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            aload 8 /* target */
            invokeinterface java.nio.file.Path.relativize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 9 /* relPath */
        start local 9 // java.nio.file.Path relPath
        20: .line 418
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            aload 7 /* source */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 9 /* relPath */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeSymLinkEntry:(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
        end local 9 // java.nio.file.Path relPath
        end local 8 // java.nio.file.Path target
        21: .line 420
            goto 27
        end local 7 // java.nio.file.Path source
        22: .line 423
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            ldc "java.base"
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        23: .line 424
            aload 0 /* this */
            aload 4 /* in */
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
        24: .line 425
            goto 27
        25: .line 426
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected TOP entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 430
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* file */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 432
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            ifnull 33
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 2
            aload 4 /* in */
            ifnull 29
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        29: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 3
            aload 2
            ifnonnull 31
            aload 3
            astore 2
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 2
            aload 3
            if_acmpeq 32
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 2
            athrow
        33: .line 433
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry file
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   34     0     this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0   34     1     file  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            4   29     4       in  Ljava/io/InputStream;
            6    8     5     dest  Ljava/nio/file/Path;
            9   12     6        p  Ljava/nio/file/Path;
           15   22     7   source  Ljava/nio/file/Path;
           19   21     8   target  Ljava/nio/file/Path;
           20   21     9  relPath  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           4    27      28  any
           3    30      30  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  private void writeEntry(java.io.InputStream, java.nio.file.Path);
    descriptor: (Ljava/io/InputStream;Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // java.io.InputStream in
        start local 2 // java.nio.file.Path dstFile
         0: .line 436
            aload 1 /* in */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 437
            aload 2 /* dstFile */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 438
            aload 2 /* dstFile */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         3: .line 439
            aload 1 /* in */
            aload 2 /* dstFile */
            iconst_0
            anewarray java.nio.file.CopyOption
            invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
            pop2
         4: .line 440
            return
        end local 2 // java.nio.file.Path dstFile
        end local 1 // java.io.InputStream in
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    5     1       in  Ljava/io/InputStream;
            0    5     2  dstFile  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      in       
      dstFile  

  private void writeSymEntry(java.nio.file.Path, java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // java.nio.file.Path dstFile
        start local 2 // java.nio.file.Path target
         0: .line 443
            aload 1 /* dstFile */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 444
            aload 2 /* target */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 445
            aload 1 /* dstFile */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         3: .line 446
            aload 1 /* dstFile */
            aload 2 /* target */
            invokestatic java.nio.file.Files.createLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
            pop
         4: .line 447
            return
        end local 2 // java.nio.file.Path target
        end local 1 // java.nio.file.Path dstFile
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    5     1  dstFile  Ljava/nio/file/Path;
            0    5     2   target  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      dstFile  
      target   

  private void writeSymLinkEntry(java.nio.file.Path, java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // java.nio.file.Path dstFile
        start local 2 // java.nio.file.Path target
         0: .line 455
            aload 1 /* dstFile */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 456
            aload 2 /* target */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 457
            aload 1 /* dstFile */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         3: .line 458
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.isWindows:()Z
            ifne 8
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
         4: .line 459
            invokevirtual java.nio.file.FileSystem.supportedFileAttributeViews:()Ljava/util/Set;
         5: .line 460
            ldc "posix"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 461
            aload 1 /* dstFile */
            aload 2 /* target */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createSymbolicLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         7: .line 462
            goto 17
         8: .line 463
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
         9: aload 1 /* dstFile */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 5 /* writer */
        start local 5 // java.io.BufferedWriter writer
        10: .line 464
            aload 5 /* writer */
            ldc "Please see %s%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* target */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        11: .line 465
            aload 5 /* writer */
            ifnull 17
            aload 5 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 17
      StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
        12: astore 3
            aload 5 /* writer */
            ifnull 13
            aload 5 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 5 // java.io.BufferedWriter writer
      StackMap locals:
      StackMap stack:
        13: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 3
            ifnonnull 15
            aload 4
            astore 3
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3
            aload 4
            if_acmpeq 16
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 3
            athrow
        17: .line 467
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.nio.file.Path target
        end local 1 // java.nio.file.Path dstFile
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0   18     1  dstFile  Ljava/nio/file/Path;
            0   18     2   target  Ljava/nio/file/Path;
           10   13     5   writer  Ljava/io/BufferedWriter;
      Exception table:
        from    to  target  type
          10    11      12  any
           9    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      dstFile  
      target   

  private java.lang.String nativeDir(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // java.lang.String filename
         0: .line 470
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.isWindows:()Z
            ifeq 5
         1: .line 471
            aload 1 /* filename */
            ldc ".dll"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 3
            aload 1 /* filename */
            ldc ".diz"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 472
            aload 1 /* filename */
            ldc ".pdb"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 3
            aload 1 /* filename */
            ldc ".map"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 473
      StackMap locals:
      StackMap stack:
            ldc "bin"
            areturn
         4: .line 475
      StackMap locals:
      StackMap stack:
            ldc "lib"
            areturn
         5: .line 478
      StackMap locals:
      StackMap stack:
            ldc "lib"
            areturn
        end local 1 // java.lang.String filename
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    6     1  filename  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      filename  

  private boolean isWindows();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
         0: .line 483
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.targetPlatform:Ljdk/tools/jlink/internal/Platform;
            getstatic jdk.tools.jlink.internal.Platform.WINDOWS:Ljdk/tools/jlink/internal/Platform;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/builder/DefaultImageBuilder;

  private void setExecutable(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // java.nio.file.Path file
         0: .line 491
            aload 1 /* file */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.getPosixFilePermissions:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/util/Set;
            astore 2 /* perms */
        start local 2 // java.util.Set perms
         1: .line 492
            aload 2 /* perms */
            getstatic java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 493
            aload 2 /* perms */
            getstatic java.nio.file.attribute.PosixFilePermission.GROUP_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 494
            aload 2 /* perms */
            getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 495
            aload 1 /* file */
            aload 2 /* perms */
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
        end local 2 // java.util.Set perms
         5: .line 496
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
         7: .line 497
            new java.io.UncheckedIOException
            dup
            aload 2 /* ioe */
            invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
            athrow
        end local 2 // java.io.IOException ioe
         8: .line 499
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.file.Path file
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    9     1   file  Ljava/nio/file/Path;
            1    5     2  perms  Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
            7    8     2    ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     5       6  Class java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  private void setReadOnly(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // java.nio.file.Path file
         0: .line 506
            aload 1 /* file */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.getPosixFilePermissions:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/util/Set;
            astore 2 /* perms */
        start local 2 // java.util.Set perms
         1: .line 507
            aload 2 /* perms */
            getstatic java.nio.file.attribute.PosixFilePermission.OWNER_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 508
            aload 2 /* perms */
            getstatic java.nio.file.attribute.PosixFilePermission.GROUP_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 509
            aload 2 /* perms */
            getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 510
            aload 1 /* file */
            aload 2 /* perms */
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
        end local 2 // java.util.Set perms
         5: .line 511
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
         7: .line 512
            new java.io.UncheckedIOException
            dup
            aload 2 /* ioe */
            invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
            athrow
        end local 2 // java.io.IOException ioe
         8: .line 514
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.file.Path file
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    9     1   file  Ljava/nio/file/Path;
            1    5     2  perms  Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
            7    8     2    ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     5       6  Class java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  private static void createUtf8File(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.io.File file
        start local 1 // java.lang.String content
         0: .line 517
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: new java.io.FileOutputStream
            dup
            aload 0 /* file */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 4 /* fout */
        start local 4 // java.io.OutputStream fout
         2: .line 518
            new java.io.OutputStreamWriter
            dup
            aload 4 /* fout */
            ldc "UTF-8"
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/lang/String;)V
            astore 5 /* output */
        start local 5 // java.io.Writer output
         3: .line 519
            aload 5 /* output */
            aload 1 /* content */
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
         4: .line 520
            aload 5 /* output */
            ifnull 7
            aload 5 /* output */
            invokevirtual java.io.Writer.close:()V
            goto 7
      StackMap locals: java.io.File java.lang.String java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.Writer
      StackMap stack: java.lang.Throwable
         5: astore 2
            aload 5 /* output */
            ifnull 6
            aload 5 /* output */
            invokevirtual java.io.Writer.close:()V
        end local 5 // java.io.Writer output
      StackMap locals:
      StackMap stack:
         6: aload 2
            athrow
      StackMap locals:
      StackMap stack:
         7: aload 4 /* fout */
            ifnull 15
            aload 4 /* fout */
            invokevirtual java.io.OutputStream.close:()V
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 2
            ifnonnull 9
            aload 3
            astore 2
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 2
            aload 3
            if_acmpeq 10
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 4 /* fout */
            ifnull 11
            aload 4 /* fout */
            invokevirtual java.io.OutputStream.close:()V
        end local 4 // java.io.OutputStream fout
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 3
            aload 2
            ifnonnull 13
            aload 3
            astore 2
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 2
            aload 3
            if_acmpeq 14
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
        15: .line 521
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String content
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     file  Ljava/io/File;
            0   16     1  content  Ljava/lang/String;
            2   11     4     fout  Ljava/io/OutputStream;
            3    6     5   output  Ljava/io/Writer;
      Exception table:
        from    to  target  type
           3     4       5  any
           2     7       8  any
           1    12      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      file     
      content  

  public jdk.tools.jlink.internal.ExecutableImage getExecutableImage();
    descriptor: ()Ljdk/tools/jlink/internal/ExecutableImage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
         0: .line 525
            new jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.modules:Ljava/util/Set;
            invokespecial jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage.<init>:(Ljava/nio/file/Path;Ljava/util/Set;)V
            areturn
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/builder/DefaultImageBuilder;

  private static void patchScripts(jdk.tools.jlink.internal.ExecutableImage, java.util.List<java.lang.String>);
    descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ExecutableImage img
        start local 1 // java.util.List args
         0: .line 530
            aload 1 /* args */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 531
            aload 1 /* args */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 4
         2: .line 532
            aload 0 /* img */
            invokeinterface jdk.tools.jlink.internal.ExecutableImage.getHome:()Ljava/nio/file/Path;
            ldc "bin"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_2
            aload 0 /* img */
            invokedynamic test(Ljdk/tools/jlink/internal/ExecutableImage;)Ljava/util/function/BiPredicate;
              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;)Z
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$15(Ljdk/tools/jlink/internal/ExecutableImage;Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
                  (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
            iconst_0
            anewarray java.nio.file.FileVisitOption
            invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
         3: .line 534
            aload 1 /* args */
            invokedynamic accept(Ljava/util/List;)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
                  jdk/tools/jlink/builder/DefaultImageBuilder.lambda$16(Ljava/util/List;Ljava/nio/file/Path;)V (6)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         4: .line 561
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List args
        end local 0 // jdk.tools.jlink.internal.ExecutableImage img
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   img  Ljdk/tools/jlink/internal/ExecutableImage;
            0    5     1  args  Ljava/util/List<Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      img   
      args  

  public static jdk.tools.jlink.internal.ExecutableImage getExecutableImage(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljdk/tools/jlink/internal/ExecutableImage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.nio.file.Path root
         0: .line 564
            aload 0 /* root */
            ldc "bin"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* binDir */
        start local 1 // java.nio.file.Path binDir
         1: .line 565
            aload 1 /* binDir */
            ldc "java"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 3
         2: .line 566
            aload 1 /* binDir */
            ldc "java.exe"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 4
         3: .line 567
      StackMap locals: java.nio.file.Path
      StackMap stack:
            new jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage
            dup
            aload 0 /* root */
            aload 0 /* root */
            invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.retrieveModules:(Ljava/nio/file/Path;)Ljava/util/Set;
            invokespecial jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage.<init>:(Ljava/nio/file/Path;Ljava/util/Set;)V
            areturn
         4: .line 569
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.nio.file.Path binDir
        end local 0 // java.nio.file.Path root
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    root  Ljava/nio/file/Path;
            1    5     1  binDir  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      root  

  private static java.util.Set<java.lang.String> retrieveModules(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // java.nio.file.Path root
         0: .line 573
            aload 0 /* root */
            ldc "release"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* releaseFile */
        start local 1 // java.nio.file.Path releaseFile
         1: .line 574
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* modules */
        start local 2 // java.util.Set modules
         2: .line 575
            aload 1 /* releaseFile */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 23
         3: .line 576
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 3 /* release */
        start local 3 // java.util.Properties release
         4: .line 577
            aconst_null
            astore 4
            aconst_null
            astore 5
         5: new java.io.FileInputStream
            dup
            aload 1 /* releaseFile */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 6 /* fi */
        start local 6 // java.io.FileInputStream fi
         6: .line 578
            aload 3 /* release */
            aload 6 /* fi */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
         7: .line 579
            aload 6 /* fi */
            ifnull 15
            aload 6 /* fi */
            invokevirtual java.io.FileInputStream.close:()V
            goto 15
      StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set java.util.Properties java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
         8: astore 4
            aload 6 /* fi */
            ifnull 9
            aload 6 /* fi */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream fi
      StackMap locals:
      StackMap stack:
         9: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 5
            aload 4
            ifnonnull 11
            aload 5
            astore 4
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 4
            aload 5
            if_acmpeq 12
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 4
            athrow
      StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set java.util.Properties
      StackMap stack: java.io.IOException
        13: astore 4 /* ex */
        start local 4 // java.io.IOException ex
        14: .line 580
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Can't read release file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // java.io.IOException ex
        15: .line 582
      StackMap locals:
      StackMap stack:
            aload 3 /* release */
            ldc "MODULES"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* mods */
        start local 4 // java.lang.String mods
        16: .line 583
            aload 4 /* mods */
            ifnull 23
        17: .line 584
            aload 4 /* mods */
            iconst_1
            aload 4 /* mods */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* arr */
        start local 5 // java.lang.String[] arr
        18: .line 585
            aload 5 /* arr */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 22
      StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set java.util.Properties java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        19: aload 9
            iload 7
            aaload
            astore 6 /* m */
        start local 6 // java.lang.String m
        20: .line 586
            aload 2 /* modules */
            aload 6 /* m */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String m
        21: .line 585
            iinc 7 1
      StackMap locals:
      StackMap stack:
        22: iload 7
            iload 8
            if_icmplt 19
        end local 5 // java.lang.String[] arr
        end local 4 // java.lang.String mods
        end local 3 // java.util.Properties release
        23: .line 591
      StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set
      StackMap stack:
            aload 2 /* modules */
            areturn
        end local 2 // java.util.Set modules
        end local 1 // java.nio.file.Path releaseFile
        end local 0 // java.nio.file.Path root
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         root  Ljava/nio/file/Path;
            1   24     1  releaseFile  Ljava/nio/file/Path;
            2   24     2      modules  Ljava/util/Set<Ljava/lang/String;>;
            4   23     3      release  Ljava/util/Properties;
            6    9     6           fi  Ljava/io/FileInputStream;
           14   15     4           ex  Ljava/io/IOException;
           16   23     4         mods  Ljava/lang/String;
           18   23     5          arr  [Ljava/lang/String;
           20   21     6            m  Ljava/lang/String;
      Exception table:
        from    to  target  type
           6     7       8  any
           5    10      10  any
           4    13      13  Class java.io.IOException
    Signature: (Ljava/nio/file/Path;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      root  

  static int[] $SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 73
            getstatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.values:()[Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CONFIG:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.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 jdk.tools.jlink.plugin.ResourcePoolEntry$Type.HEADER_FILE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.LEGAL_NOTICE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.MAN_PAGE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.NATIVE_CMD:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            bipush 6
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.NATIVE_LIB:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.TOP:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
            bipush 8
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            dup
            putstatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError

  private static boolean lambda$1(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry f
         0: .line 170
            aload 0 /* f */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     f  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private void lambda$2(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry f
         0: .line 173
            aload 0 /* this */
            aload 1 /* f */
            invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.accept:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
         1: .line 174
            goto 6
      StackMap locals:
      StackMap stack: java.nio.file.FileAlreadyExistsException
         2: astore 2 /* e */
        start local 2 // java.nio.file.FileAlreadyExistsException e
         3: .line 176
            new java.lang.AssertionError
            dup
            ldc "Duplicate entry!"
            aload 2 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.nio.file.FileAlreadyExistsException e
         4: .line 177
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* ioExp */
        start local 2 // java.io.IOException ioExp
         5: .line 178
            new java.io.UncheckedIOException
            dup
            aload 2 /* ioExp */
            invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
            athrow
        end local 2 // java.io.IOException ioExp
         6: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry f
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    7     1      f  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            3    4     2      e  Ljava/nio/file/FileAlreadyExistsException;
            5    6     2  ioExp  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.nio.file.FileAlreadyExistsException
           0     1       4  Class java.io.IOException

  private void lambda$3(jdk.tools.jlink.plugin.ResourcePoolModule);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolModule;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolModule m
         0: .line 184
            aload 1 /* m */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.packages:()Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 2
         1: .line 185
            aload 0 /* this */
            getfield jdk.tools.jlink.builder.DefaultImageBuilder.modules:Ljava/util/Set;
            aload 1 /* m */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.name:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 187
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolModule m
        end local 0 // jdk.tools.jlink.builder.DefaultImageBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/builder/DefaultImageBuilder;
            0    3     1     m  Ljdk/tools/jlink/plugin/ResourcePoolModule;

  private static boolean lambda$4(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.file.attribute.BasicFileAttributes attrs
         0: .line 195
            aload 1 /* attrs */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.isRegularFile:()Z
            ifeq 1
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc ".diz"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.nio.file.attribute.BasicFileAttributes attrs
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   path  Ljava/nio/file/Path;
            0    2     1  attrs  Ljava/nio/file/attribute/BasicFileAttributes;

  private static boolean lambda$6(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.file.attribute.BasicFileAttributes attrs
         0: .line 203
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "jspawnhelper"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 204
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "jexec"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 203
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // java.nio.file.attribute.BasicFileAttributes attrs
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   path  Ljava/nio/file/Path;
            0    4     1  attrs  Ljava/nio/file/attribute/BasicFileAttributes;

  private static boolean lambda$8(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.file.attribute.BasicFileAttributes attrs
         0: .line 212
            aload 1 /* attrs */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.isRegularFile:()Z
            ireturn
        end local 1 // java.nio.file.attribute.BasicFileAttributes attrs
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   path  Ljava/nio/file/Path;
            0    1     1  attrs  Ljava/nio/file/attribute/BasicFileAttributes;

  private static boolean lambda$10(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry f
         0: .line 236
            aload 0 /* f */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     f  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private static boolean lambda$13(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 241
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmple 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Ljava/util/Map$Entry<Ljava/nio/file/Path;Ljava/util/Set<Ljava/lang/String;>;>;

  private static void lambda$14(java.util.Map, java.util.Map$Entry);
    descriptor: (Ljava/util/Map;Ljava/util/Map$Entry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.util.Map$Entry e
         0: .line 242
            aload 0
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     e  Ljava/util/Map$Entry<Ljava/nio/file/Path;Ljava/util/Set<Ljava/lang/String;>;>;

  private static boolean lambda$15(jdk.tools.jlink.internal.ExecutableImage, java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
    descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // java.nio.file.Path path
        start local 2 // java.nio.file.attribute.BasicFileAttributes attrs
         0: .line 533
            aload 0
            invokeinterface jdk.tools.jlink.internal.ExecutableImage.getModules:()Ljava/util/Set;
            aload 1 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.nio.file.attribute.BasicFileAttributes attrs
        end local 1 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1   path  Ljava/nio/file/Path;
            0    1     2  attrs  Ljava/nio/file/attribute/BasicFileAttributes;

  private static void lambda$16(java.util.List, java.nio.file.Path);
    descriptor: (Ljava/util/List;Ljava/nio/file/Path;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=11, args_size=2
        start local 1 // java.nio.file.Path p
         0: .line 536
            ldc "JLINK_VM_OPTIONS="
            astore 2 /* pattern */
        start local 2 // java.lang.String pattern
         1: .line 537
            aload 1 /* p */
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            astore 3 /* content */
        start local 3 // byte[] content
         2: .line 538
            new java.lang.String
            dup
            aload 3 /* content */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            astore 4 /* str */
        start local 4 // java.lang.String str
         3: .line 539
            aload 4 /* str */
            aload 2 /* pattern */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* index */
        start local 5 // int index
         4: .line 540
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* builder */
        start local 6 // java.lang.StringBuilder builder
         5: .line 541
            iload 5 /* index */
            iconst_m1
            if_icmpeq 29
         6: .line 542
            aload 6 /* builder */
            aload 4 /* str */
            iconst_0
            iload 5 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 543
            aload 2 /* pattern */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 544
            aload 0
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: java.util.List java.nio.file.Path java.lang.String byte[] java.lang.String int java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         9: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* s */
        start local 7 // java.lang.String s
        10: .line 545
            aload 6 /* builder */
            aload 7 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 7 // java.lang.String s
        11: .line 544
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 547
            aload 4 /* str */
            iload 5 /* index */
            aload 2 /* pattern */
            invokevirtual java.lang.String.length:()I
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* remain */
        start local 7 // java.lang.String remain
        13: .line 548
            aload 6 /* builder */
            aload 7 /* remain */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 549
            aload 6 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* str */
        15: .line 550
            aconst_null
            astore 8
            aconst_null
            astore 9
        16: aload 1 /* p */
        17: .line 551
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            iconst_1
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
        18: .line 552
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
        19: .line 550
            invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 10 /* writer */
        start local 10 // java.io.BufferedWriter writer
        20: .line 553
            aload 10 /* writer */
            aload 4 /* str */
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        21: .line 554
            aload 10 /* writer */
            ifnull 29
            aload 10 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 29
      StackMap locals: java.util.List java.nio.file.Path java.lang.String byte[] java.lang.String int java.lang.StringBuilder java.lang.String java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
        22: astore 8
            aload 10 /* writer */
            ifnull 23
            aload 10 /* writer */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 10 // java.io.BufferedWriter writer
      StackMap locals:
      StackMap stack:
        23: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 9
            aload 8
            ifnonnull 25
            aload 9
            astore 8
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 8
            aload 9
            if_acmpeq 26
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 8
            athrow
        end local 7 // java.lang.String remain
        end local 6 // java.lang.StringBuilder builder
        end local 5 // int index
        end local 4 // java.lang.String str
        end local 3 // byte[] content
        end local 2 // java.lang.String pattern
        27: .line 556
      StackMap locals: java.util.List java.nio.file.Path
      StackMap stack: java.io.IOException
            astore 2 /* ex */
        start local 2 // java.io.IOException ex
        28: .line 557
            new java.lang.RuntimeException
            dup
            aload 2 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException ex
        29: .line 559
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.file.Path p
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   30     1        p  Ljava/nio/file/Path;
            1   27     2  pattern  Ljava/lang/String;
            2   27     3  content  [B
            3   27     4      str  Ljava/lang/String;
            4   27     5    index  I
            5   27     6  builder  Ljava/lang/StringBuilder;
           10   11     7        s  Ljava/lang/String;
           13   27     7   remain  Ljava/lang/String;
           20   23    10   writer  Ljava/io/BufferedWriter;
           28   29     2       ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          20    21      22  any
          16    24      24  any
           0    27      27  Class java.io.IOException
}
SourceFile: "DefaultImageBuilder.java"
NestMembers:
  jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  final DefaultExecutableImage = jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage of jdk.tools.jlink.builder.DefaultImageBuilder
  public final Type = jdk.tools.jlink.plugin.ResourcePoolEntry$Type of jdk.tools.jlink.plugin.ResourcePoolEntry