abstract class java.lang.invoke.MethodHandleImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: java.lang.invoke.MethodHandleImpl
  super_class: java.lang.Object
{
  static java.lang.invoke.MethodHandle[] FAKE_METHOD_HANDLE_INVOKE;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC

  private static final java.lang.Object[] NO_ARGS_ARRAY;
    descriptor: [Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int ARRAYS_COUNT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final java.lang.invoke.MethodHandle[] ARRAYS;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.Stable()

  private static final int FILL_ARRAYS_COUNT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final java.lang.invoke.MethodHandle[] FILL_ARRAYS;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.Stable()

  private static final int LEFT_ARGS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final java.lang.invoke.MethodHandle[] FILL_ARRAY_TO_RIGHT;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.Stable()

  static final int MAX_JVM_ARITY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 255

  static final byte NF_checkSpreadArgument;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final byte NF_guardWithCatch;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final byte NF_throwException;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final byte NF_tryFinally;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final byte NF_loop;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final byte NF_profileBoolean;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final byte NF_LIMIT;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final java.lang.invoke.LambdaForm$NamedFunction[] NFS;
    descriptor: [Ljava/lang/invoke/LambdaForm$NamedFunction;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.Stable()

  static final int MH_cast;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int MH_selectAlternative;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int MH_copyAsPrimitiveArray;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int MH_fillNewTypedArray;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int MH_fillNewArray;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int MH_arrayIdentity;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int MH_countedLoopPred;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final int MH_countedLoopStep;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  static final int MH_initIterator;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int MH_iteratePred;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  static final int MH_iterateNext;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final int MH_Array_newInstance;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  static final int MH_LIMIT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  private static final java.lang.invoke.MethodHandle[] HANDLES;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.Stable()

  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=2, locals=0, args_size=0
         0: .line 60
            ldc Ljava/lang/invoke/MethodHandleImpl;
            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 java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
         3: .line 1143
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandleImpl.FAKE_METHOD_HANDLE_INVOKE:[Ljava/lang/invoke/MethodHandle;
         4: .line 1466
            iconst_0
            anewarray java.lang.Object
            putstatic java.lang.invoke.MethodHandleImpl.NO_ARGS_ARRAY:[Ljava/lang/Object;
         5: .line 1499
            getstatic java.lang.invoke.MethodHandleStatics.MAX_ARITY:I
            iconst_1
            iadd
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandleImpl.ARRAYS:[Ljava/lang/invoke/MethodHandle;
         6: .line 1548
            bipush 11
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandleImpl.FILL_ARRAYS:[Ljava/lang/invoke/MethodHandle;
         7: .line 1620
            getstatic java.lang.invoke.MethodHandleStatics.MAX_ARITY:I
            iconst_1
            iadd
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandleImpl.FILL_ARRAY_TO_RIGHT:[Ljava/lang/invoke/MethodHandle;
         8: .line 1736
            bipush 6
            anewarray java.lang.invoke.LambdaForm$NamedFunction
            putstatic java.lang.invoke.MethodHandleImpl.NFS:[Ljava/lang/invoke/LambdaForm$NamedFunction;
         9: .line 1777
            new java.lang.invoke.MethodHandleImpl$1
            dup
            invokespecial java.lang.invoke.MethodHandleImpl$1.<init>:()V
            invokestatic jdk.internal.misc.SharedSecrets.setJavaLangInvokeAccess:(Ljdk/internal/misc/JavaLangInvokeAccess;)V
        10: .line 2277
            bipush 12
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandleImpl.HANDLES:[Ljava/lang/invoke/MethodHandle;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandleImpl this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.lang.invoke.MethodHandleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandleImpl;

  static java.lang.invoke.MethodHandle makeArrayElementAccessor(java.lang.Class<?>, java.lang.invoke.MethodHandleImpl$ArrayAccess);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.lang.Class arrayClass
        start local 1 // java.lang.invoke.MethodHandleImpl$ArrayAccess access
         0: .line 65
            aload 0 /* arrayClass */
            ldc [Ljava/lang/Object;
            if_acmpne 2
         1: .line 66
            aload 1 /* access */
            invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccess.objectAccessor:(Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* arrayClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 4
         3: .line 69
            new java.lang.StringBuilder
            dup
            ldc "not an array: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* arrayClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         4: .line 70
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.TYPED_ACCESSORS:Ljava/lang/ClassValue;
            aload 0 /* arrayClass */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle[]
            astore 2 /* cache */
        start local 2 // java.lang.invoke.MethodHandle[] cache
         5: .line 71
            aload 1 /* access */
            invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccess.cacheIndex:(Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)I
            istore 3 /* cacheIndex */
        start local 3 // int cacheIndex
         6: .line 72
            aload 2 /* cache */
            iload 3 /* cacheIndex */
            aaload
            astore 4 /* mh */
        start local 4 // java.lang.invoke.MethodHandle mh
         7: .line 73
            aload 4 /* mh */
            ifnull 8
            aload 4 /* mh */
            areturn
         8: .line 74
      StackMap locals: java.lang.invoke.MethodHandle[] int java.lang.invoke.MethodHandle
      StackMap stack:
            aload 0 /* arrayClass */
            aload 1 /* access */
            invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.getAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* mh */
         9: .line 75
            aload 0 /* arrayClass */
            aload 1 /* access */
            invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.correctType:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodType;
            astore 5 /* correctType */
        start local 5 // java.lang.invoke.MethodType correctType
        10: .line 76
            aload 4 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 5 /* correctType */
            if_acmpeq 18
        11: .line 77
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 12
            aload 4 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc [Ljava/lang/Object;
            if_acmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 78
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 13
            aload 1 /* access */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.SET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            if_acmpne 13
            aload 4 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_2
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 79
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 17
            aload 1 /* access */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.GET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            if_acmpne 17
        14: .line 80
            aload 4 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 16
        15: .line 81
            aload 5 /* correctType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            aload 5 /* correctType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 17
      StackMap locals:
      StackMap stack:
        16: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 83
      StackMap locals:
      StackMap stack:
            aload 4 /* mh */
            aload 5 /* correctType */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandle.viewAsType:(Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
            astore 4 /* mh */
        18: .line 85
      StackMap locals:
      StackMap stack:
            aload 4 /* mh */
            aload 1 /* access */
            invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccess.intrinsic:(Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* mh */
        19: .line 87
            aload 2 /* cache */
            dup
            astore 6
            monitorenter
        20: .line 88
            aload 2 /* cache */
            iload 3 /* cacheIndex */
            aaload
            ifnonnull 23
        21: .line 89
            aload 2 /* cache */
            iload 3 /* cacheIndex */
            aload 4 /* mh */
            aastore
        22: .line 90
            goto 24
        23: .line 92
      StackMap locals: java.lang.invoke.MethodHandle[]
      StackMap stack:
            aload 2 /* cache */
            iload 3 /* cacheIndex */
            aaload
            astore 4 /* mh */
        24: .line 87
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        25: goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: aload 6
            monitorexit
        27: athrow
        28: .line 95
      StackMap locals:
      StackMap stack:
            aload 4 /* mh */
            areturn
        end local 5 // java.lang.invoke.MethodType correctType
        end local 4 // java.lang.invoke.MethodHandle mh
        end local 3 // int cacheIndex
        end local 2 // java.lang.invoke.MethodHandle[] cache
        end local 1 // java.lang.invoke.MethodHandleImpl$ArrayAccess access
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0   arrayClass  Ljava/lang/Class<*>;
            0   29     1       access  Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            5   29     2        cache  [Ljava/lang/invoke/MethodHandle;
            6   29     3   cacheIndex  I
            7   29     4           mh  Ljava/lang/invoke/MethodHandle;
           10   29     5  correctType  Ljava/lang/invoke/MethodType;
      Exception table:
        from    to  target  type
          20    25      26  any
          26    27      26  any
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  
      access      

  static java.lang.InternalError unmatchedArrayAccess(java.lang.invoke.MethodHandleImpl$ArrayAccess);
    descriptor: (Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/InternalError;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandleImpl$ArrayAccess a
         0: .line 142
            new java.lang.StringBuilder
            dup
            ldc "should not reach here (unmatched ArrayAccess: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* a */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
            areturn
        end local 0 // java.lang.invoke.MethodHandleImpl$ArrayAccess a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
    MethodParameters:
      Name  Flags
      a     

  static java.lang.invoke.MethodHandle makePairwiseConvert(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, boolean, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;ZZ)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType srcType
        start local 2 // boolean strict
        start local 3 // boolean monobox
         0: .line 252
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* dstType */
        start local 4 // java.lang.invoke.MethodType dstType
         1: .line 253
            aload 1 /* srcType */
            aload 4 /* dstType */
            if_acmpne 3
         2: .line 254
            aload 0 /* target */
            areturn
         3: .line 255
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 0 /* target */
            aload 1 /* srcType */
            iload 2 /* strict */
            iload 3 /* monobox */
            invokestatic java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;ZZ)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodType dstType
        end local 3 // boolean monobox
        end local 2 // boolean strict
        end local 1 // java.lang.invoke.MethodType srcType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   target  Ljava/lang/invoke/MethodHandle;
            0    4     1  srcType  Ljava/lang/invoke/MethodType;
            0    4     2   strict  Z
            0    4     3  monobox  Z
            1    4     4  dstType  Ljava/lang/invoke/MethodType;
    MethodParameters:
         Name  Flags
      target   
      srcType  
      strict   
      monobox  

  private static int countNonNull(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // java.lang.Object[] array
         0: .line 259
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 260
            aload 0 /* array */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: java.lang.Object[] int top int int java.lang.Object[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* x */
        start local 2 // java.lang.Object x
         3: .line 261
            aload 2 /* x */
            ifnull 4
            iinc 1 /* count */ 1
        end local 2 // java.lang.Object x
         4: .line 260
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 263
            iload 1 /* count */
            ireturn
        end local 1 // int count
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  array  [Ljava/lang/Object;
            1    7     1  count  I
            3    4     2      x  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      array  

  static java.lang.invoke.MethodHandle makePairwiseConvertByEditor(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, boolean, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;ZZ)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=14, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType srcType
        start local 2 // boolean strict
        start local 3 // boolean monobox
         0: .line 268
            aload 1 /* srcType */
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iload 2 /* strict */
            iload 3 /* monobox */
            invokestatic java.lang.invoke.MethodHandleImpl.computeValueConversions:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;ZZ)[Ljava/lang/Object;
            astore 4 /* convSpecs */
        start local 4 // java.lang.Object[] convSpecs
         1: .line 269
            aload 4 /* convSpecs */
            invokestatic java.lang.invoke.MethodHandleImpl.countNonNull:([Ljava/lang/Object;)I
            istore 5 /* convCount */
        start local 5 // int convCount
         2: .line 270
            iload 5 /* convCount */
            ifne 4
         3: .line 271
            aload 0 /* target */
            aload 1 /* srcType */
            iload 2 /* strict */
            invokevirtual java.lang.invoke.MethodHandle.viewAsType:(Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 272
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 1 /* srcType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            astore 6 /* basicSrcType */
        start local 6 // java.lang.invoke.MethodType basicSrcType
         5: .line 273
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            astore 7 /* midType */
        start local 7 // java.lang.invoke.MethodType midType
         6: .line 274
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* mh */
        start local 8 // java.lang.invoke.BoundMethodHandle mh
         7: .line 277
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         8: goto 23
         9: .line 278
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.Object[] int java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle int
      StackMap stack:
            aload 4 /* convSpecs */
            iload 9 /* i */
            aaload
            astore 10 /* convSpec */
        start local 10 // java.lang.Object convSpec
        10: .line 279
            aload 10 /* convSpec */
            ifnonnull 11
            goto 22
        11: .line 281
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 10 /* convSpec */
            instanceof java.lang.Class
            ifeq 14
        12: .line 282
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            aload 10 /* convSpec */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 11 /* fn */
        start local 11 // java.lang.invoke.MethodHandle fn
        13: .line 283
            goto 15
        end local 11 // java.lang.invoke.MethodHandle fn
        14: .line 284
      StackMap locals:
      StackMap stack:
            aload 10 /* convSpec */
            checkcast java.lang.invoke.MethodHandle
            astore 11 /* fn */
        start local 11 // java.lang.invoke.MethodHandle fn
        15: .line 286
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 6 /* basicSrcType */
            iload 9 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 12 /* newType */
        start local 12 // java.lang.Class newType
        16: .line 287
            iinc 5 /* convCount */ -1
            iload 5 /* convCount */
            ifne 18
        17: .line 288
            aload 1 /* srcType */
            astore 7 /* midType */
            goto 19
        18: .line 290
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 7 /* midType */
            iload 9 /* i */
            aload 12 /* newType */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* midType */
        19: .line 291
      StackMap locals:
      StackMap stack:
            aload 8 /* mh */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 9 /* i */
            iadd
            aload 12 /* newType */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaFormEditor.filterArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 13 /* form2 */
        start local 13 // java.lang.invoke.LambdaForm form2
        20: .line 292
            aload 8 /* mh */
            aload 7 /* midType */
            aload 13 /* form2 */
            aload 11 /* fn */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* mh */
        21: .line 293
            aload 8 /* mh */
            invokevirtual java.lang.invoke.BoundMethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* mh */
        end local 13 // java.lang.invoke.LambdaForm form2
        end local 12 // java.lang.Class newType
        end local 11 // java.lang.invoke.MethodHandle fn
        end local 10 // java.lang.Object convSpec
        22: .line 277
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 9 /* i */
            aload 4 /* convSpecs */
            arraylength
            iconst_1
            isub
            if_icmplt 9
        end local 9 // int i
        24: .line 295
            aload 4 /* convSpecs */
            aload 4 /* convSpecs */
            arraylength
            iconst_1
            isub
            aaload
            astore 9 /* convSpec */
        start local 9 // java.lang.Object convSpec
        25: .line 296
            aload 9 /* convSpec */
            ifnull 43
        26: .line 298
            aload 9 /* convSpec */
            instanceof java.lang.Class
            ifeq 32
        27: .line 299
            aload 9 /* convSpec */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 30
        28: .line 300
            aconst_null
            astore 10 /* fn */
        start local 10 // java.lang.invoke.MethodHandle fn
        29: goto 33
        end local 10 // java.lang.invoke.MethodHandle fn
        30: .line 302
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.Object[] int java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.Object
      StackMap stack:
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            aload 9 /* convSpec */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 10 /* fn */
        start local 10 // java.lang.invoke.MethodHandle fn
        31: .line 303
            goto 33
        end local 10 // java.lang.invoke.MethodHandle fn
        32: .line 304
      StackMap locals:
      StackMap stack:
            aload 9 /* convSpec */
            checkcast java.lang.invoke.MethodHandle
            astore 10 /* fn */
        start local 10 // java.lang.invoke.MethodHandle fn
        33: .line 306
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 6 /* basicSrcType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 11 /* newType */
        start local 11 // java.lang.Class newType
        34: .line 307
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 35
            iinc 5 /* convCount */ -1
            iload 5 /* convCount */
            ifeq 35
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 308
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* srcType */
            astore 7 /* midType */
        36: .line 309
            aload 10 /* fn */
            ifnull 41
        37: .line 310
            aload 8 /* mh */
            invokevirtual java.lang.invoke.BoundMethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* mh */
        38: .line 311
            aload 8 /* mh */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            aload 11 /* newType */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            iconst_0
            invokevirtual java.lang.invoke.LambdaFormEditor.filterReturnForm:(Ljava/lang/invoke/LambdaForm$BasicType;Z)Ljava/lang/invoke/LambdaForm;
            astore 12 /* form2 */
        start local 12 // java.lang.invoke.LambdaForm form2
        39: .line 312
            aload 8 /* mh */
            aload 7 /* midType */
            aload 12 /* form2 */
            aload 10 /* fn */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* mh */
        end local 12 // java.lang.invoke.LambdaForm form2
        40: .line 313
            goto 43
        41: .line 314
      StackMap locals:
      StackMap stack:
            aload 8 /* mh */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            aload 11 /* newType */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            iconst_1
            invokevirtual java.lang.invoke.LambdaFormEditor.filterReturnForm:(Ljava/lang/invoke/LambdaForm$BasicType;Z)Ljava/lang/invoke/LambdaForm;
            astore 12 /* form2 */
        start local 12 // java.lang.invoke.LambdaForm form2
        42: .line 315
            aload 8 /* mh */
            aload 7 /* midType */
            aload 12 /* form2 */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* mh */
        end local 12 // java.lang.invoke.LambdaForm form2
        end local 11 // java.lang.Class newType
        end local 10 // java.lang.invoke.MethodHandle fn
        43: .line 318
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 44
            iload 5 /* convCount */
            ifeq 44
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        44: .line 319
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 45
            aload 8 /* mh */
            invokevirtual java.lang.invoke.BoundMethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 1 /* srcType */
            invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
            ifne 45
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        45: .line 320
      StackMap locals:
      StackMap stack:
            aload 8 /* mh */
            areturn
        end local 9 // java.lang.Object convSpec
        end local 8 // java.lang.invoke.BoundMethodHandle mh
        end local 7 // java.lang.invoke.MethodType midType
        end local 6 // java.lang.invoke.MethodType basicSrcType
        end local 5 // int convCount
        end local 4 // java.lang.Object[] convSpecs
        end local 3 // boolean monobox
        end local 2 // boolean strict
        end local 1 // java.lang.invoke.MethodType srcType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   46     0        target  Ljava/lang/invoke/MethodHandle;
            0   46     1       srcType  Ljava/lang/invoke/MethodType;
            0   46     2        strict  Z
            0   46     3       monobox  Z
            1   46     4     convSpecs  [Ljava/lang/Object;
            2   46     5     convCount  I
            5   46     6  basicSrcType  Ljava/lang/invoke/MethodType;
            6   46     7       midType  Ljava/lang/invoke/MethodType;
            7   46     8            mh  Ljava/lang/invoke/BoundMethodHandle;
            8   24     9             i  I
           10   22    10      convSpec  Ljava/lang/Object;
           13   14    11            fn  Ljava/lang/invoke/MethodHandle;
           15   22    11            fn  Ljava/lang/invoke/MethodHandle;
           16   22    12       newType  Ljava/lang/Class<*>;
           20   22    13         form2  Ljava/lang/invoke/LambdaForm;
           25   46     9      convSpec  Ljava/lang/Object;
           29   30    10            fn  Ljava/lang/invoke/MethodHandle;
           31   32    10            fn  Ljava/lang/invoke/MethodHandle;
           33   43    10            fn  Ljava/lang/invoke/MethodHandle;
           34   43    11       newType  Ljava/lang/Class<*>;
           39   40    12         form2  Ljava/lang/invoke/LambdaForm;
           42   43    12         form2  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
         Name  Flags
      target   
      srcType  
      strict   
      monobox  

  static java.lang.invoke.MethodHandle makePairwiseConvertIndirect(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, boolean, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;ZZ)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=22, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType srcType
        start local 2 // boolean strict
        start local 3 // boolean monobox
         0: .line 325
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            aload 1 /* srcType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 327
      StackMap locals:
      StackMap stack:
            aload 1 /* srcType */
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iload 2 /* strict */
            iload 3 /* monobox */
            invokestatic java.lang.invoke.MethodHandleImpl.computeValueConversions:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;ZZ)[Ljava/lang/Object;
            astore 4 /* convSpecs */
        start local 4 // java.lang.Object[] convSpecs
         2: .line 328
            aload 1 /* srcType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 5 /* INARG_COUNT */
        start local 5 // int INARG_COUNT
         3: .line 329
            aload 4 /* convSpecs */
            invokestatic java.lang.invoke.MethodHandleImpl.countNonNull:([Ljava/lang/Object;)I
            istore 6 /* convCount */
        start local 6 // int convCount
         4: .line 330
            aload 4 /* convSpecs */
            iload 5 /* INARG_COUNT */
            aaload
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: java.lang.Object[] int int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* retConv */
        start local 7 // boolean retConv
         7: .line 331
            aload 1 /* srcType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 8
            iconst_1
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* retVoid */
        start local 8 // boolean retVoid
        10: .line 332
            iload 7 /* retConv */
            ifeq 13
            iload 8 /* retVoid */
            ifeq 13
        11: .line 333
            iinc 6 /* convCount */ -1
        12: .line 334
            iconst_0
            istore 7 /* retConv */
        13: .line 339
      StackMap locals: int
      StackMap stack:
            iconst_1
            iload 5 /* INARG_COUNT */
            iadd
            istore 9 /* INARG_LIMIT */
        start local 9 // int INARG_LIMIT
        14: .line 340
            iload 9 /* INARG_LIMIT */
            iload 6 /* convCount */
            iadd
            iconst_1
            iadd
            istore 10 /* NAME_LIMIT */
        start local 10 // int NAME_LIMIT
        15: .line 341
            iload 7 /* retConv */
            ifne 16
            iconst_m1
            goto 17
      StackMap locals: int int
      StackMap stack:
        16: iload 10 /* NAME_LIMIT */
            iconst_1
            isub
      StackMap locals:
      StackMap stack: int
        17: istore 11 /* RETURN_CONV */
        start local 11 // int RETURN_CONV
        18: .line 342
            iload 7 /* retConv */
            ifne 19
            iload 10 /* NAME_LIMIT */
            goto 20
      StackMap locals: int
      StackMap stack:
        19: iload 11 /* RETURN_CONV */
      StackMap locals:
      StackMap stack: int
        20: iconst_1
            isub
            istore 12 /* OUT_CALL */
        start local 12 // int OUT_CALL
        21: .line 343
            iload 8 /* retVoid */
            ifeq 22
            iconst_m1
            goto 23
      StackMap locals: int
      StackMap stack:
        22: iload 10 /* NAME_LIMIT */
            iconst_1
            isub
      StackMap locals:
      StackMap stack: int
        23: istore 13 /* RESULT */
        start local 13 // int RESULT
        24: .line 346
            aload 1 /* srcType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
            astore 14 /* lambdaType */
        start local 14 // java.lang.invoke.MethodType lambdaType
        25: .line 347
            iload 10 /* NAME_LIMIT */
            iload 9 /* INARG_LIMIT */
            isub
            aload 14 /* lambdaType */
            invokestatic java.lang.invoke.LambdaForm.arguments:(ILjava/lang/invoke/MethodType;)[Ljava/lang/invoke/LambdaForm$Name;
            astore 15 /* names */
        start local 15 // java.lang.invoke.LambdaForm$Name[] names
        26: .line 351
            iconst_0
            iload 5 /* INARG_COUNT */
            iadd
            anewarray java.lang.Object
            astore 16 /* outArgs */
        start local 16 // java.lang.Object[] outArgs
        27: .line 353
            iload 9 /* INARG_LIMIT */
            istore 17 /* nameCursor */
        start local 17 // int nameCursor
        28: .line 354
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        29: goto 45
        30: .line 355
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.Object[] int int int int int int int int int java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] java.lang.Object[] int int
      StackMap stack:
            aload 4 /* convSpecs */
            iload 18 /* i */
            aaload
            astore 19 /* convSpec */
        start local 19 // java.lang.Object convSpec
        31: .line 356
            aload 19 /* convSpec */
            ifnonnull 34
        32: .line 358
            aload 16 /* outArgs */
            iconst_0
            iload 18 /* i */
            iadd
            aload 15 /* names */
            iconst_1
            iload 18 /* i */
            iadd
            aaload
            aastore
        33: .line 359
            goto 44
        34: .line 363
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 19 /* convSpec */
            instanceof java.lang.Class
            ifeq 38
        35: .line 364
            aload 19 /* convSpec */
            checkcast java.lang.Class
            astore 21 /* convClass */
        start local 21 // java.lang.Class convClass
        36: .line 365
            new java.lang.invoke.LambdaForm$Name
            dup
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 21 /* convClass */
            aastore
            dup
            iconst_1
            aload 15 /* names */
            iconst_1
            iload 18 /* i */
            iadd
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            astore 20 /* conv */
        end local 21 // java.lang.Class convClass
        start local 20 // java.lang.invoke.LambdaForm$Name conv
        37: .line 366
            goto 40
        end local 20 // java.lang.invoke.LambdaForm$Name conv
        38: .line 367
      StackMap locals:
      StackMap stack:
            aload 19 /* convSpec */
            checkcast java.lang.invoke.MethodHandle
            astore 21 /* fn */
        start local 21 // java.lang.invoke.MethodHandle fn
        39: .line 368
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 21 /* fn */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 15 /* names */
            iconst_1
            iload 18 /* i */
            iadd
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            astore 20 /* conv */
        end local 21 // java.lang.invoke.MethodHandle fn
        start local 20 // java.lang.invoke.LambdaForm$Name conv
        40: .line 370
      StackMap locals: java.lang.invoke.LambdaForm$Name
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 41
            aload 15 /* names */
            iload 17 /* nameCursor */
            aaload
            ifnull 41
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        41: .line 371
      StackMap locals:
      StackMap stack:
            aload 15 /* names */
            iload 17 /* nameCursor */
            iinc 17 /* nameCursor */ 1
            aload 20 /* conv */
            aastore
        42: .line 372
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 43
            aload 16 /* outArgs */
            iconst_0
            iload 18 /* i */
            iadd
            aaload
            ifnull 43
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        43: .line 373
      StackMap locals:
      StackMap stack:
            aload 16 /* outArgs */
            iconst_0
            iload 18 /* i */
            iadd
            aload 20 /* conv */
            aastore
        end local 20 // java.lang.invoke.LambdaForm$Name conv
        end local 19 // java.lang.Object convSpec
        44: .line 354
      StackMap locals:
      StackMap stack:
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        45: iload 18 /* i */
            iload 5 /* INARG_COUNT */
            if_icmplt 30
        end local 18 // int i
        46: .line 377
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 47
            iload 17 /* nameCursor */
            iload 12 /* OUT_CALL */
            if_icmpeq 47
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        47: .line 378
      StackMap locals:
      StackMap stack:
            aload 15 /* names */
            iload 12 /* OUT_CALL */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 0 /* target */
            aload 16 /* outArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            aastore
        48: .line 380
            aload 4 /* convSpecs */
            iload 5 /* INARG_COUNT */
            aaload
            astore 18 /* convSpec */
        start local 18 // java.lang.Object convSpec
        49: .line 381
            iload 7 /* retConv */
            ifne 51
        50: .line 382
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 66
            iload 12 /* OUT_CALL */
            aload 15 /* names */
            arraylength
            iconst_1
            isub
            if_icmpeq 66
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        51: .line 385
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 18 /* convSpec */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 54
        52: .line 386
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 1 /* srcType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokestatic java.lang.invoke.LambdaForm.constantZero:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
            iconst_0
            anewarray java.lang.Object
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            astore 19 /* conv */
        start local 19 // java.lang.invoke.LambdaForm$Name conv
        53: .line 387
            goto 63
        end local 19 // java.lang.invoke.LambdaForm$Name conv
      StackMap locals:
      StackMap stack:
        54: aload 18 /* convSpec */
            instanceof java.lang.Class
            ifeq 58
        55: .line 388
            aload 18 /* convSpec */
            checkcast java.lang.Class
            astore 20 /* convClass */
        start local 20 // java.lang.Class convClass
        56: .line 389
            new java.lang.invoke.LambdaForm$Name
            dup
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 20 /* convClass */
            aastore
            dup
            iconst_1
            aload 15 /* names */
            iload 12 /* OUT_CALL */
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            astore 19 /* conv */
        end local 20 // java.lang.Class convClass
        start local 19 // java.lang.invoke.LambdaForm$Name conv
        57: .line 390
            goto 63
        end local 19 // java.lang.invoke.LambdaForm$Name conv
        58: .line 391
      StackMap locals:
      StackMap stack:
            aload 18 /* convSpec */
            checkcast java.lang.invoke.MethodHandle
            astore 20 /* fn */
        start local 20 // java.lang.invoke.MethodHandle fn
        59: .line 392
            aload 20 /* fn */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            ifne 62
        60: .line 393
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 20 /* fn */
            iconst_0
            anewarray java.lang.Object
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            astore 19 /* conv */
        start local 19 // java.lang.invoke.LambdaForm$Name conv
        61: goto 63
        end local 19 // java.lang.invoke.LambdaForm$Name conv
        62: .line 395
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.Object[] int int int int int int int int int java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] java.lang.Object[] int java.lang.Object top java.lang.invoke.MethodHandle
      StackMap stack:
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 20 /* fn */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 15 /* names */
            iload 12 /* OUT_CALL */
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            astore 19 /* conv */
        end local 20 // java.lang.invoke.MethodHandle fn
        start local 19 // java.lang.invoke.LambdaForm$Name conv
        63: .line 397
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.Object[] int int int int int int int int int java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] java.lang.Object[] int java.lang.Object java.lang.invoke.LambdaForm$Name
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 64
            aload 15 /* names */
            iload 11 /* RETURN_CONV */
            aaload
            ifnull 64
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        64: .line 398
      StackMap locals:
      StackMap stack:
            aload 15 /* names */
            iload 11 /* RETURN_CONV */
            aload 19 /* conv */
            aastore
        65: .line 399
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 66
            iload 11 /* RETURN_CONV */
            aload 15 /* names */
            arraylength
            iconst_1
            isub
            if_icmpeq 66
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 19 // java.lang.invoke.LambdaForm$Name conv
        66: .line 402
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.LambdaForm
            dup
            aload 14 /* lambdaType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            aload 15 /* names */
            iload 13 /* RESULT */
            getstatic java.lang.invoke.LambdaForm$Kind.CONVERT:Ljava/lang/invoke/LambdaForm$Kind;
            invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;ILjava/lang/invoke/LambdaForm$Kind;)V
            astore 19 /* form */
        start local 19 // java.lang.invoke.LambdaForm form
        67: .line 403
            aload 1 /* srcType */
            aload 19 /* form */
            invokestatic java.lang.invoke.SimpleMethodHandle.make:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 19 // java.lang.invoke.LambdaForm form
        end local 18 // java.lang.Object convSpec
        end local 17 // int nameCursor
        end local 16 // java.lang.Object[] outArgs
        end local 15 // java.lang.invoke.LambdaForm$Name[] names
        end local 14 // java.lang.invoke.MethodType lambdaType
        end local 13 // int RESULT
        end local 12 // int OUT_CALL
        end local 11 // int RETURN_CONV
        end local 10 // int NAME_LIMIT
        end local 9 // int INARG_LIMIT
        end local 8 // boolean retVoid
        end local 7 // boolean retConv
        end local 6 // int convCount
        end local 5 // int INARG_COUNT
        end local 4 // java.lang.Object[] convSpecs
        end local 3 // boolean monobox
        end local 2 // boolean strict
        end local 1 // java.lang.invoke.MethodType srcType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   68     0       target  Ljava/lang/invoke/MethodHandle;
            0   68     1      srcType  Ljava/lang/invoke/MethodType;
            0   68     2       strict  Z
            0   68     3      monobox  Z
            2   68     4    convSpecs  [Ljava/lang/Object;
            3   68     5  INARG_COUNT  I
            4   68     6    convCount  I
            7   68     7      retConv  Z
           10   68     8      retVoid  Z
           14   68     9  INARG_LIMIT  I
           15   68    10   NAME_LIMIT  I
           18   68    11  RETURN_CONV  I
           21   68    12     OUT_CALL  I
           24   68    13       RESULT  I
           25   68    14   lambdaType  Ljava/lang/invoke/MethodType;
           26   68    15        names  [Ljava/lang/invoke/LambdaForm$Name;
           27   68    16      outArgs  [Ljava/lang/Object;
           28   68    17   nameCursor  I
           29   46    18            i  I
           31   44    19     convSpec  Ljava/lang/Object;
           37   38    20         conv  Ljava/lang/invoke/LambdaForm$Name;
           40   44    20         conv  Ljava/lang/invoke/LambdaForm$Name;
           36   37    21    convClass  Ljava/lang/Class<*>;
           39   40    21           fn  Ljava/lang/invoke/MethodHandle;
           49   68    18     convSpec  Ljava/lang/Object;
           53   54    19         conv  Ljava/lang/invoke/LambdaForm$Name;
           57   58    19         conv  Ljava/lang/invoke/LambdaForm$Name;
           61   62    19         conv  Ljava/lang/invoke/LambdaForm$Name;
           63   66    19         conv  Ljava/lang/invoke/LambdaForm$Name;
           56   57    20    convClass  Ljava/lang/Class<*>;
           59   63    20           fn  Ljava/lang/invoke/MethodHandle;
           67   68    19         form  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
         Name  Flags
      target   
      srcType  
      strict   
      monobox  

  static java.lang.Object[] computeValueConversions(java.lang.invoke.MethodType, java.lang.invoke.MethodType, boolean, boolean);
    descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;ZZ)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // java.lang.invoke.MethodType srcType
        start local 1 // java.lang.invoke.MethodType dstType
        start local 2 // boolean strict
        start local 3 // boolean monobox
         0: .line 408
            aload 0 /* srcType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 4 /* INARG_COUNT */
        start local 4 // int INARG_COUNT
         1: .line 409
            iload 4 /* INARG_COUNT */
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 5 /* convSpecs */
        start local 5 // java.lang.Object[] convSpecs
         2: .line 410
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 16
         4: .line 411
      StackMap locals: int java.lang.Object[] int
      StackMap stack:
            iload 6 /* i */
            iload 4 /* INARG_COUNT */
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* isRet */
        start local 7 // boolean isRet
         7: .line 412
            iload 7 /* isRet */
            ifeq 8
            aload 1 /* dstType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            goto 9
      StackMap locals: int
      StackMap stack:
         8: aload 0 /* srcType */
            iload 6 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         9: astore 8 /* src */
        start local 8 // java.lang.Class src
        10: .line 413
            iload 7 /* isRet */
            ifeq 11
            aload 0 /* srcType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            goto 12
      StackMap locals: java.lang.Class
      StackMap stack:
        11: aload 1 /* dstType */
            iload 6 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
        12: astore 9 /* dst */
        start local 9 // java.lang.Class dst
        13: .line 414
            aload 8 /* src */
            aload 9 /* dst */
            iload 2 /* strict */
            invokestatic sun.invoke.util.VerifyType.isNullConversion:(Ljava/lang/Class;Ljava/lang/Class;Z)Z
            ifne 15
        14: .line 415
            aload 5 /* convSpecs */
            iload 6 /* i */
            aload 8 /* src */
            aload 9 /* dst */
            iload 2 /* strict */
            iload 3 /* monobox */
            invokestatic java.lang.invoke.MethodHandleImpl.valueConversion:(Ljava/lang/Class;Ljava/lang/Class;ZZ)Ljava/lang/Object;
            aastore
        end local 9 // java.lang.Class dst
        end local 8 // java.lang.Class src
        end local 7 // boolean isRet
        15: .line 410
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            iload 4 /* INARG_COUNT */
            if_icmple 4
        end local 6 // int i
        17: .line 418
            aload 5 /* convSpecs */
            areturn
        end local 5 // java.lang.Object[] convSpecs
        end local 4 // int INARG_COUNT
        end local 3 // boolean monobox
        end local 2 // boolean strict
        end local 1 // java.lang.invoke.MethodType dstType
        end local 0 // java.lang.invoke.MethodType srcType
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0      srcType  Ljava/lang/invoke/MethodType;
            0   18     1      dstType  Ljava/lang/invoke/MethodType;
            0   18     2       strict  Z
            0   18     3      monobox  Z
            1   18     4  INARG_COUNT  I
            2   18     5    convSpecs  [Ljava/lang/Object;
            3   17     6            i  I
            7   15     7        isRet  Z
           10   15     8          src  Ljava/lang/Class<*>;
           13   15     9          dst  Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      srcType  
      dstType  
      strict   
      monobox  

  static java.lang.invoke.MethodHandle makePairwiseConvert(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType srcType
        start local 2 // boolean strict
         0: .line 422
            aload 0 /* target */
            aload 1 /* srcType */
            iload 2 /* strict */
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.makePairwiseConvert:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;ZZ)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // boolean strict
        end local 1 // java.lang.invoke.MethodType srcType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0   target  Ljava/lang/invoke/MethodHandle;
            0    1     1  srcType  Ljava/lang/invoke/MethodType;
            0    1     2   strict  Z
    MethodParameters:
         Name  Flags
      target   
      srcType  
      strict   

  static  valueConversion(java.lang.Class<?>, java.lang.Class<?>, boolean, boolean);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;ZZ)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // java.lang.Class src
        start local 1 // java.lang.Class dst
        start local 2 // boolean strict
        start local 3 // boolean monobox
         0: .line 432
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* src */
            aload 1 /* dst */
            iload 2 /* strict */
            invokestatic sun.invoke.util.VerifyType.isNullConversion:(Ljava/lang/Class;Ljava/lang/Class;Z)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 433
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 3
         2: .line 434
            aload 1 /* dst */
            areturn
         3: .line 436
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 19
         4: .line 437
            aload 0 /* src */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 6
         5: .line 438
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
         6: .line 439
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 9
         7: .line 441
            aload 0 /* src */
            aload 1 /* dst */
            invokestatic sun.invoke.util.ValueConversions.convertPrimitive:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* fn */
        start local 4 // java.lang.invoke.MethodHandle fn
         8: .line 442
            goto 30
        end local 4 // java.lang.invoke.MethodHandle fn
         9: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 5 /* wsrc */
        start local 5 // sun.invoke.util.Wrapper wsrc
        10: .line 445
            aload 5 /* wsrc */
            invokestatic sun.invoke.util.ValueConversions.boxExact:(Lsun/invoke/util/Wrapper;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* fn */
        start local 4 // java.lang.invoke.MethodHandle fn
        11: .line 446
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 12
            aload 4 /* fn */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 5 /* wsrc */
            invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
            if_acmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 447
      StackMap locals: java.lang.invoke.MethodHandle sun.invoke.util.Wrapper
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 13
            aload 4 /* fn */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 5 /* wsrc */
            invokevirtual sun.invoke.util.Wrapper.wrapperType:()Ljava/lang/Class;
            if_acmpeq 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 448
      StackMap locals:
      StackMap stack:
            aload 5 /* wsrc */
            invokevirtual sun.invoke.util.Wrapper.wrapperType:()Ljava/lang/Class;
            aload 1 /* dst */
            iload 2 /* strict */
            invokestatic sun.invoke.util.VerifyType.isNullConversion:(Ljava/lang/Class;Ljava/lang/Class;Z)Z
            ifne 30
        14: .line 450
            aload 1 /* dst */
            aload 0 /* src */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 6 /* mt */
        start local 6 // java.lang.invoke.MethodType mt
        15: .line 451
            iload 2 /* strict */
            ifeq 17
        16: .line 452
            aload 4 /* fn */
            aload 6 /* mt */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* fn */
            goto 30
        17: .line 454
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 4 /* fn */
            aload 6 /* mt */
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.makePairwiseConvert:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
            astore 4 /* fn */
        end local 6 // java.lang.invoke.MethodType mt
        end local 5 // sun.invoke.util.Wrapper wsrc
        18: .line 457
            goto 30
        end local 4 // java.lang.invoke.MethodHandle fn
      StackMap locals:
      StackMap stack:
        19: aload 1 /* dst */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 29
        20: .line 458
            aload 1 /* dst */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 5 /* wdst */
        start local 5 // sun.invoke.util.Wrapper wdst
        21: .line 459
            iload 3 /* monobox */
            ifne 22
            aload 0 /* src */
            aload 5 /* wdst */
            invokevirtual sun.invoke.util.Wrapper.wrapperType:()Ljava/lang/Class;
            if_acmpne 24
        22: .line 461
      StackMap locals: java.lang.Class java.lang.Class int int top sun.invoke.util.Wrapper
      StackMap stack:
            aload 5 /* wdst */
            iload 2 /* strict */
            invokestatic sun.invoke.util.ValueConversions.unboxExact:(Lsun/invoke/util/Wrapper;Z)Ljava/lang/invoke/MethodHandle;
            astore 4 /* fn */
        start local 4 // java.lang.invoke.MethodHandle fn
        23: .line 462
            goto 30
        end local 4 // java.lang.invoke.MethodHandle fn
        24: .line 466
      StackMap locals:
      StackMap stack:
            iload 2 /* strict */
            ifeq 26
        25: .line 467
            aload 5 /* wdst */
            invokestatic sun.invoke.util.ValueConversions.unboxWiden:(Lsun/invoke/util/Wrapper;)Ljava/lang/invoke/MethodHandle;
            goto 27
        26: .line 468
      StackMap locals:
      StackMap stack:
            aload 5 /* wdst */
            invokestatic sun.invoke.util.ValueConversions.unboxCast:(Lsun/invoke/util/Wrapper;)Ljava/lang/invoke/MethodHandle;
        27: .line 466
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
            astore 4 /* fn */
        end local 5 // sun.invoke.util.Wrapper wdst
        start local 4 // java.lang.invoke.MethodHandle fn
        28: .line 470
            goto 30
        end local 4 // java.lang.invoke.MethodHandle fn
        29: .line 475
      StackMap locals: java.lang.Class java.lang.Class int int
      StackMap stack:
            aload 1 /* dst */
            areturn
        start local 4 // java.lang.invoke.MethodHandle fn
        30: .line 477
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 31
            aload 4 /* fn */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmple 31
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "pc"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* src */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* dst */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 4 /* fn */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        31: .line 478
      StackMap locals:
      StackMap stack:
            aload 4 /* fn */
            areturn
        end local 4 // java.lang.invoke.MethodHandle fn
        end local 3 // boolean monobox
        end local 2 // boolean strict
        end local 1 // java.lang.Class dst
        end local 0 // java.lang.Class src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   32     0      src  Ljava/lang/Class<*>;
            0   32     1      dst  Ljava/lang/Class<*>;
            0   32     2   strict  Z
            0   32     3  monobox  Z
            8    9     4       fn  Ljava/lang/invoke/MethodHandle;
           11   19     4       fn  Ljava/lang/invoke/MethodHandle;
           23   24     4       fn  Ljava/lang/invoke/MethodHandle;
           28   29     4       fn  Ljava/lang/invoke/MethodHandle;
           30   32     4       fn  Ljava/lang/invoke/MethodHandle;
           10   18     5     wsrc  Lsun/invoke/util/Wrapper;
           15   18     6       mt  Ljava/lang/invoke/MethodType;
           21   28     5     wdst  Lsun/invoke/util/Wrapper;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;ZZ)Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      src      
      dst      
      strict   
      monobox  

  static java.lang.invoke.MethodHandle makeVarargsCollector(java.lang.invoke.MethodHandle, java.lang.Class<?>);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.Class arrayType
         0: .line 482
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* type */
        start local 2 // java.lang.invoke.MethodType type
         1: .line 483
            aload 2 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 3 /* last */
        start local 3 // int last
         2: .line 484
            aload 2 /* type */
            iload 3 /* last */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 1 /* arrayType */
            if_acmpeq 4
         3: .line 485
            aload 0 /* target */
            aload 2 /* type */
            iload 3 /* last */
            aload 1 /* arrayType */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 0 /* target */
         4: .line 486
      StackMap locals: java.lang.invoke.MethodType int
      StackMap stack:
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            astore 0 /* target */
         5: .line 487
            new java.lang.invoke.MethodHandleImpl$AsVarargsCollector
            dup
            aload 0 /* target */
            aload 1 /* arrayType */
            invokespecial java.lang.invoke.MethodHandleImpl$AsVarargsCollector.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)V
            areturn
        end local 3 // int last
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.Class arrayType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0     target  Ljava/lang/invoke/MethodHandle;
            0    6     1  arrayType  Ljava/lang/Class<*>;
            1    6     2       type  Ljava/lang/invoke/MethodType;
            2    6     3       last  I
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
           Name  Flags
      target     
      arrayType  

  static java.lang.invoke.MethodHandle makeSpreadArguments(java.lang.invoke.MethodHandle, java.lang.Class<?>, int, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;II)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=15, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.Class spreadArgType
        start local 2 // int spreadArgPos
        start local 3 // int spreadArgCount
         0: .line 617
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* targetType */
        start local 4 // java.lang.invoke.MethodType targetType
         1: .line 619
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 7
         3: .line 620
      StackMap locals: java.lang.invoke.MethodType int
      StackMap stack:
            aload 1 /* spreadArgType */
            iload 5 /* i */
            invokestatic sun.invoke.util.VerifyType.spreadArgElementType:(Ljava/lang/Class;I)Ljava/lang/Class;
            astore 6 /* arg */
        start local 6 // java.lang.Class arg
         4: .line 621
            aload 6 /* arg */
            ifnonnull 5
            ldc Ljava/lang/Object;
            astore 6 /* arg */
         5: .line 622
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 4 /* targetType */
            iload 2 /* spreadArgPos */
            iload 5 /* i */
            iadd
            aload 6 /* arg */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 4 /* targetType */
        end local 6 // java.lang.Class arg
         6: .line 619
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            iload 3 /* spreadArgCount */
            if_icmplt 3
        end local 5 // int i
         8: .line 624
            aload 0 /* target */
            aload 4 /* targetType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 0 /* target */
         9: .line 626
            aload 4 /* targetType */
        10: .line 627
            iload 2 /* spreadArgPos */
            iload 2 /* spreadArgPos */
            iload 3 /* spreadArgCount */
            iadd
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 1 /* spreadArgType */
            aastore
            invokevirtual java.lang.invoke.MethodType.replaceParameterTypes:(II[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
        11: .line 626
            astore 5 /* srcType */
        start local 5 // java.lang.invoke.MethodType srcType
        12: .line 629
            aload 5 /* srcType */
            invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
            astore 6 /* lambdaType */
        start local 6 // java.lang.invoke.MethodType lambdaType
        13: .line 630
            iload 3 /* spreadArgCount */
            iconst_2
            iadd
            aload 6 /* lambdaType */
            invokestatic java.lang.invoke.LambdaForm.arguments:(ILjava/lang/invoke/MethodType;)[Ljava/lang/invoke/LambdaForm$Name;
            astore 7 /* names */
        start local 7 // java.lang.invoke.LambdaForm$Name[] names
        14: .line 631
            aload 6 /* lambdaType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 8 /* nameCursor */
        start local 8 // int nameCursor
        15: .line 632
            aload 4 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            newarray 10
            astore 9 /* indexes */
        start local 9 // int[] indexes
        16: .line 634
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        17: iconst_1
            istore 11 /* argIndex */
        start local 11 // int argIndex
        18: goto 34
        19: .line 635
      StackMap locals: java.lang.invoke.MethodHandle java.lang.Class int int java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] int int[] int int
      StackMap stack:
            aload 6 /* lambdaType */
            iload 10 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            pop
        20: .line 636
            iload 10 /* i */
            iload 2 /* spreadArgPos */
            if_icmpne 31
        21: .line 638
            aload 1 /* spreadArgType */
            invokestatic java.lang.invoke.MethodHandles.arrayElementGetter:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 12 /* aload */
        start local 12 // java.lang.invoke.MethodHandle aload
        22: .line 639
            aload 7 /* names */
            iload 11 /* argIndex */
            aaload
            astore 13 /* array */
        start local 13 // java.lang.invoke.LambdaForm$Name array
        23: .line 640
            aload 7 /* names */
            iload 8 /* nameCursor */
            iinc 8 /* nameCursor */ 1
            new java.lang.invoke.LambdaForm$Name
            dup
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* array */
            aastore
            dup
            iconst_1
            iload 3 /* spreadArgCount */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        24: .line 641
            iconst_0
            istore 14 /* j */
        start local 14 // int j
        25: goto 29
        26: .line 642
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.LambdaForm$Name int
      StackMap stack:
            aload 9 /* indexes */
            iload 10 /* i */
            iload 8 /* nameCursor */
            iastore
        27: .line 643
            aload 7 /* names */
            iload 8 /* nameCursor */
            iinc 8 /* nameCursor */ 1
            new java.lang.invoke.LambdaForm$Name
            dup
            new java.lang.invoke.LambdaForm$NamedFunction
            dup
            aload 12 /* aload */
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ARRAY_LOAD:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            invokespecial java.lang.invoke.LambdaForm$NamedFunction.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)V
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* array */
            aastore
            dup
            iconst_1
            iload 14 /* j */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        28: .line 641
            iinc 10 /* i */ 1
            iinc 14 /* j */ 1
      StackMap locals:
      StackMap stack:
        29: iload 14 /* j */
            iload 3 /* spreadArgCount */
            if_icmplt 26
        end local 14 // int j
        end local 13 // java.lang.invoke.LambdaForm$Name array
        end local 12 // java.lang.invoke.MethodHandle aload
        30: .line 645
            goto 33
      StackMap locals:
      StackMap stack:
        31: iload 10 /* i */
            aload 9 /* indexes */
            arraylength
            if_icmpge 33
        32: .line 646
            aload 9 /* indexes */
            iload 10 /* i */
            iload 11 /* argIndex */
            iastore
        33: .line 634
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
            iinc 11 /* argIndex */ 1
      StackMap locals:
      StackMap stack:
        34: iload 10 /* i */
            aload 4 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            iadd
            if_icmplt 19
        end local 11 // int argIndex
        end local 10 // int i
        35: .line 649
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 36
            iload 8 /* nameCursor */
            aload 7 /* names */
            arraylength
            iconst_1
            isub
            if_icmpeq 36
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        36: .line 652
      StackMap locals:
      StackMap stack:
            aload 4 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            anewarray java.lang.invoke.LambdaForm$Name
            astore 10 /* targetArgs */
        start local 10 // java.lang.invoke.LambdaForm$Name[] targetArgs
        37: .line 653
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        38: goto 42
        39: .line 654
      StackMap locals: java.lang.invoke.LambdaForm$Name[] int
      StackMap stack:
            aload 9 /* indexes */
            iload 11 /* i */
            iaload
            istore 12 /* idx */
        start local 12 // int idx
        40: .line 655
            aload 10 /* targetArgs */
            iload 11 /* i */
            aload 7 /* names */
            iload 12 /* idx */
            aaload
            aastore
        end local 12 // int idx
        41: .line 653
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 11 /* i */
            aload 4 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmplt 39
        end local 11 // int i
        43: .line 657
            aload 7 /* names */
            aload 7 /* names */
            arraylength
            iconst_1
            isub
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 0 /* target */
            aload 10 /* targetArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            aastore
        44: .line 659
            new java.lang.invoke.LambdaForm
            dup
            aload 6 /* lambdaType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            aload 7 /* names */
            getstatic java.lang.invoke.LambdaForm$Kind.SPREAD:Ljava/lang/invoke/LambdaForm$Kind;
            invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Kind;)V
            astore 11 /* form */
        start local 11 // java.lang.invoke.LambdaForm form
        45: .line 660
            aload 5 /* srcType */
            aload 11 /* form */
            invokestatic java.lang.invoke.SimpleMethodHandle.make:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 11 // java.lang.invoke.LambdaForm form
        end local 10 // java.lang.invoke.LambdaForm$Name[] targetArgs
        end local 9 // int[] indexes
        end local 8 // int nameCursor
        end local 7 // java.lang.invoke.LambdaForm$Name[] names
        end local 6 // java.lang.invoke.MethodType lambdaType
        end local 5 // java.lang.invoke.MethodType srcType
        end local 4 // java.lang.invoke.MethodType targetType
        end local 3 // int spreadArgCount
        end local 2 // int spreadArgPos
        end local 1 // java.lang.Class spreadArgType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   46     0          target  Ljava/lang/invoke/MethodHandle;
            0   46     1   spreadArgType  Ljava/lang/Class<*>;
            0   46     2    spreadArgPos  I
            0   46     3  spreadArgCount  I
            1   46     4      targetType  Ljava/lang/invoke/MethodType;
            2    8     5               i  I
            4    6     6             arg  Ljava/lang/Class<*>;
           12   46     5         srcType  Ljava/lang/invoke/MethodType;
           13   46     6      lambdaType  Ljava/lang/invoke/MethodType;
           14   46     7           names  [Ljava/lang/invoke/LambdaForm$Name;
           15   46     8      nameCursor  I
           16   46     9         indexes  [I
           17   35    10               i  I
           18   35    11        argIndex  I
           22   30    12           aload  Ljava/lang/invoke/MethodHandle;
           23   30    13           array  Ljava/lang/invoke/LambdaForm$Name;
           25   30    14               j  I
           37   46    10      targetArgs  [Ljava/lang/invoke/LambdaForm$Name;
           38   43    11               i  I
           40   41    12             idx  I
           45   46    11            form  Ljava/lang/invoke/LambdaForm;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<*>;II)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                Name  Flags
      target          
      spreadArgType   
      spreadArgPos    
      spreadArgCount  

  static void checkSpreadArgument(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object av
        start local 1 // int n
         0: .line 664
            aload 0 /* av */
            ifnonnull 2
            iload 1 /* n */
            ifne 2
         1: .line 665
            return
         2: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* av */
            ifnonnull 4
         3: .line 667
            new java.lang.NullPointerException
            dup
            ldc "null array reference"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* av */
            instanceof java.lang.Object[]
            ifeq 7
         5: .line 669
            aload 0 /* av */
            checkcast java.lang.Object[]
            arraylength
            istore 2 /* len */
        start local 2 // int len
         6: .line 670
            iload 2 /* len */
            iload 1 /* n */
            if_icmpne 9
            return
        end local 2 // int len
         7: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* av */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 2 /* len */
        start local 2 // int len
         8: .line 673
            iload 2 /* len */
            iload 1 /* n */
            if_icmpne 9
            return
        end local 2 // int len
         9: .line 676
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "array is not of length "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* n */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // int n
        end local 0 // java.lang.Object av
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0    av  Ljava/lang/Object;
            0   10     1     n  I
            6    7     2   len  I
            8    9     2   len  I
    MethodParameters:
      Name  Flags
      av    
      n     

  static java.lang.invoke.MethodHandle makeCollectArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, int, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;IZ)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=20, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle collector
        start local 2 // int collectArgPos
        start local 3 // boolean retainOriginalArgs
         0: .line 682
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* targetType */
        start local 4 // java.lang.invoke.MethodType targetType
         1: .line 683
            aload 1 /* collector */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 5 /* collectorType */
        start local 5 // java.lang.invoke.MethodType collectorType
         2: .line 684
            aload 5 /* collectorType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 6 /* collectArgCount */
        start local 6 // int collectArgCount
         3: .line 685
            aload 5 /* collectorType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 7 /* collectValType */
        start local 7 // java.lang.Class collectValType
         4: .line 686
            aload 7 /* collectValType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 5
            iconst_0
            goto 6
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int int java.lang.invoke.MethodType java.lang.invoke.MethodType int java.lang.Class
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 8 /* collectValCount */
        start local 8 // int collectValCount
         7: .line 687
            aload 4 /* targetType */
         8: .line 688
            iload 2 /* collectArgPos */
            iload 2 /* collectArgPos */
            iload 8 /* collectValCount */
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
         9: .line 687
            astore 9 /* srcType */
        start local 9 // java.lang.invoke.MethodType srcType
        10: .line 689
            iload 3 /* retainOriginalArgs */
            ifne 12
        11: .line 690
            aload 9 /* srcType */
            iload 2 /* collectArgPos */
            aload 5 /* collectorType */
            invokevirtual java.lang.invoke.MethodType.parameterArray:()[Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* srcType */
        12: .line 697
      StackMap locals: int java.lang.invoke.MethodType
      StackMap stack:
            aload 9 /* srcType */
            invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
            astore 10 /* lambdaType */
        start local 10 // java.lang.invoke.MethodType lambdaType
        13: .line 698
            iconst_2
            aload 10 /* lambdaType */
            invokestatic java.lang.invoke.LambdaForm.arguments:(ILjava/lang/invoke/MethodType;)[Ljava/lang/invoke/LambdaForm$Name;
            astore 11 /* names */
        start local 11 // java.lang.invoke.LambdaForm$Name[] names
        14: .line 699
            aload 11 /* names */
            arraylength
            iconst_2
            isub
            istore 12 /* collectNamePos */
        start local 12 // int collectNamePos
        15: .line 700
            aload 11 /* names */
            arraylength
            iconst_1
            isub
            istore 13 /* targetNamePos */
        start local 13 // int targetNamePos
        16: .line 702
            aload 11 /* names */
            iconst_1
            iload 2 /* collectArgPos */
            iadd
            iconst_1
            iload 2 /* collectArgPos */
            iadd
            iload 6 /* collectArgCount */
            iadd
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm$Name[]
            astore 14 /* collectorArgs */
        start local 14 // java.lang.invoke.LambdaForm$Name[] collectorArgs
        17: .line 703
            aload 11 /* names */
            iload 12 /* collectNamePos */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 1 /* collector */
            aload 14 /* collectorArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            aastore
        18: .line 708
            aload 4 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            anewarray java.lang.invoke.LambdaForm$Name
            astore 15 /* targetArgs */
        start local 15 // java.lang.invoke.LambdaForm$Name[] targetArgs
        19: .line 709
            iconst_1
            istore 16 /* inputArgPos */
        start local 16 // int inputArgPos
        20: .line 710
            iconst_0
            istore 17 /* targetArgPos */
        start local 17 // int targetArgPos
        21: .line 711
            iload 2 /* collectArgPos */
            istore 18 /* chunk */
        start local 18 // int chunk
        22: .line 712
            aload 11 /* names */
            iload 16 /* inputArgPos */
            aload 15 /* targetArgs */
            iload 17 /* targetArgPos */
            iload 18 /* chunk */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        23: .line 713
            iload 16 /* inputArgPos */
            iload 18 /* chunk */
            iadd
            istore 16 /* inputArgPos */
        24: .line 714
            iload 17 /* targetArgPos */
            iload 18 /* chunk */
            iadd
            istore 17 /* targetArgPos */
        25: .line 715
            aload 7 /* collectValType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 27
        26: .line 716
            aload 15 /* targetArgs */
            iload 17 /* targetArgPos */
            iinc 17 /* targetArgPos */ 1
            aload 11 /* names */
            iload 12 /* collectNamePos */
            aaload
            aastore
        27: .line 718
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int int java.lang.invoke.MethodType java.lang.invoke.MethodType int java.lang.Class int java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] int int java.lang.invoke.LambdaForm$Name[] java.lang.invoke.LambdaForm$Name[] int int int
      StackMap stack:
            iload 6 /* collectArgCount */
            istore 18 /* chunk */
        28: .line 719
            iload 3 /* retainOriginalArgs */
            ifeq 31
        29: .line 720
            aload 11 /* names */
            iload 16 /* inputArgPos */
            aload 15 /* targetArgs */
            iload 17 /* targetArgPos */
            iload 18 /* chunk */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        30: .line 721
            iload 17 /* targetArgPos */
            iload 18 /* chunk */
            iadd
            istore 17 /* targetArgPos */
        31: .line 723
      StackMap locals:
      StackMap stack:
            iload 16 /* inputArgPos */
            iload 18 /* chunk */
            iadd
            istore 16 /* inputArgPos */
        32: .line 724
            aload 15 /* targetArgs */
            arraylength
            iload 17 /* targetArgPos */
            isub
            istore 18 /* chunk */
        33: .line 725
            aload 11 /* names */
            iload 16 /* inputArgPos */
            aload 15 /* targetArgs */
            iload 17 /* targetArgPos */
            iload 18 /* chunk */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        34: .line 726
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 35
            iload 16 /* inputArgPos */
            iload 18 /* chunk */
            iadd
            iload 12 /* collectNamePos */
            if_icmpeq 35
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 727
      StackMap locals:
      StackMap stack:
            aload 11 /* names */
            iload 13 /* targetNamePos */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 0 /* target */
            aload 15 /* targetArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            aastore
        36: .line 729
            new java.lang.invoke.LambdaForm
            dup
            aload 10 /* lambdaType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            aload 11 /* names */
            getstatic java.lang.invoke.LambdaForm$Kind.COLLECT:Ljava/lang/invoke/LambdaForm$Kind;
            invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Kind;)V
            astore 19 /* form */
        start local 19 // java.lang.invoke.LambdaForm form
        37: .line 730
            aload 9 /* srcType */
            aload 19 /* form */
            invokestatic java.lang.invoke.SimpleMethodHandle.make:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 19 // java.lang.invoke.LambdaForm form
        end local 18 // int chunk
        end local 17 // int targetArgPos
        end local 16 // int inputArgPos
        end local 15 // java.lang.invoke.LambdaForm$Name[] targetArgs
        end local 14 // java.lang.invoke.LambdaForm$Name[] collectorArgs
        end local 13 // int targetNamePos
        end local 12 // int collectNamePos
        end local 11 // java.lang.invoke.LambdaForm$Name[] names
        end local 10 // java.lang.invoke.MethodType lambdaType
        end local 9 // java.lang.invoke.MethodType srcType
        end local 8 // int collectValCount
        end local 7 // java.lang.Class collectValType
        end local 6 // int collectArgCount
        end local 5 // java.lang.invoke.MethodType collectorType
        end local 4 // java.lang.invoke.MethodType targetType
        end local 3 // boolean retainOriginalArgs
        end local 2 // int collectArgPos
        end local 1 // java.lang.invoke.MethodHandle collector
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   38     0              target  Ljava/lang/invoke/MethodHandle;
            0   38     1           collector  Ljava/lang/invoke/MethodHandle;
            0   38     2       collectArgPos  I
            0   38     3  retainOriginalArgs  Z
            1   38     4          targetType  Ljava/lang/invoke/MethodType;
            2   38     5       collectorType  Ljava/lang/invoke/MethodType;
            3   38     6     collectArgCount  I
            4   38     7      collectValType  Ljava/lang/Class<*>;
            7   38     8     collectValCount  I
           10   38     9             srcType  Ljava/lang/invoke/MethodType;
           13   38    10          lambdaType  Ljava/lang/invoke/MethodType;
           14   38    11               names  [Ljava/lang/invoke/LambdaForm$Name;
           15   38    12      collectNamePos  I
           16   38    13       targetNamePos  I
           17   38    14       collectorArgs  [Ljava/lang/invoke/LambdaForm$Name;
           19   38    15          targetArgs  [Ljava/lang/invoke/LambdaForm$Name;
           20   38    16         inputArgPos  I
           21   38    17        targetArgPos  I
           22   38    18               chunk  I
           37   38    19                form  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
                    Name  Flags
      target              
      collector           
      collectArgPos       
      retainOriginalArgs  

  static java.lang.invoke.MethodHandle selectAlternative(boolean, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (ZLjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // boolean testResult
        start local 1 // java.lang.invoke.MethodHandle target
        start local 2 // java.lang.invoke.MethodHandle fallback
         0: .line 736
            iload 0 /* testResult */
            ifeq 2
         1: .line 737
            aload 1 /* target */
            areturn
         2: .line 739
      StackMap locals:
      StackMap stack:
            aload 2 /* fallback */
            areturn
        end local 2 // java.lang.invoke.MethodHandle fallback
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // boolean testResult
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  testResult  Z
            0    3     1      target  Ljava/lang/invoke/MethodHandle;
            0    3     2    fallback  Ljava/lang/invoke/MethodHandle;
    RuntimeVisibleAnnotations: 
      java.lang.invoke.LambdaForm$Hidden()
    MethodParameters:
            Name  Flags
      testResult  
      target      
      fallback    

  static boolean profileBoolean(boolean, int[]);
    descriptor: (Z[I)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // boolean result
        start local 1 // int[] counters
         0: .line 749
            iload 0 /* result */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* idx */
        start local 2 // int idx
         3: .line 751
            aload 1 /* counters */
            iload 2 /* idx */
            aload 1 /* counters */
            iload 2 /* idx */
            iaload
            iconst_1
            invokestatic java.lang.Math.addExact:(II)I
            iastore
         4: .line 752
            goto 7
      StackMap locals: int int[] int
      StackMap stack: java.lang.ArithmeticException
         5: pop
         6: .line 754
            aload 1 /* counters */
            iload 2 /* idx */
            aload 1 /* counters */
            iload 2 /* idx */
            iaload
            iconst_2
            idiv
            iastore
         7: .line 756
      StackMap locals:
      StackMap stack:
            iload 0 /* result */
            ireturn
        end local 2 // int idx
        end local 1 // int[] counters
        end local 0 // boolean result
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0    result  Z
            0    8     1  counters  [I
            3    8     2       idx  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.ArithmeticException
    RuntimeVisibleAnnotations: 
      java.lang.invoke.LambdaForm$Hidden()
      jdk.internal.HotSpotIntrinsicCandidate()
    MethodParameters:
          Name  Flags
      result    
      counters  

  static boolean isCompileConstant(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 764
            iconst_0
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.invoke.LambdaForm$Hidden()
      jdk.internal.HotSpotIntrinsicCandidate()
    MethodParameters:
      Name  Flags
      obj   

  static java.lang.invoke.MethodHandle makeGuardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // java.lang.invoke.MethodHandle test
        start local 1 // java.lang.invoke.MethodHandle target
        start local 2 // java.lang.invoke.MethodHandle fallback
         0: .line 771
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* type */
        start local 3 // java.lang.invoke.MethodType type
         1: .line 772
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 3
            aload 0 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 3 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aload 2 /* fallback */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
            ifne 3
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 773
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            astore 4 /* basicType */
        start local 4 // java.lang.invoke.MethodType basicType
         4: .line 774
            aload 4 /* basicType */
            invokestatic java.lang.invoke.MethodHandleImpl.makeGuardWithTestForm:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        start local 5 // java.lang.invoke.LambdaForm form
         5: .line 777
            getstatic java.lang.invoke.MethodHandleStatics.PROFILE_GWT:Z
            ifeq 12
         6: .line 778
            iconst_2
            newarray 10
            astore 7 /* counts */
        start local 7 // int[] counts
         7: .line 780
            invokestatic java.lang.invoke.BoundMethodHandle.speciesData_LLLL:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.factory:()Ljava/lang/invoke/MethodHandle;
            aload 3 /* type */
            aload 5 /* form */
         8: .line 781
            aload 0 /* test */
            aload 1 /* target */
            invokestatic java.lang.invoke.MethodHandleImpl.profile:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            aload 2 /* fallback */
            invokestatic java.lang.invoke.MethodHandleImpl.profile:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            aload 7 /* counts */
         9: .line 780
            invokevirtual java.lang.invoke.MethodHandle.invokeBasic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[I)Ljava/lang/invoke/BoundMethodHandle;
        10: .line 779
            astore 6 /* mh */
        end local 7 // int[] counts
        start local 6 // java.lang.invoke.BoundMethodHandle mh
        11: .line 782
            goto 19
        end local 6 // java.lang.invoke.BoundMethodHandle mh
        12: .line 784
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.LambdaForm
      StackMap stack:
            invokestatic java.lang.invoke.BoundMethodHandle.speciesData_LLL:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.factory:()Ljava/lang/invoke/MethodHandle;
            aload 3 /* type */
            aload 5 /* form */
        13: .line 785
            aload 0 /* test */
            aload 1 /* target */
            invokestatic java.lang.invoke.MethodHandleImpl.profile:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            aload 2 /* fallback */
            invokestatic java.lang.invoke.MethodHandleImpl.profile:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        14: .line 784
            invokevirtual java.lang.invoke.MethodHandle.invokeBasic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
        15: .line 783
            astore 6 /* mh */
        start local 6 // java.lang.invoke.BoundMethodHandle mh
        16: .line 787
            goto 19
        end local 6 // java.lang.invoke.BoundMethodHandle mh
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 7 /* ex */
        start local 7 // java.lang.Throwable ex
        18: .line 788
            aload 7 /* ex */
            invokestatic java.lang.invoke.MethodHandleStatics.uncaughtException:(Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 7 // java.lang.Throwable ex
        start local 6 // java.lang.invoke.BoundMethodHandle mh
        19: .line 790
      StackMap locals: java.lang.invoke.BoundMethodHandle
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 20
            aload 6 /* mh */
            invokevirtual java.lang.invoke.BoundMethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 3 /* type */
            if_acmpeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 791
      StackMap locals:
      StackMap stack:
            aload 6 /* mh */
            areturn
        end local 6 // java.lang.invoke.BoundMethodHandle mh
        end local 5 // java.lang.invoke.LambdaForm form
        end local 4 // java.lang.invoke.MethodType basicType
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.invoke.MethodHandle fallback
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.invoke.MethodHandle test
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0       test  Ljava/lang/invoke/MethodHandle;
            0   21     1     target  Ljava/lang/invoke/MethodHandle;
            0   21     2   fallback  Ljava/lang/invoke/MethodHandle;
            1   21     3       type  Ljava/lang/invoke/MethodType;
            4   21     4  basicType  Ljava/lang/invoke/MethodType;
            5   21     5       form  Ljava/lang/invoke/LambdaForm;
           11   12     6         mh  Ljava/lang/invoke/BoundMethodHandle;
           16   17     6         mh  Ljava/lang/invoke/BoundMethodHandle;
           19   21     6         mh  Ljava/lang/invoke/BoundMethodHandle;
            7   11     7     counts  [I
           18   19     7         ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5    16      17  Class java.lang.Throwable
    MethodParameters:
          Name  Flags
      test      
      target    
      fallback  

  static java.lang.invoke.MethodHandle profile(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle target
         0: .line 797
            getstatic java.lang.invoke.MethodHandleStatics.DONT_INLINE_THRESHOLD:I
            iflt 2
         1: .line 798
            aload 0 /* target */
            invokestatic java.lang.invoke.MethodHandleImpl.makeBlockInliningWrapper:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 800
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            areturn
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  target  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
        Name  Flags
      target  

  static java.lang.invoke.MethodHandle makeBlockInliningWrapper(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodHandle target
         0: .line 811
            getstatic java.lang.invoke.MethodHandleStatics.DONT_INLINE_THRESHOLD:I
            ifle 3
         1: .line 812
            getstatic java.lang.invoke.MethodHandleImpl$Makers.PRODUCE_BLOCK_INLINING_FORM:Ljava/util/function/Function;
            aload 0 /* target */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm
            astore 1 /* lform */
        start local 1 // java.lang.invoke.LambdaForm lform
         2: .line 813
            goto 4
        end local 1 // java.lang.invoke.LambdaForm lform
         3: .line 814
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleImpl$Makers.PRODUCE_REINVOKER_FORM:Ljava/util/function/Function;
            aload 0 /* target */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm
            astore 1 /* lform */
        start local 1 // java.lang.invoke.LambdaForm lform
         4: .line 816
      StackMap locals: java.lang.invoke.LambdaForm
      StackMap stack:
            new java.lang.invoke.MethodHandleImpl$CountingWrapper
            dup
            aload 0 /* target */
            aload 1 /* lform */
         5: .line 817
            getstatic java.lang.invoke.MethodHandleImpl$Makers.PRODUCE_BLOCK_INLINING_FORM:Ljava/util/function/Function;
            getstatic java.lang.invoke.MethodHandleImpl$Makers.PRODUCE_REINVOKER_FORM:Ljava/util/function/Function;
         6: .line 818
            getstatic java.lang.invoke.MethodHandleStatics.DONT_INLINE_THRESHOLD:I
         7: .line 816
            invokespecial java.lang.invoke.MethodHandleImpl$CountingWrapper.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/LambdaForm;Ljava/util/function/Function;Ljava/util/function/Function;I)V
            areturn
        end local 1 // java.lang.invoke.LambdaForm lform
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  target  Ljava/lang/invoke/MethodHandle;
            2    3     1   lform  Ljava/lang/invoke/LambdaForm;
            4    8     1   lform  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
        Name  Flags
      target  

  static java.lang.invoke.LambdaForm makeGuardWithTestForm(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=18, args_size=1
        start local 0 // java.lang.invoke.MethodType basicType
         0: .line 948
            aload 0 /* basicType */
            invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
            bipush 17
            invokevirtual java.lang.invoke.MethodTypeForm.cachedLambdaForm:(I)Ljava/lang/invoke/LambdaForm;
            astore 1 /* lform */
        start local 1 // java.lang.invoke.LambdaForm lform
         1: .line 949
            aload 1 /* lform */
            ifnull 2
            aload 1 /* lform */
            areturn
         2: .line 952
      StackMap locals: java.lang.invoke.LambdaForm
      StackMap stack:
            iconst_1
            aload 0 /* basicType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iadd
            istore 2 /* ARG_LIMIT */
        start local 2 // int ARG_LIMIT
         3: .line 953
            iload 2 /* ARG_LIMIT */
            istore 3 /* nameCursor */
        start local 3 // int nameCursor
         4: .line 954
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            istore 4 /* GET_TEST */
        start local 4 // int GET_TEST
         5: .line 955
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            istore 5 /* GET_TARGET */
        start local 5 // int GET_TARGET
         6: .line 956
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            istore 6 /* GET_FALLBACK */
        start local 6 // int GET_FALLBACK
         7: .line 957
            getstatic java.lang.invoke.MethodHandleStatics.PROFILE_GWT:Z
            ifeq 8
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            goto 9
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.LambdaForm int int int int int
      StackMap stack:
         8: iconst_m1
      StackMap locals:
      StackMap stack: int
         9: istore 7 /* GET_COUNTERS */
        start local 7 // int GET_COUNTERS
        10: .line 958
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            istore 8 /* CALL_TEST */
        start local 8 // int CALL_TEST
        11: .line 959
            iload 7 /* GET_COUNTERS */
            iconst_m1
            if_icmpeq 12
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            goto 13
      StackMap locals: int int
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: istore 9 /* PROFILE */
        start local 9 // int PROFILE
        14: .line 960
            iload 3 /* nameCursor */
            iconst_1
            isub
            istore 10 /* TEST */
        start local 10 // int TEST
        15: .line 961
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            istore 11 /* SELECT_ALT */
        start local 11 // int SELECT_ALT
        16: .line 962
            iload 3 /* nameCursor */
            iinc 3 /* nameCursor */ 1
            istore 12 /* CALL_TARGET */
        start local 12 // int CALL_TARGET
        17: .line 963
            getstatic java.lang.invoke.MethodHandleImpl.$assertionsDisabled:Z
            ifne 18
            iload 12 /* CALL_TARGET */
            iload 11 /* SELECT_ALT */
            iconst_1
            iadd
            if_icmpeq 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 965
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.LambdaForm int int int int int int int int int int int
      StackMap stack:
            aload 0 /* basicType */
            invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
            astore 13 /* lambdaType */
        start local 13 // java.lang.invoke.MethodType lambdaType
        19: .line 966
            iload 3 /* nameCursor */
            iload 2 /* ARG_LIMIT */
            isub
            aload 13 /* lambdaType */
            invokestatic java.lang.invoke.LambdaForm.arguments:(ILjava/lang/invoke/MethodType;)[Ljava/lang/invoke/LambdaForm$Name;
            astore 14 /* names */
        start local 14 // java.lang.invoke.LambdaForm$Name[] names
        20: .line 969
            iload 7 /* GET_COUNTERS */
            iconst_m1
            if_icmpeq 21
            invokestatic java.lang.invoke.BoundMethodHandle.speciesData_LLLL:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
            goto 22
        21: .line 970
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[]
      StackMap stack:
            invokestatic java.lang.invoke.BoundMethodHandle.speciesData_LLL:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
        22: .line 968
      StackMap locals:
      StackMap stack: java.lang.invoke.BoundMethodHandle$SpeciesData
            astore 15 /* data */
        start local 15 // java.lang.invoke.BoundMethodHandle$SpeciesData data
        23: .line 971
            aload 14 /* names */
            iconst_0
            aload 14 /* names */
            iconst_0
            aaload
            aload 15 /* data */
            invokevirtual java.lang.invoke.LambdaForm$Name.withConstraint:(Ljava/lang/Object;)Ljava/lang/invoke/LambdaForm$Name;
            aastore
        24: .line 972
            aload 14 /* names */
            iload 4 /* GET_TEST */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 15 /* data */
            iconst_0
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.getterFunction:(I)Ljava/lang/invoke/LambdaForm$NamedFunction;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* names */
            iconst_0
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        25: .line 973
            aload 14 /* names */
            iload 5 /* GET_TARGET */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 15 /* data */
            iconst_1
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.getterFunction:(I)Ljava/lang/invoke/LambdaForm$NamedFunction;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* names */
            iconst_0
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        26: .line 974
            aload 14 /* names */
            iload 6 /* GET_FALLBACK */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 15 /* data */
            iconst_2
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.getterFunction:(I)Ljava/lang/invoke/LambdaForm$NamedFunction;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* names */
            iconst_0
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        27: .line 975
            iload 7 /* GET_COUNTERS */
            iconst_m1
            if_icmpeq 29
        28: .line 976
            aload 14 /* names */
            iload 7 /* GET_COUNTERS */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 15 /* data */
            iconst_3
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.getterFunction:(I)Ljava/lang/invoke/LambdaForm$NamedFunction;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* names */
            iconst_0
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        29: .line 978
      StackMap locals: java.lang.invoke.BoundMethodHandle$SpeciesData
      StackMap stack:
            aload 14 /* names */
            iconst_0
            iload 2 /* ARG_LIMIT */
            ldc [Ljava/lang/Object;
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
            astore 16 /* invokeArgs */
        start local 16 // java.lang.Object[] invokeArgs
        30: .line 981
            aload 0 /* basicType */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            astore 17 /* testType */
        start local 17 // java.lang.invoke.MethodType testType
        31: .line 982
            aload 16 /* invokeArgs */
            iconst_0
            aload 14 /* names */
            iload 4 /* GET_TEST */
            aaload
            aastore
        32: .line 983
            aload 14 /* names */
            iload 8 /* CALL_TEST */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 17 /* testType */
            aload 16 /* invokeArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)V
            aastore
        33: .line 986
            iload 9 /* PROFILE */
            iconst_m1
            if_icmpeq 35
        34: .line 987
            aload 14 /* names */
            iload 9 /* PROFILE */
            new java.lang.invoke.LambdaForm$Name
            dup
            iconst_5
            invokestatic java.lang.invoke.MethodHandleImpl.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* names */
            iload 8 /* CALL_TEST */
            aaload
            aastore
            dup
            iconst_1
            aload 14 /* names */
            iload 7 /* GET_COUNTERS */
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        35: .line 990
      StackMap locals: java.lang.Object[] java.lang.invoke.MethodType
      StackMap stack:
            aload 14 /* names */
            iload 11 /* SELECT_ALT */
            new java.lang.invoke.LambdaForm$Name
            dup
            new java.lang.invoke.LambdaForm$NamedFunction
            dup
            iconst_1
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.SELECT_ALTERNATIVE:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            invokespecial java.lang.invoke.LambdaForm$NamedFunction.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)V
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* names */
            iload 10 /* TEST */
            aaload
            aastore
            dup
            iconst_1
            aload 14 /* names */
            iload 5 /* GET_TARGET */
            aaload
            aastore
            dup
            iconst_2
            aload 14 /* names */
            iload 6 /* GET_FALLBACK */
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        36: .line 993
            aload 16 /* invokeArgs */
            iconst_0
            aload 14 /* names */
            iload 11 /* SELECT_ALT */
            aaload
            aastore
        37: .line 994
            aload 14 /* names */
            iload 12 /* CALL_TARGET */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 0 /* basicType */
            aload 16 /* invokeArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.