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

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

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

  private static final java.lang.String DIRECT_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DirectMethodHandle$Holder"

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

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

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

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

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

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

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

  private static final java.lang.String DELEGATING_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DelegatingMethodHandle$Holder"

  private static final java.lang.String BASIC_FORMS_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/LambdaForm$Holder"

  private static final java.lang.String INVOKERS_HOLDER_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang.invoke.Invokers$Holder"

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

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

  private final java.util.TreeSet<java.lang.String> speciesTypes;
    descriptor: Ljava/util/TreeSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/TreeSet<Ljava/lang/String;>;

  private final java.util.TreeSet<java.lang.String> invokerTypes;
    descriptor: Ljava/util/TreeSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/TreeSet<Ljava/lang/String;>;

  private final java.util.TreeSet<java.lang.String> callSiteTypes;
    descriptor: Ljava/util/TreeSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/TreeSet<Ljava/lang/String;>;

  private final java.util.Map<java.lang.String, java.util.Set<java.lang.String>> dmhMethods;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  java.lang.String mainArgument;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private static int DMH_INVOKE_VIRTUAL_TYPE;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int DMH_INVOKE_INTERFACE_TYPE;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.util.Map<java.lang.String, java.lang.Integer> DMH_METHOD_TYPE_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  private static final java.lang.String DIRECT_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"

  private static final java.lang.String DELEGATING_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"

  private static final java.lang.String BASIC_FORMS_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/LambdaForm$Holder.class"

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=14, locals=0, args_size=0
         0: .line 51
            ldc Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
         3: .line 55
            ldc "generate-jli-classes"
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getDescription:(Ljava/lang/String;)Ljava/lang/String;
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
         4: .line 72
            ldc "java.lang.invoke.Invokers$Holder"
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
         5: .line 75
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/access/JavaLangInvokeAccess;
         6: .line 74
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
         7: .line 168
            iconst_0
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_VIRTUAL_TYPE:I
         8: .line 169
            iconst_4
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_INTERFACE_TYPE:I
         9: .line 175
            ldc "invokeVirtual"
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_VIRTUAL_TYPE:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        10: .line 176
            ldc "invokeStatic"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        11: .line 177
            ldc "invokeSpecial"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        12: .line 178
            ldc "newInvokeSpecial"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        13: .line 179
            ldc "invokeInterface"
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_INTERFACE_TYPE:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        14: .line 180
            ldc "invokeStaticInit"
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        15: .line 181
            ldc "invokeSpecialIFC"
            bipush 20
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        16: .line 174
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
        17: .line 173
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
        18: .line 462
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 461
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
        20: .line 462
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 87
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
         2: .line 79
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
         3: .line 81
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
         4: .line 83
            aload 0 /* this */
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         5: .line 88
            return
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

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

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

  public java.util.Set<jdk.tools.jlink.plugin.Plugin$State> getState();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 102
            getstatic jdk.tools.jlink.plugin.Plugin$State.AUTO_ENABLED:Ljdk/tools/jlink/plugin/Plugin$State;
            getstatic jdk.tools.jlink.plugin.Plugin$State.FUNCTIONAL:Ljdk/tools/jlink/plugin/Plugin$State;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
    Signature: ()Ljava/util/Set<Ljdk/tools/jlink/plugin/Plugin$State;>;

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

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

  public static java.util.Set<java.lang.String> defaultSpecies();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 123
            bipush 27
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL"
            aastore
            dup
            iconst_1
            ldc "L3"
            aastore
            dup
            iconst_2
            ldc "L4"
            aastore
            dup
            iconst_3
            ldc "L5"
            aastore
            dup
            iconst_4
            ldc "L6"
            aastore
            dup
            iconst_5
            ldc "L7"
            aastore
            dup
            bipush 6
            ldc "L7I"
            aastore
            dup
            bipush 7
         1: .line 124
            ldc "L7II"
            aastore
            dup
            bipush 8
            ldc "L7IIL"
            aastore
            dup
            bipush 9
            ldc "L8"
            aastore
            dup
            bipush 10
            ldc "L9"
            aastore
            dup
            bipush 11
            ldc "L10"
            aastore
            dup
            bipush 12
            ldc "L10I"
            aastore
            dup
            bipush 13
            ldc "L10II"
            aastore
            dup
            bipush 14
            ldc "L10IIL"
            aastore
            dup
            bipush 15
         2: .line 125
            ldc "L11"
            aastore
            dup
            bipush 16
            ldc "L12"
            aastore
            dup
            bipush 17
            ldc "L13"
            aastore
            dup
            bipush 18
            ldc "LI"
            aastore
            dup
            bipush 19
            ldc "D"
            aastore
            dup
            bipush 20
            ldc "L3I"
            aastore
            dup
            bipush 21
            ldc "LIL"
            aastore
            dup
            bipush 22
            ldc "LLI"
            aastore
            dup
            bipush 23
            ldc "LLIL"
            aastore
            dup
            bipush 24
         3: .line 126
            ldc "LILL"
            aastore
            dup
            bipush 25
            ldc "I"
            aastore
            dup
            bipush 26
            ldc "LLILL"
            aastore
         4: .line 123
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> defaultInvokers();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 133
            ldc "LL_L"
            ldc "LL_I"
            ldc "LLLL_L"
            ldc "LLLL_I"
            ldc "LLIL_L"
            ldc "LLIL_I"
         1: .line 134
            ldc "L6_L"
         2: .line 133
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> defaultCallSiteTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 141
            ldc "L5_L"
            ldc "LIL3_L"
            ldc "ILL_L"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Map<java.lang.String, java.util.Set<java.lang.String>> defaultDMHMethods();
    descriptor: ()Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=12, locals=0, args_size=0
         0: .line 149
            ldc "invokeInterface"
            ldc "LL_L"
            ldc "L3_I"
            ldc "L3_V"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
         1: .line 150
            ldc "invokeVirtual"
            ldc "LL_L"
            ldc "LLI_I"
            ldc "L3_V"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
         2: .line 151
            ldc "invokeSpecial"
            bipush 33
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL_I"
            aastore
            dup
            iconst_1
            ldc "LL_L"
            aastore
            dup
            iconst_2
            ldc "LLF_L"
            aastore
            dup
            iconst_3
            ldc "LLD_L"
            aastore
            dup
            iconst_4
         3: .line 152
            ldc "L3_I"
            aastore
            dup
            iconst_5
            ldc "L3_L"
            aastore
            dup
            bipush 6
            ldc "L4_L"
            aastore
            dup
            bipush 7
            ldc "L5_L"
            aastore
            dup
            bipush 8
            ldc "L6_L"
            aastore
            dup
            bipush 9
            ldc "L7_L"
            aastore
            dup
            bipush 10
            ldc "L8_L"
            aastore
            dup
            bipush 11
         4: .line 153
            ldc "LLI_I"
            aastore
            dup
            bipush 12
            ldc "LLI_L"
            aastore
            dup
            bipush 13
            ldc "LLIL_I"
            aastore
            dup
            bipush 14
            ldc "LLIL_L"
            aastore
            dup
            bipush 15
            ldc "LLII_I"
            aastore
            dup
            bipush 16
            ldc "LLII_L"
            aastore
            dup
            bipush 17
         5: .line 154
            ldc "L3I_L"
            aastore
            dup
            bipush 18
            ldc "L3I_I"
            aastore
            dup
            bipush 19
            ldc "L3ILL_L"
            aastore
            dup
            bipush 20
            ldc "LLILI_I"
            aastore
            dup
            bipush 21
            ldc "LLIIL_L"
            aastore
            dup
            bipush 22
            ldc "LLIILL_L"
            aastore
            dup
            bipush 23
         6: .line 155
            ldc "LLIILL_I"
            aastore
            dup
            bipush 24
            ldc "LLIIL_I"
            aastore
            dup
            bipush 25
            ldc "LLILIL_I"
            aastore
            dup
            bipush 26
            ldc "LLILILL_I"
            aastore
            dup
            bipush 27
            ldc "LLILII_I"
            aastore
            dup
            bipush 28
         7: .line 156
            ldc "LLI3_I"
            aastore
            dup
            bipush 29
            ldc "LLI3L_I"
            aastore
            dup
            bipush 30
            ldc "LLI3LL_I"
            aastore
            dup
            bipush 31
            ldc "LLI3_L"
            aastore
            dup
            bipush 32
            ldc "LLI4_I"
            aastore
         8: .line 151
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
         9: .line 157
            ldc "invokeStatic"
            bipush 37
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LII_I"
            aastore
            dup
            iconst_1
            ldc "LIL_I"
            aastore
            dup
            iconst_2
            ldc "LILIL_I"
            aastore
            dup
            iconst_3
            ldc "LILII_I"
            aastore
            dup
            iconst_4
        10: .line 158
            ldc "L_I"
            aastore
            dup
            iconst_5
            ldc "L_L"
            aastore
            dup
            bipush 6
            ldc "L_V"
            aastore
            dup
            bipush 7
            ldc "LD_L"
            aastore
            dup
            bipush 8
            ldc "LF_L"
            aastore
            dup
            bipush 9
            ldc "LI_I"
            aastore
            dup
            bipush 10
            ldc "LII_L"
            aastore
            dup
            bipush 11
            ldc "LLI_L"
            aastore
            dup
            bipush 12
        11: .line 159
            ldc "LL_I"
            aastore
            dup
            bipush 13
            ldc "LLILL_L"
            aastore
            dup
            bipush 14
            ldc "LLIL3_L"
            aastore
            dup
            bipush 15
            ldc "LL_V"
            aastore
            dup
            bipush 16
            ldc "LL_L"
            aastore
            dup
            bipush 17
            ldc "L3_I"
            aastore
            dup
            bipush 18
            ldc "L3_L"
            aastore
            dup
            bipush 19
        12: .line 160
            ldc "L3_V"
            aastore
            dup
            bipush 20
            ldc "L4_I"
            aastore
            dup
            bipush 21
            ldc "L4_L"
            aastore
            dup
            bipush 22
            ldc "L5_L"
            aastore
            dup
            bipush 23
            ldc "L6_L"
            aastore
            dup
            bipush 24
            ldc "L7_L"
            aastore
            dup
            bipush 25
            ldc "L8_L"
            aastore
            dup
            bipush 26
            ldc "L9_L"
            aastore
            dup
            bipush 27
        13: .line 161
            ldc "L10_L"
            aastore
            dup
            bipush 28
            ldc "L10I_L"
            aastore
            dup
            bipush 29
            ldc "L10II_L"
            aastore
            dup
            bipush 30
            ldc "L10IIL_L"
            aastore
            dup
            bipush 31
            ldc "L11_L"
            aastore
            dup
            bipush 32
            ldc "L12_L"
            aastore
            dup
            bipush 33
        14: .line 162
            ldc "L13_L"
            aastore
            dup
            bipush 34
            ldc "L14_L"
            aastore
            dup
            bipush 35
            ldc "L14I_L"
            aastore
            dup
            bipush 36
            ldc "L14II_L"
            aastore
        15: .line 157
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
        16: .line 163
            ldc "newInvokeSpecial"
            ldc "L_L"
            ldc "LL_L"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
        17: .line 164
            ldc "invokeSpecialIFC"
            ldc "L5_I"
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
        18: .line 148
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  public void configure(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Map config
         0: .line 186
            aload 0 /* this */
            aload 1 /* config */
            ldc "generate-jli-classes"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
         1: .line 187
            return
        end local 1 // java.util.Map config
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    2     1  config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      config  

  private void addSpeciesType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String type
         0: .line 190
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
            aload 1 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
         1: .line 191
            return
        end local 1 // java.lang.String type
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    2     1  type  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private void addInvokerType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String methodType
         0: .line 194
            aload 0 /* this */
            aload 1 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         1: .line 195
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
            aload 1 /* methodType */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
         2: .line 196
            return
        end local 1 // java.lang.String methodType
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    3     1  methodType  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      methodType  

  private void addCallSiteType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String csType
         0: .line 199
            aload 0 /* this */
            aload 1 /* csType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         1: .line 200
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
            aload 1 /* csType */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
         2: .line 201
            return
        end local 1 // java.lang.String csType
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    3     1  csType  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      csType  

  public void initialize(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
         0: .line 205
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultSpecies:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)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/GenerateJLIClassesPlugin.addSpeciesType(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         1: .line 207
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultInvokers:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)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/GenerateJLIClassesPlugin.validateMethodType(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         2: .line 209
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultCallSiteTypes:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)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/GenerateJLIClassesPlugin.addCallSiteType(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 211
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultDMHMethods:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)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/GenerateJLIClassesPlugin.lambda$3(Ljava/util/Map$Entry;)V (7)
                  (Ljava/util/Map$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         4: .line 217
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ifnull 5
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ldc "@"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 23
         5: .line 218
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
         6: .line 219
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "default_jli_trace.txt"
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
         7: .line 218
            astore 7 /* traceFile */
        start local 7 // java.io.InputStream traceFile
         8: .line 220
            aload 7 /* traceFile */
            ifnull 15
         9: .line 221
            aload 0 /* this */
        10: .line 222
            new java.io.BufferedReader
            dup
        11: .line 223
            new java.io.InputStreamReader
            dup
            aload 7 /* traceFile */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
        12: .line 222
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
        13: .line 223
            invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
        14: .line 221
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        15: .line 225
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool top top top java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 7 /* traceFile */
            ifnull 26
            aload 7 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 5
            aload 7 /* traceFile */
            ifnull 17
            aload 7 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
        end local 7 // java.io.InputStream traceFile
      StackMap locals:
      StackMap stack:
        17: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 6
            aload 5
            ifnonnull 19
            aload 6
            astore 5
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 5
            aload 6
            if_acmpeq 20
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 5
            athrow
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack: java.lang.Exception
        21: astore 5 /* e */
        start local 5 // java.lang.Exception e
        22: .line 226
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read default_jli_trace.txt"
            aload 5 /* e */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception e
        23: .line 229
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* file */
        start local 5 // java.io.File file
        24: .line 230
            aload 5 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 26
        25: .line 231
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* file */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.fileLines:(Ljava/io/File;)Ljava/util/stream/Stream;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        end local 5 // java.io.File file
        26: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   27     1         in  Ljdk/tools/jlink/plugin/ResourcePool;
            8   17     7  traceFile  Ljava/io/InputStream;
           22   23     5          e  Ljava/lang/Exception;
           24   26     5       file  Ljava/io/File;
      Exception table:
        from    to  target  type
           8    15      16  any
           6    18      18  any
           5    21      21  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  private void readTraceConfig(java.util.stream.Stream<java.lang.String>);
    descriptor: (Ljava/util/stream/Stream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.stream.Stream lines
         0: .line 237
            aload 1 /* lines */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$5(Ljava/lang/String;)[Ljava/lang/String; (6)
                  (Ljava/lang/String;)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 238
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)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/GenerateJLIClassesPlugin.lambda$6([Ljava/lang/String;)V (7)
                  ([Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         2: .line 270
            return
        end local 1 // java.util.stream.Stream lines
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    3     1  lines  Ljava/util/stream/Stream<Ljava/lang/String;>;
    Signature: (Ljava/util/stream/Stream<Ljava/lang/String;>;)V
    MethodParameters:
       Name  Flags
      lines  

  private void addDMHMethodType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String dmh
        start local 2 // java.lang.String methodType
         0: .line 273
            aload 0 /* this */
            aload 2 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         1: .line 274
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* methodTypes */
        start local 3 // java.util.Set methodTypes
         2: .line 275
            aload 3 /* methodTypes */
            ifnonnull 5
         3: .line 276
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 3 /* methodTypes */
         4: .line 277
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            aload 3 /* methodTypes */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 279
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* methodTypes */
            aload 2 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 280
            return
        end local 3 // java.util.Set methodTypes
        end local 2 // java.lang.String methodType
        end local 1 // java.lang.String dmh
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    7     1          dmh  Ljava/lang/String;
            0    7     2   methodType  Ljava/lang/String;
            2    7     3  methodTypes  Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      dmh         
      methodType  

  private java.util.stream.Stream<java.lang.String> fileLines(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.io.File file
         0: .line 284
            aload 1 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
         1: areturn
         2: .line 285
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 286
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read file"
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.File file
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    4     1  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Signature: (Ljava/io/File;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      file  

  private void validateMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String type
         0: .line 291
            aload 1 /* type */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* typeParts */
        start local 2 // java.lang.String[] typeParts
         1: .line 293
            aload 2 /* typeParts */
            arraylength
            iconst_2
            if_icmpne 3
            aload 2 /* typeParts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 3
         2: .line 294
            ldc "LJIFDV"
            aload 2 /* typeParts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 6
         3: .line 295
      StackMap locals: java.lang.String[]
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
         4: .line 296
            ldc "Method type signature must be of form [LJIFD]*_[LJIFDV]"
         5: .line 295
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 299
      StackMap locals:
      StackMap stack:
            aload 2 /* typeParts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            pop
         7: .line 300
            return
        end local 2 // java.lang.String[] typeParts
        end local 1 // java.lang.String type
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    8     1       type  Ljava/lang/String;
            1    8     2  typeParts  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private static void requireBasicType(char);
    descriptor: (C)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 303
            ldc "LIJFD"
            iload 0 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 4
         1: .line 304
            new jdk.tools.jlink.plugin.PluginException
            dup
         2: .line 305
            new java.lang.StringBuilder
            dup
            ldc "Character "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " must correspond to a basic field type: LIJFD"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 304
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 307
      StackMap locals:
      StackMap stack:
            return
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     c  C
    MethodParameters:
      Name  Flags
      c     

  public jdk.tools.jlink.plugin.ResourcePool transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljdk/tools/jlink/plugin/ResourcePool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 311
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.initialize:(Ljdk/tools/jlink/plugin/ResourcePool;)V
         1: .line 313
            aload 1 /* in */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$7(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
         2: .line 324
            aload 2 /* out */
         3: .line 313
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         4: .line 327
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
            aload 0 /* this */
            aload 2 /* out */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$8(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokevirtual java.util.TreeSet.forEach:(Ljava/util/function/Consumer;)V
         5: .line 330
            aload 0 /* this */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateHolderClasses:(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         6: .line 333
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.clear:()V
         7: .line 334
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.clear:()V
         8: .line 335
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.clear:()V
         9: .line 336
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        10: .line 338
            aload 2 /* out */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
            areturn
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   11     1    in  Ljdk/tools/jlink/plugin/ResourcePool;
            0   11     2   out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
    MethodParameters:
      Name  Flags
      in    
      out   

  private void generateBMHClass(java.lang.String, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String types
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 346
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
            aload 1 /* types */
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateConcreteBMHClassBytes:(Ljava/lang/String;)Ljava/util/Map$Entry;
         1: .line 345
            astore 3 /* result */
        start local 3 // java.util.Map$Entry result
         2: .line 347
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* className */
        start local 4 // java.lang.String className
         3: .line 348
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         4: .line 352
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 353
            aload 5 /* bytes */
         6: .line 351
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 6 /* ndata */
        start local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
         7: .line 354
            aload 2 /* out */
            aload 6 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 5 // byte[] bytes
        end local 4 // java.lang.String className
        end local 3 // java.util.Map$Entry result
         8: .line 355
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
        10: .line 356
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 3 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception ex
        11: .line 358
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   12     1      types  Ljava/lang/String;
            0   12     2        out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            2    8     3     result  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            3    8     4  className  Ljava/lang/String;
            4    8     5      bytes  [B
            7    8     6      ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           10   11     3         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     8       9  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      types  
      out    

  private void generateHolderClasses(jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 361
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 362
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* entry */
        start local 3 // java.util.Set entry
         3: .line 363
            iload 2 /* count */
            aload 3 /* entry */
            invokeinterface java.util.Set.size:()I
            iadd
            istore 2 /* count */
        end local 3 // java.util.Set entry
         4: .line 362
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 365
            iload 2 /* count */
            anewarray java.lang.invoke.MethodType
            astore 3 /* directMethodTypes */
        start local 3 // java.lang.invoke.MethodType[] directMethodTypes
         6: .line 366
            iload 2 /* count */
            newarray 10
            astore 4 /* dmhTypes */
        start local 4 // int[] dmhTypes
         7: .line 367
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         8: .line 368
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 30
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
         9: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        10: .line 369
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* dmhType */
        start local 8 // java.lang.String dmhType
        11: .line 370
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 29
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
        12: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* type */
        start local 9 // java.lang.String type
        13: .line 373
            aload 9 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 11 /* mt */
        start local 11 // java.lang.invoke.MethodType mt
        14: .line 374
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 16
        15: .line 375
            aload 11 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 19
        16: .line 376
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.invoke.MethodType
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        17: .line 377
            new java.lang.StringBuilder
            dup
            ldc "DMH type parameter must start with L: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* dmhType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 376
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 381
      StackMap locals:
      StackMap stack:
            aload 3 /* directMethodTypes */
            iload 5 /* index */
            aload 11 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        20: .line 385
            aload 4 /* dmhTypes */
            iload 5 /* index */
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 8 /* dmhType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        21: .line 386
            aload 4 /* dmhTypes */
            iload 5 /* index */
            iaload
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_INTERFACE_TYPE:I
            if_icmpeq 23
        22: .line 387
            aload 4 /* dmhTypes */
            iload 5 /* index */
            iaload
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_VIRTUAL_TYPE:I
            if_icmpne 28
        23: .line 388
      StackMap locals:
      StackMap stack:
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_2
            if_icmplt 25
        24: .line 389
            aload 11 /* mt */
            iconst_1
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 28
        25: .line 390
      StackMap locals:
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        26: .line 391
            new java.lang.StringBuilder
            dup
            ldc "DMH type parameter must start with LL: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* dmhType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 390
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 394
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ 1
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String type
        29: .line 370
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 8 // java.lang.String dmhType
        end local 6 // java.util.Map$Entry entry
        30: .line 368
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        31: .line 400
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.size:()I
            anewarray java.lang.invoke.MethodType
            astore 6 /* invokerMethodTypes */
        start local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        32: .line 401
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        33: .line 402
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
            astore 9
            goto 46
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
        34: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* invokerType */
        start local 8 // java.lang.String invokerType
        35: .line 403
            aload 8 /* invokerType */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        start local 10 // java.lang.invoke.MethodType mt
        36: .line 404
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 11 /* lastParam */
        start local 11 // int lastParam
        37: .line 405
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_2
            if_icmplt 40
        38: .line 406
            aload 10 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 40
        39: .line 407
            aload 10 /* mt */
            iload 11 /* lastParam */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 43
        40: .line 408
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.String java.util.Iterator java.lang.invoke.MethodType int
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        41: .line 409
            new java.lang.StringBuilder
            dup
            ldc "Invoker type parameter must start and end with Object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* invokerType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        42: .line 408
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        43: .line 411
      StackMap locals:
      StackMap stack:
            aload 10 /* mt */
            iload 11 /* lastParam */
            iload 11 /* lastParam */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        44: .line 412
            aload 6 /* invokerMethodTypes */
            iload 7 /* i */
            aload 10 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        45: .line 413
            iinc 7 /* i */ 1
        end local 11 // int lastParam
        end local 10 // java.lang.invoke.MethodType mt
        end local 8 // java.lang.String invokerType
        46: .line 402
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        47: .line 418
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.size:()I
            anewarray java.lang.invoke.MethodType
            astore 8 /* callSiteMethodTypes */
        start local 8 // java.lang.invoke.MethodType[] callSiteMethodTypes
        48: .line 419
            iconst_0
            istore 7 /* i */
        49: .line 420
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
            astore 10
            goto 60
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] top java.util.Iterator
      StackMap stack:
        50: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* callSiteType */
        start local 9 // java.lang.String callSiteType
        51: .line 421
            aload 9 /* callSiteType */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 11 /* mt */
        start local 11 // java.lang.invoke.MethodType mt
        52: .line 422
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 12 /* lastParam */
        start local 12 // int lastParam
        53: .line 423
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 55
        54: .line 424
            aload 11 /* mt */
            iload 12 /* lastParam */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 58
        55: .line 425
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] java.lang.String java.util.Iterator java.lang.invoke.MethodType int
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        56: .line 426
            new java.lang.StringBuilder
            dup
            ldc "CallSite type parameter must end with Object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* callSiteType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        57: .line 425
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 428
      StackMap locals:
      StackMap stack:
            aload 8 /* callSiteMethodTypes */
            iload 7 /* i */
            aload 11 /* mt */
            iload 12 /* lastParam */
            iload 12 /* lastParam */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        59: .line 429
            iinc 7 /* i */ 1
        end local 12 // int lastParam
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String callSiteType
        60: .line 420
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        61: .line 432
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
        62: .line 433
            ldc "java/lang/invoke/DirectMethodHandle$Holder"
            aload 3 /* directMethodTypes */
            aload 4 /* dmhTypes */
        63: .line 432
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateDirectMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
            astore 9 /* bytes */
        start local 9 // byte[] bytes
        64: .line 435
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
        65: .line 434
            astore 10 /* ndata */
        start local 10 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        66: .line 436
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        67: .line 438
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
        68: .line 439
            ldc "java/lang/invoke/DelegatingMethodHandle$Holder"
            aload 3 /* directMethodTypes */
        69: .line 438
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateDelegatingMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
            astore 9 /* bytes */
        70: .line 440
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        71: .line 441
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        72: .line 443
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
        73: .line 444
            aload 6 /* invokerMethodTypes */
            aload 8 /* callSiteMethodTypes */
        74: .line 443
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateInvokersHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodType;)[B
            astore 9 /* bytes */
        75: .line 445
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        76: .line 446
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        77: .line 448
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
            ldc "java/lang/invoke/LambdaForm$Holder"
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateBasicFormsClassBytes:(Ljava/lang/String;)[B
            astore 9 /* bytes */
        78: .line 449
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        79: .line 450
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 10 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 9 // byte[] bytes
        80: .line 451
            goto 83
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[]
      StackMap stack: java.lang.Exception
        81: astore 9 /* ex */
        start local 9 // java.lang.Exception ex
        82: .line 452
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 9 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.Exception ex
        83: .line 454
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.invoke.MethodType[] callSiteMethodTypes
        end local 7 // int i
        end local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        end local 5 // int index
        end local 4 // int[] dmhTypes
        end local 3 // java.lang.invoke.MethodType[] directMethodTypes
        end local 2 // int count
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   84     0                 this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   84     1                  out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1   84     2                count  I
            3    4     3                entry  Ljava/util/Set<Ljava/lang/String;>;
            6   84     3    directMethodTypes  [Ljava/lang/invoke/MethodType;
            7   84     4             dmhTypes  [I
            8   84     5                index  I
           10   30     6                entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           11   30     8              dmhType  Ljava/lang/String;
           13   29     9                 type  Ljava/lang/String;
           14   29    11                   mt  Ljava/lang/invoke/MethodType;
           32   84     6   invokerMethodTypes  [Ljava/lang/invoke/MethodType;
           33   84     7                    i  I
           35   46     8          invokerType  Ljava/lang/String;
           36   46    10                   mt  Ljava/lang/invoke/MethodType;
           37   46    11            lastParam  I
           48   84     8  callSiteMethodTypes  [Ljava/lang/invoke/MethodType;
           51   60     9         callSiteType  Ljava/lang/String;
           52   60    11                   mt  Ljava/lang/invoke/MethodType;
           53   60    12            lastParam  I
           64   80     9                bytes  [B
           66   80    10                ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           82   83     9                   ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          61    80      81  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      out   

  public static java.lang.String expandSignature(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.String signature
         0: .line 466
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 467
            bipush 88
            istore 2 /* last */
        start local 2 // char last
         2: .line 468
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         3: .line 469
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 20
         5: .line 470
      StackMap locals: java.lang.String java.lang.StringBuilder int int int
      StackMap stack:
            aload 0 /* signature */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         6: .line 471
            iload 5 /* c */
            bipush 48
            if_icmplt 10
            iload 5 /* c */
            bipush 57
            if_icmpgt 10
         7: .line 472
            iload 3 /* count */
            bipush 10
            imul
            istore 3 /* count */
         8: .line 473
            iload 3 /* count */
            iload 5 /* c */
            bipush 48
            isub
            iadd
            istore 3 /* count */
         9: .line 474
            goto 19
        10: .line 475
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        11: .line 476
            iconst_1
            istore 6 /* j */
        start local 6 // int j
        12: goto 15
        13: .line 477
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 476
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* j */
            iload 3 /* count */
            if_icmplt 13
        end local 6 // int j
        16: .line 479
            aload 1 /* sb */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 480
            iload 5 /* c */
            istore 2 /* last */
        18: .line 481
            iconst_0
            istore 3 /* count */
        end local 5 // char c
        19: .line 469
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* signature */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 4 // int i
        21: .line 486
            iload 3 /* count */
            iconst_1
            if_icmple 28
        22: .line 487
            iload 2 /* last */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        23: .line 488
            iconst_1
            istore 4 /* j */
        start local 4 // int j
        24: goto 27
        25: .line 489
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 488
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        27: iload 4 /* j */
            iload 3 /* count */
            if_icmplt 25
        end local 4 // int j
        28: .line 492
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int count
        end local 2 // char last
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String signature
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   29     0  signature  Ljava/lang/String;
            1   29     1         sb  Ljava/lang/StringBuilder;
            2   29     2       last  C
            3   29     3      count  I
            4   21     4          i  I
            6   19     5          c  C
           12   16     6          j  I
           24   28     4          j  I
    MethodParameters:
           Name  Flags
      signature  

  private static java.lang.invoke.MethodType asMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/invoke/MethodType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String basicSignatureString
         0: .line 496
            aload 0 /* basicSignatureString */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* parts */
        start local 1 // java.lang.String[] parts
         1: .line 497
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 2
            aload 1 /* parts */
            arraylength
            iconst_2
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 498
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 3
            aload 1 /* parts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 499
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* parameters */
        start local 2 // java.lang.String parameters
         4: .line 500
            aload 1 /* parts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            astore 3 /* rtype */
        start local 3 // java.lang.Class rtype
         5: .line 501
            aload 2 /* parameters */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         6: .line 502
            aload 3 /* rtype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
         7: .line 504
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 2 /* parameters */
            invokevirtual java.lang.String.length:()I
            anewarray java.lang.Class
            astore 4 /* ptypes */
        start local 4 // java.lang.Class[] ptypes
         8: .line 505
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 12
        10: .line 506
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 4 /* ptypes */
            iload 5 /* i */
            aload 2 /* parameters */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            aastore
        11: .line 505
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            aload 4 /* ptypes */
            arraylength
            if_icmplt 10
        end local 5 // int i
        13: .line 508
            aload 3 /* rtype */
            aload 4 /* ptypes */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
        end local 4 // java.lang.Class[] ptypes
        end local 3 // java.lang.Class rtype
        end local 2 // java.lang.String parameters
        end local 1 // java.lang.String[] parts
        end local 0 // java.lang.String basicSignatureString
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0  basicSignatureString  Ljava/lang/String;
            1   14     1                 parts  [Ljava/lang/String;
            4   14     2            parameters  Ljava/lang/String;
            5   14     3                 rtype  Ljava/lang/Class<*>;
            8   14     4                ptypes  [Ljava/lang/Class;
            9   13     5                     i  I
    MethodParameters:
                      Name  Flags
      basicSignatureString  

  private static java.lang.Class<?> simpleType(char);
    descriptor: (C)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 513
            iload 0 /* c */
            tableswitch { // 66 - 90
                   66: 7
                   67: 7
                   68: 2
                   69: 10
                   70: 1
                   71: 10
                   72: 10
                   73: 3
                   74: 5
                   75: 10
                   76: 4
                   77: 10
                   78: 10
                   79: 10
                   80: 10
                   81: 10
                   82: 10
                   83: 7
                   84: 10
                   85: 10
                   86: 6
                   87: 10
                   88: 10
                   89: 10
                   90: 7
              default: 10
          }
         1: .line 515
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
         2: .line 517
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
         3: .line 519
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
         4: .line 521
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            areturn
         5: .line 523
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
         6: .line 525
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
         7: .line 530
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a valid primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         8: .line 531
            ldc " (use I instead)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 530
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 533
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     c  C
    Signature: (C)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      c     

  private void lambda$3(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Map$Entry e
         0: .line 212
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 1 /* e */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;Ljava/util/Map$Entry;)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/GenerateJLIClassesPlugin.lambda$4(Ljava/util/Map$Entry;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         1: .line 213
            return
        end local 1 // java.util.Map$Entry e
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    2     1     e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  private static java.lang.String[] lambda$5(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String line
         0: .line 237
            aload 0 /* line */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  line  Ljava/lang/String;

  private void lambda$6(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String[] parts
         0: .line 239
            aload 1 /* parts */
            iconst_0
            aaload
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
           -685835729: 1
           -606951941: 2
              default: 21
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "[SPECIES_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            goto 21
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "[LF_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 21
         3: .line 242
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            arraylength
            iconst_3
            if_icmpne 21
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 21
         4: .line 243
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* species */
        start local 3 // java.lang.String species
         5: .line 244
            ldc "L"
            aload 3 /* species */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
         6: .line 245
            aload 0 /* this */
            aload 3 /* species */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addSpeciesType:(Ljava/lang/String;)V
        end local 3 // java.lang.String species
         7: .line 248
            goto 21
         8: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_3
            aaload
            astore 3 /* methodType */
        start local 3 // java.lang.String methodType
         9: .line 251
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.Invokers$Holder"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        10: .line 252
            ldc "linkToTargetMethod"
            aload 1 /* parts */
            iconst_2
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 253
            ldc "linkToCallSite"
            aload 1 /* parts */
            iconst_2
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 254
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addCallSiteType:(Ljava/lang/String;)V
        13: .line 255
            goto 21
        14: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addInvokerType:(Ljava/lang/String;)V
        15: .line 258
            goto 21
      StackMap locals:
      StackMap stack:
        16: aload 1 /* parts */
            iconst_1
            aaload
            ldc "DirectMethodHandle"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 21
        17: .line 259
            aload 1 /* parts */
            iconst_2
            aaload
            astore 4 /* dmh */
        start local 4 // java.lang.String dmh
        18: .line 262
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 4 /* dmh */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 263
            aload 0 /* this */
            aload 4 /* dmh */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.lang.String dmh
        20: .line 266
            goto 21
        end local 3 // java.lang.String methodType
        21: .line 269
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] parts
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   22     1       parts  [Ljava/lang/String;
            5    7     3     species  Ljava/lang/String;
            9   21     3  methodType  Ljava/lang/String;
           18   20     4         dmh  Ljava/lang/String;

  private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$7(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 315
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         1: .line 316
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         2: .line 317
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 318
            aload 1 /* path */
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 319
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 320
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            areturn
         6: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* entry */
            areturn
        end local 1 // java.lang.String path
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            1    7     1   path  Ljava/lang/String;

  private void lambda$8(jdk.tools.jlink.plugin.ResourcePoolBuilder, java.lang.String);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 2 // java.lang.String types
         0: .line 327
            aload 0 /* this */
            aload 2 /* types */
            aload 1
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateBMHClass:(Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
            return
        end local 2 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    1     2  types  Ljava/lang/String;

  private void lambda$4(java.util.Map$Entry, java.lang.String);
    descriptor: (Ljava/util/Map$Entry;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 2 // java.lang.String type
         0: .line 212
            aload 0 /* this */
            aload 1
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* type */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
            return
        end local 2 // java.lang.String type
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    1     2  type  Ljava/lang/String;
}
SourceFile: "GenerateJLIClassesPlugin.java"
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 final State = jdk.tools.jlink.plugin.Plugin$State of jdk.tools.jlink.plugin.Plugin