public final class com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData implements java.sql.ParameterMetaData
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData
  super_class: java.lang.Object
{
  private static final int SQL_SERVER_2012_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private final com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement stmtParent;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.microsoft.sqlserver.jdbc.SQLServerConnection con;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<java.util.Map<java.lang.String, java.lang.Object>> procMetadata;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;

  protected boolean procedureIsFound;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.concurrent.atomic.AtomicInteger baseID;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  boolean isTVP;
    descriptor: Z
    flags: (0x0000) 

  java.util.Map<java.lang.Integer, com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta> queryMetaMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Integer;Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;>;

  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=3, locals=0, args_size=0
         0: .line 32
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            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 com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.$assertionsDisabled:Z
         3: .line 44
            ldc "com.microsoft.sqlserver.jdbc.internals.SQLServerParameterMetaData"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
         4: .line 43
            putstatic com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.logger:Ljava/util/logging/Logger;
         5: .line 46
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putstatic com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.baseID:Ljava/util/concurrent/atomic/AtomicInteger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int nextInstanceID();
    descriptor: ()I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 53
            getstatic com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.baseID:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
         0: .line 63
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.traceID:Ljava/lang/String;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;

  private void parseQueryMeta(java.sql.ResultSet);
    descriptor: (Ljava/sql/ResultSet;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // java.sql.ResultSet rsQueryMeta
         0: .line 83
            ldc "(.*)\\((.*)(\\)|,(.*)\\))"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 2 /* datatypePattern */
        start local 2 // java.util.regex.Pattern datatypePattern
         1: .line 85
            aload 1 /* rsQueryMeta */
            ifnull 100
         2: .line 86
            goto 96
         3: .line 87
      StackMap locals: java.util.regex.Pattern
      StackMap stack:
            new com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            dup
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;)V
            astore 3 /* qm */
        start local 3 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
         4: .line 88
            aconst_null
            astore 4 /* ssType */
        start local 4 // com.microsoft.sqlserver.jdbc.SSType ssType
         5: .line 90
            aload 1 /* rsQueryMeta */
            ldc "parameter_ordinal"
            invokeinterface java.sql.ResultSet.getInt:(Ljava/lang/String;)I
            istore 5 /* paramOrdinal */
        start local 5 // int paramOrdinal
         6: .line 91
            aload 1 /* rsQueryMeta */
            ldc "suggested_system_type_name"
            invokeinterface java.sql.ResultSet.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* typename */
        start local 6 // java.lang.String typename
         7: .line 93
            aload 6 /* typename */
            ifnonnull 33
         8: .line 94
            aload 1 /* rsQueryMeta */
            ldc "suggested_user_type_name"
            invokeinterface java.sql.ResultSet.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* typename */
         9: .line 95
            aconst_null
            astore 7
            aconst_null
            astore 8
        10: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
        11: .line 96
            ldc "select max_length, precision, scale, is_nullable from sys.assembly_types where name = ?"
        12: .line 95
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
            astore 9 /* pstmt */
        start local 9 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement pstmt
        13: .line 97
            aload 9 /* pstmt */
            iconst_1
            aload 6 /* typename */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setNString:(ILjava/lang/String;)V
        14: .line 98
            aconst_null
            astore 10
            aconst_null
            astore 11
        15: aload 9 /* pstmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 12 /* assemblyRs */
        start local 12 // java.sql.ResultSet assemblyRs
        16: .line 99
            aload 12 /* assemblyRs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifeq 21
        17: .line 100
            aload 3 /* qm */
            aload 6 /* typename */
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterTypeName:Ljava/lang/String;
        18: .line 101
            aload 3 /* qm */
            aload 12 /* assemblyRs */
            ldc "max_length"
            invokeinterface java.sql.ResultSet.getInt:(Ljava/lang/String;)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        19: .line 102
            aload 3 /* qm */
            aload 12 /* assemblyRs */
            ldc "scale"
            invokeinterface java.sql.ResultSet.getInt:(Ljava/lang/String;)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.scale:I
        20: .line 103
            getstatic com.microsoft.sqlserver.jdbc.SSType.UDT:Lcom/microsoft/sqlserver/jdbc/SSType;
            astore 4 /* ssType */
        21: .line 105
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData java.sql.ResultSet java.util.regex.Pattern com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta com.microsoft.sqlserver.jdbc.SSType int java.lang.String java.lang.Throwable java.lang.Throwable com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet
      StackMap stack:
            aload 12 /* assemblyRs */
            ifnull 27
            aload 12 /* assemblyRs */
            invokeinterface java.sql.ResultSet.close:()V
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 10
            aload 12 /* assemblyRs */
            ifnull 23
            aload 12 /* assemblyRs */
            invokeinterface java.sql.ResultSet.close:()V
        end local 12 // java.sql.ResultSet assemblyRs
      StackMap locals:
      StackMap stack:
        23: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 11
            aload 10
            ifnonnull 25
            aload 11
            astore 10
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 10
            aload 11
            if_acmpeq 26
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 10
            athrow
        27: .line 106
      StackMap locals:
      StackMap stack:
            aload 9 /* pstmt */
            ifnull 84
            aload 9 /* pstmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.close:()V
            goto 84
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 7
            aload 9 /* pstmt */
            ifnull 29
            aload 9 /* pstmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.close:()V
        end local 9 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement pstmt
      StackMap locals:
      StackMap stack:
        29: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 8
            aload 7
            ifnonnull 31
            aload 8
            astore 7
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 7
            aload 8
            if_acmpeq 32
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 7
            athrow
        33: .line 108
      StackMap locals:
      StackMap stack:
            aload 3 /* qm */
            aload 1 /* rsQueryMeta */
            ldc "suggested_precision"
            invokeinterface java.sql.ResultSet.getInt:(Ljava/lang/String;)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        34: .line 109
            aload 3 /* qm */
            aload 1 /* rsQueryMeta */
            ldc "suggested_scale"
            invokeinterface java.sql.ResultSet.getInt:(Ljava/lang/String;)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.scale:I
        35: .line 111
            aload 2 /* datatypePattern */
            aload 6 /* typename */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 7 /* matcher */
        start local 7 // java.util.regex.Matcher matcher
        36: .line 112
            aload 7 /* matcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 59
        37: .line 114
            aload 7 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic com.microsoft.sqlserver.jdbc.SSType.of:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SSType;
            astore 4 /* ssType */
        38: .line 115
            ldc "varchar(max)"
            aload 6 /* typename */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 40
        39: .line 116
            ldc "varbinary(max)"
            aload 6 /* typename */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 42
        40: .line 117
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            aload 3 /* qm */
            ldc 2147483647
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        41: .line 118
            goto 60
      StackMap locals:
      StackMap stack:
        42: ldc "nvarchar(max)"
            aload 6 /* typename */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 45
        43: .line 119
            aload 3 /* qm */
            ldc 1073741823
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        44: .line 120
            goto 60
      StackMap locals:
      StackMap stack:
        45: getstatic com.microsoft.sqlserver.jdbc.SSType$Category.CHARACTER:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            aload 4 /* ssType */
            getfield com.microsoft.sqlserver.jdbc.SSType.category:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            if_acmpeq 48
        46: .line 121
            getstatic com.microsoft.sqlserver.jdbc.SSType$Category.BINARY:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            aload 4 /* ssType */
            getfield com.microsoft.sqlserver.jdbc.SSType.category:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            if_acmpeq 48
        47: .line 122
            getstatic com.microsoft.sqlserver.jdbc.SSType$Category.NCHARACTER:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            aload 4 /* ssType */
            getfield com.microsoft.sqlserver.jdbc.SSType.category:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            if_acmpne 60
        48: .line 127
      StackMap locals:
      StackMap stack:
            aload 3 /* qm */
            aload 7 /* matcher */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        49: .line 128
            goto 60
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        50: astore 8 /* e */
        start local 8 // java.lang.NumberFormatException e
        51: .line 129
            new java.text.MessageFormat
            dup
        52: .line 130
            ldc "R_metaDataErrorForParameter"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
        53: .line 129
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 9 /* form */
        start local 9 // java.text.MessageFormat form
        54: .line 131
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 5 /* paramOrdinal */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            astore 10 /* msgArgs */
        start local 10 // java.lang.Object[] msgArgs
        55: .line 132
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
        56: .line 133
            new java.lang.StringBuilder
            dup
            aload 9 /* form */
            aload 10 /* msgArgs */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* e */
            invokevirtual java.lang.NumberFormatException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            iconst_0
        57: .line 132
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        end local 10 // java.lang.Object[] msgArgs
        end local 9 // java.text.MessageFormat form
        end local 8 // java.lang.NumberFormatException e
        58: .line 136
            goto 60
        59: .line 137
      StackMap locals:
      StackMap stack:
            aload 6 /* typename */
            invokestatic com.microsoft.sqlserver.jdbc.SSType.of:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SSType;
            astore 4 /* ssType */
        60: .line 140
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SSType.FLOAT:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 63
        61: .line 143
            aload 3 /* qm */
            bipush 15
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        62: .line 144
            goto 83
      StackMap locals:
      StackMap stack:
        63: getstatic com.microsoft.sqlserver.jdbc.SSType.REAL:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 66
        64: .line 145
            aload 3 /* qm */
            bipush 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        65: .line 146
            goto 83
      StackMap locals:
      StackMap stack:
        66: getstatic com.microsoft.sqlserver.jdbc.SSType.TEXT:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 69
        67: .line 147
            aload 3 /* qm */
            ldc 2147483647
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        68: .line 148
            goto 83
      StackMap locals:
      StackMap stack:
        69: getstatic com.microsoft.sqlserver.jdbc.SSType.NTEXT:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 72
        70: .line 149
            aload 3 /* qm */
            ldc 1073741823
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        71: .line 150
            goto 83
      StackMap locals:
      StackMap stack:
        72: getstatic com.microsoft.sqlserver.jdbc.SSType.IMAGE:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 75
        73: .line 151
            aload 3 /* qm */
            ldc 2147483647
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        74: .line 152
            goto 83
      StackMap locals:
      StackMap stack:
        75: getstatic com.microsoft.sqlserver.jdbc.SSType.GUID:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 78
        76: .line 153
            aload 3 /* qm */
            bipush 36
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        77: .line 154
            goto 83
      StackMap locals:
      StackMap stack:
        78: getstatic com.microsoft.sqlserver.jdbc.SSType.TIMESTAMP:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 81
        79: .line 155
            aload 3 /* qm */
            bipush 8
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        80: .line 156
            goto 83
      StackMap locals:
      StackMap stack:
        81: getstatic com.microsoft.sqlserver.jdbc.SSType.XML:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpne 83
        82: .line 157
            aload 3 /* qm */
            ldc 1073741823
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
        83: .line 160
      StackMap locals:
      StackMap stack:
            aload 3 /* qm */
            aload 4 /* ssType */
            invokevirtual com.microsoft.sqlserver.jdbc.SSType.toString:()Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterTypeName:Ljava/lang/String;
        end local 7 // java.util.regex.Matcher matcher
        84: .line 164
      StackMap locals:
      StackMap stack:
            aload 4 /* ssType */
            ifnonnull 88
        85: .line 165
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            ldc "R_metaDataErrorForParameter"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
        86: .line 166
            aconst_null
        87: .line 165
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        88: .line 169
      StackMap locals:
      StackMap stack:
            aload 4 /* ssType */
            invokevirtual com.microsoft.sqlserver.jdbc.SSType.getJDBCType:()Lcom/microsoft/sqlserver/jdbc/JDBCType;
            astore 7 /* jdbcType */
        start local 7 // com.microsoft.sqlserver.jdbc.JDBCType jdbcType
        89: .line 170
            aload 3 /* qm */
            aload 7 /* jdbcType */
            invokevirtual com.microsoft.sqlserver.jdbc.JDBCType.className:()Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterClassName:Ljava/lang/String;
        90: .line 171
            aload 3 /* qm */
            aload 7 /* jdbcType */
            invokevirtual com.microsoft.sqlserver.jdbc.JDBCType.getIntValue:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterType:I
        91: .line 173
            aload 3 /* qm */
            getstatic com.microsoft.sqlserver.jdbc.SSType$Category.NUMERIC:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            aload 4 /* ssType */
            getfield com.microsoft.sqlserver.jdbc.SSType.category:Lcom/microsoft/sqlserver/jdbc/SSType$Category;
            if_acmpne 93
            getstatic com.microsoft.sqlserver.jdbc.SSType.BIT:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpeq 93
        92: .line 174
            getstatic com.microsoft.sqlserver.jdbc.SSType.TINYINT:Lcom/microsoft/sqlserver/jdbc/SSType;
            aload 4 /* ssType */
            if_acmpeq 93
            iconst_1
            goto 94
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData java.sql.ResultSet java.util.regex.Pattern com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta com.microsoft.sqlserver.jdbc.SSType int java.lang.String com.microsoft.sqlserver.jdbc.JDBCType
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
        93: iconst_0
        94: .line 173
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData java.sql.ResultSet java.util.regex.Pattern com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta com.microsoft.sqlserver.jdbc.SSType int java.lang.String com.microsoft.sqlserver.jdbc.JDBCType
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta int
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.isSigned:Z
        95: .line 175
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 5 /* paramOrdinal */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 3 /* qm */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // com.microsoft.sqlserver.jdbc.JDBCType jdbcType
        end local 6 // java.lang.String typename
        end local 5 // int paramOrdinal
        end local 4 // com.microsoft.sqlserver.jdbc.SSType ssType
        end local 3 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
        96: .line 86
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData java.sql.ResultSet java.util.regex.Pattern
      StackMap stack:
            aload 1 /* rsQueryMeta */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 3
        97: .line 178
            goto 100
      StackMap locals:
      StackMap stack: java.sql.SQLException
        98: astore 3 /* e */
        start local 3 // java.sql.SQLException e
        99: .line 179
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            ldc "R_metaDataErrorForParameter"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.sql.SQLException e
       100: .line 181
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.regex.Pattern datatypePattern
        end local 1 // java.sql.ResultSet rsQueryMeta
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  101     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0  101     1      rsQueryMeta  Ljava/sql/ResultSet;
            1  101     2  datatypePattern  Ljava/util/regex/Pattern;
            4   96     3               qm  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;
            5   96     4           ssType  Lcom/microsoft/sqlserver/jdbc/SSType;
            6   96     5     paramOrdinal  I
            7   96     6         typename  Ljava/lang/String;
           13   29     9            pstmt  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
           16   23    12       assemblyRs  Ljava/sql/ResultSet;
           36   84     7          matcher  Ljava/util/regex/Matcher;
           51   58     8                e  Ljava/lang/NumberFormatException;
           54   58     9             form  Ljava/text/MessageFormat;
           55   58    10          msgArgs  [Ljava/lang/Object;
           89   96     7         jdbcType  Lcom/microsoft/sqlserver/jdbc/JDBCType;
           99  100     3                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          16    21      22  any
          15    24      24  any
          13    27      28  any
          10    30      30  any
          48    49      50  Class java.lang.NumberFormatException
           1    97      98  Class java.sql.SQLException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
             Name  Flags
      rsQueryMeta  

  private void parseFMTQueryMeta(java.sql.ResultSetMetaData, com.microsoft.sqlserver.jdbc.SQLServerFMTQuery);
    descriptor: (Ljava/sql/ResultSetMetaData;Lcom/microsoft/sqlserver/jdbc/SQLServerFMTQuery;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // java.sql.ResultSetMetaData md
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerFMTQuery f
         0: .line 186
            aload 2 /* f */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerFMTQuery.getColumns:()Ljava/util/List;
            astore 3 /* columns */
        start local 3 // java.util.List columns
         1: .line 188
            aload 2 /* f */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerFMTQuery.getValuesList:()Ljava/util/List;
            astore 4 /* params */
        start local 4 // java.util.List params
         2: .line 189
            iconst_0
            istore 5 /* valueListOffset */
        start local 5 // int valueListOffset
         3: .line 190
            iconst_1
            istore 6 /* mdIndex */
        start local 6 // int mdIndex
         4: .line 191
            iconst_1
            istore 7 /* mapIndex */
        start local 7 // int mapIndex
         5: .line 192
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         6: goto 24
         7: .line 199
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData java.sql.ResultSetMetaData com.microsoft.sqlserver.jdbc.SQLServerFMTQuery java.util.List java.util.List int int int int
      StackMap stack:
            ldc "*"
            aload 3 /* columns */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
         8: .line 200
            iconst_0
            istore 9 /* j */
        start local 9 // int j
         9: goto 16
        10: .line 201
      StackMap locals: int
      StackMap stack:
            ldc "?"
            aload 4 /* params */
            iload 5 /* valueListOffset */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            iload 9 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        11: .line 202
            aload 1 /* md */
            iload 6 /* mdIndex */
            iload 9 /* j */
            iadd
            invokeinterface java.sql.ResultSetMetaData.isAutoIncrement:(I)Z
            ifne 15
        12: .line 203
            aload 0 /* this */
            aload 1 /* md */
            iload 6 /* mdIndex */
            iload 9 /* j */
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getQueryMetaFromResultSetMetaData:(Ljava/sql/ResultSetMetaData;I)Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;
            astore 10 /* qm */
        start local 10 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
        13: .line 204
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 7 /* mapIndex */
            iinc 7 /* mapIndex */ 1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 10 /* qm */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 205
            iinc 8 /* i */ 1
        end local 10 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
        15: .line 200
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 9 /* j */
            aload 4 /* params */
            iload 5 /* valueListOffset */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.size:()I
            if_icmplt 10
        end local 9 // int j
        17: .line 209
            iload 6 /* mdIndex */
            aload 4 /* params */
            iload 5 /* valueListOffset */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.size:()I
            iadd
            istore 6 /* mdIndex */
        18: .line 210
            iinc 5 /* valueListOffset */ 1
        19: .line 211
            goto 23
        20: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* md */
            iload 6 /* mdIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getQueryMetaFromResultSetMetaData:(Ljava/sql/ResultSetMetaData;I)Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;
            astore 9 /* qm */
        start local 9 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
        21: .line 216
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 7 /* mapIndex */
            iinc 7 /* mapIndex */ 1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* qm */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 217
            iinc 6 /* mdIndex */ 1
        end local 9 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
        23: .line 192
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 8 /* i */
            aload 3 /* columns */
            invokeinterface java.util.List.size:()I
            if_icmplt 7
        end local 8 // int i
        end local 7 // int mapIndex
        end local 6 // int mdIndex
        end local 5 // int valueListOffset
        end local 4 // java.util.List params
        end local 3 // java.util.List columns
        25: .line 220
            goto 28
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData java.sql.ResultSetMetaData com.microsoft.sqlserver.jdbc.SQLServerFMTQuery
      StackMap stack: java.sql.SQLException
        26: astore 3 /* e */
        start local 3 // java.sql.SQLException e
        27: .line 221
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            ldc "R_metaDataErrorForParameter"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.sql.SQLException e
        28: .line 223
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerFMTQuery f
        end local 1 // java.sql.ResultSetMetaData md
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   29     1               md  Ljava/sql/ResultSetMetaData;
            0   29     2                f  Lcom/microsoft/sqlserver/jdbc/SQLServerFMTQuery;
            1   25     3          columns  Ljava/util/List<Ljava/lang/String;>;
            2   25     4           params  Ljava/util/List<Ljava/util/List<Ljava/lang/String;>;>;
            3   25     5  valueListOffset  I
            4   25     6          mdIndex  I
            5   25     7         mapIndex  I
            6   25     8                i  I
            9   17     9                j  I
           13   15    10               qm  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;
           21   23     9               qm  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;
           27   28     3                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0    25      26  Class java.sql.SQLException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
      Name  Flags
      md    
      f     

  private com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta getQueryMetaFromResultSetMetaData(java.sql.ResultSetMetaData, int);
    descriptor: (Ljava/sql/ResultSetMetaData;I)Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // java.sql.ResultSetMetaData md
        start local 2 // int index
         0: .line 226
            new com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            dup
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;)V
            astore 3 /* qm */
        start local 3 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
         1: .line 227
            aload 3 /* qm */
            aload 1 /* md */
            iload 2 /* index */
            invokeinterface java.sql.ResultSetMetaData.getColumnClassName:(I)Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterClassName:Ljava/lang/String;
         2: .line 228
            aload 3 /* qm */
            aload 1 /* md */
            iload 2 /* index */
            invokeinterface java.sql.ResultSetMetaData.getColumnType:(I)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterType:I
         3: .line 229
            aload 3 /* qm */
            aload 1 /* md */
            iload 2 /* index */
            invokeinterface java.sql.ResultSetMetaData.getColumnTypeName:(I)Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterTypeName:Ljava/lang/String;
         4: .line 230
            aload 3 /* qm */
            aload 1 /* md */
            iload 2 /* index */
            invokeinterface java.sql.ResultSetMetaData.getPrecision:(I)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
         5: .line 231
            aload 3 /* qm */
            aload 1 /* md */
            iload 2 /* index */
            invokeinterface java.sql.ResultSetMetaData.getScale:(I)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.scale:I
         6: .line 232
            aload 3 /* qm */
            aload 1 /* md */
            iload 2 /* index */
            invokeinterface java.sql.ResultSetMetaData.isNullable:(I)I
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.isNullable:I
         7: .line 233
            aload 3 /* qm */
            aload 1 /* md */
            iload 2 /* index */
            invokeinterface java.sql.ResultSetMetaData.isSigned:(I)Z
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.isSigned:Z
         8: .line 234
            aload 3 /* qm */
            areturn
        end local 3 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta qm
        end local 2 // int index
        end local 1 // java.sql.ResultSetMetaData md
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    9     1     md  Ljava/sql/ResultSetMetaData;
            0    9     2  index  I
            1    9     3     qm  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData$QueryMeta;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
       Name  Flags
      md     
      index  

  java.lang.String parseProcIdentifier(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // java.lang.String procIdentifier
         0: .line 238
            aload 1 /* procIdentifier */
            invokestatic com.microsoft.sqlserver.jdbc.ThreePartName.parse:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/ThreePartName;
            astore 2 /* threePartName */
        start local 2 // com.microsoft.sqlserver.jdbc.ThreePartName threePartName
         1: .line 239
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         2: .line 240
            aload 2 /* threePartName */
            invokevirtual com.microsoft.sqlserver.jdbc.ThreePartName.getDatabasePart:()Ljava/lang/String;
            ifnull 6
         3: .line 241
            aload 3 /* sb */
            ldc "@procedure_qualifier="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 242
            aload 3 /* sb */
            aload 2 /* threePartName */
            invokevirtual com.microsoft.sqlserver.jdbc.ThreePartName.getDatabasePart:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 243
            aload 3 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 245
      StackMap locals: com.microsoft.sqlserver.jdbc.ThreePartName java.lang.StringBuilder
      StackMap stack:
            aload 2 /* threePartName */
            invokevirtual com.microsoft.sqlserver.jdbc.ThreePartName.getOwnerPart:()Ljava/lang/String;
            ifnull 10
         7: .line 246
            aload 3 /* sb */
            ldc "@procedure_owner="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 247
            aload 3 /* sb */
            aload 2 /* threePartName */
            invokevirtual com.microsoft.sqlserver.jdbc.ThreePartName.getOwnerPart:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 248
            aload 3 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 250
      StackMap locals:
      StackMap stack:
            aload 2 /* threePartName */
            invokevirtual com.microsoft.sqlserver.jdbc.ThreePartName.getProcedurePart:()Ljava/lang/String;
            ifnull 14
        11: .line 251
            aload 3 /* sb */
            ldc "@procedure_name="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 252
            aload 3 /* sb */
            aload 2 /* threePartName */
            invokevirtual com.microsoft.sqlserver.jdbc.ThreePartName.getProcedurePart:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 253
            goto 17
        14: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            ldc "R_noMetadata"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 255
            aconst_null
            iconst_0
        16: .line 254
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        17: .line 257
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // com.microsoft.sqlserver.jdbc.ThreePartName threePartName
        end local 1 // java.lang.String procIdentifier
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   18     1  procIdentifier  Ljava/lang/String;
            1   18     2   threePartName  Lcom/microsoft/sqlserver/jdbc/ThreePartName;
            2   18     3              sb  Ljava/lang/StringBuilder;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                Name  Flags
      procIdentifier  

  private void checkClosed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
         0: .line 263
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed:()V
         1: .line 264
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  void <init>(com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement, java.lang.String);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement st
        start local 2 // java.lang.String sProcString
         0: .line 276
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 41
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procedureIsFound:Z
         2: .line 48
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc " SQLServerParameterMetaData:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.nextInstanceID:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.traceID:Ljava/lang/String;
         3: .line 49
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.isTVP:Z
         4: .line 77
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
         5: .line 277
            getstatic com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.$assertionsDisabled:Z
            ifne 6
            aload 1 /* st */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 278
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* st */
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
         7: .line 279
            aload 0 /* this */
            aload 1 /* st */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
         8: .line 280
            getstatic com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 10
         9: .line 281
            getstatic com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.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 " created by ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* st */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()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;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        10: .line 287
      StackMap locals:
      StackMap stack:
            aload 1 /* st */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.procedureName:Ljava/lang/String;
            ifnull 45
        11: .line 288
            aload 0 /* this */
            aload 1 /* st */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.procedureName:Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.parseProcIdentifier:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* sProc */
        start local 3 // java.lang.String sProc
        12: .line 289
            aconst_null
            astore 4
            aconst_null
            astore 5
        13: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            sipush 1004
        14: .line 290
            sipush 1007
        15: .line 289
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.createStatement:(II)Ljava/sql/Statement;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerStatement
            astore 6 /* s */
        start local 6 // com.microsoft.sqlserver.jdbc.SQLServerStatement s
        16: .line 291
            aload 6 /* s */
        17: .line 292
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isKatmaiOrLater:()Z
            ifeq 18
            new java.lang.StringBuilder
            dup
            ldc "exec sp_sproc_columns_100 "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* sProc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", @ODBCVer=3, @fUsePattern=0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 19
        18: .line 293
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable com.microsoft.sqlserver.jdbc.SQLServerStatement
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerStatement
            new java.lang.StringBuilder
            dup
            ldc "exec sp_sproc_columns "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* sProc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", @ODBCVer=3, @fUsePattern=0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 291
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable com.microsoft.sqlserver.jdbc.SQLServerStatement
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerStatement java.lang.String
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQueryInternal:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            astore 7 /* rsProcedureMeta */
        start local 7 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rsProcedureMeta
        20: .line 296
            aload 7 /* rsProcedureMeta */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.next:()Z
            ifeq 23
        21: .line 297
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procedureIsFound:Z
        22: .line 298
            goto 24
        23: .line 299
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerResultSet
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procedureIsFound:Z
        24: .line 302
      StackMap locals:
      StackMap stack:
            aload 7 /* rsProcedureMeta */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.beforeFirst:()V
        25: .line 305
            aload 7 /* rsProcedureMeta */
            bipush 6
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.DataTypeFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.DataTypeFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        26: .line 306
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isKatmaiOrLater:()Z
            ifeq 30
        27: .line 307
            aload 7 /* rsProcedureMeta */
            bipush 8
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.ZeroFixupFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.ZeroFixupFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        28: .line 308
            aload 7 /* rsProcedureMeta */
            bipush 9
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.ZeroFixupFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.ZeroFixupFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        29: .line 309
            aload 7 /* rsProcedureMeta */
            bipush 17
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.ZeroFixupFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.ZeroFixupFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        30: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
        31: .line 315
            goto 33
        32: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$1
            dup
            aload 0 /* this */
            aload 7 /* rsProcedureMeta */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$1.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        33: .line 315
      StackMap locals:
      StackMap stack:
            aload 7 /* rsProcedureMeta */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.next:()Z
            ifne 32
        34: .line 328
            aload 7 /* rsProcedureMeta */
            ifnull 37
            aload 7 /* rsProcedureMeta */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.close:()V
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 4
            aload 7 /* rsProcedureMeta */
            ifnull 36
            aload 7 /* rsProcedureMeta */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.close:()V
        end local 7 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rsProcedureMeta
      StackMap locals:
      StackMap stack:
        36: aload 4
            athrow
      StackMap locals:
      StackMap stack:
        37: aload 6 /* s */
            ifnull 85
            aload 6 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.close:()V
            goto 85
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: astore 5
            aload 4
            ifnonnull 39
            aload 5
            astore 4
            goto 40
      StackMap locals:
      StackMap stack:
        39: aload 4
            aload 5
            if_acmpeq 40
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        40: aload 6 /* s */
            ifnull 41
            aload 6 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.close:()V
        end local 6 // com.microsoft.sqlserver.jdbc.SQLServerStatement s
      StackMap locals:
      StackMap stack:
        41: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 5
            aload 4
            ifnonnull 43
            aload 5
            astore 4
            goto 44
      StackMap locals:
      StackMap stack:
        43: aload 4
            aload 5
            if_acmpeq 44
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        44: aload 4
            athrow
        end local 3 // java.lang.String sProc
        45: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
        46: .line 337
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getServerMajorVersion:()I
            bipush 11
            if_icmplt 62
            aload 1 /* st */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getUseFmtOnly:()Z
            ifne 62
        47: .line 338
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.userSQL:Ljava/lang/String;
        48: .line 339
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.userSQLParamPositions:[I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.bReturnValueSyntax:Z
        49: .line 338
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.replaceParameterMarkers:(Ljava/lang/String;[I[Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Ljava/lang/String;
            astore 3 /* preparedSQL */
        start local 3 // java.lang.String preparedSQL
        50: .line 341
            aconst_null
            astore 4
            aconst_null
            astore 5
        51: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
        52: .line 342
            ldc "exec sp_describe_undeclared_parameters ?"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareCall:(Ljava/lang/String;)Ljava/sql/CallableStatement;
        53: .line 341
            checkcast com.microsoft.sqlserver.jdbc.SQLServerCallableStatement
            astore 6 /* cstmt */
        start local 6 // com.microsoft.sqlserver.jdbc.SQLServerCallableStatement cstmt
        54: .line 343
            aload 6 /* cstmt */
            iconst_1
            aload 3 /* preparedSQL */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.setNString:(ILjava/lang/String;)V
        55: .line 344
            aload 0 /* this */
            aload 6 /* cstmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.executeQueryInternal:()Ljava/sql/ResultSet;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.parseQueryMeta:(Ljava/sql/ResultSet;)V
        56: .line 345
            aload 6 /* cstmt */
            ifnull 85
            aload 6 /* cstmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.close:()V
            goto 85
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable com.microsoft.sqlserver.jdbc.SQLServerCallableStatement
      StackMap stack: java.lang.Throwable
        57: astore 4
            aload 6 /* cstmt */
            ifnull 58
            aload 6 /* cstmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.close:()V
        end local 6 // com.microsoft.sqlserver.jdbc.SQLServerCallableStatement cstmt
      StackMap locals:
      StackMap stack:
        58: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        59: astore 5
            aload 4
            ifnonnull 60
            aload 5
            astore 4
            goto 61
      StackMap locals:
      StackMap stack:
        60: aload 4
            aload 5
            if_acmpeq 61
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        61: aload 4
            athrow
        end local 3 // java.lang.String preparedSQL
        62: .line 347
      StackMap locals:
      StackMap stack:
            new com.microsoft.sqlserver.jdbc.SQLServerFMTQuery
            dup
            aload 2 /* sProcString */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerFMTQuery.<init>:(Ljava/lang/String;)V
            astore 3 /* f */
        start local 3 // com.microsoft.sqlserver.jdbc.SQLServerFMTQuery f
        63: .line 348
            aconst_null
            astore 4
            aconst_null
            astore 5
        64: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.createStatement:()Ljava/sql/Statement;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerStatement
            astore 6 /* stmt */
        start local 6 // com.microsoft.sqlserver.jdbc.SQLServerStatement stmt
        65: .line 349
            aload 6 /* stmt */
            aload 3 /* f */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerFMTQuery.getFMTQuery:()Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery:(Ljava/lang/String;)Ljava/sql/ResultSet;
            astore 7 /* rs */
        start local 7 // java.sql.ResultSet rs
        66: .line 350
            aload 0 /* this */
            aload 7 /* rs */
            invokeinterface java.sql.ResultSet.getMetaData:()Ljava/sql/ResultSetMetaData;
            aload 3 /* f */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.parseFMTQueryMeta:(Ljava/sql/ResultSetMetaData;Lcom/microsoft/sqlserver/jdbc/SQLServerFMTQuery;)V
        67: .line 351
            aload 7 /* rs */
            ifnull 70
            aload 7 /* rs */
            invokeinterface java.sql.ResultSet.close:()V
            goto 70
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement java.lang.String com.microsoft.sqlserver.jdbc.SQLServerFMTQuery java.lang.Throwable java.lang.Throwable com.microsoft.sqlserver.jdbc.SQLServerStatement java.sql.ResultSet
      StackMap stack: java.lang.Throwable
        68: astore 4
            aload 7 /* rs */
            ifnull 69
            aload 7 /* rs */
            invokeinterface java.sql.ResultSet.close:()V
        end local 7 // java.sql.ResultSet rs
      StackMap locals:
      StackMap stack:
        69: aload 4
            athrow
      StackMap locals:
      StackMap stack:
        70: aload 6 /* stmt */
            ifnull 85
            aload 6 /* stmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.close:()V
            goto 85
      StackMap locals:
      StackMap stack: java.lang.Throwable
        71: astore 5
            aload 4
            ifnonnull 72
            aload 5
            astore 4
            goto 73
      StackMap locals:
      StackMap stack:
        72: aload 4
            aload 5
            if_acmpeq 73
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        73: aload 6 /* stmt */
            ifnull 74
            aload 6 /* stmt */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.close:()V
        end local 6 // com.microsoft.sqlserver.jdbc.SQLServerStatement stmt
      StackMap locals:
      StackMap stack:
        74: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        75: astore 5
            aload 4
            ifnonnull 76
            aload 5
            astore 4
            goto 77
      StackMap locals:
      StackMap stack:
        76: aload 4
            aload 5
            if_acmpeq 77
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        77: aload 4
            athrow
        end local 3 // com.microsoft.sqlserver.jdbc.SQLServerFMTQuery f
        78: .line 356
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement java.lang.String
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerException
            astore 3 /* e */
        start local 3 // com.microsoft.sqlserver.jdbc.SQLServerException e
        79: .line 357
            aload 3 /* e */
            athrow
        end local 3 // com.microsoft.sqlserver.jdbc.SQLServerException e
        80: .line 358
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
        81: .line 359
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            aload 3 /* e */
            invokevirtual java.sql.SQLException.getMessage:()Ljava/lang/String;
            aconst_null
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        end local 3 // java.sql.SQLException e
        82: goto 85
        83: .line 360
      StackMap locals:
      StackMap stack: java.lang.StringIndexOutOfBoundsException
            astore 3 /* e */
        start local 3 // java.lang.StringIndexOutOfBoundsException e
        84: .line 361
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            aload 3 /* e */
            invokevirtual java.lang.StringIndexOutOfBoundsException.getMessage:()Ljava/lang/String;
            aconst_null
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        end local 3 // java.lang.StringIndexOutOfBoundsException e
        85: .line 363
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String sProcString
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement st
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   86     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   86     1               st  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   86     2      sProcString  Ljava/lang/String;
           12   45     3            sProc  Ljava/lang/String;
           16   41     6                s  Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
           20   36     7  rsProcedureMeta  Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
           50   62     3      preparedSQL  Ljava/lang/String;
           54   58     6            cstmt  Lcom/microsoft/sqlserver/jdbc/SQLServerCallableStatement;
           63   78     3                f  Lcom/microsoft/sqlserver/jdbc/SQLServerFMTQuery;
           65   74     6             stmt  Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
           66   69     7               rs  Ljava/sql/ResultSet;
           79   80     3                e  Lcom/microsoft/sqlserver/jdbc/SQLServerException;
           81   82     3                e  Ljava/sql/SQLException;
           84   85     3                e  Ljava/lang/StringIndexOutOfBoundsException;
      Exception table:
        from    to  target  type
          20    34      35  any
          16    37      38  any
          13    42      42  any
          54    56      57  any
          51    59      59  any
          66    67      68  any
          65    70      71  any
          64    75      75  any
          10    78      78  Class com.microsoft.sqlserver.jdbc.SQLServerException
          10    78      80  Class java.sql.SQLException
          10    78      83  Class java.lang.StringIndexOutOfBoundsException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
             Name  Flags
      st           
      sProcString  

  public boolean isWrapperFor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // java.lang.Class iface
         0: .line 367
            aload 1 /* iface */
            aload 0 /* this */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            istore 2 /* f */
        start local 2 // boolean f
         1: .line 368
            iload 2 /* f */
            ireturn
        end local 2 // boolean f
        end local 1 // java.lang.Class iface
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    2     1  iface  Ljava/lang/Class<*>;
            1    2     2      f  Z
    Exceptions:
      throws java.sql.SQLException
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      iface  

  public <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // java.lang.Class iface
         0: .line 375
            aload 1 /* iface */
            aload 0 /* this */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* t */
        start local 2 // java.lang.Object t
         1: .line 376
            goto 4
        end local 2 // java.lang.Object t
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
         2: astore 3 /* e */
        start local 3 // java.lang.ClassCastException e
         3: .line 377
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 3 /* e */
            invokevirtual java.lang.ClassCastException.getMessage:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ClassCastException e
        start local 2 // java.lang.Object t
         4: .line 379
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* t */
            areturn
        end local 2 // java.lang.Object t
        end local 1 // java.lang.Class iface
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    5     1  iface  Ljava/lang/Class<TT;>;
            1    2     2      t  TT;
            4    5     2      t  TT;
            3    4     3      e  Ljava/lang/ClassCastException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
    Exceptions:
      throws java.sql.SQLException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      iface  

  private java.util.Map<java.lang.String, java.lang.Object> getParameterInfo(int);
    descriptor: (I)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 383
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.bReturnValueSyntax:Z
            ifeq 2
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.isTVP:Z
            ifeq 2
         1: .line 384
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            iload 1 /* param */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.Map
            areturn
         2: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            iload 1 /* param */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.Map
            areturn
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    3     1  param  I
    Signature: (I)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
       Name  Flags
      param  

  private boolean isValidParamProc(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int n
         0: .line 393
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.bReturnValueSyntax:Z
            ifeq 1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.isTVP:Z
            ifeq 1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iload 1 /* n */
            if_icmpge 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iload 1 /* n */
            if_icmpgt 2
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // int n
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    3     1     n  I
    MethodParameters:
      Name  Flags
      n     

  private boolean isValidParamQuery(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int n
         0: .line 397
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            ifnull 1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* n */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int n
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    2     1     n  I
    MethodParameters:
      Name  Flags
      n     

  private void checkParam(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 408
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 6
         1: .line 410
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.isValidParamQuery:(I)Z
            ifne 10
         2: .line 411
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            ldc "R_noMetadata"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 412
            aconst_null
            iconst_0
         4: .line 411
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
         5: .line 414
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.isValidParamProc:(I)Z
            ifne 10
         7: .line 416
            new java.text.MessageFormat
            dup
            ldc "R_invalidParameterNumber"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 2 /* form */
        start local 2 // java.text.MessageFormat form
         8: .line 417
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            astore 3 /* msgArgs */
        start local 3 // java.lang.Object[] msgArgs
         9: .line 418
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            aload 2 /* form */
            aload 3 /* msgArgs */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        end local 3 // java.lang.Object[] msgArgs
        end local 2 // java.text.MessageFormat form
        10: .line 420
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   11     1    param  I
            8   10     2     form  Ljava/text/MessageFormat;
            9   10     3  msgArgs  [Ljava/lang/Object;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public java.lang.String getParameterClassName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 424
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 425
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 427
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 5
         3: .line 428
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterClassName:Ljava/lang/String;
         4: areturn
         5: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "DATA_TYPE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Short
            invokevirtual java.lang.Short.shortValue:()S
            invokestatic com.microsoft.sqlserver.jdbc.JDBCType.of:(I)Lcom/microsoft/sqlserver/jdbc/JDBCType;
            invokevirtual com.microsoft.sqlserver.jdbc.JDBCType.className:()Ljava/lang/String;
         6: areturn
         7: .line 432
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerException
            astore 2 /* e */
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerException e
         8: .line 433
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            aload 2 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerException.getMessage:()Ljava/lang/String;
            aconst_null
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
         9: .line 434
            aconst_null
            areturn
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerException e
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   10     1  param  I
            8   10     2      e  Lcom/microsoft/sqlserver/jdbc/SQLServerException;
      Exception table:
        from    to  target  type
           2     4       7  Class com.microsoft.sqlserver.jdbc.SQLServerException
           5     6       7  Class com.microsoft.sqlserver.jdbc.SQLServerException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public int getParameterCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
         0: .line 440
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 441
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 3
         2: .line 442
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ireturn
         3: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifne 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public int getParameterMode(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 451
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 452
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 453
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 4
         3: .line 455
            iconst_1
            ireturn
         4: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "COLUMN_TYPE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* n */
        start local 2 // int n
         5: .line 458
            iload 2 /* n */
            iconst_1
            if_icmpne 7
         6: .line 459
            iconst_1
            ireturn
         7: .line 460
      StackMap locals: int
      StackMap stack:
            iload 2 /* n */
            iconst_2
            if_icmpne 9
         8: .line 461
            iconst_4
            ireturn
         9: .line 463
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int n
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   10     1  param  I
            5   10     2      n  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public int getParameterType(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 469
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 470
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 471
            iconst_0
            istore 2 /* parameterType */
        start local 2 // int parameterType
         3: .line 472
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 6
         4: .line 473
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterType:I
            istore 2 /* parameterType */
         5: .line 474
            goto 7
         6: .line 475
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "DATA_TYPE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Short
            invokevirtual java.lang.Short.shortValue:()S
            istore 2 /* parameterType */
         7: .line 477
      StackMap locals:
      StackMap stack:
            iload 2 /* parameterType */
            ifeq 15
         8: .line 478
            iload 2 /* parameterType */
            tableswitch { // -151 - -145
                 -151: 9
                 -150: 9
                 -149: 15
                 -148: 11
                 -147: 15
                 -146: 11
                 -145: 13
              default: 15
          }
         9: .line 481
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SSType.DATETIME2:Lcom/microsoft/sqlserver/jdbc/SSType;
            invokevirtual com.microsoft.sqlserver.jdbc.SSType.getJDBCType:()Lcom/microsoft/sqlserver/jdbc/JDBCType;
            invokevirtual com.microsoft.sqlserver.jdbc.JDBCType.asJavaSqlType:()I
            istore 2 /* parameterType */
        10: .line 482
            goto 15
        11: .line 485
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SSType.DECIMAL:Lcom/microsoft/sqlserver/jdbc/SSType;
            invokevirtual com.microsoft.sqlserver.jdbc.SSType.getJDBCType:()Lcom/microsoft/sqlserver/jdbc/JDBCType;
            invokevirtual com.microsoft.sqlserver.jdbc.JDBCType.asJavaSqlType:()I
            istore 2 /* parameterType */
        12: .line 486
            goto 15
        13: .line 488
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SSType.CHAR:Lcom/microsoft/sqlserver/jdbc/SSType;
            invokevirtual com.microsoft.sqlserver.jdbc.SSType.getJDBCType:()Lcom/microsoft/sqlserver/jdbc/JDBCType;
            invokevirtual com.microsoft.sqlserver.jdbc.JDBCType.asJavaSqlType:()I
            istore 2 /* parameterType */
        14: .line 489
            goto 15
        15: .line 494
      StackMap locals:
      StackMap stack:
            iload 2 /* parameterType */
            ireturn
        end local 2 // int parameterType
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   16     1          param  I
            3   16     2  parameterType  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public java.lang.String getParameterTypeName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 499
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 500
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 501
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 4
         3: .line 502
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.parameterTypeName:Ljava/lang/String;
            areturn
         4: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "TYPE_NAME"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    5     1  param  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public int getPrecision(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 510
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 511
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 512
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 4
         3: .line 513
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.precision:I
            ireturn
         4: .line 515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "PRECISION"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    5     1  param  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public int getScale(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 521
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 522
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 523
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 4
         3: .line 524
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.scale:I
            ireturn
         4: .line 526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "SCALE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    5     1  param  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public int isNullable(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 532
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 533
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 534
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 4
         3: .line 535
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.isNullable:I
            ireturn
         4: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "NULLABLE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    5     1  param  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  public boolean isSigned(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 552
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 553
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 555
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.procMetadata:Ljava/util/List;
            ifnonnull 5
         3: .line 556
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.queryMetaMap:Ljava/util/Map;
            iload 1 /* param */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta.isSigned:Z
         4: ireturn
         5: .line 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "DATA_TYPE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Short
            invokevirtual java.lang.Short.shortValue:()S
            invokestatic com.microsoft.sqlserver.jdbc.JDBCType.of:(I)Lcom/microsoft/sqlserver/jdbc/JDBCType;
            invokevirtual com.microsoft.sqlserver.jdbc.JDBCType.isSigned:()Z
         6: ireturn
         7: .line 560
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 2 /* e */
        start local 2 // java.sql.SQLException e
         8: .line 561
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.stmtParent:Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            aload 2 /* e */
            invokevirtual java.sql.SQLException.getMessage:()Ljava/lang/String;
            aconst_null
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
         9: .line 562
            iconst_0
            ireturn
        end local 2 // java.sql.SQLException e
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0   10     1  param  I
            8   10     2      e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           2     4       7  Class java.sql.SQLException
           5     6       7  Class java.sql.SQLException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  

  java.lang.String getTVPSchemaFromStoredProcedure(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
        start local 1 // int param
         0: .line 567
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkClosed:()V
         1: .line 568
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.checkParam:(I)V
         2: .line 569
            aload 0 /* this */
            iload 1 /* param */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData.getParameterInfo:(I)Ljava/util/Map;
            ldc "SS_TYPE_SCHEMA_NAME"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // int param
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerParameterMetaData;
            0    3     1  param  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
       Name  Flags
      param  
}
SourceFile: "SQLServerParameterMetaData.java"
NestMembers:
  com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$1  com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta
InnerClasses:
  com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$1
  QueryMeta = com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData$QueryMeta of com.microsoft.sqlserver.jdbc.SQLServerParameterMetaData
  final Category = com.microsoft.sqlserver.jdbc.SSType$Category of com.microsoft.sqlserver.jdbc.SSType