public class com.sun.tools.javac.platform.JDKPlatformProvider implements com.sun.tools.javac.platform.PlatformProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.platform.JDKPlatformProvider
  super_class: java.lang.Object
{
  private static final java.lang.String[] symbolFileLocation;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  public static final java.util.Comparator<java.lang.String> NUMERICAL_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=13, args_size=0
         0: .line 94
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "lib"
            aastore
            dup
            iconst_1
            ldc "ct.sym"
            aastore
            putstatic com.sun.tools.javac.platform.JDKPlatformProvider.symbolFileLocation:[Ljava/lang/String;
         1: .line 97
            invokedynamic compare()Ljava/util/Comparator;
              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;)I
                  com/sun/tools/javac/platform/JDKPlatformProvider.lambda$0(Ljava/lang/String;Ljava/lang/String;)I (6)
                  (Ljava/lang/String;Ljava/lang/String;)I
            putstatic com.sun.tools.javac.platform.JDKPlatformProvider.NUMERICAL_COMPARATOR:Ljava/util/Comparator;
         2: .line 114
            new java.util.TreeSet
            dup
            getstatic com.sun.tools.javac.platform.JDKPlatformProvider.NUMERICAL_COMPARATOR:Ljava/util/Comparator;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            putstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
         3: .line 115
            invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.findCtSym:()Ljava/nio/file/Path;
            astore 0 /* ctSymFile */
        start local 0 // java.nio.file.Path ctSymFile
         4: .line 116
            aload 0 /* ctSymFile */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 34
         5: .line 117
            aconst_null
            astore 1
            aconst_null
            astore 2
         6: aload 0 /* ctSymFile */
            aconst_null
            invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/nio/file/Path;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem;
            astore 3 /* fs */
        start local 3 // java.nio.file.FileSystem fs
         7: .line 119
            aload 3 /* fs */
            invokevirtual java.nio.file.FileSystem.getRootDirectories:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
         8: .line 118
            astore 4 /* dir */
        start local 4 // java.nio.file.DirectoryStream dir
         9: .line 120
            aload 4 /* dir */
            invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
            astore 6
            goto 21
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 5 /* section */
        start local 5 // java.nio.file.Path section
        11: .line 121
            aload 5 /* section */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "-"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 13
        12: .line 122
            goto 21
        13: .line 123
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator
      StackMap stack:
            aload 5 /* section */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 20
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator top int int char[]
      StackMap stack:
        14: aload 10
            iload 8
            caload
            istore 7 /* ver */
        start local 7 // char ver
        15: .line 124
            iload 7 /* ver */
            invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
            astore 11 /* verString */
        start local 11 // java.lang.String verString
        16: .line 125
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 11 /* verString */
            bipush 36
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.tools.javac.jvm.Target.lookup:(Ljava/lang/String;)Lcom/sun/tools/javac/jvm/Target;
            astore 12 /* t */
        start local 12 // com.sun.tools.javac.jvm.Target t
        17: .line 127
            aload 12 /* t */
            ifnull 19
        18: .line 128
            getstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
            aload 12 /* t */
            invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.targetNumericVersion:(Lcom/sun/tools/javac/jvm/Target;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // com.sun.tools.javac.jvm.Target t
        end local 11 // java.lang.String verString
        end local 7 // char ver
        19: .line 123
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        20: iload 8
            iload 9
            if_icmplt 14
        end local 5 // java.nio.file.Path section
        21: .line 120
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        22: .line 132
            aload 4 /* dir */
            ifnull 25
            aload 4 /* dir */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 25
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream
      StackMap stack: java.lang.Throwable
        23: astore 1
            aload 4 /* dir */
            ifnull 24
            aload 4 /* dir */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 4 // java.nio.file.DirectoryStream dir
      StackMap locals:
      StackMap stack:
        24: aload 1
            athrow
      StackMap locals:
      StackMap stack:
        25: aload 3 /* fs */
            ifnull 34
            aload 3 /* fs */
            invokevirtual java.nio.file.FileSystem.close:()V
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 2
            aload 1
            ifnonnull 27
            aload 2
            astore 1
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 1
            aload 2
            if_acmpeq 28
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 3 /* fs */
            ifnull 29
            aload 3 /* fs */
            invokevirtual java.nio.file.FileSystem.close:()V
        end local 3 // java.nio.file.FileSystem fs
      StackMap locals:
      StackMap stack:
        29: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 2
            aload 1
            ifnonnull 31
            aload 2
            astore 1
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 1
            aload 2
            if_acmpeq 32
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 1
            athrow
      StackMap locals: java.nio.file.Path
      StackMap stack: java.lang.Exception
        33: pop
        end local 0 // java.nio.file.Path ctSymFile
        34: .line 135
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            4   34     0  ctSymFile  Ljava/nio/file/Path;
            7   29     3         fs  Ljava/nio/file/FileSystem;
            9   24     4        dir  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
           11   21     5    section  Ljava/nio/file/Path;
           15   19     7        ver  C
           16   19    11  verString  Ljava/lang/String;
           17   19    12          t  Lcom/sun/tools/javac/jvm/Target;
      Exception table:
        from    to  target  type
           9    22      23  any
           7    25      26  any
           6    30      30  any
           5    33      33  Class java.io.IOException
           5    33      33  Class java.nio.file.ProviderNotFoundException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/platform/JDKPlatformProvider;

  public java.lang.Iterable<java.lang.String> getSupportedPlatformNames();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
         0: .line 86
            getstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
            areturn
        end local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/platform/JDKPlatformProvider;
    Signature: ()Ljava/lang/Iterable<Ljava/lang/String;>;

  public com.sun.tools.javac.platform.PlatformDescription getPlatform(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/sun/tools/javac/platform/PlatformDescription;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
        start local 1 // java.lang.String platformName
        start local 2 // java.lang.String options
         0: .line 91
            new com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl
            dup
            aload 1 /* platformName */
            invokespecial com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String options
        end local 1 // java.lang.String platformName
        end local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/tools/javac/platform/JDKPlatformProvider;
            0    1     1  platformName  Ljava/lang/String;
            0    1     2       options  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      platformName  
      options       

  private static java.lang.String targetNumericVersion(com.sun.tools.javac.jvm.Target);
    descriptor: (Lcom/sun/tools/javac/jvm/Target;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.jvm.Target target
         0: .line 138
            aload 0 /* target */
            invokevirtual com.sun.tools.javac.jvm.Target.ordinal:()I
            getstatic com.sun.tools.javac.jvm.Target.JDK1_1:Lcom/sun/tools/javac/jvm/Target;
            invokevirtual com.sun.tools.javac.jvm.Target.ordinal:()I
            isub
            iconst_1
            iadd
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.javac.jvm.Target target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Lcom/sun/tools/javac/jvm/Target;
    MethodParameters:
        Name  Flags
      target  

  static java.nio.file.Path findCtSym();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=6, args_size=0
         0: .line 397
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* javaHome */
        start local 0 // java.lang.String javaHome
         1: .line 398
            aload 0 /* javaHome */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* file */
        start local 1 // java.nio.file.Path file
         2: .line 400
            getstatic com.sun.tools.javac.platform.JDKPlatformProvider.symbolFileLocation:[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: java.lang.String java.nio.file.Path top int int java.lang.String[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* name */
        start local 2 // java.lang.String name
         4: .line 401
            aload 1 /* file */
            aload 2 /* name */
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* file */
        end local 2 // java.lang.String name
         5: .line 400
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 402
            aload 1 /* file */
            areturn
        end local 1 // java.nio.file.Path file
        end local 0 // java.lang.String javaHome
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1    8     0  javaHome  Ljava/lang/String;
            2    8     1      file  Ljava/nio/file/Path;
            4    5     2      name  Ljava/lang/String;

  private static int lambda$0(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.String s1
        start local 1 // java.lang.String s2
         0: .line 100
            aload 0 /* s1 */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 2 /* i1 */
        start local 2 // int i1
         1: .line 101
            goto 4
        end local 2 // int i1
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
         2: pop
         3: .line 102
            ldc 2147483647
            istore 2 /* i1 */
        start local 2 // int i1
         4: .line 106
      StackMap locals: int
      StackMap stack:
            aload 1 /* s2 */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 3 /* i2 */
        start local 3 // int i2
         5: .line 107
            goto 8
        end local 3 // int i2
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
         6: pop
         7: .line 108
            ldc 2147483647
            istore 3 /* i2 */
        start local 3 // int i2
         8: .line 110
      StackMap locals: int
      StackMap stack:
            iload 2 /* i1 */
            iload 3 /* i2 */
            if_icmpeq 9
            iload 2 /* i1 */
            iload 3 /* i2 */
            isub
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 0 /* s1 */
            aload 1 /* s2 */
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 3 // int i2
        end local 2 // int i1
        end local 1 // java.lang.String s2
        end local 0 // java.lang.String s1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0    s1  Ljava/lang/String;
            0   11     1    s2  Ljava/lang/String;
            1    2     2    i1  I
            4   11     2    i1  I
            5    6     3    i2  I
            8   11     3    i2  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NumberFormatException
           4     5       6  Class java.lang.NumberFormatException
}
SourceFile: "JDKPlatformProvider.java"
NestMembers:
  com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl  com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl$1  com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl$1$1  com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl$SigJavaFileObject
InnerClasses:
  PlatformDescriptionImpl = com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl of com.sun.tools.javac.platform.JDKPlatformProvider
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles