public class java.lang.reflect.Proxy implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.reflect.Proxy
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -2222568056686623797

  private static final java.lang.Class<?>[] constructorParams;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final jdk.internal.loader.ClassLoaderValue<java.lang.reflect.Constructor<?>> proxyCache;
    descriptor: Ljdk/internal/loader/ClassLoaderValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/internal/loader/ClassLoaderValue<Ljava/lang/reflect/Constructor<*>;>;

  protected java.lang.reflect.InvocationHandler h;
    descriptor: Ljava/lang/reflect/InvocationHandler;
    flags: (0x0004) ACC_PROTECTED

  private static final java.lang.String PROXY_PACKAGE_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.proxy"

  private static final java.lang.ClassValue<java.util.concurrent.ConcurrentHashMap<java.lang.reflect.Method, java.lang.invoke.MethodHandle>> DEFAULT_METHODS_MAP;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodHandle;>;>;

  static final java.lang.Object[] EMPTY_ARGS;
    descriptor: [Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 297
            ldc Ljava/lang/reflect/Proxy;
            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.reflect.Proxy.$assertionsDisabled:Z
         3: .line 303
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/reflect/InvocationHandler;
            aastore
         4: .line 302
            putstatic java.lang.reflect.Proxy.constructorParams:[Ljava/lang/Class;
         5: .line 310
            new jdk.internal.loader.ClassLoaderValue
            dup
            invokespecial jdk.internal.loader.ClassLoaderValue.<init>:()V
         6: .line 309
            putstatic java.lang.reflect.Proxy.proxyCache:Ljdk/internal/loader/ClassLoaderValue;
         7: .line 1148
            new java.lang.reflect.Proxy$1
            dup
            invokespecial java.lang.reflect.Proxy$1.<init>:()V
            putstatic java.lang.reflect.Proxy.DEFAULT_METHODS_MAP:Ljava/lang/ClassValue;
         8: .line 1160
            iconst_0
            anewarray java.lang.Object
            putstatic java.lang.reflect.Proxy.EMPTY_ARGS:[Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.reflect.Proxy this
         0: .line 322
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 323
            return
        end local 0 // java.lang.reflect.Proxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/reflect/Proxy;

  protected void <init>(java.lang.reflect.InvocationHandler);
    descriptor: (Ljava/lang/reflect/InvocationHandler;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.reflect.Proxy this
        start local 1 // java.lang.reflect.InvocationHandler h
         0: .line 335
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 336
            aload 1 /* h */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 337
            aload 0 /* this */
            aload 1 /* h */
            putfield java.lang.reflect.Proxy.h:Ljava/lang/reflect/InvocationHandler;
         3: .line 338
            return
        end local 1 // java.lang.reflect.InvocationHandler h
        end local 0 // java.lang.reflect.Proxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/reflect/Proxy;
            0    4     1     h  Ljava/lang/reflect/InvocationHandler;
    MethodParameters:
      Name  Flags
      h     

  public static java.lang.Class<?> getProxyClass(java.lang.ClassLoader, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.ClassLoader loader
        start local 1 // java.lang.Class[] interfaces
         0: .line 393
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnonnull 2
         1: .line 394
            aconst_null
            goto 3
         2: .line 395
      StackMap locals:
      StackMap stack:
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
         3: .line 393
      StackMap locals:
      StackMap stack: java.lang.Class
            astore 2 /* caller */
        start local 2 // java.lang.Class caller
         4: .line 397
            aload 2 /* caller */
            aload 0 /* loader */
            aload 1 /* interfaces */
            invokestatic java.lang.reflect.Proxy.getProxyConstructor:(Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
         5: .line 398
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
         6: .line 397
            areturn
        end local 2 // java.lang.Class caller
        end local 1 // java.lang.Class[] interfaces
        end local 0 // java.lang.ClassLoader loader
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0      loader  Ljava/lang/ClassLoader;
            0    7     1  interfaces  [Ljava/lang/Class;
            4    7     2      caller  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/ClassLoader;[Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
            Name  Flags
      loader      
      interfaces  

  private static java.lang.reflect.Constructor<?> getProxyConstructor(java.lang.Class<?>, java.lang.ClassLoader, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.Class caller
        start local 1 // java.lang.ClassLoader loader
        start local 2 // java.lang.Class[] interfaces
         0: .line 421
            aload 2 /* interfaces */
            arraylength
            iconst_1
            if_icmpne 8
         1: .line 422
            aload 2 /* interfaces */
            iconst_0
            aaload
            astore 3 /* intf */
        start local 3 // java.lang.Class intf
         2: .line 423
            aload 0 /* caller */
            ifnull 4
         3: .line 424
            aload 0 /* caller */
            aload 1 /* loader */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 3 /* intf */
            aastore
            invokestatic java.lang.reflect.Proxy.checkProxyAccess:(Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/Class;)V
         4: .line 426
      StackMap locals: java.lang.Class
      StackMap stack:
            getstatic java.lang.reflect.Proxy.proxyCache:Ljdk/internal/loader/ClassLoaderValue;
            aload 3 /* intf */
            invokevirtual jdk.internal.loader.ClassLoaderValue.sub:(Ljava/lang/Object;)Ljdk/internal/loader/AbstractClassLoaderValue$Sub;
         5: .line 427
            aload 1 /* loader */
         6: .line 428
            invokedynamic apply()Ljava/util/function/BiFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/reflect/Proxy.lambda$0(Ljava/lang/ClassLoader;Ljdk/internal/loader/AbstractClassLoaderValue$Sub;)Ljava/lang/reflect/Constructor; (6)
                  (Ljava/lang/ClassLoader;Ljdk/internal/loader/AbstractClassLoaderValue$Sub;)Ljava/lang/reflect/Constructor;
         7: .line 426
            invokevirtual jdk.internal.loader.AbstractClassLoaderValue$Sub.computeIfAbsent:(Ljava/lang/ClassLoader;Ljava/util/function/BiFunction;)Ljava/lang/Object;
            checkcast java.lang.reflect.Constructor
            areturn
        end local 3 // java.lang.Class intf
         8: .line 432
      StackMap locals:
      StackMap stack:
            aload 2 /* interfaces */
            invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 3 /* intfsArray */
        start local 3 // java.lang.Class[] intfsArray
         9: .line 433
            aload 0 /* caller */
            ifnull 11
        10: .line 434
            aload 0 /* caller */
            aload 1 /* loader */
            aload 3 /* intfsArray */
            invokestatic java.lang.reflect.Proxy.checkProxyAccess:(Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/Class;)V
        11: .line 436
      StackMap locals: java.lang.Class[]
      StackMap stack:
            aload 3 /* intfsArray */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 4 /* intfs */
        start local 4 // java.util.List intfs
        12: .line 437
            getstatic java.lang.reflect.Proxy.proxyCache:Ljdk/internal/loader/ClassLoaderValue;
            aload 4 /* intfs */
            invokevirtual jdk.internal.loader.ClassLoaderValue.sub:(Ljava/lang/Object;)Ljdk/internal/loader/AbstractClassLoaderValue$Sub;
        13: .line 438
            aload 1 /* loader */
        14: .line 439
            invokedynamic apply()Ljava/util/function/BiFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/reflect/Proxy.lambda$1(Ljava/lang/ClassLoader;Ljdk/internal/loader/AbstractClassLoaderValue$Sub;)Ljava/lang/reflect/Constructor; (6)
                  (Ljava/lang/ClassLoader;Ljdk/internal/loader/AbstractClassLoaderValue$Sub;)Ljava/lang/reflect/Constructor;
        15: .line 437
            invokevirtual jdk.internal.loader.AbstractClassLoaderValue$Sub.computeIfAbsent:(Ljava/lang/ClassLoader;Ljava/util/function/BiFunction;)Ljava/lang/Object;
            checkcast java.lang.reflect.Constructor
            areturn
        end local 4 // java.util.List intfs
        end local 3 // java.lang.Class[] intfsArray
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0      caller  Ljava/lang/Class<*>;
            0   16     1      loader  Ljava/lang/ClassLoader;
            0   16     2  interfaces  [Ljava/lang/Class;
            2    8     3        intf  Ljava/lang/Class<*>;
            9   16     3  intfsArray  [Ljava/lang/Class;
           12   16     4       intfs  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/ClassLoader;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<*>;
    MethodParameters:
            Name  Flags
      caller      
      loader      
      interfaces  

  private static void checkProxyAccess(java.lang.Class<?>, java.lang.ClassLoader, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/Class;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // java.lang.Class caller
        start local 1 // java.lang.ClassLoader loader
        start local 2 // java.lang.Class[] interfaces
         0: .line 466
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
         1: .line 467
            aload 3 /* sm */
            ifnull 6
         2: .line 468
            aload 0 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* ccl */
        start local 4 // java.lang.ClassLoader ccl
         3: .line 469
            aload 1 /* loader */
            ifnonnull 5
            aload 4 /* ccl */
            ifnull 5
         4: .line 470
            aload 3 /* sm */
            getstatic sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         5: .line 472
      StackMap locals: java.lang.SecurityManager java.lang.ClassLoader
      StackMap stack:
            aload 4 /* ccl */
            aload 2 /* interfaces */
            invokestatic sun.reflect.misc.ReflectUtil.checkProxyPackageAccess:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)V
        end local 4 // java.lang.ClassLoader ccl
         6: .line 474
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.SecurityManager sm
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0      caller  Ljava/lang/Class<*>;
            0    7     1      loader  Ljava/lang/ClassLoader;
            0    7     2  interfaces  [Ljava/lang/Class;
            1    7     3          sm  Ljava/lang/SecurityManager;
            3    6     4         ccl  Ljava/lang/ClassLoader;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/ClassLoader;[Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      caller      
      loader      
      interfaces  

  public static  newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.InvocationHandler);
    descriptor: (Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.ClassLoader loader
        start local 1 // java.lang.Class[] interfaces
        start local 2 // java.lang.reflect.InvocationHandler h
         0: .line 1019
            aload 2 /* h */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1021
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnonnull 3
         2: .line 1022
            aconst_null
            goto 4
         3: .line 1023
      StackMap locals:
      StackMap stack:
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
         4: .line 1021
      StackMap locals:
      StackMap stack: java.lang.Class
            astore 3 /* caller */
        start local 3 // java.lang.Class caller
         5: .line 1028
            aload 3 /* caller */
            aload 0 /* loader */
            aload 1 /* interfaces */
            invokestatic java.lang.reflect.Proxy.getProxyConstructor:(Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 4 /* cons */
        start local 4 // java.lang.reflect.Constructor cons
         6: .line 1030
            aload 3 /* caller */
            aload 4 /* cons */
            aload 2 /* h */
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/Class;Ljava/lang/reflect/Constructor;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.reflect.Constructor cons
        end local 3 // java.lang.Class caller
        end local 2 // java.lang.reflect.InvocationHandler h
        end local 1 // java.lang.Class[] interfaces
        end local 0 // java.lang.ClassLoader loader
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0      loader  Ljava/lang/ClassLoader;
            0    7     1  interfaces  [Ljava/lang/Class;
            0    7     2           h  Ljava/lang/reflect/InvocationHandler;
            5    7     3      caller  Ljava/lang/Class<*>;
            6    7     4        cons  Ljava/lang/reflect/Constructor<*>;
    Signature: (Ljava/lang/ClassLoader;[Ljava/lang/Class<*>;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
            Name  Flags
      loader      
      interfaces  
      h           

  private static  newProxyInstance(java.lang.Class<?>, java.lang.reflect.Constructor<?>, java.lang.reflect.InvocationHandler);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Constructor;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.Class caller
        start local 1 // java.lang.reflect.Constructor cons
        start local 2 // java.lang.reflect.InvocationHandler h
         0: .line 1040
            aload 0 /* caller */
            ifnull 2
         1: .line 1041
            aload 0 /* caller */
            aload 1 /* cons */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            invokestatic java.lang.reflect.Proxy.checkNewProxyPermission:(Ljava/lang/Class;Ljava/lang/Class;)V
         2: .line 1044
      StackMap locals:
      StackMap stack:
            aload 1 /* cons */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* h */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
         4: .line 1045
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 3 /* e */
        start local 3 // java.lang.ReflectiveOperationException e
         5: .line 1046
            new java.lang.InternalError
            dup
            aload 3 /* e */
            invokevirtual java.lang.ReflectiveOperationException.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ReflectiveOperationException e
         6: .line 1047
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* e */
        start local 3 // java.lang.reflect.InvocationTargetException e
         7: .line 1048
            aload 3 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
         8: .line 1049
            aload 4 /* t */
            instanceof java.lang.RuntimeException
            ifeq 10
         9: .line 1050
            aload 4 /* t */
            checkcast java.lang.RuntimeException
            athrow
        10: .line 1052
      StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack:
            new java.lang.InternalError
            dup
            aload 4 /* t */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            aload 4 /* t */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Throwable t
        end local 3 // java.lang.reflect.InvocationTargetException e
        end local 2 // java.lang.reflect.InvocationHandler h
        end local 1 // java.lang.reflect.Constructor cons
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0  caller  Ljava/lang/Class<*>;
            0   11     1    cons  Ljava/lang/reflect/Constructor<*>;
            0   11     2       h  Ljava/lang/reflect/InvocationHandler;
            5    6     3       e  Ljava/lang/ReflectiveOperationException;
            7   11     3       e  Ljava/lang/reflect/InvocationTargetException;
            8   11     4       t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.IllegalAccessException
           0     3       4  Class java.lang.InstantiationException
           0     3       6  Class java.lang.reflect.InvocationTargetException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Constructor<*>;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      caller  
      cons    
      h       

  private static void checkNewProxyPermission(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // java.lang.Class caller
        start local 1 // java.lang.Class proxyClass
         0: .line 1058
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         1: .line 1059
            aload 2 /* sm */
            ifnull 9
         2: .line 1060
            aload 1 /* proxyClass */
            invokestatic sun.reflect.misc.ReflectUtil.isNonPublicProxyClass:(Ljava/lang/Class;)Z
            ifeq 9
         3: .line 1061
            aload 0 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* ccl */
        start local 3 // java.lang.ClassLoader ccl
         4: .line 1062
            aload 1 /* proxyClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* pcl */
        start local 4 // java.lang.ClassLoader pcl
         5: .line 1066
            aload 1 /* proxyClass */
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            astore 5 /* pkg */
        start local 5 // java.lang.String pkg
         6: .line 1067
            aload 0 /* caller */
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            astore 6 /* callerPkg */
        start local 6 // java.lang.String callerPkg
         7: .line 1069
            aload 4 /* pcl */
            aload 3 /* ccl */
            if_acmpne 8
            aload 5 /* pkg */
            aload 6 /* callerPkg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 1070
      StackMap locals: java.lang.Class java.lang.Class java.lang.SecurityManager java.lang.ClassLoader java.lang.ClassLoader java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* sm */
            new java.lang.reflect.ReflectPermission
            dup
            new java.lang.StringBuilder
            dup
            ldc "newProxyInPackage."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* pkg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.reflect.ReflectPermission.<init>:(Ljava/lang/String;)V
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 6 // java.lang.String callerPkg
        end local 5 // java.lang.String pkg
        end local 4 // java.lang.ClassLoader pcl
        end local 3 // java.lang.ClassLoader ccl
         9: .line 1074
      StackMap locals: java.lang.Class java.lang.Class java.lang.SecurityManager
      StackMap stack:
            return
        end local 2 // java.lang.SecurityManager sm
        end local 1 // java.lang.Class proxyClass
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0      caller  Ljava/lang/Class<*>;
            0   10     1  proxyClass  Ljava/lang/Class<*>;
            1   10     2          sm  Ljava/lang/SecurityManager;
            4    9     3         ccl  Ljava/lang/ClassLoader;
            5    9     4         pcl  Ljava/lang/ClassLoader;
            6    9     5         pkg  Ljava/lang/String;
            7    9     6   callerPkg  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      caller      
      proxyClass  

  private static java.lang.ClassLoader getLoader(java.lang.Module);
    descriptor: (Ljava/lang/Module;)Ljava/lang/ClassLoader;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Module m
         0: .line 1080
            aload 0 /* m */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Ljava/lang/Module;)Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/lang/Module.getClassLoader()Ljava/lang/ClassLoader; (5)
                  ()Ljava/lang/ClassLoader;
            astore 1 /* pa */
        start local 1 // java.security.PrivilegedAction pa
         1: .line 1081
            aload 1 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            areturn
        end local 1 // java.security.PrivilegedAction pa
        end local 0 // java.lang.Module m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     m  Ljava/lang/Module;
            1    2     1    pa  Ljava/security/PrivilegedAction<Ljava/lang/ClassLoader;>;
    MethodParameters:
      Name  Flags
      m     

  public static boolean isProxyClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class cl
         0: .line 1099
            ldc Ljava/lang/reflect/Proxy;
            aload 0 /* cl */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 1
            aload 0 /* cl */
            invokestatic java.lang.reflect.Proxy$ProxyBuilder.isProxyClass:(Ljava/lang/Class;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Class cl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    cl  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      cl    

  public static java.lang.reflect.InvocationHandler getInvocationHandler(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.Object proxy
         0: .line 1123
            aload 0 /* proxy */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 1124
            new java.lang.IllegalArgumentException
            dup
            ldc "not a proxy instance"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* proxy */
            checkcast java.lang.reflect.Proxy
            astore 1 /* p */
        start local 1 // java.lang.reflect.Proxy p
         3: .line 1128
            aload 1 /* p */
            getfield java.lang.reflect.Proxy.h:Ljava/lang/reflect/InvocationHandler;
            astore 2 /* ih */
        start local 2 // java.lang.reflect.InvocationHandler ih
         4: .line 1129
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 12
         5: .line 1130
            aload 2 /* ih */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 3 /* ihClass */
        start local 3 // java.lang.Class ihClass
         6: .line 1131
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 4 /* caller */
        start local 4 // java.lang.Class caller
         7: .line 1132
            aload 4 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         8: .line 1133
            aload 3 /* ihClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         9: .line 1132
            invokestatic sun.reflect.misc.ReflectUtil.needsPackageAccessCheck:(Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Z
        10: .line 1133
            ifeq 12
        11: .line 1135
            aload 3 /* ihClass */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        end local 4 // java.lang.Class caller
        end local 3 // java.lang.Class ihClass
        12: .line 1139
      StackMap locals: java.lang.reflect.Proxy java.lang.reflect.InvocationHandler
      StackMap stack:
            aload 2 /* ih */
            areturn
        end local 2 // java.lang.reflect.InvocationHandler ih
        end local 1 // java.lang.reflect.Proxy p
        end local 0 // java.lang.Object proxy
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0    proxy  Ljava/lang/Object;
            3   13     1        p  Ljava/lang/reflect/Proxy;
            4   13     2       ih  Ljava/lang/reflect/InvocationHandler;
            6   12     3  ihClass  Ljava/lang/Class<*>;
            7   12     4   caller  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
       Name  Flags
      proxy  

  private static java.util.concurrent.ConcurrentHashMap<java.lang.reflect.Method, java.lang.invoke.MethodHandle> defaultMethodMap(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class proxyClass
         0: .line 1156
            getstatic java.lang.reflect.Proxy.$assertionsDisabled:Z
            ifne 1
            aload 0 /* proxyClass */
            invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1157
      StackMap locals:
      StackMap stack:
            getstatic java.lang.reflect.Proxy.DEFAULT_METHODS_MAP:Ljava/lang/ClassValue;
            aload 0 /* proxyClass */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.concurrent.ConcurrentHashMap
            areturn
        end local 0 // java.lang.Class proxyClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  proxyClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
            Name  Flags
      proxyClass  

  static java.lang.invoke.MethodHandle defaultMethodHandle(java.lang.Class<? extends java.lang.reflect.Proxy>, java.lang.reflect.Method);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // java.lang.Class proxyClass
        start local 1 // java.lang.reflect.Method method
         0: .line 1164
            aload 0 /* proxyClass */
            invokestatic java.lang.reflect.Proxy.defaultMethodMap:(Ljava/lang/Class;)Ljava/util/concurrent/ConcurrentHashMap;
            astore 2 /* methods */
        start local 2 // java.util.concurrent.ConcurrentHashMap methods
         1: .line 1165
            aload 2 /* methods */
            aload 1 /* method */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 3 /* superMH */
        start local 3 // java.lang.invoke.MethodHandle superMH
         2: .line 1166
            aload 3 /* superMH */
            ifnonnull 24
         3: .line 1167
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 4 /* type */
        start local 4 // java.lang.invoke.MethodType type
         4: .line 1168
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            astore 5 /* lookup */
        start local 5 // java.lang.invoke.MethodHandles$Lookup lookup
         5: .line 1169
            aload 0 /* proxyClass */
            aload 1 /* method */
            invokestatic java.lang.reflect.Proxy.findProxyInterfaceOrElseThrow:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/Class;
            astore 6 /* proxyInterface */
        start local 6 // java.lang.Class proxyInterface
         6: .line 1172
            aload 5 /* lookup */
            aload 0 /* proxyClass */
            invokestatic java.lang.reflect.Proxy.proxyClassLookup:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
         7: .line 1173
            aload 6 /* proxyInterface */
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 4 /* type */
            aload 0 /* proxyClass */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findSpecial:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
         8: .line 1174
            iconst_0
            invokevirtual java.lang.invoke.MethodHandle.withVarargs:(Z)Ljava/lang/invoke/MethodHandle;
         9: .line 1172
            astore 7 /* dmh */
        start local 7 // java.lang.invoke.MethodHandle dmh
        10: .line 1175
            goto 13
        end local 7 // java.lang.invoke.MethodHandle dmh
      StackMap locals: java.lang.Class java.lang.reflect.Method java.util.concurrent.ConcurrentHashMap java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodHandles$Lookup java.lang.Class
      StackMap stack: java.lang.ReflectiveOperationException
        11: astore 8 /* e */
        start local 8 // java.lang.ReflectiveOperationException e
        12: .line 1177
            new java.lang.InternalError
            dup
            aload 8 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.ReflectiveOperationException e
        start local 7 // java.lang.invoke.MethodHandle dmh
        13: .line 1182
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            getstatic java.lang.reflect.Proxy.$assertionsDisabled:Z
            ifne 15
            aload 7 /* dmh */
            aload 4 /* type */
            aload 0 /* proxyClass */
            invokedynamic getAsBoolean(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/util/function/BooleanSupplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Z
                  java/lang/reflect/Proxy.lambda$3(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Z (6)
                  ()Z
        14: .line 1190
            invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
            ifne 15
            new java.lang.AssertionError
            dup
            ldc "Wrong method type"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 1192
      StackMap locals:
      StackMap stack:
            aload 7 /* dmh */
            aload 7 /* dmh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            ldc Ljava/lang/Object;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        start local 8 // java.lang.invoke.MethodHandle mh
        16: .line 1194
            aload 8 /* mh */
            ldc Ljava/lang/Throwable;
            invokestatic java.lang.reflect.Proxy$InvocationException.wrapMH:()Ljava/lang/invoke/MethodHandle;
            invokestatic java.lang.invoke.MethodHandles.catchException:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        17: .line 1196
            aload 8 /* mh */
            iconst_1
            ldc [Ljava/lang/Object;
            aload 4 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            invokevirtual java.lang.invoke.MethodHandle.asSpreader:(ILjava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        18: .line 1198
            aload 8 /* mh */
            ldc Ljava/lang/Object;
            ldc Ljava/lang/Object;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc [Ljava/lang/Object;
            aastore
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        19: .line 1201
            aload 2 /* methods */
            aload 1 /* method */
            aload 8 /* mh */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 9 /* cached */
        start local 9 // java.lang.invoke.MethodHandle cached
        20: .line 1202
            aload 9 /* cached */
            ifnull 23
        21: .line 1203
            aload 9 /* cached */
            astore 3 /* superMH */
        22: .line 1204
            goto 24
        23: .line 1205
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            aload 8 /* mh */
            astore 3 /* superMH */
        end local 9 // java.lang.invoke.MethodHandle cached
        end local 8 // java.lang.invoke.MethodHandle mh
        end local 7 // java.lang.invoke.MethodHandle dmh
        end local 6 // java.lang.Class proxyInterface
        end local 5 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 4 // java.lang.invoke.MethodType type
        24: .line 1208
      StackMap locals: java.lang.Class java.lang.reflect.Method java.util.concurrent.ConcurrentHashMap java.lang.invoke.MethodHandle
      StackMap stack:
            aload 3 /* superMH */
            areturn
        end local 3 // java.lang.invoke.MethodHandle superMH
        end local 2 // java.util.concurrent.ConcurrentHashMap methods
        end local 1 // java.lang.reflect.Method method
        end local 0 // java.lang.Class proxyClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0      proxyClass  Ljava/lang/Class<+Ljava/lang/reflect/Proxy;>;
            0   25     1          method  Ljava/lang/reflect/Method;
            1   25     2         methods  Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodHandle;>;
            2   25     3         superMH  Ljava/lang/invoke/MethodHandle;
            4   24     4            type  Ljava/lang/invoke/MethodType;
            5   24     5          lookup  Ljava/lang/invoke/MethodHandles$Lookup;
            6   24     6  proxyInterface  Ljava/lang/Class<*>;
           10   11     7             dmh  Ljava/lang/invoke/MethodHandle;
           13   24     7             dmh  Ljava/lang/invoke/MethodHandle;
           12   13     8               e  Ljava/lang/ReflectiveOperationException;
           16   24     8              mh  Ljava/lang/invoke/MethodHandle;
           20   24     9          cached  Ljava/lang/invoke/MethodHandle;
      Exception table:
        from    to  target  type
           6    10      11  Class java.lang.IllegalAccessException
           6    10      11  Class java.lang.NoSuchMethodException
    Signature: (Ljava/lang/Class<+Ljava/lang/reflect/Proxy;>;Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      proxyClass  
      method      

  private static java.lang.Class<?> findProxyInterfaceOrElseThrow(java.lang.Class<?>, java.lang.reflect.Method);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=2
        start local 0 // java.lang.Class proxyClass
        start local 1 // java.lang.reflect.Method method
         0: .line 1218
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            astore 2 /* declaringClass */
        start local 2 // java.lang.Class declaringClass
         1: .line 1219
            aload 2 /* declaringClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 5
         2: .line 1220
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 1221
            ldc "\" is not a method declared in the proxy class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1220
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1224
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* proxyClass */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 3 /* proxyInterfaces */
        start local 3 // java.util.List proxyInterfaces
         6: .line 1226
            aload 3 /* proxyInterfaces */
            aload 2 /* declaringClass */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 1227
            aload 2 /* declaringClass */
            areturn
         8: .line 1232
      StackMap locals: java.util.List
      StackMap stack:
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 4 /* deque */
        start local 4 // java.util.Deque deque
         9: .line 1233
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* visited */
        start local 5 // java.util.Set visited
        10: .line 1234
            iconst_0
            istore 6 /* indirectMethodRef */
        start local 6 // boolean indirectMethodRef
        11: .line 1235
            aload 3 /* proxyInterfaces */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 38
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 7 /* proxyIntf */
        start local 7 // java.lang.Class proxyIntf
        13: .line 1236
            getstatic java.lang.reflect.Proxy.$assertionsDisabled:Z
            ifne 14
            aload 7 /* proxyIntf */
            aload 2 /* declaringClass */
            if_acmpne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1237
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int java.lang.Class java.util.Iterator
      StackMap stack:
            aload 5 /* visited */
            aload 7 /* proxyIntf */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 1238
            aload 4 /* deque */
            aload 7 /* proxyIntf */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
        16: .line 1244
            goto 36
        start local 9 // java.lang.Class c
        17: .line 1245
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 9 /* c */
            aload 2 /* declaringClass */
            if_acmpne 26
        18: .line 1250
            aload 7 /* proxyIntf */
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 10 /* m */
        start local 10 // java.lang.reflect.Method m
        19: .line 1251
            aload 10 /* m */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* declaringClass */
            if_acmpne 22
        20: .line 1252
            aload 7 /* proxyIntf */
        21: areturn
        22: .line 1254
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            iconst_1
            istore 6 /* indirectMethodRef */
        end local 10 // java.lang.reflect.Method m
        23: .line 1255
            goto 36
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int java.lang.Class java.util.Iterator java.lang.Class
      StackMap stack: java.lang.NoSuchMethodException
        24: pop
        25: .line 1260
            goto 36
        26: .line 1264
      StackMap locals:
      StackMap stack:
            aload 5 /* visited */
            aload 9 /* c */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        27: .line 1265
            aload 9 /* c */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 35
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int java.lang.Class java.util.Iterator java.lang.Class top int int java.lang.Class[]
      StackMap stack:
        28: aload 13
            iload 11
            aaload
            astore 10 /* superIntf */
        start local 10 // java.lang.Class superIntf
        29: .line 1266
            aload 5 /* visited */
            aload 10 /* superIntf */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 34
            aload 4 /* deque */
            aload 10 /* superIntf */
            invokeinterface java.util.Deque.contains:(Ljava/lang/Object;)Z
            ifne 34
        30: .line 1267
            aload 10 /* superIntf */
            aload 2 /* declaringClass */
            if_acmpne 33
        31: .line 1269
            aload 4 /* deque */
            aload 10 /* superIntf */
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
        32: .line 1270
            goto 34
        33: .line 1271
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int java.lang.Class java.util.Iterator java.lang.Class java.lang.Class int int java.lang.Class[]
      StackMap stack:
            aload 4 /* deque */
            aload 10 /* superIntf */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.lang.Class superIntf
        34: .line 1265
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int java.lang.Class java.util.Iterator java.lang.Class top int int java.lang.Class[]
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        35: iload 11
            iload 12
            if_icmplt 28
        end local 9 // java.lang.Class c
        36: .line 1244
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int java.lang.Class java.util.Iterator
      StackMap stack:
            aload 4 /* deque */
            invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
            checkcast java.lang.Class
            dup
            astore 9 /* c */
        start local 9 // java.lang.Class c
        37: ifnonnull 17
        end local 9 // java.lang.Class c
        end local 7 // java.lang.Class proxyIntf
        38: .line 1235
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        39: .line 1278
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            iload 6 /* indirectMethodRef */
            ifeq 41
        40: .line 1279
            ldc "\" is overridden directly or indirectly by the proxy interfaces"
            goto 42
        41: .line 1280
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int
      StackMap stack: new 39 new 39 java.lang.StringBuilder
            ldc "\" is not a method declared in the proxy class"
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.Class java.util.List java.util.Deque java.util.Set int
      StackMap stack: new 39 new 39 java.lang.StringBuilder java.lang.String
        42: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        43: .line 1278
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // boolean indirectMethodRef
        end local 5 // java.util.Set visited
        end local 4 // java.util.Deque deque
        end local 3 // java.util.List proxyInterfaces
        end local 2 // java.lang.Class declaringClass
        end local 1 // java.lang.reflect.Method method
        end local 0 // java.lang.Class proxyClass
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   44     0         proxyClass  Ljava/lang/Class<*>;
            0   44     1             method  Ljava/lang/reflect/Method;
            1   44     2     declaringClass  Ljava/lang/Class<*>;
            6   44     3    proxyInterfaces  Ljava/util/List<Ljava/lang/Class<*>;>;
            9   44     4              deque  Ljava/util/Deque<Ljava/lang/Class<*>;>;
           10   44     5            visited  Ljava/util/Set<Ljava/lang/Class<*>;>;
           11   44     6  indirectMethodRef  Z
           13   38     7          proxyIntf  Ljava/lang/Class<*>;
           17   36     9                  c  Ljava/lang/Class<*>;
           37   38     9                  c  Ljava/lang/Class<*>;
           19   23    10                  m  Ljava/lang/reflect/Method;
           29   34    10          superIntf  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
          18    21      24  Class java.lang.NoSuchMethodException
          22    23      24  Class java.lang.NoSuchMethodException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Method;)Ljava/lang/Class<*>;
    MethodParameters:
            Name  Flags
      proxyClass  
      method      

  private static java.lang.invoke.MethodHandles$Lookup proxyClassLookup(java.lang.invoke.MethodHandles$Lookup, java.lang.Class<?>);
    descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup caller
        start local 1 // java.lang.Class proxyClass
         0: .line 1290
            new java.lang.reflect.Proxy$2
            dup
            aload 1 /* proxyClass */
            aload 0 /* caller */
            invokespecial java.lang.reflect.Proxy$2.<init>:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandles$Lookup
            areturn
        end local 1 // java.lang.Class proxyClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup caller
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0      caller  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  proxyClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandles$Lookup;
    MethodParameters:
            Name  Flags
      caller      
      proxyClass  

  private static java.lang.reflect.Constructor lambda$0(java.lang.ClassLoader, jdk.internal.loader.AbstractClassLoaderValue$Sub);
    descriptor: (Ljava/lang/ClassLoader;Ljdk/internal/loader/AbstractClassLoaderValue$Sub;)Ljava/lang/reflect/Constructor;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.ClassLoader ld
        start local 1 // jdk.internal.loader.AbstractClassLoaderValue$Sub clv
         0: .line 428
            new java.lang.reflect.Proxy$ProxyBuilder
            dup
            aload 0 /* ld */
            aload 1 /* clv */
            invokevirtual jdk.internal.loader.AbstractClassLoaderValue$Sub.key:()Ljava/lang/Object;
            checkcast java.lang.Class
            invokespecial java.lang.reflect.Proxy$ProxyBuilder.<init>:(Ljava/lang/ClassLoader;Ljava/lang/Class;)V
            invokevirtual java.lang.reflect.Proxy$ProxyBuilder.build:()Ljava/lang/reflect/Constructor;
            areturn
        end local 1 // jdk.internal.loader.AbstractClassLoaderValue$Sub clv
        end local 0 // java.lang.ClassLoader ld
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ld  Ljava/lang/ClassLoader;
            0    1     1   clv  Ljdk/internal/loader/AbstractClassLoaderValue<Ljdk/internal/loader/ClassLoaderValue<Ljava/lang/reflect/Constructor<*>;>;Ljava/lang/reflect/Constructor<*>;>.Sub<Ljava/lang/Class<Ljava/lang/Object;>;>;

  private static java.lang.reflect.Constructor lambda$1(java.lang.ClassLoader, jdk.internal.loader.AbstractClassLoaderValue$Sub);
    descriptor: (Ljava/lang/ClassLoader;Ljdk/internal/loader/AbstractClassLoaderValue$Sub;)Ljava/lang/reflect/Constructor;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.ClassLoader ld
        start local 1 // jdk.internal.loader.AbstractClassLoaderValue$Sub clv
         0: .line 439
            new java.lang.reflect.Proxy$ProxyBuilder
            dup
            aload 0 /* ld */
            aload 1 /* clv */
            invokevirtual jdk.internal.loader.AbstractClassLoaderValue$Sub.key:()Ljava/lang/Object;
            checkcast java.util.List
            invokespecial java.lang.reflect.Proxy$ProxyBuilder.<init>:(Ljava/lang/ClassLoader;Ljava/util/List;)V
            invokevirtual java.lang.reflect.Proxy$ProxyBuilder.build:()Ljava/lang/reflect/Constructor;
            areturn
        end local 1 // jdk.internal.loader.AbstractClassLoaderValue$Sub clv
        end local 0 // java.lang.ClassLoader ld
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ld  Ljava/lang/ClassLoader;
            0    1     1   clv  Ljdk/internal/loader/AbstractClassLoaderValue<Ljdk/internal/loader/ClassLoaderValue<Ljava/lang/reflect/Constructor<*>;>;Ljava/lang/reflect/Constructor<*>;>.Sub<Ljava/util/List<Ljava/lang/Class<*>;>;>;

  private static boolean lambda$3(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, java.lang.Class);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=3, args_size=3
         0: .line 1185
            aload 0
            aload 1
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 2
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            pop
         1: .line 1186
            iconst_1
            ireturn
         2: .line 1187
      StackMap locals:
      StackMap stack: java.lang.invoke.WrongMethodTypeException
            pop
         3: .line 1188
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.invoke.WrongMethodTypeException
}
SourceFile: "Proxy.java"
NestMembers:
  java.lang.reflect.Proxy$1  java.lang.reflect.Proxy$2  java.lang.reflect.Proxy$InvocationException  java.lang.reflect.Proxy$ProxyBuilder  java.lang.reflect.Proxy$ProxyBuilder$1
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  java.lang.reflect.Proxy$1
  java.lang.reflect.Proxy$2
  InvocationException = java.lang.reflect.Proxy$InvocationException of java.lang.reflect.Proxy
  private final ProxyBuilder = java.lang.reflect.Proxy$ProxyBuilder of java.lang.reflect.Proxy
  public final Sub = jdk.internal.loader.AbstractClassLoaderValue$Sub of jdk.internal.loader.AbstractClassLoaderValue