public class com.sun.tools.javap.SourceWriter extends com.sun.tools.javap.InstructionDetailWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javap.SourceWriter
  super_class: com.sun.tools.javap.InstructionDetailWriter
{
  private javax.tools.JavaFileManager fileManager;
    descriptor: Ljavax/tools/JavaFileManager;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.classfile.ClassFile classFile;
    descriptor: Lcom/sun/tools/classfile/ClassFile;
    flags: (0x0002) ACC_PRIVATE

  private java.util.SortedMap<java.lang.Integer, java.util.SortedSet<java.lang.Integer>> lineMap;
    descriptor: Ljava/util/SortedMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/SortedMap<Ljava/lang/Integer;Ljava/util/SortedSet<Ljava/lang/Integer;>;>;

  private java.util.List<java.lang.Integer> lineList;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/Integer;>;

  private java.lang.String[] sourceLines;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  static com.sun.tools.javap.SourceWriter instance(com.sun.tools.javap.Context);
    descriptor: (Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/SourceWriter;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javap.Context context
         0: .line 62
            aload 0 /* context */
            ldc Lcom/sun/tools/javap/SourceWriter;
            invokevirtual com.sun.tools.javap.Context.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.sun.tools.javap.SourceWriter
            astore 1 /* instance */
        start local 1 // com.sun.tools.javap.SourceWriter instance
         1: .line 63
            aload 1 /* instance */
            ifnonnull 3
         2: .line 64
            new com.sun.tools.javap.SourceWriter
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javap.SourceWriter.<init>:(Lcom/sun/tools/javap/Context;)V
            astore 1 /* instance */
         3: .line 65
      StackMap locals: com.sun.tools.javap.SourceWriter
      StackMap stack:
            aload 1 /* instance */
            areturn
        end local 1 // com.sun.tools.javap.SourceWriter instance
        end local 0 // com.sun.tools.javap.Context context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lcom/sun/tools/javap/Context;
            1    4     1  instance  Lcom/sun/tools/javap/SourceWriter;
    MethodParameters:
         Name  Flags
      context  

  protected void <init>(com.sun.tools.javap.Context);
    descriptor: (Lcom/sun/tools/javap/Context;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // com.sun.tools.javap.Context context
         0: .line 69
            aload 0 /* this */
            aload 1 /* context */
            invokespecial com.sun.tools.javap.InstructionDetailWriter.<init>:(Lcom/sun/tools/javap/Context;)V
         1: .line 70
            aload 1 /* context */
            ldc Lcom/sun/tools/javap/SourceWriter;
            aload 0 /* this */
            invokevirtual com.sun.tools.javap.Context.put:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 71
            return
        end local 1 // com.sun.tools.javap.Context context
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/sun/tools/javap/SourceWriter;
            0    3     1  context  Lcom/sun/tools/javap/Context;
    MethodParameters:
         Name  Flags
      context  

  void setFileManager(javax.tools.JavaFileManager);
    descriptor: (Ljavax/tools/JavaFileManager;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // javax.tools.JavaFileManager fileManager
         0: .line 74
            aload 0 /* this */
            aload 1 /* fileManager */
            putfield com.sun.tools.javap.SourceWriter.fileManager:Ljavax/tools/JavaFileManager;
         1: .line 75
            return
        end local 1 // javax.tools.JavaFileManager fileManager
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/sun/tools/javap/SourceWriter;
            0    2     1  fileManager  Ljavax/tools/JavaFileManager;
    MethodParameters:
             Name  Flags
      fileManager  

  public void reset(com.sun.tools.classfile.ClassFile, com.sun.tools.classfile.Code_attribute);
    descriptor: (Lcom/sun/tools/classfile/ClassFile;Lcom/sun/tools/classfile/Code_attribute;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // com.sun.tools.classfile.ClassFile cf
        start local 2 // com.sun.tools.classfile.Code_attribute attr
         0: .line 78
            aload 0 /* this */
            aload 1 /* cf */
            invokevirtual com.sun.tools.javap.SourceWriter.setSource:(Lcom/sun/tools/classfile/ClassFile;)V
         1: .line 79
            aload 0 /* this */
            aload 2 /* attr */
            invokevirtual com.sun.tools.javap.SourceWriter.setLineMap:(Lcom/sun/tools/classfile/Code_attribute;)V
         2: .line 80
            return
        end local 2 // com.sun.tools.classfile.Code_attribute attr
        end local 1 // com.sun.tools.classfile.ClassFile cf
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javap/SourceWriter;
            0    3     1    cf  Lcom/sun/tools/classfile/ClassFile;
            0    3     2  attr  Lcom/sun/tools/classfile/Code_attribute;
    MethodParameters:
      Name  Flags
      cf    
      attr  

  public void writeDetails(com.sun.tools.classfile.Instruction);
    descriptor: (Lcom/sun/tools/classfile/Instruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // com.sun.tools.classfile.Instruction instr
         0: .line 83
            aload 0 /* this */
            bipush 40
            invokevirtual com.sun.tools.javap.SourceWriter.space:(I)Ljava/lang/String;
            astore 2 /* indent */
        start local 2 // java.lang.String indent
         1: .line 84
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.lineMap:Ljava/util/SortedMap;
            aload 1 /* instr */
            invokevirtual com.sun.tools.classfile.Instruction.getPC:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.SortedMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* lines */
        start local 3 // java.util.Set lines
         2: .line 85
            aload 3 /* lines */
            ifnull 21
         3: .line 86
            aload 3 /* lines */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Instruction java.lang.String java.util.Set top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* line */
        start local 4 // int line
         5: .line 87
            aload 0 /* this */
            aload 2 /* indent */
            invokevirtual com.sun.tools.javap.SourceWriter.print:(Ljava/lang/String;)V
         6: .line 88
            aload 0 /* this */
            ldc " %4d "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 4 /* line */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.SourceWriter.print:(Ljava/lang/String;)V
         7: .line 89
            iload 4 /* line */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.sourceLines:[Ljava/lang/String;
            arraylength
            if_icmpge 9
         8: .line 90
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.sourceLines:[Ljava/lang/String;
            iload 4 /* line */
            aaload
            invokevirtual com.sun.tools.javap.SourceWriter.print:(Ljava/lang/String;)V
         9: .line 91
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Instruction java.lang.String java.util.Set int java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.tools.javap.SourceWriter.println:()V
        10: .line 92
            aload 0 /* this */
            iload 4 /* line */
            invokevirtual com.sun.tools.javap.SourceWriter.nextLine:(I)I
            istore 6 /* nextLine */
        start local 6 // int nextLine
        11: .line 93
            iload 4 /* line */
            iconst_1
            iadd
            istore 7 /* i */
        start local 7 // int i
        12: goto 19
        13: .line 94
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* indent */
            invokevirtual com.sun.tools.javap.SourceWriter.print:(Ljava/lang/String;)V
        14: .line 95
            aload 0 /* this */
            ldc "(%4d)"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 7 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.SourceWriter.print:(Ljava/lang/String;)V
        15: .line 96
            iload 7 /* i */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.sourceLines:[Ljava/lang/String;
            arraylength
            if_icmpge 17
        16: .line 97
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.sourceLines:[Ljava/lang/String;
            iload 7 /* i */
            aaload
            invokevirtual com.sun.tools.javap.SourceWriter.print:(Ljava/lang/String;)V
        17: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.tools.javap.SourceWriter.println:()V
        18: .line 93
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 7 /* i */
            iload 6 /* nextLine */
            if_icmplt 13
        end local 7 // int i
        end local 6 // int nextLine
        end local 4 // int line
        20: .line 86
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Instruction java.lang.String java.util.Set top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        21: .line 102
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Instruction java.lang.String java.util.Set
      StackMap stack:
            return
        end local 3 // java.util.Set lines
        end local 2 // java.lang.String indent
        end local 1 // com.sun.tools.classfile.Instruction instr
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lcom/sun/tools/javap/SourceWriter;
            0   22     1     instr  Lcom/sun/tools/classfile/Instruction;
            1   22     2    indent  Ljava/lang/String;
            2   22     3     lines  Ljava/util/Set<Ljava/lang/Integer;>;
            5   20     4      line  I
           11   20     6  nextLine  I
           12   20     7         i  I
    MethodParameters:
       Name  Flags
      instr  

  public boolean hasSource();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javap.SourceWriter this
         0: .line 105
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.sourceLines:[Ljava/lang/String;
            arraylength
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javap/SourceWriter;

  private void setLineMap(com.sun.tools.classfile.Code_attribute);
    descriptor: (Lcom/sun/tools/classfile/Code_attribute;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=14, args_size=2
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // com.sun.tools.classfile.Code_attribute attr
         0: .line 109
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 2 /* map */
        start local 2 // java.util.SortedMap map
         1: .line 110
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 3 /* allLines */
        start local 3 // java.util.SortedSet allLines
         2: .line 111
            aload 1 /* attr */
            getfield com.sun.tools.classfile.Code_attribute.attributes:Lcom/sun/tools/classfile/Attributes;
            invokevirtual com.sun.tools.classfile.Attributes.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Code_attribute java.util.SortedMap java.util.SortedSet top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.classfile.Attribute
            astore 4 /* a */
        start local 4 // com.sun.tools.classfile.Attribute a
         4: .line 112
            aload 4 /* a */
            instanceof com.sun.tools.classfile.LineNumberTable_attribute
            ifeq 18
         5: .line 113
            aload 4 /* a */
            checkcast com.sun.tools.classfile.LineNumberTable_attribute
            astore 6 /* t */
        start local 6 // com.sun.tools.classfile.LineNumberTable_attribute t
         6: .line 114
            aload 6 /* t */
            getfield com.sun.tools.classfile.LineNumberTable_attribute.line_number_table:[Lcom/sun/tools/classfile/LineNumberTable_attribute$Entry;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 17
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Code_attribute java.util.SortedMap java.util.SortedSet com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.LineNumberTable_attribute top int int com.sun.tools.classfile.LineNumberTable_attribute$Entry[]
      StackMap stack:
         7: aload 10
            iload 8
            aaload
            astore 7 /* e */
        start local 7 // com.sun.tools.classfile.LineNumberTable_attribute$Entry e
         8: .line 115
            aload 7 /* e */
            getfield com.sun.tools.classfile.LineNumberTable_attribute$Entry.start_pc:I
            istore 11 /* start_pc */
        start local 11 // int start_pc
         9: .line 116
            aload 7 /* e */
            getfield com.sun.tools.classfile.LineNumberTable_attribute$Entry.line_number:I
            istore 12 /* line */
        start local 12 // int line
        10: .line 117
            aload 2 /* map */
            iload 11 /* start_pc */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.SortedMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.SortedSet
            astore 13 /* pcLines */
        start local 13 // java.util.SortedSet pcLines
        11: .line 118
            aload 13 /* pcLines */
            ifnonnull 14
        12: .line 119
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 13 /* pcLines */
        13: .line 120
            aload 2 /* map */
            iload 11 /* start_pc */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 13 /* pcLines */
            invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 122
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Code_attribute java.util.SortedMap java.util.SortedSet com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.LineNumberTable_attribute com.sun.tools.classfile.LineNumberTable_attribute$Entry int int com.sun.tools.classfile.LineNumberTable_attribute$Entry[] int int java.util.SortedSet
      StackMap stack:
            aload 13 /* pcLines */
            iload 12 /* line */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.SortedSet.add:(Ljava/lang/Object;)Z
            pop
        15: .line 123
            aload 3 /* allLines */
            iload 12 /* line */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.SortedSet.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.util.SortedSet pcLines
        end local 12 // int line
        end local 11 // int start_pc
        end local 7 // com.sun.tools.classfile.LineNumberTable_attribute$Entry e
        16: .line 114
            iinc 8 1
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Code_attribute java.util.SortedMap java.util.SortedSet com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.LineNumberTable_attribute top int int com.sun.tools.classfile.LineNumberTable_attribute$Entry[]
      StackMap stack:
        17: iload 8
            iload 9
            if_icmplt 7
        end local 6 // com.sun.tools.classfile.LineNumberTable_attribute t
        end local 4 // com.sun.tools.classfile.Attribute a
        18: .line 111
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.Code_attribute java.util.SortedMap java.util.SortedSet top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        19: .line 127
            aload 0 /* this */
            aload 2 /* map */
            putfield com.sun.tools.javap.SourceWriter.lineMap:Ljava/util/SortedMap;
        20: .line 128
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 3 /* allLines */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield com.sun.tools.javap.SourceWriter.lineList:Ljava/util/List;
        21: .line 129
            return
        end local 3 // java.util.SortedSet allLines
        end local 2 // java.util.SortedMap map
        end local 1 // com.sun.tools.classfile.Code_attribute attr
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lcom/sun/tools/javap/SourceWriter;
            0   22     1      attr  Lcom/sun/tools/classfile/Code_attribute;
            1   22     2       map  Ljava/util/SortedMap<Ljava/lang/Integer;Ljava/util/SortedSet<Ljava/lang/Integer;>;>;
            2   22     3  allLines  Ljava/util/SortedSet<Ljava/lang/Integer;>;
            4   18     4         a  Lcom/sun/tools/classfile/Attribute;
            6   18     6         t  Lcom/sun/tools/classfile/LineNumberTable_attribute;
            8   16     7         e  Lcom/sun/tools/classfile/LineNumberTable_attribute$Entry;
            9   16    11  start_pc  I
           10   16    12      line  I
           11   16    13   pcLines  Ljava/util/SortedSet<Ljava/lang/Integer;>;
    MethodParameters:
      Name  Flags
      attr  

  private void setSource(com.sun.tools.classfile.ClassFile);
    descriptor: (Lcom/sun/tools/classfile/ClassFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // com.sun.tools.classfile.ClassFile cf
         0: .line 132
            aload 1 /* cf */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.classFile:Lcom/sun/tools/classfile/ClassFile;
            if_acmpeq 3
         1: .line 133
            aload 0 /* this */
            aload 1 /* cf */
            putfield com.sun.tools.javap.SourceWriter.classFile:Lcom/sun/tools/classfile/ClassFile;
         2: .line 134
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* cf */
            invokevirtual com.sun.tools.javap.SourceWriter.readSource:(Lcom/sun/tools/classfile/ClassFile;)Ljava/lang/String;
            invokestatic com.sun.tools.javap.SourceWriter.splitLines:(Ljava/lang/String;)[Ljava/lang/String;
            putfield com.sun.tools.javap.SourceWriter.sourceLines:[Ljava/lang/String;
         3: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.classfile.ClassFile cf
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javap/SourceWriter;
            0    4     1    cf  Lcom/sun/tools/classfile/ClassFile;
    MethodParameters:
      Name  Flags
      cf    

  private java.lang.String readSource(com.sun.tools.classfile.ClassFile);
    descriptor: (Lcom/sun/tools/classfile/ClassFile;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // com.sun.tools.classfile.ClassFile cf
         0: .line 139
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.fileManager:Ljavax/tools/JavaFileManager;
            ifnonnull 2
         1: .line 140
            aconst_null
            areturn
         2: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.SOURCE_PATH:Ljavax/tools/StandardLocation;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ifeq 5
         3: .line 144
            getstatic javax.tools.StandardLocation.SOURCE_PATH:Ljavax/tools/StandardLocation;
            astore 2 /* location */
        start local 2 // javax.tools.JavaFileManager$Location location
         4: goto 6
        end local 2 // javax.tools.JavaFileManager$Location location
         5: .line 146
      StackMap locals:
      StackMap stack:
            getstatic javax.tools.StandardLocation.CLASS_PATH:Ljavax/tools/StandardLocation;
            astore 2 /* location */
        start local 2 // javax.tools.JavaFileManager$Location location
         6: .line 153
      StackMap locals: javax.tools.JavaFileManager$Location
      StackMap stack:
            aload 1 /* cf */
            invokevirtual com.sun.tools.classfile.ClassFile.getName:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         7: .line 155
            aload 1 /* cf */
            getfield com.sun.tools.classfile.ClassFile.attributes:Lcom/sun/tools/classfile/Attributes;
            ldc "SourceFile"
            invokevirtual com.sun.tools.classfile.Attributes.get:(Ljava/lang/String;)Lcom/sun/tools/classfile/Attribute;
            checkcast com.sun.tools.classfile.SourceFile_attribute
         8: .line 154
            astore 4 /* sf */
        start local 4 // com.sun.tools.classfile.SourceFile_attribute sf
         9: .line 156
            aload 4 /* sf */
            ifnonnull 12
        10: .line 157
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.messages:Lcom/sun/tools/javap/Messages;
            ldc "err.no.SourceFile.attribute"
            iconst_0
            anewarray java.lang.Object
            invokeinterface com.sun.tools.javap.Messages.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.SourceWriter.report:(Ljava/lang/String;)Ljava/lang/String;
            pop
        11: .line 158
            aconst_null
            areturn
        12: .line 160
      StackMap locals: java.lang.String com.sun.tools.classfile.SourceFile_attribute
      StackMap stack:
            aload 4 /* sf */
            aload 1 /* cf */
            getfield com.sun.tools.classfile.ClassFile.constant_pool:Lcom/sun/tools/classfile/ConstantPool;
            invokevirtual com.sun.tools.classfile.SourceFile_attribute.getSourceFile:(Lcom/sun/tools/classfile/ConstantPool;)Ljava/lang/String;
            astore 5 /* sourceFile */
        start local 5 // java.lang.String sourceFile
        13: .line 161
            aload 5 /* sourceFile */
            ldc ".java"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 15
        14: .line 162
            aload 5 /* sourceFile */
            iconst_0
            aload 5 /* sourceFile */
            invokevirtual java.lang.String.length:()I
            iconst_5
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 16
      StackMap locals: java.lang.String
      StackMap stack:
        15: aload 5 /* sourceFile */
        16: .line 161
      StackMap locals:
      StackMap stack: java.lang.String
            astore 6 /* fileBase */
        start local 6 // java.lang.String fileBase
        17: .line 163
            aload 3 /* className */
            ldc "/"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 7 /* sep */
        start local 7 // int sep
        18: .line 164
            iload 7 /* sep */
            iconst_m1
            if_icmpne 19
            ldc ""
            goto 20
      StackMap locals: java.lang.String int
      StackMap stack:
        19: aload 3 /* className */
            iconst_0
            iload 7 /* sep */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        20: astore 8 /* pkgName */
        start local 8 // java.lang.String pkgName
        21: .line 165
            new java.lang.StringBuilder
            dup
            aload 8 /* pkgName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* fileBase */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 9 /* topClassName */
        start local 9 // java.lang.String topClassName
        22: .line 167
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.fileManager:Ljavax/tools/JavaFileManager;
            aload 2 /* location */
        23: .line 168
            aload 9 /* topClassName */
        24: .line 169
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
        25: .line 167
            invokeinterface javax.tools.JavaFileManager.getJavaFileForInput:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
        26: .line 166
            astore 10 /* fo */
        start local 10 // javax.tools.JavaFileObject fo
        27: .line 170
            aload 10 /* fo */
            ifnonnull 30
        28: .line 171
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.messages:Lcom/sun/tools/javap/Messages;
            ldc "err.source.file.not.found"
            iconst_0
            anewarray java.lang.Object
            invokeinterface com.sun.tools.javap.Messages.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.sun.tools.javap.SourceWriter.report:(Ljava/lang/String;)Ljava/lang/String;
            pop
        29: .line 172
            aconst_null
            areturn
        30: .line 174
      StackMap locals: java.lang.String java.lang.String javax.tools.JavaFileObject
      StackMap stack:
            aload 10 /* fo */
            iconst_1
            invokeinterface javax.tools.JavaFileObject.getCharContent:(Z)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
        31: areturn
        end local 10 // javax.tools.JavaFileObject fo
        end local 9 // java.lang.String topClassName
        end local 8 // java.lang.String pkgName
        end local 7 // int sep
        end local 6 // java.lang.String fileBase
        end local 5 // java.lang.String sourceFile
        end local 4 // com.sun.tools.classfile.SourceFile_attribute sf
        end local 3 // java.lang.String className
        32: .line 175
      StackMap locals: com.sun.tools.javap.SourceWriter com.sun.tools.classfile.ClassFile javax.tools.JavaFileManager$Location
      StackMap stack: com.sun.tools.classfile.ConstantPoolException
            astore 3 /* e */
        start local 3 // com.sun.tools.classfile.ConstantPoolException e
        33: .line 176
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual com.sun.tools.javap.SourceWriter.report:(Lcom/sun/tools/classfile/ConstantPoolException;)Ljava/lang/String;
            pop
        34: .line 177
            aconst_null
            areturn
        end local 3 // com.sun.tools.classfile.ConstantPoolException e
        35: .line 178
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        36: .line 179
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual com.sun.tools.javap.SourceWriter.report:(Ljava/lang/String;)Ljava/lang/String;
            pop
        37: .line 180
            aconst_null
            areturn
        end local 3 // java.io.IOException e
        end local 2 // javax.tools.JavaFileManager$Location location
        end local 1 // com.sun.tools.classfile.ClassFile cf
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   38     0          this  Lcom/sun/tools/javap/SourceWriter;
            0   38     1            cf  Lcom/sun/tools/classfile/ClassFile;
            4    5     2      location  Ljavax/tools/JavaFileManager$Location;
            6   38     2      location  Ljavax/tools/JavaFileManager$Location;
            7   32     3     className  Ljava/lang/String;
            9   32     4            sf  Lcom/sun/tools/classfile/SourceFile_attribute;
           13   32     5    sourceFile  Ljava/lang/String;
           17   32     6      fileBase  Ljava/lang/String;
           18   32     7           sep  I
           21   32     8       pkgName  Ljava/lang/String;
           22   32     9  topClassName  Ljava/lang/String;
           27   32    10            fo  Ljavax/tools/JavaFileObject;
           33   35     3             e  Lcom/sun/tools/classfile/ConstantPoolException;
           36   38     3             e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    11      32  Class com.sun.tools.classfile.ConstantPoolException
          12    29      32  Class com.sun.tools.classfile.ConstantPoolException
          30    31      32  Class com.sun.tools.classfile.ConstantPoolException
           6    11      35  Class java.io.IOException
          12    29      35  Class java.io.IOException
          30    31      35  Class java.io.IOException
    MethodParameters:
      Name  Flags
      cf    

  private static java.lang.String[] splitLines(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.String text
         0: .line 185
            aload 0 /* text */
            ifnonnull 2
         1: .line 186
            iconst_0
            anewarray java.lang.String
            areturn
         2: .line 188
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* lines */
        start local 1 // java.util.List lines
         3: .line 189
            aload 1 /* lines */
            ldc ""
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 191
            new java.io.BufferedReader
            dup
            new java.io.StringReader
            dup
            aload 0 /* text */
            invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 2 /* r */
        start local 2 // java.io.BufferedReader r
         5: .line 193
            goto 7
        start local 3 // java.lang.String line
         6: .line 194
      StackMap locals: java.util.List java.io.BufferedReader java.lang.String
      StackMap stack:
            aload 1 /* lines */
            aload 3 /* line */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String line
         7: .line 193
      StackMap locals:
      StackMap stack:
            aload 2 /* r */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 3 /* line */
        start local 3 // java.lang.String line
         8: ifnonnull 6
        end local 3 // java.lang.String line
        end local 2 // java.io.BufferedReader r
         9: .line 195
            goto 11
      StackMap locals: java.lang.String java.util.List
      StackMap stack: java.io.IOException
        10: pop
        11: .line 197
      StackMap locals:
      StackMap stack:
            aload 1 /* lines */
            aload 1 /* lines */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 1 // java.util.List lines
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   text  Ljava/lang/String;
            3   12     1  lines  Ljava/util/List<Ljava/lang/String;>;
            5    9     2      r  Ljava/io/BufferedReader;
            6    7     3   line  Ljava/lang/String;
            8    9     3   line  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4     9      10  Class java.io.IOException
    MethodParameters:
      Name  Flags
      text  

  private int nextLine(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javap.SourceWriter this
        start local 1 // int line
         0: .line 201
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.lineList:Ljava/util/List;
            iload 1 /* line */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 2 /* i */
        start local 2 // int i
         1: .line 202
            iload 2 /* i */
            iconst_m1
            if_icmpeq 2
            iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.lineList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmpne 3
         2: .line 203
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
         3: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javap.SourceWriter.lineList:Ljava/util/List;
            iload 2 /* i */
            iconst_1
            iadd
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // int i
        end local 1 // int line
        end local 0 // com.sun.tools.javap.SourceWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javap/SourceWriter;
            0    4     1  line  I
            1    4     2     i  I
    MethodParameters:
      Name  Flags
      line  
}
SourceFile: "SourceWriter.java"
InnerClasses:
  public Entry = com.sun.tools.classfile.LineNumberTable_attribute$Entry of com.sun.tools.classfile.LineNumberTable_attribute
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject