abstract class com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
  super_class: java.lang.Object
{
  protected java.nio.ByteBuffer buffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.InternalSpatialDatatype internalType;
    descriptor: Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String wkt;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String wktNoZM;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected byte[] clr;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte[] clrNoZM;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected int srid;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected byte version;
    descriptor: B
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfPoints;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfFigures;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfShapes;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfSegments;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.StringBuffer WKTsb;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.StringBuffer WKTsbNoZM;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected int currentPointIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentFigureIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentSegmentIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentShapeIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBPointIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBFigureIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBSegmentIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBShapeIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected double[] xValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected double[] yValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected double[] zValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected double[] mValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure[] figures;
    descriptor: [Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape[] shapes;
    descriptor: [Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[] segments;
    descriptor: [Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
    flags: (0x0004) ACC_PROTECTED

  protected byte[] wkb;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte endian;
    descriptor: B
    flags: (0x0004) ACC_PROTECTED

  protected int wkbType;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  private final int WKB_POINT_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 16

  private final int BYTE_ORDER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 1

  private final int INTERNAL_TYPE_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final int NUMBER_OF_SHAPES_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final int LINEAR_RING_HEADER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final int WKB_POINT_HEADER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 5

  private final int WKB_HEADER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 9

  private final int WKB_FULLGLOBE_CODE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 126

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

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

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

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

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

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

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

  protected final byte FA_INTERIOR_RING;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 0

  protected final byte FA_STROKE;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 1

  protected final byte FA_EXTERIOR_RING;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 2

  protected final byte FA_POINT;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 0

  protected final byte FA_LINE;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 1

  protected final byte FA_ARC;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 2

  protected final byte FA_COMPOSITE_CURVE;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 3

  protected int currentWktPos;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Point> pointList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Point;>;

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure> figureList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;>;

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape> shapeList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;>;

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment> segmentList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;>;

  protected byte serializationProperties;
    descriptor: B
    flags: (0x0004) ACC_PROTECTED

  private final byte SEGMENT_LINE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 0

  private final byte SEGMENT_ARC;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 1

  private final byte SEGMENT_FIRST_LINE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 2

  private final byte SEGMENT_FIRST_ARC;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 3

  private final byte hasZvaluesMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 1

  private final byte hasMvaluesMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 2

  private final byte isValidMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final byte isSinglePointMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 8

  private final byte isSingleLineSegmentMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 16

  private final byte isLargerThanHemisphereMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 32

  private java.util.List<java.lang.Integer> version_one_shape_indexes;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/Integer;>;

  private static volatile int[] $SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 26
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
         2: .line 47
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
         3: .line 48
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
         4: .line 49
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
         5: .line 50
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
         6: .line 51
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
         7: .line 52
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         8: .line 53
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
         9: .line 54
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        10: .line 59
            aload 0 /* this */
            iconst_0
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
        11: .line 60
            aload 0 /* this */
            iconst_0
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
        12: .line 61
            aload 0 /* this */
            iconst_0
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
        13: .line 65
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
        14: .line 70
            aload 0 /* this */
            bipush 16
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_POINT_SIZE:I
        15: .line 71
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.BYTE_ORDER_SIZE:I
        16: .line 72
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.INTERNAL_TYPE_SIZE:I
        17: .line 73
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.NUMBER_OF_SHAPES_SIZE:I
        18: .line 74
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.LINEAR_RING_HEADER_SIZE:I
        19: .line 75
            aload 0 /* this */
            iconst_5
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_POINT_HEADER_SIZE:I
        20: .line 76
            aload 0 /* this */
            bipush 9
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_HEADER_SIZE:I
        21: .line 77
            aload 0 /* this */
            bipush 126
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_FULLGLOBE_CODE:I
        22: .line 80
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
        23: .line 81
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
        24: .line 82
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isValid:Z
        25: .line 83
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
        26: .line 84
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
        27: .line 85
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isLargerThanHemisphere:Z
        28: .line 86
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isNull:Z
        29: .line 88
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_INTERIOR_RING:B
        30: .line 89
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_STROKE:B
        31: .line 90
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_EXTERIOR_RING:B
        32: .line 92
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_POINT:B
        33: .line 93
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_LINE:B
        34: .line 94
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_ARC:B
        35: .line 95
            aload 0 /* this */
            iconst_3
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_COMPOSITE_CURVE:B
        36: .line 98
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        37: .line 99
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
        38: .line 100
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
        39: .line 101
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
        40: .line 102
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
        41: .line 103
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
        42: .line 105
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_LINE:B
        43: .line 106
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_ARC:B
        44: .line 107
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_FIRST_LINE:B
        45: .line 108
            aload 0 /* this */
            iconst_3
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_FIRST_ARC:B
        46: .line 110
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvaluesMask:B
        47: .line 111
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvaluesMask:B
        48: .line 112
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isValidMask:B
        49: .line 113
            aload 0 /* this */
            bipush 8
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePointMask:B
        50: .line 114
            aload 0 /* this */
            bipush 16
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegmentMask:B
        51: .line 115
            aload 0 /* this */
            bipush 32
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isLargerThanHemisphereMask:B
        52: .line 117
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version_one_shape_indexes:Ljava/util/List;
        53: .line 26
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   54     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  protected void serializeToClr(boolean, com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype);
    descriptor: (ZLcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // boolean excludeZMFromCLR
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
         0: .line 128
            aload 0 /* this */
            iload 1 /* excludeZMFromCLR */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.determineClrCapacity:(Z)I
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 3 /* buf */
        start local 3 // java.nio.ByteBuffer buf
         1: .line 129
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.createSerializationProperties:()V
         2: .line 131
            aload 3 /* buf */
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         3: .line 132
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.srid:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 133
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         5: .line 134
            iload 1 /* excludeZMFromCLR */
            ifeq 13
         6: .line 135
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            istore 4 /* serializationPropertiesNoZM */
        start local 4 // byte serializationPropertiesNoZM
         7: .line 136
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 9
         8: .line 137
            iload 4 /* serializationPropertiesNoZM */
            iconst_1
            isub
            i2b
            istore 4 /* serializationPropertiesNoZM */
         9: .line 140
      StackMap locals: java.nio.ByteBuffer int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 11
        10: .line 141
            iload 4 /* serializationPropertiesNoZM */
            iconst_2
            isub
            i2b
            istore 4 /* serializationPropertiesNoZM */
        11: .line 143
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            iload 4 /* serializationPropertiesNoZM */
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        end local 4 // byte serializationPropertiesNoZM
        12: .line 144
            goto 14
        13: .line 145
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        14: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifne 16
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifne 16
        15: .line 149
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        16: .line 152
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            instanceof com.microsoft.sqlserver.jdbc.Geometry
            ifeq 24
        17: .line 153
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        18: goto 22
        19: .line 154
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        20: .line 155
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        21: .line 153
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 19
        end local 4 // int i
        23: .line 157
            goto 30
        24: .line 158
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        25: goto 29
        26: .line 159
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        27: .line 160
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        28: .line 158
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 26
        end local 4 // int i
        30: .line 164
      StackMap locals:
      StackMap stack:
            iload 1 /* excludeZMFromCLR */
            ifne 43
        31: .line 165
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 37
        32: .line 166
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        33: goto 36
        34: .line 167
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        35: .line 166
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 34
        end local 4 // int i
        37: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 43
        38: .line 172
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        39: goto 42
        40: .line 173
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        41: .line 172
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 40
        end local 4 // int i
        43: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifne 44
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifeq 49
        44: .line 179
      StackMap locals:
      StackMap stack:
            iload 1 /* excludeZMFromCLR */
            ifeq 47
        45: .line 180
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clrNoZM:[B
        46: .line 181
            goto 48
        47: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clr:[B
        48: .line 184
      StackMap locals:
      StackMap stack:
            return
        49: .line 187
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        50: .line 188
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        51: goto 55
        52: .line 189
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        53: .line 190
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        54: .line 188
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            if_icmplt 52
        end local 4 // int i
        56: .line 193
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        57: .line 194
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        58: goto 63
        59: .line 195
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        60: .line 196
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        61: .line 197
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        62: .line 194
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        63: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            if_icmplt 59
        end local 4 // int i
        64: .line 200
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_2
            if_icmpne 71
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            ifnull 71
        65: .line 201
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        66: .line 202
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        67: goto 70
        68: .line 203
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        69: .line 202
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        70: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            if_icmplt 68
        end local 4 // int i
        71: .line 207
      StackMap locals:
      StackMap stack:
            iload 1 /* excludeZMFromCLR */
            ifeq 74
        72: .line 208
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clrNoZM:[B
        73: .line 209
            goto 75
        74: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clr:[B
        75: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer buf
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
        end local 1 // boolean excludeZMFromCLR
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   76     0                         this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   76     1             excludeZMFromCLR  Z
            0   76     2                         type  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   76     3                          buf  Ljava/nio/ByteBuffer;
            7   12     4  serializationPropertiesNoZM  B
           18   23     4                            i  I
           25   30     4                            i  I
           33   37     4                            i  I
           39   43     4                            i  I
           51   56     4                            i  I
           58   64     4                            i  I
           67   71     4                            i  I
    MethodParameters:
                  Name  Flags
      excludeZMFromCLR  
      type              

  protected void serializeToWkb(com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
         0: .line 221
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.determineWkbCapacity:()I
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 2 /* buf */
        start local 2 // java.nio.ByteBuffer buf
         1: .line 238
            aload 2 /* buf */
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 239
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 1 - 11
                    1: 3
                    2: 5
                    3: 7
                    4: 9
                    5: 11
                    6: 13
                    7: 15
                    8: 17
                    9: 19
                   10: 21
                   11: 23
              default: 25
          }
         3: .line 241
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPointToBuffer:(Ljava/nio/ByteBuffer;I)V
         4: .line 242
            goto 25
         5: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
         6: .line 245
            goto 25
         7: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
         8: .line 248
            goto 25
         9: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        10: .line 251
            goto 25
        11: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        12: .line 254
            goto 25
        13: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            iconst_1
            isub
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        14: .line 257
            goto 25
        15: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumShapesInThisGeometryCollection:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addGeometryCollectionToBuffer:(Ljava/nio/ByteBuffer;I)V
        16: .line 260
            goto 25
        17: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCircularStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        18: .line 263
            goto 25
        19: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumCurvesInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCompoundCurveToBuffer:(Ljava/nio/ByteBuffer;I)V
        20: .line 266
            goto 25
        21: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCurvePolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        22: .line 269
            goto 25
        23: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addFullGlobeToBuffer:(Ljava/nio/ByteBuffer;)V
        24: .line 272
            goto 25
        25: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkb:[B
        26: .line 279
            return
        end local 2 // java.nio.ByteBuffer buf
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   27     1  type  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   27     2   buf  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      type  

  private void addPointToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfPoints
         0: .line 282
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 284
            iload 2 /* numberOfPoints */
            ifne 5
         2: .line 285
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 286
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 287
            goto 8
         5: .line 288
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         6: .line 289
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         7: .line 290
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         8: .line 292
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfPoints
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    9     1             buf  Ljava/nio/ByteBuffer;
            0    9     2  numberOfPoints  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfPoints  

  private void addLineStringToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfPoints
         0: .line 295
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 296
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 297
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 298
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         4: .line 299
            iload 2 /* numberOfPoints */
            ifle 6
         5: .line 300
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         6: .line 302
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfPoints
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1             buf  Ljava/nio/ByteBuffer;
            0    7     2  numberOfPoints  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfPoints  

  private void addPolygonToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 305
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 306
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 307
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 308
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 309
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    5     1              buf  Ljava/nio/ByteBuffer;
            0    5     2  numberOfFigures  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addMultiPointToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 312
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 313
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 314
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 315
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 316
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    5     1              buf  Ljava/nio/ByteBuffer;
            0    5     2  numberOfFigures  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addMultiLineStringToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 319
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 320
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTILINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 321
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 322
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTILINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 323
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    5     1              buf  Ljava/nio/ByteBuffer;
            0    5     2  numberOfFigures  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addMultiPolygonToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfShapes
         0: .line 326
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 327
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 328
            aload 1 /* buf */
            iload 2 /* numberOfShapes */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 330
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
         4: .line 331
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfShapes */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         5: .line 332
            return
        end local 2 // int numberOfShapes
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    6     1             buf  Ljava/nio/ByteBuffer;
            0    6     2  numberOfShapes  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfShapes  

  private void addCircularStringToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfPoints
         0: .line 335
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 336
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 337
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 338
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         4: .line 339
            iload 2 /* numberOfPoints */
            ifle 6
         5: .line 340
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         6: .line 342
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfPoints
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1             buf  Ljava/nio/ByteBuffer;
            0    7     2  numberOfPoints  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfPoints  

  private void addCompoundCurveToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfCurves
         0: .line 345
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 346
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 347
            aload 1 /* buf */
            iload 2 /* numberOfCurves */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 348
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfCurves */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 349
            iload 2 /* numberOfCurves */
            ifle 6
         5: .line 350
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         6: .line 352
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfCurves
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1             buf  Ljava/nio/ByteBuffer;
            0    7     2  numberOfCurves  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfCurves  

  private void addCurvePolygonToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 355
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 356
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CURVEPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 357
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 358
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 18
         5: .line 359
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            tableswitch { // 1 - 3
                    1: 6
                    2: 8
                    3: 10
              default: 17
          }
         6: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iconst_1
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         7: .line 362
            goto 17
         8: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iconst_1
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         9: .line 365
            goto 17
        10: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumCurvesInThisFigure:()I
            istore 4 /* numCurvesInThisFigure */
        start local 4 // int numCurvesInThisFigure
        11: .line 368
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        12: .line 369
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        13: .line 370
            aload 1 /* buf */
            iload 4 /* numCurvesInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        14: .line 371
            aload 0 /* this */
            aload 1 /* buf */
            iload 4 /* numCurvesInThisFigure */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
        15: .line 372
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        16: .line 373
            goto 17
        end local 4 // int numCurvesInThisFigure
        17: .line 358
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            iload 2 /* numberOfFigures */
            if_icmplt 5
        end local 3 // int i
        19: .line 379
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   20     0                   this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   20     1                    buf  Ljava/nio/ByteBuffer;
            0   20     2        numberOfFigures  I
            4   19     3                      i  I
           11   17     4  numCurvesInThisFigure  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addGeometryCollectionToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfRemainingGeometries
         0: .line 382
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 383
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 384
            aload 1 /* buf */
            iload 2 /* numberOfRemainingGeometries */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 386
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
         4: .line 387
            goto 65
         5: .line 388
      StackMap locals:
      StackMap stack:
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(B)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 1 - 10
                    1: 6
                    2: 12
                    3: 18
                    4: 24
                    5: 30
                    6: 36
                    7: 41
                    8: 46
                    9: 52
                   10: 58
              default: 64
          }
         6: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 9
         7: .line 391
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPointToBuffer:(Ljava/nio/ByteBuffer;I)V
         8: .line 392
            goto 10
         9: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        10: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        11: .line 396
            goto 64
        12: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 15
        13: .line 399
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        14: .line 400
            goto 16
        15: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        16: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        17: .line 404
            goto 64
        18: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 21
        19: .line 407
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        20: .line 408
            goto 22
        21: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        22: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        23: .line 412
            goto 64
        24: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 27
        25: .line 415
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        26: .line 416
            goto 28
        27: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        28: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        29: .line 420
            goto 64
        30: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 33
        31: .line 423
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        32: .line 424
            goto 34
        33: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        34: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        35: .line 428
            goto 64
        36: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 39
        37: .line 435
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        38: .line 436
            goto 64
        39: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumShapesInThisMultiPolygon:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        40: .line 439
            goto 64
        41: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 44
        42: .line 442
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addGeometryCollectionToBuffer:(Ljava/nio/ByteBuffer;I)V
        43: .line 443
            goto 64
        44: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumShapesInThisGeometryCollection:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addGeometryCollectionToBuffer:(Ljava/nio/ByteBuffer;I)V
        45: .line 446
            goto 64
        46: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 49
        47: .line 449
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCircularStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        48: .line 450
            goto 50
        49: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCircularStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        50: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        51: .line 454
            goto 64
        52: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 55
        53: .line 457
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCompoundCurveToBuffer:(Ljava/nio/ByteBuffer;I)V
        54: .line 458
            goto 56
        55: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumCurvesInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCompoundCurveToBuffer:(Ljava/nio/ByteBuffer;I)V
        56: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        57: .line 462
            goto 64
        58: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 61
        59: .line 465
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCurvePolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        60: .line 466
            goto 62
        61: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCurvePolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        62: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        63: .line 470
            goto 64
        64: .line 475
      StackMap locals:
      StackMap stack:
            iinc 2 /* numberOfRemainingGeometries */ -1
        65: .line 387
      StackMap locals:
      StackMap stack:
            iload 2 /* numberOfRemainingGeometries */
            ifgt 5
        66: .line 477
            return
        end local 2 // int numberOfRemainingGeometries
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   67     0                         this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   67     1                          buf  Ljava/nio/ByteBuffer;
            0   67     2  numberOfRemainingGeometries  I
    MethodParameters:
                             Name  Flags
      buf                          
      numberOfRemainingGeometries  

  private void addFullGlobeToBuffer(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
         0: .line 480
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 481
            aload 1 /* buf */
            bipush 126
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 482
            return
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1   buf  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      buf   

  private void addCoordinateToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numPoint
         0: .line 485
            goto 5
         1: .line 486
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
         2: .line 487
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
         3: .line 488
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
         4: .line 489
            iinc 2 /* numPoint */ -1
         5: .line 485
      StackMap locals:
      StackMap stack:
            iload 2 /* numPoint */
            ifgt 1
         6: .line 491
            return
        end local 2 // int numPoint
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1       buf  Ljava/nio/ByteBuffer;
            0    7     2  numPoint  I
    MethodParameters:
          Name  Flags
      buf       
      numPoint  

  private void addStructureToBuffer(java.nio.ByteBuffer, int, com.microsoft.sqlserver.jdbc.InternalSpatialDatatype);
    descriptor: (Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int remainingStructureCount
        start local 3 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype internalParentType
         0: .line 495
            iload 2 /* remainingStructureCount */
            istore 4 /* originalRemainingStructureCount */
        start local 4 // int originalRemainingStructureCount
         1: .line 496
            goto 73
         2: .line 497
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            istore 5 /* numPointsInThisFigure */
        start local 5 // int numPointsInThisFigure
         3: .line 498
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 3 /* internalParentType */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 2 - 9
                    2: 4
                    3: 10
                    4: 14
                    5: 20
                    6: 27
                    7: 72
                    8: 34
                    9: 40
              default: 72
          }
         4: .line 500
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         5: .line 501
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         6: .line 502
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         7: .line 503
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         8: .line 504
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         9: .line 505
            goto 72
        10: .line 507
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        11: .line 508
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        12: .line 509
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        13: .line 510
            goto 72
        14: .line 512
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        15: .line 513
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        16: .line 514
            aload 0 /* this */
            aload 1 /* buf */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        17: .line 515
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        18: .line 516
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        19: .line 517
            goto 72
        20: .line 519
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        21: .line 520
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        22: .line 521
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        23: .line 522
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        24: .line 523
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        25: .line 524
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        26: .line 525
            goto 72
        27: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            istore 6 /* numFiguresInThisShape */
        start local 6 // int numFiguresInThisShape
        28: .line 528
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        29: .line 529
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        30: .line 530
            aload 1 /* buf */
            iload 6 /* numFiguresInThisShape */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        31: .line 531
            aload 0 /* this */
            aload 1 /* buf */
            iload 6 /* numFiguresInThisShape */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
        32: .line 532
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        33: .line 533
            goto 72
        end local 6 // int numFiguresInThisShape
        34: .line 535
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        35: .line 536
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        36: .line 537
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        37: .line 538
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        38: .line 539
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        39: .line 540
            goto 72
        40: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpne 56
        41: .line 553
            iconst_3
            istore 7 /* numberOfPointsInStructure */
        start local 7 // int numberOfPointsInStructure
        42: .line 554
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        43: .line 555
            goto 46
        44: .line 558
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int top int
      StackMap stack:
            iinc 7 /* numberOfPointsInStructure */ 2
        45: .line 559
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        46: .line 555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            if_icmpge 49
        47: .line 556
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpeq 49
        48: .line 557
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 44
        49: .line 561
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        50: .line 562
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        51: .line 563
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        52: .line 564
            iload 4 /* originalRemainingStructureCount */
            iload 2 /* remainingStructureCount */
            if_icmpeq 54
        53: .line 565
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
        54: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        end local 7 // int numberOfPointsInStructure
        55: .line 568
            goto 72
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int
      StackMap stack:
        56: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 72
        57: .line 569
            iconst_2
            istore 7 /* numberOfPointsInStructure */
        start local 7 // int numberOfPointsInStructure
        58: .line 570
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        59: .line 571
            goto 62
        60: .line 574
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int top int
      StackMap stack:
            iinc 7 /* numberOfPointsInStructure */ 1
        61: .line 575
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        62: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            if_icmpge 65
        63: .line 572
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpeq 65
        64: .line 573
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 60
        65: .line 577
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        66: .line 578
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        67: .line 579
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        68: .line 580
            iload 4 /* originalRemainingStructureCount */
            iload 2 /* remainingStructureCount */
            if_icmpeq 70
        69: .line 581
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
        70: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        end local 7 // int numberOfPointsInStructure
        71: .line 588
            goto 72
        72: .line 593
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int
      StackMap stack:
            iinc 2 /* remainingStructureCount */ -1
        end local 5 // int numPointsInThisFigure
        73: .line 496
      StackMap locals:
      StackMap stack:
            iload 2 /* remainingStructureCount */
            ifgt 2
        74: .line 595
            return
        end local 4 // int originalRemainingStructureCount
        end local 3 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype internalParentType
        end local 2 // int remainingStructureCount
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                             Name  Signature
            0   75     0                             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   75     1                              buf  Ljava/nio/ByteBuffer;
            0   75     2          remainingStructureCount  I
            0   75     3               internalParentType  Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            1   75     4  originalRemainingStructureCount  I
            3   73     5            numPointsInThisFigure  I
           28   34     6            numFiguresInThisShape  I
           42   55     7        numberOfPointsInStructure  I
           58   71     7        numberOfPointsInStructure  I
    MethodParameters:
                         Name  Flags
      buf                      
      remainingStructureCount  
      internalParentType       

  private int calculateNumPointsInThisFigure();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 598
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            ifne 2
         1: .line 599
            iconst_0
            ireturn
         2: .line 614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 7
         3: .line 615
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
         4: .line 616
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
         5: .line 615
            isub
         6: .line 616
            goto 10
         7: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
         8: .line 618
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
         9: .line 617
            isub
        10: .line 614
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  private int calculateNumCurvesInThisFigure();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 622
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            istore 1 /* numPointsInThisFigure */
        start local 1 // int numPointsInThisFigure
         1: .line 623
            iconst_0
            istore 2 /* numCurvesInThisFigure */
        start local 2 // int numCurvesInThisFigure
         2: .line 624
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            istore 3 /* tempCurrentWKBSegmentIndex */
        start local 3 // int tempCurrentWKBSegmentIndex
         3: .line 625
            iconst_1
            istore 4 /* isFirstSegment */
        start local 4 // boolean isFirstSegment
         4: .line 626
            goto 24
         5: .line 627
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 3 /* tempCurrentWKBSegmentIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            tableswitch { // 0 - 3
                    0: 6
                    1: 8
                    2: 10
                    3: 16
              default: 22
          }
         6: .line 629
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -1
         7: .line 630
            goto 22
         8: .line 632
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -2
         9: .line 633
            goto 22
        10: .line 635
      StackMap locals:
      StackMap stack:
            iload 4 /* isFirstSegment */
            ifeq 13
        11: .line 636
            iinc 1 /* numPointsInThisFigure */ -2
        12: .line 637
            goto 14
        13: .line 638
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -1
        14: .line 640
      StackMap locals:
      StackMap stack:
            iinc 2 /* numCurvesInThisFigure */ 1
        15: .line 641
            goto 22
        16: .line 643
      StackMap locals:
      StackMap stack:
            iload 4 /* isFirstSegment */
            ifeq 19
        17: .line 644
            iinc 1 /* numPointsInThisFigure */ -3
        18: .line 645
            goto 20
        19: .line 646
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -2
        20: .line 648
      StackMap locals:
      StackMap stack:
            iinc 2 /* numCurvesInThisFigure */ 1
        21: .line 649
            goto 22
        22: .line 654
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* isFirstSegment */
        23: .line 655
            iinc 3 /* tempCurrentWKBSegmentIndex */ 1
        24: .line 626
      StackMap locals:
      StackMap stack:
            iload 1 /* numPointsInThisFigure */
            ifgt 5
        25: .line 657
            iload 2 /* numCurvesInThisFigure */
            ireturn
        end local 4 // boolean isFirstSegment
        end local 3 // int tempCurrentWKBSegmentIndex
        end local 2 // int numCurvesInThisFigure
        end local 1 // int numPointsInThisFigure
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   26     0                        this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   26     1       numPointsInThisFigure  I
            2   26     2       numCurvesInThisFigure  I
            3   26     3  tempCurrentWKBSegmentIndex  I
            4   26     4              isFirstSegment  Z

  private int calculateNumFiguresInThisShape(boolean);
    descriptor: (Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // boolean containsInnerStructures
         0: .line 661
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            ifne 2
         1: .line 662
            iconst_0
            ireturn
         2: .line 665
      StackMap locals:
      StackMap stack:
            iload 1 /* containsInnerStructures */
            ifeq 19
         3: .line 666
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            istore 2 /* nextNonInnerShapeIndex */
        start local 2 // int nextNonInnerShapeIndex
         4: .line 667
            goto 6
         5: .line 669
      StackMap locals: int
      StackMap stack:
            iinc 2 /* nextNonInnerShapeIndex */ 1
         6: .line 667
      StackMap locals:
      StackMap stack:
            iload 2 /* nextNonInnerShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmpge 8
         7: .line 668
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 2 /* nextNonInnerShapeIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            if_icmpeq 5
         8: .line 672
      StackMap locals:
      StackMap stack:
            iload 2 /* nextNonInnerShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmpne 10
         9: .line 673
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            ireturn
        10: .line 675
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 3 /* figureIndexEnd */
        start local 3 // int figureIndexEnd
        11: .line 676
            iload 2 /* nextNonInnerShapeIndex */
            istore 4 /* localCurrentShapeIndex */
        start local 4 // int localCurrentShapeIndex
        12: .line 677
            goto 15
        13: .line 678
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* localCurrentShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 3 /* figureIndexEnd */