public final class org.apache.logging.log4j.ThreadContext
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.logging.log4j.ThreadContext
  super_class: java.lang.Object
{
  public static final java.util.Map<java.lang.String, java.lang.String> EMPTY_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public static final org.apache.logging.log4j.spi.ThreadContextStack EMPTY_STACK;
    descriptor: Lorg/apache/logging/log4j/spi/ThreadContextStack;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

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

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

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

  private static boolean useStack;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.apache.logging.log4j.spi.ThreadContextMap contextMap;
    descriptor: Lorg/apache/logging/log4j/spi/ThreadContextMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.apache.logging.log4j.spi.ThreadContextStack contextStack;
    descriptor: Lorg/apache/logging/log4j/spi/ThreadContextStack;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.apache.logging.log4j.spi.ReadOnlyThreadContextMap readOnlyContextMap;
    descriptor: Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 183
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            putstatic org.apache.logging.log4j.ThreadContext.EMPTY_MAP:Ljava/util/Map;
         1: .line 190
            new org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack
            dup
            invokespecial org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack.<init>:()V
            putstatic org.apache.logging.log4j.ThreadContext.EMPTY_STACK:Lorg/apache/logging/log4j/spi/ThreadContextStack;
         2: .line 202
            invokestatic org.apache.logging.log4j.ThreadContext.init:()V
         3: .line 203
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.ThreadContext this
         0: .line 205
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 207
            return
        end local 0 // org.apache.logging.log4j.ThreadContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/logging/log4j/ThreadContext;

  static void init();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=0
         0: .line 213
            invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.init:()V
         1: .line 214
            aconst_null
            putstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
         2: .line 215
            invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
            astore 0 /* managerProps */
        start local 0 // org.apache.logging.log4j.util.PropertiesUtil managerProps
         3: .line 216
            aload 0 /* managerProps */
            ldc "disableThreadContext"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
            istore 1 /* disableAll */
        start local 1 // boolean disableAll
         4: .line 217
            aload 0 /* managerProps */
            ldc "disableThreadContextStack"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
            ifne 5
            iload 1 /* disableAll */
            ifeq 6
      StackMap locals: org.apache.logging.log4j.util.PropertiesUtil int
      StackMap stack:
         5: iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: putstatic org.apache.logging.log4j.ThreadContext.useStack:Z
         8: .line 218
            aload 0 /* managerProps */
            ldc "disableThreadContextMap"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
            ifne 9
            iload 1 /* disableAll */
            ifeq 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 2 /* useMap */
        start local 2 // boolean useMap
        12: .line 220
            new org.apache.logging.log4j.spi.DefaultThreadContextStack
            dup
            getstatic org.apache.logging.log4j.ThreadContext.useStack:Z
            invokespecial org.apache.logging.log4j.spi.DefaultThreadContextStack.<init>:(Z)V
            putstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
        13: .line 221
            iload 2 /* useMap */
            ifne 16
        14: .line 222
            new org.apache.logging.log4j.spi.NoOpThreadContextMap
            dup
            invokespecial org.apache.logging.log4j.spi.NoOpThreadContextMap.<init>:()V
            putstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
        15: .line 223
            goto 17
        16: .line 224
      StackMap locals: int
      StackMap stack:
            invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.createThreadContextMap:()Lorg/apache/logging/log4j/spi/ThreadContextMap;
            putstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
        17: .line 226
      StackMap locals:
      StackMap stack:
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.ReadOnlyThreadContextMap
            ifeq 20
        18: .line 227
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.ReadOnlyThreadContextMap
            putstatic org.apache.logging.log4j.ThreadContext.readOnlyContextMap:Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
        19: .line 228
            goto 21
        20: .line 229
      StackMap locals:
      StackMap stack:
            aconst_null
            putstatic org.apache.logging.log4j.ThreadContext.readOnlyContextMap:Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
        21: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean useMap
        end local 1 // boolean disableAll
        end local 0 // org.apache.logging.log4j.util.PropertiesUtil managerProps
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            3   22     0  managerProps  Lorg/apache/logging/log4j/util/PropertiesUtil;
            4   22     1    disableAll  Z
           12   22     2        useMap  Z

  public static void put(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.String value
         0: .line 245
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            aload 1 /* value */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.put:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 246
            return
        end local 1 // java.lang.String value
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0    key  Ljava/lang/String;
            0    2     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public static void putIfNull(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.String value
         0: .line 261
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.containsKey:(Ljava/lang/String;)Z
            ifne 2
         1: .line 262
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            aload 1 /* value */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.put:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 264
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String value
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0    key  Ljava/lang/String;
            0    3     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public static void putAll(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.Map m
         0: .line 276
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.ThreadContextMap2
            ifeq 3
         1: .line 277
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.ThreadContextMap2
            aload 0 /* m */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap2.putAll:(Ljava/util/Map;)V
         2: .line 278
            goto 10
      StackMap locals:
      StackMap stack:
         3: getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.DefaultThreadContextMap
            ifeq 6
         4: .line 279
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.DefaultThreadContextMap
            aload 0 /* m */
            invokevirtual org.apache.logging.log4j.spi.DefaultThreadContextMap.putAll:(Ljava/util/Map;)V
         5: .line 280
            goto 10
         6: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* m */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: java.util.Map top java.util.Iterator
      StackMap stack:
         7: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 1 /* entry */
        start local 1 // java.util.Map$Entry entry
         8: .line 282
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.put:(Ljava/lang/String;Ljava/lang/String;)V
        end local 1 // java.util.Map$Entry entry
         9: .line 281
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 285
      StackMap locals: java.util.Map
      StackMap stack:
            return
        end local 0 // java.util.Map m
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0      m  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            8    9     1  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      m     final

  public static java.lang.String get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 298
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.get:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public static void remove(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 307
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.remove:(Ljava/lang/String;)V
         1: .line 308
            return
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public static void removeAll(java.lang.Iterable<java.lang.String>);
    descriptor: (Ljava/lang/Iterable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.Iterable keys
         0: .line 318
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.CleanableThreadContextMap
            ifeq 3
         1: .line 319
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.CleanableThreadContextMap
            aload 0 /* keys */
            invokeinterface org.apache.logging.log4j.spi.CleanableThreadContextMap.removeAll:(Ljava/lang/Iterable;)V
         2: .line 320
            goto 10
      StackMap locals:
      StackMap stack:
         3: getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.DefaultThreadContextMap
            ifeq 6
         4: .line 321
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.DefaultThreadContextMap
            aload 0 /* keys */
            invokevirtual org.apache.logging.log4j.spi.DefaultThreadContextMap.removeAll:(Ljava/lang/Iterable;)V
         5: .line 322
            goto 10
         6: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* keys */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: java.lang.Iterable top java.util.Iterator
      StackMap stack:
         7: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* key */
        start local 1 // java.lang.String key
         8: .line 324
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 1 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.remove:(Ljava/lang/String;)V
        end local 1 // java.lang.String key
         9: .line 323
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 327
      StackMap locals: java.lang.Iterable
      StackMap stack:
            return
        end local 0 // java.lang.Iterable keys
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  keys  Ljava/lang/Iterable<Ljava/lang/String;>;
            8    9     1   key  Ljava/lang/String;
    Signature: (Ljava/lang/Iterable<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      keys  final

  public static void clearMap();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 333
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.clear:()V
         1: .line 334
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void clearAll();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 340
            invokestatic org.apache.logging.log4j.ThreadContext.clearMap:()V
         1: .line 341
            invokestatic org.apache.logging.log4j.ThreadContext.clearStack:()V
         2: .line 342
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean containsKey(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 351
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.containsKey:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public static java.util.Map<java.lang.String, java.lang.String> getContext();
    descriptor: ()Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 360
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.getCopy:()Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public static java.util.Map<java.lang.String, java.lang.String> getImmutableContext();
    descriptor: ()Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 369
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.getImmutableMapOrNull:()Ljava/util/Map;
            astore 0 /* map */
        start local 0 // java.util.Map map
         1: .line 370
            aload 0 /* map */
            ifnonnull 2
            getstatic org.apache.logging.log4j.ThreadContext.EMPTY_MAP:Ljava/util/Map;
            goto 3
      StackMap locals: java.util.Map
      StackMap stack:
         2: aload 0 /* map */
      StackMap locals:
      StackMap stack: java.util.Map
         3: areturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0   map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public static org.apache.logging.log4j.spi.ReadOnlyThreadContextMap getThreadContextMap();
    descriptor: ()Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 390
            getstatic org.apache.logging.log4j.ThreadContext.readOnlyContextMap:Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isEmpty();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 399
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.isEmpty:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void clearStack();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 406
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.clear:()V
         1: .line 407
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.logging.log4j.ThreadContext$ContextStack cloneStack();
    descriptor: ()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 415
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.copy:()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.logging.log4j.ThreadContext$ContextStack getImmutableStack();
    descriptor: ()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 424
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.getImmutableStackOrNull:()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
            astore 0 /* result */
        start local 0 // org.apache.logging.log4j.ThreadContext$ContextStack result
         1: .line 425
            aload 0 /* result */
            ifnonnull 2
            getstatic org.apache.logging.log4j.ThreadContext.EMPTY_STACK:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            goto 3
      StackMap locals: org.apache.logging.log4j.ThreadContext$ContextStack
      StackMap stack:
         2: aload 0 /* result */
      StackMap locals:
      StackMap stack: org.apache.logging.log4j.ThreadContext$ContextStack
         3: areturn
        end local 0 // org.apache.logging.log4j.ThreadContext$ContextStack result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  result  Lorg/apache/logging/log4j/ThreadContext$ContextStack;

  public static void setStack(java.util.Collection<java.lang.String>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Collection stack
         0: .line 434
            aload 0 /* stack */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 1
            getstatic org.apache.logging.log4j.ThreadContext.useStack:Z
            ifne 2
         1: .line 435
      StackMap locals:
      StackMap stack:
            return
         2: .line 437
      StackMap locals:
      StackMap stack:
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.clear:()V
         3: .line 438
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            aload 0 /* stack */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 439
            return
        end local 0 // java.util.Collection stack
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  stack  Ljava/util/Collection<Ljava/lang/String;>;
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;)V
    MethodParameters:
       Name  Flags
      stack  final

  public static int getDepth();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 449
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.getDepth:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String pop();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 463
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.pop:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String peek();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 477
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.peek:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void push(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String message
         0: .line 490
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            aload 0 /* message */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.push:(Ljava/lang/String;)V
         1: .line 491
            return
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public static void push(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String message
        start local 1 // java.lang.Object[] args
         0: .line 506
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            aload 0 /* message */
            aload 1 /* args */
            invokestatic org.apache.logging.log4j.message.ParameterizedMessage.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.push:(Ljava/lang/String;)V
         1: .line 507
            return
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  message  Ljava/lang/String;
            0    2     1     args  [Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      message  final
      args     final

  public static void removeStack();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 526
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.clear:()V
         1: .line 527
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void trim(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int depth
         0: .line 562
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            iload 0 /* depth */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.trim:(I)V
         1: .line 563
            return
        end local 0 // int depth
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  depth  I
    MethodParameters:
       Name  Flags
      depth  final
}
SourceFile: "ThreadContext.java"
NestMembers:
  org.apache.logging.log4j.ThreadContext$ContextStack  org.apache.logging.log4j.ThreadContext$EmptyIterator  org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract ContextStack = org.apache.logging.log4j.ThreadContext$ContextStack of org.apache.logging.log4j.ThreadContext
  private EmptyIterator = org.apache.logging.log4j.ThreadContext$EmptyIterator of org.apache.logging.log4j.ThreadContext
  private EmptyThreadContextStack = org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack of org.apache.logging.log4j.ThreadContext