class jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder
  super_class: java.lang.Object
{
  private static final java.lang.String MODULE_HASHES_BUILDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk/internal/module/ModuleHashes$Builder"

  private static final java.lang.String MODULE_HASHES_BUILDER_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Ljdk/internal/module/ModuleHashes$Builder;"

  static final java.lang.String STRING_BYTE_ARRAY_SIG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "(Ljava/lang/String;[B)Ljdk/internal/module/ModuleHashes$Builder;"

  final jdk.internal.module.ModuleHashes recordedHashes;
    descriptor: Ljdk/internal/module/ModuleHashes;
    flags: (0x0010) ACC_FINAL

  final jdk.internal.org.objectweb.asm.MethodVisitor hmv;
    descriptor: Ljdk/internal/org/objectweb/asm/MethodVisitor;
    flags: (0x0010) ACC_FINAL

  final int index;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator this$1;
    descriptor: Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator, jdk.internal.module.ModuleHashes, int, jdk.internal.org.objectweb.asm.MethodVisitor);
    descriptor: (Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator;Ljdk/internal/module/ModuleHashes;ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
        start local 2 // jdk.internal.module.ModuleHashes hashes
        start local 3 // int index
        start local 4 // jdk.internal.org.objectweb.asm.MethodVisitor hmv
         0: .line 1389
            aload 0 /* this */
            aload 1
            putfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.this$1:Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1390
            aload 0 /* this */
            aload 2 /* hashes */
            putfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.recordedHashes:Ljdk/internal/module/ModuleHashes;
         2: .line 1391
            aload 0 /* this */
            aload 4 /* hmv */
            putfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
         3: .line 1392
            aload 0 /* this */
            iload 3 /* index */
            putfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.index:I
         4: .line 1393
            return
        end local 4 // jdk.internal.org.objectweb.asm.MethodVisitor hmv
        end local 3 // int index
        end local 2 // jdk.internal.module.ModuleHashes hashes
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder;
            0    5     2  hashes  Ljdk/internal/module/ModuleHashes;
            0    5     3   index  I
            0    5     4     hmv  Ljdk/internal/org/objectweb/asm/MethodVisitor;
    MethodParameters:
        Name  Flags
      this$0  final
      hashes  
      index   
      hmv     

  void build();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
         0: .line 1399
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.recordedHashes:Ljdk/internal/module/ModuleHashes;
            ifnonnull 2
         1: .line 1400
            return
         2: .line 1403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.newModuleHashesBuilder:()V
         3: .line 1406
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.recordedHashes:Ljdk/internal/module/ModuleHashes;
         4: .line 1407
            invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
         5: .line 1408
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         6: .line 1409
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         7: .line 1410
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.lambda$0(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         8: .line 1413
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.pushModuleHashes:()V
         9: .line 1414
            return
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder;

  void newModuleHashesBuilder();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
         0: .line 1421
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            sipush 187
            ldc "jdk/internal/module/ModuleHashes$Builder"
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
         1: .line 1422
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 89
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
         2: .line 1423
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.recordedHashes:Ljdk/internal/module/ModuleHashes;
            invokevirtual jdk.internal.module.ModuleHashes.algorithm:()Ljava/lang/String;
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
         3: .line 1424
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            iconst_4
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.recordedHashes:Ljdk/internal/module/ModuleHashes;
            invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            imul
            iconst_3
            idiv
            iconst_1
            iadd
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
         4: .line 1425
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            sipush 183
            ldc "jdk/internal/module/ModuleHashes$Builder"
         5: .line 1426
            ldc "<init>"
            ldc "(Ljava/lang/String;I)V"
            iconst_0
         6: .line 1425
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
         7: .line 1427
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 58
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
         8: .line 1428
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 25
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
         9: .line 1429
            return
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder;

  void pushModuleHashes();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
         0: .line 1437
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 25
            iconst_1
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
         1: .line 1438
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.index:I
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
         2: .line 1439
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 25
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
         3: .line 1440
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            sipush 182
            ldc "jdk/internal/module/ModuleHashes$Builder"
         4: .line 1441
            ldc "build"
            ldc "()Ljdk/internal/module/ModuleHashes;"
         5: .line 1442
            iconst_0
         6: .line 1440
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
         7: .line 1443
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 83
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
         8: .line 1444
            return
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder;

  void hashForModule(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
        start local 1 // java.lang.String name
        start local 2 // byte[] hash
         0: .line 1450
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 25
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
         1: .line 1451
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            aload 1 /* name */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
         2: .line 1453
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            aload 2 /* hash */
            arraylength
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
         3: .line 1454
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            sipush 188
            bipush 8
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
         4: .line 1455
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 11
         6: .line 1456
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 89
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
         7: .line 1457
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            iload 3 /* i */
            invokestatic jdk.tools.jlink.internal.plugins.SystemModulesPlugin.pushInt:(Ljdk/internal/org/objectweb/asm/MethodVisitor;I)V
         8: .line 1458
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 16
            aload 2 /* hash */
            iload 3 /* i */
            baload
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
         9: .line 1459
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 84
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        10: .line 1455
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            aload 2 /* hash */
            arraylength
            if_icmplt 6
        end local 3 // int i
        12: .line 1462
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            sipush 182
            ldc "jdk/internal/module/ModuleHashes$Builder"
        13: .line 1463
            ldc "hashForModule"
            ldc "(Ljava/lang/String;[B)Ljdk/internal/module/ModuleHashes$Builder;"
            iconst_0
        14: .line 1462
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        15: .line 1464
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hmv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
            bipush 87
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        16: .line 1465
            return
        end local 2 // byte[] hash
        end local 1 // java.lang.String name
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder;
            0   17     1  name  Ljava/lang/String;
            0   17     2  hash  [B
            5   12     3     i  I
    MethodParameters:
      Name  Flags
      name  
      hash  

  private void lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
        start local 1 // java.lang.String mn
         0: .line 1410
            aload 0 /* this */
            aload 1 /* mn */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.recordedHashes:Ljdk/internal/module/ModuleHashes;
            aload 1 /* mn */
            invokevirtual jdk.internal.module.ModuleHashes.hashFor:(Ljava/lang/String;)[B
            invokevirtual jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder.hashForModule:(Ljava/lang/String;[B)V
            return
        end local 1 // java.lang.String mn
        end local 0 // jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder;
            0    1     1    mn  Ljava/lang/String;
}
SourceFile: "SystemModulesPlugin.java"
NestHost: jdk.tools.jlink.internal.plugins.SystemModulesPlugin
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  SystemModulesClassGenerator = jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator of jdk.tools.jlink.internal.plugins.SystemModulesPlugin
  ModuleHashesBuilder = jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator$ModuleHashesBuilder of jdk.tools.jlink.internal.plugins.SystemModulesPlugin$SystemModulesClassGenerator