public class sun.awt.image.MultiResolutionToolkitImage extends sun.awt.image.ToolkitImage implements java.awt.image.MultiResolutionImage
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.image.MultiResolutionToolkitImage
  super_class: sun.awt.image.ToolkitImage
{
  java.awt.Image resolutionVariant;
    descriptor: Ljava/awt/Image;
    flags: (0x0000) 

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

  public void <init>(java.awt.Image, java.awt.Image);
    descriptor: (Ljava/awt/Image;Ljava/awt/Image;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
        start local 1 // java.awt.Image lowResolutionImage
        start local 2 // java.awt.Image resolutionVariant
         0: .line 40
            aload 0 /* this */
            aload 1 /* lowResolutionImage */
            invokevirtual java.awt.Image.getSource:()Ljava/awt/image/ImageProducer;
            invokespecial sun.awt.image.ToolkitImage.<init>:(Ljava/awt/image/ImageProducer;)V
         1: .line 41
            aload 0 /* this */
            aload 2 /* resolutionVariant */
            putfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
         2: .line 42
            return
        end local 2 // java.awt.Image resolutionVariant
        end local 1 // java.awt.Image lowResolutionImage
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lsun/awt/image/MultiResolutionToolkitImage;
            0    3     1  lowResolutionImage  Ljava/awt/Image;
            0    3     2   resolutionVariant  Ljava/awt/Image;
    MethodParameters:
                    Name  Flags
      lowResolutionImage  
      resolutionVariant   

  public java.awt.Image getResolutionVariant(double, double);
    descriptor: (DD)Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
        start local 1 // double destWidth
        start local 3 // double destHeight
         0: .line 46
            dload 1 /* destWidth */
            dload 3 /* destHeight */
            invokestatic sun.awt.image.MultiResolutionToolkitImage.checkSize:(DD)V
         1: .line 47
            dload 1 /* destWidth */
            aload 0 /* this */
            invokevirtual sun.awt.image.MultiResolutionToolkitImage.getWidth:()I
            i2d
            dcmpg
            ifgt 3
            dload 3 /* destHeight */
            aload 0 /* this */
            invokevirtual sun.awt.image.MultiResolutionToolkitImage.getHeight:()I
            i2d
            dcmpg
            ifgt 3
         2: .line 48
            aload 0 /* this */
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
         4: .line 47
      StackMap locals:
      StackMap stack: java.awt.Image
            areturn
        end local 3 // double destHeight
        end local 1 // double destWidth
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lsun/awt/image/MultiResolutionToolkitImage;
            0    5     1   destWidth  D
            0    5     3  destHeight  D
    MethodParameters:
            Name  Flags
      destWidth   
      destHeight  

  public static java.awt.Image map(sun.awt.image.MultiResolutionToolkitImage, java.util.function.Function<java.awt.Image, java.awt.Image>);
    descriptor: (Lsun/awt/image/MultiResolutionToolkitImage;Ljava/util/function/Function;)Ljava/awt/Image;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.awt.image.MultiResolutionToolkitImage mrImage
        start local 1 // java.util.function.Function mapper
         0: .line 53
            aload 1 /* mapper */
            aload 0 /* mrImage */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Image
            astore 2 /* baseImage */
        start local 2 // java.awt.Image baseImage
         1: .line 54
            aload 1 /* mapper */
            aload 0 /* mrImage */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Image
            astore 3 /* rvImage */
        start local 3 // java.awt.Image rvImage
         2: .line 55
            new sun.awt.image.MultiResolutionToolkitImage
            dup
            aload 2 /* baseImage */
            aload 3 /* rvImage */
            invokespecial sun.awt.image.MultiResolutionToolkitImage.<init>:(Ljava/awt/Image;Ljava/awt/Image;)V
            areturn
        end local 3 // java.awt.Image rvImage
        end local 2 // java.awt.Image baseImage
        end local 1 // java.util.function.Function mapper
        end local 0 // sun.awt.image.MultiResolutionToolkitImage mrImage
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0    mrImage  Lsun/awt/image/MultiResolutionToolkitImage;
            0    3     1     mapper  Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;
            1    3     2  baseImage  Ljava/awt/Image;
            2    3     3    rvImage  Ljava/awt/Image;
    Signature: (Lsun/awt/image/MultiResolutionToolkitImage;Ljava/util/function/Function<Ljava/awt/Image;Ljava/awt/Image;>;)Ljava/awt/Image;
    MethodParameters:
         Name  Flags
      mrImage  
      mapper   

  private static void checkSize(double, double);
    descriptor: (DD)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // double width
        start local 2 // double height
         0: .line 59
            dload 0 /* width */
            dconst_0
            dcmpg
            ifle 1
            dload 2 /* height */
            dconst_0
            dcmpg
            ifgt 4
         1: .line 60
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         2: .line 61
            ldc "Width (%s) or height (%s) cannot be <= 0"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            dload 0 /* width */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 2 /* height */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
         3: .line 60
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 64
      StackMap locals:
      StackMap stack:
            dload 0 /* width */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifeq 5
            dload 2 /* height */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifne 8
         5: .line 65
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         6: .line 66
            ldc "Width (%s) or height (%s) is not finite"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            dload 0 /* width */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 2 /* height */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
         7: .line 65
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 68
      StackMap locals:
      StackMap stack:
            return
        end local 2 // double height
        end local 0 // double width
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0   width  D
            0    9     2  height  D
    MethodParameters:
        Name  Flags
      width   
      height  

  public java.awt.Image getResolutionVariant();
    descriptor: ()Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
         0: .line 71
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
            areturn
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/MultiResolutionToolkitImage;

  public java.util.List<java.awt.Image> getResolutionVariants();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.awt.image.MultiResolutionToolkitImage this
         0: .line 76
            iconst_2
            anewarray java.awt.Image
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield sun.awt.image.MultiResolutionToolkitImage.resolutionVariant:Ljava/awt/Image;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // sun.awt.image.MultiResolutionToolkitImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/MultiResolutionToolkitImage;
    Signature: ()Ljava/util/List<Ljava/awt/Image;>;

  public static java.awt.image.ImageObserver getResolutionVariantObserver(java.awt.Image, java.awt.image.ImageObserver, int, int, int, int);
    descriptor: (Ljava/awt/Image;Ljava/awt/image/ImageObserver;IIII)Ljava/awt/image/ImageObserver;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // java.awt.Image image
        start local 1 // java.awt.image.ImageObserver observer
        start local 2 // int imgWidth
        start local 3 // int imgHeight
        start local 4 // int rvWidth
        start local 5 // int rvHeight
         0: .line 92
            aload 0 /* image */
            aload 1 /* observer */
         1: .line 93
            iload 2 /* imgWidth */
            iload 3 /* imgHeight */
            iload 4 /* rvWidth */
            iload 5 /* rvHeight */
            iconst_0
         2: .line 92
            invokestatic sun.awt.image.MultiResolutionToolkitImage.getResolutionVariantObserver:(Ljava/awt/Image;Ljava/awt/image/ImageObserver;IIIIZ)Ljava/awt/image/ImageObserver;
            areturn
        end local 5 // int rvHeight
        end local 4 // int rvWidth
        end local 3 // int imgHeight
        end local 2 // int imgWidth
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // java.awt.Image image
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0      image  Ljava/awt/Image;
            0    3     1   observer  Ljava/awt/image/ImageObserver;
            0    3     2   imgWidth  I
            0    3     3  imgHeight  I
            0    3     4    rvWidth  I
            0    3     5   rvHeight  I
    MethodParameters:
           Name  Flags
      image      final
      observer   final
      imgWidth   final
      imgHeight  final
      rvWidth    final
      rvHeight   final

  public static java.awt.image.ImageObserver getResolutionVariantObserver(java.awt.Image, java.awt.image.ImageObserver, int, int, int, int, boolean);
    descriptor: (Ljava/awt/Image;Ljava/awt/image/ImageObserver;IIIIZ)Ljava/awt/image/ImageObserver;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=7
        start local 0 // java.awt.Image image
        start local 1 // java.awt.image.ImageObserver observer
        start local 2 // int imgWidth
        start local 3 // int imgHeight
        start local 4 // int rvWidth
        start local 5 // int rvHeight
        start local 6 // boolean concatenateInfo
         0: .line 101
            aload 1 /* observer */
            ifnonnull 2
         1: .line 102
            aconst_null
            areturn
         2: .line 105
      StackMap locals:
      StackMap stack:
            getstatic sun.awt.image.MultiResolutionToolkitImage$ObserverCache.INSTANCE:Lsun/awt/SoftCache;
            dup
            astore 7
            monitorenter
         3: .line 106
            getstatic sun.awt.image.MultiResolutionToolkitImage$ObserverCache.INSTANCE:Lsun/awt/SoftCache;
            aload 1 /* observer */
            invokevirtual sun.awt.SoftCache.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.image.ImageObserver
            astore 8 /* o */
        start local 8 // java.awt.image.ImageObserver o
         4: .line 108
            aload 8 /* o */
            ifnonnull 7
         5: .line 110
            iload 6 /* concatenateInfo */
            aload 0 /* image */
            aload 1 /* observer */
            invokedynamic imageUpdate(ZLjava/awt/Image;Ljava/awt/image/ImageObserver;)Ljava/awt/image/ImageObserver;
              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/awt/Image;IIIII)Z
                  sun/awt/image/MultiResolutionToolkitImage.lambda$0(ZLjava/awt/Image;Ljava/awt/image/ImageObserver;Ljava/awt/Image;IIIII)Z (6)
                  (Ljava/awt/Image;IIIII)Z
            astore 8 /* o */
         6: .line 135
            getstatic sun.awt.image.MultiResolutionToolkitImage$ObserverCache.INSTANCE:Lsun/awt/SoftCache;
            aload 1 /* observer */
            aload 8 /* o */
            invokevirtual sun.awt.SoftCache.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 137
      StackMap locals: sun.awt.SoftCache java.awt.image.ImageObserver
      StackMap stack:
            aload 8 /* o */
            aload 7
            monitorexit
         8: areturn
        end local 8 // java.awt.image.ImageObserver o
         9: .line 105
      StackMap locals: java.awt.Image java.awt.image.ImageObserver int int int int int sun.awt.SoftCache
      StackMap stack: java.lang.Throwable
            aload 7
            monitorexit
        10: athrow
        end local 6 // boolean concatenateInfo
        end local 5 // int rvHeight
        end local 4 // int rvWidth
        end local 3 // int imgHeight
        end local 2 // int imgWidth
        end local 1 // java.awt.image.ImageObserver observer
        end local 0 // java.awt.Image image
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0            image  Ljava/awt/Image;
            0   11     1         observer  Ljava/awt/image/ImageObserver;
            0   11     2         imgWidth  I
            0   11     3        imgHeight  I
            0   11     4          rvWidth  I
            0   11     5         rvHeight  I
            0   11     6  concatenateInfo  Z
            4    9     8                o  Ljava/awt/image/ImageObserver;
      Exception table:
        from    to  target  type
           3     8       9  any
           9    10       9  any
    MethodParameters:
                 Name  Flags
      image            final
      observer         final
      imgWidth         final
      imgHeight        final
      rvWidth          final
      rvHeight         final
      concatenateInfo  

  private static boolean lambda$0(boolean, java.awt.Image, java.awt.image.ImageObserver, java.awt.Image, int, int, int, int, int);
    descriptor: (ZLjava/awt/Image;Ljava/awt/image/ImageObserver;Ljava/awt/Image;IIIII)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=9, args_size=9
        start local 3 // java.awt.Image resolutionVariant
        start local 4 // int flags
        start local 5 // int x
        start local 6 // int y
        start local 7 // int width
        start local 8 // int height
         0: .line 113
            iload 4 /* flags */
            bipush 57
            iand
            ifeq 2
         1: .line 114
            iload 7 /* width */
            iconst_1
            iadd
            iconst_2
            idiv
            istore 7 /* width */
         2: .line 117
      StackMap locals:
      StackMap stack:
            iload 4 /* flags */
            bipush 58
            iand
            ifeq 4
         3: .line 118
            iload 8 /* height */
            iconst_1
            iadd
            iconst_2
            idiv
            istore 8 /* height */
         4: .line 121
      StackMap locals:
      StackMap stack:
            iload 4 /* flags */
            bipush 56
            iand
            ifeq 7
         5: .line 122
            iload 5 /* x */
            iconst_2
            idiv
            istore 5 /* x */
         6: .line 123
            iload 6 /* y */
            iconst_2
            idiv
            istore 6 /* y */
         7: .line 126
      StackMap locals:
      StackMap stack:
            iload 0
            ifeq 10
         8: .line 127
            iload 4 /* flags */
            aload 1
            checkcast sun.awt.image.ToolkitImage
         9: .line 128
            invokevirtual sun.awt.image.ToolkitImage.getImageRep:()Lsun/awt/image/ImageRepresentation;
            aconst_null
            invokevirtual sun.awt.image.ImageRepresentation.check:(Ljava/awt/image/ImageObserver;)I
            iand
            istore 4 /* flags */
        10: .line 131
      StackMap locals:
      StackMap stack:
            aload 2
        11: .line 132
            aload 1
            iload 4 /* flags */
            iload 5 /* x */
            iload 6 /* y */
            iload 7 /* width */
            iload 8 /* height */
        12: .line 131
            invokeinterface java.awt.image.ImageObserver.imageUpdate:(Ljava/awt/Image;IIIII)Z
            ireturn
        end local 8 // int height
        end local 7 // int width
        end local 6 // int y
        end local 5 // int x
        end local 4 // int flags
        end local 3 // java.awt.Image resolutionVariant
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     3  resolutionVariant  Ljava/awt/Image;
            0   13     4              flags  I
            0   13     5                  x  I
            0   13     6                  y  I
            0   13     7              width  I
            0   13     8             height  I
}
SourceFile: "MultiResolutionToolkitImage.java"
NestMembers:
  sun.awt.image.MultiResolutionToolkitImage$ObserverCache
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private ObserverCache = sun.awt.image.MultiResolutionToolkitImage$ObserverCache of sun.awt.image.MultiResolutionToolkitImage