public class org.apache.bcel.util.ClassPath implements java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.bcel.util.ClassPath
  super_class: java.lang.Object
{
  private static final java.io.FilenameFilter ARCHIVE_FILTER;
    descriptor: Ljava/io/FilenameFilter;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.io.FilenameFilter MODULES_FILTER;
    descriptor: Ljava/io/FilenameFilter;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final org.apache.bcel.util.ClassPath SYSTEM_CLASS_PATH;
    descriptor: Lorg/apache/bcel/util/ClassPath;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final java.lang.String classPath;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.apache.bcel.util.ClassPath parent;
    descriptor: Lorg/apache/bcel/util/ClassPath;
    flags: (0x0002) ACC_PRIVATE

  private final org.apache.bcel.util.ClassPath$AbstractPathEntry[] paths;
    descriptor: [Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 433
            invokedynamic accept()Ljava/io/FilenameFilter;
              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/io/File;Ljava/lang/String;)Z
                  org/apache/bcel/util/ClassPath.lambda$0(Ljava/io/File;Ljava/lang/String;)Z (6)
                  (Ljava/io/File;Ljava/lang/String;)Z
            putstatic org.apache.bcel.util.ClassPath.ARCHIVE_FILTER:Ljava/io/FilenameFilter;
         1: .line 438
            invokedynamic accept()Ljava/io/FilenameFilter;
              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/io/File;Ljava/lang/String;)Z
                  org/apache/bcel/util/ClassPath.lambda$1(Ljava/io/File;Ljava/lang/String;)Z (6)
                  (Ljava/io/File;Ljava/lang/String;)Z
            putstatic org.apache.bcel.util.ClassPath.MODULES_FILTER:Ljava/io/FilenameFilter;
         2: .line 443
            new org.apache.bcel.util.ClassPath
            dup
            invokestatic org.apache.bcel.util.ClassPath.getClassPath:()Ljava/lang/String;
            invokespecial org.apache.bcel.util.ClassPath.<init>:(Ljava/lang/String;)V
            putstatic org.apache.bcel.util.ClassPath.SYSTEM_CLASS_PATH:Lorg/apache/bcel/util/ClassPath;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void addJdkModules(java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.lang.String javaHome
        start local 1 // java.util.List list
         0: .line 446
            ldc "java.modules.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* modulesPath */
        start local 2 // java.lang.String modulesPath
         1: .line 447
            aload 2 /* modulesPath */
            ifnull 2
            aload 2 /* modulesPath */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 3
         2: .line 449
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* javaHome */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "jmods"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* modulesPath */
         3: .line 451
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 2 /* modulesPath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* modulesDir */
        start local 3 // java.io.File modulesDir
         4: .line 452
            aload 3 /* modulesDir */
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         5: .line 453
            aload 3 /* modulesDir */
            getstatic org.apache.bcel.util.ClassPath.MODULES_FILTER:Ljava/io/FilenameFilter;
            invokevirtual java.io.File.list:(Ljava/io/FilenameFilter;)[Ljava/lang/String;
            astore 4 /* modules */
        start local 4 // java.lang.String[] modules
         6: .line 454
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 455
      StackMap locals: java.io.File java.lang.String[] int
      StackMap stack:
            aload 1 /* list */
            new java.lang.StringBuilder
            dup
            aload 3 /* modulesDir */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 4 /* modules */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 454
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 4 /* modules */
            arraylength
            if_icmplt 8
        end local 5 // int i
        end local 4 // java.lang.String[] modules
        11: .line 458
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.File modulesDir
        end local 2 // java.lang.String modulesPath
        end local 1 // java.util.List list
        end local 0 // java.lang.String javaHome
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0     javaHome  Ljava/lang/String;
            0   12     1         list  Ljava/util/List<Ljava/lang/String;>;
            1   12     2  modulesPath  Ljava/lang/String;
            4   12     3   modulesDir  Ljava/io/File;
            6   11     4      modules  [Ljava/lang/String;
            7   11     5            i  I
    Signature: (Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      javaHome  final
      list      final

  public static java.lang.String getClassPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=0
         0: .line 468
            ldc "java.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* classPathProp */
        start local 0 // java.lang.String classPathProp
         1: .line 469
            ldc "sun.boot.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* bootClassPathProp */
        start local 1 // java.lang.String bootClassPathProp
         2: .line 470
            ldc "java.ext.dirs"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* extDirs */
        start local 2 // java.lang.String extDirs
         3: .line 475
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* javaHome */
        start local 3 // java.lang.String javaHome
         4: .line 476
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* list */
        start local 4 // java.util.List list
         5: .line 479
            aload 3 /* javaHome */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            ldc "lib/modules"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* modulesPath */
        start local 5 // java.nio.file.Path modulesPath
         6: .line 480
            aload 5 /* modulesPath */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 8
            aload 5 /* modulesPath */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 8
         7: .line 481
            aload 4 /* list */
            aload 5 /* modulesPath */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 484
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.nio.file.Path
      StackMap stack:
            aload 3 /* javaHome */
            aload 4 /* list */
            invokestatic org.apache.bcel.util.ClassPath.addJdkModules:(Ljava/lang/String;Ljava/util/List;)V
         9: .line 486
            aload 0 /* classPathProp */
            aload 4 /* list */
            invokestatic org.apache.bcel.util.ClassPath.getPathComponents:(Ljava/lang/String;Ljava/util/List;)V
        10: .line 487
            aload 1 /* bootClassPathProp */
            aload 4 /* list */
            invokestatic org.apache.bcel.util.ClassPath.getPathComponents:(Ljava/lang/String;Ljava/util/List;)V
        11: .line 488
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* dirs */
        start local 6 // java.util.List dirs
        12: .line 489
            aload 2 /* extDirs */
            aload 6 /* dirs */
            invokestatic org.apache.bcel.util.ClassPath.getPathComponents:(Ljava/lang/String;Ljava/util/List;)V
        13: .line 490
            aload 6 /* dirs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 23
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.nio.file.Path java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* d */
        start local 7 // java.lang.String d
        15: .line 491
            new java.io.File
            dup
            aload 7 /* d */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 9 /* ext_dir */
        start local 9 // java.io.File ext_dir
        16: .line 492
            aload 9 /* ext_dir */
            getstatic org.apache.bcel.util.ClassPath.ARCHIVE_FILTER:Ljava/io/FilenameFilter;
            invokevirtual java.io.File.list:(Ljava/io/FilenameFilter;)[Ljava/lang/String;
            astore 10 /* extensions */
        start local 10 // java.lang.String[] extensions
        17: .line 493
            aload 10 /* extensions */
            ifnull 23
        18: .line 494
            aload 10 /* extensions */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 22
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.nio.file.Path java.util.List java.lang.String java.util.Iterator java.io.File java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        19: aload 14
            iload 12
            aaload
            astore 11 /* extension */
        start local 11 // java.lang.String extension
        20: .line 495
            aload 4 /* list */
            new java.lang.StringBuilder
            dup
            aload 9 /* ext_dir */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 11 /* extension */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.String extension
        21: .line 494
            iinc 12 1
      StackMap locals:
      StackMap stack:
        22: iload 12
            iload 13
            if_icmplt 19
        end local 10 // java.lang.String[] extensions
        end local 9 // java.io.File ext_dir
        end local 7 // java.lang.String d
        23: .line 490
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.nio.file.Path java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        24: .line 500
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* buf */
        start local 7 // java.lang.StringBuilder buf
        25: .line 501
            ldc ""
            astore 8 /* separator */
        start local 8 // java.lang.String separator
        26: .line 502
            aload 4 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 31
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.util.List java.nio.file.Path java.util.List java.lang.StringBuilder java.lang.String top java.util.Iterator
      StackMap stack:
        27: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* path */
        start local 9 // java.lang.String path
        28: .line 503
            aload 7 /* buf */
            aload 8 /* separator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 504
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            astore 8 /* separator */
        30: .line 505
            aload 7 /* buf */
            aload 9 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // java.lang.String path
        31: .line 502
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        32: .line 507
            aload 7 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            areturn
        end local 8 // java.lang.String separator
        end local 7 // java.lang.StringBuilder buf
        end local 6 // java.util.List dirs
        end local 5 // java.nio.file.Path modulesPath
        end local 4 // java.util.List list
        end local 3 // java.lang.String javaHome
        end local 2 // java.lang.String extDirs
        end local 1 // java.lang.String bootClassPathProp
        end local 0 // java.lang.String classPathProp
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            1   33     0      classPathProp  Ljava/lang/String;
            2   33     1  bootClassPathProp  Ljava/lang/String;
            3   33     2            extDirs  Ljava/lang/String;
            4   33     3           javaHome  Ljava/lang/String;
            5   33     4               list  Ljava/util/List<Ljava/lang/String;>;
            6   33     5        modulesPath  Ljava/nio/file/Path;
           12   33     6               dirs  Ljava/util/List<Ljava/lang/String;>;
           15   23     7                  d  Ljava/lang/String;
           16   23     9            ext_dir  Ljava/io/File;
           17   23    10         extensions  [Ljava/lang/String;
           20   21    11          extension  Ljava/lang/String;
           25   33     7                buf  Ljava/lang/StringBuilder;
           26   33     8          separator  Ljava/lang/String;
           28   31     9               path  Ljava/lang/String;

  private static void getPathComponents(java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.lang.String path
        start local 1 // java.util.List list
         0: .line 511
            aload 0 /* path */
            ifnull 8
         1: .line 512
            new java.util.StringTokenizer
            dup
            aload 0 /* path */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* tokenizer */
        start local 2 // java.util.StringTokenizer tokenizer
         2: .line 513
            goto 7
         3: .line 514
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 2 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         4: .line 515
            new java.io.File
            dup
            aload 3 /* name */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* file */
        start local 4 // java.io.File file
         5: .line 516
            aload 4 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 7
         6: .line 517
            aload 1 /* list */
            aload 3 /* name */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.io.File file
        end local 3 // java.lang.String name
         7: .line 513
      StackMap locals:
      StackMap stack:
            aload 2 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 3
        end local 2 // java.util.StringTokenizer tokenizer
         8: .line 521
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List list
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       path  Ljava/lang/String;
            0    9     1       list  Ljava/util/List<Ljava/lang/String;>;
            2    8     2  tokenizer  Ljava/util/StringTokenizer;
            4    7     3       name  Ljava/lang/String;
            5    7     4       file  Ljava/io/File;
    Signature: (Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      path  final
      list  final

  static java.lang.String packageToFolder(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 524
            aload 0 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.bcel.util.ClassPath this
         0: .line 540
            aload 0 /* this */
            invokestatic org.apache.bcel.util.ClassPath.getClassPath:()Ljava/lang/String;
            invokespecial org.apache.bcel.util.ClassPath.<init>:(Ljava/lang/String;)V
         1: .line 541
            return
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/bcel/util/ClassPath;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void <init>(org.apache.bcel.util.ClassPath, java.lang.String);
    descriptor: (Lorg/apache/bcel/util/ClassPath;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // org.apache.bcel.util.ClassPath parent
        start local 2 // java.lang.String classPath
         0: .line 544
            aload 0 /* this */
            aload 2 /* classPath */
            invokespecial org.apache.bcel.util.ClassPath.<init>:(Ljava/lang/String;)V
         1: .line 545
            aload 0 /* this */
            aload 1 /* parent */
            putfield org.apache.bcel.util.ClassPath.parent:Lorg/apache/bcel/util/ClassPath;
         2: .line 546
            return
        end local 2 // java.lang.String classPath
        end local 1 // org.apache.bcel.util.ClassPath parent
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/apache/bcel/util/ClassPath;
            0    3     1     parent  Lorg/apache/bcel/util/ClassPath;
            0    3     2  classPath  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      parent     final
      classPath  final

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String classPath
         0: .line 554
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 555
            aload 0 /* this */
            aload 1 /* classPath */
            putfield org.apache.bcel.util.ClassPath.classPath:Ljava/lang/String;
         2: .line 556
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* list */
        start local 2 // java.util.List list
         3: .line 557
            new java.util.StringTokenizer
            dup
            aload 1 /* classPath */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* tokenizer */
        start local 3 // java.util.StringTokenizer tokenizer
         4: goto 23
         5: .line 559
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.util.List java.util.StringTokenizer
      StackMap stack:
            aload 3 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 4 /* path */
        start local 4 // java.lang.String path
         6: .line 560
            aload 4 /* path */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 23
         7: .line 561
            new java.io.File
            dup
            aload 4 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* file */
        start local 5 // java.io.File file
         8: .line 563
            aload 5 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 23
         9: .line 564
            aload 5 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 12
        10: .line 565
            aload 2 /* list */
            new org.apache.bcel.util.ClassPath$Dir
            dup
            aload 4 /* path */
            invokespecial org.apache.bcel.util.ClassPath$Dir.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 566
            goto 23
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
        12: aload 4 /* path */
            ldc ".jmod"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 567
            aload 2 /* list */
            new org.apache.bcel.util.ClassPath$Module
            dup
            new java.util.zip.ZipFile
            dup
            aload 5 /* file */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            invokespecial org.apache.bcel.util.ClassPath$Module.<init>:(Ljava/util/zip/ZipFile;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 568
            goto 23
      StackMap locals:
      StackMap stack:
        15: aload 4 /* path */
            getstatic org.apache.bcel.util.ModularRuntimeImage.MODULES_PATH:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 18
        16: .line 569
            aload 2 /* list */
            new org.apache.bcel.util.ClassPath$JrtModules
            dup
            getstatic org.apache.bcel.util.ModularRuntimeImage.MODULES_PATH:Ljava/lang/String;
            invokespecial org.apache.bcel.util.ClassPath$JrtModules.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 570
            goto 23
        18: .line 571
      StackMap locals:
      StackMap stack:
            aload 2 /* list */
            new org.apache.bcel.util.ClassPath$Jar
            dup
            new java.util.zip.ZipFile
            dup
            aload 5 /* file */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            invokespecial org.apache.bcel.util.ClassPath$Jar.<init>:(Ljava/util/zip/ZipFile;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 574
            goto 23
      StackMap locals:
      StackMap stack: java.io.IOException
        20: astore 6 /* e */
        start local 6 // java.io.IOException e
        21: .line 575
            aload 4 /* path */
            ldc ".zip"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 22
            aload 4 /* path */
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 23
        22: .line 576
      StackMap locals: java.io.IOException
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "CLASSPATH component "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 6 // java.io.IOException e
        end local 5 // java.io.File file
        end local 4 // java.lang.String path
        23: .line 557
      StackMap locals:
      StackMap stack:
            aload 3 /* tokenizer */
        24: .line 558
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 5
        end local 3 // java.util.StringTokenizer tokenizer
        25: .line 581
            aload 0 /* this */
            aload 2 /* list */
            invokeinterface java.util.List.size:()I
            anewarray org.apache.bcel.util.ClassPath$AbstractPathEntry
            putfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
        26: .line 582
            aload 2 /* list */
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        27: .line 583
            return
        end local 2 // java.util.List list
        end local 1 // java.lang.String classPath
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lorg/apache/bcel/util/ClassPath;
            0   28     1  classPath  Ljava/lang/String;
            3   28     2       list  Ljava/util/List<Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;>;
            4   25     3  tokenizer  Ljava/util/StringTokenizer;
            6   23     4       path  Ljava/lang/String;
            8   23     5       file  Ljava/io/File;
           21   23     6          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8    19      20  Class java.io.IOException
    MethodParameters:
           Name  Flags
      classPath  final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.apache.bcel.util.ClassPath this
         0: .line 587
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            ifnull 6
         1: .line 588
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: org.apache.bcel.util.ClassPath top int int org.apache.bcel.util.ClassPath$AbstractPathEntry[]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* path */
        start local 1 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         3: .line 589
            aload 1 /* path */
            invokevirtual org.apache.bcel.util.ClassPath$AbstractPathEntry.close:()V
        end local 1 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         4: .line 588
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 2
         6: .line 593
      StackMap locals: org.apache.bcel.util.ClassPath
      StackMap stack:
            return
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/bcel/util/ClassPath;
            3    4     1  path  Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
    Exceptions:
      throws java.io.IOException

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.Object o
         0: .line 597
            aload 1 /* o */
            instanceof org.apache.bcel.util.ClassPath
            ifeq 3
         1: .line 598
            aload 1 /* o */
            checkcast org.apache.bcel.util.ClassPath
            astore 2 /* cp */
        start local 2 // org.apache.bcel.util.ClassPath cp
         2: .line 599
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.classPath:Ljava/lang/String;
            aload 2 /* cp */
            invokevirtual org.apache.bcel.util.ClassPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.apache.bcel.util.ClassPath cp
         3: .line 601
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/bcel/util/ClassPath;
            0    4     1     o  Ljava/lang/Object;
            2    3     2    cp  Lorg/apache/bcel/util/ClassPath;
    MethodParameters:
      Name  Flags
      o     final

  public byte[] getBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 608
            aload 0 /* this */
            aload 1 /* name */
            ldc ".class"
            invokevirtual org.apache.bcel.util.ClassPath.getBytes:(Ljava/lang/String;Ljava/lang/String;)[B
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/bcel/util/ClassPath;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final

  public byte[] getBytes(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 619
            aconst_null
            astore 3 /* dis */
        start local 3 // java.io.DataInputStream dis
         1: .line 620
            aconst_null
            astore 4
            aconst_null
            astore 5
         2: aload 0 /* this */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.apache.bcel.util.ClassPath.getInputStream:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
            astore 6 /* inputStream */
        start local 6 // java.io.InputStream inputStream
         3: .line 621
            aload 6 /* inputStream */
            ifnonnull 5
         4: .line 622
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Couldn't find: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 624
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.lang.String java.io.DataInputStream java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            new java.io.DataInputStream
            dup
            aload 6 /* inputStream */
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* dis */
         6: .line 625
            aload 6 /* inputStream */
            invokevirtual java.io.InputStream.available:()I
            newarray 8
            astore 7 /* bytes */
        start local 7 // byte[] bytes
         7: .line 626
            aload 3 /* dis */
            aload 7 /* bytes */
            invokevirtual java.io.DataInputStream.readFully:([B)V
         8: .line 627
            aload 7 /* bytes */
            astore 9
         9: .line 628
            aload 6 /* inputStream */
            ifnull 10
            aload 6 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
        10: .line 629
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.lang.String java.io.DataInputStream java.lang.Throwable java.lang.Throwable java.io.InputStream byte[] top byte[]
      StackMap stack:
            aload 3 /* dis */
            ifnull 12
        11: .line 630
            aload 3 /* dis */
            invokevirtual java.io.DataInputStream.close:()V
        12: .line 627
      StackMap locals:
      StackMap stack:
            aload 9
            areturn
        end local 7 // byte[] bytes
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.lang.String java.io.DataInputStream java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        13: astore 4
        14: .line 628
            aload 6 /* inputStream */
            ifnull 15
            aload 6 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream inputStream
      StackMap locals:
      StackMap stack:
        15: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 5
            aload 4
            ifnonnull 17
            aload 5
            astore 4
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 4
            aload 5
            if_acmpeq 18
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.lang.String java.io.DataInputStream
      StackMap stack: java.lang.Throwable
        19: astore 8
        20: .line 629
            aload 3 /* dis */
            ifnull 22
        21: .line 630
            aload 3 /* dis */
            invokevirtual java.io.DataInputStream.close:()V
        22: .line 632
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.lang.String java.io.DataInputStream top top top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        end local 3 // java.io.DataInputStream dis
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lorg/apache/bcel/util/ClassPath;
            0   23     1         name  Ljava/lang/String;
            0   23     2       suffix  Ljava/lang/String;
            1   23     3          dis  Ljava/io/DataInputStream;
            3   15     6  inputStream  Ljava/io/InputStream;
            7   13     7        bytes  [B
      Exception table:
        from    to  target  type
           3     9      13  any
           2    10      16  any
          13    16      16  any
           1    10      19  any
          13    19      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    final
      suffix  final

  public org.apache.bcel.util.ClassPath$ClassFile getClassFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 641
            aload 0 /* this */
            aload 1 /* name */
            ldc ".class"
            invokevirtual org.apache.bcel.util.ClassPath.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/bcel/util/ClassPath;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final

  public org.apache.bcel.util.ClassPath$ClassFile getClassFile(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 652
            aconst_null
            astore 3 /* cf */
        start local 3 // org.apache.bcel.util.ClassPath$ClassFile cf
         1: .line 654
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.parent:Lorg/apache/bcel/util/ClassPath;
            ifnull 3
         2: .line 655
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.parent:Lorg/apache/bcel/util/ClassPath;
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.apache.bcel.util.ClassPath.getClassFileInternal:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
            astore 3 /* cf */
         3: .line 658
      StackMap locals: org.apache.bcel.util.ClassPath$ClassFile
      StackMap stack:
            aload 3 /* cf */
            ifnonnull 5
         4: .line 659
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.apache.bcel.util.ClassPath.getClassFileInternal:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
            astore 3 /* cf */
         5: .line 662
      StackMap locals:
      StackMap stack:
            aload 3 /* cf */
            ifnull 7
         6: .line 663
            aload 3 /* cf */
            areturn
         7: .line 666
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Couldn't find: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.apache.bcel.util.ClassPath$ClassFile cf
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/bcel/util/ClassPath;
            0    8     1    name  Ljava/lang/String;
            0    8     2  suffix  Ljava/lang/String;
            1    8     3      cf  Lorg/apache/bcel/util/ClassPath$ClassFile;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    final
      suffix  final

  private org.apache.bcel.util.ClassPath$ClassFile getClassFileInternal(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 671
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.lang.String top int int org.apache.bcel.util.ClassPath$AbstractPathEntry[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* path */
        start local 3 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         2: .line 672
            aload 3 /* path */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.apache.bcel.util.ClassPath$AbstractPathEntry.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
            astore 7 /* cf */
        start local 7 // org.apache.bcel.util.ClassPath$ClassFile cf
         3: .line 674
            aload 7 /* cf */
            ifnull 5
         4: .line 675
            aload 7 /* cf */
            areturn
        end local 7 // org.apache.bcel.util.ClassPath$ClassFile cf
        end local 3 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         5: .line 671
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 1
         7: .line 679
            aconst_null
            areturn
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/bcel/util/ClassPath;
            0    8     1    name  Ljava/lang/String;
            0    8     2  suffix  Ljava/lang/String;
            2    5     3    path  Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            3    5     7      cf  Lorg/apache/bcel/util/ClassPath$ClassFile;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    final
      suffix  final

  public java.io.InputStream getInputStream(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 688
            aload 0 /* this */
            aload 1 /* name */
            invokestatic org.apache.bcel.util.ClassPath.packageToFolder:(Ljava/lang/String;)Ljava/lang/String;
            ldc ".class"
            invokevirtual org.apache.bcel.util.ClassPath.getInputStream:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/bcel/util/ClassPath;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final

  public java.io.InputStream getInputStream(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 701
            aconst_null
            astore 3 /* inputStream */
        start local 3 // java.io.InputStream inputStream
         1: .line 703
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* inputStream */
         2: .line 704
            goto 4
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.lang.String java.io.InputStream
      StackMap stack: java.lang.Exception
         3: pop
         4: .line 707
      StackMap locals:
      StackMap stack:
            aload 3 /* inputStream */
            ifnull 6
         5: .line 708
            aload 3 /* inputStream */
            areturn
         6: .line 710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.apache.bcel.util.ClassPath.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
            invokeinterface org.apache.bcel.util.ClassPath$ClassFile.getInputStream:()Ljava/io/InputStream;
            areturn
        end local 3 // java.io.InputStream inputStream
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/apache/bcel/util/ClassPath;
            0    7     1         name  Ljava/lang/String;
            0    7     2       suffix  Ljava/lang/String;
            1    7     3  inputStream  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    final
      suffix  final

  public java.lang.String getPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 719
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* index */
        start local 2 // int index
         1: .line 720
            ldc ""
            astore 3 /* suffix */
        start local 3 // java.lang.String suffix
         2: .line 721
            iload 2 /* index */
            ifle 5
         3: .line 722
            aload 1 /* name */
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* suffix */
         4: .line 723
            aload 1 /* name */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* name */
         5: .line 725
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* suffix */
            invokevirtual org.apache.bcel.util.ClassPath.getPath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String suffix
        end local 2 // int index
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/bcel/util/ClassPath;
            0    6     1    name  Ljava/lang/String;
            1    6     2   index  I
            2    6     3  suffix  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String getPath(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 736
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.apache.bcel.util.ClassPath.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/bcel/util/ClassPath$ClassFile;
            invokeinterface org.apache.bcel.util.ClassPath$ClassFile.getPath:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/bcel/util/ClassPath;
            0    1     1    name  Ljava/lang/String;
            0    1     2  suffix  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    final
      suffix  final

  public java.net.URL getResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 746
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String top int int org.apache.bcel.util.ClassPath$AbstractPathEntry[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* path */
        start local 2 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         2: .line 748
            aload 2 /* path */
            aload 1 /* name */
            invokevirtual org.apache.bcel.util.ClassPath$AbstractPathEntry.getResource:(Ljava/lang/String;)Ljava/net/URL;
            dup
            astore 6 /* url */
        start local 6 // java.net.URL url
         3: ifnull 5
         4: .line 749
            aload 6 /* url */
            areturn
        end local 6 // java.net.URL url
        end local 2 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         5: .line 746
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 1
         7: .line 752
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/bcel/util/ClassPath;
            0    8     1  name  Ljava/lang/String;
            2    5     2  path  Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            3    5     6   url  Ljava/net/URL;
    MethodParameters:
      Name  Flags
      name  final

  public java.io.InputStream getResourceAsStream(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 762
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String top int int org.apache.bcel.util.ClassPath$AbstractPathEntry[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* path */
        start local 2 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         2: .line 764
            aload 2 /* path */
            aload 1 /* name */
            invokevirtual org.apache.bcel.util.ClassPath$AbstractPathEntry.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            dup
            astore 6 /* is */
        start local 6 // java.io.InputStream is
         3: ifnull 5
         4: .line 765
            aload 6 /* is */
            areturn
        end local 6 // java.io.InputStream is
        end local 2 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         5: .line 762
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 1
         7: .line 768
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/bcel/util/ClassPath;
            0    8     1  name  Ljava/lang/String;
            2    5     2  path  Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            3    5     6    is  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      name  final

  public java.util.Enumeration<java.net.URL> getResources(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Enumeration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // org.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 778
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 2 /* results */
        start local 2 // java.util.Vector results
         1: .line 779
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.paths:[Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: org.apache.bcel.util.ClassPath java.lang.String java.util.Vector top int int org.apache.bcel.util.ClassPath$AbstractPathEntry[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* path */
        start local 3 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         3: .line 781
            aload 3 /* path */
            aload 1 /* name */
            invokevirtual org.apache.bcel.util.ClassPath$AbstractPathEntry.getResource:(Ljava/lang/String;)Ljava/net/URL;
            dup
            astore 7 /* url */
        start local 7 // java.net.URL url
         4: ifnull 6
         5: .line 782
            aload 2 /* results */
            aload 7 /* url */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.net.URL url
        end local 3 // org.apache.bcel.util.ClassPath$AbstractPathEntry path
         6: .line 779
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 2
         8: .line 785
            aload 2 /* results */
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            areturn
        end local 2 // java.util.Vector results
        end local 1 // java.lang.String name
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/apache/bcel/util/ClassPath;
            0    9     1     name  Ljava/lang/String;
            1    9     2  results  Ljava/util/Vector<Ljava/net/URL;>;
            3    6     3     path  Lorg/apache/bcel/util/ClassPath$AbstractPathEntry;
            4    6     7      url  Ljava/net/URL;
    Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
    MethodParameters:
      Name  Flags
      name  final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.bcel.util.ClassPath this
         0: .line 790
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.parent:Lorg/apache/bcel/util/ClassPath;
            ifnull 2
         1: .line 791
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.classPath:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.parent:Lorg/apache/bcel/util/ClassPath;
            invokevirtual org.apache.bcel.util.ClassPath.hashCode:()I
            iadd
            ireturn
         2: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.classPath:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/bcel/util/ClassPath;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.bcel.util.ClassPath this
         0: .line 801
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.parent:Lorg/apache/bcel/util/ClassPath;
            ifnull 2
         1: .line 802
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.parent:Lorg/apache/bcel/util/ClassPath;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.classPath:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 804
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.bcel.util.ClassPath.classPath:Ljava/lang/String;
            areturn
        end local 0 // org.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/bcel/util/ClassPath;

  private static boolean lambda$0(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.File dir
        start local 1 // java.lang.String name
         0: .line 434
            aload 1 /* name */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 1 /* name */
         1: .line 435
            aload 1 /* name */
            ldc ".zip"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 2
            aload 1 /* name */
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 2
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // java.lang.String name
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   dir  Ljava/io/File;
            0    3     1  name  Ljava/lang/String;

  private static boolean lambda$1(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.File dir
        start local 1 // java.lang.String name
         0: .line 439
            aload 1 /* name */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 1 /* name */
         1: .line 440
            aload 1 /* name */
            ldc ".jmod"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   dir  Ljava/io/File;
            0    2     1  name  Ljava/lang/String;
}
SourceFile: "ClassPath.java"
NestMembers:
  org.apache.bcel.util.ClassPath$AbstractPathEntry  org.apache.bcel.util.ClassPath$AbstractZip  org.apache.bcel.util.ClassPath$AbstractZip$1  org.apache.bcel.util.ClassPath$ClassFile  org.apache.bcel.util.ClassPath$Dir  org.apache.bcel.util.ClassPath$Dir$1  org.apache.bcel.util.ClassPath$Jar  org.apache.bcel.util.ClassPath$JrtModule  org.apache.bcel.util.ClassPath$JrtModule$1  org.apache.bcel.util.ClassPath$JrtModules  org.apache.bcel.util.ClassPath$Module
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private abstract AbstractPathEntry = org.apache.bcel.util.ClassPath$AbstractPathEntry of org.apache.bcel.util.ClassPath
  private abstract AbstractZip = org.apache.bcel.util.ClassPath$AbstractZip of org.apache.bcel.util.ClassPath
  public abstract ClassFile = org.apache.bcel.util.ClassPath$ClassFile of org.apache.bcel.util.ClassPath
  private Dir = org.apache.bcel.util.ClassPath$Dir of org.apache.bcel.util.ClassPath
  private Jar = org.apache.bcel.util.ClassPath$Jar of org.apache.bcel.util.ClassPath
  private JrtModule = org.apache.bcel.util.ClassPath$JrtModule of org.apache.bcel.util.ClassPath
  private JrtModules = org.apache.bcel.util.ClassPath$JrtModules of org.apache.bcel.util.ClassPath
  private Module = org.apache.bcel.util.ClassPath$Module of org.apache.bcel.util.ClassPath