public class edu.umd.cs.findbugs.SourceLineAnnotation implements edu.umd.cs.findbugs.BugAnnotation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: edu.umd.cs.findbugs.SourceLineAnnotation
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final java.lang.String DEFAULT_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_DEFAULT"

  public static final java.lang.String DEFAULT_ROLE_UNKNOWN_LINE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_DEFAULT_UNKNOWN_LINE"

  public static final java.lang.String ROLE_ANOTHER_INSTANCE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_ANOTHER_INSTANCE"

  public static final java.lang.String ROLE_CALLED_FROM_SUPERCLASS_AT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_CALLED_FROM_SUPERCLASS_AT"

  public static final java.lang.String ROLE_FIELD_SET_TOO_LATE_AT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_FIELD_SET_TOO_LATE_AT"

  public static final java.lang.String ROLE_GENERATED_AT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_GENERATED_AT"

  public static final java.lang.String ROLE_OBLIGATION_CREATED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_OBLIGATION_CREATED"

  public static final java.lang.String ROLE_OBLIGATION_CREATED_BY_WILLCLOSE_PARAMETER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_OBLIGATION_CREATED_BY_WILLCLOSE_PARAMETER"

  public static final java.lang.String ROLE_PATH_CONTINUES;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_PATH_CONTINUES"

  public static final java.lang.String ROLE_LOCK_OBTAINED_AT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_LOCK_OBTAINED_AT"

  public static final java.lang.String ROLE_UNREACHABLE_CODE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_UNREACHABLE_CODE"

  public static final java.lang.String UNKNOWN_SOURCE_FILE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "<Unknown>"

  public static final char CANONICAL_PACKAGE_SEPARATOR;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 47

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

  private final java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      edu.umd.cs.findbugs.internalAnnotations.DottedClassName()

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

  private final int startLine;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int endLine;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int startBytecode;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int endBytecode;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean synthetic;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public static final java.lang.String DESCRIPTION_LAST_CHANGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_LAST_CHANGE"

  public static final java.lang.String DESCRIPTION_LOOP_BOTTOM;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_LINE_LOOP_BOTTOM"

  static final java.lang.ThreadLocal<edu.umd.cs.findbugs.Project> myProject;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ledu/umd/cs/findbugs/Project;>;

  static final java.lang.ThreadLocal<java.lang.String> relativeSourceBase;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/lang/String;>;

  private static final java.lang.String ELEMENT_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SourceLine"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 114
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic edu.umd.cs.findbugs.SourceLineAnnotation.myProject:Ljava/lang/ThreadLocal;
         1: .line 116
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic edu.umd.cs.findbugs.SourceLineAnnotation.relativeSourceBase:Ljava/lang/ThreadLocal;
         2: .line 118
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String, int, int, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;IIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // java.lang.String className
        start local 2 // java.lang.String sourceFile
        start local 3 // int startLine
        start local 4 // int endLine
        start local 5 // int startBytecode
        start local 6 // int endBytecode
         0: .line 136
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 138
            aload 1 /* className */
            ldc "class name is null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 139
            aload 2 /* sourceFile */
            ldc "source file is null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 140
            aload 0 /* this */
            ldc "SOURCE_LINE_DEFAULT"
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.description:Ljava/lang/String;
         4: .line 141
            aload 0 /* this */
            aload 1 /* className */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
         5: .line 142
            aload 0 /* this */
            aload 2 /* sourceFile */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
         6: .line 143
            aload 0 /* this */
            iload 3 /* startLine */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
         7: .line 144
            aload 0 /* this */
            iload 4 /* endLine */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
         8: .line 145
            aload 0 /* this */
            iload 5 /* startBytecode */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.startBytecode:I
         9: .line 146
            aload 0 /* this */
            iload 6 /* endBytecode */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.endBytecode:I
        10: .line 147
            return
        end local 6 // int endBytecode
        end local 5 // int startBytecode
        end local 4 // int endLine
        end local 3 // int startLine
        end local 2 // java.lang.String sourceFile
        end local 1 // java.lang.String className
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0   11     1      className  Ljava/lang/String;
            0   11     2     sourceFile  Ljava/lang/String;
            0   11     3      startLine  I
            0   11     4        endLine  I
            0   11     5  startBytecode  I
            0   11     6    endBytecode  I
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
    RuntimeVisibleParameterAnnotations: 
      0:
        javax.annotation.Nonnull()
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      1:
        javax.annotation.Nonnull()
      2:
      3:
      4:
      5:
    MethodParameters:
               Name  Flags
      className      
      sourceFile     
      startLine      
      endLine        
      startBytecode  
      endBytecode    

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 152
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
         1: areturn
         2: .line 153
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         3: .line 154
            new java.lang.AssertionError
            dup
            aload 1 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            3    4     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

  public static edu.umd.cs.findbugs.SourceLineAnnotation createUnknown(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String className
        start local 1 // java.lang.String sourceFile
         0: .line 168
            aload 0 /* className */
            aload 1 /* sourceFile */
            iconst_m1
            iconst_m1
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 1 // java.lang.String sourceFile
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0   className  Ljava/lang/String;
            0    1     1  sourceFile  Ljava/lang/String;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      1:
    MethodParameters:
            Name  Flags
      className   
      sourceFile  

  public static edu.umd.cs.findbugs.SourceLineAnnotation createUnknown(java.lang.String);
    descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String className
         0: .line 181
            aload 0 /* className */
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
            aload 0 /* className */
            invokevirtual edu.umd.cs.findbugs.ba.AnalysisContext.lookupSourceFile:(Ljava/lang/String;)Ljava/lang/String;
            iconst_m1
            iconst_m1
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  className  Ljava/lang/String;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    MethodParameters:
           Name  Flags
      className  

  public static edu.umd.cs.findbugs.SourceLineAnnotation createReallyUnknown(java.lang.String);
    descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String className
         0: .line 193
            aload 0 /* className */
            ldc "<Unknown>"
            iconst_m1
            iconst_m1
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  className  Ljava/lang/String;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    MethodParameters:
           Name  Flags
      className  

  public static edu.umd.cs.findbugs.SourceLineAnnotation createUnknown(java.lang.String, java.lang.String, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // java.lang.String className
        start local 1 // java.lang.String sourceFile
        start local 2 // int startBytecode
        start local 3 // int endBytecode
         0: .line 208
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* className */
            aload 1 /* sourceFile */
            iconst_m1
            iconst_m1
            iload 2 /* startBytecode */
            iload 3 /* endBytecode */
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            astore 4 /* result */
        start local 4 // edu.umd.cs.findbugs.SourceLineAnnotation result
         1: .line 210
            aload 4 /* result */
            areturn
        end local 4 // edu.umd.cs.findbugs.SourceLineAnnotation result
        end local 3 // int endBytecode
        end local 2 // int startBytecode
        end local 1 // java.lang.String sourceFile
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0      className  Ljava/lang/String;
            0    2     1     sourceFile  Ljava/lang/String;
            0    2     2  startBytecode  I
            0    2     3    endBytecode  I
            1    2     4         result  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      METHOD_RETURN
        javax.annotation.Nonnull()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      className      
      sourceFile     
      startBytecode  
      endBytecode    

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedMethod(edu.umd.cs.findbugs.visitclass.PreorderVisitor);
    descriptor: (Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
         0: .line 223
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getDottedClassName:()Ljava/lang/String;
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getMethodName:()Ljava/lang/String;
         1: .line 224
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getMethodSig:()Ljava/lang/String;
         2: .line 223
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.getSourceAnnotationForMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            astore 1 /* sourceLines */
        start local 1 // edu.umd.cs.findbugs.SourceLineAnnotation sourceLines
         3: .line 225
            aload 1 /* sourceLines */
            areturn
        end local 1 // edu.umd.cs.findbugs.SourceLineAnnotation sourceLines
        end local 0 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0      visitor  Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;
            3    4     1  sourceLines  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    MethodParameters:
         Name  Flags
      visitor  

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedMethod(org.apache.bcel.generic.MethodGen, java.lang.String);
    descriptor: (Lorg/apache/bcel/generic/MethodGen;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.bcel.generic.MethodGen methodGen
        start local 1 // java.lang.String sourceFile
         0: .line 238
            aload 0 /* methodGen */
            aload 0 /* methodGen */
            invokevirtual org.apache.bcel.generic.MethodGen.getConstantPool:()Lorg/apache/bcel/generic/ConstantPoolGen;
            invokevirtual org.apache.bcel.generic.MethodGen.getLineNumberTable:(Lorg/apache/bcel/generic/ConstantPoolGen;)Lorg/apache/bcel/classfile/LineNumberTable;
            astore 2 /* lineNumberTable */
        start local 2 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
         1: .line 239
            aload 0 /* methodGen */
            invokevirtual org.apache.bcel.generic.MethodGen.getClassName:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         2: .line 240
            aload 0 /* methodGen */
            invokevirtual org.apache.bcel.generic.MethodGen.getInstructionList:()Lorg/apache/bcel/generic/InstructionList;
            invokevirtual org.apache.bcel.generic.InstructionList.getLength:()I
            istore 4 /* codeSize */
        start local 4 // int codeSize
         3: .line 241
            aload 2 /* lineNumberTable */
            ifnonnull 5
         4: .line 242
            aload 3 /* className */
            aload 1 /* sourceFile */
            iconst_0
            iload 4 /* codeSize */
            iconst_1
            isub
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         5: .line 244
      StackMap locals: org.apache.bcel.classfile.LineNumberTable java.lang.String int
      StackMap stack:
            aload 3 /* className */
            aload 1 /* sourceFile */
            aload 2 /* lineNumberTable */
            iload 4 /* codeSize */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.forEntireMethod:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/bcel/classfile/LineNumberTable;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 4 // int codeSize
        end local 3 // java.lang.String className
        end local 2 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        end local 1 // java.lang.String sourceFile
        end local 0 // org.apache.bcel.generic.MethodGen methodGen
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0        methodGen  Lorg/apache/bcel/generic/MethodGen;
            0    6     1       sourceFile  Ljava/lang/String;
            1    6     2  lineNumberTable  Lorg/apache/bcel/classfile/LineNumberTable;
            2    6     3        className  Ljava/lang/String;
            3    6     4         codeSize  I
    MethodParameters:
            Name  Flags
      methodGen   
      sourceFile  

  public static edu.umd.cs.findbugs.SourceLineAnnotation forEntireMethod(java.lang.String, java.lang.String, org.apache.bcel.classfile.LineNumberTable, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/bcel/classfile/LineNumberTable;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=7, args_size=4
        start local 0 // java.lang.String className
        start local 1 // java.lang.String sourceFile
        start local 2 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        start local 3 // int codeSize
         0: .line 262
            aload 2 /* lineNumberTable */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getLineNumberTable:()[Lorg/apache/bcel/classfile/LineNumber;
            astore 4 /* table */
        start local 4 // org.apache.bcel.classfile.LineNumber[] table
         1: .line 263
            aload 4 /* table */
            ifnull 5
            aload 4 /* table */
            arraylength
            ifle 5
         2: .line 264
            aload 4 /* table */
            iconst_0
            aaload
            astore 5 /* first */
        start local 5 // org.apache.bcel.classfile.LineNumber first
         3: .line 265
            aload 4 /* table */
            aload 4 /* table */
            arraylength
            iconst_1
            isub
            aaload
            astore 6 /* last */
        start local 6 // org.apache.bcel.classfile.LineNumber last
         4: .line 266
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* className */
            aload 1 /* sourceFile */
            aload 5 /* first */
            invokevirtual org.apache.bcel.classfile.LineNumber.getLineNumber:()I
            aload 6 /* last */
            invokevirtual org.apache.bcel.classfile.LineNumber.getLineNumber:()I
            iconst_0
            iload 3 /* codeSize */
            iconst_1
            isub
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 6 // org.apache.bcel.classfile.LineNumber last
        end local 5 // org.apache.bcel.classfile.LineNumber first
         5: .line 268
      StackMap locals: org.apache.bcel.classfile.LineNumber[]
      StackMap stack:
            aload 0 /* className */
            aload 1 /* sourceFile */
            iconst_0
            iload 3 /* codeSize */
            iconst_1
            isub
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 4 // org.apache.bcel.classfile.LineNumber[] table
        end local 3 // int codeSize
        end local 2 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        end local 1 // java.lang.String sourceFile
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0        className  Ljava/lang/String;
            0    6     1       sourceFile  Ljava/lang/String;
            0    6     2  lineNumberTable  Lorg/apache/bcel/classfile/LineNumberTable;
            0    6     3         codeSize  I
            1    6     4            table  [Lorg/apache/bcel/classfile/LineNumber;
            3    5     5            first  Lorg/apache/bcel/classfile/LineNumber;
            4    5     6             last  Lorg/apache/bcel/classfile/LineNumber;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      1:
      2:
      3:
    MethodParameters:
                 Name  Flags
      className        
      sourceFile       
      lineNumberTable  
      codeSize         

  public static edu.umd.cs.findbugs.SourceLineAnnotation forEntireMethod(org.apache.bcel.classfile.JavaClass, org.apache.bcel.classfile.Method);
    descriptor: (Lorg/apache/bcel/classfile/JavaClass;Lorg/apache/bcel/classfile/Method;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.bcel.classfile.JavaClass javaClass
        start local 1 // org.apache.bcel.classfile.Method method
         0: .line 282
            aload 0 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getSourceFileName:()Ljava/lang/String;
            astore 2 /* sourceFile */
        start local 2 // java.lang.String sourceFile
         1: .line 283
            aload 1 /* method */
            ifnonnull 3
         2: .line 284
            aload 0 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            aload 2 /* sourceFile */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         3: .line 286
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* method */
            invokevirtual org.apache.bcel.classfile.Method.getCode:()Lorg/apache/bcel/classfile/Code;
            astore 3 /* code */
        start local 3 // org.apache.bcel.classfile.Code code
         4: .line 287
            aload 1 /* method */
            invokevirtual org.apache.bcel.classfile.Method.getLineNumberTable:()Lorg/apache/bcel/classfile/LineNumberTable;
            astore 4 /* lineNumberTable */
        start local 4 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
         5: .line 288
            aload 3 /* code */
            ifnull 6
            aload 4 /* lineNumberTable */
            ifnonnull 7
         6: .line 289
      StackMap locals: org.apache.bcel.classfile.Code org.apache.bcel.classfile.LineNumberTable
      StackMap stack:
            aload 0 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            aload 2 /* sourceFile */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         7: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            aload 2 /* sourceFile */
            aload 4 /* lineNumberTable */
            aload 3 /* code */
            invokevirtual org.apache.bcel.classfile.Code.getLength:()I
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.forEntireMethod:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/bcel/classfile/LineNumberTable;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 4 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        end local 3 // org.apache.bcel.classfile.Code code
        end local 2 // java.lang.String sourceFile
        end local 1 // org.apache.bcel.classfile.Method method
        end local 0 // org.apache.bcel.classfile.JavaClass javaClass
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0        javaClass  Lorg/apache/bcel/classfile/JavaClass;
            0    8     1           method  Lorg/apache/bcel/classfile/Method;
            1    8     2       sourceFile  Ljava/lang/String;
            4    8     3             code  Lorg/apache/bcel/classfile/Code;
            5    8     4  lineNumberTable  Lorg/apache/bcel/classfile/LineNumberTable;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        javax.annotation.CheckForNull()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        javax.annotation.CheckForNull()
    MethodParameters:
           Name  Flags
      javaClass  
      method     

  public static edu.umd.cs.findbugs.SourceLineAnnotation forEntireMethod(org.apache.bcel.classfile.JavaClass, edu.umd.cs.findbugs.ba.XMethod);
    descriptor: (Lorg/apache/bcel/classfile/JavaClass;Ledu/umd/cs/findbugs/ba/XMethod;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.bcel.classfile.JavaClass javaClass
        start local 1 // edu.umd.cs.findbugs.ba.XMethod xmethod
         0: .line 305
            aload 0 /* javaClass */
            aload 1 /* xmethod */
            invokeinterface edu.umd.cs.findbugs.ba.XMethod.getName:()Ljava/lang/String;
            aload 1 /* xmethod */
            invokeinterface edu.umd.cs.findbugs.ba.XMethod.getSignature:()Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.ba.Hierarchy.findMethod:(Lorg/apache/bcel/classfile/JavaClass;Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/ba/JavaClassAndMethod;
            astore 2 /* m */
        start local 2 // edu.umd.cs.findbugs.ba.JavaClassAndMethod m
         1: .line 306
            aload 2 /* m */
            ifnonnull 3
         2: .line 307
            aload 0 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            aload 0 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getSourceFileName:()Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         3: .line 309
      StackMap locals: edu.umd.cs.findbugs.ba.JavaClassAndMethod
      StackMap stack:
            aload 0 /* javaClass */
            aload 2 /* m */
            invokevirtual edu.umd.cs.findbugs.ba.JavaClassAndMethod.getMethod:()Lorg/apache/bcel/classfile/Method;
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.forEntireMethod:(Lorg/apache/bcel/classfile/JavaClass;Lorg/apache/bcel/classfile/Method;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 2 // edu.umd.cs.findbugs.ba.JavaClassAndMethod m
        end local 1 // edu.umd.cs.findbugs.ba.XMethod xmethod
        end local 0 // org.apache.bcel.classfile.JavaClass javaClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  javaClass  Lorg/apache/bcel/classfile/JavaClass;
            0    4     1    xmethod  Ledu/umd/cs/findbugs/ba/XMethod;
            1    4     2          m  Ledu/umd/cs/findbugs/ba/JavaClassAndMethod;
    MethodParameters:
           Name  Flags
      javaClass  
      xmethod    

  public static edu.umd.cs.findbugs.SourceLineAnnotation forFirstLineOfMethod(edu.umd.cs.findbugs.classfile.MethodDescriptor);
    descriptor: (Ledu/umd/cs/findbugs/classfile/MethodDescriptor;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=13, args_size=1
        start local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
         0: .line 323
            aconst_null
            astore 1 /* result */
        start local 1 // edu.umd.cs.findbugs.SourceLineAnnotation result
         1: .line 326
            invokestatic edu.umd.cs.findbugs.classfile.Global.getAnalysisCache:()Ledu/umd/cs/findbugs/classfile/IAnalysisCache;
            ldc Lorg/apache/bcel/classfile/Method;
            aload 0 /* methodDescriptor */
            invokeinterface edu.umd.cs.findbugs.classfile.IAnalysisCache.getMethodAnalysis:(Ljava/lang/Class;Ledu/umd/cs/findbugs/classfile/MethodDescriptor;)Ljava/lang/Object;
            checkcast org.apache.bcel.classfile.Method
            astore 2 /* m */
        start local 2 // org.apache.bcel.classfile.Method m
         2: .line 327
            invokestatic edu.umd.cs.findbugs.classfile.Global.getAnalysisCache:()Ledu/umd/cs/findbugs/classfile/IAnalysisCache;
            ldc Ledu/umd/cs/findbugs/ba/XClass;
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getClassDescriptor:()Ledu/umd/cs/findbugs/classfile/ClassDescriptor;
            invokeinterface edu.umd.cs.findbugs.classfile.IAnalysisCache.getClassAnalysis:(Ljava/lang/Class;Ledu/umd/cs/findbugs/classfile/ClassDescriptor;)Ljava/lang/Object;
            checkcast edu.umd.cs.findbugs.ba.XClass
            astore 3 /* xclass */
        start local 3 // edu.umd.cs.findbugs.ba.XClass xclass
         3: .line 328
            aload 2 /* m */
            invokevirtual org.apache.bcel.classfile.Method.getLineNumberTable:()Lorg/apache/bcel/classfile/LineNumberTable;
            astore 4 /* lnt */
        start local 4 // org.apache.bcel.classfile.LineNumberTable lnt
         4: .line 329
            aload 3 /* xclass */
            invokeinterface edu.umd.cs.findbugs.ba.XClass.getSource:()Ljava/lang/String;
            astore 5 /* sourceFile */
        start local 5 // java.lang.String sourceFile
         5: .line 330
            aload 5 /* sourceFile */
            ifnull 22
            aload 4 /* lnt */
            ifnull 22
         6: .line 331
            ldc 2147483647
            istore 6 /* firstLine */
        start local 6 // int firstLine
         7: .line 332
            iconst_0
            istore 7 /* bytecode */
        start local 7 // int bytecode
         8: .line 333
            aload 4 /* lnt */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getLineNumberTable:()[Lorg/apache/bcel/classfile/LineNumber;
            astore 8 /* entries */
        start local 8 // org.apache.bcel.classfile.LineNumber[] entries
         9: .line 334
            aload 8 /* entries */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 15
      StackMap locals: edu.umd.cs.findbugs.classfile.MethodDescriptor edu.umd.cs.findbugs.SourceLineAnnotation org.apache.bcel.classfile.Method edu.umd.cs.findbugs.ba.XClass org.apache.bcel.classfile.LineNumberTable java.lang.String int int org.apache.bcel.classfile.LineNumber[] top int int org.apache.bcel.classfile.LineNumber[]
      StackMap stack:
        10: aload 12
            iload 10
            aaload
            astore 9 /* entry */
        start local 9 // org.apache.bcel.classfile.LineNumber entry
        11: .line 335
            aload 9 /* entry */
            invokevirtual org.apache.bcel.classfile.LineNumber.getLineNumber:()I
            iload 6 /* firstLine */
            if_icmpge 14
        12: .line 336
            aload 9 /* entry */
            invokevirtual org.apache.bcel.classfile.LineNumber.getLineNumber:()I
            istore 6 /* firstLine */
        13: .line 337
            aload 9 /* entry */
            invokevirtual org.apache.bcel.classfile.LineNumber.getStartPC:()I
            istore 7 /* bytecode */
        end local 9 // org.apache.bcel.classfile.LineNumber entry
        14: .line 334
      StackMap locals:
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        15: iload 10
            iload 11
            if_icmplt 10
        16: .line 340
            iload 6 /* firstLine */
            ldc 2147483647
            if_icmpge 22
        17: .line 342
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getClassDescriptor:()Ledu/umd/cs/findbugs/classfile/ClassDescriptor;
            invokevirtual edu.umd.cs.findbugs.classfile.ClassDescriptor.toDottedClassName:()Ljava/lang/String;
            aload 5 /* sourceFile */
        18: .line 343
            iload 6 /* firstLine */
            iload 6 /* firstLine */
            iload 7 /* bytecode */
            iload 7 /* bytecode */
        19: .line 342
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            astore 1 /* result */
        end local 8 // org.apache.bcel.classfile.LineNumber[] entries
        end local 7 // int bytecode
        end local 6 // int firstLine
        end local 5 // java.lang.String sourceFile
        end local 4 // org.apache.bcel.classfile.LineNumberTable lnt
        end local 3 // edu.umd.cs.findbugs.ba.XClass xclass
        end local 2 // org.apache.bcel.classfile.Method m
        20: .line 346
            goto 22
      StackMap locals: edu.umd.cs.findbugs.classfile.MethodDescriptor edu.umd.cs.findbugs.SourceLineAnnotation
      StackMap stack: edu.umd.cs.findbugs.classfile.CheckedAnalysisException
        21: pop
        22: .line 350
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            ifnonnull 24
        23: .line 351
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getClassDescriptor:()Ledu/umd/cs/findbugs/classfile/ClassDescriptor;
            invokevirtual edu.umd.cs.findbugs.classfile.ClassDescriptor.toDottedClassName:()Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            astore 1 /* result */
        24: .line 353
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // edu.umd.cs.findbugs.SourceLineAnnotation result
        end local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0  methodDescriptor  Ledu/umd/cs/findbugs/classfile/MethodDescriptor;
            1   25     1            result  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            2   20     2                 m  Lorg/apache/bcel/classfile/Method;
            3   20     3            xclass  Ledu/umd/cs/findbugs/ba/XClass;
            4   20     4               lnt  Lorg/apache/bcel/classfile/LineNumberTable;
            5   20     5        sourceFile  Ljava/lang/String;
            7   20     6         firstLine  I
            8   20     7          bytecode  I
            9   20     8           entries  [Lorg/apache/bcel/classfile/LineNumber;
           11   14     9             entry  Lorg/apache/bcel/classfile/LineNumber;
      Exception table:
        from    to  target  type
           1    20      21  Class edu.umd.cs.findbugs.classfile.CheckedAnalysisException
    MethodParameters:
                  Name  Flags
      methodDescriptor  

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.BytecodeScanningDetector, int);
    descriptor: (Ledu/umd/cs/findbugs/BytecodeScanningDetector;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.BytecodeScanningDetector visitor
        start local 1 // int pc
         0: .line 368
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.BytecodeScanningDetector.getClassContext:()Ledu/umd/cs/findbugs/ba/ClassContext;
            aload 0 /* visitor */
            iload 1 /* pc */
            iload 1 /* pc */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstructionRange:(Ledu/umd/cs/findbugs/ba/ClassContext;Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 1 // int pc
        end local 0 // edu.umd.cs.findbugs.BytecodeScanningDetector visitor
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  visitor  Ledu/umd/cs/findbugs/BytecodeScanningDetector;
            0    1     1       pc  I
    MethodParameters:
         Name  Flags
      visitor  
      pc       

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.ba.ClassContext, edu.umd.cs.findbugs.visitclass.PreorderVisitor, int);
    descriptor: (Ledu/umd/cs/findbugs/ba/ClassContext;Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
        start local 1 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
        start local 2 // int pc
         0: .line 385
            aload 0 /* classContext */
            aload 1 /* visitor */
            iload 2 /* pc */
            iload 2 /* pc */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstructionRange:(Ledu/umd/cs/findbugs/ba/ClassContext;Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 2 // int pc
        end local 1 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
        end local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  classContext  Ledu/umd/cs/findbugs/ba/ClassContext;
            0    1     1       visitor  Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;
            0    1     2            pc  I
    MethodParameters:
              Name  Flags
      classContext  
      visitor       
      pc            

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.ba.ClassContext, org.apache.bcel.classfile.Method, edu.umd.cs.findbugs.ba.Location);
    descriptor: (Ledu/umd/cs/findbugs/ba/ClassContext;Lorg/apache/bcel/classfile/Method;Ledu/umd/cs/findbugs/ba/Location;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
        start local 1 // org.apache.bcel.classfile.Method method
        start local 2 // edu.umd.cs.findbugs.ba.Location loc
         0: .line 400
            aload 0 /* classContext */
            aload 1 /* method */
            aload 2 /* loc */
            invokevirtual edu.umd.cs.findbugs.ba.Location.getHandle:()Lorg/apache/bcel/generic/InstructionHandle;
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstruction:(Ledu/umd/cs/findbugs/ba/ClassContext;Lorg/apache/bcel/classfile/Method;Lorg/apache/bcel/generic/InstructionHandle;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 2 // edu.umd.cs.findbugs.ba.Location loc
        end local 1 // org.apache.bcel.classfile.Method method
        end local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  classContext  Ledu/umd/cs/findbugs/ba/ClassContext;
            0    1     1        method  Lorg/apache/bcel/classfile/Method;
            0    1     2           loc  Ledu/umd/cs/findbugs/ba/Location;
    MethodParameters:
              Name  Flags
      classContext  
      method        
      loc           

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.ba.ClassContext, org.apache.bcel.classfile.Method, org.apache.bcel.generic.InstructionHandle);
    descriptor: (Ledu/umd/cs/findbugs/ba/ClassContext;Lorg/apache/bcel/classfile/Method;Lorg/apache/bcel/generic/InstructionHandle;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
        start local 1 // org.apache.bcel.classfile.Method method
        start local 2 // org.apache.bcel.generic.InstructionHandle handle
         0: .line 415
            aload 0 /* classContext */
            aload 1 /* method */
            aload 2 /* handle */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstruction:(Ledu/umd/cs/findbugs/ba/ClassContext;Lorg/apache/bcel/classfile/Method;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 2 // org.apache.bcel.generic.InstructionHandle handle
        end local 1 // org.apache.bcel.classfile.Method method
        end local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  classContext  Ledu/umd/cs/findbugs/ba/ClassContext;
            0    1     1        method  Lorg/apache/bcel/classfile/Method;
            0    1     2        handle  Lorg/apache/bcel/generic/InstructionHandle;
    MethodParameters:
              Name  Flags
      classContext  
      method        
      handle        

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.classfile.MethodDescriptor, edu.umd.cs.findbugs.ba.Location);
    descriptor: (Ledu/umd/cs/findbugs/classfile/MethodDescriptor;Ledu/umd/cs/findbugs/ba/Location;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
        start local 1 // edu.umd.cs.findbugs.ba.Location location
         0: .line 428
            aload 0 /* methodDescriptor */
            aload 1 /* location */
            invokevirtual edu.umd.cs.findbugs.ba.Location.getHandle:()Lorg/apache/bcel/generic/InstructionHandle;
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstruction:(Ledu/umd/cs/findbugs/classfile/MethodDescriptor;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 1 // edu.umd.cs.findbugs.ba.Location location
        end local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  methodDescriptor  Ledu/umd/cs/findbugs/classfile/MethodDescriptor;
            0    1     1          location  Ledu/umd/cs/findbugs/ba/Location;
    MethodParameters:
                  Name  Flags
      methodDescriptor  
      location          

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.classfile.MethodDescriptor, int);
    descriptor: (Ledu/umd/cs/findbugs/classfile/MethodDescriptor;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
        start local 1 // int position
         0: .line 433
            invokestatic edu.umd.cs.findbugs.classfile.Global.getAnalysisCache:()Ledu/umd/cs/findbugs/classfile/IAnalysisCache;
            astore 2 /* analysisCache */
        start local 2 // edu.umd.cs.findbugs.classfile.IAnalysisCache analysisCache
         1: .line 434
            aload 2 /* analysisCache */
            ldc Lorg/apache/bcel/classfile/JavaClass;
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getClassDescriptor:()Ledu/umd/cs/findbugs/classfile/ClassDescriptor;
            invokeinterface edu.umd.cs.findbugs.classfile.IAnalysisCache.getClassAnalysis:(Ljava/lang/Class;Ledu/umd/cs/findbugs/classfile/ClassDescriptor;)Ljava/lang/Object;
            checkcast org.apache.bcel.classfile.JavaClass
            astore 3 /* jclass */
        start local 3 // org.apache.bcel.classfile.JavaClass jclass
         2: .line 435
            aload 2 /* analysisCache */
            ldc Lorg/apache/bcel/classfile/Method;
            aload 0 /* methodDescriptor */
            invokeinterface edu.umd.cs.findbugs.classfile.IAnalysisCache.getMethodAnalysis:(Ljava/lang/Class;Ledu/umd/cs/findbugs/classfile/MethodDescriptor;)Ljava/lang/Object;
            checkcast org.apache.bcel.classfile.Method
            astore 4 /* method */
        start local 4 // org.apache.bcel.classfile.Method method
         3: .line 436
            aload 3 /* jclass */
            aload 4 /* method */
            iload 1 /* position */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstruction:(Lorg/apache/bcel/classfile/JavaClass;Lorg/apache/bcel/classfile/Method;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
         4: areturn
        end local 4 // org.apache.bcel.classfile.Method method
        end local 3 // org.apache.bcel.classfile.JavaClass jclass
        end local 2 // edu.umd.cs.findbugs.classfile.IAnalysisCache analysisCache
         5: .line 437
      StackMap locals:
      StackMap stack: edu.umd.cs.findbugs.classfile.CheckedAnalysisException
            pop
         6: .line 438
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getClassDescriptor:()Ledu/umd/cs/findbugs/classfile/ClassDescriptor;
            invokevirtual edu.umd.cs.findbugs.classfile.ClassDescriptor.toDottedClassName:()Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createReallyUnknown:(Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 1 // int position
        end local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0  methodDescriptor  Ledu/umd/cs/findbugs/classfile/MethodDescriptor;
            0    7     1          position  I
            1    5     2     analysisCache  Ledu/umd/cs/findbugs/classfile/IAnalysisCache;
            2    5     3            jclass  Lorg/apache/bcel/classfile/JavaClass;
            3    5     4            method  Lorg/apache/bcel/classfile/Method;
      Exception table:
        from    to  target  type
           0     4       5  Class edu.umd.cs.findbugs.classfile.CheckedAnalysisException
    MethodParameters:
                  Name  Flags
      methodDescriptor  
      position          

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.ba.ClassContext, org.apache.bcel.classfile.Method, int);
    descriptor: (Ledu/umd/cs/findbugs/ba/ClassContext;Lorg/apache/bcel/classfile/Method;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
        start local 1 // org.apache.bcel.classfile.Method method
        start local 2 // int pc
         0: .line 454
            aload 0 /* classContext */
            invokevirtual edu.umd.cs.findbugs.ba.ClassContext.getJavaClass:()Lorg/apache/bcel/classfile/JavaClass;
            aload 1 /* method */
            iload 2 /* pc */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstruction:(Lorg/apache/bcel/classfile/JavaClass;Lorg/apache/bcel/classfile/Method;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 2 // int pc
        end local 1 // org.apache.bcel.classfile.Method method
        end local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  classContext  Ledu/umd/cs/findbugs/ba/ClassContext;
            0    1     1        method  Lorg/apache/bcel/classfile/Method;
            0    1     2            pc  I
    MethodParameters:
              Name  Flags
      classContext  
      method        
      pc            

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(org.apache.bcel.classfile.JavaClass, org.apache.bcel.classfile.Method, int);
    descriptor: (Lorg/apache/bcel/classfile/JavaClass;Lorg/apache/bcel/classfile/Method;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // org.apache.bcel.classfile.JavaClass jclass
        start local 1 // org.apache.bcel.classfile.Method method
        start local 2 // int pc
         0: .line 469
            aload 1 /* method */
            invokevirtual org.apache.bcel.classfile.Method.getCode:()Lorg/apache/bcel/classfile/Code;
            invokevirtual org.apache.bcel.classfile.Code.getLineNumberTable:()Lorg/apache/bcel/classfile/LineNumberTable;
            astore 3 /* lineNumberTable */
        start local 3 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
         1: .line 470
            aload 0 /* jclass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            astore 4 /* className */
        start local 4 // java.lang.String className
         2: .line 471
            aload 0 /* jclass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getSourceFileName:()Ljava/lang/String;
            astore 5 /* sourceFile */
        start local 5 // java.lang.String sourceFile
         3: .line 472
            aload 3 /* lineNumberTable */
            ifnonnull 5
         4: .line 473
            aload 4 /* className */
            aload 5 /* sourceFile */
            iload 2 /* pc */
            iload 2 /* pc */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         5: .line 476
      StackMap locals: org.apache.bcel.classfile.LineNumberTable java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* lineNumberTable */
            iload 2 /* pc */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 6 /* startLine */
        start local 6 // int startLine
         6: .line 477
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 4 /* className */
            aload 5 /* sourceFile */
            iload 6 /* startLine */
            iload 6 /* startLine */
            iload 2 /* pc */
            iload 2 /* pc */
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 6 // int startLine
        end local 5 // java.lang.String sourceFile
        end local 4 // java.lang.String className
        end local 3 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        end local 2 // int pc
        end local 1 // org.apache.bcel.classfile.Method method
        end local 0 // org.apache.bcel.classfile.JavaClass jclass
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0           jclass  Lorg/apache/bcel/classfile/JavaClass;
            0    7     1           method  Lorg/apache/bcel/classfile/Method;
            0    7     2               pc  I
            1    7     3  lineNumberTable  Lorg/apache/bcel/classfile/LineNumberTable;
            2    7     4        className  Ljava/lang/String;
            3    7     5       sourceFile  Ljava/lang/String;
            6    7     6        startLine  I
    MethodParameters:
        Name  Flags
      jclass  
      method  
      pc      

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstructionRange(edu.umd.cs.findbugs.BytecodeScanningDetector, int, int);
    descriptor: (Ledu/umd/cs/findbugs/BytecodeScanningDetector;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // edu.umd.cs.findbugs.BytecodeScanningDetector visitor
        start local 1 // int startPC
        start local 2 // int endPC
         0: .line 495
            aload 0 /* visitor */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.getLineNumberTable:(Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;)Lorg/apache/bcel/classfile/LineNumberTable;
            astore 3 /* lineNumberTable */
        start local 3 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
         1: .line 496
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.BytecodeScanningDetector.getDottedClassName:()Ljava/lang/String;
            astore 4 /* className */
        start local 4 // java.lang.String className
         2: .line 497
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.BytecodeScanningDetector.getSourceFile:()Ljava/lang/String;
            astore 5 /* sourceFile */
        start local 5 // java.lang.String sourceFile
         3: .line 499
            aload 3 /* lineNumberTable */
            ifnonnull 5
         4: .line 500
            aload 4 /* className */
            aload 5 /* sourceFile */
            iload 1 /* startPC */
            iload 2 /* endPC */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         5: .line 503
      StackMap locals: org.apache.bcel.classfile.LineNumberTable java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* lineNumberTable */
            iload 1 /* startPC */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 6 /* startLine */
        start local 6 // int startLine
         6: .line 504
            aload 3 /* lineNumberTable */
            iload 2 /* endPC */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 7 /* endLine */
        start local 7 // int endLine
         7: .line 505
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 4 /* className */
            aload 5 /* sourceFile */
            iload 6 /* startLine */
            iload 7 /* endLine */
            iload 1 /* startPC */
            iload 2 /* endPC */
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 7 // int endLine
        end local 6 // int startLine
        end local 5 // java.lang.String sourceFile
        end local 4 // java.lang.String className
        end local 3 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        end local 2 // int endPC
        end local 1 // int startPC
        end local 0 // edu.umd.cs.findbugs.BytecodeScanningDetector visitor
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0          visitor  Ledu/umd/cs/findbugs/BytecodeScanningDetector;
            0    8     1          startPC  I
            0    8     2            endPC  I
            1    8     3  lineNumberTable  Lorg/apache/bcel/classfile/LineNumberTable;
            2    8     4        className  Ljava/lang/String;
            3    8     5       sourceFile  Ljava/lang/String;
            6    8     6        startLine  I
            7    8     7          endLine  I
    MethodParameters:
         Name  Flags
      visitor  
      startPC  
      endPC    

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstructionRange(edu.umd.cs.findbugs.ba.ClassContext, edu.umd.cs.findbugs.visitclass.PreorderVisitor, int, int);
    descriptor: (Ledu/umd/cs/findbugs/ba/ClassContext;Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=9, args_size=4
        start local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
        start local 1 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
        start local 2 // int startPC
        start local 3 // int endPC
         0: .line 526
            iload 2 /* startPC */
            iload 3 /* endPC */
            if_icmple 2
         1: .line 527
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Start pc "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* startPC */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " greater than end pc "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* endPC */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 530
      StackMap locals:
      StackMap stack:
            aload 1 /* visitor */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.getLineNumberTable:(Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;)Lorg/apache/bcel/classfile/LineNumberTable;
            astore 4 /* lineNumberTable */
        start local 4 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
         3: .line 531
            aload 1 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getDottedClassName:()Ljava/lang/String;
            astore 5 /* className */
        start local 5 // java.lang.String className
         4: .line 532
            aload 1 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getSourceFile:()Ljava/lang/String;
            astore 6 /* sourceFile */
        start local 6 // java.lang.String sourceFile
         5: .line 534
            aload 4 /* lineNumberTable */
            ifnonnull 7
         6: .line 535
            aload 5 /* className */
            aload 6 /* sourceFile */
            iload 2 /* startPC */
            iload 3 /* endPC */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         7: .line 538
      StackMap locals: org.apache.bcel.classfile.LineNumberTable java.lang.String java.lang.String
      StackMap stack:
            aload 4 /* lineNumberTable */
            iload 2 /* startPC */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 7 /* startLine */
        start local 7 // int startLine
         8: .line 539
            aload 4 /* lineNumberTable */
            iload 3 /* endPC */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 8 /* endLine */
        start local 8 // int endLine
         9: .line 540
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 5 /* className */
            aload 6 /* sourceFile */
            iload 7 /* startLine */
            iload 8 /* endLine */
            iload 2 /* startPC */
            iload 3 /* endPC */
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 8 // int endLine
        end local 7 // int startLine
        end local 6 // java.lang.String sourceFile
        end local 5 // java.lang.String className
        end local 4 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        end local 3 // int endPC
        end local 2 // int startPC
        end local 1 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
        end local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0     classContext  Ledu/umd/cs/findbugs/ba/ClassContext;
            0   10     1          visitor  Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;
            0   10     2          startPC  I
            0   10     3            endPC  I
            3   10     4  lineNumberTable  Lorg/apache/bcel/classfile/LineNumberTable;
            4   10     5        className  Ljava/lang/String;
            5   10     6       sourceFile  Ljava/lang/String;
            8   10     7        startLine  I
            9   10     8          endLine  I
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        javax.annotation.Nonnull()
    MethodParameters:
              Name  Flags
      classContext  
      visitor       
      startPC       
      endPC         

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromRawData(java.lang.String, java.lang.String, int, int, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;IIII)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // java.lang.String className
        start local 1 // java.lang.String sourceFile
        start local 2 // int startLine
        start local 3 // int endLine
        start local 4 // int startPC
        start local 5 // int endPC
         0: .line 545
            iload 2 /* startLine */
            iconst_m1
            if_icmpne 2
         1: .line 546
            aload 0 /* className */
            aload 1 /* sourceFile */
            iload 4 /* startPC */
            iload 5 /* endPC */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         2: .line 549
      StackMap locals:
      StackMap stack:
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* className */
            aload 1 /* sourceFile */
            iload 2 /* startLine */
            iload 3 /* endLine */
            iload 4 /* startPC */
            iload 5 /* endPC */
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 5 // int endPC
        end local 4 // int startPC
        end local 3 // int endLine
        end local 2 // int startLine
        end local 1 // java.lang.String sourceFile
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0   className  Ljava/lang/String;
            0    3     1  sourceFile  Ljava/lang/String;
            0    3     2   startLine  I
            0    3     3     endLine  I
            0    3     4     startPC  I
            0    3     5       endPC  I
    MethodParameters:
            Name  Flags
      className   
      sourceFile  
      startLine   
      endLine     
      startPC     
      endPC       

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.BytecodeScanningDetector);
    descriptor: (Ledu/umd/cs/findbugs/BytecodeScanningDetector;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.BytecodeScanningDetector visitor
         0: .line 562
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.BytecodeScanningDetector.getClassContext:()Ledu/umd/cs/findbugs/ba/ClassContext;
            aload 0 /* visitor */
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.BytecodeScanningDetector.getPC:()I
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedInstruction:(Ledu/umd/cs/findbugs/ba/ClassContext;Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;I)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 0 // edu.umd.cs.findbugs.BytecodeScanningDetector visitor
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  visitor  Ledu/umd/cs/findbugs/BytecodeScanningDetector;
    MethodParameters:
         Name  Flags
      visitor  

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstruction(edu.umd.cs.findbugs.ba.ClassContext, org.apache.bcel.generic.MethodGen, java.lang.String, org.apache.bcel.generic.InstructionHandle);
    descriptor: (Ledu/umd/cs/findbugs/ba/ClassContext;Lorg/apache/bcel/generic/MethodGen;Ljava/lang/String;Lorg/apache/bcel/generic/InstructionHandle;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=4
        start local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
        start local 1 // org.apache.bcel.generic.MethodGen methodGen
        start local 2 // java.lang.String sourceFile
        start local 3 // org.apache.bcel.generic.InstructionHandle handle
         0: .line 581
            aload 1 /* methodGen */
            aload 1 /* methodGen */
            invokevirtual org.apache.bcel.generic.MethodGen.getConstantPool:()Lorg/apache/bcel/generic/ConstantPoolGen;
            invokevirtual org.apache.bcel.generic.MethodGen.getLineNumberTable:(Lorg/apache/bcel/generic/ConstantPoolGen;)Lorg/apache/bcel/classfile/LineNumberTable;
            astore 4 /* table */
        start local 4 // org.apache.bcel.classfile.LineNumberTable table
         1: .line 582
            aload 1 /* methodGen */
            invokevirtual org.apache.bcel.generic.MethodGen.getClassName:()Ljava/lang/String;
            astore 5 /* className */
        start local 5 // java.lang.String className
         2: .line 584
            aload 3 /* handle */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            istore 6 /* bytecodeOffset */
        start local 6 // int bytecodeOffset
         3: .line 586
            aload 4 /* table */
            ifnonnull 5
         4: .line 587
            aload 5 /* className */
            aload 2 /* sourceFile */
            iload 6 /* bytecodeOffset */
            iload 6 /* bytecodeOffset */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         5: .line 590
      StackMap locals: org.apache.bcel.classfile.LineNumberTable java.lang.String int
      StackMap stack:
            aload 4 /* table */
            aload 3 /* handle */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 7 /* lineNumber */
        start local 7 // int lineNumber
         6: .line 591
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 5 /* className */
            aload 2 /* sourceFile */
            iload 7 /* lineNumber */
            iload 7 /* lineNumber */
            iload 6 /* bytecodeOffset */
            iload 6 /* bytecodeOffset */
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 7 // int lineNumber
        end local 6 // int bytecodeOffset
        end local 5 // java.lang.String className
        end local 4 // org.apache.bcel.classfile.LineNumberTable table
        end local 3 // org.apache.bcel.generic.InstructionHandle handle
        end local 2 // java.lang.String sourceFile
        end local 1 // org.apache.bcel.generic.MethodGen methodGen
        end local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0    classContext  Ledu/umd/cs/findbugs/ba/ClassContext;
            0    7     1       methodGen  Lorg/apache/bcel/generic/MethodGen;
            0    7     2      sourceFile  Ljava/lang/String;
            0    7     3          handle  Lorg/apache/bcel/generic/InstructionHandle;
            1    7     4           table  Lorg/apache/bcel/classfile/LineNumberTable;
            2    7     5       className  Ljava/lang/String;
            3    7     6  bytecodeOffset  I
            6    7     7      lineNumber  I
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
      METHOD_RETURN
        javax.annotation.Nonnull()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        javax.annotation.Nonnull()
    MethodParameters:
              Name  Flags
      classContext  
      methodGen     
      sourceFile    
      handle        

  public static edu.umd.cs.findbugs.SourceLineAnnotation fromVisitedInstructionRange(edu.umd.cs.findbugs.ba.ClassContext, org.apache.bcel.generic.MethodGen, java.lang.String, org.apache.bcel.generic.InstructionHandle, org.apache.bcel.generic.InstructionHandle);
    descriptor: (Ledu/umd/cs/findbugs/ba/ClassContext;Lorg/apache/bcel/generic/MethodGen;Ljava/lang/String;Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/generic/InstructionHandle;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=9, args_size=5
        start local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
        start local 1 // org.apache.bcel.generic.MethodGen methodGen
        start local 2 // java.lang.String sourceFile
        start local 3 // org.apache.bcel.generic.InstructionHandle start
        start local 4 // org.apache.bcel.generic.InstructionHandle end
         0: .line 609
            aload 1 /* methodGen */
            aload 1 /* methodGen */
            invokevirtual org.apache.bcel.generic.MethodGen.getConstantPool:()Lorg/apache/bcel/generic/ConstantPoolGen;
            invokevirtual org.apache.bcel.generic.MethodGen.getLineNumberTable:(Lorg/apache/bcel/generic/ConstantPoolGen;)Lorg/apache/bcel/classfile/LineNumberTable;
            astore 5 /* lineNumberTable */
        start local 5 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
         1: .line 610
            aload 1 /* methodGen */
            invokevirtual org.apache.bcel.generic.MethodGen.getClassName:()Ljava/lang/String;
            astore 6 /* className */
        start local 6 // java.lang.String className
         2: .line 612
            aload 5 /* lineNumberTable */
            ifnonnull 4
         3: .line 613
            aload 6 /* className */
            aload 2 /* sourceFile */
            aload 3 /* start */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            aload 4 /* end */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;II)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         4: .line 616
      StackMap locals: org.apache.bcel.classfile.LineNumberTable java.lang.String
      StackMap stack:
            aload 5 /* lineNumberTable */
            aload 3 /* start */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 7 /* startLine */
        start local 7 // int startLine
         5: .line 617
            aload 5 /* lineNumberTable */
            aload 4 /* end */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getSourceLine:(I)I
            istore 8 /* endLine */
        start local 8 // int endLine
         6: .line 618
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 6 /* className */
            aload 2 /* sourceFile */
            iload 7 /* startLine */
            iload 8 /* endLine */
            aload 3 /* start */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            aload 4 /* end */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getPosition:()I
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 8 // int endLine
        end local 7 // int startLine
        end local 6 // java.lang.String className
        end local 5 // org.apache.bcel.classfile.LineNumberTable lineNumberTable
        end local 4 // org.apache.bcel.generic.InstructionHandle end
        end local 3 // org.apache.bcel.generic.InstructionHandle start
        end local 2 // java.lang.String sourceFile
        end local 1 // org.apache.bcel.generic.MethodGen methodGen
        end local 0 // edu.umd.cs.findbugs.ba.ClassContext classContext
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0     classContext  Ledu/umd/cs/findbugs/ba/ClassContext;
            0    7     1        methodGen  Lorg/apache/bcel/generic/MethodGen;
            0    7     2       sourceFile  Ljava/lang/String;
            0    7     3            start  Lorg/apache/bcel/generic/InstructionHandle;
            0    7     4              end  Lorg/apache/bcel/generic/InstructionHandle;
            1    7     5  lineNumberTable  Lorg/apache/bcel/classfile/LineNumberTable;
            2    7     6        className  Ljava/lang/String;
            5    7     7        startLine  I
            6    7     8          endLine  I
    MethodParameters:
              Name  Flags
      classContext  
      methodGen     
      sourceFile    
      start         
      end           

  private static org.apache.bcel.classfile.LineNumberTable getLineNumberTable(edu.umd.cs.findbugs.visitclass.PreorderVisitor);
    descriptor: (Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;)Lorg/apache/bcel/classfile/LineNumberTable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
         0: .line 622
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getMethod:()Lorg/apache/bcel/classfile/Method;
            invokevirtual org.apache.bcel.classfile.Method.getCode:()Lorg/apache/bcel/classfile/Code;
            astore 1 /* code */
        start local 1 // org.apache.bcel.classfile.Code code
         1: .line 623
            aload 1 /* code */
            ifnonnull 3
         2: .line 624
            aconst_null
            areturn
         3: .line 626
      StackMap locals: org.apache.bcel.classfile.Code
      StackMap stack:
            aload 1 /* code */
            invokevirtual org.apache.bcel.classfile.Code.getLineNumberTable:()Lorg/apache/bcel/classfile/LineNumberTable;
            areturn
        end local 1 // org.apache.bcel.classfile.Code code
        end local 0 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  visitor  Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;
            1    4     1     code  Lorg/apache/bcel/classfile/Code;
    MethodParameters:
         Name  Flags
      visitor  

  public java.lang.String getClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 632
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            areturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
      edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        javax.annotation.Nonnull()
      METHOD_RETURN
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()

  public java.lang.String getSourceFile();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 640
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
            areturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        javax.annotation.Nonnull()

  public boolean isSourceFileKnown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 647
            ldc "<Unknown>"
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public void setSourceFile(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // java.lang.String sourceFile
         0: .line 657
            aload 0 /* this */
            aload 1 /* sourceFile */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
         1: .line 658
            return
        end local 1 // java.lang.String sourceFile
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0    2     1  sourceFile  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      sourceFile  

  public java.lang.String getSimpleClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 664
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* lastDot */
        start local 1 // int lastDot
         1: .line 665
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            iload 1 /* lastDot */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 1 // int lastDot
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            1    2     1  lastDot  I

  public java.lang.String getPackageName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 669
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* lastDot */
        start local 1 // int lastDot
         1: .line 670
            iload 1 /* lastDot */
            ifge 3
         2: .line 671
            ldc ""
            areturn
         3: .line 673
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            iconst_0
            iload 1 /* lastDot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // int lastDot
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            1    4     1  lastDot  I

  public int getStartLine();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 681
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public int getEndLine();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 688
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public int getStartBytecode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 695
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startBytecode:I
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public int getEndBytecode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 702
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endBytecode:I
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public boolean isUnknown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 709
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            iflt 1
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            iflt 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public void accept(edu.umd.cs.findbugs.BugAnnotationVisitor);
    descriptor: (Ledu/umd/cs/findbugs/BugAnnotationVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // edu.umd.cs.findbugs.BugAnnotationVisitor visitor
         0: .line 714
            aload 1 /* visitor */
            aload 0 /* this */
            invokeinterface edu.umd.cs.findbugs.BugAnnotationVisitor.visitSourceLineAnnotation:(Ledu/umd/cs/findbugs/SourceLineAnnotation;)V
         1: .line 715
            return
        end local 1 // edu.umd.cs.findbugs.BugAnnotationVisitor visitor
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0    2     1  visitor  Ledu/umd/cs/findbugs/BugAnnotationVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  public java.lang.String format(java.lang.String, edu.umd.cs.findbugs.ClassAnnotation);
    descriptor: (Ljava/lang/String;Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // java.lang.String key
        start local 2 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
         0: .line 719
            ldc "hash"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 720
            ldc ""
            areturn
         2: .line 722
      StackMap locals:
      StackMap stack:
            ldc ""
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         3: .line 723
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuilder buf
         4: .line 724
            aload 3 /* buf */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 725
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.appendLines:(Ljava/lang/StringBuilder;)V
         6: .line 726
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder buf
         7: .line 727
      StackMap locals:
      StackMap stack:
            ldc "lineNumber"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         8: .line 728
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuilder buf
         9: .line 729
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.appendLinesRaw:(Ljava/lang/StringBuilder;)V
        10: .line 730
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder buf
        11: .line 731
      StackMap locals:
      StackMap stack:
            ldc "full"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        12: .line 732
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuilder buf
        13: .line 733
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getPackageName:()Ljava/lang/String;
            astore 4 /* pkgName */
        start local 4 // java.lang.String pkgName
        14: .line 734
            ldc ""
            aload 4 /* pkgName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
        15: .line 735
            aload 3 /* buf */
            aload 4 /* pkgName */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 736
            aload 3 /* buf */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 738
      StackMap locals: java.lang.StringBuilder java.lang.String
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 739
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.appendLines:(Ljava/lang/StringBuilder;)V
        19: .line 740
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.String pkgName
        end local 3 // java.lang.StringBuilder buf
        20: .line 742
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown format key "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
        end local 1 // java.lang.String key
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0   21     1           key  Ljava/lang/String;
            0   21     2  primaryClass  Ledu/umd/cs/findbugs/ClassAnnotation;
            4    7     3           buf  Ljava/lang/StringBuilder;
            9   11     3           buf  Ljava/lang/StringBuilder;
           13   20     3           buf  Ljava/lang/StringBuilder;
           14   20     4       pkgName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      key           
      primaryClass  

  private void appendLines(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // java.lang.StringBuilder buf
         0: .line 747
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.isUnknown:()Z
            ifeq 2
         1: .line 748
            return
         2: .line 750
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            ldc ":["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 751
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.appendLinesRaw:(Ljava/lang/StringBuilder;)V
         4: .line 752
            aload 1 /* buf */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 753
            return
        end local 1 // java.lang.StringBuilder buf
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0    6     1   buf  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      buf   

  private void appendLinesRaw(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // java.lang.StringBuilder buf
         0: .line 756
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.isUnknown:()Z
            ifeq 2
         1: .line 757
            return
         2: .line 759
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            if_icmpne 6
         3: .line 760
            aload 1 /* buf */
            ldc "line "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 761
            aload 1 /* buf */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         5: .line 762
            goto 10
         6: .line 763
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            ldc "lines "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 764
            aload 1 /* buf */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         8: .line 765
            aload 1 /* buf */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 766
            aload 1 /* buf */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        10: .line 769
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.StringBuilder buf
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0   11     1   buf  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      buf   

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 773
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.description:Ljava/lang/String;
            areturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public void setDescription(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // java.lang.String description
         0: .line 778
            aload 0 /* this */
            aload 1 /* description */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.description:Ljava/lang/String;
         1: .line 779
            return
        end local 1 // java.lang.String description
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0    2     1  description  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      description  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 783
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.description:Ljava/lang/String;
            astore 1 /* desc */
        start local 1 // java.lang.String desc
         1: .line 784
            ldc "SOURCE_LINE_DEFAULT"
            aload 1 /* desc */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.isUnknown:()Z
            ifeq 3
         2: .line 785
            ldc "SOURCE_LINE_DEFAULT_UNKNOWN_LINE"
            astore 1 /* desc */
         3: .line 787
      StackMap locals: java.lang.String
      StackMap stack:
            invokestatic edu.umd.cs.findbugs.I18N.instance:()Ledu/umd/cs/findbugs/I18N;
            aload 1 /* desc */
            invokevirtual edu.umd.cs.findbugs.I18N.getAnnotationDescription:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* pattern */
        start local 2 // java.lang.String pattern
         4: .line 788
            new edu.umd.cs.findbugs.FindBugsMessageFormat
            dup
            aload 2 /* pattern */
            invokespecial edu.umd.cs.findbugs.FindBugsMessageFormat.<init>:(Ljava/lang/String;)V
            astore 3 /* format */
        start local 3 // edu.umd.cs.findbugs.FindBugsMessageFormat format
         5: .line 789
            aload 3 /* format */
            iconst_1
            anewarray edu.umd.cs.findbugs.BugAnnotation
            dup
            iconst_0
            aload 0 /* this */
            aastore
            aconst_null
            invokevirtual edu.umd.cs.findbugs.FindBugsMessageFormat.format:([Ledu/umd/cs/findbugs/BugAnnotation;Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
            areturn
        end local 3 // edu.umd.cs.findbugs.FindBugsMessageFormat format
        end local 2 // java.lang.String pattern
        end local 1 // java.lang.String desc
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            1    6     1     desc  Ljava/lang/String;
            4    6     2  pattern  Ljava/lang/String;
            5    6     3   format  Ledu/umd/cs/findbugs/FindBugsMessageFormat;

  public int compareTo(edu.umd.cs.findbugs.BugAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/BugAnnotation;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // edu.umd.cs.findbugs.BugAnnotation o
         0: .line 794
            aload 1 /* o */
            instanceof edu.umd.cs.findbugs.SourceLineAnnotation
            ifne 2
         1: .line 796
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
         2: .line 799
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast edu.umd.cs.findbugs.SourceLineAnnotation
            astore 2 /* other */
        start local 2 // edu.umd.cs.findbugs.SourceLineAnnotation other
         3: .line 801
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            istore 3 /* cmp */
        start local 3 // int cmp
         4: .line 802
            iload 3 /* cmp */
            ifeq 6
         5: .line 803
            iload 3 /* cmp */
            ireturn
         6: .line 805
      StackMap locals: edu.umd.cs.findbugs.SourceLineAnnotation int
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            isub
            istore 3 /* cmp */
         7: .line 806
            iload 3 /* cmp */
            ifeq 9
         8: .line 807
            iload 3 /* cmp */
            ireturn
         9: .line 809
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            isub
            istore 3 /* cmp */
        10: .line 810
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            iconst_m1
            if_icmpeq 12
        11: .line 811
            iconst_0
            ireturn
        12: .line 813
      StackMap locals:
      StackMap stack:
            iload 3 /* cmp */
            ifeq 14
        13: .line 814
            iload 3 /* cmp */
            ireturn
        14: .line 816
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startBytecode:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startBytecode:I
            isub
            istore 3 /* cmp */
        15: .line 817
            iload 3 /* cmp */
            ifeq 17
        16: .line 818
            iload 3 /* cmp */
            ireturn
        17: .line 820
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endBytecode:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endBytecode:I
            isub
            ireturn
        end local 3 // int cmp
        end local 2 // edu.umd.cs.findbugs.SourceLineAnnotation other
        end local 1 // edu.umd.cs.findbugs.BugAnnotation o
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0   18     1      o  Ledu/umd/cs/findbugs/BugAnnotation;
            3   18     2  other  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            4   18     3    cmp  I
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 825
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            iconst_m1
            if_icmpeq 2
         1: .line 826
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            iadd
            iconst_3
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            imul
            iadd
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getDescription:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            iadd
            ireturn
         2: .line 828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startBytecode:I
            iadd
            iconst_3
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endBytecode:I
            imul
            iadd
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getDescription:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            iadd
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  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 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // java.lang.Object o
         0: .line 833
            aload 1 /* o */
            instanceof edu.umd.cs.findbugs.SourceLineAnnotation
            ifne 2
         1: .line 834
            iconst_0
            ireturn
         2: .line 836
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast edu.umd.cs.findbugs.SourceLineAnnotation
            astore 2 /* other */
        start local 2 // edu.umd.cs.findbugs.SourceLineAnnotation other
         3: .line 837
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getDescription:()Ljava/lang/String;
            aload 2 /* other */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getDescription:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 838
            iconst_0
            ireturn
         5: .line 840
      StackMap locals: edu.umd.cs.findbugs.SourceLineAnnotation
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            iconst_m1
            if_icmpeq 8
         6: .line 841
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startLine:I
            if_icmpne 7
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endLine:I
            if_icmpne 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 843
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startBytecode:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.startBytecode:I
            if_icmpne 9
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endBytecode:I
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.endBytecode:I
            if_icmpne 9
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        end local 2 // edu.umd.cs.findbugs.SourceLineAnnotation other
        end local 1 // java.lang.Object o
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0   10     1      o  Ljava/lang/Object;
            3   10     2  other  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    MethodParameters:
      Name  Flags
      o     

  public void writeXML(edu.umd.cs.findbugs.xml.XMLOutput);
    descriptor: (Ledu/umd/cs/findbugs/xml/XMLOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
         0: .line 855
            aload 0 /* this */
            aload 1 /* xmlOutput */
            iconst_0
            iconst_0
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.writeXML:(Ledu/umd/cs/findbugs/xml/XMLOutput;ZZ)V
         1: .line 856
            return
        end local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0    2     1  xmlOutput  Ledu/umd/cs/findbugs/xml/XMLOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      xmlOutput  

  public static void generateRelativeSource(java.io.File, edu.umd.cs.findbugs.Project);
    descriptor: (Ljava/io/File;Ledu/umd/cs/findbugs/Project;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.File relativeSourceBase
        start local 1 // edu.umd.cs.findbugs.Project project
         0: .line 860
            getstatic edu.umd.cs.findbugs.SourceLineAnnotation.relativeSourceBase:Ljava/lang/ThreadLocal;
            aload 0 /* relativeSourceBase */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 861
            getstatic edu.umd.cs.findbugs.SourceLineAnnotation.myProject:Ljava/lang/ThreadLocal;
            aload 1 /* project */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         2: .line 862
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 2 /* e */
        start local 2 // java.io.IOException e
         4: .line 863
            new java.lang.StringBuilder
            dup
            ldc "Error resolving relative source base "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* relativeSourceBase */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.logError:(Ljava/lang/String;Ljava/lang/Exception;)V
        end local 2 // java.io.IOException e
         5: .line 865
      StackMap locals:
      StackMap stack:
            return
        end local 1 // edu.umd.cs.findbugs.Project project
        end local 0 // java.io.File relativeSourceBase
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0  relativeSourceBase  Ljava/io/File;
            0    6     1             project  Ledu/umd/cs/findbugs/Project;
            4    5     2                   e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
    MethodParameters:
                    Name  Flags
      relativeSourceBase  
      project             

  public static void clearGenerateRelativeSource();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 868
            getstatic edu.umd.cs.findbugs.SourceLineAnnotation.myProject:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         1: .line 869
            getstatic edu.umd.cs.findbugs.SourceLineAnnotation.relativeSourceBase:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         2: .line 870
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void writeXML(edu.umd.cs.findbugs.xml.XMLOutput, boolean, boolean);
    descriptor: (Ledu/umd/cs/findbugs/xml/XMLOutput;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        start local 2 // boolean addMessages
        start local 3 // boolean isPrimary
         0: .line 874
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getClassName:()Ljava/lang/String;
            astore 4 /* classname */
        start local 4 // java.lang.String classname
         1: .line 875
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getSourcePath:()Ljava/lang/String;
            astore 5 /* sourcePath */
        start local 5 // java.lang.String sourcePath
         2: .line 877
            new edu.umd.cs.findbugs.xml.XMLAttributeList
            dup
            invokespecial edu.umd.cs.findbugs.xml.XMLAttributeList.<init>:()V
            ldc "classname"
            aload 4 /* classname */
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            astore 6 /* attributeList */
        start local 6 // edu.umd.cs.findbugs.xml.XMLAttributeList attributeList
         3: .line 878
            iload 3 /* isPrimary */
            ifeq 5
         4: .line 879
            aload 6 /* attributeList */
            ldc "primary"
            ldc "true"
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
         5: .line 882
      StackMap locals: java.lang.String java.lang.String edu.umd.cs.findbugs.xml.XMLAttributeList
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getStartLine:()I
            istore 7 /* n */
        start local 7 // int n
         6: .line 884
            iload 7 /* n */
            iflt 8
         7: .line 885
            aload 6 /* attributeList */
            ldc "start"
            iload 7 /* n */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
         8: .line 887
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getEndLine:()I
            istore 7 /* n */
         9: .line 888
            iload 7 /* n */
            iflt 11
        10: .line 889
            aload 6 /* attributeList */
            ldc "end"
            iload 7 /* n */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        11: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getStartBytecode:()I
            istore 7 /* n */
        12: .line 893
            iload 7 /* n */
            iflt 14
        13: .line 894
            aload 6 /* attributeList */
            ldc "startBytecode"
            iload 7 /* n */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        14: .line 896
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getEndBytecode:()I
            istore 7 /* n */
        15: .line 897
            iload 7 /* n */
            iflt 17
        16: .line 898
            aload 6 /* attributeList */
            ldc "endBytecode"
            iload 7 /* n */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        17: .line 901
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.isSourceFileKnown:()Z
            ifeq 29
        18: .line 902
            aload 6 /* attributeList */
            ldc "sourcefile"
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        19: .line 903
            aload 6 /* attributeList */
            ldc "sourcepath"
            aload 5 /* sourcePath */
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        20: .line 904
            getstatic edu.umd.cs.findbugs.SourceLineAnnotation.myProject:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast edu.umd.cs.findbugs.Project
            astore 8 /* project */
        start local 8 // edu.umd.cs.findbugs.Project project
        21: .line 905
            aload 8 /* project */
            ifnull 29
        22: .line 907
            aload 8 /* project */
            invokevirtual edu.umd.cs.findbugs.Project.getSourceFinder:()Ledu/umd/cs/findbugs/ba/SourceFinder;
            astore 9 /* mySourceFinder */
        start local 9 // edu.umd.cs.findbugs.ba.SourceFinder mySourceFinder
        23: .line 908
            new java.io.File
            dup
            aload 9 /* mySourceFinder */
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.ba.SourceFinder.findSourceFile:(Ledu/umd/cs/findbugs/SourceLineAnnotation;)Ledu/umd/cs/findbugs/ba/SourceFile;
            invokevirtual edu.umd.cs.findbugs.ba.SourceFile.getFullFileName:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 10 /* fullPath */
        start local 10 // java.lang.String fullPath
        24: .line 909
            getstatic edu.umd.cs.findbugs.SourceLineAnnotation.relativeSourceBase:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* myRelativeSourceBase */
        start local 11 // java.lang.String myRelativeSourceBase
        25: .line 910
            aload 10 /* fullPath */
            aload 11 /* myRelativeSourceBase */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 29
            aload 10 /* fullPath */
            invokevirtual java.lang.String.length:()I
            aload 11 /* myRelativeSourceBase */
            invokevirtual java.lang.String.length:()I
            if_icmple 29
        26: .line 911
            aload 6 /* attributeList */
            ldc "relSourcepath"
            aload 10 /* fullPath */
            aload 11 /* myRelativeSourceBase */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        end local 11 // java.lang.String myRelativeSourceBase
        end local 10 // java.lang.String fullPath
        end local 9 // edu.umd.cs.findbugs.ba.SourceFinder mySourceFinder
        27: .line 913
            goto 29
      StackMap locals: edu.umd.cs.findbugs.SourceLineAnnotation edu.umd.cs.findbugs.xml.XMLOutput int int java.lang.String java.lang.String edu.umd.cs.findbugs.xml.XMLAttributeList int edu.umd.cs.findbugs.Project
      StackMap stack: java.io.IOException
        28: pop
        end local 8 // edu.umd.cs.findbugs.Project project
        29: .line 919
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getDescription:()Ljava/lang/String;
            astore 8 /* role */
        start local 8 // java.lang.String role
        30: .line 920
            ldc "SOURCE_LINE_DEFAULT"
            aload 8 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 32
        31: .line 921
            aload 6 /* attributeList */
            ldc "role"
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getDescription:()Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        32: .line 923
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.synthetic:Z
            ifeq 34
        33: .line 924
            aload 6 /* attributeList */
            ldc "synthetic"
            ldc "true"
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
        34: .line 926
      StackMap locals:
      StackMap stack:
            iload 2 /* addMessages */
            ifeq 41
        35: .line 927
            aload 1 /* xmlOutput */
            ldc "SourceLine"
            aload 6 /* attributeList */
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openTag:(Ljava/lang/String;Ledu/umd/cs/findbugs/xml/XMLAttributeList;)V
        36: .line 928
            aload 1 /* xmlOutput */
            ldc "Message"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openTag:(Ljava/lang/String;)V
        37: .line 929
            aload 1 /* xmlOutput */
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.toString:()Ljava/lang/String;
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.writeText:(Ljava/lang/String;)V
        38: .line 930
            aload 1 /* xmlOutput */
            ldc "Message"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.closeTag:(Ljava/lang/String;)V
        39: .line 931
            aload 1 /* xmlOutput */
            ldc "SourceLine"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.closeTag:(Ljava/lang/String;)V
        40: .line 932
            goto 42
        41: .line 933
      StackMap locals:
      StackMap stack:
            aload 1 /* xmlOutput */
            ldc "SourceLine"
            aload 6 /* attributeList */
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openCloseTag:(Ljava/lang/String;Ledu/umd/cs/findbugs/xml/XMLAttributeList;)V
        42: .line 935
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.String role
        end local 7 // int n
        end local 6 // edu.umd.cs.findbugs.xml.XMLAttributeList attributeList
        end local 5 // java.lang.String sourcePath
        end local 4 // java.lang.String classname
        end local 3 // boolean isPrimary
        end local 2 // boolean addMessages
        end local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   43     0                  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0   43     1             xmlOutput  Ledu/umd/cs/findbugs/xml/XMLOutput;
            0   43     2           addMessages  Z
            0   43     3             isPrimary  Z
            1   43     4             classname  Ljava/lang/String;
            2   43     5            sourcePath  Ljava/lang/String;
            3   43     6         attributeList  Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            6   43     7                     n  I
           21   29     8               project  Ledu/umd/cs/findbugs/Project;
           23   27     9        mySourceFinder  Ledu/umd/cs/findbugs/ba/SourceFinder;
           24   27    10              fullPath  Ljava/lang/String;
           25   27    11  myRelativeSourceBase  Ljava/lang/String;
           30   43     8                  role  Ljava/lang/String;
      Exception table:
        from    to  target  type
          22    27      28  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      xmlOutput    
      addMessages  
      isPrimary    

  public java.lang.String getSourcePath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 938
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.getClassName:()Ljava/lang/String;
            astore 1 /* classname */
        start local 1 // java.lang.String classname
         1: .line 939
            ldc ""
            astore 2 /* packageName */
        start local 2 // java.lang.String packageName
         2: .line 940
            aload 1 /* classname */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            ifle 4
         3: .line 941
            aload 1 /* classname */
            iconst_0
            iconst_1
            aload 1 /* classname */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* packageName */
         4: .line 943
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* packageName */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.sourceFile:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* sourcePath */
        start local 3 // java.lang.String sourcePath
         5: .line 944
            aload 3 /* sourcePath */
            areturn
        end local 3 // java.lang.String sourcePath
        end local 2 // java.lang.String packageName
        end local 1 // java.lang.String classname
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            1    6     1    classname  Ljava/lang/String;
            2    6     2  packageName  Ljava/lang/String;
            5    6     3   sourcePath  Ljava/lang/String;

  public void setSynthetic(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // boolean synthetic
         0: .line 948
            aload 0 /* this */
            iload 1 /* synthetic */
            putfield edu.umd.cs.findbugs.SourceLineAnnotation.synthetic:Z
         1: .line 949
            return
        end local 1 // boolean synthetic
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0    2     1  synthetic  Z
    MethodParameters:
           Name  Flags
      synthetic  

  public boolean isSynthetic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 952
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.SourceLineAnnotation.synthetic:Z
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  public boolean isSignificant();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
         0: .line 957
            iconst_0
            ireturn
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/SourceLineAnnotation;

  static edu.umd.cs.findbugs.SourceLineAnnotation getSourceAnnotationForMethod(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // java.lang.String className
        start local 1 // java.lang.String methodName
        start local 2 // java.lang.String methodSig
         0: .line 961
            aconst_null
            astore 3 /* targetMethod */
        start local 3 // edu.umd.cs.findbugs.ba.JavaClassAndMethod targetMethod
         1: .line 962
            aconst_null
            astore 4 /* code */
        start local 4 // org.apache.bcel.classfile.Code code
         2: .line 965
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
            aload 0 /* className */
            invokevirtual edu.umd.cs.findbugs.ba.AnalysisContext.lookupClass:(Ljava/lang/String;)Lorg/apache/bcel/classfile/JavaClass;
            astore 5 /* targetClass */
        start local 5 // org.apache.bcel.classfile.JavaClass targetClass
         3: .line 966
            aload 5 /* targetClass */
            aload 1 /* methodName */
            aload 2 /* methodSig */
            invokestatic edu.umd.cs.findbugs.ba.Hierarchy.findMethod:(Lorg/apache/bcel/classfile/JavaClass;Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/ba/JavaClassAndMethod;
            astore 3 /* targetMethod */
         4: .line 967
            aload 3 /* targetMethod */
            ifnull 11
         5: .line 968
            aload 3 /* targetMethod */
            invokevirtual edu.umd.cs.findbugs.ba.JavaClassAndMethod.getMethod:()Lorg/apache/bcel/classfile/Method;
            astore 6 /* method */
        start local 6 // org.apache.bcel.classfile.Method method
         6: .line 969
            aload 6 /* method */
            ifnull 11
         7: .line 970
            aload 6 /* method */
            invokevirtual org.apache.bcel.classfile.Method.getCode:()Lorg/apache/bcel/classfile/Code;
            astore 4 /* code */
        end local 6 // org.apache.bcel.classfile.Method method
        end local 5 // org.apache.bcel.classfile.JavaClass targetClass
         8: .line 974
            goto 11
      StackMap locals: java.lang.String java.lang.String java.lang.String edu.umd.cs.findbugs.ba.JavaClassAndMethod org.apache.bcel.classfile.Code
      StackMap stack: java.lang.ClassNotFoundException
         9: astore 5 /* e */
        start local 5 // java.lang.ClassNotFoundException e
        10: .line 975
            aload 5 /* e */
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.reportMissingClass:(Ljava/lang/ClassNotFoundException;)V
        end local 5 // java.lang.ClassNotFoundException e
        11: .line 977
      StackMap locals:
      StackMap stack:
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
            invokevirtual edu.umd.cs.findbugs.ba.AnalysisContext.getSourceInfoMap:()Ledu/umd/cs/findbugs/ba/SourceInfoMap;
            astore 5 /* sourceInfoMap */
        start local 5 // edu.umd.cs.findbugs.ba.SourceInfoMap sourceInfoMap
        12: .line 978
            aload 5 /* sourceInfoMap */
            aload 0 /* className */
            aload 1 /* methodName */
            aload 2 /* methodSig */
            invokevirtual edu.umd.cs.findbugs.ba.SourceInfoMap.getMethodLine:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/ba/SourceInfoMap$SourceLineRange;
            astore 6 /* range */
        start local 6 // edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange range
        13: .line 980
            aload 6 /* range */
            ifnull 18
        14: .line 981
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* className */
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
            aload 0 /* className */
            invokevirtual edu.umd.cs.findbugs.ba.AnalysisContext.lookupSourceFile:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 982
            aload 6 /* range */
            invokevirtual edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange.getStart:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            aload 6 /* range */
            invokevirtual edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange.getEnd:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            iconst_0
            aload 4 /* code */
            ifnonnull 16
            iconst_m1
            goto 17
      StackMap locals: java.lang.String java.lang.String java.lang.String edu.umd.cs.findbugs.ba.JavaClassAndMethod org.apache.bcel.classfile.Code edu.umd.cs.findbugs.ba.SourceInfoMap edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange
      StackMap stack: new 14 new 14 java.lang.String java.lang.String int int int
        16: aload 4 /* code */
            invokevirtual org.apache.bcel.classfile.Code.getLength:()I
        17: .line 981
      StackMap locals: java.lang.String java.lang.String java.lang.String edu.umd.cs.findbugs.ba.JavaClassAndMethod org.apache.bcel.classfile.Code edu.umd.cs.findbugs.ba.SourceInfoMap edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange
      StackMap stack: new 14 new 14 java.lang.String java.lang.String int int int int
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        18: .line 985
      StackMap locals:
      StackMap stack:
            aload 5 /* sourceInfoMap */
            invokevirtual edu.umd.cs.findbugs.ba.SourceInfoMap.fallBackToClassfile:()Z
            ifeq 20
            aload 3 /* targetMethod */
            ifnull 20
        19: .line 986
            aload 3 /* targetMethod */
            invokevirtual edu.umd.cs.findbugs.ba.JavaClassAndMethod.getJavaClass:()Lorg/apache/bcel/classfile/JavaClass;
            aload 3 /* targetMethod */
            invokevirtual edu.umd.cs.findbugs.ba.JavaClassAndMethod.getMethod:()Lorg/apache/bcel/classfile/Method;
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.forEntireMethod:(Lorg/apache/bcel/classfile/JavaClass;Lorg/apache/bcel/classfile/Method;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        20: .line 993
      StackMap locals:
      StackMap stack:
            aload 0 /* className */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 6 // edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange range
        end local 5 // edu.umd.cs.findbugs.ba.SourceInfoMap sourceInfoMap
        end local 4 // org.apache.bcel.classfile.Code code
        end local 3 // edu.umd.cs.findbugs.ba.JavaClassAndMethod targetMethod
        end local 2 // java.lang.String methodSig
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0      className  Ljava/lang/String;
            0   21     1     methodName  Ljava/lang/String;
            0   21     2      methodSig  Ljava/lang/String;
            1   21     3   targetMethod  Ledu/umd/cs/findbugs/ba/JavaClassAndMethod;
            2   21     4           code  Lorg/apache/bcel/classfile/Code;
            3    8     5    targetClass  Lorg/apache/bcel/classfile/JavaClass;
            6    8     6         method  Lorg/apache/bcel/classfile/Method;
           10   11     5              e  Ljava/lang/ClassNotFoundException;
           12   21     5  sourceInfoMap  Ledu/umd/cs/findbugs/ba/SourceInfoMap;
           13   21     6          range  Ledu/umd/cs/findbugs/ba/SourceInfoMap$SourceLineRange;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.ClassNotFoundException
    MethodParameters:
            Name  Flags
      className   
      methodName  
      methodSig   

  static edu.umd.cs.findbugs.SourceLineAnnotation getSourceAnnotationForClass(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=15, args_size=2
        start local 0 // java.lang.String className
        start local 1 // java.lang.String sourceFileName
         0: .line 998
            iconst_m1
            istore 2 /* lastLine */
        start local 2 // int lastLine
         1: .line 999
            ldc 2147483647
            istore 3 /* firstLine */
        start local 3 // int firstLine
         2: .line 1002
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
            aload 0 /* className */
            invokevirtual edu.umd.cs.findbugs.ba.AnalysisContext.lookupClass:(Ljava/lang/String;)Lorg/apache/bcel/classfile/JavaClass;
            astore 4 /* targetClass */
        start local 4 // org.apache.bcel.classfile.JavaClass targetClass
         3: .line 1003
            aload 4 /* targetClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getMethods:()[Lorg/apache/bcel/classfile/Method;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 16
      StackMap locals: java.lang.String java.lang.String int int org.apache.bcel.classfile.JavaClass top int int org.apache.bcel.classfile.Method[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* m */
        start local 5 // org.apache.bcel.classfile.Method m
         5: .line 1004
            aload 5 /* m */
            invokevirtual org.apache.bcel.classfile.Method.getCode:()Lorg/apache/bcel/classfile/Code;
            astore 9 /* c */
        start local 9 // org.apache.bcel.classfile.Code c
         6: .line 1005
            aload 9 /* c */
            ifnull 15
         7: .line 1006
            aload 9 /* c */
            invokevirtual org.apache.bcel.classfile.Code.getLineNumberTable:()Lorg/apache/bcel/classfile/LineNumberTable;
            astore 10 /* table */
        start local 10 // org.apache.bcel.classfile.LineNumberTable table
         8: .line 1007
            aload 10 /* table */
            ifnull 15
         9: .line 1008
            aload 10 /* table */
            invokevirtual org.apache.bcel.classfile.LineNumberTable.getLineNumberTable:()[Lorg/apache/bcel/classfile/LineNumber;
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 14
      StackMap locals: java.lang.String java.lang.String int int org.apache.bcel.classfile.JavaClass org.apache.bcel.classfile.Method int int org.apache.bcel.classfile.Method[] org.apache.bcel.classfile.Code org.apache.bcel.classfile.LineNumberTable top int int org.apache.bcel.classfile.LineNumber[]
      StackMap stack:
        10: aload 14
            iload 12
            aaload
            astore 11 /* line */
        start local 11 // org.apache.bcel.classfile.LineNumber line
        11: .line 1009
            iload 2 /* lastLine */
            aload 11 /* line */
            invokevirtual org.apache.bcel.classfile.LineNumber.getLineNumber:()I
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* lastLine */
        12: .line 1010
            iload 3 /* firstLine */
            aload 11 /* line */
            invokevirtual org.apache.bcel.classfile.LineNumber.getLineNumber:()I
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* firstLine */
        end local 11 // org.apache.bcel.classfile.LineNumber line
        13: .line 1008
            iinc 12 1
      StackMap locals:
      StackMap stack:
        14: iload 12
            iload 13
            if_icmplt 10
        end local 10 // org.apache.bcel.classfile.LineNumberTable table
        end local 9 // org.apache.bcel.classfile.Code c
        end local 5 // org.apache.bcel.classfile.Method m
        15: .line 1003
      StackMap locals: java.lang.String java.lang.String int int org.apache.bcel.classfile.JavaClass top int int org.apache.bcel.classfile.Method[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        16: iload 6
            iload 7
            if_icmplt 4
        end local 4 // org.apache.bcel.classfile.JavaClass targetClass
        17: .line 1015
            goto 20
      StackMap locals: java.lang.String java.lang.String int int
      StackMap stack: java.lang.ClassNotFoundException
        18: astore 4 /* e */
        start local 4 // java.lang.ClassNotFoundException e
        19: .line 1016
            aload 4 /* e */
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.reportMissingClass:(Ljava/lang/ClassNotFoundException;)V
        end local 4 // java.lang.ClassNotFoundException e
        20: .line 1018
      StackMap locals:
      StackMap stack:
            iload 3 /* firstLine */
            ldc 2147483647
            if_icmpge 22
        21: .line 1019
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* className */
            aload 1 /* sourceFileName */
            iload 3 /* firstLine */
            iload 2 /* lastLine */
            iconst_m1
            iconst_m1
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        22: .line 1021
      StackMap locals:
      StackMap stack:
            aload 0 /* className */
            aload 1 /* sourceFileName */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.createUnknown:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 3 // int firstLine
        end local 2 // int lastLine
        end local 1 // java.lang.String sourceFileName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0       className  Ljava/lang/String;
            0   23     1  sourceFileName  Ljava/lang/String;
            1   23     2        lastLine  I
            2   23     3       firstLine  I
            3   17     4     targetClass  Lorg/apache/bcel/classfile/JavaClass;
            5   15     5               m  Lorg/apache/bcel/classfile/Method;
            6   15     9               c  Lorg/apache/bcel/classfile/Code;
            8   15    10           table  Lorg/apache/bcel/classfile/LineNumberTable;
           11   13    11            line  Lorg/apache/bcel/classfile/LineNumber;
           19   20     4               e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           2    17      18  Class java.lang.ClassNotFoundException
    MethodParameters:
                Name  Flags
      className       
      sourceFileName  

  public java.lang.String toString(edu.umd.cs.findbugs.ClassAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
        start local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
         0: .line 1026
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.toString:()Ljava/lang/String;
            areturn
        end local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
        end local 0 // edu.umd.cs.findbugs.SourceLineAnnotation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ledu/umd/cs/findbugs/SourceLineAnnotation;
            0    1     1  primaryClass  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
              Name  Flags
      primaryClass  

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast edu.umd.cs.findbugs.BugAnnotation
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.compareTo:(Ledu/umd/cs/findbugs/BugAnnotation;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SourceLineAnnotation.java"
InnerClasses:
  public SourceLineRange = edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange of edu.umd.cs.findbugs.ba.SourceInfoMap