public class org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar extends org.eclipse.jdt.internal.compiler.batch.ClasspathJar
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar
  super_class: org.eclipse.jdt.internal.compiler.batch.ClasspathJar
{
  private java.nio.file.FileSystem fs;
    descriptor: Ljava/nio/file/FileSystem;
    flags: (0x0002) ACC_PRIVATE

  java.nio.file.Path releasePath;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0000) 

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

  public void <init>(java.io.File, boolean, org.eclipse.jdt.internal.compiler.env.AccessRuleSet, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
        start local 1 // java.io.File file
        start local 2 // boolean closeZipFileAtEnd
        start local 3 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        start local 4 // java.lang.String destinationPath
        start local 5 // java.lang.String compliance
         0: .line 36
            aload 0 /* this */
            aload 1 /* file */
            iload 2 /* closeZipFileAtEnd */
            aload 3 /* accessRuleSet */
            aload 4 /* destinationPath */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJar.<init>:(Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;)V
         1: .line 30
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.fs:Ljava/nio/file/FileSystem;
         2: .line 31
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
         3: .line 32
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.compliance:Ljava/lang/String;
         4: .line 37
            aload 0 /* this */
            aload 5 /* compliance */
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.compliance:Ljava/lang/String;
         5: .line 38
            return
        end local 5 // java.lang.String compliance
        end local 4 // java.lang.String destinationPath
        end local 3 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        end local 2 // boolean closeZipFileAtEnd
        end local 1 // java.io.File file
        end local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lorg/eclipse/jdt/internal/compiler/batch/ClasspathMultiReleaseJar;
            0    6     1               file  Ljava/io/File;
            0    6     2  closeZipFileAtEnd  Z
            0    6     3      accessRuleSet  Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
            0    6     4    destinationPath  Ljava/lang/String;
            0    6     5         compliance  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      file               
      closeZipFileAtEnd  
      accessRuleSet      
      destinationPath    
      compliance         

  public void initialize();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
         0: .line 41
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJar.initialize:()V
         1: .line 42
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.file:Ljava/io/File;
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            astore 1 /* t */
        start local 1 // java.net.URI t
         2: .line 43
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.file:Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            ifeq 15
         3: .line 44
            new java.lang.StringBuilder
            dup
            ldc "jar:file:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* t */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
            astore 2 /* uri */
        start local 2 // java.net.URI uri
         4: .line 46
            aload 0 /* this */
            aload 2 /* uri */
            invokestatic java.nio.file.FileSystems.getFileSystem:(Ljava/net/URI;)Ljava/nio/file/FileSystem;
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.fs:Ljava/nio/file/FileSystem;
         5: .line 47
            goto 7
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar java.net.URI java.net.URI
      StackMap stack: java.nio.file.FileSystemNotFoundException
         6: pop
         7: .line 50
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.fs:Ljava/nio/file/FileSystem;
            ifnonnull 12
         8: .line 51
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* env */
        start local 3 // java.util.HashMap env
         9: .line 53
            aload 0 /* this */
            aload 2 /* uri */
            aload 3 /* env */
            invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/net/URI;Ljava/util/Map;)Ljava/nio/file/FileSystem;
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.fs:Ljava/nio/file/FileSystem;
        10: .line 54
            goto 12
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar java.net.URI java.net.URI java.util.HashMap
      StackMap stack: java.io.IOException
        11: pop
        end local 3 // java.util.HashMap env
        12: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.fs:Ljava/nio/file/FileSystem;
            ldc "/"
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "META-INF"
            aastore
            dup
            iconst_1
            ldc "versions"
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.compliance:Ljava/lang/String;
            aastore
            invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
        13: .line 59
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 15
        14: .line 60
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
        end local 2 // java.net.URI uri
        15: .line 63
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.net.URI t
        end local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/eclipse/jdt/internal/compiler/batch/ClasspathMultiReleaseJar;
            2   16     1     t  Ljava/net/URI;
            4   15     2   uri  Ljava/net/URI;
            9   12     3   env  Ljava/util/HashMap<Ljava/lang/String;*>;
      Exception table:
        from    to  target  type
           4     5       6  Class java.nio.file.FileSystemNotFoundException
           9    10      11  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  public synchronized char[][] getModulesDeclaringPackage(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[[C
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
        start local 1 // java.lang.String qualifiedPackageName
        start local 2 // java.lang.String moduleName
         0: .line 67
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
            ifnonnull 2
         1: .line 68
            aload 0 /* this */
            aload 1 /* qualifiedPackageName */
            aload 2 /* moduleName */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJar.getModulesDeclaringPackage:(Ljava/lang/String;Ljava/lang/String;)[[C
            areturn
         2: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.packageCache:Ljava/util/Set;
            ifnull 4
         3: .line 71
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.packageCache:Ljava/util/Set;
            aload 1 /* qualifiedPackageName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            invokevirtual org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.singletonModuleNameIf:(Z)[[C
            areturn
         4: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.HashSet
            dup
            bipush 41
            invokespecial java.util.HashSet.<init>:(I)V
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.packageCache:Ljava/util/Set;
         5: .line 74
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.packageCache:Ljava/util/Set;
            getstatic org.eclipse.jdt.internal.compiler.util.Util.EMPTY_STRING:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 76
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.zipFile:Ljava/util/zip/ZipFile;
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 3 /* e */
        start local 3 // java.util.Enumeration e
         7: goto 10
         8: .line 77
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 4 /* fileName */
        start local 4 // java.lang.String fileName
         9: .line 78
            aload 0 /* this */
            aload 4 /* fileName */
            iconst_0
            invokevirtual org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.addToPackageCache:(Ljava/lang/String;Z)V
        end local 4 // java.lang.String fileName
        10: .line 76
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 8
        end local 3 // java.util.Enumeration e
        11: .line 81
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
            ifnull 26
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 26
        12: .line 83
            aconst_null
            astore 3
            aconst_null
            astore 4
        13: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
            astore 5 /* stream */
        start local 5 // java.nio.file.DirectoryStream stream
        14: .line 84
            aload 5 /* stream */
            invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
            astore 7
            goto 17
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
      StackMap stack:
        15: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 6 /* subdir */
        start local 6 // java.nio.file.Path subdir
        16: .line 85
            aload 6 /* subdir */
            new org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar$1
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar$1.<init>:(Lorg/eclipse/jdt/internal/compiler/batch/ClasspathMultiReleaseJar;)V
            invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
            pop
        end local 6 // java.nio.file.Path subdir
        17: .line 84
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 111
            aload 5 /* stream */
            ifnull 26
            aload 5 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 26
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
      StackMap stack: java.lang.Throwable
        19: astore 3
            aload 5 /* stream */
            ifnull 20
            aload 5 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 5 // java.nio.file.DirectoryStream stream
      StackMap locals:
      StackMap stack:
        20: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 4
            aload 3
            ifnonnull 22
            aload 4
            astore 3
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 3
            aload 4
            if_acmpeq 23
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 3
            athrow
        24: .line 113
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar java.lang.String java.lang.String
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        25: .line 114
            aload 3 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 3 // java.lang.Exception e
        26: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.packageCache:Ljava/util/Set;
            aload 1 /* qualifiedPackageName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            invokevirtual org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.singletonModuleNameIf:(Z)[[C
            areturn
        end local 2 // java.lang.String moduleName
        end local 1 // java.lang.String qualifiedPackageName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   27     0                  this  Lorg/eclipse/jdt/internal/compiler/batch/ClasspathMultiReleaseJar;
            0   27     1  qualifiedPackageName  Ljava/lang/String;
            0   27     2            moduleName  Ljava/lang/String;
            7   11     3                     e  Ljava/util/Enumeration;
            9   10     4              fileName  Ljava/lang/String;
           14   20     5                stream  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
           16   17     6                subdir  Ljava/nio/file/Path;
           25   26     3                     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          14    18      19  any
          13    21      21  any
          11    24      24  Class java.lang.Exception
    MethodParameters:
                      Name  Flags
      qualifiedPackageName  
      moduleName            

  public org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer findClass(char[], java.lang.String, java.lang.String, java.lang.String, boolean);
    descriptor: ([CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
        start local 1 // char[] binaryFileName
        start local 2 // java.lang.String qualifiedPackageName
        start local 3 // java.lang.String moduleName
        start local 4 // java.lang.String qualifiedBinaryFileName
        start local 5 // boolean asBinaryOnly
         0: .line 121
            aload 0 /* this */
            aload 2 /* qualifiedPackageName */
            aload 3 /* moduleName */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.isPackage:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 1
            aconst_null
            areturn
         1: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
            ifnull 38
         2: .line 124
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.releasePath:Ljava/nio/file/Path;
            aload 4 /* qualifiedBinaryFileName */
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 6 /* p */
        start local 6 // java.nio.file.Path p
         3: .line 125
            aload 6 /* p */
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            astore 7 /* content */
        start local 7 // byte[] content
         4: .line 126
            aconst_null
            astore 8 /* reader */
        start local 8 // org.eclipse.jdt.internal.compiler.env.IBinaryType reader
         5: .line 127
            aload 7 /* content */
            ifnull 7
         6: .line 128
            new org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader
            dup
            aload 7 /* content */
            aload 4 /* qualifiedBinaryFileName */
            invokevirtual java.lang.String.toCharArray:()[C
            invokespecial org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>:([B[C)V
            astore 8 /* reader */
         7: .line 130
      StackMap locals: java.nio.file.Path byte[] org.eclipse.jdt.internal.compiler.env.IBinaryType
      StackMap stack:
            aload 8 /* reader */
            ifnull 38
         8: .line 131
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            ifnonnull 9
            aconst_null
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            invokeinterface org.eclipse.jdt.internal.compiler.env.IModule.name:()[C
      StackMap locals:
      StackMap stack: char[]
        10: astore 9 /* modName */
        start local 9 // char[] modName
        11: .line 132
            aload 8 /* reader */
            instanceof org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader
            ifeq 16
        12: .line 133
            aload 8 /* reader */
            checkcast org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader
            astore 10 /* classReader */
        start local 10 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classReader
        13: .line 134
            aload 10 /* classReader */
            getfield org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.moduleName:[C
            ifnonnull 15
        14: .line 135
            aload 10 /* classReader */
            aload 9 /* modName */
            putfield org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.moduleName:[C
            goto 16
        15: .line 137
      StackMap locals: char[] org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader
      StackMap stack:
            aload 10 /* classReader */
            getfield org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.moduleName:[C
            astore 9 /* modName */
        end local 10 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classReader
        16: .line 139
      StackMap locals:
      StackMap stack:
            aload 4 /* qualifiedBinaryFileName */
            iconst_0
            aload 4 /* qualifiedBinaryFileName */
            invokevirtual java.lang.String.length:()I
            getstatic org.eclipse.jdt.internal.compiler.util.SuffixConstants.SUFFIX_CLASS:[C
            arraylength
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 10 /* fileNameWithoutExtension */
        start local 10 // java.lang.String fileNameWithoutExtension
        17: .line 141
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.annotationPaths:Ljava/util/List;
            ifnull 29
        18: .line 142
            aload 4 /* qualifiedBinaryFileName */
            iconst_0
            aload 4 /* qualifiedBinaryFileName */
            invokevirtual java.lang.String.length:()I
            ldc "CLASS"
            invokevirtual java.lang.String.length:()I
            isub
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* qualifiedClassName */
        start local 11 // java.lang.String qualifiedClassName
        19: .line 143
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.annotationPaths:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 27
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar char[] java.lang.String java.lang.String java.lang.String int java.nio.file.Path byte[] org.eclipse.jdt.internal.compiler.env.IBinaryType char[] java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        20: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* annotationPath */
        start local 12 // java.lang.String annotationPath
        21: .line 145
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.annotationZipFile:Ljava/util/zip/ZipFile;
            ifnonnull 23
        22: .line 146
            aload 0 /* this */
            aload 12 /* annotationPath */
            aconst_null
            invokestatic org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator.getAnnotationZipFile:(Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationDecorator$ZipFileProducer;)Ljava/util/zip/ZipFile;
            putfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.annotationZipFile:Ljava/util/zip/ZipFile;
        23: .line 148
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar char[] java.lang.String java.lang.String java.lang.String int java.nio.file.Path byte[] org.eclipse.jdt.internal.compiler.env.IBinaryType char[] java.lang.String java.lang.String java.lang.String java.util.Iterator
      StackMap stack:
            aload 8 /* reader */
            aload 12 /* annotationPath */
            aload 11 /* qualifiedClassName */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.annotationZipFile:Ljava/util/zip/ZipFile;
            invokestatic org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator.create:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;Ljava/lang/String;Ljava/lang/String;Ljava/util/zip/ZipFile;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
            astore 8 /* reader */
        24: .line 150
            aload 8 /* reader */
            invokeinterface org.eclipse.jdt.internal.compiler.env.IBinaryType.getExternalAnnotationStatus:()Lorg/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding$ExternalAnnotationStatus;
            getstatic org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding$ExternalAnnotationStatus.TYPE_IS_ANNOTATED:Lorg/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding$ExternalAnnotationStatus;
            if_acmpne 27
        25: .line 151
            goto 29
        26: .line 153
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        end local 12 // java.lang.String annotationPath
        27: .line 143
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar char[] java.lang.String java.lang.String java.lang.String int java.nio.file.Path byte[] org.eclipse.jdt.internal.compiler.env.IBinaryType char[] java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        28: .line 158
            new org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator
            dup
            aload 8 /* reader */
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator.<init>:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;Lorg/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationProvider;)V
            astore 8 /* reader */
        end local 11 // java.lang.String qualifiedClassName
        29: .line 160
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar char[] java.lang.String java.lang.String java.lang.String int java.nio.file.Path byte[] org.eclipse.jdt.internal.compiler.env.IBinaryType char[] java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.accessRuleSet:Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
            ifnonnull 32
        30: .line 161
            new org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
            dup
            aload 8 /* reader */
            aconst_null
            aload 9 /* modName */
            invokespecial org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.<init>:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;Lorg/eclipse/jdt/internal/compiler/env/AccessRestriction;[C)V
        31: areturn
        32: .line 162
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
            dup
            aload 8 /* reader */
        33: .line 163
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.accessRuleSet:Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
            aload 10 /* fileNameWithoutExtension */
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.compiler.env.AccessRuleSet.getViolatedRestriction:([C)Lorg/eclipse/jdt/internal/compiler/env/AccessRestriction;
        34: .line 164
            aload 9 /* modName */
        35: .line 162
            invokespecial org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.<init>:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;Lorg/eclipse/jdt/internal/compiler/env/AccessRestriction;[C)V
        36: areturn
        end local 10 // java.lang.String fileNameWithoutExtension
        end local 9 // char[] modName
        end local 8 // org.eclipse.jdt.internal.compiler.env.IBinaryType reader
        end local 7 // byte[] content
        end local 6 // java.nio.file.Path p
        37: .line 166
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar char[] java.lang.String java.lang.String java.lang.String int
      StackMap stack: java.lang.Exception
            pop
        38: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* binaryFileName */
            aload 2 /* qualifiedPackageName */
            aload 3 /* moduleName */
            aload 4 /* qualifiedBinaryFileName */
            iload 5 /* asBinaryOnly */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJar.findClass:([CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            areturn
        end local 5 // boolean asBinaryOnly
        end local 4 // java.lang.String qualifiedBinaryFileName
        end local 3 // java.lang.String moduleName
        end local 2 // java.lang.String qualifiedPackageName
        end local 1 // char[] binaryFileName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   39     0                      this  Lorg/eclipse/jdt/internal/compiler/batch/ClasspathMultiReleaseJar;
            0   39     1            binaryFileName  [C
            0   39     2      qualifiedPackageName  Ljava/lang/String;
            0   39     3                moduleName  Ljava/lang/String;
            0   39     4   qualifiedBinaryFileName  Ljava/lang/String;
            0   39     5              asBinaryOnly  Z
            3   37     6                         p  Ljava/nio/file/Path;
            4   37     7                   content  [B
            5   37     8                    reader  Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
           11   37     9                   modName  [C
           13   16    10               classReader  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
           17   37    10  fileNameWithoutExtension  Ljava/lang/String;
           19   29    11        qualifiedClassName  Ljava/lang/String;
           21   27    12            annotationPath  Ljava/lang/String;
      Exception table:
        from    to  target  type
          21    25      26  Class java.io.IOException
           2    31      37  Class java.io.IOException
          32    36      37  Class java.io.IOException
           2    31      37  Class org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
          32    36      37  Class org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
    MethodParameters:
                         Name  Flags
      binaryFileName           
      qualifiedPackageName     
      moduleName               
      qualifiedBinaryFileName  
      asBinaryOnly             
}
SourceFile: "ClasspathMultiReleaseJar.java"
NestMembers:
  org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar$1
InnerClasses:
  org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar$1
  public abstract ZipFileProducer = org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator$ZipFileProducer of org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator
  public final ExternalAnnotationStatus = org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding$ExternalAnnotationStatus of org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding