final class com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager implements javax.net.ssl.X509TrustManager
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager
  super_class: java.lang.Object
{
  private final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String logContext;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.net.ssl.X509TrustManager defaultTrustManager;
    descriptor: Ljavax/net/ssl/X509TrustManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  final com.microsoft.sqlserver.jdbc.TDSChannel this$0;
    descriptor: Lcom/microsoft/sqlserver/jdbc/TDSChannel;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.microsoft.sqlserver.jdbc.TDSChannel, com.microsoft.sqlserver.jdbc.TDSChannel, javax.net.ssl.X509TrustManager, java.lang.String);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSChannel;Lcom/microsoft/sqlserver/jdbc/TDSChannel;Ljavax/net/ssl/X509TrustManager;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 2 // com.microsoft.sqlserver.jdbc.TDSChannel tdsChannel
        start local 3 // javax.net.ssl.X509TrustManager tm
        start local 4 // java.lang.String hostName
         0: .line 1385
            aload 0 /* this */
            aload 1
            putfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.this$0:Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1386
            aload 0 /* this */
            aload 2 /* tdsChannel */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.getLogger:()Ljava/util/logging/Logger;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
         2: .line 1387
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 2 /* tdsChannel */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " (HostNameOverrideX509TrustManager):"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
         3: .line 1388
            aload 0 /* this */
            aload 3 /* tm */
            putfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.defaultTrustManager:Ljavax/net/ssl/X509TrustManager;
         4: .line 1390
            aload 0 /* this */
            aload 4 /* hostName */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
         5: .line 1391
            return
        end local 4 // java.lang.String hostName
        end local 3 // javax.net.ssl.X509TrustManager tm
        end local 2 // com.microsoft.sqlserver.jdbc.TDSChannel tdsChannel
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0    6     2  tdsChannel  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0    6     3          tm  Ljavax/net/ssl/X509TrustManager;
            0    6     4    hostName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      this$0      final
      tdsChannel  
      tm          
      hostName    

  private java.lang.String parseCommonName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 1 // java.lang.String distinguishedName
         0: .line 1399
            aload 1 /* distinguishedName */
            ldc "cn="
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* index */
        start local 2 // int index
         1: .line 1400
            iload 2 /* index */
            iconst_m1
            if_icmpne 3
         2: .line 1401
            aconst_null
            areturn
         3: .line 1403
      StackMap locals: int
      StackMap stack:
            aload 1 /* distinguishedName */
            iload 2 /* index */
            iconst_3
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* distinguishedName */
         4: .line 1409
            iconst_0
            istore 2 /* index */
            goto 8
         5: .line 1410
      StackMap locals:
      StackMap stack:
            aload 1 /* distinguishedName */
            iload 2 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 7
         6: .line 1411
            goto 9
         7: .line 1409
      StackMap locals:
      StackMap stack:
            iinc 2 /* index */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* index */
            aload 1 /* distinguishedName */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
         9: .line 1414
      StackMap locals:
      StackMap stack:
            aload 1 /* distinguishedName */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* commonName */
        start local 3 // java.lang.String commonName
        10: .line 1416
            aload 3 /* commonName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 14
            bipush 34
            aload 3 /* commonName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 14
        11: .line 1417
            bipush 34
            aload 3 /* commonName */
            aload 3 /* commonName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 13
        12: .line 1418
            aload 3 /* commonName */
            iconst_1
            aload 3 /* commonName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* commonName */
            goto 14
        13: .line 1421
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 3 /* commonName */
        14: .line 1424
      StackMap locals:
      StackMap stack:
            aload 3 /* commonName */
            areturn
        end local 3 // java.lang.String commonName
        end local 2 // int index
        end local 1 // java.lang.String distinguishedName
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0               this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0   15     1  distinguishedName  Ljava/lang/String;
            1   15     2              index  I
           10   15     3         commonName  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      distinguishedName  

  private boolean validateServerName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 1 // java.lang.String nameInCert
         0: .line 1429
            aload 1 /* nameInCert */
            ifnonnull 4
         1: .line 1430
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 3
         2: .line 1431
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Failed to parse the name from the certificate or name is empty."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         3: .line 1433
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 1436
      StackMap locals:
      StackMap stack:
            aload 1 /* nameInCert */
            ldc "xn--"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 35
            aload 1 /* nameInCert */
            ldc "*"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 35
         5: .line 1437
            iconst_0
            istore 2 /* hostIndex */
        start local 2 // int hostIndex
         6: iconst_0
            istore 3 /* certIndex */
        start local 3 // int certIndex
         7: iconst_0
            istore 4 /* match */
        start local 4 // int match
         8: iconst_m1
            istore 5 /* startIndex */
        start local 5 // int startIndex
         9: iconst_0
            istore 6 /* periodCount */
        start local 6 // int periodCount
        10: .line 1438
            goto 29
        11: .line 1439
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.lang.String int int int int int
      StackMap stack:
            bipush 46
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
            iload 2 /* hostIndex */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 13
        12: .line 1440
            iinc 6 /* periodCount */ 1
        13: .line 1442
      StackMap locals:
      StackMap stack:
            iload 3 /* certIndex */
            aload 1 /* nameInCert */
            invokevirtual java.lang.String.length:()I
            if_icmpge 17
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
            iload 2 /* hostIndex */
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* nameInCert */
            iload 3 /* certIndex */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 17
        14: .line 1443
            iinc 2 /* hostIndex */ 1
        15: .line 1444
            iinc 3 /* certIndex */ 1
        16: .line 1445
            goto 29
      StackMap locals:
      StackMap stack:
        17: iload 3 /* certIndex */
            aload 1 /* nameInCert */
            invokevirtual java.lang.String.length:()I
            if_icmpge 22
            bipush 42
            aload 1 /* nameInCert */
            iload 3 /* certIndex */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 22
        18: .line 1446
            iload 3 /* certIndex */
            istore 5 /* startIndex */
        19: .line 1447
            iload 2 /* hostIndex */
            istore 4 /* match */
        20: .line 1448
            iinc 3 /* certIndex */ 1
        21: .line 1449
            goto 29
      StackMap locals:
      StackMap stack:
        22: iload 5 /* startIndex */
            iconst_m1
            if_icmpeq 27
            iload 6 /* periodCount */
            ifne 27
        23: .line 1450
            iload 5 /* startIndex */
            iconst_1
            iadd
            istore 3 /* certIndex */
        24: .line 1451
            iinc 4 /* match */ 1
        25: .line 1452
            iload 4 /* match */
            istore 2 /* hostIndex */
        26: .line 1453
            goto 29
        27: .line 1454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nameInCert */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logFailMessage:(Ljava/lang/String;)V
        28: .line 1455
            iconst_0
            ireturn
        29: .line 1438
      StackMap locals:
      StackMap stack:
            iload 2 /* hostIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 11
        30: .line 1458
            aload 1 /* nameInCert */
            invokevirtual java.lang.String.length:()I
            iload 3 /* certIndex */
            if_icmpne 33
            iload 6 /* periodCount */
            iconst_1
            if_icmple 33
        31: .line 1459
            aload 0 /* this */
            aload 1 /* nameInCert */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logSuccessMessage:(Ljava/lang/String;)V
        32: .line 1460
            iconst_1
            ireturn
        33: .line 1462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nameInCert */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logFailMessage:(Ljava/lang/String;)V
        34: .line 1463
            iconst_0
            ireturn
        end local 6 // int periodCount
        end local 5 // int startIndex
        end local 4 // int match
        end local 3 // int certIndex
        end local 2 // int hostIndex
        35: .line 1467
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.lang.String
      StackMap stack:
            aload 1 /* nameInCert */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
        36: .line 1468
            aload 0 /* this */
            aload 1 /* nameInCert */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logFailMessage:(Ljava/lang/String;)V
        37: .line 1469
            iconst_0
            ireturn
        38: .line 1471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nameInCert */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logSuccessMessage:(Ljava/lang/String;)V
        39: .line 1472
            iconst_1
            ireturn
        end local 1 // java.lang.String nameInCert
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   40     0         this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0   40     1   nameInCert  Ljava/lang/String;
            6   35     2    hostIndex  I
            7   35     3    certIndex  I
            8   35     4        match  I
            9   35     5   startIndex  I
           10   35     6  periodCount  I
    MethodParameters:
            Name  Flags
      nameInCert  

  private void logFailMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 1 // java.lang.String nameInCert
         0: .line 1476
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         1: .line 1477
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " The name in certificate "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* nameInCert */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1478
            ldc " does not match with the server name "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1477
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         4: .line 1480
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String nameInCert
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0    5     1  nameInCert  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      nameInCert  

  private void logSuccessMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 1 // java.lang.String nameInCert
         0: .line 1483
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         1: .line 1484
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " The name in certificate:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* nameInCert */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " validated against server name "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1485
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1484
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         4: .line 1487
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String nameInCert
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0    5     1  nameInCert  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      nameInCert  

  public void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
         0: .line 1490
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
         1: .line 1491
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Forwarding ClientTrusted."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
         2: .line 1492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.defaultTrustManager:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         3: .line 1494
            aload 1 /* chain */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate[] java.lang.String top int int java.security.cert.X509Certificate[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* cert */
        start local 3 // java.security.cert.X509Certificate cert
         5: .line 1495
            aload 3 /* cert */
            invokevirtual java.security.cert.X509Certificate.checkValidity:()V
        end local 3 // java.security.cert.X509Certificate cert
         6: .line 1494
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 4
         8: .line 1497
            return
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0    9     1     chain  [Ljava/security/cert/X509Certificate;
            0    9     2  authType  Ljava/lang/String;
            5    6     3      cert  Ljava/security/cert/X509Certificate;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  

  public void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
         0: .line 1500
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
         1: .line 1501
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Forwarding Trusting server certificate"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
         2: .line 1502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.defaultTrustManager:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         3: .line 1504
            aload 1 /* chain */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate[] java.lang.String top int int java.security.cert.X509Certificate[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* cert */
        start local 3 // java.security.cert.X509Certificate cert
         5: .line 1505
            aload 3 /* cert */
            invokevirtual java.security.cert.X509Certificate.checkValidity:()V
        end local 3 // java.security.cert.X509Certificate cert
         6: .line 1504
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 4
         8: .line 1507
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 10
         9: .line 1508
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " default serverTrusted succeeded proceeding with server name validation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        10: .line 1510
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate[] java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* chain */
            iconst_0
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.validateServerNameInCertificate:(Ljava/security/cert/X509Certificate;)V
        11: .line 1511
            return
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0   12     1     chain  [Ljava/security/cert/X509Certificate;
            0   12     2  authType  Ljava/lang/String;
            5    6     3      cert  Ljava/security/cert/X509Certificate;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  

  private void validateServerNameInCertificate(java.security.cert.X509Certificate);
    descriptor: (Ljava/security/cert/X509Certificate;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
        start local 1 // java.security.cert.X509Certificate cert
         0: .line 1514
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            ldc "canonical"
            invokevirtual javax.security.auth.x500.X500Principal.getName:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* nameInCertDN */
        start local 2 // java.lang.String nameInCertDN
         1: .line 1515
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         2: .line 1516
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Validating the server name:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.hostName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         3: .line 1517
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " The DN name in certificate:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* nameInCertDN */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         4: .line 1523
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* nameInCertDN */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.parseCommonName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* subjectCN */
        start local 4 // java.lang.String subjectCN
         5: .line 1525
            aload 0 /* this */
            aload 4 /* subjectCN */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.validateServerName:(Ljava/lang/String;)Z
            istore 3 /* isServerNameValidated */
        start local 3 // boolean isServerNameValidated
         6: .line 1527
            iload 3 /* isServerNameValidated */
            ifne 43
         7: .line 1529
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
            astore 5 /* sanCollection */
        start local 5 // java.util.Collection sanCollection
         8: .line 1531
            aload 5 /* sanCollection */
            ifnull 43
         9: .line 1533
            aload 5 /* sanCollection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 42
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate java.lang.String int java.lang.String java.util.Collection top java.util.Iterator
      StackMap stack:
        10: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 6 /* sanEntry */
        start local 6 // java.util.List sanEntry
        11: .line 1535
            aload 6 /* sanEntry */
            ifnull 40
            aload 6 /* sanEntry */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmplt 40
        12: .line 1536
            aload 6 /* sanEntry */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 8 /* key */
        start local 8 // java.lang.Object key
        13: .line 1537
            aload 6 /* sanEntry */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 9 /* value */
        start local 9 // java.lang.Object value
        14: .line 1539
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 23
        15: .line 1540
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Key: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "; KeyClass:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 1541
            aload 8 /* key */
            ifnull 17
            aload 8 /* key */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            goto 18
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate java.lang.String int java.lang.String java.util.Collection java.util.List java.util.Iterator java.lang.Object java.lang.Object
      StackMap stack: java.util.logging.Logger java.lang.StringBuilder
        17: aconst_null
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate java.lang.String int java.lang.String java.util.Collection java.util.List java.util.Iterator java.lang.Object java.lang.Object
      StackMap stack: java.util.logging.Logger java.lang.StringBuilder java.lang.Class
        18: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ";value: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "; valueClass:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 1542
            aload 9 /* value */
            ifnull 20
            aload 9 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            goto 21
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate java.lang.String int java.lang.String java.util.Collection java.util.List java.util.Iterator java.lang.Object java.lang.Object
      StackMap stack: java.util.logging.Logger java.lang.StringBuilder
        20: aconst_null
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate java.lang.String int java.lang.String java.util.Collection java.util.List java.util.Iterator java.lang.Object java.lang.Object
      StackMap stack: java.util.logging.Logger java.lang.StringBuilder java.lang.Class
        21: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 1540
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        23: .line 1553
      StackMap locals:
      StackMap stack:
            aload 8 /* key */
            ifnull 42
            aload 8 /* key */
            instanceof java.lang.Integer
            ifeq 42
            aload 8 /* key */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_2
            if_icmpne 42
        24: .line 1560
            aload 9 /* value */
            ifnull 34
            aload 9 /* value */
            instanceof java.lang.String
            ifeq 34
        25: .line 1561
            aload 9 /* value */
            checkcast java.lang.String
            astore 10 /* dnsNameInSANCert */
        start local 10 // java.lang.String dnsNameInSANCert
        26: .line 1567
            aload 10 /* dnsNameInSANCert */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 10 /* dnsNameInSANCert */
        27: .line 1569
            aload 0 /* this */
            aload 10 /* dnsNameInSANCert */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.validateServerName:(Ljava/lang/String;)Z
            istore 3 /* isServerNameValidated */
        28: .line 1571
            iload 3 /* isServerNameValidated */
            ifeq 34
        29: .line 1572
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 43
        30: .line 1573
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " found a valid name in certificate: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 1574
            aload 10 /* dnsNameInSANCert */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 1573
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        33: .line 1576
            goto 43
        end local 10 // java.lang.String dnsNameInSANCert
        34: .line 1580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 42
        35: .line 1581
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 1582
            ldc " the following name in certificate does not match the serverName: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 1583
            aload 9 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 1581
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        end local 9 // java.lang.Object value
        end local 8 // java.lang.Object key
        39: .line 1587
            goto 42
        40: .line 1588
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 42
        41: .line 1589
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.logContext:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " found an invalid san entry: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* sanEntry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        end local 6 // java.util.List sanEntry
        42: .line 1533
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate java.lang.String int java.lang.String java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 5 // java.util.Collection sanCollection
        43: .line 1597
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager java.security.cert.X509Certificate java.lang.String int java.lang.String
      StackMap stack:
            iload 3 /* isServerNameValidated */
            ifne 46
        44: .line 1598
            ldc "R_certNameFailed"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
        45: .line 1599
            new java.security.cert.CertificateException
            dup
            aload 5 /* msg */
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
        46: .line 1601
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String subjectCN
        end local 3 // boolean isServerNameValidated
        end local 2 // java.lang.String nameInCertDN
        end local 1 // java.security.cert.X509Certificate cert
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   47     0                   this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
            0   47     1                   cert  Ljava/security/cert/X509Certificate;
            1   47     2           nameInCertDN  Ljava/lang/String;
            6   47     3  isServerNameValidated  Z
            5   47     4              subjectCN  Ljava/lang/String;
            8   43     5          sanCollection  Ljava/util/Collection<Ljava/util/List<*>;>;
           11   42     6               sanEntry  Ljava/util/List<*>;
           13   39     8                    key  Ljava/lang/Object;
           14   39     9                  value  Ljava/lang/Object;
           26   34    10       dnsNameInSANCert  Ljava/lang/String;
           45   46     5                    msg  Ljava/lang/String;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
      Name  Flags
      cert  

  public java.security.cert.X509Certificate[] getAcceptedIssuers();
    descriptor: ()[Ljava/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
         0: .line 1604
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.defaultTrustManager:Ljavax/net/ssl/X509TrustManager;
            invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel$HostNameOverrideX509TrustManager;
}
SourceFile: "IOBuffer.java"
NestHost: com.microsoft.sqlserver.jdbc.TDSChannel
InnerClasses:
  private final HostNameOverrideX509TrustManager = com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager of com.microsoft.sqlserver.jdbc.TDSChannel