public final class jdk.internal.module.ModuleBootstrap
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.module.ModuleBootstrap
  super_class: java.lang.Object
{
  private static final java.lang.String JAVA_BASE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.base"

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

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

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

  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"

  private static final jdk.internal.access.JavaLangModuleAccess JLMA;
    descriptor: Ljdk/internal/access/JavaLangModuleAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.internal.module.ModulePatcher patcher;
    descriptor: Ljdk/internal/module/ModulePatcher;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile java.lang.module.ModuleFinder unlimitedFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile java.lang.module.ModuleFinder limitedFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final java.lang.String ADD_MODULES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-modules"

  private static final java.lang.String ADD_EXPORTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-exports"

  private static final java.lang.String ADD_OPENS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-opens"

  private static final java.lang.String ADD_READS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-reads"

  private static final java.lang.String PATCH_MODULE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--patch-module"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 90
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangModuleAccess:()Ljdk/internal/access/JavaLangModuleAccess;
         1: .line 89
            putstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/access/JavaLangModuleAccess;
         2: .line 93
            invokestatic jdk.internal.module.ModuleBootstrap.initModulePatcher:()Ljdk/internal/module/ModulePatcher;
            putstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
         3: .line 974
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.module.ModuleBootstrap this
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.module.ModuleBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/module/ModuleBootstrap;

  public static jdk.internal.module.ModulePatcher patcher();
    descriptor: ()Ljdk/internal/module/ModulePatcher;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 99
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.module.ModuleFinder unlimitedFinder();
    descriptor: ()Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 114
            getstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 115
            aload 0 /* finder */
            ifnonnull 3
         2: .line 116
            invokestatic java.lang.module.ModuleFinder.ofSystem:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 118
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 0 /* finder */
            areturn
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  finder  Ljava/lang/module/ModuleFinder;

  public static java.lang.module.ModuleFinder limitedFinder();
    descriptor: ()Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 128
            getstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 129
            aload 0 /* finder */
            ifnonnull 3
         2: .line 130
            invokestatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 132
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 0 /* finder */
            areturn
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  finder  Ljava/lang/module/ModuleFinder;

  public static java.lang.ModuleLayer boot();
    descriptor: ()Ljava/lang/ModuleLayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=43, args_size=0
         0: .line 145
            invokestatic java.lang.System.nanoTime:()J
            lstore 0 /* t0 */
        start local 0 // long t0
         1: .line 147
            ldc "jdk.module.upgrade.path"
            invokestatic jdk.internal.module.ModuleBootstrap.finderFor:(Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
            astore 2 /* upgradeModulePath */
        start local 2 // java.lang.module.ModuleFinder upgradeModulePath
         2: .line 148
            ldc "jdk.module.path"
            invokestatic jdk.internal.module.ModuleBootstrap.finderFor:(Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
            astore 3 /* appModulePath */
        start local 3 // java.lang.module.ModuleFinder appModulePath
         3: .line 149
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            invokevirtual jdk.internal.module.ModulePatcher.hasPatches:()Z
            istore 4 /* isPatched */
        start local 4 // boolean isPatched
         4: .line 151
            ldc "jdk.module.main"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* mainModule */
        start local 5 // java.lang.String mainModule
         5: .line 152
            invokestatic jdk.internal.module.ModuleBootstrap.addModules:()Ljava/util/Set;
            astore 6 /* addModules */
        start local 6 // java.util.Set addModules
         6: .line 153
            invokestatic jdk.internal.module.ModuleBootstrap.limitModules:()Ljava/util/Set;
            astore 7 /* limitModules */
        start local 7 // java.util.Set limitModules
         7: .line 155
            aconst_null
            astore 8 /* traceOutput */
        start local 8 // java.io.PrintStream traceOutput
         8: .line 156
            ldc "jdk.module.showModuleResolution"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* trace */
        start local 9 // java.lang.String trace
         9: .line 157
            aload 9 /* trace */
            ifnull 11
            aload 9 /* trace */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 158
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            astore 8 /* traceOutput */
        11: .line 167
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 10 /* t1 */
        start local 10 // long t1
        12: .line 169
            aconst_null
            astore 12 /* systemModules */
        start local 12 // jdk.internal.module.SystemModules systemModules
        13: .line 172
            aload 3 /* appModulePath */
            ifnonnull 14
            aload 2 /* upgradeModulePath */
            ifnonnull 14
            iconst_0
            goto 15
      StackMap locals: long jdk.internal.module.SystemModules
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 14 /* haveModulePath */
        start local 14 // boolean haveModulePath
        16: .line 173
            iconst_1
            istore 15 /* needResolution */
        start local 15 // boolean needResolution
        17: .line 174
            iconst_0
            istore 16 /* canArchive */
        start local 16 // boolean canArchive
        18: .line 181
            aload 5 /* mainModule */
            invokestatic jdk.internal.module.ArchivedModuleGraph.get:(Ljava/lang/String;)Ljdk/internal/module/ArchivedModuleGraph;
            astore 19 /* archivedModuleGraph */
        start local 19 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        19: .line 182
            aload 19 /* archivedModuleGraph */
            ifnull 31
        20: .line 183
            iload 14 /* haveModulePath */
            ifne 31
        21: .line 184
            aload 6 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 31
        22: .line 185
            aload 7 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 31
        23: .line 186
            iload 4 /* isPatched */
            ifne 31
        24: .line 187
            aload 19 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.finder:()Ljava/lang/module/ModuleFinder;
            astore 13 /* systemModuleFinder */
        start local 13 // java.lang.module.ModuleFinder systemModuleFinder
        25: .line 188
            aload 19 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.hasSplitPackages:()Z
            istore 17 /* hasSplitPackages */
        start local 17 // boolean hasSplitPackages
        26: .line 189
            aload 19 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.hasIncubatorModules:()Z
            istore 18 /* hasIncubatorModules */
        start local 18 // boolean hasIncubatorModules
        27: .line 190
            aload 8 /* traceOutput */
            ifnull 28
            iconst_1
            goto 29
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
        28: iconst_0
      StackMap locals:
      StackMap stack: int
        29: istore 15 /* needResolution */
        30: .line 191
            goto 48
        end local 18 // boolean hasIncubatorModules
        end local 17 // boolean hasSplitPackages
        end local 13 // java.lang.module.ModuleFinder systemModuleFinder
        31: .line 192
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules top int int int top top jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            iload 14 /* haveModulePath */
            ifne 38
            aload 6 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 38
            aload 7 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 38
        32: .line 193
            aload 5 /* mainModule */
            invokestatic jdk.internal.module.SystemModuleFinders.systemModules:(Ljava/lang/String;)Ljdk/internal/module/SystemModules;
            astore 12 /* systemModules */
        33: .line 194
            aload 12 /* systemModules */
            ifnull 38
            iload 4 /* isPatched */
            ifne 38
        34: .line 195
            aload 8 /* traceOutput */
            ifnull 35
            iconst_1
            goto 36
      StackMap locals:
      StackMap stack:
        35: iconst_0
      StackMap locals:
      StackMap stack: int
        36: istore 15 /* needResolution */
        37: .line 196
            iconst_1
            istore 16 /* canArchive */
        38: .line 199
      StackMap locals:
      StackMap stack:
            aload 12 /* systemModules */
            ifnonnull 40
        39: .line 201
            invokestatic jdk.internal.module.SystemModuleFinders.allSystemModules:()Ljdk/internal/module/SystemModules;
            astore 12 /* systemModules */
        40: .line 203
      StackMap locals:
      StackMap stack:
            aload 12 /* systemModules */
            ifnull 43
        41: .line 205
            aload 12 /* systemModules */
            invokestatic jdk.internal.module.SystemModuleFinders.of:(Ljdk/internal/module/SystemModules;)Ljava/lang/module/ModuleFinder;
            astore 13 /* systemModuleFinder */
        start local 13 // java.lang.module.ModuleFinder systemModuleFinder
        42: .line 206
            goto 45
        end local 13 // java.lang.module.ModuleFinder systemModuleFinder
        43: .line 208
      StackMap locals:
      StackMap stack:
            new jdk.internal.module.ExplodedSystemModules
            dup
            invokespecial jdk.internal.module.ExplodedSystemModules.<init>:()V
            astore 12 /* systemModules */
        44: .line 209
            invokestatic jdk.internal.module.SystemModuleFinders.ofSystem:()Ljava/lang/module/ModuleFinder;
            astore 13 /* systemModuleFinder */
        start local 13 // java.lang.module.ModuleFinder systemModuleFinder
        45: .line 212
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int top top jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasSplitPackages:()Z
            istore 17 /* hasSplitPackages */
        start local 17 // boolean hasSplitPackages
        46: .line 213
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasIncubatorModules:()Z
            istore 18 /* hasIncubatorModules */
        start local 18 // boolean hasIncubatorModules
        47: .line 215
            aconst_null
            astore 19 /* archivedModuleGraph */
        48: .line 218
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            ldc "jdk.module.boot.1.systemModulesTime"
            lload 10 /* t1 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
        49: .line 226
            invokestatic java.lang.System.nanoTime:()J
            lstore 20 /* t2 */
        start local 20 // long t2
        50: .line 228
            aload 13 /* systemModuleFinder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 22 /* base */
        start local 22 // java.lang.module.ModuleReference base
        51: .line 229
            aload 22 /* base */
            ifnonnull 53
        52: .line 230
            new java.lang.InternalError
            dup
            ldc "java.base not found"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        53: .line 231
      StackMap locals: long java.lang.module.ModuleReference
      StackMap stack:
            aload 22 /* base */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.URI
            astore 23 /* baseUri */
        start local 23 // java.net.URI baseUri
        54: .line 232
            aload 23 /* baseUri */
            ifnonnull 56
        55: .line 233
            new java.lang.InternalError
            dup
            ldc "java.base does not have a location"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        56: .line 234
      StackMap locals: java.net.URI
      StackMap stack:
            aload 22 /* base */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
        57: .line 235
            aconst_null
            aload 22 /* base */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            aload 23 /* baseUri */
            invokestatic jdk.internal.module.Modules.defineModule:(Ljava/lang/ClassLoader;Ljava/lang/module/ModuleDescriptor;Ljava/net/URI;)Ljava/lang/Module;
            pop
        58: .line 237
            ldc "jdk.module.boot.2.defineBaseTime"
            lload 20 /* t2 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
        59: .line 242
            ldc "jdk.module.validation"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 63
        60: .line 243
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic jdk.internal.module.ModulePathValidator.scanAllModules:(Ljava/io/PrintStream;)I
            istore 24 /* errors */
        start local 24 // int errors
        61: .line 244
            iload 24 /* errors */
            ifle 63
        62: .line 245
            ldc "Validation of module path failed"
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        end local 24 // int errors
        63: .line 253
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 24 /* t3 */
        start local 24 // long t3
        64: .line 255
            aconst_null
            astore 26 /* savedModuleFinder */
        start local 26 // java.lang.module.ModuleFinder savedModuleFinder
        65: .line 258
            iload 15 /* needResolution */
            ifeq 116
        66: .line 261
            aload 2 /* upgradeModulePath */
            ifnull 70
        67: .line 262
            iconst_2
            anewarray java.lang.module.ModuleFinder
            dup
            iconst_0
            aload 2 /* upgradeModulePath */
            aastore
            dup
            iconst_1
        68: .line 263
            aload 13 /* systemModuleFinder */
            aastore
        69: .line 262
            invokestatic java.lang.module.ModuleFinder.compose:([Ljava/lang/module/ModuleFinder;)Ljava/lang/module/ModuleFinder;
            astore 13 /* systemModuleFinder */
        70: .line 266
      StackMap locals: long java.lang.module.ModuleFinder
      StackMap stack:
            aload 3 /* appModulePath */
            ifnull 73
        71: .line 267
            iconst_2
            anewarray java.lang.module.ModuleFinder
            dup
            iconst_0
            aload 13 /* systemModuleFinder */
            aastore
            dup
            iconst_1
            aload 3 /* appModulePath */
            aastore
            invokestatic java.lang.module.ModuleFinder.compose:([Ljava/lang/module/ModuleFinder;)Ljava/lang/module/ModuleFinder;
            astore 27 /* finder */
        start local 27 // java.lang.module.ModuleFinder finder
        72: .line 268
            goto 74
        end local 27 // java.lang.module.ModuleFinder finder
        73: .line 269
      StackMap locals:
      StackMap stack:
            aload 13 /* systemModuleFinder */
            astore 27 /* finder */
        start local 27 // java.lang.module.ModuleFinder finder
        74: .line 273
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 28 /* roots */
        start local 28 // java.util.Set roots
        75: .line 276
            aload 5 /* mainModule */
            ifnull 77
        76: .line 277
            aload 28 /* roots */
            aload 5 /* mainModule */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        77: .line 280
      StackMap locals: java.util.Set
      StackMap stack:
            iconst_0
            istore 29 /* addAllDefaultModules */
        start local 29 // boolean addAllDefaultModules
        78: .line 281
            iconst_0
            istore 30 /* addAllSystemModules */
        start local 30 // boolean addAllSystemModules
        79: .line 282
            iconst_0
            istore 31 /* addAllApplicationModules */
        start local 31 // boolean addAllApplicationModules
        80: .line 283
            aload 6 /* addModules */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 33
            goto 93
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int top java.util.Iterator
      StackMap stack:
        81: aload 33
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 32 /* mod */
        start local 32 // java.lang.String mod
        82: .line 284
            aload 32 /* mod */
            dup
            astore 34
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1057501189: 83
            564408789: 84
           1070226586: 85
              default: 92
          }
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
        83: aload 34
            ldc "ALL-SYSTEM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 88
            goto 92
      StackMap locals:
      StackMap stack:
        84: aload 34
            ldc "ALL-DEFAULT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 86
            goto 92
      StackMap locals:
      StackMap stack:
        85: aload 34
            ldc "ALL-MODULE-PATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 90
            goto 92
        86: .line 286
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 29 /* addAllDefaultModules */
        87: .line 287
            goto 93
        88: .line 289
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 30 /* addAllSystemModules */
        89: .line 290
            goto 93
        90: .line 292
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 31 /* addAllApplicationModules */
        91: .line 293
            goto 93
        92: .line 295
      StackMap locals:
      StackMap stack:
            aload 28 /* roots */
            aload 32 /* mod */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 32 // java.lang.String mod
        93: .line 283
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int top java.util.Iterator
      StackMap stack:
            aload 33
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 81
        94: .line 300
            aload 27 /* finder */
            astore 26 /* savedModuleFinder */
        95: .line 301
            aload 7 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 97
        96: .line 302
            aload 27 /* finder */
            aload 7 /* limitModules */
            aload 28 /* roots */
            invokestatic jdk.internal.module.ModuleBootstrap.limitFinder:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 27 /* finder */
        97: .line 311
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int
      StackMap stack:
            aload 5 /* mainModule */
            ifnull 98
            iload 29 /* addAllDefaultModules */
            ifeq 99
        98: .line 312
      StackMap locals:
      StackMap stack:
            aload 28 /* roots */
            aload 13 /* systemModuleFinder */
            aload 27 /* finder */
            invokestatic jdk.internal.module.DefaultRoots.compute:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        99: .line 317
      StackMap locals:
      StackMap stack:
            iload 30 /* addAllSystemModules */
            ifeq 107
       100: .line 318
            aload 27 /* finder */
            astore 32 /* f */
        start local 32 // java.lang.module.ModuleFinder f
       101: .line 319
            aload 13 /* systemModuleFinder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
       102: .line 320
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       103: .line 321
            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;
       104: .line 322
            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;
       105: .line 323
            aload 32 /* f */
            invokedynamic test(Ljava/lang/module/ModuleFinder;)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/ModuleBootstrap.lambda$2(Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       106: .line 324
            aload 28 /* 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/internal/module/ModuleBootstrap.lambda$3(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 32 // java.lang.module.ModuleFinder f
       107: .line 329
      StackMap locals:
      StackMap stack:
            aload 3 /* appModulePath */
            ifnull 118
            iload 31 /* addAllApplicationModules */
            ifeq 118
       108: .line 330
            aload 27 /* finder */
            astore 32 /* f */
        start local 32 // java.lang.module.ModuleFinder f
       109: .line 331
            aload 3 /* appModulePath */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
       110: .line 332
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       111: .line 333
            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;
       112: .line 334
            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;
       113: .line 335
            aload 32 /* f */
            invokedynamic test(Ljava/lang/module/ModuleFinder;)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/ModuleBootstrap.lambda$6(Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       114: .line 336
            aload 28 /* 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/internal/module/ModuleBootstrap.lambda$7(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 32 // java.lang.module.ModuleFinder f
        end local 31 // boolean addAllApplicationModules
        end local 30 // boolean addAllSystemModules
        end local 29 // boolean addAllDefaultModules
       115: .line 338
            goto 118
        end local 28 // java.util.Set roots
        end local 27 // java.lang.module.ModuleFinder finder
       116: .line 340
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder
      StackMap stack:
            aload 13 /* systemModuleFinder */
            astore 27 /* finder */
        start local 27 // java.lang.module.ModuleFinder finder
       117: .line 341
            aconst_null
            astore 28 /* roots */
        start local 28 // java.util.Set roots
       118: .line 344
      StackMap locals: java.lang.module.ModuleFinder java.util.Set
      StackMap stack:
            ldc "jdk.module.boot.3.optionsAndRootsTime"
            lload 24 /* t3 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       119: .line 351
            invokestatic java.lang.System.nanoTime:()J
            lstore 29 /* t4 */
        start local 29 // long t4
       120: .line 354
            iload 15 /* needResolution */
            ifeq 123
       121: .line 355
            aload 27 /* finder */
            aload 28 /* roots */
            aload 8 /* traceOutput */
            invokestatic jdk.internal.module.Modules.newBootLayerConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Collection;Ljava/io/PrintStream;)Ljava/lang/module/Configuration;
            astore 31 /* cf */
        start local 31 // java.lang.module.Configuration cf
       122: .line 356
            goto 128
        end local 31 // java.lang.module.Configuration cf
       123: .line 357
      StackMap locals: long
      StackMap stack:
            aload 19 /* archivedModuleGraph */
            ifnull 126
       124: .line 358
            aload 19 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.configuration:()Ljava/lang/module/Configuration;
            astore 31 /* cf */
        start local 31 // java.lang.module.Configuration cf
       125: .line 359
            goto 128
        end local 31 // java.lang.module.Configuration cf
       126: .line 360
      StackMap locals:
      StackMap stack:
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.moduleReads:()Ljava/util/Map;
            astore 32 /* map */
        start local 32 // java.util.Map map
       127: .line 361
            getstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/access/JavaLangModuleAccess;
            aload 13 /* systemModuleFinder */
            aload 32 /* map */
            invokeinterface jdk.internal.access.JavaLangModuleAccess.newConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Map;)Ljava/lang/module/Configuration;
            astore 31 /* cf */
        end local 32 // java.util.Map map
        start local 31 // java.lang.module.Configuration cf
       128: .line 366
      StackMap locals: java.lang.module.Configuration
      StackMap stack:
            iload 4 /* isPatched */
            ifeq 133
       129: .line 367
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            invokevirtual jdk.internal.module.ModulePatcher.patchedModules:()Ljava/util/Set;
       130: .line 368
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       131: .line 369
            aload 31 /* cf */
            invokedynamic test(Ljava/lang/module/Configuration;)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/ModuleBootstrap.lambda$8(Ljava/lang/module/Configuration;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       132: .line 370
            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/internal/module/ModuleBootstrap.lambda$9(Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
       133: .line 373
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.4.resolveTime"
            lload 29 /* t4 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       134: .line 383
            invokestatic java.lang.System.nanoTime:()J
            lstore 32 /* t5 */
        start local 32 // long t5
       135: .line 386
            aload 31 /* cf */
            invokestatic jdk.internal.module.ModuleLoaderMap.mappingFunction:(Ljava/lang/module/Configuration;)Ljava/util/function/Function;
            astore 34 /* clf */
        start local 34 // java.util.function.Function clf
       136: .line 390
            iload 14 /* haveModulePath */
            ifeq 149
       137: .line 391
            aload 31 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 36
            goto 148
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set long java.lang.module.Configuration long java.util.function.Function top java.util.Iterator
      StackMap stack:
       138: aload 36
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 35 /* resolvedModule */
        start local 35 // java.lang.module.ResolvedModule resolvedModule
       139: .line 392
            aload 35 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 37 /* mref */
        start local 37 // java.lang.module.ModuleReference mref
       140: .line 393
            aload 37 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 38 /* name */
        start local 38 // java.lang.String name
       141: .line 394
            aload 34 /* clf */
            aload 38 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 39 /* cl */
        start local 39 // java.lang.ClassLoader cl
       142: .line 395
            aload 39 /* cl */
            ifnonnull 148
       143: .line 396
            aload 2 /* upgradeModulePath */
            ifnull 146
       144: .line 397
            aload 2 /* upgradeModulePath */
            aload 38 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 146
       145: .line 398
            new java.lang.StringBuilder
            dup
            aload 38 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot be loaded from upgrade module path"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
       146: .line 399
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set long java.lang.module.Configuration long java.util.function.Function java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 13 /* systemModuleFinder */
            aload 38 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 148
       147: .line 400
            new java.lang.StringBuilder
            dup
            aload 38 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot be loaded from application module path"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        end local 39 // java.lang.ClassLoader cl
        end local 38 // java.lang.String name
        end local 37 // java.lang.module.ModuleReference mref
        end local 35 // java.lang.module.ResolvedModule resolvedModule
       148: .line 391
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set long java.lang.module.Configuration long java.util.function.Function top java.util.Iterator
      StackMap stack:
            aload 36
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 138
       149: .line 406
      StackMap locals: long java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String long jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set long java.lang.module.Configuration long java.util.function.Function
      StackMap stack:
            iload 17 /* hasSplitPackages */
            ifne 150
            iload 4 /* isPatched */
            ifne 150
            iload 14 /* haveModulePath */
            ifeq 151
       150: .line 407
      StackMap locals:
      StackMap stack:
            aload 31 /* cf */
            aload 34 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkSplitPackages:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       151: .line 411
      StackMap locals:
      StackMap stack:
            aload 31 /* cf */
            aload 34 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.loadModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       152: .line 413
            ldc "jdk.module.boot.5.loadModulesTime"
            lload 32 /* t5 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       153: .line 418
            invokestatic java.lang.System.nanoTime:()J
            lstore 35 /* t6 */
        start local 35 // long t6
       154: .line 419
            invokestatic java.lang.ModuleLayer.empty:()Ljava/lang/ModuleLayer;
            aload 31 /* cf */
            aload 34 /* clf */
            invokevirtual java.lang.ModuleLayer.defineModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)Ljava/lang/ModuleLayer;
            astore 37 /* bootLayer */
        start local 37 // java.lang.ModuleLayer bootLayer
       155: .line 420
            ldc "jdk.module.boot.6.layerCreateTime"
            lload 35 /* t6 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       156: .line 426
            iload 18 /* hasIncubatorModules */
            ifne 157
            iload 14 /* haveModulePath */
            ifeq 158
       157: .line 427
      StackMap locals: long java.lang.ModuleLayer
      StackMap stack:
            aload 31 /* cf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkIncubatingStatus:(Ljava/lang/module/Configuration;)V
       158: .line 431
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 38 /* t7 */
        start local 38 // long t7
       159: .line 432
            aload 37 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraReads:(Ljava/lang/ModuleLayer;)V
       160: .line 433
            aload 37 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsAndOpens:(Ljava/lang/ModuleLayer;)Z
            istore 40 /* extraExportsOrOpens */
        start local 40 // boolean extraExportsOrOpens
       161: .line 437
            aload 19 /* archivedModuleGraph */
            ifnull 165
       162: .line 438
            aload 19 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.concealedPackagesToOpen:()Ljava/util/Map;
            astore 41 /* concealedPackagesToOpen */
        start local 41 // java.util.Map concealedPackagesToOpen
       163: .line 439
            aload 19 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.exportedPackagesToOpen:()Ljava/util/Map;
            astore 42 /* exportedPackagesToOpen */
        start local 42 // java.util.Map exportedPackagesToOpen
       164: .line 440
            goto 167
        end local 42 // java.util.Map exportedPackagesToOpen
        end local 41 // java.util.Map concealedPackagesToOpen
       165: .line 441
      StackMap locals: long int
      StackMap stack:
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.concealedPackagesToOpen:()Ljava/util/Map;
            astore 41 /* concealedPackagesToOpen */
        start local 41 // java.util.Map concealedPackagesToOpen
       166: .line 442
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.exportedPackagesToOpen:()Ljava/util/Map;
            astore 42 /* exportedPackagesToOpen */
        start local 42 // java.util.Map exportedPackagesToOpen
       167: .line 444
      StackMap locals: java.util.Map java.util.Map
      StackMap stack:
            aload 2 /* upgradeModulePath */
       168: .line 445
            aload 41 /* concealedPackagesToOpen */
       169: .line 446
            aload 42 /* exportedPackagesToOpen */
       170: .line 447
            aload 37 /* bootLayer */
       171: .line 448
            iload 40 /* extraExportsOrOpens */
       172: .line 444
            invokestatic jdk.internal.module.ModuleBootstrap.addIllegalAccess:(Ljava/lang/module/ModuleFinder;Ljava/util/Map;Ljava/util/Map;Ljava/lang/ModuleLayer;Z)V
       173: .line 449
            ldc "jdk.module.boot.7.adjustModulesTime"
            lload 38 /* t7 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       174: .line 452
            aload 26 /* savedModuleFinder */
            ifnull 178
       175: .line 453
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 26 /* savedModuleFinder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
       176: .line 454
            aload 26 /* savedModuleFinder */
            aload 27 /* finder */
            if_acmpeq 178
       177: .line 455
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 27 /* finder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
       178: .line 460
      StackMap locals:
      StackMap stack:
            iload 16 /* canArchive */
            ifeq 187
            aload 5 /* mainModule */
            ifnonnull 187
       179: .line 461
            aload 5 /* mainModule */
       180: .line 462
            iload 17 /* hasSplitPackages */
       181: .line 463
            iload 18 /* hasIncubatorModules */
       182: .line 464
            aload 13 /* systemModuleFinder */
       183: .line 465
            aload 31 /* cf */
       184: .line 466
            aload 41 /* concealedPackagesToOpen */
       185: .line 467
            aload 42 /* exportedPackagesToOpen */
       186: .line 461
            invokestatic jdk.internal.module.ArchivedModuleGraph.archive:(Ljava/lang/String;ZZLjava/lang/module/ModuleFinder;Ljava/lang/module/Configuration;Ljava/util/Map;Ljava/util/Map;)V
       187: .line 471
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.totalTime"
            lload 0 /* t0 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       188: .line 472
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.publish:()V
       189: .line 474
            aload 37 /* bootLayer */
            areturn
        end local 42 // java.util.Map exportedPackagesToOpen
        end local 41 // java.util.Map concealedPackagesToOpen
        end local 40 // boolean extraExportsOrOpens
        end local 38 // long t7
        end local 37 // java.lang.ModuleLayer bootLayer
        end local 35 // long t6
        end local 34 // java.util.function.Function clf
        end local 32 // long t5
        end local 31 // java.lang.module.Configuration cf
        end local 29 // long t4
        end local 28 // java.util.Set roots
        end local 27 // java.lang.module.ModuleFinder finder
        end local 26 // java.lang.module.ModuleFinder savedModuleFinder
        end local 24 // long t3
        end local 23 // java.net.URI baseUri
        end local 22 // java.lang.module.ModuleReference base
        end local 20 // long t2
        end local 19 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        end local 18 // boolean hasIncubatorModules
        end local 17 // boolean hasSplitPackages
        end local 16 // boolean canArchive
        end local 15 // boolean needResolution
        end local 14 // boolean haveModulePath
        end local 13 // java.lang.module.ModuleFinder systemModuleFinder
        end local 12 // jdk.internal.module.SystemModules systemModules
        end local 10 // long t1
        end local 9 // java.lang.String trace
        end local 8 // java.io.PrintStream traceOutput
        end local 7 // java.util.Set limitModules
        end local 6 // java.util.Set addModules
        end local 5 // java.lang.String mainModule
        end local 4 // boolean isPatched
        end local 3 // java.lang.module.ModuleFinder appModulePath
        end local 2 // java.lang.module.ModuleFinder upgradeModulePath
        end local 0 // long t0
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            1  190     0                        t0  J
            2  190     2         upgradeModulePath  Ljava/lang/module/ModuleFinder;
            3  190     3             appModulePath  Ljava/lang/module/ModuleFinder;
            4  190     4                 isPatched  Z
            5  190     5                mainModule  Ljava/lang/String;
            6  190     6                addModules  Ljava/util/Set<Ljava/lang/String;>;
            7  190     7              limitModules  Ljava/util/Set<Ljava/lang/String;>;
            8  190     8               traceOutput  Ljava/io/PrintStream;
            9  190     9                     trace  Ljava/lang/String;
           12  190    10                        t1  J
           13  190    12             systemModules  Ljdk/internal/module/SystemModules;
           25   31    13        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           42   43    13        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           45  190    13        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           16  190    14            haveModulePath  Z
           17  190    15            needResolution  Z
           18  190    16                canArchive  Z
           26   31    17          hasSplitPackages  Z
           46  190    17          hasSplitPackages  Z
           27   31    18       hasIncubatorModules  Z
           47  190    18       hasIncubatorModules  Z
           19  190    19       archivedModuleGraph  Ljdk/internal/module/ArchivedModuleGraph;
           50  190    20                        t2  J
           51  190    22                      base  Ljava/lang/module/ModuleReference;
           54  190    23                   baseUri  Ljava/net/URI;
           61   63    24                    errors  I
           64  190    24                        t3  J
           65  190    26         savedModuleFinder  Ljava/lang/module/ModuleFinder;
           72   73    27                    finder  Ljava/lang/module/ModuleFinder;
           74  116    27                    finder  Ljava/lang/module/ModuleFinder;
          117  190    27                    finder  Ljava/lang/module/ModuleFinder;
           75  116    28                     roots  Ljava/util/Set<Ljava/lang/String;>;
          118  190    28                     roots  Ljava/util/Set<Ljava/lang/String;>;
           78  115    29      addAllDefaultModules  Z
           79  115    30       addAllSystemModules  Z
           80  115    31  addAllApplicationModules  Z
           82   93    32                       mod  Ljava/lang/String;
          101  107    32                         f  Ljava/lang/module/ModuleFinder;
          109  115    32                         f  Ljava/lang/module/ModuleFinder;
          120  190    29                        t4  J
          122  123    31                        cf  Ljava/lang/module/Configuration;
          125  126    31                        cf  Ljava/lang/module/Configuration;
          128  190    31                        cf  Ljava/lang/module/Configuration;
          127  128    32                       map  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          135  190    32                        t5  J
          136  190    34                       clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
          139  148    35            resolvedModule  Ljava/lang/module/ResolvedModule;
          140  148    37                      mref  Ljava/lang/module/ModuleReference;
          141  148    38                      name  Ljava/lang/String;
          142  148    39                        cl  Ljava/lang/ClassLoader;
          154  190    35                        t6  J
          155  190    37                 bootLayer  Ljava/lang/ModuleLayer;
          159  190    38                        t7  J
          161  190    40       extraExportsOrOpens  Z
          163  165    41   concealedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          166  190    41   concealedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          164  165    42    exportedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          167  190    42    exportedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    Exceptions:
      throws java.lang.Exception

  private static void loadModules(java.lang.module.Configuration, java.util.function.Function<java.lang.String, java.lang.ClassLoader>);
    descriptor: (Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.module.Configuration cf
        start local 1 // java.util.function.Function clf
         0: .line 482
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 2 /* resolvedModule */
        start local 2 // java.lang.module.ResolvedModule resolvedModule
         2: .line 483
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
         3: .line 484
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.name:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         4: .line 485
            aload 1 /* clf */
            aload 5 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 6 /* loader */
        start local 6 // java.lang.ClassLoader loader
         5: .line 486
            aload 6 /* loader */
            ifnonnull 9
         6: .line 488
            aload 5 /* name */
            ldc "java.base"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         7: .line 489
            aload 4 /* mref */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
         8: .line 491
            goto 11
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String java.lang.ClassLoader
      StackMap stack:
         9: aload 6 /* loader */
            instanceof jdk.internal.loader.BuiltinClassLoader
            ifeq 11
        10: .line 492
            aload 6 /* loader */
            checkcast jdk.internal.loader.BuiltinClassLoader
            aload 4 /* mref */
            invokevirtual jdk.internal.loader.BuiltinClassLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
        end local 6 // java.lang.ClassLoader loader
        end local 5 // java.lang.String name
        end local 4 // java.lang.module.ModuleReference mref
        end local 2 // java.lang.module.ResolvedModule resolvedModule
        11: .line 482
      StackMap locals: java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        12: .line 495
            return
        end local 1 // java.util.function.Function clf
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0              cf  Ljava/lang/module/Configuration;
            0   13     1             clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
            2   11     2  resolvedModule  Ljava/lang/module/ResolvedModule;
            3   11     4            mref  Ljava/lang/module/ModuleReference;
            4   11     5            name  Ljava/lang/String;
            5   11     6          loader  Ljava/lang/ClassLoader;
    Signature: (Ljava/lang/module/Configuration;Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;)V
    MethodParameters:
      Name  Flags
      cf    
      clf   

  private static void checkSplitPackages(java.lang.module.Configuration, java.util.function.Function<java.lang.String, java.lang.ClassLoader>);
    descriptor: (Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=12, args_size=2
        start local 0 // java.lang.module.Configuration cf
        start local 1 // java.util.function.Function clf
         0: .line 503
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* packageToModule */
        start local 2 // java.util.Map packageToModule
         1: .line 504
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 3 /* resolvedModule */
        start local 3 // java.lang.module.ResolvedModule resolvedModule
         3: .line 505
            aload 3 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 5 /* descriptor */
        start local 5 // java.lang.module.ModuleDescriptor descriptor
         4: .line 506
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 507
            aload 1 /* clf */
            aload 6 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 7 /* loader */
        start local 7 // java.lang.ClassLoader loader
         6: .line 508
            aload 7 /* loader */
            ifnull 7
            aload 7 /* loader */
            instanceof jdk.internal.loader.BuiltinClassLoader
            ifeq 16
         7: .line 509
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
         8: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* p */
        start local 8 // java.lang.String p
         9: .line 510
            aload 2 /* packageToModule */
            aload 8 /* p */
            aload 6 /* name */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* other */
        start local 10 // java.lang.String other
        10: .line 511
            aload 10 /* other */
            ifnull 15
        11: .line 512
            new java.lang.StringBuilder
            dup
            ldc "Package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in both module "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 513
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " and module "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* other */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 512
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* msg */
        start local 11 // java.lang.String msg
        14: .line 514
            new java.lang.LayerInstantiationException
            dup
            aload 11 /* msg */
            invokespecial java.lang.LayerInstantiationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.lang.String msg
        end local 10 // java.lang.String other
        end local 8 // java.lang.String p
        15: .line 509
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 7 // java.lang.ClassLoader loader
        end local 6 // java.lang.String name
        end local 5 // java.lang.module.ModuleDescriptor descriptor
        end local 3 // java.lang.module.ResolvedModule resolvedModule
        16: .line 504
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        17: .line 519
            return
        end local 2 // java.util.Map packageToModule
        end local 1 // java.util.function.Function clf
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0               cf  Ljava/lang/module/Configuration;
            0   18     1              clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
            1   18     2  packageToModule  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3   16     3   resolvedModule  Ljava/lang/module/ResolvedModule;
            4   16     5       descriptor  Ljava/lang/module/ModuleDescriptor;
            5   16     6             name  Ljava/lang/String;
            6   16     7           loader  Ljava/lang/ClassLoader;
            9   15     8                p  Ljava/lang/String;
           10   15    10            other  Ljava/lang/String;
           14   15    11              msg  Ljava/lang/String;
    Signature: (Ljava/lang/module/Configuration;Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;)V
    MethodParameters:
      Name  Flags
      cf    
      clf   

  private 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: (0x000a) ACC_PRIVATE, 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 530
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
            aload 0 /* finder */
            iconst_0
            anewarray java.nio.file.Path
         1: .line 531
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
         2: .line 532
            aload 1 /* roots */
         3: .line 530
            invokevirtual java.lang.module.Configuration.resolve:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;Ljava/util/Collection;)Ljava/lang/module/Configuration;
            astore 3 /* cf */
        start local 3 // java.lang.module.Configuration cf
         4: .line 535
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* map */
        start local 4 // java.util.Map map
         5: .line 538
            aload 3 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         6: .line 539
            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;
         7: .line 540
            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/internal/module/ModuleBootstrap.lambda$11(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
         8: .line 543
            aload 2 /* otherMods */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 544
            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 545
            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 546
            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/internal/module/ModuleBootstrap.lambda$14(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 549
            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 551
            new jdk.internal.module.ModuleBootstrap$1
            dup
            aload 4 /* map */
            aload 6 /* mrefs */
            invokespecial jdk.internal.module.ModuleBootstrap$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;>;
            4   14     3         cf  Ljava/lang/module/Configuration;
            5   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.lang.module.ModuleFinder finderFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.lang.String prop
         0: .line 568
            aload 0 /* prop */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 569
            aload 1 /* s */
            ifnonnull 3
         2: .line 570
            aconst_null
            areturn
         3: .line 572
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* s */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* dirs */
        start local 2 // java.lang.String[] dirs
         4: .line 573
            aload 2 /* dirs */
            arraylength
            anewarray java.nio.file.Path
            astore 3 /* paths */
        start local 3 // java.nio.file.Path[] paths
         5: .line 574
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: .line 575
            aload 2 /* dirs */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: java.lang.String java.lang.String java.lang.String[] java.nio.file.Path[] int top int int java.lang.String[]
      StackMap stack:
         7: aload 8
            iload 6
            aaload
            astore 5 /* dir */
        start local 5 // java.lang.String dir
         8: .line 576
            aload 3 /* paths */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 5 /* dir */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aastore
        end local 5 // java.lang.String dir
         9: .line 575
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 7
        11: .line 578
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            aload 3 /* paths */
            invokestatic jdk.internal.module.ModulePath.of:(Ljdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            areturn
        end local 4 // int i
        end local 3 // java.nio.file.Path[] paths
        end local 2 // java.lang.String[] dirs
        end local 1 // java.lang.String s
        end local 0 // java.lang.String prop
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   prop  Ljava/lang/String;
            1   12     1      s  Ljava/lang/String;
            4   12     2   dirs  [Ljava/lang/String;
            5   12     3  paths  [Ljava/nio/file/Path;
            6   12     4      i  I
            8    9     5    dir  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      prop  

  private static jdk.internal.module.ModulePatcher initModulePatcher();
    descriptor: ()Ljdk/internal/module/ModulePatcher;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 587
            ldc "jdk.module.patch."
         1: .line 588
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
         2: .line 589
            iconst_0
         3: .line 587
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
            astore 0 /* map */
        start local 0 // java.util.Map map
         4: .line 590
            new jdk.internal.module.ModulePatcher
            dup
            aload 0 /* map */
            invokespecial jdk.internal.module.ModulePatcher.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    5     0   map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  private static java.util.Set<java.lang.String> addModules();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=0
         0: .line 597
            ldc "jdk.module.addmods."
            astore 0 /* prefix */
        start local 0 // java.lang.String prefix
         1: .line 598
            iconst_0
            istore 1 /* index */
        start local 1 // int index
         2: .line 600
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        start local 2 // java.lang.String value
         3: .line 601
            aload 2 /* value */
            ifnonnull 5
         4: .line 602
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         5: .line 604
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* modules */
        start local 3 // java.util.Set modules
         6: .line 605
            goto 15
         7: .line 606
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* value */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 12
      StackMap locals: java.lang.String int java.lang.String java.util.Set top int int java.lang.String[]
      StackMap stack:
         8: aload 7
            iload 5
            aaload
            astore 4 /* s */
        start local 4 // java.lang.String s
         9: .line 607
            aload 4 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
        10: .line 608
            aload 3 /* modules */
            aload 4 /* s */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String s
        11: .line 606
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 8
        13: .line 610
            iinc 1 /* index */ 1
        14: .line 611
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        15: .line 605
      StackMap locals: java.lang.String int java.lang.String java.util.Set
      StackMap stack:
            aload 2 /* value */
            ifnonnull 7
        16: .line 613
            aload 3 /* modules */
            areturn
        end local 3 // java.util.Set modules
        end local 2 // java.lang.String value
        end local 1 // int index
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1   17     0   prefix  Ljava/lang/String;
            2   17     1    index  I
            3   17     2    value  Ljava/lang/String;
            6   17     3  modules  Ljava/util/Set<Ljava/lang/String;>;
            9   11     4        s  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> limitModules();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=0
         0: .line 621
            ldc "jdk.module.limitmods"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* value */
        start local 0 // java.lang.String value
         1: .line 622
            aload 0 /* value */
            ifnonnull 3
         2: .line 623
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         3: .line 625
      StackMap locals: java.lang.String
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* names */
        start local 1 // java.util.Set names
         4: .line 626
            aload 0 /* value */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.lang.String java.util.Set top int int java.lang.String[]
      StackMap stack:
         5: aload 5
            iload 3
            aaload
            astore 2 /* name */
        start local 2 // java.lang.String name
         6: .line 627
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            ifle 7
            aload 1 /* names */
            aload 2 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String name
         7: .line 626
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 5
         9: .line 629
            aload 1 /* names */
            areturn
        end local 1 // java.util.Set names
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1   10     0  value  Ljava/lang/String;
            4   10     1  names  Ljava/util/Set<Ljava/lang/String;>;
            6    7     2   name  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static void addExtraReads(java.lang.ModuleLayer);
    descriptor: (Ljava/lang/ModuleLayer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=9, args_size=1
        start local 0 // java.lang.ModuleLayer bootLayer
         0: .line 640
            ldc "jdk.module.addreads."
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 1 /* map */
        start local 1 // java.util.Map map
         1: .line 641
            aload 1 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 3
         2: .line 642
            return
         3: .line 644
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 22
      StackMap locals: java.lang.ModuleLayer java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* e */
        start local 2 // java.util.Map$Entry e
         5: .line 647
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* mn */
        start local 4 // java.lang.String mn
         6: .line 648
            aload 0 /* bootLayer */
            aload 4 /* mn */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 5 /* om */
        start local 5 // java.util.Optional om
         7: .line 649
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 10
         8: .line 650
            ldc "--add-reads"
            aload 4 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 651
            goto 22
        10: .line 653
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional
      StackMap stack:
            aload 5 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 6 /* m */
        start local 6 // java.lang.Module m
        11: .line 656
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 21
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* name */
        start local 7 // java.lang.String name
        13: .line 657
            ldc "ALL-UNNAMED"
            aload 7 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 658
            aload 6 /* m */
            invokestatic jdk.internal.module.Modules.addReadsAllUnnamed:(Ljava/lang/Module;)V
        15: .line 659
            goto 21
        16: .line 660
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module java.lang.String java.util.Iterator
      StackMap stack:
            aload 0 /* bootLayer */
            aload 7 /* name */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 5 /* om */
        17: .line 661
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 20
        18: .line 662
            aload 6 /* m */
            aload 5 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            invokestatic jdk.internal.module.Modules.addReads:(Ljava/lang/Module;Ljava/lang/Module;)V
        19: .line 663
            goto 21
        20: .line 664
      StackMap locals:
      StackMap stack:
            ldc "--add-reads"
            aload 7 /* name */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        end local 7 // java.lang.String name
        21: .line 656
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 6 // java.lang.Module m
        end local 5 // java.util.Optional om
        end local 4 // java.lang.String mn
        end local 2 // java.util.Map$Entry e
        22: .line 644
      StackMap locals: java.lang.ModuleLayer java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        23: .line 669
            return
        end local 1 // java.util.Map map
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0  bootLayer  Ljava/lang/ModuleLayer;
            1   24     1        map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            5   22     2          e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            6   22     4         mn  Ljava/lang/String;
            7   22     5         om  Ljava/util/Optional<Ljava/lang/Module;>;
           11   22     6          m  Ljava/lang/Module;
           13   21     7       name  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      bootLayer  

  private static boolean addExtraExportsAndOpens(java.lang.ModuleLayer);
    descriptor: (Ljava/lang/ModuleLayer;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.ModuleLayer bootLayer
         0: .line 676
            iconst_0
            istore 1 /* extraExportsOrOpens */
        start local 1 // boolean extraExportsOrOpens
         1: .line 679
            ldc "jdk.module.addexports."
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         2: .line 680
            aload 2 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 3 /* extraExports */
        start local 3 // java.util.Map extraExports
         3: .line 681
            aload 3 /* extraExports */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 6
         4: .line 682
            aload 0 /* bootLayer */
            aload 3 /* extraExports */
            iconst_0
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
         5: .line 683
            iconst_1
            istore 1 /* extraExportsOrOpens */
         6: .line 688
      StackMap locals: int java.lang.String java.util.Map
      StackMap stack:
            ldc "jdk.module.addopens."
            astore 2 /* prefix */
         7: .line 689
            aload 2 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 4 /* extraOpens */
        start local 4 // java.util.Map extraOpens
         8: .line 690
            aload 4 /* extraOpens */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 11
         9: .line 691
            aload 0 /* bootLayer */
            aload 4 /* extraOpens */
            iconst_1
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
        10: .line 692
            iconst_1
            istore 1 /* extraExportsOrOpens */
        11: .line 695
      StackMap locals: java.util.Map
      StackMap stack:
            iload 1 /* extraExportsOrOpens */
            ireturn
        end local 4 // java.util.Map extraOpens
        end local 3 // java.util.Map extraExports
        end local 2 // java.lang.String prefix
        end local 1 // boolean extraExportsOrOpens
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0            bootLayer  Ljava/lang/ModuleLayer;
            1   12     1  extraExportsOrOpens  Z
            2   12     2               prefix  Ljava/lang/String;
            3   12     3         extraExports  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            8   12     4           extraOpens  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
           Name  Flags
      bootLayer  

  private static void addExtraExportsOrOpens(java.lang.ModuleLayer, java.util.Map<java.lang.String, java.util.List<java.lang.String>>, );
    descriptor: (Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=16, args_size=3
        start local 0 // java.lang.ModuleLayer bootLayer
        start local 1 // java.util.Map map
        start local 2 // boolean opens
         0: .line 702
            iload 2 /* opens */
            ifeq 1
            ldc "--add-opens"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "--add-exports"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* option */
        start local 3 // java.lang.String option
         3: .line 703
            aload 1 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 45
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* e */
        start local 4 // java.util.Map$Entry e
         5: .line 706
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* key */
        start local 6 // java.lang.String key
         6: .line 707
            aload 6 /* key */
            ldc "/"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* s */
        start local 7 // java.lang.String[] s
         7: .line 708
            aload 7 /* s */
            arraylength
            iconst_2
            if_icmpeq 9
         8: .line 709
            aload 3 /* option */
            ldc "<module>/<package>"
            aload 6 /* key */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
         9: .line 711
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[]
      StackMap stack:
            aload 7 /* s */
            iconst_0
            aaload
            astore 8 /* mn */
        start local 8 // java.lang.String mn
        10: .line 712
            aload 7 /* s */
            iconst_1
            aaload
            astore 9 /* pn */
        start local 9 // java.lang.String pn
        11: .line 713
            aload 8 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 12
            aload 9 /* pn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
        12: .line 714
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* option */
            ldc "<module>/<package>"
            aload 6 /* key */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        13: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* bootLayer */
            aload 8 /* mn */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 11 /* om */
        start local 11 // java.util.Optional om
        14: .line 719
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 17
        15: .line 720
            aload 3 /* option */
            aload 8 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 721
            goto 45
        17: .line 724
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String top java.util.Optional
      StackMap stack:
            aload 11 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 10 /* m */
        start local 10 // java.lang.Module m
        18: .line 726
            aload 10 /* m */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            aload 9 /* pn */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 21
        19: .line 727
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* pn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
        20: .line 728
            goto 45
        21: .line 732
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 44
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional top java.util.Iterator
      StackMap stack:
        22: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* name */
        start local 12 // java.lang.String name
        23: .line 733
            iconst_0
            istore 14 /* allUnnamed */
        start local 14 // boolean allUnnamed
        24: .line 734
            aconst_null
            astore 15 /* other */
        start local 15 // java.lang.Module other
        25: .line 735
            ldc "ALL-UNNAMED"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 736
            iconst_1
            istore 14 /* allUnnamed */
        27: .line 737
            goto 34
        28: .line 738
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional java.lang.String java.util.Iterator int java.lang.Module
      StackMap stack:
            aload 0 /* bootLayer */
            aload 12 /* name */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 11 /* om */
        29: .line 739
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 32
        30: .line 740
            aload 11 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 15 /* other */
        31: .line 741
            goto 34
        32: .line 742
      StackMap locals:
      StackMap stack:
            aload 3 /* option */
            aload 12 /* name */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        33: .line 743
            goto 44
        34: .line 746
      StackMap locals:
      StackMap stack:
            iload 14 /* allUnnamed */
            ifeq 40
        35: .line 747
            iload 2 /* opens */
            ifeq 38
        36: .line 748
            aload 10 /* m */
            aload 9 /* pn */
            invokestatic jdk.internal.module.Modules.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/lang/String;)V
        37: .line 749
            goto 44
        38: .line 750
      StackMap locals:
      StackMap stack:
            aload 10 /* m */
            aload 9 /* pn */
            invokestatic jdk.internal.module.Modules.addExportsToAllUnnamed:(Ljava/lang/Module;Ljava/lang/String;)V
        39: .line 752
            goto 44
        40: .line 753
      StackMap locals:
      StackMap stack:
            iload 2 /* opens */
            ifeq 43
        41: .line 754
            aload 10 /* m */
            aload 9 /* pn */
            aload 15 /* other */
            invokestatic jdk.internal.module.Modules.addOpens:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
        42: .line 755
            goto 44
        43: .line 756
      StackMap locals:
      StackMap stack:
            aload 10 /* m */
            aload 9 /* pn */
            aload 15 /* other */
            invokestatic jdk.internal.module.Modules.addExports:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
        end local 15 // java.lang.Module other
        end local 14 // boolean allUnnamed
        end local 12 // java.lang.String name
        44: .line 732
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 11 // java.util.Optional om
        end local 10 // java.lang.Module m
        end local 9 // java.lang.String pn
        end local 8 // java.lang.String mn
        end local 7 // java.lang.String[] s
        end local 6 // java.lang.String key
        end local 4 // java.util.Map$Entry e
        45: .line 703
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        46: .line 762
            return
        end local 3 // java.lang.String option
        end local 2 // boolean opens
        end local 1 // java.util.Map map
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   47     0   bootLayer  Ljava/lang/ModuleLayer;
            0   47     1         map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            0   47     2       opens  Z
            3   47     3      option  Ljava/lang/String;
            5   45     4           e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            6   45     6         key  Ljava/lang/String;
            7   45     7           s  [Ljava/lang/String;
           10   45     8          mn  Ljava/lang/String;
           11   45     9          pn  Ljava/lang/String;
           18   45    10           m  Ljava/lang/Module;
           14   45    11          om  Ljava/util/Optional<Ljava/lang/Module;>;
           23   44    12        name  Ljava/lang/String;
           24   44    14  allUnnamed  Z
           25   44    15       other  Ljava/lang/Module;
    Signature: (Ljava/lang/ModuleLayer;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Z)V
    MethodParameters:
           Name  Flags
      bootLayer  
      map        
      opens      

  private static void addIllegalAccess(java.lang.module.ModuleFinder, java.util.Map<java.lang.String, java.util.Set<java.lang.String>>, java.util.Map<java.lang.String, java.util.Set<java.lang.String>>, java.lang.ModuleLayer, );
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/util/Map;Ljava/util/Map;Ljava/lang/ModuleLayer;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=17, args_size=5
        start local 0 // java.lang.module.ModuleFinder upgradeModulePath
        start local 1 // java.util.Map concealedPackagesToOpen
        start local 2 // java.util.Map exportedPackagesToOpen
        start local 3 // java.lang.ModuleLayer bootLayer
        start local 4 // boolean extraExportsOrOpens
         0: .line 773
            ldc "jdk.module.illegalAccess"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* value */
        start local 5 // java.lang.String value
         1: .line 774
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.ONESHOT:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 6 /* mode */
        start local 6 // jdk.internal.module.IllegalAccessLogger$Mode mode
         2: .line 775
            aload 5 /* value */
            ifnull 17
         3: .line 776
            aload 5 /* value */
            dup
            astore 7
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
           -991722469: 4
              3079692: 5
              3641990: 6
             95458899: 7
              default: 13
          }
      StackMap locals: java.lang.String jdk.internal.module.IllegalAccessLogger$Mode java.lang.String
      StackMap stack:
         4: aload 7
            ldc "permit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            goto 13
      StackMap locals:
      StackMap stack:
         5: aload 7
            ldc "deny"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 13
      StackMap locals:
      StackMap stack:
         6: aload 7
            ldc "warn"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 13
      StackMap locals:
      StackMap stack:
         7: aload 7
            ldc "debug"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 13
         8: .line 778
      StackMap locals:
      StackMap stack:
            return
         9: .line 782
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.WARN:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 6 /* mode */
        10: .line 783
            goto 17
        11: .line 785
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.DEBUG:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 6 /* mode */
        12: .line 786
            goto 17
        13: .line 788
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Value specified to --illegal-access not recognized: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 789
            aload 5 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 788
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        16: .line 790
            return
        17: .line 794
      StackMap locals:
      StackMap stack:
            new jdk.internal.module.IllegalAccessLogger$Builder
            dup
            aload 6 /* mode */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokespecial jdk.internal.module.IllegalAccessLogger$Builder.<init>:(Ljdk/internal/module/IllegalAccessLogger$Mode;Ljava/io/PrintStream;)V
        18: .line 793
            astore 8 /* builder */
        start local 8 // jdk.internal.module.IllegalAccessLogger$Builder builder
        19: .line 796
            aload 1 /* concealedPackagesToOpen */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 23
            aload 2 /* exportedPackagesToOpen */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 23
        20: .line 798
            invokestatic jdk.internal.module.ModuleBootstrap.limitedFinder:()Ljava/lang/module/ModuleFinder;
            invokestatic jdk.internal.module.IllegalAccessMaps.generate:(Ljava/lang/module/ModuleFinder;)Ljdk/internal/module/IllegalAccessMaps;
            astore 9 /* maps */
        start local 9 // jdk.internal.module.IllegalAccessMaps maps
        21: .line 799
            aload 9 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.concealedPackagesToOpen:()Ljava/util/Map;
            astore 1 /* concealedPackagesToOpen */
        22: .line 800
            aload 9 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.exportedPackagesToOpen:()Ljava/util/Map;
            astore 2 /* exportedPackagesToOpen */
        end local 9 // jdk.internal.module.IllegalAccessMaps maps
        23: .line 804
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder
      StackMap stack:
            aload 3 /* bootLayer */
            invokevirtual java.lang.ModuleLayer.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 56
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder top java.util.Iterator
      StackMap stack:
        24: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 9 /* m */
        start local 9 // java.lang.Module m
        25: .line 805
            aload 9 /* m */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 11 /* descriptor */
        start local 11 // java.lang.module.ModuleDescriptor descriptor
        26: .line 806
            aload 9 /* m */
            invokevirtual java.lang.Module.getName:()Ljava/lang/String;
            astore 12 /* name */
        start local 12 // java.lang.String name
        27: .line 809
            aload 11 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 29
        28: .line 810
            goto 56
        29: .line 814
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.lang.Module java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String
      StackMap stack:
            aload 0 /* upgradeModulePath */
            ifnull 32
        30: .line 815
            aload 0 /* upgradeModulePath */
            aload 12 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 32
        31: .line 816
            goto 56
        32: .line 819
      StackMap locals:
      StackMap stack:
            aload 1 /* concealedPackagesToOpen */
            aload 12 /* name */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 13 /* concealedPackages */
        start local 13 // java.util.Set concealedPackages
        33: .line 820
            aload 2 /* exportedPackagesToOpen */
            aload 12 /* name */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 14 /* exportedPackages */
        start local 14 // java.util.Set exportedPackages
        34: .line 823
            iload 4 /* extraExportsOrOpens */
            ifeq 50
        35: .line 824
            new java.util.HashSet
            dup
            aload 13 /* concealedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 13 /* concealedPackages */
        36: .line 825
            new java.util.HashSet
            dup
            aload 14 /* exportedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 14 /* exportedPackages */
        37: .line 826
            aload 13 /* concealedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15 /* iterator */
        start local 15 // java.util.Iterator iterator
        38: .line 827
            goto 43
        39: .line 828
      StackMap locals: java.util.Set java.util.Set java.util.Iterator
      StackMap stack:
            aload 15 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* pn */
        start local 16 // java.lang.String pn
        40: .line 829
            aload 9 /* m */
            aload 16 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isExported:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 43
        41: .line 831
            aload 15 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        42: .line 832
            aload 14 /* exportedPackages */
            aload 16 /* pn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // java.lang.String pn
        43: .line 827
      StackMap locals:
      StackMap stack:
            aload 15 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        44: .line 835
            aload 14 /* exportedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15 /* iterator */
        45: .line 836
            goto 49
        46: .line 837
      StackMap locals:
      StackMap stack:
            aload 15 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* pn */
        start local 16 // java.lang.String pn
        47: .line 838
            aload 9 /* m */
            aload 16 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isOpen:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 49
        48: .line 840
            aload 15 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 16 // java.lang.String pn
        49: .line 836
      StackMap locals:
      StackMap stack:
            aload 15 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        end local 15 // java.util.Iterator iterator
        50: .line 846
      StackMap locals:
      StackMap stack:
            aload 8 /* builder */
            aload 9 /* m */
            aload 13 /* concealedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToConcealedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        51: .line 849
            aload 8 /* builder */
            aload 9 /* m */
            aload 14 /* exportedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToExportedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        52: .line 852
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
            astore 15 /* jla */
        start local 15 // jdk.internal.access.JavaLangAccess jla
        53: .line 853
            aload 15 /* jla */
            aload 9 /* m */
            aload 13 /* concealedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
        54: .line 854
            aload 14 /* exportedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
        55: .line 853
            invokestatic jdk.internal.module.ModuleBootstrap.concat:(Ljava/util/Iterator;Ljava/util/Iterator;)Ljava/util/Iterator;
            invokeinterface jdk.internal.access.JavaLangAccess.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/util/Iterator;)V
        end local 15 // jdk.internal.access.JavaLangAccess jla
        end local 14 // java.util.Set exportedPackages
        end local 13 // java.util.Set concealedPackages
        end local 12 // java.lang.String name
        end local 11 // java.lang.module.ModuleDescriptor descriptor
        end local 9 // java.lang.Module m
        56: .line 804
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        57: .line 857
            aload 8 /* builder */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.complete:()V
        58: .line 858
            return
        end local 8 // jdk.internal.module.IllegalAccessLogger$Builder builder
        end local 6 // jdk.internal.module.IllegalAccessLogger$Mode mode
        end local 5 // java.lang.String value
        end local 4 // boolean extraExportsOrOpens
        end local 3 // java.lang.ModuleLayer bootLayer
        end local 2 // java.util.Map exportedPackagesToOpen
        end local 1 // java.util.Map concealedPackagesToOpen
        end local 0 // java.lang.module.ModuleFinder upgradeModulePath
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   59     0        upgradeModulePath  Ljava/lang/module/ModuleFinder;
            0   59     1  concealedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            0   59     2   exportedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            0   59     3                bootLayer  Ljava/lang/ModuleLayer;
            0   59     4      extraExportsOrOpens  Z
            1   59     5                    value  Ljava/lang/String;
            2   59     6                     mode  Ljdk/internal/module/IllegalAccessLogger$Mode;
           19   59     8                  builder  Ljdk/internal/module/IllegalAccessLogger$Builder;
           21   23     9                     maps  Ljdk/internal/module/IllegalAccessMaps;
           25   56     9                        m  Ljava/lang/Module;
           26   56    11               descriptor  Ljava/lang/module/ModuleDescriptor;
           27   56    12                     name  Ljava/lang/String;
           33   56    13        concealedPackages  Ljava/util/Set<Ljava/lang/String;>;
           34   56    14         exportedPackages  Ljava/util/Set<Ljava/lang/String;>;
           38   50    15                 iterator  Ljava/util/Iterator<Ljava/lang/String;>;
           40   43    16                       pn  Ljava/lang/String;
           47   49    16                       pn  Ljava/lang/String;
           53   56    15                      jla  Ljdk/internal/access/JavaLangAccess;
    Signature: (Ljava/lang/module/ModuleFinder;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;Ljava/lang/ModuleLayer;Z)V
    MethodParameters:
                         Name  Flags
      upgradeModulePath        
      concealedPackagesToOpen  
      exportedPackagesToOpen   
      bootLayer                
      extraExportsOrOpens      

  private static java.util.Map<java.lang.String, java.util.List<java.lang.String>> decode(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=15, args_size=3
        start local 0 // java.lang.String prefix
        start local 1 // java.lang.String regex
        start local 2 // boolean allowDuplicates
         0: .line 870
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: .line 872
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        start local 4 // java.lang.String value
         2: .line 873
            aload 4 /* value */
            ifnonnull 4
         3: .line 874
            invokestatic java.util.Map.of:()Ljava/util/Map;
            areturn
         4: .line 876
      StackMap locals: int java.lang.String
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* map */
        start local 5 // java.util.Map map
         5: .line 878
            goto 30
         6: .line 880
      StackMap locals: java.util.Map
      StackMap stack:
            aload 4 /* value */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* pos */
        start local 6 // int pos
         7: .line 881
            iload 6 /* pos */
            iconst_m1
            if_icmpne 9
         8: .line 882
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
         9: .line 883
      StackMap locals: int
      StackMap stack:
            iload 6 /* pos */
            ifne 11
        10: .line 884
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        11: .line 887
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            iconst_0
            iload 6 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* key */
        start local 7 // java.lang.String key
        12: .line 889
            aload 4 /* value */
            iload 6 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* rhs */
        start local 8 // java.lang.String rhs
        13: .line 890
            aload 8 /* rhs */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 15
        14: .line 891
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        15: .line 894
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iload 2 /* allowDuplicates */
            ifne 17
            aload 5 /* map */
            aload 7 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 895
            new java.lang.StringBuilder
            dup
            aload 7 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " specified more than once to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        17: .line 896
      StackMap locals:
      StackMap stack:
            aload 5 /* map */
            aload 7 /* key */
            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/internal/module/ModuleBootstrap.lambda$15(Ljava/lang/String;)Ljava/util/List; (6)
                  (Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.List
            astore 9 /* values */
        start local 9 // java.util.List values
        18: .line 897
            iconst_0
            istore 10 /* ntargets */
        start local 10 // int ntargets
        19: .line 898
            aload 8 /* rhs */
            aload 1 /* regex */
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 25
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map int java.lang.String java.lang.String java.util.List int top int int java.lang.String[]
      StackMap stack:
        20: aload 14
            iload 12
            aaload
            astore 11 /* s */
        start local 11 // java.lang.String s
        21: .line 899
            aload 11 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 24
        22: .line 900
            aload 9 /* values */
            aload 11 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 901
            iinc 10 /* ntargets */ 1
        end local 11 // java.lang.String s
        24: .line 898
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        25: iload 12
            iload 13
            if_icmplt 20
        26: .line 904
            iload 10 /* ntargets */
            ifne 28
        27: .line 905
            new java.lang.StringBuilder
            dup
            ldc "Target must be specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        28: .line 907
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map int java.lang.String java.lang.String java.util.List int
      StackMap stack:
            iinc 3 /* index */ 1
        29: .line 908
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        end local 10 // int ntargets
        end local 9 // java.util.List values
        end local 8 // java.lang.String rhs
        end local 7 // java.lang.String key
        end local 6 // int pos
        30: .line 878
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map
      StackMap stack:
            aload 4 /* value */
            ifnonnull 6
        31: .line 911
            aload 5 /* map */
            areturn
        end local 5 // java.util.Map map
        end local 4 // java.lang.String value
        end local 3 // int index
        end local 2 // boolean allowDuplicates
        end local 1 // java.lang.String regex
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0           prefix  Ljava/lang/String;
            0   32     1            regex  Ljava/lang/String;
            0   32     2  allowDuplicates  Z
            1   32     3            index  I
            2   32     4            value  Ljava/lang/String;
            5   32     5              map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            7   30     6              pos  I
           12   30     7              key  Ljava/lang/String;
           13   30     8              rhs  Ljava/lang/String;
           18   30     9           values  Ljava/util/List<Ljava/lang/String;>;
           19   30    10         ntargets  I
           21   24    11                s  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
                 Name  Flags
      prefix           
      regex            
      allowDuplicates  

  private static java.util.Map<java.lang.String, java.util.List<java.lang.String>> decode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String prefix
         0: .line 919
            aload 0 /* prefix */
            ldc ","
            iconst_1
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
            areturn
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  prefix  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
        Name  Flags
      prefix  

  private static java.lang.String getAndRemoveProperty(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 926
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            aload 0 /* key */
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  private static void checkIncubatingStatus(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.lang.module.Configuration cf
         0: .line 933
            aconst_null
            astore 1 /* incubating */
        start local 1 // java.lang.String incubating
         1: .line 934
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: java.lang.module.Configuration java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 2 /* resolvedModule */
        start local 2 // java.lang.module.ResolvedModule resolvedModule
         3: .line 935
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
         4: .line 938
            aload 4 /* mref */
            invokestatic jdk.internal.module.ModuleResolution.hasIncubatingWarning:(Ljava/lang/module/ModuleReference;)Z
            ifeq 10
         5: .line 939
            aload 4 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 5 /* mn */
        start local 5 // java.lang.String mn
         6: .line 940
            aload 1 /* incubating */
            ifnonnull 9
         7: .line 941
            aload 5 /* mn */
            astore 1 /* incubating */
         8: .line 942
            goto 10
         9: .line 943
      StackMap locals: java.lang.module.Configuration java.lang.String java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* incubating */
            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 5 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* incubating */
        end local 5 // java.lang.String mn
        end local 4 // java.lang.module.ModuleReference mref
        end local 2 // java.lang.module.ResolvedModule resolvedModule
        10: .line 934
      StackMap locals: java.lang.module.Configuration java.lang.String top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 947
            aload 1 /* incubating */
            ifnull 13
        12: .line 948
            new java.lang.StringBuilder
            dup
            ldc "Using incubator modules: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* incubating */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
        13: .line 949
      StackMap locals: java.lang.module.Configuration java.lang.String
      StackMap stack:
            return
        end local 1 // java.lang.String incubating
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0              cf  Ljava/lang/module/Configuration;
            1   14     1      incubating  Ljava/lang/String;
            3   10     2  resolvedModule  Ljava/lang/module/ResolvedModule;
            4   10     4            mref  Ljava/lang/module/ModuleReference;
            6   10     5              mn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cf    

  static void fail(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String m
         0: .line 955
            new java.lang.RuntimeException
            dup
            aload 0 /* m */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  static void warn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String m
         0: .line 959
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "WARNING: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* m */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 960
            return
        end local 0 // java.lang.String m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  static void warnUnknownModule(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String option
        start local 1 // java.lang.String mn
         0: .line 963
            new java.lang.StringBuilder
            dup
            ldc "Unknown module: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " specified to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
         1: .line 964
            return
        end local 1 // java.lang.String mn
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  option  Ljava/lang/String;
            0    2     1      mn  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  
      mn      

  static java.lang.String unableToParse(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String option
        start local 1 // java.lang.String text
        start local 2 // java.lang.String value
         0: .line 967
            new java.lang.StringBuilder
            dup
            ldc "Unable to parse "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* text */
            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 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String text
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  option  Ljava/lang/String;
            0    1     1    text  Ljava/lang/String;
            0    1     2   value  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  
      text    
      value   

  static java.lang.String option(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String prefix
         0: .line 982
            aload 0 /* prefix */
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 5
          -1634796447: 1
            693588459: 2
            919126689: 3
            994726637: 4
           1390198411: 5
              default: 11
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "jdk.module.addmods."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 11
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "jdk.module.patch."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 11
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "jdk.module.addopens."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 11
      StackMap locals:
      StackMap stack:
         4: aload 1
            ldc "jdk.module.addreads."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 11
      StackMap locals:
      StackMap stack:
         5: aload 1
            ldc "jdk.module.addexports."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 11
         6: .line 984
      StackMap locals:
      StackMap stack:
            ldc "--add-exports"
            areturn
         7: .line 986
      StackMap locals:
      StackMap stack:
            ldc "--add-opens"
            areturn
         8: .line 988
      StackMap locals:
      StackMap stack:
            ldc "--add-reads"
            areturn
         9: .line 990
      StackMap locals:
      StackMap stack:
            ldc "--patch-module"
            areturn
        10: .line 992
      StackMap locals:
      StackMap stack:
            ldc "--add-modules"
            areturn
        11: .line 994
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* prefix */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  

  static <T> java.util.Iterator<T> concat(java.util.Iterator<T>, java.util.Iterator<T>);
    descriptor: (Ljava/util/Iterator;Ljava/util/Iterator;)Ljava/util/Iterator;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.Iterator iterator1
        start local 1 // java.util.Iterator iterator2
         0: .line 1003
            new jdk.internal.module.ModuleBootstrap$2
            dup
            aload 0 /* iterator1 */
            aload 1 /* iterator2 */
            invokespecial jdk.internal.module.ModuleBootstrap$2.<init>:(Ljava/util/Iterator;Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iterator2
        end local 0 // java.util.Iterator iterator1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  iterator1  Ljava/util/Iterator<TT;>;
            0    1     1  iterator2  Ljava/util/Iterator<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Iterator<TT;>;Ljava/util/Iterator<TT;>;)Ljava/util/Iterator<TT;>;
    MethodParameters:
           Name  Flags
      iterator1  
      iterator2  

  private static boolean lambda$2(java.lang.module.ModuleFinder, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z
    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 323
            aload 0
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static void lambda$3(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 324
            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 boolean lambda$6(java.lang.module.ModuleFinder, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z
    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 335
            aload 0
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static void lambda$7(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 336
            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 boolean lambda$8(java.lang.module.Configuration, java.lang.String);
    descriptor: (Ljava/lang/module/Configuration;Ljava/lang/String;)Z
    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 369
            aload 0
            aload 1 /* mn */
            invokevirtual java.lang.module.Configuration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    mn  Ljava/lang/String;

  private static void lambda$9(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String mn
         0: .line 370
            ldc "--patch-module"
            aload 0 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
            return
        end local 0 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    mn  Ljava/lang/String;

  private static void lambda$11(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 540
            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.put:(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$14(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 546
            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 java.util.List lambda$15(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    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 896
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
        end local 0 // java.lang.String k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     k  Ljava/lang/String;
}
SourceFile: "ModuleBootstrap.java"
NestMembers:
  jdk.internal.module.ModuleBootstrap$1  jdk.internal.module.ModuleBootstrap$2  jdk.internal.module.ModuleBootstrap$Counters  jdk.internal.module.ModuleBootstrap$SafeModuleFinder
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Builder = jdk.internal.module.IllegalAccessLogger$Builder of jdk.internal.module.IllegalAccessLogger
  public final Mode = jdk.internal.module.IllegalAccessLogger$Mode of jdk.internal.module.IllegalAccessLogger
  jdk.internal.module.ModuleBootstrap$1
  jdk.internal.module.ModuleBootstrap$2
  Counters = jdk.internal.module.ModuleBootstrap$Counters of jdk.internal.module.ModuleBootstrap
  SafeModuleFinder = jdk.internal.module.ModuleBootstrap$SafeModuleFinder of jdk.internal.module.ModuleBootstrap