public class android.net.SntpClient
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.net.SntpClient
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SntpClient"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private static final long OFFSET_1900_TO_1970;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2208988800

  private long mNtpTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mNtpTimeReference;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mRoundTripTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.SntpClient this
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/SntpClient;

  public boolean requestTime(java.lang.String, int, android.net.Network);
    descriptor: (Ljava/lang/String;ILandroid/net/Network;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.net.SntpClient this
         0: .line 95
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tEventLogTags cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/SntpClient;
    MethodParameters:
         Name  Flags
      host     
      timeout  
      network  

  public boolean requestTime(java.net.InetAddress, int, int, android.net.Network);
    descriptor: (Ljava/net/InetAddress;IILandroid/net/Network;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.net.SntpClient this
         0: .line 152
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tEventLogTags cannot be resolved\n\tEventLogTags cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/SntpClient;
    MethodParameters:
         Name  Flags
      address  
      port     
      timeout  
      network  

  public boolean requestTime(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.net.SntpClient this
        start local 1 // java.lang.String host
        start local 2 // int timeout
         0: .line 179
            ldc "SntpClient"
            ldc "Shame on you for calling the hidden API requestTime()!"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 180
            iconst_0
            ireturn
        end local 2 // int timeout
        end local 1 // java.lang.String host
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/net/SntpClient;
            0    2     1     host  Ljava/lang/String;
            0    2     2  timeout  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      host     
      timeout  

  public long getNtpTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.SntpClient this
         0: .line 189
            aload 0 /* this */
            getfield android.net.SntpClient.mNtpTime:J
            lreturn
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/SntpClient;

  public long getNtpTimeReference();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.SntpClient this
         0: .line 199
            aload 0 /* this */
            getfield android.net.SntpClient.mNtpTimeReference:J
            lreturn
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/SntpClient;

  public long getRoundTripTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.SntpClient this
         0: .line 208
            aload 0 /* this */
            getfield android.net.SntpClient.mRoundTripTime:J
            lreturn
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/SntpClient;

  private static void checkValidServerReply(byte, byte, int, long);
    descriptor: (BBIJ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // byte leap
        start local 1 // byte mode
        start local 2 // int stratum
        start local 3 // long transmitTime
         0: .line 214
            iload 0 /* leap */
            iconst_3
            if_icmpne 2
         1: .line 215
            new android.net.SntpClient$InvalidServerReplyException
            dup
            ldc "unsynchronized server"
            invokespecial android.net.SntpClient$InvalidServerReplyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 217
      StackMap locals:
      StackMap stack:
            iload 1 /* mode */
            iconst_4
            if_icmpeq 4
            iload 1 /* mode */
            iconst_5
            if_icmpeq 4
         3: .line 218
            new android.net.SntpClient$InvalidServerReplyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "untrusted mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial android.net.SntpClient$InvalidServerReplyException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 220
      StackMap locals:
      StackMap stack:
            iload 2 /* stratum */
            ifeq 5
            iload 2 /* stratum */
            bipush 15
            if_icmple 6
         5: .line 221
      StackMap locals:
      StackMap stack:
            new android.net.SntpClient$InvalidServerReplyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "untrusted stratum: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* stratum */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial android.net.SntpClient$InvalidServerReplyException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 223
      StackMap locals:
      StackMap stack:
            lload 3 /* transmitTime */
            lconst_0
            lcmp
            ifne 8
         7: .line 224
            new android.net.SntpClient$InvalidServerReplyException
            dup
            ldc "zero transmitTime"
            invokespecial android.net.SntpClient$InvalidServerReplyException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 226
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long transmitTime
        end local 2 // int stratum
        end local 1 // byte mode
        end local 0 // byte leap
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          leap  B
            0    9     1          mode  B
            0    9     2       stratum  I
            0    9     3  transmitTime  J
    Exceptions:
      throws android.net.SntpClient$InvalidServerReplyException
    MethodParameters:
              Name  Flags
      leap          
      mode          
      stratum       
      transmitTime  

  private long read32(byte[], int);
    descriptor: ([BI)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // android.net.SntpClient this
        start local 1 // byte[] buffer
        start local 2 // int offset
         0: .line 232
            aload 1 /* buffer */
            iload 2 /* offset */
            baload
            istore 3 /* b0 */
        start local 3 // byte b0
         1: .line 233
            aload 1 /* buffer */
            iload 2 /* offset */
            iconst_1
            iadd
            baload
            istore 4 /* b1 */
        start local 4 // byte b1
         2: .line 234
            aload 1 /* buffer */
            iload 2 /* offset */
            iconst_2
            iadd
            baload
            istore 5 /* b2 */
        start local 5 // byte b2
         3: .line 235
            aload 1 /* buffer */
            iload 2 /* offset */
            iconst_3
            iadd
            baload
            istore 6 /* b3 */
        start local 6 // byte b3
         4: .line 238
            iload 3 /* b0 */
            sipush 128
            iand
            sipush 128
            if_icmpne 5
            iload 3 /* b0 */
            bipush 127
            iand
            sipush 128
            iadd
            goto 6
      StackMap locals: android.net.SntpClient byte[] int int int int int
      StackMap stack:
         5: iload 3 /* b0 */
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* i0 */
        start local 7 // int i0
         7: .line 239
            iload 4 /* b1 */
            sipush 128
            iand
            sipush 128
            if_icmpne 8
            iload 4 /* b1 */
            bipush 127
            iand
            sipush 128
            iadd
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iload 4 /* b1 */
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* i1 */
        start local 8 // int i1
        10: .line 240
            iload 5 /* b2 */
            sipush 128
            iand
            sipush 128
            if_icmpne 11
            iload 5 /* b2 */
            bipush 127
            iand
            sipush 128
            iadd
            goto 12
      StackMap locals: int
      StackMap stack:
        11: iload 5 /* b2 */
      StackMap locals:
      StackMap stack: int
        12: istore 9 /* i2 */
        start local 9 // int i2
        13: .line 241
            iload 6 /* b3 */
            sipush 128
            iand
            sipush 128
            if_icmpne 14
            iload 6 /* b3 */
            bipush 127
            iand
            sipush 128
            iadd
            goto 15
      StackMap locals: int
      StackMap stack:
        14: iload 6 /* b3 */
      StackMap locals:
      StackMap stack: int
        15: istore 10 /* i3 */
        start local 10 // int i3
        16: .line 243
            iload 7 /* i0 */
            i2l
            bipush 24
            lshl
            iload 8 /* i1 */
            i2l
            bipush 16
            lshl
            ladd
            iload 9 /* i2 */
            i2l
            bipush 8
            lshl
            ladd
            iload 10 /* i3 */
            i2l
            ladd
            lreturn
        end local 10 // int i3
        end local 9 // int i2
        end local 8 // int i1
        end local 7 // int i0
        end local 6 // byte b3
        end local 5 // byte b2
        end local 4 // byte b1
        end local 3 // byte b0
        end local 2 // int offset
        end local 1 // byte[] buffer
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Landroid/net/SntpClient;
            0   17     1  buffer  [B
            0   17     2  offset  I
            1   17     3      b0  B
            2   17     4      b1  B
            3   17     5      b2  B
            4   17     6      b3  B
            7   17     7      i0  I
           10   17     8      i1  I
           13   17     9      i2  I
           16   17    10      i3  I
    MethodParameters:
        Name  Flags
      buffer  
      offset  

  private long readTimeStamp(byte[], int);
    descriptor: ([BI)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // android.net.SntpClient this
        start local 1 // byte[] buffer
        start local 2 // int offset
         0: .line 251
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* offset */
            invokevirtual android.net.SntpClient.read32:([BI)J
            lstore 3 /* seconds */
        start local 3 // long seconds
         1: .line 252
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* offset */
            iconst_4
            iadd
            invokevirtual android.net.SntpClient.read32:([BI)J
            lstore 5 /* fraction */
        start local 5 // long fraction
         2: .line 254
            lload 3 /* seconds */
            lconst_0
            lcmp
            ifne 4
            lload 5 /* fraction */
            lconst_0
            lcmp
            ifne 4
         3: .line 255
            lconst_0
            lreturn
         4: .line 257
      StackMap locals: long long
      StackMap stack:
            lload 3 /* seconds */
            ldc 2208988800
            lsub
            ldc 1000
            lmul
            lload 5 /* fraction */
            ldc 1000
            lmul
            ldc 4294967296
            ldiv
            ladd
            lreturn
        end local 5 // long fraction
        end local 3 // long seconds
        end local 2 // int offset
        end local 1 // byte[] buffer
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/net/SntpClient;
            0    5     1    buffer  [B
            0    5     2    offset  I
            1    5     3   seconds  J
            2    5     5  fraction  J
    MethodParameters:
        Name  Flags
      buffer  
      offset  

  private void writeTimeStamp(byte[], int, long);
    descriptor: ([BIJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // android.net.SntpClient this
        start local 1 // byte[] buffer
        start local 2 // int offset
        start local 3 // long time
         0: .line 266
            lload 3 /* time */
            lconst_0
            lcmp
            ifne 3
         1: .line 267
            aload 1 /* buffer */
            iload 2 /* offset */
            iload 2 /* offset */
            bipush 8
            iadd
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
         2: .line 268
            return
         3: .line 271
      StackMap locals:
      StackMap stack:
            lload 3 /* time */
            ldc 1000
            ldiv
            lstore 5 /* seconds */
        start local 5 // long seconds
         4: .line 272
            lload 3 /* time */
            lload 5 /* seconds */
            ldc 1000
            lmul
            lsub
            lstore 7 /* milliseconds */
        start local 7 // long milliseconds
         5: .line 273
            lload 5 /* seconds */
            ldc 2208988800
            ladd
            lstore 5 /* seconds */
         6: .line 276
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            lload 5 /* seconds */
            bipush 24
            lshr
            l2i
            i2b
            bastore
         7: .line 277
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            lload 5 /* seconds */
            bipush 16
            lshr
            l2i
            i2b
            bastore
         8: .line 278
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            lload 5 /* seconds */
            bipush 8
            lshr
            l2i
            i2b
            bastore
         9: .line 279
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            lload 5 /* seconds */
            iconst_0
            lshr
            l2i
            i2b
            bastore
        10: .line 281
            lload 7 /* milliseconds */
            ldc 4294967296
            lmul
            ldc 1000
            ldiv
            lstore 9 /* fraction */
        start local 9 // long fraction
        11: .line 283
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            lload 9 /* fraction */
            bipush 24
            lshr
            l2i
            i2b
            bastore
        12: .line 284
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            lload 9 /* fraction */
            bipush 16
            lshr
            l2i
            i2b
            bastore
        13: .line 285
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            lload 9 /* fraction */
            bipush 8
            lshr
            l2i
            i2b
            bastore
        14: .line 287
            aload 1 /* buffer */
            iload 2 /* offset */
            iinc 2 /* offset */ 1
            invokestatic java.lang.Math.random:()D
            ldc 255.0
            dmul
            d2i
            i2b
            bastore
        15: .line 288
            return
        end local 9 // long fraction
        end local 7 // long milliseconds
        end local 5 // long seconds
        end local 3 // long time
        end local 2 // int offset
        end local 1 // byte[] buffer
        end local 0 // android.net.SntpClient this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Landroid/net/SntpClient;
            0   16     1        buffer  [B
            0   16     2        offset  I
            0   16     3          time  J
            4   16     5       seconds  J
            5   16     7  milliseconds  J
           11   16     9      fraction  J
    MethodParameters:
        Name  Flags
      buffer  
      offset  
      time    
}
SourceFile: "SntpClient.java"
NestMembers:
  android.net.SntpClient$InvalidServerReplyException
InnerClasses:
  private InvalidServerReplyException = android.net.SntpClient$InvalidServerReplyException of android.net.SntpClient