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.misc.JavaLangModuleAccess JLMA;
    descriptor: Ljdk/internal/misc/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 91
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangModuleAccess:()Ljdk/internal/misc/JavaLangModuleAccess;
         1: .line 90
            putstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
         2: .line 94
            invokestatic jdk.internal.module.ModuleBootstrap.initModulePatcher:()Ljdk/internal/module/ModulePatcher;
            putstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
         3: .line 949
            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 73
            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 100
            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 115
            getstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 116
            aload 0 /* finder */
            ifnonnull 3
         2: .line 117
            invokestatic java.lang.module.ModuleFinder.ofSystem:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 119
      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 129
            getstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 130
            aload 0 /* finder */
            ifnonnull 3
         2: .line 131
            invokestatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 133
      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=4, locals=39, args_size=0
         0: .line 146
            invokestatic java.lang.System.nanoTime:()J
            lstore 0 /* t0 */
        start local 0 // long t0
         1: .line 148
            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 149
            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 150
            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 152
            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 153
            invokestatic jdk.internal.module.ModuleBootstrap.addModules:()Ljava/util/Set;
            astore 6 /* addModules */
        start local 6 // java.util.Set addModules
         6: .line 154
            invokestatic jdk.internal.module.ModuleBootstrap.limitModules:()Ljava/util/Set;
            astore 7 /* limitModules */
        start local 7 // java.util.Set limitModules
         7: .line 156
            aconst_null
            astore 8 /* traceOutput */
        start local 8 // java.io.PrintStream traceOutput
         8: .line 157
            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 158
            aload 9 /* trace */
            ifnull 11
            aload 9 /* trace */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 159
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            astore 8 /* traceOutput */
        11: .line 168
      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 170
            aconst_null
            astore 12 /* systemModules */
        start local 12 // jdk.internal.module.SystemModules systemModules
        13: .line 173
            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 174
            iconst_1
            istore 15 /* needResolution */
        start local 15 // boolean needResolution
        17: .line 175
            iconst_0
            istore 16 /* canArchive */
        start local 16 // boolean canArchive
        18: .line 180
            aload 5 /* mainModule */
            invokestatic jdk.internal.module.ArchivedModuleGraph.get:(Ljava/lang/String;)Ljdk/internal/module/ArchivedModuleGraph;
            astore 17 /* archivedModuleGraph */
        start local 17 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        19: .line 181
            aload 17 /* archivedModuleGraph */
            ifnull 30
        20: .line 182
            iload 14 /* haveModulePath */
            ifne 30
        21: .line 183
            aload 6 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 30
        22: .line 184
            aload 7 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 30
        23: .line 185
            iload 4 /* isPatched */
            ifne 30
        24: .line 186
            aload 17 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.systemModules:()Ljdk/internal/module/SystemModules;
            astore 12 /* systemModules */
        25: .line 187
            aload 17 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.finder:()Ljava/lang/module/ModuleFinder;
            astore 13 /* systemModuleFinder */
        start local 13 // java.lang.module.ModuleFinder systemModuleFinder
        26: .line 188
            aload 8 /* traceOutput */
            ifnull 27
            iconst_1
            goto 28
      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 jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
        27: iconst_0
      StackMap locals:
      StackMap stack: int
        28: istore 15 /* needResolution */
        29: .line 189
            goto 44
        end local 13 // java.lang.module.ModuleFinder systemModuleFinder
        30: .line 190
      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 jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            iload 14 /* haveModulePath */
            ifne 37
            aload 6 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 37
            aload 7 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 37
        31: .line 191
            aload 5 /* mainModule */
            invokestatic jdk.internal.module.SystemModuleFinders.systemModules:(Ljava/lang/String;)Ljdk/internal/module/SystemModules;
            astore 12 /* systemModules */
        32: .line 192
            aload 12 /* systemModules */
            ifnull 37
            iload 4 /* isPatched */
            ifne 37
        33: .line 193
            aload 8 /* traceOutput */
            ifnull 34
            iconst_1
            goto 35
      StackMap locals:
      StackMap stack:
        34: iconst_0
      StackMap locals:
      StackMap stack: int
        35: istore 15 /* needResolution */
        36: .line 194
            iconst_1
            istore 16 /* canArchive */
        37: .line 197
      StackMap locals:
      StackMap stack:
            aload 12 /* systemModules */
            ifnonnull 39
        38: .line 199
            invokestatic jdk.internal.module.SystemModuleFinders.allSystemModules:()Ljdk/internal/module/SystemModules;
            astore 12 /* systemModules */
        39: .line 201
      StackMap locals:
      StackMap stack:
            aload 12 /* systemModules */
            ifnull 42
        40: .line 203
            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
        41: .line 204
            goto 44
        end local 13 // java.lang.module.ModuleFinder systemModuleFinder
        42: .line 206
      StackMap locals:
      StackMap stack:
            new jdk.internal.module.ExplodedSystemModules
            dup
            invokespecial jdk.internal.module.ExplodedSystemModules.<init>:()V
            astore 12 /* systemModules */
        43: .line 207
            invokestatic jdk.internal.module.SystemModuleFinders.ofSystem:()Ljava/lang/module/ModuleFinder;
            astore 13 /* systemModuleFinder */
        start local 13 // java.lang.module.ModuleFinder systemModuleFinder
        44: .line 211
      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 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
        45: .line 219
            invokestatic java.lang.System.nanoTime:()J
            lstore 18 /* t2 */
        start local 18 // long t2
        46: .line 221
            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 20 /* base */
        start local 20 // java.lang.module.ModuleReference base
        47: .line 222
            aload 20 /* base */
            ifnonnull 49
        48: .line 223
            new java.lang.InternalError
            dup
            ldc "java.base not found"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 224
      StackMap locals: long java.lang.module.ModuleReference
      StackMap stack:
            aload 20 /* 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 21 /* baseUri */
        start local 21 // java.net.URI baseUri
        50: .line 225
            aload 21 /* baseUri */
            ifnonnull 52
        51: .line 226
            new java.lang.InternalError
            dup
            ldc "java.base does not have a location"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        52: .line 227
      StackMap locals: java.net.URI
      StackMap stack:
            aload 20 /* base */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
        53: .line 228
            aconst_null
            aload 20 /* base */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            aload 21 /* baseUri */
            invokestatic jdk.internal.module.Modules.defineModule:(Ljava/lang/ClassLoader;Ljava/lang/module/ModuleDescriptor;Ljava/net/URI;)Ljava/lang/Module;
            pop
        54: .line 230
            ldc "jdk.module.boot.2.defineBaseTime"
            lload 18 /* t2 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
        55: .line 235
            ldc "jdk.module.validation"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 59
        56: .line 236
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic jdk.internal.module.ModulePathValidator.scanAllModules:(Ljava/io/PrintStream;)I
            istore 22 /* errors */
        start local 22 // int errors
        57: .line 237
            iload 22 /* errors */
            ifle 59
        58: .line 238
            ldc "Validation of module path failed"
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        end local 22 // int errors
        59: .line 246
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 22 /* t3 */
        start local 22 // long t3
        60: .line 248
            aconst_null
            astore 24 /* savedModuleFinder */
        start local 24 // java.lang.module.ModuleFinder savedModuleFinder
        61: .line 251
            iload 15 /* needResolution */
            ifeq 112
        62: .line 254
            aload 2 /* upgradeModulePath */
            ifnull 66
        63: .line 255
            iconst_2
            anewarray java.lang.module.ModuleFinder
            dup
            iconst_0
            aload 2 /* upgradeModulePath */
            aastore
            dup
            iconst_1
        64: .line 256
            aload 13 /* systemModuleFinder */
            aastore
        65: .line 255
            invokestatic java.lang.module.ModuleFinder.compose:([Ljava/lang/module/ModuleFinder;)Ljava/lang/module/ModuleFinder;
            astore 13 /* systemModuleFinder */
        66: .line 259
      StackMap locals: long java.lang.module.ModuleFinder
      StackMap stack:
            aload 3 /* appModulePath */
            ifnull 69
        67: .line 260
            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 25 /* finder */
        start local 25 // java.lang.module.ModuleFinder finder
        68: .line 261
            goto 70
        end local 25 // java.lang.module.ModuleFinder finder
        69: .line 262
      StackMap locals:
      StackMap stack:
            aload 13 /* systemModuleFinder */
            astore 25 /* finder */
        start local 25 // java.lang.module.ModuleFinder finder
        70: .line 266
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 26 /* roots */
        start local 26 // java.util.Set roots
        71: .line 269
            aload 5 /* mainModule */
            ifnull 73
        72: .line 270
            aload 26 /* roots */
            aload 5 /* mainModule */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        73: .line 273
      StackMap locals: java.util.Set
      StackMap stack:
            iconst_0
            istore 27 /* addAllDefaultModules */
        start local 27 // boolean addAllDefaultModules
        74: .line 274
            iconst_0
            istore 28 /* addAllSystemModules */
        start local 28 // boolean addAllSystemModules
        75: .line 275
            iconst_0
            istore 29 /* addAllApplicationModules */
        start local 29 // boolean addAllApplicationModules
        76: .line 276
            aload 6 /* addModules */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 31
            goto 89
      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 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:
        77: aload 31
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 30 /* mod */
        start local 30 // java.lang.String mod
        78: .line 277
            aload 30 /* mod */
            dup
            astore 32
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1057501189: 79
            564408789: 80
           1070226586: 81
              default: 88
          }
      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 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:
        79: aload 32
            ldc "ALL-SYSTEM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 84
            goto 88
      StackMap locals:
      StackMap stack:
        80: aload 32
            ldc "ALL-DEFAULT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 82
            goto 88
      StackMap locals:
      StackMap stack:
        81: aload 32
            ldc "ALL-MODULE-PATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 86
            goto 88
        82: .line 279
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 27 /* addAllDefaultModules */
        83: .line 280
            goto 89
        84: .line 282
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 28 /* addAllSystemModules */
        85: .line 283
            goto 89
        86: .line 285
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 29 /* addAllApplicationModules */
        87: .line 286
            goto 89
        88: .line 288
      StackMap locals:
      StackMap stack:
            aload 26 /* roots */
            aload 30 /* mod */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 30 // java.lang.String mod
        89: .line 276
      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 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 31
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 77
        90: .line 293
            aload 25 /* finder */
            astore 24 /* savedModuleFinder */
        91: .line 294
            aload 7 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 93
        92: .line 295
            aload 25 /* finder */
            aload 7 /* limitModules */
            aload 26 /* roots */
            invokestatic jdk.internal.module.ModuleBootstrap.limitFinder:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 25 /* finder */
        93: .line 304
      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 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 94
            iload 27 /* addAllDefaultModules */
            ifeq 95
        94: .line 305
      StackMap locals:
      StackMap stack:
            aload 26 /* roots */
            aload 13 /* systemModuleFinder */
            aload 25 /* 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
        95: .line 310
      StackMap locals:
      StackMap stack:
            iload 28 /* addAllSystemModules */
            ifeq 103
        96: .line 311
            aload 25 /* finder */
            astore 30 /* f */
        start local 30 // java.lang.module.ModuleFinder f
        97: .line 312
            aload 13 /* systemModuleFinder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
        98: .line 313
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        99: .line 314
            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;
       100: .line 315
            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;
       101: .line 316
            aload 30 /* 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;
       102: .line 317
            aload 26 /* 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 30 // java.lang.module.ModuleFinder f
       103: .line 322
      StackMap locals:
      StackMap stack:
            aload 3 /* appModulePath */
            ifnull 114
            iload 29 /* addAllApplicationModules */
            ifeq 114
       104: .line 323
            aload 25 /* finder */
            astore 30 /* f */
        start local 30 // java.lang.module.ModuleFinder f
       105: .line 324
            aload 3 /* appModulePath */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
       106: .line 325
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       107: .line 326
            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;
       108: .line 327
            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;
       109: .line 328
            aload 30 /* 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;
       110: .line 329
            aload 26 /* 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 30 // java.lang.module.ModuleFinder f
        end local 29 // boolean addAllApplicationModules
        end local 28 // boolean addAllSystemModules
        end local 27 // boolean addAllDefaultModules
       111: .line 331
            goto 114
        end local 26 // java.util.Set roots
        end local 25 // java.lang.module.ModuleFinder finder
       112: .line 333
      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 jdk.internal.module.ArchivedModuleGraph long java.lang.module.ModuleReference java.net.URI long java.lang.module.ModuleFinder
      StackMap stack:
            aload 13 /* systemModuleFinder */
            astore 25 /* finder */
        start local 25 // java.lang.module.ModuleFinder finder
       113: .line 334
            aconst_null
            astore 26 /* roots */
        start local 26 // java.util.Set roots
       114: .line 337
      StackMap locals: java.lang.module.ModuleFinder java.util.Set
      StackMap stack:
            ldc "jdk.module.boot.3.optionsAndRootsTime"
            lload 22 /* t3 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       115: .line 344
            invokestatic java.lang.System.nanoTime:()J
            lstore 27 /* t4 */
        start local 27 // long t4
       116: .line 347
            iload 15 /* needResolution */
            ifeq 119
       117: .line 348
            getstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 25 /* finder */
            aload 26 /* roots */
            aload 8 /* traceOutput */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.resolveAndBind:(Ljava/lang/module/ModuleFinder;Ljava/util/Collection;Ljava/io/PrintStream;)Ljava/lang/module/Configuration;
            astore 29 /* cf */
        start local 29 // java.lang.module.Configuration cf
       118: .line 349
            goto 124
        end local 29 // java.lang.module.Configuration cf
       119: .line 350
      StackMap locals: long
      StackMap stack:
            aload 17 /* archivedModuleGraph */
            ifnull 122
       120: .line 351
            aload 17 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.configuration:()Ljava/lang/module/Configuration;
            astore 29 /* cf */
        start local 29 // java.lang.module.Configuration cf
       121: .line 352
            goto 124
        end local 29 // java.lang.module.Configuration cf
       122: .line 353
      StackMap locals:
      StackMap stack:
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.moduleReads:()Ljava/util/Map;
            astore 30 /* map */
        start local 30 // java.util.Map map
       123: .line 354
            getstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 13 /* systemModuleFinder */
            aload 30 /* map */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Map;)Ljava/lang/module/Configuration;
            astore 29 /* cf */
        end local 30 // java.util.Map map
        start local 29 // java.lang.module.Configuration cf
       124: .line 359
      StackMap locals: java.lang.module.Configuration
      StackMap stack:
            iload 4 /* isPatched */
            ifeq 129
       125: .line 360
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            invokevirtual jdk.internal.module.ModulePatcher.patchedModules:()Ljava/util/Set;
       126: .line 361
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       127: .line 362
            aload 29 /* 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;
       128: .line 363
            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
       129: .line 366
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.4.resolveTime"
            lload 27 /* t4 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       130: .line 376
            invokestatic java.lang.System.nanoTime:()J
            lstore 30 /* t5 */
        start local 30 // long t5
       131: .line 379
            aload 29 /* cf */
            invokestatic jdk.internal.module.ModuleLoaderMap.mappingFunction:(Ljava/lang/module/Configuration;)Ljava/util/function/Function;
            astore 32 /* clf */
        start local 32 // java.util.function.Function clf
       132: .line 383
            iload 14 /* haveModulePath */
            ifeq 145
       133: .line 384
            aload 29 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 34
            goto 144
      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 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:
       134: aload 34
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 33 /* resolvedModule */
        start local 33 // java.lang.module.ResolvedModule resolvedModule
       135: .line 385
            aload 33 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 35 /* mref */
        start local 35 // java.lang.module.ModuleReference mref
       136: .line 386
            aload 35 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 36 /* name */
        start local 36 // java.lang.String name
       137: .line 387
            aload 32 /* clf */
            aload 36 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 37 /* cl */
        start local 37 // java.lang.ClassLoader cl
       138: .line 388
            aload 37 /* cl */
            ifnonnull 144
       139: .line 389
            aload 2 /* upgradeModulePath */
            ifnull 142
       140: .line 390
            aload 2 /* upgradeModulePath */
            aload 36 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 142
       141: .line 391
            new java.lang.StringBuilder
            dup
            aload 36 /* 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
       142: .line 392
      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 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 36 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 144
       143: .line 393
            new java.lang.StringBuilder
            dup
            aload 36 /* 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 37 // java.lang.ClassLoader cl
        end local 36 // java.lang.String name
        end local 35 // java.lang.module.ModuleReference mref
        end local 33 // java.lang.module.ResolvedModule resolvedModule
       144: .line 384
      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 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 34
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 134
       145: .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 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:
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasSplitPackages:()Z
            ifne 146
            iload 4 /* isPatched */
            ifne 146
            iload 14 /* haveModulePath */
            ifeq 147
       146: .line 400
      StackMap locals:
      StackMap stack:
            aload 29 /* cf */
            aload 32 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkSplitPackages:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       147: .line 404
      StackMap locals:
      StackMap stack:
            aload 29 /* cf */
            aload 32 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.loadModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       148: .line 406
            ldc "jdk.module.boot.5.loadModulesTime"
            lload 30 /* t5 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       149: .line 411
            invokestatic java.lang.System.nanoTime:()J
            lstore 33 /* t6 */
        start local 33 // long t6
       150: .line 412
            invokestatic java.lang.ModuleLayer.empty:()Ljava/lang/ModuleLayer;
            aload 29 /* cf */
            aload 32 /* clf */
            invokevirtual java.lang.ModuleLayer.defineModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)Ljava/lang/ModuleLayer;
            astore 35 /* bootLayer */
        start local 35 // java.lang.ModuleLayer bootLayer
       151: .line 413
            ldc "jdk.module.boot.6.layerCreateTime"
            lload 33 /* t6 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       152: .line 419
            aload 12 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasIncubatorModules:()Z
            ifne 153
            iload 14 /* haveModulePath */
            ifeq 154
       153: .line 420
      StackMap locals: long java.lang.ModuleLayer
      StackMap stack:
            aload 29 /* cf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkIncubatingStatus:(Ljava/lang/module/Configuration;)V
       154: .line 424
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 36 /* t7 */
        start local 36 // long t7
       155: .line 425
            aload 35 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraReads:(Ljava/lang/ModuleLayer;)V
       156: .line 426
            aload 35 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsAndOpens:(Ljava/lang/ModuleLayer;)Z
            istore 38 /* extraExportsOrOpens */
        start local 38 // boolean extraExportsOrOpens
       157: .line 427
            aload 2 /* upgradeModulePath */
            aload 12 /* systemModules */
            aload 35 /* bootLayer */
            iload 38 /* extraExportsOrOpens */
            invokestatic jdk.internal.module.ModuleBootstrap.addIllegalAccess:(Ljava/lang/module/ModuleFinder;Ljdk/internal/module/SystemModules;Ljava/lang/ModuleLayer;Z)V
       158: .line 428
            ldc "jdk.module.boot.7.adjustModulesTime"
            lload 36 /* t7 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       159: .line 431
            aload 24 /* savedModuleFinder */
            ifnull 163
       160: .line 432
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 24 /* savedModuleFinder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
       161: .line 433
            aload 24 /* savedModuleFinder */
            aload 25 /* finder */
            if_acmpeq 163
       162: .line 434
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 25 /* finder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
       163: .line 439
      StackMap locals: long int
      StackMap stack:
            iload 16 /* canArchive */
            ifeq 167
            aload 5 /* mainModule */
            ifnonnull 167
       164: .line 440
            aload 5 /* mainModule */
            aload 12 /* systemModules */
       165: .line 441
            aload 13 /* systemModuleFinder */
            aload 29 /* cf */
       166: .line 440
            invokestatic jdk.internal.module.ArchivedModuleGraph.archive:(Ljava/lang/String;Ljdk/internal/module/SystemModules;Ljava/lang/module/ModuleFinder;Ljava/lang/module/Configuration;)V
       167: .line 445
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.totalTime"
            lload 0 /* t0 */
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;J)V
       168: .line 446
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.publish:()V
       169: .line 448
            aload 35 /* bootLayer */
            areturn
        end local 38 // boolean extraExportsOrOpens
        end local 36 // long t7
        end local 35 // java.lang.ModuleLayer bootLayer
        end local 33 // long t6
        end local 32 // java.util.function.Function clf
        end local 30 // long t5
        end local 29 // java.lang.module.Configuration cf
        end local 27 // long t4
        end local 26 // java.util.Set roots
        end local 25 // java.lang.module.ModuleFinder finder
        end local 24 // java.lang.module.ModuleFinder savedModuleFinder
        end local 22 // long t3
        end local 21 // java.net.URI baseUri
        end local 20 // java.lang.module.ModuleReference base
        end local 18 // long t2
        end local 17 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        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  170     0                        t0  J
            2  170     2         upgradeModulePath  Ljava/lang/module/ModuleFinder;
            3  170     3             appModulePath  Ljava/lang/module/ModuleFinder;
            4  170     4                 isPatched  Z
            5  170     5                mainModule  Ljava/lang/String;
            6  170     6                addModules  Ljava/util/Set<Ljava/lang/String;>;
            7  170     7              limitModules  Ljava/util/Set<Ljava/lang/String;>;
            8  170     8               traceOutput  Ljava/io/PrintStream;
            9  170     9                     trace  Ljava/lang/String;
           12  170    10                        t1  J
           13  170    12             systemModules  Ljdk/internal/module/SystemModules;
           26   30    13        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           41   42    13        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           44  170    13        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           16  170    14            haveModulePath  Z
           17  170    15            needResolution  Z
           18  170    16                canArchive  Z
           19  170    17       archivedModuleGraph  Ljdk/internal/module/ArchivedModuleGraph;
           46  170    18                        t2  J
           47  170    20                      base  Ljava/lang/module/ModuleReference;
           50  170    21                   baseUri  Ljava/net/URI;
           57   59    22                    errors  I
           60  170    22                        t3  J
           61  170    24         savedModuleFinder  Ljava/lang/module/ModuleFinder;
           68   69    25                    finder  Ljava/lang/module/ModuleFinder;
           70  112    25                    finder  Ljava/lang/module/ModuleFinder;
          113  170    25                    finder  Ljava/lang/module/ModuleFinder;
           71  112    26                     roots  Ljava/util/Set<Ljava/lang/String;>;
          114  170    26                     roots  Ljava/util/Set<Ljava/lang/String;>;
           74  111    27      addAllDefaultModules  Z
           75  111    28       addAllSystemModules  Z
           76  111    29  addAllApplicationModules  Z
           78   89    30                       mod  Ljava/lang/String;
           97  103    30                         f  Ljava/lang/module/ModuleFinder;
          105  111    30                         f  Ljava/lang/module/ModuleFinder;
          116  170    27                        t4  J
          118  119    29                        cf  Ljava/lang/module/Configuration;
          121  122    29                        cf  Ljava/lang/module/Configuration;
          124  170    29                        cf  Ljava/lang/module/Configuration;
          123  124    30                       map  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          131  170    30                        t5  J
          132  170    32                       clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
          135  144    33            resolvedModule  Ljava/lang/module/ResolvedModule;
          136  144    35                      mref  Ljava/lang/module/ModuleReference;
          137  144    36                      name  Ljava/lang/String;
          138  144    37                        cl  Ljava/lang/ClassLoader;
          150  170    33                        t6  J
          151  170    35                 bootLayer  Ljava/lang/ModuleLayer;
          155  170    36                        t7  J
          157  170    38       extraExportsOrOpens  Z
    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 456
            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 457
            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 458
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.name:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         4: .line 459
            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 460
            aload 6 /* loader */
            ifnonnull 9
         6: .line 462
            aload 5 /* name */
            ldc "java.base"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         7: .line 463
            aload 4 /* mref */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
         8: .line 465
            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 466
            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 456
      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 469
            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 477
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* packageToModule */
        start local 2 // java.util.Map packageToModule
         1: .line 478
            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 479
            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 480
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 481
            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 482
            aload 7 /* loader */
            ifnull 7
            aload 7 /* loader */
            instanceof jdk.internal.loader.BuiltinClassLoader
            ifeq 16
         7: .line 483
      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 484
            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 485
            aload 10 /* other */
            ifnull 15
        11: .line 486
            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 487
            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 486
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* msg */
        start local 11 // java.lang.String msg
        14: .line 488
            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 483
      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 478
      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 493
            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 504
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
            aload 0 /* finder */
            iconst_0
            anewarray java.nio.file.Path
         1: .line 505
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
         2: .line 506
            aload 1 /* roots */
         3: .line 504
            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 509
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* map */
        start local 4 // java.util.Map map
         5: .line 512
            aload 3 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         6: .line 513
            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 514
            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 517
            aload 2 /* otherMods */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 518
            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 519
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/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 520
            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 523
            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 525
            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 542
            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 543
            aload 1 /* s */
            ifnonnull 3
         2: .line 544
            aconst_null
            areturn
         3: .line 546
      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 547
            aload 2 /* dirs */
            arraylength
            anewarray java.nio.file.Path
            astore 3 /* paths */
        start local 3 // java.nio.file.Path[] paths
         5: .line 548
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: .line 549
            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 550
            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 549
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 7
        11: .line 552
            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 561
            ldc "jdk.module.patch."
         1: .line 562
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
         2: .line 563
            iconst_0
         3: .line 561
            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 564
            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 571
            ldc "jdk.module.addmods."
            astore 0 /* prefix */
        start local 0 // java.lang.String prefix
         1: .line 572
            iconst_0
            istore 1 /* index */
        start local 1 // int index
         2: .line 574
            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 575
            aload 2 /* value */
            ifnonnull 5
         4: .line 576
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         5: .line 578
      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 579
            goto 15
         7: .line 580
      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 581
            aload 4 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
        10: .line 582
            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 580
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 8
        13: .line 584
            iinc 1 /* index */ 1
        14: .line 585
            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 579
      StackMap locals: java.lang.String int java.lang.String java.util.Set
      StackMap stack:
            aload 2 /* value */
            ifnonnull 7
        16: .line 587
            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 595
            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 596
            aload 0 /* value */
            ifnonnull 3
         2: .line 597
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         3: .line 599
      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 600
            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 601
            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 600
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 5
         9: .line 603
            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 614
            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 615
            aload 1 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 3
         2: .line 616
            return
         3: .line 618
      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 621
            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 622
            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 623
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 10
         8: .line 624
            ldc "--add-reads"
            aload 4 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 625
            goto 22
        10: .line 627
      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 630
            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 631
            ldc "ALL-UNNAMED"
            aload 7 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 632
            aload 6 /* m */
            invokestatic jdk.internal.module.Modules.addReadsAllUnnamed:(Ljava/lang/Module;)V
        15: .line 633
            goto 21
        16: .line 634
      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 635
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 20
        18: .line 636
            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 637
            goto 21
        20: .line 638
      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 630
      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 618
      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 643
            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 650
            iconst_0
            istore 1 /* extraExportsOrOpens */
        start local 1 // boolean extraExportsOrOpens
         1: .line 653
            ldc "jdk.module.addexports."
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         2: .line 654
            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 655
            aload 3 /* extraExports */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 6
         4: .line 656
            aload 0 /* bootLayer */
            aload 3 /* extraExports */
            iconst_0
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
         5: .line 657
            iconst_1
            istore 1 /* extraExportsOrOpens */
         6: .line 662
      StackMap locals: int java.lang.String java.util.Map
      StackMap stack:
            ldc "jdk.module.addopens."
            astore 2 /* prefix */
         7: .line 663
            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 664
            aload 4 /* extraOpens */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 11
         9: .line 665
            aload 0 /* bootLayer */
            aload 4 /* extraOpens */
            iconst_1
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
        10: .line 666
            iconst_1
            istore 1 /* extraExportsOrOpens */
        11: .line 669
      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 676
            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 677
            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 680
            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 681
            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 682
            aload 7 /* s */
            arraylength
            iconst_2
            if_icmpeq 9
         8: .line 683
            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 685
      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 686
            aload 7 /* s */
            iconst_1
            aaload
            astore 9 /* pn */
        start local 9 // java.lang.String pn
        11: .line 687
            aload 8 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 12
            aload 9 /* pn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
        12: .line 688
      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 692
      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 693
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 17
        15: .line 694
            aload 3 /* option */
            aload 8 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 695
            goto 45
        17: .line 698
      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 700
            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 701
            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 702
            goto 45
        21: .line 706
      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 707
            iconst_0
            istore 14 /* allUnnamed */
        start local 14 // boolean allUnnamed
        24: .line 708
            aconst_null
            astore 15 /* other */
        start local 15 // java.lang.Module other
        25: .line 709
            ldc "ALL-UNNAMED"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 710
            iconst_1
            istore 14 /* allUnnamed */
        27: .line 711
            goto 34
        28: .line 712
      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 713
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 32
        30: .line 714
            aload 11 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 15 /* other */
        31: .line 715
            goto 34
        32: .line 716
      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 717
            goto 44
        34: .line 720
      StackMap locals:
      StackMap stack:
            iload 14 /* allUnnamed */
            ifeq 40
        35: .line 721
            iload 2 /* opens */
            ifeq 38
        36: .line 722
            aload 10 /* m */
            aload 9 /* pn */
            invokestatic jdk.internal.module.Modules.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/lang/String;)V
        37: .line 723
            goto 44
        38: .line 724
      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 726
            goto 44
        40: .line 727
      StackMap locals:
      StackMap stack:
            iload 2 /* opens */
            ifeq 43
        41: .line 728
            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 729
            goto 44
        43: .line 730
      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 706
      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 677
      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 736
            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, jdk.internal.module.SystemModules, java.lang.ModuleLayer, boolean);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljdk/internal/module/SystemModules;Ljava/lang/ModuleLayer;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=18, args_size=4
        start local 0 // java.lang.module.ModuleFinder upgradeModulePath
        start local 1 // jdk.internal.module.SystemModules systemModules
        start local 2 // java.lang.ModuleLayer bootLayer
        start local 3 // boolean extraExportsOrOpens
         0: .line 746
            ldc "jdk.module.illegalAccess"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        start local 4 // java.lang.String value
         1: .line 747
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.ONESHOT:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 5 /* mode */
        start local 5 // jdk.internal.module.IllegalAccessLogger$Mode mode
         2: .line 748
            aload 4 /* value */
            ifnull 17
         3: .line 749
            aload 4 /* value */
            dup
            astore 6
            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 6
            ldc "permit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            goto 13
      StackMap locals:
      StackMap stack:
         5: aload 6
            ldc "deny"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 13
      StackMap locals:
      StackMap stack:
         6: aload 6
            ldc "warn"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 13
      StackMap locals:
      StackMap stack:
         7: aload 6
            ldc "debug"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 13
         8: .line 751
      StackMap locals:
      StackMap stack:
            return
         9: .line 755
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.WARN:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 5 /* mode */
        10: .line 756
            goto 17
        11: .line 758
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.DEBUG:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 5 /* mode */
        12: .line 759
            goto 17
        13: .line 761
      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 762
            aload 4 /* 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 761
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        16: .line 763
            return
        17: .line 767
      StackMap locals:
      StackMap stack:
            new jdk.internal.module.IllegalAccessLogger$Builder
            dup
            aload 5 /* 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 766
            astore 7 /* builder */
        start local 7 // jdk.internal.module.IllegalAccessLogger$Builder builder
        19: .line 769
            aload 1 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.concealedPackagesToOpen:()Ljava/util/Map;
            astore 8 /* map1 */
        start local 8 // java.util.Map map1
        20: .line 770
            aload 1 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.exportedPackagesToOpen:()Ljava/util/Map;
            astore 9 /* map2 */
        start local 9 // java.util.Map map2
        21: .line 771
            aload 8 /* map1 */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 25
            aload 9 /* map2 */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 25
        22: .line 773
            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 10 /* maps */
        start local 10 // jdk.internal.module.IllegalAccessMaps maps
        23: .line 774
            aload 10 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.concealedPackagesToOpen:()Ljava/util/Map;
            astore 8 /* map1 */
        24: .line 775
            aload 10 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.exportedPackagesToOpen:()Ljava/util/Map;
            astore 9 /* map2 */
        end local 10 // jdk.internal.module.IllegalAccessMaps maps
        25: .line 779
      StackMap locals: java.lang.module.ModuleFinder jdk.internal.module.SystemModules java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map
      StackMap stack:
            aload 2 /* bootLayer */
            invokevirtual java.lang.ModuleLayer.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 58
      StackMap locals: java.lang.module.ModuleFinder jdk.internal.module.SystemModules java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        26: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 10 /* m */
        start local 10 // java.lang.Module m
        27: .line 780
            aload 10 /* m */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 12 /* descriptor */
        start local 12 // java.lang.module.ModuleDescriptor descriptor
        28: .line 781
            aload 10 /* m */
            invokevirtual java.lang.Module.getName:()Ljava/lang/String;
            astore 13 /* name */
        start local 13 // java.lang.String name
        29: .line 784
            aload 12 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 31
        30: .line 785
            goto 58
        31: .line 789
      StackMap locals: java.lang.module.ModuleFinder jdk.internal.module.SystemModules java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map java.lang.Module java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String
      StackMap stack:
            aload 0 /* upgradeModulePath */
            ifnull 34
        32: .line 790
            aload 0 /* upgradeModulePath */
            aload 13 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 34
        33: .line 791
            goto 58
        34: .line 794
      StackMap locals:
      StackMap stack:
            aload 8 /* map1 */
            aload 13 /* 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 /* concealedPackages */
        start local 14 // java.util.Set concealedPackages
        35: .line 795
            aload 9 /* map2 */
            aload 13 /* 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 15 /* exportedPackages */
        start local 15 // java.util.Set exportedPackages
        36: .line 798
            iload 3 /* extraExportsOrOpens */
            ifeq 52
        37: .line 799
            new java.util.HashSet
            dup
            aload 14 /* concealedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 14 /* concealedPackages */
        38: .line 800
            new java.util.HashSet
            dup
            aload 15 /* exportedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 15 /* exportedPackages */
        39: .line 801
            aload 14 /* concealedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16 /* iterator */
        start local 16 // java.util.Iterator iterator
        40: .line 802
            goto 45
        41: .line 803
      StackMap locals: java.util.Set java.util.Set java.util.Iterator
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* pn */
        start local 17 // java.lang.String pn
        42: .line 804
            aload 10 /* m */
            aload 17 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isExported:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 45
        43: .line 806
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        44: .line 807
            aload 15 /* exportedPackages */
            aload 17 /* pn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // java.lang.String pn
        45: .line 802
      StackMap locals:
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 41
        46: .line 810
            aload 15 /* exportedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16 /* iterator */
        47: .line 811
            goto 51
        48: .line 812
      StackMap locals:
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* pn */
        start local 17 // java.lang.String pn
        49: .line 813
            aload 10 /* m */
            aload 17 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isOpen:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 51
        50: .line 815
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 17 // java.lang.String pn
        51: .line 811
      StackMap locals:
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 48
        end local 16 // java.util.Iterator iterator
        52: .line 821
      StackMap locals:
      StackMap stack:
            aload 7 /* builder */
            aload 10 /* m */
            aload 14 /* concealedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToConcealedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        53: .line 824
            aload 7 /* builder */
            aload 10 /* m */
            aload 15 /* exportedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToExportedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        54: .line 827
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangAccess:()Ljdk/internal/misc/JavaLangAccess;
            astore 16 /* jla */
        start local 16 // jdk.internal.misc.JavaLangAccess jla
        55: .line 828
            aload 16 /* jla */
            aload 10 /* m */
            aload 14 /* concealedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
        56: .line 829
            aload 15 /* exportedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
        57: .line 828
            invokestatic jdk.internal.module.ModuleBootstrap.concat:(Ljava/util/Iterator;Ljava/util/Iterator;)Ljava/util/Iterator;
            invokeinterface jdk.internal.misc.JavaLangAccess.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/util/Iterator;)V
        end local 16 // jdk.internal.misc.JavaLangAccess jla
        end local 15 // java.util.Set exportedPackages
        end local 14 // java.util.Set concealedPackages
        end local 13 // java.lang.String name
        end local 12 // java.lang.module.ModuleDescriptor descriptor
        end local 10 // java.lang.Module m
        58: .line 779
      StackMap locals: java.lang.module.ModuleFinder jdk.internal.module.SystemModules java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        59: .line 832
            aload 7 /* builder */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.complete:()V
        60: .line 833
            return
        end local 9 // java.util.Map map2
        end local 8 // java.util.Map map1
        end local 7 // jdk.internal.module.IllegalAccessLogger$Builder builder
        end local 5 // jdk.internal.module.IllegalAccessLogger$Mode mode
        end local 4 // java.lang.String value
        end local 3 // boolean extraExportsOrOpens
        end local 2 // java.lang.ModuleLayer bootLayer
        end local 1 // jdk.internal.module.SystemModules systemModules
        end local 0 // java.lang.module.ModuleFinder upgradeModulePath
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   61     0    upgradeModulePath  Ljava/lang/module/ModuleFinder;
            0   61     1        systemModules  Ljdk/internal/module/SystemModules;
            0   61     2            bootLayer  Ljava/lang/ModuleLayer;
            0   61     3  extraExportsOrOpens  Z
            1   61     4                value  Ljava/lang/String;
            2   61     5                 mode  Ljdk/internal/module/IllegalAccessLogger$Mode;
           19   61     7              builder  Ljdk/internal/module/IllegalAccessLogger$Builder;
           20   61     8                 map1  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           21   61     9                 map2  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           23   25    10                 maps  Ljdk/internal/module/IllegalAccessMaps;
           27   58    10                    m  Ljava/lang/Module;
           28   58    12           descriptor  Ljava/lang/module/ModuleDescriptor;
           29   58    13                 name  Ljava/lang/String;
           35   58    14    concealedPackages  Ljava/util/Set<Ljava/lang/String;>;
           36   58    15     exportedPackages  Ljava/util/Set<Ljava/lang/String;>;
           40   52    16             iterator  Ljava/util/Iterator<Ljava/lang/String;>;
           42   45    17                   pn  Ljava/lang/String;
           49   51    17                   pn  Ljava/lang/String;
           55   58    16                  jla  Ljdk/internal/misc/JavaLangAccess;
    MethodParameters:
                     Name  Flags
      upgradeModulePath    
      systemModules        
      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 845
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: .line 847
            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 848
            aload 4 /* value */
            ifnonnull 4
         3: .line 849
            invokestatic java.util.Map.of:()Ljava/util/Map;
            areturn
         4: .line 851
      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 853
            goto 30
         6: .line 855
      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 856
            iload 6 /* pos */
            iconst_m1
            if_icmpne 9
         8: .line 857
            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 858
      StackMap locals: int
      StackMap stack:
            iload 6 /* pos */
            ifne 11
        10: .line 859
            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 862
      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 864
            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 865
            aload 8 /* rhs */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 15
        14: .line 866
            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 869
      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 870
            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 871
      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 872
            iconst_0
            istore 10 /* ntargets */
        start local 10 // int ntargets
        19: .line 873
            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 874
            aload 11 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 24
        22: .line 875
            aload 9 /* values */
            aload 11 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 876
            iinc 10 /* ntargets */ 1
        end local 11 // java.lang.String s
        24: .line 873
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        25: iload 12
            iload 13
            if_icmplt 20
        26: .line 879
            iload 10 /* ntargets */
            ifne 28
        27: .line 880
            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 882
      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 883
            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 853
      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 886
            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 894
            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 901
            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 908
            aconst_null
            astore 1 /* incubating */
        start local 1 // java.lang.String incubating
         1: .line 909
            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 910
            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 913
            aload 4 /* mref */
            invokestatic jdk.internal.module.ModuleResolution.hasIncubatingWarning:(Ljava/lang/module/ModuleReference;)Z
            ifeq 10
         5: .line 914
            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 915
            aload 1 /* incubating */
            ifnonnull 9
         7: .line 916
            aload 5 /* mn */
            astore 1 /* incubating */
         8: .line 917
            goto 10
         9: .line 918
      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 909
      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 922
            aload 1 /* incubating */
            ifnull 13
        12: .line 923
            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 924
      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 930
            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 934
            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 935
            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 938
            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 939
            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 942
            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 957
            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 959
      StackMap locals:
      StackMap stack:
            ldc "--add-exports"
            areturn
         7: .line 961
      StackMap locals:
      StackMap stack:
            ldc "--add-opens"
            areturn
         8: .line 963
      StackMap locals:
      StackMap stack:
            ldc "--add-reads"
            areturn
         9: .line 965
      StackMap locals:
      StackMap stack:
            ldc "--patch-module"
            areturn
        10: .line 967
      StackMap locals:
      StackMap stack:
            ldc "--add-modules"
            areturn
        11: .line 969
      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 978
            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 316
            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 317
            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 328
            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 329
            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 362
            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 363
            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 514
            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 520
            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 871
            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