public class jdk.tools.jlink.internal.JlinkTask
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.tools.jlink.internal.JlinkTask
  super_class: java.lang.Object
{
  static final boolean DEBUG;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

  private static final jdk.tools.jlink.internal.TaskHelper taskHelper;
    descriptor: Ljdk/tools/jlink/internal/TaskHelper;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.tools.jlink.internal.TaskHelper$Option<?>[] recognizedOptions;
    descriptor: [Ljdk/tools/jlink/internal/TaskHelper$Option;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljdk/tools/jlink/internal/TaskHelper$Option<*>;

  private static final java.lang.String PROGNAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jlink"

  private final jdk.tools.jlink.internal.JlinkTask$OptionsValues options;
    descriptor: Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final jdk.tools.jlink.internal.TaskHelper$OptionsHelper<jdk.tools.jlink.internal.JlinkTask> optionsHelper;
    descriptor: Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper<Ljdk/tools/jlink/internal/JlinkTask;>;

  private java.io.PrintWriter log;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0002) ACC_PRIVATE

  static final int EXIT_OK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int EXIT_ERROR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int EXIT_CMDERR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int EXIT_SYSERR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int EXIT_ABNORMAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final java.lang.String ALL_MODULE_PATH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-MODULE-PATH"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=0, args_size=0
         0: .line 78
            ldc "jlink.debug"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
         1: .line 84
            new jdk.tools.jlink.internal.TaskHelper
            dup
            ldc "jdk.tools.jlink.resources.jlink"
            invokespecial jdk.tools.jlink.internal.TaskHelper.<init>:(Ljava/lang/String;)V
         2: .line 83
            putstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
         3: .line 86
            bipush 15
            anewarray jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
         4: .line 87
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$0(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 89
            ldc "--help"
            ldc "-h"
            ldc "-?"
         6: .line 87
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            iconst_1
         7: .line 90
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$1(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
         8: .line 99
            ldc "--module-path"
            ldc "-p"
         9: .line 90
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            iconst_2
        10: .line 100
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$4(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        11: .line 111
            ldc "--limit-modules"
        12: .line 100
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            iconst_3
        13: .line 112
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$5(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        14: .line 120
            ldc "--add-modules"
        15: .line 112
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            iconst_4
        16: .line 121
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$6(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        17: .line 124
            ldc "--output"
        18: .line 121
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            iconst_5
        19: .line 125
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$7(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        20: .line 127
            ldc "--bind-services"
        21: .line 125
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 6
        22: .line 128
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$8(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        23: .line 130
            ldc "--suggest-providers"
            ldc ""
            iconst_1
        24: .line 128
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;Z)V
            aastore
            dup
            bipush 7
        25: .line 131
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$9(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        26: .line 151
            ldc "--launcher"
        27: .line 131
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 8
        28: .line 152
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$10(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        29: .line 160
            ldc "--endian"
        30: .line 152
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 9
        31: .line 161
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$11(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        32: .line 163
            ldc "--verbose"
            ldc "-v"
        33: .line 161
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            bipush 10
        34: .line 164
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$12(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        35: .line 166
            ldc "--version"
        36: .line 164
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 11
        37: .line 167
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$13(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        38: .line 173
            iconst_1
            ldc "--keep-packaged-modules"
        39: .line 167
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;ZLjava/lang/String;)V
            aastore
            dup
            bipush 12
        40: .line 174
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$14(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        41: .line 176
            ldc "--save-opts"
        42: .line 174
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 13
        43: .line 177
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$15(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        44: .line 179
            iconst_1
            ldc "--full-version"
        45: .line 177
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;ZLjava/lang/String;)V
            aastore
            dup
            bipush 14
        46: .line 180
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$16(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        47: .line 182
            ldc "--ignore-signing-information"
        48: .line 180
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
        49: .line 86
            putstatic jdk.tools.jlink.internal.JlinkTask.recognizedOptions:[Ljdk/tools/jlink/internal/TaskHelper$Option;
        50: .line 188
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc Ljdk/tools/jlink/internal/JlinkTask;
            getstatic jdk.tools.jlink.internal.JlinkTask.recognizedOptions:[Ljdk/tools/jlink/internal/TaskHelper$Option;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newOptionsHelper:(Ljava/lang/Class;[Ljdk/tools/jlink/internal/TaskHelper$Option;)Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
        51: .line 187
            putstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
        52: .line 354
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 185
            aload 0 /* this */
            new jdk.tools.jlink.internal.JlinkTask$OptionsValues
            dup
            invokespecial jdk.tools.jlink.internal.JlinkTask$OptionsValues.<init>:()V
            putfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
         2: .line 77
            return
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/internal/JlinkTask;

  void setLog(java.io.PrintWriter, java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;Ljava/io/PrintWriter;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.io.PrintWriter out
        start local 2 // java.io.PrintWriter err
         0: .line 192
            aload 0 /* this */
            aload 1 /* out */
            putfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
         1: .line 193
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.setLog:(Ljava/io/PrintWriter;)V
         2: .line 194
            return
        end local 2 // java.io.PrintWriter err
        end local 1 // java.io.PrintWriter out
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            0    3     1   out  Ljava/io/PrintWriter;
            0    3     2   err  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      out   
      err   

  int run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)I
    flags: (0x0000) 
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.lang.String[] args
         0: .line 225
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            ifnonnull 4
         1: .line 226
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
         2: .line 227
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
         3: .line 226
            invokevirtual jdk.tools.jlink.internal.JlinkTask.setLog:(Ljava/io/PrintWriter;Ljava/io/PrintWriter;)V
         4: .line 230
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.handleOptions:(Ljava/lang/Object;[Ljava/lang/String;)Ljava/util/List;
            astore 2 /* remaining */
        start local 2 // java.util.List remaining
         5: .line 231
            aload 2 /* remaining */
            invokeinterface java.util.List.size:()I
            ifle 11
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.suggestProviders:Z
            ifne 11
         6: .line 232
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.orphan.arguments"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 233
            aload 2 /* remaining */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
         8: .line 232
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         9: .line 234
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
        10: .line 232
            athrow
        11: .line 236
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.help:Z
            ifeq 15
        12: .line 237
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            ldc "jlink"
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.showHelp:(Ljava/lang/String;)V
        13: .line 300
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        14: .line 238
            iconst_0
            ireturn
        15: .line 240
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.shouldListPlugins:()Z
            ifeq 19
        16: .line 241
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.listPlugins:()V
        17: .line 300
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        18: .line 242
            iconst_0
            ireturn
        19: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.version:Z
            ifne 20
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.fullVersion:Z
            ifeq 23
        20: .line 245
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.fullVersion:Z
            invokevirtual jdk.tools.jlink.internal.TaskHelper.showVersion:(Z)V
        21: .line 300
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        22: .line 246
            iconst_0
            ireturn
        23: .line 249
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getExistingImage:()Ljava/nio/file/Path;
            ifnull 27
        24: .line 250
            aload 0 /* this */
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getExistingImage:()Ljava/nio/file/Path;
            invokevirtual jdk.tools.jlink.internal.JlinkTask.postProcessOnly:(Ljava/nio/file/Path;)V
        25: .line 300
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        26: .line 251
            iconst_0
            ireturn
        27: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 35
        28: .line 257
            invokestatic jdk.tools.jlink.internal.JlinkTask.getDefaultModulePath:()Ljava/nio/file/Path;
            astore 3 /* jmods */
        start local 3 // java.nio.file.Path jmods
        29: .line 258
            aload 3 /* jmods */
            ifnull 31
        30: .line 259
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 3 /* jmods */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 262
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 35
        32: .line 263
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.modulepath.must.be.specified"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
        33: .line 264
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
        34: .line 263
            athrow
        end local 3 // java.nio.file.Path jmods
        35: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.initJlinkConfig:()Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            astore 3 /* config */
        start local 3 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        36: .line 269
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.suggestProviders:Z
            ifeq 39
        37: .line 270
            aload 0 /* this */
            aload 3 /* config */
            aload 2 /* remaining */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.suggestProviders:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/util/List;)V
        38: .line 271
            goto 42
        39: .line 272
      StackMap locals: jdk.tools.jlink.internal.Jlink$JlinkConfiguration
      StackMap stack:
            aload 0 /* this */
            aload 3 /* config */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.createImage:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;)V
        40: .line 273
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.saveoptsfile:Ljava/lang/String;
            ifnull 42
        41: .line 274
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.saveoptsfile: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;
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.getSaveOpts:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.write:(Ljava/nio/file/Path;[B[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
            pop
        42: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        43: .line 278
            iconst_0
            ireturn
        end local 3 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        end local 2 // java.util.List remaining
        44: .line 280
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String[]
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        45: .line 281
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            new java.lang.StringBuilder
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "error.prefix"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        46: .line 282
            getstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
            ifeq 48
        47: .line 283
            aload 2 /* e */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintWriter;)V
        48: .line 300
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        49: .line 285
            iconst_1
            ireturn
        end local 2 // java.lang.Exception e
        50: .line 286
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String[]
      StackMap stack: jdk.tools.jlink.internal.TaskHelper$BadArgs
            astore 2 /* e */
        start local 2 // jdk.tools.jlink.internal.TaskHelper$BadArgs e
        51: .line 287
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 2 /* e */
            getfield jdk.tools.jlink.internal.TaskHelper$BadArgs.key:Ljava/lang/String;
            aload 2 /* e */
            getfield jdk.tools.jlink.internal.TaskHelper$BadArgs.args:[Ljava/lang/Object;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.reportError:(Ljava/lang/String;[Ljava/lang/Object;)V
        52: .line 288
            aload 2 /* e */
            getfield jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:Z
            ifeq 54
        53: .line 289
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "main.usage.summary"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "jlink"
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        54: .line 291
      StackMap locals: jdk.tools.jlink.internal.TaskHelper$BadArgs
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
            ifeq 56
        55: .line 292
            aload 2 /* e */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.printStackTrace:(Ljava/io/PrintWriter;)V
        56: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        57: .line 294
            iconst_2
            ireturn
        end local 2 // jdk.tools.jlink.internal.TaskHelper$BadArgs e
        58: .line 295
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String[]
      StackMap stack: java.lang.Throwable
            astore 2 /* x */
        start local 2 // java.lang.Throwable x
        59: .line 296
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            new java.lang.StringBuilder
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "error.prefix"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* x */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        60: .line 297
            aload 2 /* x */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
        61: .line 300
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        62: .line 298
            iconst_4
            ireturn
        end local 2 // java.lang.Throwable x
        63: .line 299
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        64: .line 300
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        65: .line 301
            aload 4
            athrow
        end local 1 // java.lang.String[] args
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   66     0       this  Ljdk/tools/jlink/internal/JlinkTask;
            0   66     1       args  [Ljava/lang/String;
            5   44     2  remaining  Ljava/util/List<Ljava/lang/String;>;
           29   35     3      jmods  Ljava/nio/file/Path;
           36   44     3     config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
           45   50     2          e  Ljava/lang/Exception;
           51   58     2          e  Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
           59   63     2          x  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    13      44  Class jdk.tools.jlink.plugin.PluginException
          15    17      44  Class jdk.tools.jlink.plugin.PluginException
          19    21      44  Class jdk.tools.jlink.plugin.PluginException
          23    25      44  Class jdk.tools.jlink.plugin.PluginException
          27    42      44  Class jdk.tools.jlink.plugin.PluginException
           4    13      44  Class java.lang.IllegalArgumentException
          15    17      44  Class java.lang.IllegalArgumentException
          19    21      44  Class java.lang.IllegalArgumentException
          23    25      44  Class java.lang.IllegalArgumentException
          27    42      44  Class java.lang.IllegalArgumentException
           4    13      44  Class java.io.UncheckedIOException
          15    17      44  Class java.io.UncheckedIOException
          19    21      44  Class java.io.UncheckedIOException
          23    25      44  Class java.io.UncheckedIOException
          27    42      44  Class java.io.UncheckedIOException
           4    13      44  Class java.io.IOException
          15    17      44  Class java.io.IOException
          19    21      44  Class java.io.IOException
          23    25      44  Class java.io.IOException
          27    42      44  Class java.io.IOException
           4    13      44  Class java.lang.module.FindException
          15    17      44  Class java.lang.module.FindException
          19    21      44  Class java.lang.module.FindException
          23    25      44  Class java.lang.module.FindException
          27    42      44  Class java.lang.module.FindException
           4    13      44  Class java.lang.module.ResolutionException
          15    17      44  Class java.lang.module.ResolutionException
          19    21      44  Class java.lang.module.ResolutionException
          23    25      44  Class java.lang.module.ResolutionException
          27    42      44  Class java.lang.module.ResolutionException
           4    13      50  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          15    17      50  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          19    21      50  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          23    25      50  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          27    42      50  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
           4    13      58  Class java.lang.Throwable
          15    17      58  Class java.lang.Throwable
          19    21      58  Class java.lang.Throwable
          23    25      58  Class java.lang.Throwable
          27    42      58  Class java.lang.Throwable
           4    13      63  any
          15    17      63  any
          19    21      63  any
          23    25      63  any
          27    42      63  any
          44    48      63  any
          50    56      63  any
          58    61      63  any
    MethodParameters:
      Name  Flags
      args  

  public static void createImage(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, jdk.tools.jlink.internal.Jlink$PluginsConfiguration);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        start local 1 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration plugins
         0: .line 310
            aload 0 /* config */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 311
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.getOutput:()Ljava/nio/file/Path;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 312
            aload 1 /* plugins */
            ifnonnull 3
            new jdk.tools.jlink.internal.Jlink$PluginsConfiguration
            dup
            invokespecial jdk.tools.jlink.internal.Jlink$PluginsConfiguration.<init>:()V
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* plugins */
      StackMap locals:
      StackMap stack: jdk.tools.jlink.internal.Jlink$PluginsConfiguration
         4: astore 1 /* plugins */
         5: .line 316
            aload 0 /* config */
         6: .line 317
            aconst_null
         7: .line 318
            iconst_1
         8: .line 319
            iconst_0
         9: .line 320
            iconst_0
        10: .line 321
            aconst_null
        11: .line 316
            invokestatic jdk.tools.jlink.internal.JlinkTask.createImageProvider:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/nio/file/Path;ZZZLjava/io/PrintWriter;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
        12: .line 315
            astore 2 /* imageProvider */
        start local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        13: .line 324
            aload 1 /* plugins */
            invokestatic jdk.tools.jlink.internal.ImagePluginConfiguration.parseConfiguration:(Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljdk/tools/jlink/internal/ImagePluginStack;
            astore 3 /* stack */
        start local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        14: .line 327
            aload 3 /* stack */
            aload 2 /* imageProvider */
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
        15: .line 328
            return
        end local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        end local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        end local 1 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration plugins
        end local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0         config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   16     1        plugins  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
           13   16     2  imageProvider  Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
           14   16     3          stack  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      config   
      plugins  

  public static void postProcessImage(jdk.tools.jlink.internal.ExecutableImage, java.util.List<jdk.tools.jlink.plugin.Plugin>);
    descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.ExecutableImage image
        start local 1 // java.util.List postProcessorPlugins
         0: .line 335
            aload 0 /* image */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 336
            aload 1 /* postProcessorPlugins */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 337
            new jdk.tools.jlink.internal.Jlink$PluginsConfiguration
            dup
            aload 1 /* postProcessorPlugins */
            invokespecial jdk.tools.jlink.internal.Jlink$PluginsConfiguration.<init>:(Ljava/util/List;)V
            astore 2 /* config */
        start local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
         3: .line 339
            aload 2 /* config */
            invokestatic jdk.tools.jlink.internal.ImagePluginConfiguration.parseConfiguration:(Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljdk/tools/jlink/internal/ImagePluginStack;
         4: .line 338
            astore 3 /* stack */
        start local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
         5: .line 341
            aload 3 /* stack */
            aload 0 /* image */
            invokedynamic retrieve(Ljdk/tools/jlink/internal/ExecutableImage;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
              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:
                  (Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage;
                  jdk/tools/jlink/internal/JlinkTask.lambda$17(Ljdk/tools/jlink/internal/ExecutableImage;Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage; (6)
                  (Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage;
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
         6: .line 342
            return
        end local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        end local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
        end local 1 // java.util.List postProcessorPlugins
        end local 0 // jdk.tools.jlink.internal.ExecutableImage image
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                 image  Ljdk/tools/jlink/internal/ExecutableImage;
            0    7     1  postProcessorPlugins  Ljava/util/List<Ljdk/tools/jlink/plugin/Plugin;>;
            3    7     2                config  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            5    7     3                 stack  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.lang.Exception
    Signature: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List<Ljdk/tools/jlink/plugin/Plugin;>;)V
    MethodParameters:
                      Name  Flags
      image                 
      postProcessorPlugins  

  private void postProcessOnly(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.nio.file.Path existingImage
         0: .line 345
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aconst_null
            aconst_null
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getPluginsConfig:(Ljava/nio/file/Path;Ljava/util/Map;)Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            astore 2 /* config */
        start local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
         1: .line 346
            aload 1 /* existingImage */
            invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.getExecutableImage:(Ljava/nio/file/Path;)Ljdk/tools/jlink/internal/ExecutableImage;
            astore 3 /* img */
        start local 3 // jdk.tools.jlink.internal.ExecutableImage img
         2: .line 347
            aload 3 /* img */
            ifnonnull 4
         3: .line 348
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.existing.image.invalid"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         4: .line 350
      StackMap locals: jdk.tools.jlink.internal.Jlink$PluginsConfiguration jdk.tools.jlink.internal.ExecutableImage
      StackMap stack:
            aload 3 /* img */
            aload 2 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$PluginsConfiguration.getPlugins:()Ljava/util/List;
            invokestatic jdk.tools.jlink.internal.JlinkTask.postProcessImage:(Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List;)V
         5: .line 351
            return
        end local 3 // jdk.tools.jlink.internal.ExecutableImage img
        end local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
        end local 1 // java.nio.file.Path existingImage
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Ljdk/tools/jlink/internal/JlinkTask;
            0    6     1  existingImage  Ljava/nio/file/Path;
            1    6     2         config  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            2    6     3            img  Ljdk/tools/jlink/internal/ExecutableImage;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
               Name  Flags
      existingImage  

  private jdk.tools.jlink.internal.Jlink$JlinkConfiguration initJlinkConfig();
    descriptor: ()Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 356
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* roots */
        start local 1 // java.util.Set roots
         1: .line 357
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.addMods:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* mod */
        start local 2 // java.lang.String mod
         3: .line 358
            aload 2 /* mod */
            ldc "ALL-MODULE-PATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         4: .line 359
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            invokestatic java.util.Set.of:()Ljava/util/Set;
            invokestatic jdk.tools.jlink.internal.JlinkTask.newModuleFinder:(Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 4 /* finder */
        start local 4 // java.lang.module.ModuleFinder finder
         5: .line 361
            aload 4 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
         6: .line 362
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         7: .line 363
            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;
                  java/lang/module/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 364
            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;
                  java/lang/module/ModuleDescriptor.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         9: .line 365
            aload 1 /* roots */
            invokedynamic accept(Ljava/util/Set;)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/internal/JlinkTask.lambda$20(Ljava/util/Set;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 4 // java.lang.module.ModuleFinder finder
        10: .line 366
            goto 12
        11: .line 367
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set java.lang.String java.util.Iterator
      StackMap stack:
            aload 1 /* roots */
            aload 2 /* mod */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String mod
        12: .line 357
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 371
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            aload 1 /* roots */
            invokestatic jdk.tools.jlink.internal.JlinkTask.newModuleFinder:(Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 2 /* finder */
        start local 2 // java.lang.module.ModuleFinder finder
        14: .line 372
            aload 2 /* finder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 19
        15: .line 373
            invokestatic jdk.tools.jlink.internal.JlinkTask.getDefaultModulePath:()Ljava/nio/file/Path;
            astore 3 /* defModPath */
        start local 3 // java.nio.file.Path defModPath
        16: .line 374
            aload 3 /* defModPath */
            ifnull 18
        17: .line 375
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 3 /* defModPath */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 377
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set java.lang.module.ModuleFinder java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            aload 1 /* roots */
            invokestatic jdk.tools.jlink.internal.JlinkTask.newModuleFinder:(Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 2 /* finder */
        end local 3 // java.nio.file.Path defModPath
        19: .line 380
      StackMap locals:
      StackMap stack:
            new jdk.tools.jlink.internal.Jlink$JlinkConfiguration
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
        20: .line 381
            aload 1 /* roots */
        21: .line 382
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.endian:Ljava/nio/ByteOrder;
        22: .line 383
            aload 2 /* finder */
        23: .line 380
            invokespecial jdk.tools.jlink.internal.Jlink$JlinkConfiguration.<init>:(Ljava/nio/file/Path;Ljava/util/Set;Ljava/nio/ByteOrder;Ljava/lang/module/ModuleFinder;)V
            areturn
        end local 2 // java.lang.module.ModuleFinder finder
        end local 1 // java.util.Set roots
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Ljdk/tools/jlink/internal/JlinkTask;
            1   24     1       roots  Ljava/util/Set<Ljava/lang/String;>;
            3   12     2         mod  Ljava/lang/String;
            5   10     4      finder  Ljava/lang/module/ModuleFinder;
           14   24     2      finder  Ljava/lang/module/ModuleFinder;
           16   19     3  defModPath  Ljava/nio/file/Path;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private void createImage(jdk.tools.jlink.internal.Jlink$JlinkConfiguration);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
         0: .line 387
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
            ifnonnull 2
         1: .line 388
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.output.must.be.specified"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         2: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.addMods:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 6
         3: .line 391
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.mods.must.be.specified"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "--add-modules"
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         4: .line 392
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         5: .line 391
            athrow
         6: .line 396
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
         7: .line 397
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.packagedModulesPath:Ljava/nio/file/Path;
         8: .line 398
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.ignoreSigning:Z
         9: .line 399
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.bindServices:Z
        10: .line 400
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.verbose:Z
        11: .line 401
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
        12: .line 396
            invokestatic jdk.tools.jlink.internal.JlinkTask.createImageProvider:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/nio/file/Path;ZZZLjava/io/PrintWriter;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
            astore 2 /* imageProvider */
        start local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        13: .line 405
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.launchers:Ljava/util/Map;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getPluginsConfig:(Ljava/nio/file/Path;Ljava/util/Map;)Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
        14: .line 404
            invokestatic jdk.tools.jlink.internal.ImagePluginConfiguration.parseConfiguration:(Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljdk/tools/jlink/internal/ImagePluginStack;
            astore 3 /* stack */
        start local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        15: .line 408
            aload 3 /* stack */
            aload 2 /* imageProvider */
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
        16: .line 409
            return
        end local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        end local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        end local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Ljdk/tools/jlink/internal/JlinkTask;
            0   17     1         config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
           13   17     2  imageProvider  Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
           15   17     3          stack  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      config  

  public static java.nio.file.Path getDefaultModulePath();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 415
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "jmods"
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 0 /* jmods */
        start local 0 // java.nio.file.Path jmods
         1: .line 416
            aload 0 /* jmods */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 2
            aload 0 /* jmods */
            goto 3
      StackMap locals: java.nio.file.Path
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.nio.file.Path
         3: areturn
        end local 0 // java.nio.file.Path jmods
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    4     0  jmods  Ljava/nio/file/Path;

  public static java.lang.module.ModuleFinder newModuleFinder(java.util.List<java.nio.file.Path>, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // java.util.List paths
        start local 1 // java.util.Set limitMods
        start local 2 // java.util.Set roots
         0: .line 432
            aload 0 /* paths */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 433
            new java.lang.IllegalArgumentException
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.empty.module.path"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 436
      StackMap locals:
      StackMap stack:
            aload 0 /* paths */
            iconst_0
            anewarray java.nio.file.Path
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.nio.file.Path[]
            astore 3 /* entries */
        start local 3 // java.nio.file.Path[] entries
         3: .line 437
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            astore 4 /* version */
        start local 4 // java.lang.Runtime$Version version
         4: .line 438
            aload 4 /* version */
            iconst_1
            aload 3 /* entries */
            invokestatic jdk.internal.module.ModulePath.of:(Ljava/lang/Runtime$Version;Z[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            astore 5 /* finder */
        start local 5 // java.lang.module.ModuleFinder finder
         5: .line 440
            aload 5 /* finder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 16
         6: .line 443
            aload 5 /* finder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
         7: .line 444
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.version:()Ljava/util/Optional;
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  jdk/tools/jlink/internal/JlinkTask.lambda$21()Ljava/lang/IllegalArgumentException; (6)
                  ()Ljava/lang/IllegalArgumentException;
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Version
         8: .line 443
            astore 6 /* v */
        start local 6 // java.lang.module.ModuleDescriptor$Version v
         9: .line 449
            aload 6 /* v */
            invokevirtual java.lang.module.ModuleDescriptor$Version.toString:()Ljava/lang/String;
            invokestatic java.lang.Runtime$Version.parse:(Ljava/lang/String;)Ljava/lang/Runtime$Version;
            astore 4 /* version */
        10: .line 450
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.feature:()I
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.feature:()I
            if_icmpne 12
        11: .line 451
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.interim:()I
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.interim:()I
            if_icmpeq 16
        12: .line 455
      StackMap locals: java.util.List java.util.Set java.util.Set java.nio.file.Path[] java.lang.Runtime$Version java.lang.module.ModuleFinder java.lang.module.ModuleDescriptor$Version
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.jlink.version.mismatch"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 456
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.feature:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.interim:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        14: .line 457
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.feature:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.interim:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        15: .line 455
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.module.ModuleDescriptor$Version v
        16: .line 462
      StackMap locals:
      StackMap stack:
            aload 1 /* limitMods */
            ifnull 18
            aload 1 /* limitMods */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 18
        17: .line 463
            aload 5 /* finder */
            aload 1 /* limitMods */
            aload 2 /* roots */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            invokestatic jdk.tools.jlink.internal.JlinkTask.limitFinder:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 5 /* finder */
        18: .line 465
      StackMap locals:
      StackMap stack:
            aload 5 /* finder */
            areturn
        end local 5 // java.lang.module.ModuleFinder finder
        end local 4 // java.lang.Runtime$Version version
        end local 3 // java.nio.file.Path[] entries
        end local 2 // java.util.Set roots
        end local 1 // java.util.Set limitMods
        end local 0 // java.util.List paths
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0      paths  Ljava/util/List<Ljava/nio/file/Path;>;
            0   19     1  limitMods  Ljava/util/Set<Ljava/lang/String;>;
            0   19     2      roots  Ljava/util/Set<Ljava/lang/String;>;
            3   19     3    entries  [Ljava/nio/file/Path;
            4   19     4    version  Ljava/lang/Runtime$Version;
            5   19     5     finder  Ljava/lang/module/ModuleFinder;
            9   16     6          v  Ljava/lang/module/ModuleDescriptor$Version;
    Signature: (Ljava/util/List<Ljava/nio/file/Path;>;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/ModuleFinder;
    MethodParameters:
           Name  Flags
      paths      
      limitMods  
      roots      

  private static java.nio.file.Path toPathLocation(java.lang.module.ResolvedModule);
    descriptor: (Ljava/lang/module/ResolvedModule;)Ljava/nio/file/Path;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.module.ResolvedModule m
         0: .line 469
            aload 0 /* m */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            astore 1 /* ouri */
        start local 1 // java.util.Optional ouri
         1: .line 470
            aload 1 /* ouri */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 3
         2: .line 471
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* m */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not have a location"
            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
         3: .line 472
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 1 /* ouri */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.net.URI
            astore 2 /* uri */
        start local 2 // java.net.URI uri
         4: .line 473
            aload 2 /* uri */
            invokestatic java.nio.file.Paths.get:(Ljava/net/URI;)Ljava/nio/file/Path;
            areturn
        end local 2 // java.net.URI uri
        end local 1 // java.util.Optional ouri
        end local 0 // java.lang.module.ResolvedModule m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     m  Ljava/lang/module/ResolvedModule;
            1    5     1  ouri  Ljava/util/Optional<Ljava/net/URI;>;
            4    5     2   uri  Ljava/net/URI;
    MethodParameters:
      Name  Flags
      m     

  private static jdk.tools.jlink.internal.ImagePluginStack$ImageProvider createImageProvider(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, java.nio.file.Path, boolean, boolean, boolean, java.io.PrintWriter);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/nio/file/Path;ZZZLjava/io/PrintWriter;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        start local 1 // java.nio.file.Path retainModulesPath
        start local 2 // boolean ignoreSigning
        start local 3 // boolean bindService
        start local 4 // boolean verbose
        start local 5 // java.io.PrintWriter log
         0: .line 485
            iload 3 /* bindService */
            ifeq 1
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolveAndBind:()Ljava/lang/module/Configuration;
            goto 2
         1: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolve:()Ljava/lang/module/Configuration;
         2: .line 485
      StackMap locals:
      StackMap stack: java.lang.module.Configuration
            astore 6 /* cf */
        start local 6 // java.lang.module.Configuration cf
         3: .line 488
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         4: .line 489
            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;
                  java/lang/module/ResolvedModule.reference()Ljava/lang/module/ModuleReference; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/module/ModuleReference;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 490
            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/internal/JlinkTask.lambda$23(Ljava/lang/module/ModuleReference;)Z (6)
                  (Ljava/lang/module/ModuleReference;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         6: .line 491
            invokeinterface java.util.stream.Stream.findAny:()Ljava/util/Optional;
         7: .line 492
            invokedynamic accept()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/internal/JlinkTask.lambda$24(Ljava/lang/module/ModuleReference;)V (6)
                  (Ljava/lang/module/ModuleReference;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
         8: .line 498
            iload 4 /* verbose */
            ifeq 17
            aload 5 /* log */
            ifnull 17
         9: .line 500
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        10: .line 501
            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;
                  java/lang/module/ResolvedModule.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        11: .line 502
            aload 5 /* log */
            invokedynamic accept(Ljava/io/PrintWriter;)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/internal/JlinkTask.lambda$27(Ljava/io/PrintWriter;Ljava/lang/module/ResolvedModule;)V (6)
                  (Ljava/lang/module/ResolvedModule;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        12: .line 506
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        13: .line 507
            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;
                  java/lang/module/ResolvedModule.reference()Ljava/lang/module/ModuleReference; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/module/ModuleReference;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        14: .line 506
            astore 7 /* references */
        start local 7 // java.util.Set references
        15: .line 509
            ldc "%n%s:"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "providers.header"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
        16: .line 510
            aload 5 /* log */
            aload 8 /* msg */
            aload 7 /* references */
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;)V
        end local 8 // java.lang.String msg
        end local 7 // java.util.Set references
        17: .line 514
      StackMap locals: java.lang.module.Configuration
      StackMap stack:
            aload 5 /* log */
            ifnull 28
        18: .line 515
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
        19: .line 516
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        20: .line 517
            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;
                  java/lang/module/ResolvedModule.reference()Ljava/lang/module/ModuleReference; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/module/ModuleReference;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        21: .line 518
            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/internal/module/ModuleResolution.hasIncubatingWarning(Ljava/lang/module/ModuleReference;)Z (6)
                  (Ljava/lang/module/ModuleReference;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        22: .line 519
            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;
                  java/lang/module/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        23: .line 520
            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;
                  java/lang/module/ModuleDescriptor.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        24: .line 521
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
        25: .line 515
            astore 7 /* im */
        start local 7 // java.lang.String im
        26: .line 523
            ldc ""
            aload 7 /* im */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
        27: .line 524
            aload 5 /* log */
            new java.lang.StringBuilder
            dup
            ldc "WARNING: Using incubator modules: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* im */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 7 // java.lang.String im
        28: .line 527
      StackMap locals:
      StackMap stack:
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        29: .line 528
            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;
                  java/lang/module/ResolvedModule.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/String;
            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/internal/JlinkTask.toPathLocation(Ljava/lang/module/ResolvedModule;)Ljava/nio/file/Path; (6)
                  (Ljava/lang/module/ResolvedModule;)Ljava/nio/file/Path;
            invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
        30: .line 527
            astore 7 /* mods */
        start local 7 // java.util.Map mods
        31: .line 529
            new jdk.tools.jlink.internal.JlinkTask$ImageHelper
            dup
            aload 6 /* cf */
            aload 7 /* mods */
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.getByteOrder:()Ljava/nio/ByteOrder;
            aload 1 /* retainModulesPath */
            iload 2 /* ignoreSigning */
            invokespecial jdk.tools.jlink.internal.JlinkTask$ImageHelper.<init>:(Ljava/lang/module/Configuration;Ljava/util/Map;Ljava/nio/ByteOrder;Ljava/nio/file/Path;Z)V
            areturn
        end local 7 // java.util.Map mods
        end local 6 // java.lang.module.Configuration cf
        end local 5 // java.io.PrintWriter log
        end local 4 // boolean verbose
        end local 3 // boolean bindService
        end local 2 // boolean ignoreSigning
        end local 1 // java.nio.file.Path retainModulesPath
        end local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0             config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   32     1  retainModulesPath  Ljava/nio/file/Path;
            0   32     2      ignoreSigning  Z
            0   32     3        bindService  Z
            0   32     4            verbose  Z
            0   32     5                log  Ljava/io/PrintWriter;
            3   32     6                 cf  Ljava/lang/module/Configuration;
           15   17     7         references  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           16   17     8                msg  Ljava/lang/String;
           26   28     7                 im  Ljava/lang/String;
           31   32     7               mods  Ljava/util/Map<Ljava/lang/String;Ljava/nio/file/Path;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      config             
      retainModulesPath  
      ignoreSigning      
      bindService        
      verbose            
      log                

  public static java.lang.module.ModuleFinder limitFinder(java.lang.module.ModuleFinder, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.module.ModuleFinder finder
        start local 1 // java.util.Set roots
        start local 2 // java.util.Set otherMods
         0: .line 541
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
         1: .line 542
            aload 0 /* finder */
            iconst_0
            anewarray java.nio.file.Path
         2: .line 543
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
         3: .line 544
            aload 1 /* roots */
         4: .line 542
            invokevirtual java.lang.module.Configuration.resolve:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;Ljava/util/Collection;)Ljava/lang/module/Configuration;
         5: .line 541
            astore 3 /* cf */
        start local 3 // java.lang.module.Configuration cf
         6: .line 547
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* map */
        start local 4 // java.util.Map map
         7: .line 548
            aload 3 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            aload 4 /* map */
            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/internal/JlinkTask.lambda$35(Ljava/util/Map;Ljava/lang/module/ResolvedModule;)V (6)
                  (Ljava/lang/module/ResolvedModule;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         8: .line 554
            aload 2 /* otherMods */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 555
            aload 0 /* finder */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/lang/module/ModuleFinder;)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;
                  java/lang/module/ModuleFinder.find(Ljava/lang/String;)Ljava/util/Optional; (9 itf)
                  (Ljava/lang/String;)Ljava/util/Optional;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        10: .line 556
            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;
                  java/util/Optional.stream()Ljava/util/stream/Stream; (5)
                  (Ljava/util/Optional;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        11: .line 557
            aload 4 /* map */
            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/internal/JlinkTask.lambda$38(Ljava/util/Map;Ljava/lang/module/ModuleReference;)V (6)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        12: .line 560
            new java.util.HashSet
            dup
            aload 4 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 6 /* mrefs */
        start local 6 // java.util.Set mrefs
        13: .line 562
            new jdk.tools.jlink.internal.JlinkTask$1
            dup
            aload 4 /* map */
            aload 6 /* mrefs */
            invokespecial jdk.tools.jlink.internal.JlinkTask$1.<init>:(Ljava/util/Map;Ljava/util/Set;)V
            areturn
        end local 6 // java.util.Set mrefs
        end local 4 // java.util.Map map
        end local 3 // java.lang.module.Configuration cf
        end local 2 // java.util.Set otherMods
        end local 1 // java.util.Set roots
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0     finder  Ljava/lang/module/ModuleFinder;
            0   14     1      roots  Ljava/util/Set<Ljava/lang/String;>;
            0   14     2  otherMods  Ljava/util/Set<Ljava/lang/String;>;
            6   14     3         cf  Ljava/lang/module/Configuration;
            7   14     4        map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
           13   14     6      mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
    Signature: (Ljava/lang/module/ModuleFinder;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/ModuleFinder;
    MethodParameters:
           Name  Flags
      finder     
      roots      
      otherMods  

  private static java.util.Map<java.lang.String, java.util.Set<java.lang.String>> uses(java.util.Set<java.lang.module.ModuleReference>);
    descriptor: (Ljava/util/Set;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Set modules
         0: .line 582
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* services */
        start local 1 // java.util.Map services
         1: .line 583
            aload 0 /* modules */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 584
            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;
                  java/lang/module/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 585
            aload 1 /* services */
            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/internal/JlinkTask.lambda$40(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         4: .line 592
            aload 1 /* services */
            areturn
        end local 1 // java.util.Map services
        end local 0 // java.util.Set modules
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   modules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
            1    5     1  services  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleReference;>;)Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    MethodParameters:
         Name  Flags
      modules  

  private static void printProviders(java.io.PrintWriter, java.lang.String, java.util.Set<java.lang.module.ModuleReference>);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.PrintWriter log
        start local 1 // java.lang.String header
        start local 2 // java.util.Set modules
         0: .line 598
            aload 0 /* log */
            aload 1 /* header */
            aload 2 /* modules */
            aload 2 /* modules */
            invokestatic jdk.tools.jlink.internal.JlinkTask.uses:(Ljava/util/Set;)Ljava/util/Map;
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
         1: .line 599
            return
        end local 2 // java.util.Set modules
        end local 1 // java.lang.String header
        end local 0 // java.io.PrintWriter log
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0      log  Ljava/io/PrintWriter;
            0    2     1   header  Ljava/lang/String;
            0    2     2  modules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
    Signature: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleReference;>;)V
    MethodParameters:
         Name  Flags
      log      
      header   
      modules  

  private static void printProviders(java.io.PrintWriter, java.lang.String, java.util.Set<java.lang.module.ModuleReference>, java.util.Map<java.lang.String, java.util.Set<java.lang.String>>);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.io.PrintWriter log
        start local 1 // java.lang.String header
        start local 2 // java.util.Set modules
        start local 3 // java.util.Map serviceToUses
         0: .line 612
            aload 2 /* modules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 2
         1: .line 613
            return
         2: .line 616
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* providers */
        start local 4 // java.util.Map providers
         3: .line 617
            aload 2 /* modules */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         4: .line 618
            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;
                  java/lang/module/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 619
            aload 3 /* serviceToUses */
            aload 4 /* providers */
            invokedynamic accept(Ljava/util/Map;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/internal/JlinkTask.lambda$46(Ljava/util/Map;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         6: .line 626
            aload 4 /* providers */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 8
         7: .line 627
            aload 0 /* log */
            aload 1 /* header */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         8: .line 632
      StackMap locals: java.util.Map
      StackMap stack:
            aload 4 /* providers */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 633
            invokestatic java.util.Map$Entry.comparingByKey:()Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        10: .line 634
            aload 3 /* serviceToUses */
            aload 0 /* log */
            invokedynamic accept(Ljava/util/Map;Ljava/io/PrintWriter;)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/internal/JlinkTask.lambda$50(Ljava/util/Map;Ljava/io/PrintWriter;Ljava/util/Map$Entry;)V (6)
                  (Ljava/util/Map$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        11: .line 655
            return
        end local 4 // java.util.Map providers
        end local 3 // java.util.Map serviceToUses
        end local 2 // java.util.Set modules
        end local 1 // java.lang.String header
        end local 0 // java.io.PrintWriter log
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0            log  Ljava/io/PrintWriter;
            0   12     1         header  Ljava/lang/String;
            0   12     2        modules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
            0   12     3  serviceToUses  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            3   12     4      providers  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;>;
    Signature: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleReference;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;)V
    MethodParameters:
               Name  Flags
      log            
      header         
      modules        
      serviceToUses  

  private void suggestProviders(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, java.util.List<java.lang.String>);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        start local 2 // java.util.List args
         0: .line 660
            aload 2 /* args */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 9
         1: .line 661
            aload 2 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 662
            aload 2 /* args */
            goto 4
         3: .line 663
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aload 2 /* args */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
         4: .line 661
      StackMap locals:
      StackMap stack: java.util.List
            astore 3 /* arguments */
        start local 3 // java.util.List arguments
         5: .line 664
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.invalid.arg.for.option"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 665
            ldc "--suggest-providers"
            aastore
            dup
            iconst_1
         7: .line 666
            aload 3 /* arguments */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
         8: .line 664
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
        end local 3 // java.util.List arguments
         9: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.bindServices:Z
            ifeq 12
        10: .line 670
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "no.suggested.providers"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        11: .line 671
            return
        12: .line 674
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.finder:()Ljava/lang/module/ModuleFinder;
            astore 3 /* finder */
        start local 3 // java.lang.module.ModuleFinder finder
        13: .line 675
            aload 2 /* args */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 21
        14: .line 677
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 4 /* mrefs */
        start local 4 // java.util.Set mrefs
        15: .line 679
            aload 4 /* mrefs */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        16: .line 680
            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/internal/JlinkTask.lambda$55(Ljava/lang/module/ModuleReference;)Ljava/lang/String; (6)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        17: .line 681
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/JlinkTask;)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/internal/JlinkTask.lambda$56(Ljava/lang/module/ModuleReference;)V (7)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        18: .line 689
            ldc "%n%s:"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "suggested.providers.header"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
        19: .line 690
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            aload 5 /* msg */
            aload 4 /* mrefs */
            aload 4 /* mrefs */
            invokestatic jdk.tools.jlink.internal.JlinkTask.uses:(Ljava/util/Set;)Ljava/util/Map;
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
        end local 5 // java.lang.String msg
        end local 4 // java.util.Set mrefs
        20: .line 692
            goto 42
        21: .line 694
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 2 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
        22: .line 695
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        23: .line 694
            astore 4 /* names */
        start local 4 // java.util.Set names
        24: .line 697
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        25: .line 698
            aload 4 /* names */
            invokedynamic test(Ljava/util/Set;)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/internal/JlinkTask.lambda$58(Ljava/util/Set;Ljava/lang/module/ModuleReference;)Z (6)
                  (Ljava/lang/module/ModuleReference;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        26: .line 701
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        27: .line 697
            astore 5 /* mrefs */
        start local 5 // java.util.Set mrefs
        28: .line 704
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* uses */
        start local 6 // java.util.Map uses
        29: .line 705
            aload 4 /* names */
            aload 6 /* uses */
            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/internal/JlinkTask.lambda$61(Ljava/util/Map;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        30: .line 706
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        31: .line 707
            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;
                  java/lang/module/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        32: .line 708
            aload 4 /* names */
            aload 6 /* uses */
            invokedynamic accept(Ljava/util/Set;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/internal/JlinkTask.lambda$64(Ljava/util/Set;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        33: .line 713
            aload 5 /* mrefs */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        34: .line 714
            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/internal/JlinkTask.lambda$67(Ljava/lang/module/ModuleReference;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/module/ModuleReference;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        35: .line 716
            aload 4 /* names */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)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
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        36: .line 717
            aload 4 /* names */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 40
        37: .line 718
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "warn.provider.notfound"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        38: .line 719
            aload 4 /* names */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            ldc ","
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
        39: .line 718
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        40: .line 722
      StackMap locals: java.util.Set java.util.Set java.util.Map
      StackMap stack:
            ldc "%n%s:"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "suggested.providers.header"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
        41: .line 723
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            aload 8 /* msg */
            aload 5 /* mrefs */
            aload 6 /* uses */
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
        end local 8 // java.lang.String msg
        end local 6 // java.util.Map uses
        end local 5 // java.util.Set mrefs
        end local 4 // java.util.Set names
        42: .line 725
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.module.ModuleFinder finder
        end local 2 // java.util.List args
        end local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   43     0       this  Ljdk/tools/jlink/internal/JlinkTask;
            0   43     1     config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   43     2       args  Ljava/util/List<Ljava/lang/String;>;
            5    9     3  arguments  Ljava/util/List<Ljava/lang/String;>;
           13   43     3     finder  Ljava/lang/module/ModuleFinder;
           15   20     4      mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           19   20     5        msg  Ljava/lang/String;
           24   42     4      names  Ljava/util/Set<Ljava/lang/String;>;
           28   42     5      mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           29   42     6       uses  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           41   42     8        msg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs
    Signature: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      config  
      args    

  private java.lang.String getSaveOpts();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 728
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 729
            aload 1 /* sb */
            bipush 35
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 730
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.getInputCommand:()[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* c */
        start local 2 // java.lang.String c
         4: .line 731
            aload 1 /* sb */
            aload 2 /* c */
            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 2 // java.lang.String c
         5: .line 730
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 734
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            1    8     1    sb  Ljava/lang/StringBuilder;
            4    5     2     c  Ljava/lang/String;

  private static java.lang.String getBomHeader();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 738
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 0 /* sb */
        start local 0 // java.lang.StringBuilder sb
         1: .line 739
            aload 0 /* sb */
            ldc "#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 740
            aload 0 /* sb */
            ldc "#Please DO NOT Modify this file"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 741
            aload 0 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0    sb  Ljava/lang/StringBuilder;

  private java.lang.String genBOMContent();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 745
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 746
            aload 1 /* sb */
            invokestatic jdk.tools.jlink.internal.JlinkTask.getBomHeader:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 747
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* command */
        start local 2 // java.lang.StringBuilder command
         3: .line 748
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.getInputCommand:()[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.StringBuilder java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* c */
        start local 3 // java.lang.String c
         5: .line 749
            aload 2 /* command */
            aload 3 /* c */
            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 3 // java.lang.String c
         6: .line 748
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 4
         8: .line 751
            aload 1 /* sb */
            ldc "command"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* command */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
         9: .line 752
            aload 1 /* sb */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 754
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder command
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljdk/tools/jlink/internal/JlinkTask;
            1   11     1       sb  Ljava/lang/StringBuilder;
            3   11     2  command  Ljava/lang/StringBuilder;
            5    6     3        c  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  private static java.lang.String genBOMContent(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, jdk.tools.jlink.internal.Jlink$PluginsConfiguration);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        start local 1 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration plugins
         0: .line 760
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 761
            aload 2 /* sb */
            invokestatic jdk.tools.jlink.internal.JlinkTask.getBomHeader:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 762
            aload 2 /* sb */
            aload 0 /* config */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         3: .line 763
            aload 2 /* sb */
            aload 1 /* plugins */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         4: .line 764
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration plugins
        end local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0   config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0    5     1  plugins  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            1    5     2       sb  Ljava/lang/StringBuilder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      config   
      plugins  

  private static void lambda$0(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 88
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.help:Z
         1: .line 89
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$1(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 93
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 94
            aload 2 /* arg */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* dirs */
        start local 3 // java.lang.String[] dirs
         2: .line 96
            aload 3 /* dirs */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            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/internal/JlinkTask.lambda$70(Ljava/lang/String;)Ljava/nio/file/Path; (6)
                  (Ljava/lang/String;)Ljava/nio/file/Path;
         3: .line 97
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 98
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            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
                  java/util/List.add(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 3 // java.lang.String[] dirs
         5: .line 99
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    6     1   opt  Ljava/lang/String;
            0    6     2   arg  Ljava/lang/String;
            2    5     3  dirs  [Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$4(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 103
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         1: .line 104
            aload 2 /* arg */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* mn */
        start local 3 // java.lang.String mn
         3: .line 105
            aload 3 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         4: .line 106
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.mods.must.be.specified"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 107
            ldc "--limit-modules"
            aastore
         6: .line 106
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         7: .line 109
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            aload 3 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String mn
         8: .line 104
            iinc 4 1
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 2
        10: .line 111
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0   11     1   opt  Ljava/lang/String;
            0   11     2   arg  Ljava/lang/String;
            3    8     3    mn  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$5(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 113
            aload 2 /* arg */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* mn */
        start local 3 // java.lang.String mn
         2: .line 114
            aload 3 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         3: .line 115
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.mods.must.be.specified"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 116
            ldc "--add-modules"
            aastore
         5: .line 115
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         6: .line 118
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.addMods:Ljava/util/Set;
            aload 3 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String mn
         7: .line 113
            iinc 4 1
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 1
         9: .line 120
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0   10     1   opt  Ljava/lang/String;
            0   10     2   arg  Ljava/lang/String;
            2    7     3    mn  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$6(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 122
            aload 2 /* arg */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         1: .line 123
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            aload 3 /* path */
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
        end local 3 // java.nio.file.Path path
         2: .line 124
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    3     1   opt  Ljava/lang/String;
            0    3     2   arg  Ljava/lang/String;
            1    2     3  path  Ljava/nio/file/Path;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$7(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 126
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.bindServices:Z
         1: .line 127
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$8(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 129
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.suggestProviders:Z
         1: .line 130
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$9(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 132
            aload 2 /* arg */
            ldc "="
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* values */
        start local 3 // java.lang.String[] values
         1: .line 134
            aload 3 /* values */
            arraylength
            iconst_2
            if_icmpne 2
            aload 3 /* values */
            iconst_0
            aaload
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 2
            aload 3 /* values */
            iconst_1
            aaload
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 3
         2: .line 135
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.launcher.value.format"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         3: .line 137
      StackMap locals:
      StackMap stack:
            aload 3 /* values */
            iconst_0
            aaload
            astore 4 /* commandName */
        start local 4 // java.lang.String commandName
         4: .line 138
            aload 3 /* values */
            iconst_1
            aaload
            astore 5 /* moduleAndMain */
        start local 5 // java.lang.String moduleAndMain
         5: .line 139
            aload 5 /* moduleAndMain */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 6 /* idx */
        start local 6 // int idx
         6: .line 140
            iload 6 /* idx */
            iconst_m1
            if_icmpeq 11
         7: .line 141
            aload 5 /* moduleAndMain */
            iconst_0
            iload 6 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 9
         8: .line 142
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.launcher.module.name.empty"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         9: .line 145
      StackMap locals: java.lang.String java.lang.String int
      StackMap stack:
            aload 5 /* moduleAndMain */
            iload 6 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 11
        10: .line 146
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.launcher.main.class.empty"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
        11: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.launchers:Ljava/util/Map;
            aload 4 /* commandName */
            aload 5 /* moduleAndMain */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // int idx
        end local 5 // java.lang.String moduleAndMain
        end local 4 // java.lang.String commandName
        end local 3 // java.lang.String[] values
        12: .line 151
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           task  Ljdk/tools/jlink/internal/JlinkTask;
            0   13     1            opt  Ljava/lang/String;
            0   13     2            arg  Ljava/lang/String;
            1   12     3         values  [Ljava/lang/String;
            4   12     4    commandName  Ljava/lang/String;
            5   12     5  moduleAndMain  Ljava/lang/String;
            6   12     6            idx  I
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$10(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 153
            ldc "little"
            aload 2 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 154
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.endian:Ljava/nio/ByteOrder;
         2: .line 155
            goto 7
      StackMap locals:
      StackMap stack:
         3: ldc "big"
            aload 2 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 156
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.endian:Ljava/nio/ByteOrder;
         5: .line 157
            goto 7
         6: .line 158
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.unknown.byte.order"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         7: .line 160
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    8     1   opt  Ljava/lang/String;
            0    8     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$11(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 162
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.verbose:Z
         1: .line 163
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$12(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 165
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.version:Z
         1: .line 166
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$13(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 168
            aload 2 /* arg */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         1: .line 169
            aload 3 /* path */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 3
         2: .line 170
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.dir.exists"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* path */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         3: .line 172
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            aload 3 /* path */
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.packagedModulesPath:Ljava/nio/file/Path;
        end local 3 // java.nio.file.Path path
         4: .line 173
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    5     1   opt  Ljava/lang/String;
            0    5     2   arg  Ljava/lang/String;
            1    4     3  path  Ljava/nio/file/Path;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$14(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 175
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            aload 2 /* arg */
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.saveoptsfile:Ljava/lang/String;
         1: .line 176
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$15(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 178
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.fullVersion:Z
         1: .line 179
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$16(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 181
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.ignoreSigning:Z
         1: .line 182
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static jdk.tools.jlink.internal.ExecutableImage lambda$17(jdk.tools.jlink.internal.ExecutableImage, jdk.tools.jlink.internal.ImagePluginStack);
    descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 1 // jdk.tools.jlink.internal.ImagePluginStack stack1
         0: .line 341
            aload 0
            areturn
        end local 1 // jdk.tools.jlink.internal.ImagePluginStack stack1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     1  stack1  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.io.IOException

  private static void lambda$20(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 365
            aload 0
            aload 1 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static java.lang.IllegalArgumentException lambda$21();
    descriptor: ()Ljava/lang/IllegalArgumentException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 445
            new java.lang.IllegalArgumentException
            dup
            ldc "No version in java.base descriptor"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$23(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 490
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ireturn
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$24(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 493
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            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;
                  java/net/URI.toString()Ljava/lang/String; (5)
                  (Ljava/net/URI;)Ljava/lang/String;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            ldc "<unknown>"
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* loc */
        start local 1 // java.lang.String loc
         1: .line 494
            new java.lang.IllegalArgumentException
            dup
         2: .line 495
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.automatic.module"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* loc */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 494
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String loc
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  mref  Ljava/lang/module/ModuleReference;
            1    4     1   loc  Ljava/lang/String;

  private static void lambda$27(java.io.PrintWriter, java.lang.module.ResolvedModule);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/module/ResolvedModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 1 // java.lang.module.ResolvedModule rm
         0: .line 502
            aload 0
            ldc "%s %s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 503
            aload 1 /* rm */
            invokevirtual java.lang.module.ResolvedModule.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* rm */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            aastore
         2: .line 502
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
         3: .line 503
            return
        end local 1 // java.lang.module.ResolvedModule rm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1    rm  Ljava/lang/module/ResolvedModule;

  private static void lambda$35(java.util.Map, java.lang.module.ResolvedModule);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ResolvedModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 1 // java.lang.module.ResolvedModule m
         0: .line 549
            aload 1 /* m */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 2 /* mref */
        start local 2 // java.lang.module.ModuleReference mref
         1: .line 550
            aload 0
            aload 2 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aload 2 /* mref */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.lang.module.ModuleReference mref
         2: .line 551
            return
        end local 1 // java.lang.module.ResolvedModule m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     m  Ljava/lang/module/ResolvedModule;
            1    2     2  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$38(java.util.Map, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 557
            aload 0
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aload 1 /* mref */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$40(java.util.Map, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor md
         0: .line 587
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            aload 0
            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/internal/JlinkTask.lambda$41(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         1: .line 589
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            aload 0
            aload 1 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)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/internal/JlinkTask.lambda$43(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         2: .line 591
            return
        end local 1 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    md  Ljava/lang/module/ModuleDescriptor;

  private static void lambda$46(java.util.Map, java.util.Map, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.module.ModuleDescriptor md
         0: .line 620
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 621
            aload 0
            invokedynamic test(Ljava/util/Map;)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/internal/JlinkTask.lambda$47(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 622
            aload 1
            aload 2 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)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/internal/JlinkTask.lambda$48(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 624
            return
        end local 2 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     2    md  Ljava/lang/module/ModuleDescriptor;

  private static void lambda$50(java.util.Map, java.io.PrintWriter, java.util.Map$Entry);
    descriptor: (Ljava/util/Map;Ljava/io/PrintWriter;Ljava/util/Map$Entry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=3
        start local 2 // java.util.Map$Entry e
         0: .line 635
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* service */
        start local 3 // java.lang.String service
         1: .line 636
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 637
            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;
                  java/lang/module/ModuleDescriptor.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
         3: .line 638
            aload 3 /* service */
            aload 0
            aload 1
            invokedynamic accept(Ljava/lang/String;Ljava/util/Map;Ljava/io/PrintWriter;)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/internal/JlinkTask.lambda$52(Ljava/lang/String;Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 3 // java.lang.String service
         4: .line 654
            return
        end local 2 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     2        e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;>;
            1    4     3  service  Ljava/lang/String;

  private static java.lang.String lambda$55(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 680
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  mref  Ljava/lang/module/ModuleReference;

  private void lambda$56(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 682
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 2 /* md */
        start local 2 // java.lang.module.ModuleDescriptor md
         1: .line 683
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            ldc "%s %s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 684
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            aastore
         3: .line 683
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
         4: .line 685
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         5: .line 686
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/JlinkTask;)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/internal/JlinkTask.lambda$57(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 2 // java.lang.module.ModuleDescriptor md
         6: .line 687
            return
        end local 1 // java.lang.module.ModuleReference mref
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            0    7     1  mref  Ljava/lang/module/ModuleReference;
            1    6     2    md  Ljava/lang/module/ModuleDescriptor;

  private static boolean lambda$58(java.util.Set, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Set;Ljava/lang/module/ModuleReference;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 698
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 699
            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;
                  java/lang/module/ModuleDescriptor$Provides.service()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 700
            aload 0
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/util/Set;)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
                  java/util/Set.contains(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ireturn
        end local 1 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$61(java.util.Map, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.String s
         0: .line 705
            aload 0
            aload 1 /* s */
            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/internal/JlinkTask.lambda$62(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            return
        end local 1 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     s  Ljava/lang/String;

  private static void lambda$64(java.util.Set, java.util.Map, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/util/Set;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.module.ModuleDescriptor md
         0: .line 708
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 709
            aload 0
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/util/Set;)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
                  java/util/Set.contains(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 710
            aload 1
            aload 2 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)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/internal/JlinkTask.lambda$66(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
            return
        end local 2 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2    md  Ljava/lang/module/ModuleDescriptor;

  private static java.util.stream.Stream lambda$67(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 714
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 715
            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;
                  java/lang/module/ModuleDescriptor$Provides.service()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  mref  Ljava/lang/module/ModuleReference;

  private static java.nio.file.Path lambda$70(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
        end local 0 // java.lang.String  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Ljava/lang/String;

  private static void lambda$41(java.util.Map, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 588
            aload 0
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            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/internal/JlinkTask.lambda$42(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$43(java.util.Map, java.lang.module.ModuleDescriptor, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.String s
         0: .line 589
            aload 0
            aload 2 /* s */
            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/internal/JlinkTask.lambda$44(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
         1: .line 590
            aload 1
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     2     s  Ljava/lang/String;

  private static boolean lambda$47(java.util.Map, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 621
            aload 0
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$48(java.util.Map, java.lang.module.ModuleDescriptor, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 622
            aload 0
            aload 2 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            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/internal/JlinkTask.lambda$49(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
         1: .line 623
            aload 1
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     2     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$52(java.lang.String, java.util.Map, java.io.PrintWriter, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // java.lang.module.ModuleDescriptor md
         0: .line 639
            aload 3 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 640
            aload 0
            invokedynamic test(Ljava/lang/String;)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/internal/JlinkTask.lambda$53(Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Provides;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 641
            aload 1
            aload 2
            aload 3 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;)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/internal/JlinkTask.lambda$54(Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 652
            return
        end local 3 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     3    md  Ljava/lang/module/ModuleDescriptor;

  private void lambda$57(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.lang.String s
         0: .line 686
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            ldc "    uses %s%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* s */
            aastore
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            return
        end local 1 // java.lang.String s
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            0    1     1     s  Ljava/lang/String;

  private static java.util.Set lambda$62(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String _k
         0: .line 705
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

  private static void lambda$66(java.util.Map, java.lang.module.ModuleDescriptor, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // java.lang.String s
         0: .line 710
            aload 0
            aload 2 /* s */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 1
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     s  Ljava/lang/String;

  private static java.util.Set lambda$42(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String _k
         0: .line 588
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

  private static java.util.Set lambda$44(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String _k
         0: .line 589
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

  private static java.util.Set lambda$49(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String _k
         0: .line 622
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

  private static boolean lambda$53(java.lang.String, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Provides;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 640
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            aload 0
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$54(java.util.Map, java.io.PrintWriter, java.lang.module.ModuleDescriptor, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=5, args_size=4
        start local 3 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 643
            aload 0
            aload 3 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 3
         1: .line 644
            ldc "not used by any observable module"
            astore 4 /* usedBy */
        start local 4 // java.lang.String usedBy
         2: .line 645
            goto 7
        end local 4 // java.lang.String usedBy
         3: .line 646
      StackMap locals:
      StackMap stack:
            aload 0
            aload 3 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         4: .line 647
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         5: .line 648
            ldc ","
            ldc "used by "
            ldc ""
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
         6: .line 646
            astore 4 /* usedBy */
        start local 4 // java.lang.String usedBy
         7: .line 650
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1
            ldc "  %s provides %s %s%n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 651
            aload 2
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 4 /* usedBy */
            aastore
         9: .line 650
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        end local 4 // java.lang.String usedBy
        10: .line 652
            return
        end local 3 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     3       p  Ljava/lang/module/ModuleDescriptor$Provides;
            2    3     4  usedBy  Ljava/lang/String;
            7   10     4  usedBy  Ljava/lang/String;
}
SourceFile: "JlinkTask.java"
NestMembers:
  jdk.tools.jlink.internal.JlinkTask$1  jdk.tools.jlink.internal.JlinkTask$ImageHelper  jdk.tools.jlink.internal.JlinkTask$OptionsValues
InnerClasses:
  public final Version = java.lang.Runtime$Version of java.lang.Runtime
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
  public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract ImageProvider = jdk.tools.jlink.internal.ImagePluginStack$ImageProvider of jdk.tools.jlink.internal.ImagePluginStack
  public final JlinkConfiguration = jdk.tools.jlink.internal.Jlink$JlinkConfiguration of jdk.tools.jlink.internal.Jlink
  public final PluginsConfiguration = jdk.tools.jlink.internal.Jlink$PluginsConfiguration of jdk.tools.jlink.internal.Jlink
  jdk.tools.jlink.internal.JlinkTask$1
  private ImageHelper = jdk.tools.jlink.internal.JlinkTask$ImageHelper of jdk.tools.jlink.internal.JlinkTask
  OptionsValues = jdk.tools.jlink.internal.JlinkTask$OptionsValues of jdk.tools.jlink.internal.JlinkTask
  public final BadArgs = jdk.tools.jlink.internal.TaskHelper$BadArgs of jdk.tools.jlink.internal.TaskHelper
  public Option = jdk.tools.jlink.internal.TaskHelper$Option of jdk.tools.jlink.internal.TaskHelper
  public abstract Processing = jdk.tools.jlink.internal.TaskHelper$Option$Processing of jdk.tools.jlink.internal.TaskHelper$Option
  public final OptionsHelper = jdk.tools.jlink.internal.TaskHelper$OptionsHelper of jdk.tools.jlink.internal.TaskHelper