public abstract class java.util.TimeZone implements java.io.Serializable, java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.util.TimeZone
  super_class: java.lang.Object
{
  public static final int SHORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int LONG;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int ONE_MINUTE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 60000

  private static final int ONE_HOUR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3600000

  private static final int ONE_DAY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 86400000

  static final long serialVersionUID;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3581463369166924961

  static final java.util.TimeZone NO_TIMEZONE;
    descriptor: Ljava/util/TimeZone;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

  private transient java.time.ZoneId zoneId;
    descriptor: Ljava/time/ZoneId;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private static volatile java.util.TimeZone defaultTimeZone;
    descriptor: Ljava/util/TimeZone;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  static final java.lang.String GMT_ID;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "GMT"

  private static final int GMT_ID_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 133
            ldc Ljava/util/TimeZone;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.util.TimeZone.$assertionsDisabled:Z
         3: .line 762
            aconst_null
            putstatic java.util.TimeZone.NO_TIMEZONE:Ljava/util/TimeZone;
         4: .line 784
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 138
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 139
            return
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/TimeZone;

  public abstract int getOffset(int, int, int, int, int, int);
    descriptor: (IIIIII)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      era           
      year          
      month         
      day           
      dayOfWeek     
      milliseconds  

  public int getOffset(long);
    descriptor: (J)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.util.TimeZone this
        start local 1 // long date
         0: .line 209
            aload 0 /* this */
            new java.util.Date
            dup
            lload 1 /* date */
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.util.TimeZone.inDaylightTime:(Ljava/util/Date;)Z
            ifeq 2
         1: .line 210
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getRawOffset:()I
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getDSTSavings:()I
            iadd
            ireturn
         2: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getRawOffset:()I
            ireturn
        end local 1 // long date
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/TimeZone;
            0    3     1  date  J
    MethodParameters:
      Name  Flags
      date  

  int getOffsets(long, int[]);
    descriptor: (J[I)I
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.util.TimeZone this
        start local 1 // long date
        start local 3 // int[] offsets
         0: .line 232
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getRawOffset:()I
            istore 4 /* rawoffset */
        start local 4 // int rawoffset
         1: .line 233
            iconst_0
            istore 5 /* dstoffset */
        start local 5 // int dstoffset
         2: .line 234
            aload 0 /* this */
            new java.util.Date
            dup
            lload 1 /* date */
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.util.TimeZone.inDaylightTime:(Ljava/util/Date;)Z
            ifeq 4
         3: .line 235
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getDSTSavings:()I
            istore 5 /* dstoffset */
         4: .line 237
      StackMap locals: int int
      StackMap stack:
            aload 3 /* offsets */
            ifnull 7
         5: .line 238
            aload 3 /* offsets */
            iconst_0
            iload 4 /* rawoffset */
            iastore
         6: .line 239
            aload 3 /* offsets */
            iconst_1
            iload 5 /* dstoffset */
            iastore
         7: .line 241
      StackMap locals:
      StackMap stack:
            iload 4 /* rawoffset */
            iload 5 /* dstoffset */
            iadd
            ireturn
        end local 5 // int dstoffset
        end local 4 // int rawoffset
        end local 3 // int[] offsets
        end local 1 // long date
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Ljava/util/TimeZone;
            0    8     1       date  J
            0    8     3    offsets  [I
            1    8     4  rawoffset  I
            2    8     5  dstoffset  I
    MethodParameters:
         Name  Flags
      date     
      offsets  

  public abstract void setRawOffset(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      offsetMillis  

  public abstract int getRawOffset();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public java.lang.String getID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 282
            aload 0 /* this */
            getfield java.util.TimeZone.ID:Ljava/lang/String;
            areturn
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/TimeZone;

  public void setID(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.TimeZone this
        start local 1 // java.lang.String ID
         0: .line 292
            aload 1 /* ID */
            ifnonnull 2
         1: .line 293
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ID */
            putfield java.util.TimeZone.ID:Ljava/lang/String;
         3: .line 296
            aload 0 /* this */
            aconst_null
            putfield java.util.TimeZone.zoneId:Ljava/time/ZoneId;
         4: .line 297
            return
        end local 1 // java.lang.String ID
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/TimeZone;
            0    5     1    ID  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      ID    

  public final java.lang.String getDisplayName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 316
            aload 0 /* this */
            iconst_0
            iconst_1
         1: .line 317
            getstatic java.util.Locale$Category.DISPLAY:Ljava/util/Locale$Category;
            invokestatic java.util.Locale.getDefault:(Ljava/util/Locale$Category;)Ljava/util/Locale;
         2: .line 316
            invokevirtual java.util.TimeZone.getDisplayName:(ZILjava/util/Locale;)Ljava/lang/String;
            areturn
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/TimeZone;

  public final java.lang.String getDisplayName(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.TimeZone this
        start local 1 // java.util.Locale locale
         0: .line 336
            aload 0 /* this */
            iconst_0
            iconst_1
            aload 1 /* locale */
            invokevirtual java.util.TimeZone.getDisplayName:(ZILjava/util/Locale;)Ljava/lang/String;
            areturn
        end local 1 // java.util.Locale locale
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/util/TimeZone;
            0    1     1  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      locale  

  public final java.lang.String getDisplayName(boolean, int);
    descriptor: (ZI)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.TimeZone this
        start local 1 // boolean daylight
        start local 2 // int style
         0: .line 364
            aload 0 /* this */
            iload 1 /* daylight */
            iload 2 /* style */
         1: .line 365
            getstatic java.util.Locale$Category.DISPLAY:Ljava/util/Locale$Category;
            invokestatic java.util.Locale.getDefault:(Ljava/util/Locale$Category;)Ljava/util/Locale;
         2: .line 364
            invokevirtual java.util.TimeZone.getDisplayName:(ZILjava/util/Locale;)Ljava/lang/String;
            areturn
        end local 2 // int style
        end local 1 // boolean daylight
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljava/util/TimeZone;
            0    3     1  daylight  Z
            0    3     2     style  I
    MethodParameters:
          Name  Flags
      daylight  
      style     

  public java.lang.String getDisplayName(boolean, int, java.util.Locale);
    descriptor: (ZILjava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.util.TimeZone this
        start local 1 // boolean daylight
        start local 2 // int style
        start local 3 // java.util.Locale locale
         0: .line 397
            iload 2 /* style */
            ifeq 2
            iload 2 /* style */
            iconst_1
            if_icmpeq 2
         1: .line 398
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal style: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* style */
            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 400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getID:()Ljava/lang/String;
            astore 4 /* id */
        start local 4 // java.lang.String id
         3: .line 401
            aload 4 /* id */
            iload 1 /* daylight */
            iload 2 /* style */
            aload 3 /* locale */
            invokestatic sun.util.locale.provider.TimeZoneNameUtility.retrieveDisplayName:(Ljava/lang/String;ZILjava/util/Locale;)Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         4: .line 402
            aload 5 /* name */
            ifnull 6
         5: .line 403
            aload 5 /* name */
            areturn
         6: .line 406
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 4 /* id */
            ldc "GMT"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
            aload 4 /* id */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmple 10
         7: .line 407
            aload 4 /* id */
            iconst_3
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* sign */
        start local 6 // char sign
         8: .line 408
            iload 6 /* sign */
            bipush 43
            if_icmpeq 9
            iload 6 /* sign */
            bipush 45
            if_icmpne 10
         9: .line 409
      StackMap locals: int
      StackMap stack:
            aload 4 /* id */
            areturn
        end local 6 // char sign
        10: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getRawOffset:()I
            istore 6 /* offset */
        start local 6 // int offset
        11: .line 413
            iload 1 /* daylight */
            ifeq 13
        12: .line 414
            iload 6 /* offset */
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getDSTSavings:()I
            iadd
            istore 6 /* offset */
        13: .line 416
      StackMap locals: int
      StackMap stack:
            iload 6 /* offset */
            invokestatic sun.util.calendar.ZoneInfoFile.toCustomID:(I)Ljava/lang/String;
            areturn
        end local 6 // int offset
        end local 5 // java.lang.String name
        end local 4 // java.lang.String id
        end local 3 // java.util.Locale locale
        end local 2 // int style
        end local 1 // boolean daylight
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Ljava/util/TimeZone;
            0   14     1  daylight  Z
            0   14     2     style  I
            0   14     3    locale  Ljava/util/Locale;
            3   14     4        id  Ljava/lang/String;
            4   14     5      name  Ljava/lang/String;
            8   10     6      sign  C
           11   14     6    offset  I
    MethodParameters:
          Name  Flags
      daylight  
      style     
      locale    

  private static java.lang.String[] getDisplayNames(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String id
        start local 1 // java.util.Locale locale
         0: .line 420
            aload 0 /* id */
            aload 1 /* locale */
            invokestatic sun.util.locale.provider.TimeZoneNameUtility.retrieveDisplayNames:(Ljava/lang/String;Ljava/util/Locale;)[Ljava/lang/String;
            areturn
        end local 1 // java.util.Locale locale
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0      id  Ljava/lang/String;
            0    1     1  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      id      
      locale  

  public int getDSTSavings();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 450
            aload 0 /* this */
            invokevirtual java.util.TimeZone.useDaylightTime:()Z
            ifeq 2
         1: .line 451
            ldc 3600000
            ireturn
         2: .line 453
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/TimeZone;

  public abstract boolean useDaylightTime();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public boolean observesDaylightTime();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 492
            aload 0 /* this */
            invokevirtual java.util.TimeZone.useDaylightTime:()Z
            ifne 1
            aload 0 /* this */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.util.TimeZone.inDaylightTime:(Ljava/util/Date;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/TimeZone;

  public abstract boolean inDaylightTime(java.util.Date);
    descriptor: (Ljava/util/Date;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      date  

  public static synchronized java.util.TimeZone getTimeZone(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/TimeZone;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String ID
         0: .line 517
            aload 0 /* ID */
            iconst_1
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;Z)Ljava/util/TimeZone;
            areturn
        end local 0 // java.lang.String ID
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ID  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      ID    

  public static java.util.TimeZone getTimeZone(java.time.ZoneId);
    descriptor: (Ljava/time/ZoneId;)Ljava/util/TimeZone;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.time.ZoneId zoneId
         0: .line 530
            aload 0 /* zoneId */
            invokevirtual java.time.ZoneId.getId:()Ljava/lang/String;
            astore 1 /* tzid */
        start local 1 // java.lang.String tzid
         1: .line 531
            aload 1 /* tzid */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 2 /* c */
        start local 2 // char c
         2: .line 532
            iload 2 /* c */
            bipush 43
            if_icmpeq 3
            iload 2 /* c */
            bipush 45
            if_icmpne 5
         3: .line 533
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "GMT"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* tzid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* tzid */
         4: .line 534
            goto 7
      StackMap locals:
      StackMap stack:
         5: iload 2 /* c */
            bipush 90
            if_icmpne 7
            aload 1 /* tzid */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 7
         6: .line 535
            ldc "UTC"
            astore 1 /* tzid */
         7: .line 537
      StackMap locals:
      StackMap stack:
            aload 1 /* tzid */
            iconst_1
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;Z)Ljava/util/TimeZone;
            areturn
        end local 2 // char c
        end local 1 // java.lang.String tzid
        end local 0 // java.time.ZoneId zoneId
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  zoneId  Ljava/time/ZoneId;
            1    8     1    tzid  Ljava/lang/String;
            2    8     2       c  C
    MethodParameters:
        Name  Flags
      zoneId  

  public java.time.ZoneId toZoneId();
    descriptor: ()Ljava/time/ZoneId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 548
            aload 0 /* this */
            getfield java.util.TimeZone.zoneId:Ljava/time/ZoneId;
            astore 1 /* zId */
        start local 1 // java.time.ZoneId zId
         1: .line 549
            aload 1 /* zId */
            ifnonnull 3
         2: .line 550
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.util.TimeZone.toZoneId0:()Ljava/time/ZoneId;
            dup
            astore 1 /* zId */
            putfield java.util.TimeZone.zoneId:Ljava/time/ZoneId;
         3: .line 552
      StackMap locals: java.time.ZoneId
      StackMap stack:
            aload 1 /* zId */
            areturn
        end local 1 // java.time.ZoneId zId
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/util/TimeZone;
            1    4     1   zId  Ljava/time/ZoneId;

  private java.time.ZoneId toZoneId0();
    descriptor: ()Ljava/time/ZoneId;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 556
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getID:()Ljava/lang/String;
            astore 1 /* id */
        start local 1 // java.lang.String id
         1: .line 557
            getstatic java.util.TimeZone.defaultTimeZone:Ljava/util/TimeZone;
            astore 2 /* defaultZone */
        start local 2 // java.util.TimeZone defaultZone
         2: .line 559
            aload 2 /* defaultZone */
            aload 0 /* this */
            if_acmpeq 5
         3: .line 560
            aload 2 /* defaultZone */
            ifnull 5
            aload 1 /* id */
            aload 2 /* defaultZone */
            invokevirtual java.util.TimeZone.getID:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 562
            aload 2 /* defaultZone */
            invokevirtual java.util.TimeZone.toZoneId:()Ljava/time/ZoneId;
            areturn
         5: .line 565
      StackMap locals: java.lang.String java.util.TimeZone
      StackMap stack:
            invokestatic sun.util.calendar.ZoneInfoFile.useOldMapping:()Z
            ifeq 12
            aload 1 /* id */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmpne 12
         6: .line 566
            ldc "EST"
            aload 1 /* id */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 567
            ldc "America/New_York"
            invokestatic java.time.ZoneId.of:(Ljava/lang/String;)Ljava/time/ZoneId;
            areturn
         8: .line 568
      StackMap locals:
      StackMap stack:
            ldc "MST"
            aload 1 /* id */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 569
            ldc "America/Denver"
            invokestatic java.time.ZoneId.of:(Ljava/lang/String;)Ljava/time/ZoneId;
            areturn
        10: .line 570
      StackMap locals:
      StackMap stack:
            ldc "HST"
            aload 1 /* id */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 571
            ldc "America/Honolulu"
            invokestatic java.time.ZoneId.of:(Ljava/lang/String;)Ljava/time/ZoneId;
            areturn
        12: .line 573
      StackMap locals:
      StackMap stack:
            aload 1 /* id */
            getstatic java.time.ZoneId.SHORT_IDS:Ljava/util/Map;
            invokestatic java.time.ZoneId.of:(Ljava/lang/String;Ljava/util/Map;)Ljava/time/ZoneId;
            areturn
        end local 2 // java.util.TimeZone defaultZone
        end local 1 // java.lang.String id
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Ljava/util/TimeZone;
            1   13     1           id  Ljava/lang/String;
            2   13     2  defaultZone  Ljava/util/TimeZone;

  private static java.util.TimeZone getTimeZone(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/util/TimeZone;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.String ID
        start local 1 // boolean fallback
         0: .line 577
            aload 0 /* ID */
            invokestatic sun.util.calendar.ZoneInfo.getTimeZone:(Ljava/lang/String;)Ljava/util/TimeZone;
            astore 2 /* tz */
        start local 2 // java.util.TimeZone tz
         1: .line 578
            aload 2 /* tz */
            ifnonnull 5
         2: .line 579
            aload 0 /* ID */
            invokestatic java.util.TimeZone.parseCustomTimeZone:(Ljava/lang/String;)Ljava/util/TimeZone;
            astore 2 /* tz */
         3: .line 580
            aload 2 /* tz */
            ifnonnull 5
            iload 1 /* fallback */
            ifeq 5
         4: .line 581
            new sun.util.calendar.ZoneInfo
            dup
            ldc "GMT"
            iconst_0
            invokespecial sun.util.calendar.ZoneInfo.<init>:(Ljava/lang/String;I)V
            astore 2 /* tz */
         5: .line 584
      StackMap locals: java.util.TimeZone
      StackMap stack:
            aload 2 /* tz */
            areturn
        end local 2 // java.util.TimeZone tz
        end local 1 // boolean fallback
        end local 0 // java.lang.String ID
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0        ID  Ljava/lang/String;
            0    6     1  fallback  Z
            1    6     2        tz  Ljava/util/TimeZone;
    MethodParameters:
          Name  Flags
      ID        
      fallback  

  public static synchronized java.lang.String[] getAvailableIDs(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int rawOffset
         0: .line 597
            iload 0 /* rawOffset */
            invokestatic sun.util.calendar.ZoneInfo.getAvailableIDs:(I)[Ljava/lang/String;
            areturn
        end local 0 // int rawOffset
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  rawOffset  I
    MethodParameters:
           Name  Flags
      rawOffset  

  public static synchronized java.lang.String[] getAvailableIDs();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 605
            invokestatic sun.util.calendar.ZoneInfo.getAvailableIDs:()[Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static native java.lang.String getSystemTimeZoneID(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      javaHome  

  private static native java.lang.String getSystemGMTOffsetID();
    descriptor: ()Ljava/lang/String;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  public static java.util.TimeZone getDefault();
    descriptor: ()Ljava/util/TimeZone;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 642
            invokestatic java.util.TimeZone.getDefaultRef:()Ljava/util/TimeZone;
            invokevirtual java.util.TimeZone.clone:()Ljava/lang/Object;
            checkcast java.util.TimeZone
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.util.TimeZone getDefaultRef();
    descriptor: ()Ljava/util/TimeZone;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 650
            getstatic java.util.TimeZone.defaultTimeZone:Ljava/util/TimeZone;
            astore 0 /* defaultZone */
        start local 0 // java.util.TimeZone defaultZone
         1: .line 651
            aload 0 /* defaultZone */
            ifnonnull 4
         2: .line 653
            invokestatic java.util.TimeZone.setDefaultZone:()Ljava/util/TimeZone;
            astore 0 /* defaultZone */
         3: .line 654
            getstatic java.util.TimeZone.$assertionsDisabled:Z
            ifne 4
            aload 0 /* defaultZone */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 657
      StackMap locals: java.util.TimeZone
      StackMap stack:
            aload 0 /* defaultZone */
            areturn
        end local 0 // java.util.TimeZone defaultZone
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            1    5     0  defaultZone  Ljava/util/TimeZone;

  private static synchronized java.util.TimeZone setDefaultZone();
    descriptor: ()Ljava/util/TimeZone;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=0
         0: .line 663
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperties:()Ljava/util/Properties;
            astore 1 /* props */
        start local 1 // java.util.Properties props
         1: .line 664
            aload 1 /* props */
            ldc "user.timezone"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* zoneID */
        start local 2 // java.lang.String zoneID
         2: .line 668
            aload 2 /* zoneID */
            ifnull 3
            aload 2 /* zoneID */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 10
         3: .line 669
      StackMap locals: top java.util.Properties java.lang.String
      StackMap stack:
            invokestatic jdk.internal.util.StaticProperty.javaHome:()Ljava/lang/String;
            astore 3 /* javaHome */
        start local 3 // java.lang.String javaHome
         4: .line 671
            aload 3 /* javaHome */
            invokestatic java.util.TimeZone.getSystemTimeZoneID:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* zoneID */
         5: .line 672
            aload 2 /* zoneID */
            ifnonnull 10
         6: .line 673
            ldc "GMT"
            astore 2 /* zoneID */
         7: .line 675
            goto 10
      StackMap locals: top java.util.Properties java.lang.String java.lang.String
      StackMap stack: java.lang.NullPointerException
         8: pop
         9: .line 676
            ldc "GMT"
            astore 2 /* zoneID */
        end local 3 // java.lang.String javaHome
        10: .line 682
      StackMap locals:
      StackMap stack:
            aload 2 /* zoneID */
            iconst_0
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;Z)Ljava/util/TimeZone;
            astore 0 /* tz */
        start local 0 // java.util.TimeZone tz
        11: .line 684
            aload 0 /* tz */
            ifnonnull 16
        12: .line 688
            invokestatic java.util.TimeZone.getSystemGMTOffsetID:()Ljava/lang/String;
            astore 3 /* gmtOffsetID */
        start local 3 // java.lang.String gmtOffsetID
        13: .line 689
            aload 3 /* gmtOffsetID */
            ifnull 15
        14: .line 690
            aload 3 /* gmtOffsetID */
            astore 2 /* zoneID */
        15: .line 692
      StackMap locals: java.util.TimeZone java.util.Properties java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* zoneID */
            iconst_1
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;Z)Ljava/util/TimeZone;
            astore 0 /* tz */
        end local 3 // java.lang.String gmtOffsetID
        16: .line 694
      StackMap locals:
      StackMap stack:
            getstatic java.util.TimeZone.$assertionsDisabled:Z
            ifne 17
            aload 0 /* tz */
            ifnonnull 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 696
      StackMap locals:
      StackMap stack:
            aload 2 /* zoneID */
            astore 3 /* id */
        start local 3 // java.lang.String id
        18: .line 697
            aload 1 /* props */
            ldc "user.timezone"
            aload 3 /* id */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        19: .line 699
            aload 0 /* tz */
            putstatic java.util.TimeZone.defaultTimeZone:Ljava/util/TimeZone;
        20: .line 700
            aload 0 /* tz */
            areturn
        end local 3 // java.lang.String id
        end local 2 // java.lang.String zoneID
        end local 1 // java.util.Properties props
        end local 0 // java.util.TimeZone tz
      LocalVariableTable:
        Start  End  Slot         Name  Signature
           11   21     0           tz  Ljava/util/TimeZone;
            1   21     1        props  Ljava/util/Properties;
            2   21     2       zoneID  Ljava/lang/String;
            4   10     3     javaHome  Ljava/lang/String;
           13   16     3  gmtOffsetID  Ljava/lang/String;
           18   21     3           id  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4     7       8  Class java.lang.NullPointerException

  public static void setDefault(java.util.TimeZone);
    descriptor: (Ljava/util/TimeZone;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.util.TimeZone zone
         0: .line 718
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         1: .line 719
            aload 1 /* sm */
            ifnull 5
         2: .line 720
            aload 1 /* sm */
            new java.util.PropertyPermission
            dup
         3: .line 721
            ldc "user.timezone"
            ldc "write"
            invokespecial java.util.PropertyPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 720
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         5: .line 728
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* zone */
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 0 /* zone */
            invokevirtual java.util.TimeZone.clone:()Ljava/lang/Object;
            checkcast java.util.TimeZone
      StackMap locals:
      StackMap stack: java.util.TimeZone
         7: putstatic java.util.TimeZone.defaultTimeZone:Ljava/util/TimeZone;
         8: .line 729
            return
        end local 1 // java.lang.SecurityManager sm
        end local 0 // java.util.TimeZone zone
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  zone  Ljava/util/TimeZone;
            1    9     1    sm  Ljava/lang/SecurityManager;
    MethodParameters:
      Name  Flags
      zone  

  public boolean hasSameRules(java.util.TimeZone);
    descriptor: (Ljava/util/TimeZone;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.TimeZone this
        start local 1 // java.util.TimeZone other
         0: .line 741
            aload 1 /* other */
            ifnull 3
            aload 0 /* this */
            invokevirtual java.util.TimeZone.getRawOffset:()I
            aload 1 /* other */
            invokevirtual java.util.TimeZone.getRawOffset:()I
            if_icmpne 3
         1: .line 742
            aload 0 /* this */
            invokevirtual java.util.TimeZone.useDaylightTime:()Z
            aload 1 /* other */
            invokevirtual java.util.TimeZone.useDaylightTime:()Z
            if_icmpne 3
         2: .line 741
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.util.TimeZone other
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljava/util/TimeZone;
            0    4     1  other  Ljava/util/TimeZone;
    MethodParameters:
       Name  Flags
      other  

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.util.TimeZone this
         0: .line 753
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
         1: areturn
         2: .line 754
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         3: .line 755
            new java.lang.InternalError
            dup
            aload 1 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // java.util.TimeZone this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/util/TimeZone;
            3    4     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

  private static final java.util.TimeZone parseCustomTimeZone(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/TimeZone;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=11, args_size=1
        start local 0 // java.lang.String id
         0: .line 799
            aload 0 /* id */
            invokevirtual java.lang.String.length:()I
            dup
            istore 1 /* length */
        start local 1 // int length
         1: iconst_5
            if_icmplt 3
         2: .line 800
            aload 0 /* id */
            ldc "GMT"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            ifeq 4
         3: .line 801
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
         4: .line 809
      StackMap locals:
      StackMap stack:
            aload 0 /* id */
            invokestatic sun.util.calendar.ZoneInfoFile.getZoneInfo:(Ljava/lang/String;)Lsun/util/calendar/ZoneInfo;
            astore 2 /* zi */
        start local 2 // sun.util.calendar.ZoneInfo zi
         5: .line 810
            aload 2 /* zi */
            ifnull 7
         6: .line 811
            aload 2 /* zi */
            areturn
         7: .line 814
      StackMap locals: sun.util.calendar.ZoneInfo
      StackMap stack:
            iconst_3
            istore 3 /* index */
        start local 3 // int index
         8: .line 815
            iconst_0
            istore 4 /* negative */
        start local 4 // boolean negative
         9: .line 816
            aload 0 /* id */
            iload 3 /* index */
            iinc 3 /* index */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
        10: .line 817
            iload 5 /* c */
            bipush 45
            if_icmpne 13
        11: .line 818
            iconst_1
            istore 4 /* negative */
        12: .line 819
            goto 15
      StackMap locals: int int int
      StackMap stack:
        13: iload 5 /* c */
            bipush 43
            if_icmpeq 15
        14: .line 820
            aconst_null
            areturn
        15: .line 823
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* hours */
        start local 6 // int hours
        16: .line 824
            iconst_0
            istore 7 /* num */
        start local 7 // int num
        17: .line 825
            iconst_0
            istore 8 /* countDelim */
        start local 8 // int countDelim
        18: .line 826
            iconst_0
            istore 9 /* len */
        start local 9 // int len
        19: .line 827
            goto 35
        20: .line 828
      StackMap locals: java.lang.String int sun.util.calendar.ZoneInfo int int int int int int int
      StackMap stack:
            aload 0 /* id */
            iload 3 /* index */
            iinc 3 /* index */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        21: .line 829
            iload 5 /* c */
            bipush 58
            if_icmpne 31
        22: .line 830
            iload 8 /* countDelim */
            ifle 24
        23: .line 831
            aconst_null
            areturn
        24: .line 833
      StackMap locals:
      StackMap stack:
            iload 9 /* len */
            iconst_2
            if_icmple 26
        25: .line 834
            aconst_null
            areturn
        26: .line 836
      StackMap locals:
      StackMap stack:
            iload 7 /* num */
            istore 6 /* hours */
        27: .line 837
            iinc 8 /* countDelim */ 1
        28: .line 838
            iconst_0
            istore 7 /* num */
        29: .line 839
            iconst_0
            istore 9 /* len */
        30: .line 840
            goto 35
        31: .line 842
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 48
            if_icmplt 32
            iload 5 /* c */
            bipush 57
            if_icmple 33
        32: .line 843
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        33: .line 845
      StackMap locals:
      StackMap stack:
            iload 7 /* num */
            bipush 10
            imul
            iload 5 /* c */
            bipush 48
            isub
            iadd
            istore 7 /* num */
        34: .line 846
            iinc 9 /* len */ 1
        35: .line 827
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iload 1 /* length */
            if_icmplt 20
        36: .line 848
            iload 3 /* index */
            iload 1 /* length */
            if_icmpeq 38
        37: .line 849
            aconst_null
            areturn
        38: .line 851
      StackMap locals:
      StackMap stack:
            iload 8 /* countDelim */
            ifne 46
        39: .line 852
            iload 9 /* len */
            iconst_2
            if_icmpgt 43
        40: .line 853
            iload 7 /* num */
            istore 6 /* hours */
        41: .line 854
            iconst_0
            istore 7 /* num */
        42: .line 855
            goto 48
        43: .line 856
      StackMap locals:
      StackMap stack:
            iload 7 /* num */
            bipush 100
            idiv
            istore 6 /* hours */
        44: .line 857
            iload 7 /* num */
            bipush 100
            irem
            istore 7 /* num */
        45: .line 859
            goto 48
        46: .line 860
      StackMap locals:
      StackMap stack:
            iload 9 /* len */
            iconst_2
            if_icmpeq 48
        47: .line 861
            aconst_null
            areturn
        48: .line 864
      StackMap locals:
      StackMap stack:
            iload 6 /* hours */
            bipush 23
            if_icmpgt 49
            iload 7 /* num */
            bipush 59
            if_icmple 50
        49: .line 865
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        50: .line 867
      StackMap locals:
      StackMap stack:
            iload 6 /* hours */
            bipush 60
            imul
            iload 7 /* num */
            iadd
            bipush 60
            imul
            sipush 1000
            imul
            istore 10 /* gmtOffset */
        start local 10 // int gmtOffset
        51: .line 869
            iload 10 /* gmtOffset */
            ifne 58
        52: .line 870
            ldc "GMT"
            invokestatic sun.util.calendar.ZoneInfoFile.getZoneInfo:(Ljava/lang/String;)Lsun/util/calendar/ZoneInfo;
            astore 2 /* zi */
        53: .line 871
            iload 4 /* negative */
            ifeq 56
        54: .line 872
            aload 2 /* zi */
            ldc "GMT-00:00"
            invokevirtual sun.util.calendar.ZoneInfo.setID:(Ljava/lang/String;)V
        55: .line 873
            goto 61
        56: .line 874
      StackMap locals: int
      StackMap stack:
            aload 2 /* zi */
            ldc "GMT+00:00"
            invokevirtual sun.util.calendar.ZoneInfo.setID:(Ljava/lang/String;)V
        57: .line 876
            goto 61
        58: .line 877
      StackMap locals:
      StackMap stack:
            aload 0 /* id */
            iload 4 /* negative */
            ifeq 59
            iload 10 /* gmtOffset */
            ineg
            goto 60
      StackMap locals:
      StackMap stack: java.lang.String
        59: iload 10 /* gmtOffset */
      StackMap locals: java.lang.String int sun.util.calendar.ZoneInfo int int int int int int int int
      StackMap stack: java.lang.String int
        60: invokestatic sun.util.calendar.ZoneInfoFile.getCustomTimeZone:(Ljava/lang/String;I)Lsun/util/calendar/ZoneInfo;
            astore 2 /* zi */
        61: .line 879
      StackMap locals:
      StackMap stack:
            aload 2 /* zi */
            areturn
        end local 10 // int gmtOffset
        end local 9 // int len
        end local 8 // int countDelim
        end local 7 // int num
        end local 6 // int hours
        end local 5 // char c
        end local 4 // boolean negative
        end local 3 // int index
        end local 2 // sun.util.calendar.ZoneInfo zi
        end local 1 // int length
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   62     0          id  Ljava/lang/String;
            1   62     1      length  I
            5   62     2          zi  Lsun/util/calendar/ZoneInfo;
            8   62     3       index  I
            9   62     4    negative  Z
           10   62     5           c  C
           16   62     6       hours  I
           17   62     7         num  I
           18   62     8  countDelim  I
           19   62     9         len  I
           51   62    10   gmtOffset  I
    MethodParameters:
      Name  Flags
      id    
}
SourceFile: "TimeZone.java"
InnerClasses:
  public final Category = java.util.Locale$Category of java.util.Locale