public abstract class org.eclipse.osgi.util.NLS
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.eclipse.osgi.util.NLS
  super_class: java.lang.Object
{
  private static final java.lang.Object[] EMPTY_ARGS;
    descriptor: [Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static java.lang.String[] nlSuffixes;
    descriptor: [Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String PROP_WARNINGS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "osgi.nls.warnings"

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

  private static final boolean ignoreWarnings;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static org.eclipse.osgi.framework.log.FrameworkLog frameworkLog;
    descriptor: Lorg/eclipse/osgi/framework/log/FrameworkLog;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static final int SEVERITY_ERROR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int SEVERITY_WARNING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final java.lang.Object ASSIGNED;
    descriptor: Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 62
            iconst_0
            anewarray java.lang.Object
            putstatic org.eclipse.osgi.util.NLS.EMPTY_ARGS:[Ljava/lang/Object;
         1: .line 67
            new org.eclipse.osgi.util.NLS$1
            dup
            invokespecial org.eclipse.osgi.util.NLS$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic org.eclipse.osgi.util.NLS.ignoreWarnings:Z
         2: .line 85
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.eclipse.osgi.util.NLS.ASSIGNED:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.osgi.util.NLS this
         0: .line 91
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 92
            return
        end local 0 // org.eclipse.osgi.util.NLS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/osgi/util/NLS;

  public static java.lang.String bind(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String message
        start local 1 // java.lang.Object binding
         0: .line 103
            aload 0 /* message */
            aconst_null
            aload 1 /* binding */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            invokestatic org.eclipse.osgi.util.NLS.internalBind:(Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object binding
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  message  Ljava/lang/String;
            0    1     1  binding  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      message  
      binding  

  public static java.lang.String bind(java.lang.String, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String message
        start local 1 // java.lang.Object binding1
        start local 2 // java.lang.Object binding2
         0: .line 116
            aload 0 /* message */
            aconst_null
            aload 1 /* binding1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            aload 2 /* binding2 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.eclipse.osgi.util.NLS.internalBind:(Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.Object binding2
        end local 1 // java.lang.Object binding1
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   message  Ljava/lang/String;
            0    1     1  binding1  Ljava/lang/Object;
            0    1     2  binding2  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      message   
      binding1  
      binding2  

  public static java.lang.String bind(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String message
        start local 1 // java.lang.Object[] bindings
         0: .line 128
            aload 0 /* message */
            aload 1 /* bindings */
            aconst_null
            aconst_null
            invokestatic org.eclipse.osgi.util.NLS.internalBind:(Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object[] bindings
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   message  Ljava/lang/String;
            0    1     1  bindings  [Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      message   
      bindings  

  public static void initializeMessages(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String baseName
        start local 1 // java.lang.Class clazz
         0: .line 151
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnonnull 3
         1: .line 152
            aload 0 /* baseName */
            aload 1 /* clazz */
            invokestatic org.eclipse.osgi.util.NLS.load:(Ljava/lang/String;Ljava/lang/Class;)V
         2: .line 153
            return
         3: .line 155
      StackMap locals:
      StackMap stack:
            new org.eclipse.osgi.util.NLS$2
            dup
            aload 0 /* baseName */
            aload 1 /* clazz */
            invokespecial org.eclipse.osgi.util.NLS$2.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         4: .line 162
            return
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.String baseName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  baseName  Ljava/lang/String;
            0    5     1     clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)V
    MethodParameters:
          Name  Flags
      baseName  final
      clazz     final

  private static java.lang.String internalBind(java.lang.String, java.lang.Object[], java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // java.lang.String message
        start local 1 // java.lang.Object[] args
        start local 2 // java.lang.String argZero
        start local 3 // java.lang.String argOne
         0: .line 169
            aload 0 /* message */
            ifnonnull 2
         1: .line 170
            ldc "No message available."
            areturn
         2: .line 171
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            ifnull 3
            aload 1 /* args */
            arraylength
            ifne 4
         3: .line 172
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.osgi.util.NLS.EMPTY_ARGS:[Ljava/lang/Object;
            astore 1 /* args */
         4: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* message */
            invokevirtual java.lang.String.length:()I
            istore 4 /* length */
        start local 4 // int length
         5: .line 176
            iload 4 /* length */
            aload 1 /* args */
            arraylength
            iconst_5
            imul
            iadd
            istore 5 /* bufLen */
        start local 5 // int bufLen
         6: .line 177
            aload 2 /* argZero */
            ifnull 8
         7: .line 178
            iload 5 /* bufLen */
            aload 2 /* argZero */
            invokevirtual java.lang.String.length:()I
            iconst_3
            isub
            iadd
            istore 5 /* bufLen */
         8: .line 179
      StackMap locals: int int
      StackMap stack:
            aload 3 /* argOne */
            ifnull 10
         9: .line 180
            iload 5 /* bufLen */
            aload 3 /* argOne */
            invokevirtual java.lang.String.length:()I
            iconst_3
            isub
            iadd
            istore 5 /* bufLen */
        10: .line 181
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iload 5 /* bufLen */
            ifge 11
            iconst_0
            goto 12
      StackMap locals: java.lang.String java.lang.Object[] java.lang.String java.lang.String int int
      StackMap stack: new 10 new 10
        11: iload 5 /* bufLen */
      StackMap locals: java.lang.String java.lang.Object[] java.lang.String java.lang.String int int
      StackMap stack: new 10 new 10 int
        12: invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 6 /* buffer */
        start local 6 // java.lang.StringBuilder buffer
        13: .line 182
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        14: goto 59
        15: .line 183
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* message */
            iload 7 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* c */
        start local 8 // char c
        16: .line 184
            iload 8 /* c */
            lookupswitch { // 2
                   39: 41
                  123: 17
              default: 57
          }
        17: .line 186
      StackMap locals: int
      StackMap stack:
            aload 0 /* message */
            bipush 125
            iload 7 /* i */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 9 /* index */
        start local 9 // int index
        18: .line 188
            iload 9 /* index */
            iconst_m1
            if_icmpne 21
        19: .line 189
            aload 6 /* buffer */
            iload 8 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        20: .line 190
            goto 58
        21: .line 192
      StackMap locals: int
      StackMap stack:
            iinc 7 /* i */ 1
        22: .line 193
            iload 7 /* i */
            iload 4 /* length */
            if_icmplt 25
        23: .line 194
            aload 6 /* buffer */
            iload 8 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        24: .line 195
            goto 58
        25: .line 198
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 10 /* number */
        start local 10 // int number
        26: .line 200
            aload 0 /* message */
            iload 7 /* i */
            iload 9 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 10 /* number */
        27: .line 201
            goto 30
      StackMap locals: java.lang.String java.lang.Object[] java.lang.String java.lang.String int int java.lang.StringBuilder int int int int
      StackMap stack: java.lang.NumberFormatException
        28: astore 11 /* e */
        start local 11 // java.lang.NumberFormatException e
        29: .line 202
            new java.lang.IllegalArgumentException
            dup
            aload 11 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.lang.NumberFormatException e
        30: .line 204
      StackMap locals:
      StackMap stack:
            iload 10 /* number */
            ifne 32
            aload 2 /* argZero */
            ifnull 32
        31: .line 205
            aload 6 /* buffer */
            aload 2 /* argZero */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 39
        32: .line 206
      StackMap locals:
      StackMap stack:
            iload 10 /* number */
            iconst_1
            if_icmpne 34
            aload 3 /* argOne */
            ifnull 34
        33: .line 207
            aload 6 /* buffer */
            aload 3 /* argOne */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 39
        34: .line 209
      StackMap locals:
      StackMap stack:
            iload 10 /* number */
            aload 1 /* args */
            arraylength
            if_icmpge 35
            iload 10 /* number */
            ifge 38
        35: .line 210
      StackMap locals:
      StackMap stack:
            aload 6 /* buffer */
            ldc "<missing argument>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        36: .line 211
            iload 9 /* index */
            istore 7 /* i */
        37: .line 212
            goto 58
        38: .line 214
      StackMap locals:
      StackMap stack:
            aload 6 /* buffer */
            aload 1 /* args */
            iload 10 /* number */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        39: .line 216
      StackMap locals:
      StackMap stack:
            iload 9 /* index */
            istore 7 /* i */
        40: .line 217
            goto 58
        end local 10 // int number
        end local 9 // int index
        41: .line 220
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iconst_1
            iadd
            istore 11 /* nextIndex */
        start local 11 // int nextIndex
        42: .line 221
            iload 11 /* nextIndex */
            iload 4 /* length */
            if_icmplt 45
        43: .line 222
            aload 6 /* buffer */
            iload 8 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        44: .line 223
            goto 58
        45: .line 225
      StackMap locals: java.lang.String java.lang.Object[] java.lang.String java.lang.String int int java.lang.StringBuilder int int top top int
      StackMap stack:
            aload 0 /* message */
            iload 11 /* nextIndex */
            invokevirtual java.lang.String.charAt:(I)C
            istore 12 /* next */
        start local 12 // char next
        46: .line 227
            iload 12 /* next */
            bipush 39
            if_icmpne 50
        47: .line 228
            iinc 7 /* i */ 1
        48: .line 229
            aload 6 /* buffer */
            iload 8 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        49: .line 230
            goto 58
        50: .line 233
      StackMap locals: int
      StackMap stack:
            aload 0 /* message */
            bipush 39
            iload 11 /* nextIndex */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 9 /* index */
        start local 9 // int index
        51: .line 235
            iload 9 /* index */
            iconst_m1
            if_icmpne 54
        52: .line 236
            aload 6 /* buffer */
            iload 8 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        53: .line 237
            goto 58
        54: .line 240
      StackMap locals: java.lang.String java.lang.Object[] java.lang.String java.lang.String int int java.lang.StringBuilder int int int top int int
      StackMap stack:
            aload 6 /* buffer */
            aload 0 /* message */
            iload 11 /* nextIndex */
            iload 9 /* index */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        55: .line 241
            iload 9 /* index */
            istore 7 /* i */
        56: .line 242
            goto 58
        end local 12 // char next
        end local 11 // int nextIndex
        end local 9 // int index
        57: .line 244
      StackMap locals: java.lang.String java.lang.Object[] java.lang.String java.lang.String int int java.lang.StringBuilder int int
      StackMap stack:
            aload 6 /* buffer */
            iload 8 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 8 // char c
        58: .line 182
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        59: iload 7 /* i */
            iload 4 /* length */
            if_icmplt 15
        end local 7 // int i
        60: .line 247
            aload 6 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 6 // java.lang.StringBuilder buffer
        end local 5 // int bufLen
        end local 4 // int length
        end local 3 // java.lang.String argOne
        end local 2 // java.lang.String argZero
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   61     0    message  Ljava/lang/String;
            0   61     1       args  [Ljava/lang/Object;
            0   61     2    argZero  Ljava/lang/String;
            0   61     3     argOne  Ljava/lang/String;
            5   61     4     length  I
            6   61     5     bufLen  I
           13   61     6     buffer  Ljava/lang/StringBuilder;
           14   60     7          i  I
           16   58     8          c  C
           18   41     9      index  I
           51   57     9      index  I
           26   41    10     number  I
           29   30    11          e  Ljava/lang/NumberFormatException;
           42   57    11  nextIndex  I
           46   57    12       next  C
      Exception table:
        from    to  target  type
          26    27      28  Class java.lang.NumberFormatException
    MethodParameters:
         Name  Flags
      message  
      args     
      argZero  
      argOne   

  private static java.lang.String[] buildVariants(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.String root
         0: .line 257
            getstatic org.eclipse.osgi.util.NLS.nlSuffixes:[Ljava/lang/String;
            ifnonnull 11
         1: .line 259
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokevirtual java.util.Locale.toString:()Ljava/lang/String;
            astore 1 /* nl */
        start local 1 // java.lang.String nl
         2: .line 260
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* result */
        start local 2 // java.util.List result
         3: .line 263
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            aload 2 /* result */
            new java.lang.StringBuilder
            dup
            bipush 95
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* nl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".properties"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 264
            aload 1 /* nl */
            bipush 95
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* lastSeparator */
        start local 3 // int lastSeparator
         5: .line 265
            iload 3 /* lastSeparator */
            iconst_m1
            if_icmpne 7
         6: .line 266
            goto 9
         7: .line 267
      StackMap locals: int
      StackMap stack:
            aload 1 /* nl */
            iconst_0
            iload 3 /* lastSeparator */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* nl */
        end local 3 // int lastSeparator
         8: .line 262
            goto 3
        start local 3 // int lastSeparator
         9: .line 270
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            ldc ".properties"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 271
            aload 2 /* result */
            aload 2 /* result */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            putstatic org.eclipse.osgi.util.NLS.nlSuffixes:[Ljava/lang/String;
        end local 3 // int lastSeparator
        end local 2 // java.util.List result
        end local 1 // java.lang.String nl
        11: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* root */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 0 /* root */
        12: .line 274
            getstatic org.eclipse.osgi.util.NLS.nlSuffixes:[Ljava/lang/String;
            arraylength
            anewarray java.lang.String
            astore 1 /* variants */
        start local 1 // java.lang.String[] variants
        13: .line 275
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        14: goto 17
        15: .line 276
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 1 /* variants */
            iload 2 /* i */
            new java.lang.StringBuilder
            dup
            aload 0 /* root */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.eclipse.osgi.util.NLS.nlSuffixes:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        16: .line 275
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            aload 1 /* variants */
            arraylength
            if_icmplt 15
        end local 2 // int i
        18: .line 277
            aload 1 /* variants */
            areturn
        end local 1 // java.lang.String[] variants
        end local 0 // java.lang.String root
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           root  Ljava/lang/String;
            2   11     1             nl  Ljava/lang/String;
            3   11     2         result  Ljava/util/List<Ljava/lang/String;>;
            5    8     3  lastSeparator  I
            9   11     3  lastSeparator  I
           13   19     1       variants  [Ljava/lang/String;
           14   18     2              i  I
    MethodParameters:
      Name  Flags
      root  

  private static void computeMissingMessages(java.lang.String, java.lang.Class<?>, java.util.Map<java.lang.Object, java.lang.Object>, java.lang.reflect.Field[], );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/util/Map;[Ljava/lang/reflect/Field;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // java.lang.String bundleName
        start local 1 // java.lang.Class clazz
        start local 2 // java.util.Map fieldMap
        start local 3 // java.lang.reflect.Field[] fieldArray
        start local 4 // boolean isAccessible
         0: .line 284
            aload 3 /* fieldArray */
            arraylength
            istore 5 /* numFields */
        start local 5 // int numFields
         1: .line 285
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 19
         3: .line 286
      StackMap locals: int int
      StackMap stack:
            aload 3 /* fieldArray */
            iload 6 /* i */
            aaload
            astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
         4: .line 287
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            bipush 25
            iand
            bipush 9
            if_icmpeq 6
         5: .line 288
            goto 18
         6: .line 290
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 2 /* fieldMap */
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            getstatic org.eclipse.osgi.util.NLS.ASSIGNED:Ljava/lang/Object;
            if_acmpne 8
         7: .line 291
            goto 18
         8: .line 297
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "NLS missing message: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* bundleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* value */
        start local 8 // java.lang.String value
         9: .line 298
            getstatic org.eclipse.osgi.internal.util.SupplementDebug.STATIC_DEBUG_MESSAGE_BUNDLES:Z
            ifeq 11
        10: .line 299
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 8 /* value */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 300
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_2
            aload 8 /* value */
            aconst_null
            invokestatic org.eclipse.osgi.util.NLS.log:(ILjava/lang/String;Ljava/lang/Exception;)V
        12: .line 301
            iload 4 /* isAccessible */
            ifne 14
        13: .line 302
            aload 7 /* field */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        14: .line 303
      StackMap locals:
      StackMap stack:
            aload 7 /* field */
            aconst_null
            aload 8 /* value */
            invokevirtual java.lang.reflect.Field.set:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 8 // java.lang.String value
        15: .line 304
            goto 18
      StackMap locals: java.lang.String java.lang.Class java.util.Map java.lang.reflect.Field[] int int int java.lang.reflect.Field
      StackMap stack: java.lang.Exception
        16: astore 8 /* e */
        start local 8 // java.lang.Exception e
        17: .line 305
            iconst_4
            new java.lang.StringBuilder
            dup
            ldc "Error setting the missing message value for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* e */
            invokestatic org.eclipse.osgi.util.NLS.log:(ILjava/lang/String;Ljava/lang/Exception;)V
        end local 8 // java.lang.Exception e
        end local 7 // java.lang.reflect.Field field
        18: .line 285
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 5 /* numFields */
            if_icmplt 3
        end local 6 // int i
        20: .line 308
            return
        end local 5 // int numFields
        end local 4 // boolean isAccessible
        end local 3 // java.lang.reflect.Field[] fieldArray
        end local 2 // java.util.Map fieldMap
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.String bundleName
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0    bundleName  Ljava/lang/String;
            0   21     1         clazz  Ljava/lang/Class<*>;
            0   21     2      fieldMap  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            0   21     3    fieldArray  [Ljava/lang/reflect/Field;
            0   21     4  isAccessible  Z
            1   21     5     numFields  I
            2   20     6             i  I
            4   18     7         field  Ljava/lang/reflect/Field;
            9   15     8         value  Ljava/lang/String;
           17   18     8             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    15      16  Class java.lang.Exception
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;[Ljava/lang/reflect/Field;Z)V
    MethodParameters:
              Name  Flags
      bundleName    
      clazz         
      fieldMap      
      fieldArray    
      isAccessible  

  static void load(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=17, args_size=2
        start local 0 // java.lang.String bundleName
        start local 1 // java.lang.Class clazz
         0: .line 314
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 2 /* start */
        start local 2 // long start
         1: .line 315
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            astore 4 /* fieldArray */
        start local 4 // java.lang.reflect.Field[] fieldArray
         2: .line 316
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* loader */
        start local 5 // java.lang.ClassLoader loader
         3: .line 318
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            iconst_1
            iand
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: long java.lang.reflect.Field[] java.lang.ClassLoader
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* isAccessible */
        start local 6 // boolean isAccessible
         6: .line 321
            aload 4 /* fieldArray */
            arraylength
            istore 7 /* len */
        start local 7 // int len
         7: .line 322
            new java.util.HashMap
            dup
            iload 7 /* len */
            iconst_2
            imul
            invokespecial java.util.HashMap.<init>:(I)V
            astore 8 /* fields */
        start local 8 // java.util.Map fields
         8: .line 323
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         9: goto 12
        10: .line 324
      StackMap locals: java.lang.String java.lang.Class long java.lang.reflect.Field[] java.lang.ClassLoader int int java.util.Map int
      StackMap stack:
            aload 8 /* fields */
            aload 4 /* fieldArray */
            iload 9 /* i */
            aaload
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            aload 4 /* fieldArray */
            iload 9 /* i */
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 323
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 9 /* i */
            iload 7 /* len */
            if_icmplt 10
        end local 9 // int i
        13: .line 329
            aload 0 /* bundleName */
            invokestatic org.eclipse.osgi.util.NLS.buildVariants:(Ljava/lang/String;)[Ljava/lang/String;
            astore 9 /* variants */
        start local 9 // java.lang.String[] variants
        14: .line 330
            aload 9 /* variants */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 41
      StackMap locals: java.lang.String java.lang.Class long java.lang.reflect.Field[] java.lang.ClassLoader int int java.util.Map java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        15: aload 13
            iload 11
            aaload
            astore 10 /* variant */
        start local 10 // java.lang.String variant
        16: .line 332
            aload 5 /* loader */
            ifnonnull 17
            aload 10 /* variant */
            invokestatic java.lang.ClassLoader.getSystemResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            goto 18
      StackMap locals: java.lang.String java.lang.Class long java.lang.reflect.Field[] java.lang.ClassLoader int int java.util.Map java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack:
        17: aload 5 /* loader */
            aload 10 /* variant */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
      StackMap locals:
      StackMap stack: java.io.InputStream
        18: astore 14 /* input */
        start local 14 // java.io.InputStream input
        19: .line 333
            aload 14 /* input */
            ifnonnull 21
        20: .line 334
            goto 40
        21: .line 336
      StackMap locals: java.io.InputStream
      StackMap stack:
            new org.eclipse.osgi.util.NLS$MessagesProperties
            dup
            aload 8 /* fields */
            aload 0 /* bundleName */
            iload 6 /* isAccessible */
            invokespecial org.eclipse.osgi.util.NLS$MessagesProperties.<init>:(Ljava/util/Map;Ljava/lang/String;Z)V
            astore 15 /* properties */
        start local 15 // org.eclipse.osgi.util.NLS$MessagesProperties properties
        22: .line 337
            aload 15 /* properties */
            aload 14 /* input */
            invokevirtual org.eclipse.osgi.util.NLS$MessagesProperties.load:(Ljava/io/InputStream;)V
        end local 15 // org.eclipse.osgi.util.NLS$MessagesProperties properties
        23: .line 338
            goto 36
      StackMap locals:
      StackMap stack: java.io.IOException
        24: astore 15 /* e */
        start local 15 // java.io.IOException e
        25: .line 339
            iconst_4
            new java.lang.StringBuilder
            dup
            ldc "Error loading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* variant */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 15 /* e */
            invokestatic org.eclipse.osgi.util.NLS.log:(ILjava/lang/String;Ljava/lang/Exception;)V
        end local 15 // java.io.IOException e
        26: .line 341
            aload 14 /* input */
            ifnull 40
        27: .line 343
            aload 14 /* input */
            invokevirtual java.io.InputStream.close:()V
        28: .line 344
            goto 40
      StackMap locals:
      StackMap stack: java.io.IOException
        29: pop
            goto 40
        30: .line 340
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 16
        31: .line 341
            aload 14 /* input */
            ifnull 35
        32: .line 343
            aload 14 /* input */
            invokevirtual java.io.InputStream.close:()V
        33: .line 344
            goto 35
      StackMap locals: java.lang.String java.lang.Class long java.lang.reflect.Field[] java.lang.ClassLoader int int java.util.Map java.lang.String[] java.lang.String int int java.lang.String[] java.io.InputStream top java.lang.Throwable
      StackMap stack: java.io.IOException
        34: pop
        35: .line 347
      StackMap locals:
      StackMap stack:
            aload 16
            athrow
        36: .line 341
      StackMap locals: java.lang.String java.lang.Class long java.lang.reflect.Field[] java.lang.ClassLoader int int java.util.Map java.lang.String[] java.lang.String int int java.lang.String[] java.io.InputStream
      StackMap stack:
            aload 14 /* input */
            ifnull 40
        37: .line 343
            aload 14 /* input */
            invokevirtual java.io.InputStream.close:()V
        38: .line 344
            goto 40
      StackMap locals:
      StackMap stack: java.io.IOException
        39: pop
        end local 14 // java.io.InputStream input
        end local 10 // java.lang.String variant
        40: .line 330
      StackMap locals: java.lang.String java.lang.Class long java.lang.reflect.Field[] java.lang.ClassLoader int int java.util.Map java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        41: iload 11
            iload 12
            if_icmplt 15
        42: .line 349
            aload 0 /* bundleName */
            aload 1 /* clazz */
            aload 8 /* fields */
            aload 4 /* fieldArray */
            iload 6 /* isAccessible */
            invokestatic org.eclipse.osgi.util.NLS.computeMissingMessages:(Ljava/lang/String;Ljava/lang/Class;Ljava/util/Map;[Ljava/lang/reflect/Field;Z)V
        43: .line 350
            getstatic org.eclipse.osgi.internal.util.SupplementDebug.STATIC_DEBUG_MESSAGE_BUNDLES:Z
            ifeq 45
        44: .line 351
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Time to load message bundle: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* bundleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " was "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 2 /* start */
            lsub
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        45: .line 352
      StackMap locals: java.lang.String java.lang.Class long java.lang.reflect.Field[] java.lang.ClassLoader int int java.util.Map java.lang.String[]
      StackMap stack:
            return
        end local 9 // java.lang.String[] variants
        end local 8 // java.util.Map fields
        end local 7 // int len
        end local 6 // boolean isAccessible
        end local 5 // java.lang.ClassLoader loader
        end local 4 // java.lang.reflect.Field[] fieldArray
        end local 2 // long start
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.String bundleName
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   46     0    bundleName  Ljava/lang/String;
            0   46     1         clazz  Ljava/lang/Class<*>;
            1   46     2         start  J
            2   46     4    fieldArray  [Ljava/lang/reflect/Field;
            3   46     5        loader  Ljava/lang/ClassLoader;
            6   46     6  isAccessible  Z
            7   46     7           len  I
            8   46     8        fields  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            9   13     9             i  I
           14   46     9      variants  [Ljava/lang/String;
           16   40    10       variant  Ljava/lang/String;
           19   40    14         input  Ljava/io/InputStream;
           22   23    15    properties  Lorg/eclipse/osgi/util/NLS$MessagesProperties;
           25   26    15             e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          21    23      24  Class java.io.IOException
          27    28      29  Class java.io.IOException
          21    26      30  any
          32    33      34  Class java.io.IOException
          37    38      39  Class java.io.IOException
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      bundleName  final
      clazz       

  static void log(int, java.lang.String, java.lang.Exception);
    descriptor: (ILjava/lang/String;Ljava/lang/Exception;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // int severity
        start local 1 // java.lang.String message
        start local 2 // java.lang.Exception e
         0: .line 367
            iload 0 /* severity */
            iconst_2
            if_icmpne 2
            getstatic org.eclipse.osgi.util.NLS.ignoreWarnings:Z
            ifeq 2
         1: .line 368
            return
         2: .line 369
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.osgi.util.NLS.frameworkLog:Lorg/eclipse/osgi/framework/log/FrameworkLog;
            ifnull 5
         3: .line 370
            getstatic org.eclipse.osgi.util.NLS.frameworkLog:Lorg/eclipse/osgi/framework/log/FrameworkLog;
            new org.eclipse.osgi.framework.log.FrameworkLogEntry
            dup
            ldc "org.eclipse.osgi"
            iload 0 /* severity */
            iconst_1
            aload 1 /* message */
            iconst_0
            aload 2 /* e */
            aconst_null
            invokespecial org.eclipse.osgi.framework.log.FrameworkLogEntry.<init>:(Ljava/lang/String;IILjava/lang/String;ILjava/lang/Throwable;[Lorg/eclipse/osgi/framework/log/FrameworkLogEntry;)V
            invokeinterface org.eclipse.osgi.framework.log.FrameworkLog.log:(Lorg/eclipse/osgi/framework/log/FrameworkLogEntry;)V
         4: .line 371
            return
         5: .line 374
      StackMap locals:
      StackMap stack:
            iload 0 /* severity */
            tableswitch { // 2 - 4
                    2: 8
                    3: 8
                    4: 6
              default: 8
          }
         6: .line 376
      StackMap locals:
      StackMap stack:
            ldc "Error: "
            astore 3 /* statusMsg */
        start local 3 // java.lang.String statusMsg
         7: .line 377
            goto 9
        end local 3 // java.lang.String statusMsg
         8: .line 381
      StackMap locals:
      StackMap stack:
            ldc "Warning: "
            astore 3 /* statusMsg */
        start local 3 // java.lang.String statusMsg
         9: .line 383
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* message */
            ifnull 11
        10: .line 384
            new java.lang.StringBuilder
            dup
            aload 3 /* statusMsg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* statusMsg */
        11: .line 385
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            ifnull 13
        12: .line 386
            new java.lang.StringBuilder
            dup
            aload 3 /* statusMsg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* statusMsg */
        13: .line 387
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 3 /* statusMsg */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 388
            aload 2 /* e */
            ifnull 16
        15: .line 389
            aload 2 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        16: .line 390
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String statusMsg
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.String message
        end local 0 // int severity
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0   severity  I
            0   17     1    message  Ljava/lang/String;
            0   17     2          e  Ljava/lang/Exception;
            7    8     3  statusMsg  Ljava/lang/String;
            9   17     3  statusMsg  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      severity  
      message   
      e         
}
SourceFile: "NLS.java"
NestMembers:
  org.eclipse.osgi.util.NLS$1  org.eclipse.osgi.util.NLS$2  org.eclipse.osgi.util.NLS$MessagesProperties
InnerClasses:
  org.eclipse.osgi.util.NLS$1
  org.eclipse.osgi.util.NLS$2
  private MessagesProperties = org.eclipse.osgi.util.NLS$MessagesProperties of org.eclipse.osgi.util.NLS