public final class jdk.tools.jlink.internal.plugins.SystemModulesPlugin implements jdk.tools.jlink.plugin.Plugin
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.tools.jlink.internal.plugins.SystemModulesPlugin
  super_class: java.lang.Object
{
  private static final java.lang.String NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "system-modules"

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

  private static final java.lang.String SYSTEM_MODULES_MAP_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk/internal/module/SystemModulesMap"

  private static final java.lang.String SYSTEM_MODULES_CLASS_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk/internal/module/SystemModules$"

  private static final java.lang.String ALL_SYSTEM_MODULES_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk/internal/module/SystemModules$all"

  private static final java.lang.String DEFAULT_SYSTEM_MODULES_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk/internal/module/SystemModules$default"

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 100
            ldc Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.$assertionsDisabled:Z
         3: .line 103
            ldc "system-modules"
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getDescription:(Ljava/lang/String;)Ljava/lang/String;
         4: .line 102
            putstatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.DESCRIPTION:Ljava/lang/String;
         5: .line 111
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
         0: .line 115
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 116
            aload 0 /* this */
            iconst_1
            putfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin.enabled:Z
         2: .line 117
            return
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
         0: .line 121
            ldc "system-modules"
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
         0: .line 126
            getstatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.DESCRIPTION:Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;

  public java.util.Set<jdk.tools.jlink.plugin.Plugin$State> getState();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
         0: .line 131
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin.enabled:Z
            ifeq 1
            getstatic jdk.tools.jlink.plugin.Plugin$State.AUTO_ENABLED:Ljdk/tools/jlink/plugin/Plugin$State;
            getstatic jdk.tools.jlink.plugin.Plugin$State.FUNCTIONAL:Ljdk/tools/jlink/plugin/Plugin$State;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            goto 2
         1: .line 132
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.plugin.Plugin$State.DISABLED:Ljdk/tools/jlink/plugin/Plugin$State;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
         2: .line 131
      StackMap locals:
      StackMap stack: java.util.EnumSet
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
    Signature: ()Ljava/util/Set<Ljdk/tools/jlink/plugin/Plugin$State;>;

  public boolean hasArguments();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
         0: .line 137
            iconst_1
            ireturn
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;

  public java.lang.String getArgumentsDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
         0: .line 142
            ldc "system-modules"
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;

  public void configure(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // java.util.Map config
         0: .line 147
            aload 1 /* config */
            ldc "system-modules"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* arg */
        start local 2 // java.lang.String arg
         1: .line 148
            aload 2 /* arg */
            ifnull 3
         2: .line 149
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "system-modules: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 151
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 2 // java.lang.String arg
        end local 1 // java.util.Map config
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0    4     1  config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1    4     2     arg  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      config  

  public jdk.tools.jlink.plugin.ResourcePool transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljdk/tools/jlink/plugin/ResourcePool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 155
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin.enabled:Z
            ifne 2
         1: .line 156
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "system-modules was set"
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.transformModuleInfos:(Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/List;
            astore 3 /* moduleInfos */
        start local 3 // java.util.List moduleInfos
         3: .line 163
            aload 0 /* this */
            aload 3 /* moduleInfos */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.genSystemModulesClasses:(Ljava/util/List;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/Set;
            astore 4 /* generated */
        start local 4 // java.util.Set generated
         4: .line 166
            aload 1 /* in */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.entries:()Ljava/util/stream/Stream;
         5: .line 167
            aload 4 /* generated */
            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/plugins/SystemModulesPlugin.lambda$0(Ljava/util/Set;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         6: .line 169
            aload 2 /* out */
            invokedynamic accept(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)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/plugins/SystemModulesPlugin.lambda$1(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         7: .line 171
            aload 2 /* out */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
            areturn
        end local 4 // java.util.Set generated
        end local 3 // java.util.List moduleInfos
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0    8     1           in  Ljdk/tools/jlink/plugin/ResourcePool;
            0    8     2          out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            3    8     3  moduleInfos  Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
            4    8     4    generated  Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      in    
      out   

  java.util.List<jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo> transformModuleInfos(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 181
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* moduleInfos */
        start local 3 // java.util.List moduleInfos
         1: .line 184
            new jdk.tools.jlink.internal.ModuleSorter
            dup
            aload 1 /* in */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.moduleView:()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
            invokespecial jdk.tools.jlink.internal.ModuleSorter.<init>:(Ljdk/tools/jlink/plugin/ResourcePoolModuleView;)V
            invokevirtual jdk.tools.jlink.internal.ModuleSorter.sorted:()Ljava/util/stream/Stream;
            aload 3 /* moduleInfos */
            aload 2 /* out */
            invokedynamic accept(Ljava/util/List;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)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/plugins/SystemModulesPlugin.lambda$2(Ljava/util/List;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljdk/tools/jlink/plugin/ResourcePoolModule;)V (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolModule;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         2: .line 217
            aload 3 /* moduleInfos */
            areturn
        end local 3 // java.util.List moduleInfos
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0    3     1           in  Ljdk/tools/jlink/plugin/ResourcePool;
            0    3     2          out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1    3     3  moduleInfos  Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
    Signature: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
    MethodParameters:
      Name  Flags
      in    
      out   

  private java.util.Set<java.lang.String> genSystemModulesClasses(java.util.List<jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo>, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljava/util/List;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // java.util.List moduleInfos
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 228
            aload 1 /* moduleInfos */
            invokeinterface java.util.List.size:()I
            istore 3 /* moduleCount */
        start local 3 // int moduleCount
         1: .line 229
            aload 1 /* moduleInfos */
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.finderOf:(Ljava/util/Collection;)Ljava/lang/module/ModuleFinder;
            astore 4 /* finder */
        start local 4 // java.lang.module.ModuleFinder finder
         2: .line 230
            getstatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.$assertionsDisabled:Z
            ifne 3
            aload 4 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iload 3 /* moduleCount */
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 233
      StackMap locals: int java.lang.module.ModuleFinder
      StackMap stack:
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 5 /* map */
        start local 5 // java.util.Map map
         4: .line 236
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* generated */
        start local 6 // java.util.Set generated
         5: .line 239
            aload 1 /* moduleInfos */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         6: .line 240
            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/plugins/SystemModulesPlugin$ModuleInfo.moduleName()Ljava/lang/String; (5)
                  (Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         7: .line 241
            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
         8: .line 239
            astore 7 /* allModuleNames */
        start local 7 // java.util.Set allModuleNames
         9: .line 242
            aload 0 /* this */
            aload 1 /* moduleInfos */
        10: .line 243
            aload 0 /* this */
            aload 4 /* finder */
            aload 7 /* allModuleNames */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.resolve:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;)Ljava/lang/module/Configuration;
        11: .line 244
            ldc "jdk/internal/module/SystemModules$all"
        12: .line 245
            aload 2 /* out */
        13: .line 242
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.genSystemModulesClass:(Ljava/util/List;Ljava/lang/module/Configuration;Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
            astore 8 /* rn */
        start local 8 // java.lang.String rn
        14: .line 246
            aload 6 /* generated */
            aload 8 /* rn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 251
            aload 0 /* this */
            aload 4 /* finder */
            aload 4 /* finder */
            invokestatic jdk.internal.module.DefaultRoots.compute:(Ljava/lang/module/ModuleFinder;)Ljava/util/Set;
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.resolve:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;)Ljava/lang/module/Configuration;
            astore 10 /* cf */
        start local 10 // java.lang.module.Configuration cf
        16: .line 252
            aload 10 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iload 3 /* moduleCount */
            if_icmpne 19
        17: .line 254
            ldc "jdk/internal/module/SystemModules$all"
            astore 9 /* defaultSystemModulesClassName */
        start local 9 // java.lang.String defaultSystemModulesClassName
        18: .line 255
            goto 26
        end local 9 // java.lang.String defaultSystemModulesClassName
        19: .line 256
      StackMap locals: jdk.tools.jlink.internal.plugins.SystemModulesPlugin java.util.List jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.module.ModuleFinder java.util.Map java.util.Set java.util.Set java.lang.String top java.lang.module.Configuration
      StackMap stack:
            ldc "jdk/internal/module/SystemModules$default"
            astore 9 /* defaultSystemModulesClassName */
        start local 9 // java.lang.String defaultSystemModulesClassName
        20: .line 257
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* moduleInfos */
            aload 10 /* cf */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.sublist:(Ljava/util/List;Ljava/lang/module/Configuration;)Ljava/util/List;
        21: .line 258
            aload 10 /* cf */
        22: .line 259
            aload 9 /* defaultSystemModulesClassName */
        23: .line 260
            aload 2 /* out */
        24: .line 257
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.genSystemModulesClass:(Ljava/util/List;Ljava/lang/module/Configuration;Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
            astore 8 /* rn */
        25: .line 261
            aload 6 /* generated */
            aload 8 /* rn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        26: .line 265
      StackMap locals: jdk.tools.jlink.internal.plugins.SystemModulesPlugin java.util.List jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.module.ModuleFinder java.util.Map java.util.Set java.util.Set java.lang.String java.lang.String java.lang.module.Configuration
      StackMap stack:
            iconst_0
            istore 11 /* suffix */
        start local 11 // int suffix
        27: .line 266
            aload 1 /* moduleInfos */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 39
      StackMap locals: jdk.tools.jlink.internal.plugins.SystemModulesPlugin java.util.List jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.module.ModuleFinder java.util.Map java.util.Set java.util.Set java.lang.String java.lang.String java.lang.module.Configuration int top java.util.Iterator
      StackMap stack:
        28: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo
            astore 12 /* mi */
        start local 12 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo mi
        29: .line 267
            aload 12 /* mi */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 39
        30: .line 268
            aload 12 /* mi */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.moduleName:()Ljava/lang/String;
            astore 14 /* moduleName */
        start local 14 // java.lang.String moduleName
        31: .line 269
            aload 0 /* this */
            aload 4 /* finder */
            aload 14 /* moduleName */
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.resolve:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;)Ljava/lang/module/Configuration;
            astore 10 /* cf */
        32: .line 270
            aload 10 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iload 3 /* moduleCount */
            if_icmpne 35
        33: .line 272
            aload 5 /* map */
            aload 14 /* moduleName */
            ldc "jdk/internal/module/SystemModules$all"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 273
            goto 39
        35: .line 274
      StackMap locals: jdk.tools.jlink.internal.plugins.SystemModulesPlugin java.util.List jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.module.ModuleFinder java.util.Map java.util.Set java.util.Set java.lang.String java.lang.String java.lang.module.Configuration int jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo java.util.Iterator java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "jdk/internal/module/SystemModules$"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* suffix */
            iinc 11 /* suffix */ 1
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* cn */
        start local 15 // java.lang.String cn
        36: .line 275
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* moduleInfos */
            aload 10 /* cf */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.sublist:(Ljava/util/List;Ljava/lang/module/Configuration;)Ljava/util/List;
            aload 10 /* cf */
            aload 15 /* cn */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.genSystemModulesClass:(Ljava/util/List;Ljava/lang/module/Configuration;Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
            astore 8 /* rn */
        37: .line 276
            aload 5 /* map */
            aload 14 /* moduleName */
            aload 15 /* cn */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 277
            aload 6 /* generated */
            aload 8 /* rn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // java.lang.String cn
        end local 14 // java.lang.String moduleName
        end local 12 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo mi
        39: .line 266
      StackMap locals: jdk.tools.jlink.internal.plugins.SystemModulesPlugin java.util.List jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.module.ModuleFinder java.util.Map java.util.Set java.util.Set java.lang.String java.lang.String java.lang.module.Configuration int top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        40: .line 283
            aload 0 /* this */
            ldc "jdk/internal/module/SystemModules$all"
        41: .line 284
            aload 9 /* defaultSystemModulesClassName */
        42: .line 285
            aload 5 /* map */
        43: .line 286
            aload 2 /* out */
        44: .line 283
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin.genSystemModulesMapClass:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
            astore 8 /* rn */
        45: .line 287
            aload 6 /* generated */
            aload 8 /* rn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        46: .line 290
            aload 6 /* generated */
            areturn
        end local 11 // int suffix
        end local 10 // java.lang.module.Configuration cf
        end local 9 // java.lang.String defaultSystemModulesClassName
        end local 8 // java.lang.String rn
        end local 7 // java.util.Set allModuleNames
        end local 6 // java.util.Set generated
        end local 5 // java.util.Map map
        end local 4 // java.lang.module.ModuleFinder finder
        end local 3 // int moduleCount
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // java.util.List moduleInfos
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   47     0                           this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0   47     1                    moduleInfos  Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
            0   47     2                            out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1   47     3                    moduleCount  I
            2   47     4                         finder  Ljava/lang/module/ModuleFinder;
            4   47     5                            map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            5   47     6                      generated  Ljava/util/Set<Ljava/lang/String;>;
            9   47     7                 allModuleNames  Ljava/util/Set<Ljava/lang/String;>;
           14   47     8                             rn  Ljava/lang/String;
           18   19     9  defaultSystemModulesClassName  Ljava/lang/String;
           20   47     9  defaultSystemModulesClassName  Ljava/lang/String;
           16   47    10                             cf  Ljava/lang/module/Configuration;
           27   47    11                         suffix  I
           29   39    12                             mi  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;
           31   39    14                     moduleName  Ljava/lang/String;
           36   39    15                             cn  Ljava/lang/String;
    Signature: (Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
             Name  Flags
      moduleInfos  
      out          

  private java.lang.module.Configuration resolve(java.lang.module.ModuleFinder, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/util/Set;)Ljava/lang/module/Configuration;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // java.lang.module.ModuleFinder finder
        start local 2 // java.util.Set roots
         0: .line 298
            aload 1 /* finder */
            aload 2 /* roots */
            aconst_null
            invokestatic jdk.internal.module.Modules.newBootLayerConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Collection;Ljava/io/PrintStream;)Ljava/lang/module/Configuration;
            areturn
        end local 2 // java.util.Set roots
        end local 1 // java.lang.module.ModuleFinder finder
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0    1     1  finder  Ljava/lang/module/ModuleFinder;
            0    1     2   roots  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/module/ModuleFinder;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/Configuration;
    MethodParameters:
        Name  Flags
      finder  
      roots   

  private java.util.List<jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo> sublist(java.util.List<jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo>, java.lang.module.Configuration);
    descriptor: (Ljava/util/List;Ljava/lang/module/Configuration;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // java.util.List moduleInfos
        start local 2 // java.lang.module.Configuration cf
         0: .line 306
            aload 2 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
         1: .line 307
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 308
            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;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 309
            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
         4: .line 306
            astore 3 /* names */
        start local 3 // java.util.Set names
         5: .line 310
            aload 1 /* moduleInfos */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         6: .line 311
            aload 3 /* 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/plugins/SystemModulesPlugin.lambda$6(Ljava/util/Set;Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;)Z (6)
                  (Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         7: .line 312
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         8: .line 310
            areturn
        end local 3 // java.util.Set names
        end local 2 // java.lang.module.Configuration cf
        end local 1 // java.util.List moduleInfos
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0    9     1  moduleInfos  Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
            0    9     2           cf  Ljava/lang/module/Configuration;
            5    9     3        names  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;Ljava/lang/module/Configuration;)Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
    MethodParameters:
             Name  Flags
      moduleInfos  
      cf           

  private java.lang.String genSystemModulesClass(java.util.List<jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo>, java.lang.module.Configuration, java.lang.String, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljava/util/List;Ljava/lang/module/Configuration;Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // java.util.List moduleInfos
        start local 2 // java.lang.module.Configuration cf
        start local 3 // java.lang.String className
        start local 4 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 325
            new jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator
            dup
            aload 3 /* className */
            aload 1 /* moduleInfos */
            invokespecial jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator.<init>:(Ljava/lang/String;Ljava/util/List;)V
         1: .line 324
            astore 5 /* generator */
        start local 5 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator generator
         2: .line 326
            aload 5 /* generator */
            aload 2 /* cf */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator.getClassWriter:(Ljava/lang/module/Configuration;)Ljdk/internal/org/objectweb/asm/ClassWriter;
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
            astore 6 /* bytes */
        start local 6 // byte[] bytes
         3: .line 327
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* rn */
        start local 7 // java.lang.String rn
         4: .line 328
            aload 7 /* rn */
            aload 6 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 8 /* e */
        start local 8 // jdk.tools.jlink.plugin.ResourcePoolEntry e
         5: .line 329
            aload 4 /* out */
            aload 8 /* e */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
         6: .line 330
            aload 7 /* rn */
            areturn
        end local 8 // jdk.tools.jlink.plugin.ResourcePoolEntry e
        end local 7 // java.lang.String rn
        end local 6 // byte[] bytes
        end local 5 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator generator
        end local 4 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 3 // java.lang.String className
        end local 2 // java.lang.module.Configuration cf
        end local 1 // java.util.List moduleInfos
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0    7     1  moduleInfos  Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
            0    7     2           cf  Ljava/lang/module/Configuration;
            0    7     3    className  Ljava/lang/String;
            0    7     4          out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            2    7     5    generator  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator;
            3    7     6        bytes  [B
            4    7     7           rn  Ljava/lang/String;
            5    7     8            e  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    Signature: (Ljava/util/List<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;Ljava/lang/module/Configuration;Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
    MethodParameters:
             Name  Flags
      moduleInfos  
      cf           
      className    
      out          

  private java.lang.String genSystemModulesMapClass(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.String>, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
        start local 1 // java.lang.String allSystemModulesClassName
        start local 2 // java.lang.String defaultSystemModulesClassName
        start local 3 // java.util.Map map
        start local 4 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 1727
            new jdk.internal.org.objectweb.asm.ClassWriter
            dup
            iconst_3
            invokespecial jdk.internal.org.objectweb.asm.ClassWriter.<init>:(I)V
            astore 5 /* cw */
        start local 5 // jdk.internal.org.objectweb.asm.ClassWriter cw
         1: .line 1729
            aload 5 /* cw */
            bipush 52
         2: .line 1730
            bipush 48
         3: .line 1731
            ldc "jdk/internal/module/SystemModulesMap"
         4: .line 1732
            aconst_null
         5: .line 1733
            ldc "java/lang/Object"
         6: .line 1734
            aconst_null
         7: .line 1729
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visit:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
         8: .line 1737
            aload 5 /* cw */
            iconst_0
            ldc "<init>"
            ldc "()V"
            aconst_null
            aconst_null
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 6 /* mv */
        start local 6 // jdk.internal.org.objectweb.asm.MethodVisitor mv
         9: .line 1738
            aload 6 /* mv */
            bipush 25
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
        10: .line 1739
            aload 6 /* mv */
            sipush 183
        11: .line 1740
            ldc "java/lang/Object"
        12: .line 1741
            ldc "<init>"
        13: .line 1742
            ldc "()V"
        14: .line 1743
            iconst_0
        15: .line 1739
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        16: .line 1744
            aload 6 /* mv */
            sipush 177
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        17: .line 1745
            aload 6 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        18: .line 1746
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        19: .line 1749
            aload 5 /* cw */
            bipush 8
        20: .line 1750
            ldc "allSystemModules"
        21: .line 1751
            ldc "()Ljdk/internal/module/SystemModules;"
        22: .line 1752
            ldc "()Ljdk/internal/module/SystemModules;"
        23: .line 1753
            aconst_null
        24: .line 1749
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 6 /* mv */
        25: .line 1754
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        26: .line 1755
            aload 6 /* mv */
            sipush 187
            aload 1 /* allSystemModulesClassName */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
        27: .line 1756
            aload 6 /* mv */
            bipush 89
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        28: .line 1757
            aload 6 /* mv */
            sipush 183
        29: .line 1758
            aload 1 /* allSystemModulesClassName */
        30: .line 1759
            ldc "<init>"
        31: .line 1760
            ldc "()V"
        32: .line 1761
            iconst_0
        33: .line 1757
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        34: .line 1762
            aload 6 /* mv */
            sipush 176
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        35: .line 1763
            aload 6 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        36: .line 1764
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        37: .line 1767
            aload 5 /* cw */
            bipush 8
        38: .line 1768
            ldc "defaultSystemModules"
        39: .line 1769
            ldc "()Ljdk/internal/module/SystemModules;"
        40: .line 1770
            ldc "()Ljdk/internal/module/SystemModules;"
        41: .line 1771
            aconst_null
        42: .line 1767
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 6 /* mv */
        43: .line 1772
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        44: .line 1773
            aload 6 /* mv */
            sipush 187
            aload 2 /* defaultSystemModulesClassName */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
        45: .line 1774
            aload 6 /* mv */
            bipush 89
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        46: .line 1775
            aload 6 /* mv */
            sipush 183
        47: .line 1776
            aload 2 /* defaultSystemModulesClassName */
        48: .line 1777
            ldc "<init>"
        49: .line 1778
            ldc "()V"
        50: .line 1779
            iconst_0
        51: .line 1775
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        52: .line 1780
            aload 6 /* mv */
            sipush 176
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        53: .line 1781
            aload 6 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        54: .line 1782
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        55: .line 1785
            aload 5 /* cw */
            bipush 8
        56: .line 1786
            ldc "moduleNames"
        57: .line 1787
            ldc "()[Ljava/lang/String;"
        58: .line 1788
            ldc "()[Ljava/lang/String;"
        59: .line 1789
            aconst_null
        60: .line 1785
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 6 /* mv */
        61: .line 1790
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        62: .line 1791
            aload 6 /* mv */
            aload 3 /* map */
            invokeinterface java.util.Map.size:()I
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
        63: .line 1792
            aload 6 /* mv */
            sipush 189
            ldc "java/lang/String"
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
        64: .line 1794
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        65: .line 1795
            aload 3 /* map */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.sorted:(Ljava/util/Collection;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 72
      StackMap locals: jdk.tools.jlink.internal.plugins.SystemModulesPlugin java.lang.String java.lang.String java.util.Map jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.internal.org.objectweb.asm.ClassWriter jdk.internal.org.objectweb.asm.MethodVisitor int top java.util.Iterator
      StackMap stack:
        66: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* moduleName */
        start local 8 // java.lang.String moduleName
        67: .line 1796
            aload 6 /* mv */
            bipush 89
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        68: .line 1797
            aload 6 /* mv */
            iload 7 /* index */
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
        69: .line 1798
            aload 6 /* mv */
            aload 8 /* moduleName */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
        70: .line 1799
            aload 6 /* mv */
            bipush 83
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        71: .line 1800
            iinc 7 /* index */ 1
        end local 8 // java.lang.String moduleName
        72: .line 1795
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 66
        73: .line 1803
            aload 6 /* mv */
            sipush 176
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        74: .line 1804
            aload 6 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        75: .line 1805
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        76: .line 1808
            aload 5 /* cw */
            bipush 8
        77: .line 1809
            ldc "classNames"
        78: .line 1810
            ldc "()[Ljava/lang/String;"
        79: .line 1811
            ldc "()[Ljava/lang/String;"
        80: .line 1812
            aconst_null
        81: .line 1808
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 6 /* mv */
        82: .line 1813
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        83: .line 1814
            aload 6 /* mv */
            aload 3 /* map */
            invokeinterface java.util.Map.size:()I
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
        84: .line 1815
            aload 6 /* mv */
            sipush 189
            ldc "java/lang/String"
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
        85: .line 1817
            iconst_0
            istore 7 /* index */
        86: .line 1818
            aload 3 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.sorted:(Ljava/util/Collection;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 93
      StackMap locals:
      StackMap stack:
        87: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* className */
        start local 8 // java.lang.String className
        88: .line 1819
            aload 6 /* mv */
            bipush 89
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        89: .line 1820
            aload 6 /* mv */
            iload 7 /* index */
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
        90: .line 1821
            aload 6 /* mv */
            aload 8 /* className */
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
        91: .line 1822
            aload 6 /* mv */
            bipush 83
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        92: .line 1823
            iinc 7 /* index */ 1
        end local 8 // java.lang.String className
        93: .line 1818
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 87
        94: .line 1826
            aload 6 /* mv */
            sipush 176
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        95: .line 1827
            aload 6 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        96: .line 1828
            aload 6 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        97: .line 1831
            ldc "/java.base/jdk/internal/module/SystemModulesMap.class"
            astore 8 /* rn */
        start local 8 // java.lang.String rn
        98: .line 1832
            aload 8 /* rn */
            aload 5 /* cw */
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 9 /* e */
        start local 9 // jdk.tools.jlink.plugin.ResourcePoolEntry e
        99: .line 1833
            aload 4 /* out */
            aload 9 /* e */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
       100: .line 1835
            aload 8 /* rn */
            areturn
        end local 9 // jdk.tools.jlink.plugin.ResourcePoolEntry e
        end local 8 // java.lang.String rn
        end local 7 // int index
        end local 6 // jdk.internal.org.objectweb.asm.MethodVisitor mv
        end local 5 // jdk.internal.org.objectweb.asm.ClassWriter cw
        end local 4 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 3 // java.util.Map map
        end local 2 // java.lang.String defaultSystemModulesClassName
        end local 1 // java.lang.String allSystemModulesClassName
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0  101     0                           this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin;
            0  101     1      allSystemModulesClassName  Ljava/lang/String;
            0  101     2  defaultSystemModulesClassName  Ljava/lang/String;
            0  101     3                            map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0  101     4                            out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1  101     5                             cw  Ljdk/internal/org/objectweb/asm/ClassWriter;
            9  101     6                             mv  Ljdk/internal/org/objectweb/asm/MethodVisitor;
           65  101     7                          index  I
           67   72     8                     moduleName  Ljava/lang/String;
           88   93     8                      className  Ljava/lang/String;
           98  101     8                             rn  Ljava/lang/String;
           99  101     9                              e  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/lang/String;
    MethodParameters:
                               Name  Flags
      allSystemModulesClassName      
      defaultSystemModulesClassName  
      map                            
      out                            

  private static <T extends java.lang.Comparable<T>> java.util.List<T> sorted(java.util.Collection<T>);
    descriptor: (Ljava/util/Collection;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.util.Collection c
         0: .line 1846
            new java.util.ArrayList
            dup
            aload 0 /* c */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* l */
        start local 1 // java.util.ArrayList l
         1: .line 1847
            aload 1 /* l */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         2: .line 1848
            aload 1 /* l */
            areturn
        end local 1 // java.util.ArrayList l
        end local 0 // java.util.Collection c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     c  Ljava/util/Collection<TT;>;
            1    3     1     l  Ljava/util/ArrayList<TT;>;
    Signature: <T::Ljava/lang/Comparable<TT;>;>(Ljava/util/Collection<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
      Name  Flags
      c     

  private static void pushInt(jdk.internal.org.objectweb.asm.MethodVisitor, int);
    descriptor: (Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.internal.org.objectweb.asm.MethodVisitor mv
        start local 1 // int value
         0: .line 1855
            iload 1 /* value */
            iconst_5
            if_icmpgt 3
         1: .line 1856
            aload 0 /* mv */
            iconst_3
            iload 1 /* value */
            iadd
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
         2: .line 1857
            goto 10
      StackMap locals:
      StackMap stack:
         3: iload 1 /* value */
            bipush 127
            if_icmpge 6
         4: .line 1858
            aload 0 /* mv */
            bipush 16
            iload 1 /* value */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
         5: .line 1859
            goto 10
      StackMap locals:
      StackMap stack:
         6: iload 1 /* value */
            sipush 32767
            if_icmpge 9
         7: .line 1860
            aload 0 /* mv */
            bipush 17
            iload 1 /* value */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
         8: .line 1861
            goto 10
         9: .line 1862
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exceed limit: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1864
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int value
        end local 0 // jdk.internal.org.objectweb.asm.MethodVisitor mv
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0     mv  Ljdk/internal/org/objectweb/asm/MethodVisitor;
            0   11     1  value  I
    MethodParameters:
       Name  Flags
      mv     
      value  

  private static java.lang.module.ModuleFinder finderOf(java.util.Collection<jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/module/ModuleFinder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=7, args_size=1
        start local 0 // java.util.Collection moduleInfos
         0: .line 1870
            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/plugins/SystemModulesPlugin.lambda$7()Ljava/lang/module/ModuleReader; (6)
                  ()Ljava/lang/module/ModuleReader;
            astore 1 /* readerSupplier */
        start local 1 // java.util.function.Supplier readerSupplier
         1: .line 1871
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* namesToReference */
        start local 2 // java.util.Map namesToReference
         2: .line 1872
            aload 0 /* moduleInfos */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: java.util.Collection java.util.function.Supplier java.util.Map top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo
            astore 3 /* mi */
        start local 3 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo mi
         4: .line 1873
            aload 3 /* mi */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.moduleName:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         5: .line 1875
            new jdk.internal.module.ModuleReferenceImpl
            dup
            aload 3 /* mi */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.descriptor:()Ljava/lang/module/ModuleDescriptor;
         6: .line 1876
            new java.lang.StringBuilder
            dup
            ldc "jrt:/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
         7: .line 1877
            aload 1 /* readerSupplier */
         8: .line 1878
            aconst_null
         9: .line 1879
            aload 3 /* mi */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.target:()Ljdk/internal/module/ModuleTarget;
        10: .line 1880
            aconst_null
        11: .line 1881
            aconst_null
        12: .line 1882
            aload 3 /* mi */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.moduleResolution:()Ljdk/internal/module/ModuleResolution;
        13: .line 1875
            invokespecial jdk.internal.module.ModuleReferenceImpl.<init>:(Ljava/lang/module/ModuleDescriptor;Ljava/net/URI;Ljava/util/function/Supplier;Ljdk/internal/module/ModulePatcher;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljdk/internal/module/ModuleHashes$HashSupplier;Ljdk/internal/module/ModuleResolution;)V
        14: .line 1874
            astore 6 /* mref */
        start local 6 // java.lang.module.ModuleReference mref
        15: .line 1883
            aload 2 /* namesToReference */
            aload 5 /* name */
            aload 6 /* mref */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.module.ModuleReference mref
        end local 5 // java.lang.String name
        end local 3 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo mi
        16: .line 1872
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        17: .line 1886
            new jdk.tools.jlink.internal.plugins.SystemModulesPlugin$1
            dup
            aload 2 /* namesToReference */
            invokespecial jdk.tools.jlink.internal.plugins.SystemModulesPlugin$1.<init>:(Ljava/util/Map;)V
            areturn
        end local 2 // java.util.Map namesToReference
        end local 1 // java.util.function.Supplier readerSupplier
        end local 0 // java.util.Collection moduleInfos
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0       moduleInfos  Ljava/util/Collection<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;
            1   18     1    readerSupplier  Ljava/util/function/Supplier<Ljava/lang/module/ModuleReader;>;
            2   18     2  namesToReference  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
            4   16     3                mi  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;
            5   16     5              name  Ljava/lang/String;
           15   16     6              mref  Ljava/lang/module/ModuleReference;
    Signature: (Ljava/util/Collection<Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;>;)Ljava/lang/module/ModuleFinder;
    MethodParameters:
             Name  Flags
      moduleInfos  

  private static boolean lambda$0(java.util.Set, jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljava/util/Set;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
         0: .line 167
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/module-info.class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 168
            aload 0
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1  data  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private static void lambda$1(jdk.tools.jlink.plugin.ResourcePoolBuilder, jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
         0: .line 169
            aload 0
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  data  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private static void lambda$2(java.util.List, jdk.tools.jlink.plugin.ResourcePoolBuilder, jdk.tools.jlink.plugin.ResourcePoolModule);
    descriptor: (Ljava/util/List;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljdk/tools/jlink/plugin/ResourcePoolModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=7, args_size=3
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolModule module
         0: .line 185
            aload 2 /* module */
            ldc "module-info.class"
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
         1: .line 187
            aload 2 /* module */
            invokedynamic get(Ljdk/tools/jlink/plugin/ResourcePoolModule;)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/plugins/SystemModulesPlugin.lambda$3(Ljdk/tools/jlink/plugin/ResourcePoolModule;)Ljdk/tools/jlink/plugin/PluginException; (6)
                  ()Ljdk/tools/jlink/plugin/PluginException;
         2: .line 185
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.plugin.ResourcePoolEntry
            astore 3 /* data */
        start local 3 // jdk.tools.jlink.plugin.ResourcePoolEntry data
         3: .line 191
            getstatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.$assertionsDisabled:Z
            ifne 4
            aload 2 /* module */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.name:()Ljava/lang/String;
            aload 3 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 194
      StackMap locals: jdk.tools.jlink.plugin.ResourcePoolEntry
      StackMap stack:
            aload 3 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.contentBytes:()[B
            astore 4 /* content */
        start local 4 // byte[] content
         5: .line 195
            aload 2 /* module */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.packages:()Ljava/util/Set;
            astore 5 /* packages */
        start local 5 // java.util.Set packages
         6: .line 196
            new jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo
            dup
            aload 4 /* content */
            aload 5 /* packages */
            invokespecial jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.<init>:([BLjava/util/Set;)V
            astore 6 /* moduleInfo */
        start local 6 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo moduleInfo
         7: .line 199
            aload 6 /* moduleInfo */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.validateNames:()V
         8: .line 202
            aload 6 /* moduleInfo */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.validatePackages:()V
         9: .line 205
            aload 6 /* moduleInfo */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.shouldRewrite:()Z
            ifeq 11
        10: .line 206
            aload 3 /* data */
            aload 6 /* moduleInfo */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.getBytes:()[B
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.copyWithContent:([B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 3 /* data */
        11: .line 208
      StackMap locals: byte[] java.util.Set jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo
      StackMap stack:
            aload 0
            aload 6 /* moduleInfo */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 211
            aload 1
            aload 3 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 6 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo moduleInfo
        end local 5 // java.util.Set packages
        end local 4 // byte[] content
        13: .line 212
            goto 16
      StackMap locals: java.util.List jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.tools.jlink.plugin.ResourcePoolModule jdk.tools.jlink.plugin.ResourcePoolEntry
      StackMap stack: java.io.IOException
        14: astore 4 /* e */
        start local 4 // java.io.IOException e
        15: .line 213
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 4 /* e */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // jdk.tools.jlink.plugin.ResourcePoolEntry data
        16: .line 215
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolModule module
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     2      module  Ljdk/tools/jlink/plugin/ResourcePoolModule;
            3   16     3        data  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            5   13     4     content  [B
            6   13     5    packages  Ljava/util/Set<Ljava/lang/String;>;
            7   13     6  moduleInfo  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;
           15   16     4           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    13      14  Class java.io.IOException

  private static boolean lambda$6(java.util.Set, jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo);
    descriptor: (Ljava/util/Set;Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo mi
         0: .line 311
            aload 0
            aload 1 /* mi */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo.moduleName:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo mi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mi  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$ModuleInfo;

  private static java.lang.module.ModuleReader lambda$7();
    descriptor: ()Ljava/lang/module/ModuleReader;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1870
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static jdk.tools.jlink.plugin.PluginException lambda$3(jdk.tools.jlink.plugin.ResourcePoolModule);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolModule;)Ljdk/tools/jlink/plugin/PluginException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
         0: .line 187
            new jdk.tools.jlink.plugin.PluginException
            dup
            new java.lang.StringBuilder
            dup
            ldc "module-info.class not found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 188
            aload 0
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " module"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 187
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
         3: .line 188
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SystemModulesPlugin.java"
NestMembers:
  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$1  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo$1  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo$1$1  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo$ModuleInfoRewriter  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$DedupSetBuilder  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$EnumSetBuilder  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleDescriptorBuilder  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$SetBuilder
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract HashSupplier = jdk.internal.module.ModuleHashes$HashSupplier of jdk.internal.module.ModuleHashes
  jdk.tools.jlink.internal.plugins.SystemModulesPlugin$1
  ModuleInfo = jdk.tools.jlink.internal.plugins.SystemModulesPlugin$ModuleInfo of jdk.tools.jlink.internal.plugins.SystemModulesPlugin
  SystemModulesClassGenerator = jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator of jdk.tools.jlink.internal.plugins.SystemModulesPlugin
  public final State = jdk.tools.jlink.plugin.Plugin$State of jdk.tools.jlink.plugin.Plugin