public class java.math.BigDecimal extends java.lang.Number implements java.lang.Comparable<java.math.BigDecimal>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.math.BigDecimal
  super_class: java.lang.Number
{
  private final java.math.BigInteger intVal;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int scale;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private transient int precision;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String stringCache;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  static final long INFLATED;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -9223372036854775808

  private static final java.math.BigInteger INFLATED_BIGINT;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final transient long intCompact;
    descriptor: J
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

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

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

  private static final java.lang.ThreadLocal<java.math.BigDecimal$StringBuilderHelper> threadLocalStringBuilderHelper;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/math/BigDecimal$StringBuilderHelper;>;

  private static final java.math.BigDecimal[] ZERO_THROUGH_TEN;
    descriptor: [Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal[] ZERO_SCALED_BY;
    descriptor: [Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static final long HALF_LONG_MIN_VALUE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -4611686018427387904

  public static final java.math.BigDecimal ZERO;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigDecimal ONE;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigDecimal TEN;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal ONE_TENTH;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal ONE_HALF;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int ROUND_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_CEILING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_FLOOR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_HALF_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_HALF_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_HALF_EVEN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  public static final int ROUND_UNNECESSARY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")

  private static final double[] DOUBLE_10_POW;
    descriptor: [D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final float[] FLOAT_10_POW;
    descriptor: [F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long[] LONG_TEN_POWERS_TABLE;
    descriptor: [J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile java.math.BigInteger[] BIG_TEN_POWERS_TABLE;
    descriptor: [Ljava/math/BigInteger;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

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

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

  private static final long[] THRESHOLDS_TABLE;
    descriptor: [J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static final long[][] LONGLONG_TEN_POWERS_TABLE;
    descriptor: [[J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static volatile int[] $SWITCH_TABLE$java$math$RoundingMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=0, args_size=0
         0: .line 228
            ldc Ljava/math/BigDecimal;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.math.BigDecimal.$assertionsDisabled:Z
         3: .line 269
            ldc -9223372036854775808
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            putstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
         4: .line 286
            new java.math.BigDecimal$1
            dup
            invokespecial java.math.BigDecimal$1.<init>:()V
            putstatic java.math.BigDecimal.threadLocalStringBuilderHelper:Ljava/lang/ThreadLocal;
         5: .line 294
            bipush 11
            anewarray java.math.BigDecimal
            dup
            iconst_0
         6: .line 295
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_1
         7: .line 296
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            lconst_1
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_2
         8: .line 297
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            ldc 2
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_3
         9: .line 298
            new java.math.BigDecimal
            dup
            ldc 3
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 3
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_4
        10: .line 299
            new java.math.BigDecimal
            dup
            ldc 4
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 4
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_5
        11: .line 300
            new java.math.BigDecimal
            dup
            ldc 5
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 5
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 6
        12: .line 301
            new java.math.BigDecimal
            dup
            ldc 6
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 6
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 7
        13: .line 302
            new java.math.BigDecimal
            dup
            ldc 7
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 7
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 8
        14: .line 303
            new java.math.BigDecimal
            dup
            ldc 8
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 8
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 9
        15: .line 304
            new java.math.BigDecimal
            dup
            ldc 9
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 9
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 10
        16: .line 305
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            ldc 10
            iconst_0
            iconst_2
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
        17: .line 294
            putstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
        18: .line 309
            bipush 16
            anewarray java.math.BigDecimal
            dup
            iconst_0
        19: .line 310
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            iconst_0
            aaload
            aastore
            dup
            iconst_1
        20: .line 311
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_1
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_2
        21: .line 312
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_2
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_3
        22: .line 313
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_3
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_4
        23: .line 314
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_4
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_5
        24: .line 315
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_5
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 6
        25: .line 316
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 6
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 7
        26: .line 317
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 7
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 8
        27: .line 318
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 8
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 9
        28: .line 319
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 9
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 10
        29: .line 320
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 10
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 11
        30: .line 321
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 11
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 12
        31: .line 322
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 12
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 13
        32: .line 323
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 13
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 14
        33: .line 324
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 14
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 15
        34: .line 325
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 15
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
        35: .line 309
            putstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
        36: .line 339
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            iconst_0
            aaload
        37: .line 338
            putstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
        38: .line 347
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            iconst_1
            aaload
        39: .line 346
            putstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
        40: .line 355
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            bipush 10
            aaload
        41: .line 354
            putstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
        42: .line 360
            lconst_1
            iconst_1
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            putstatic java.math.BigDecimal.ONE_TENTH:Ljava/math/BigDecimal;
        43: .line 365
            ldc 5
            iconst_1
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            putstatic java.math.BigDecimal.ONE_HALF:Ljava/math/BigDecimal;
        44: .line 3670
            bipush 23
            newarray 7
            dup
            iconst_0
        45: .line 3671
            dconst_1
            dastore
            dup
            iconst_1
            ldc 10.0
            dastore
            dup
            iconst_2
            ldc 100.0
            dastore
            dup
            iconst_3
            ldc 1000.0
            dastore
            dup
            iconst_4
            ldc 10000.0
            dastore
            dup
            iconst_5
            ldc 100000.0
            dastore
            dup
            bipush 6
        46: .line 3672
            ldc 1000000.0
            dastore
            dup
            bipush 7
            ldc 1.0E7
            dastore
            dup
            bipush 8
            ldc 1.0E8
            dastore
            dup
            bipush 9
            ldc 1.0E9
            dastore
            dup
            bipush 10
            ldc 1.0E10
            dastore
            dup
            bipush 11
            ldc 1.0E11
            dastore
            dup
            bipush 12
        47: .line 3673
            ldc 1.0E12
            dastore
            dup
            bipush 13
            ldc 1.0E13
            dastore
            dup
            bipush 14
            ldc 1.0E14
            dastore
            dup
            bipush 15
            ldc 1.0E15
            dastore
            dup
            bipush 16
            ldc 1.0E16
            dastore
            dup
            bipush 17
            ldc 1.0E17
            dastore
            dup
            bipush 18
        48: .line 3674
            ldc 1.0E18
            dastore
            dup
            bipush 19
            ldc 1.0E19
            dastore
            dup
            bipush 20
            ldc 1.0E20
            dastore
            dup
            bipush 21
            ldc 1.0E21
            dastore
            dup
            bipush 22
            ldc 1.0E22
            dastore
        49: .line 3670
            putstatic java.math.BigDecimal.DOUBLE_10_POW:[D
        50: .line 3681
            bipush 11
            newarray 6
            dup
            iconst_0
        51: .line 3682
            fconst_1
            fastore
            dup
            iconst_1
            ldc 10.0
            fastore
            dup
            iconst_2
            ldc 100.0
            fastore
            dup
            iconst_3
            ldc 1000.0
            fastore
            dup
            iconst_4
            ldc 10000.0
            fastore
            dup
            iconst_5
            ldc 100000.0
            fastore
            dup
            bipush 6
        52: .line 3683
            ldc 1000000.0
            fastore
            dup
            bipush 7
            ldc 1.0E7
            fastore
            dup
            bipush 8
            ldc 1.0E8
            fastore
            dup
            bipush 9
            ldc 1.0E9
            fastore
            dup
            bipush 10
            ldc 1.0E10
            fastore
        53: .line 3681
            putstatic java.math.BigDecimal.FLOAT_10_POW:[F
        54: .line 3967
            bipush 19
            newarray 11
            dup
            iconst_0
        55: .line 3968
            lconst_1
            lastore
            dup
            iconst_1
        56: .line 3969
            ldc 10
            lastore
            dup
            iconst_2
        57: .line 3970
            ldc 100
            lastore
            dup
            iconst_3
        58: .line 3971
            ldc 1000
            lastore
            dup
            iconst_4
        59: .line 3972
            ldc 10000
            lastore
            dup
            iconst_5
        60: .line 3973
            ldc 100000
            lastore
            dup
            bipush 6
        61: .line 3974
            ldc 1000000
            lastore
            dup
            bipush 7
        62: .line 3975
            ldc 10000000
            lastore
            dup
            bipush 8
        63: .line 3976
            ldc 100000000
            lastore
            dup
            bipush 9
        64: .line 3977
            ldc 1000000000
            lastore
            dup
            bipush 10
        65: .line 3978
            ldc 10000000000
            lastore
            dup
            bipush 11
        66: .line 3979
            ldc 100000000000
            lastore
            dup
            bipush 12
        67: .line 3980
            ldc 1000000000000
            lastore
            dup
            bipush 13
        68: .line 3981
            ldc 10000000000000
            lastore
            dup
            bipush 14
        69: .line 3982
            ldc 100000000000000
            lastore
            dup
            bipush 15
        70: .line 3983
            ldc 1000000000000000
            lastore
            dup
            bipush 16
        71: .line 3984
            ldc 10000000000000000
            lastore
            dup
            bipush 17
        72: .line 3985
            ldc 100000000000000000
            lastore
            dup
            bipush 18
        73: .line 3986
            ldc 1000000000000000000
            lastore
        74: .line 3967
            putstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
        75: .line 3989
            bipush 19
            anewarray java.math.BigInteger
            dup
            iconst_0
        76: .line 3990
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            aastore
            dup
            iconst_1
        77: .line 3991
            ldc 10
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_2
        78: .line 3992
            ldc 100
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_3
        79: .line 3993
            ldc 1000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_4
        80: .line 3994
            ldc 10000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_5
        81: .line 3995
            ldc 100000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 6
        82: .line 3996
            ldc 1000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 7
        83: .line 3997
            ldc 10000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 8
        84: .line 3998
            ldc 100000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 9
        85: .line 3999
            ldc 1000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 10
        86: .line 4000
            ldc 10000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 11
        87: .line 4001
            ldc 100000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 12
        88: .line 4002
            ldc 1000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 13
        89: .line 4003
            ldc 10000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 14
        90: .line 4004
            ldc 100000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 15
        91: .line 4005
            ldc 1000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 16
        92: .line 4006
            ldc 10000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 17
        93: .line 4007
            ldc 100000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 18
        94: .line 4008
            ldc 1000000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
        95: .line 3989
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
        96: .line 4012
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            arraylength
        97: .line 4011
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
        98: .line 4014
            bipush 16
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
            imul
        99: .line 4013
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_MAX:I
       100: .line 4016
            bipush 19
            newarray 11
            dup
            iconst_0
       101: .line 4017
            ldc 9223372036854775807
            lastore
            dup
            iconst_1
       102: .line 4018
            ldc 922337203685477580
            lastore
            dup
            iconst_2
       103: .line 4019
            ldc 92233720368547758
            lastore
            dup
            iconst_3
       104: .line 4020
            ldc 9223372036854775
            lastore
            dup
            iconst_4
       105: .line 4021
            ldc 922337203685477
            lastore
            dup
            iconst_5
       106: .line 4022
            ldc 92233720368547
            lastore
            dup
            bipush 6
       107: .line 4023
            ldc 9223372036854
            lastore
            dup
            bipush 7
       108: .line 4024
            ldc 922337203685
            lastore
            dup
            bipush 8
       109: .line 4025
            ldc 92233720368
            lastore
            dup
            bipush 9
       110: .line 4026
            ldc 9223372036
            lastore
            dup
            bipush 10
       111: .line 4027
            ldc 922337203
            lastore
            dup
            bipush 11
       112: .line 4028
            ldc 92233720
            lastore
            dup
            bipush 12
       113: .line 4029
            ldc 9223372
            lastore
            dup
            bipush 13
       114: .line 4030
            ldc 922337
            lastore
            dup
            bipush 14
       115: .line 4031
            ldc 92233
            lastore
            dup
            bipush 15
       116: .line 4032
            ldc 9223
            lastore
            dup
            bipush 16
       117: .line 4033
            ldc 922
            lastore
            dup
            bipush 17
       118: .line 4034
            ldc 92
            lastore
            dup
            bipush 18
       119: .line 4035
            ldc 9
            lastore
       120: .line 4016
            putstatic java.math.BigDecimal.THRESHOLDS_TABLE:[J
       121: .line 5506
            bipush 20
            anewarray long[]
            dup
            iconst_0
       122: .line 5507
            iconst_2
            newarray 11
            dup
            iconst_1
            ldc -8446744073709551616
            lastore
            aastore
            dup
            iconst_1
       123: .line 5508
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5
            lastore
            dup
            iconst_1
            ldc 7766279631452241920
            lastore
            aastore
            dup
            iconst_2
       124: .line 5509
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54
            lastore
            dup
            iconst_1
            ldc 3875820019684212736
            lastore
            aastore
            dup
            iconst_3
       125: .line 5510
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542
            lastore
            dup
            iconst_1
            ldc 1864712049423024128
            lastore
            aastore
            dup
            iconst_4
       126: .line 5511
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421
            lastore
            dup
            iconst_1
            ldc 200376420520689664
            lastore
            aastore
            dup
            iconst_5
       127: .line 5512
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210
            lastore
            dup
            iconst_1
            ldc 2003764205206896640
            lastore
            aastore
            dup
            bipush 6
       128: .line 5513
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101
            lastore
            dup
            iconst_1
            ldc 1590897978359414784
            lastore
            aastore
            dup
            bipush 7
       129: .line 5514
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010
            lastore
            dup
            iconst_1
            ldc -2537764290115403776
            lastore
            aastore
            dup
            bipush 8
       130: .line 5515
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108
            lastore
            dup
            iconst_1
            ldc -6930898827444486144
            lastore
            aastore
            dup
            bipush 9
       131: .line 5516
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086
            lastore
            dup
            iconst_1
            ldc 4477988020393345024
            lastore
            aastore
            dup
            bipush 10
       132: .line 5517
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862
            lastore
            dup
            iconst_1
            ldc 7886392056514347008
            lastore
            aastore
            dup
            bipush 11
       133: .line 5518
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624
            lastore
            dup
            iconst_1
            ldc 5076944270305263616
            lastore
            aastore
            dup
            bipush 12
       134: .line 5519
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242
            lastore
            dup
            iconst_1
            ldc -4570789518076018688
            lastore
            aastore
            dup
            bipush 13
       135: .line 5520
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427
            lastore
            dup
            iconst_1
            ldc -8814407033341083648
            lastore
            aastore
            dup
            bipush 14
       136: .line 5521
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624275
            lastore
            dup
            iconst_1
            ldc 4089650035136921600
            lastore
            aastore
            dup
            bipush 15
       137: .line 5522
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242752
            lastore
            dup
            iconst_1
            ldc 4003012203950112768
            lastore
            aastore
            dup
            bipush 16
       138: .line 5523
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427522
            lastore
            dup
            iconst_1
            ldc 3136633892082024448
            lastore
            aastore
            dup
            bipush 17
       139: .line 5524
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624275221
            lastore
            dup
            iconst_1
            ldc -5527149226598858752
            lastore
            aastore
            dup
            bipush 18
       140: .line 5525
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242752217
            lastore
            dup
            iconst_1
            ldc 68739955140067328
            lastore
            aastore
            dup
            bipush 19
       141: .line 5526
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427522170
            lastore
            dup
            iconst_1
            ldc 687399551400673280
            lastore
            aastore
       142: .line 5506
            putstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
       143: .line 5527
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.math.BigInteger, long, int, int);
    descriptor: (Ljava/math/BigInteger;JII)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger intVal
        start local 2 // long val
        start local 4 // int scale
        start local 5 // int prec
         0: .line 374
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 375
            aload 0 /* this */
            iload 4 /* scale */
            putfield java.math.BigDecimal.scale:I
         2: .line 376
            aload 0 /* this */
            iload 5 /* prec */
            putfield java.math.BigDecimal.precision:I
         3: .line 377
            aload 0 /* this */
            lload 2 /* val */
            putfield java.math.BigDecimal.intCompact:J
         4: .line 378
            aload 0 /* this */
            aload 1 /* intVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         5: .line 379
            return
        end local 5 // int prec
        end local 4 // int scale
        end local 2 // long val
        end local 1 // java.math.BigInteger intVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/math/BigDecimal;
            0    6     1  intVal  Ljava/math/BigInteger;
            0    6     2     val  J
            0    6     4   scale  I
            0    6     5    prec  I
    MethodParameters:
        Name  Flags
      intVal  
      val     
      scale   
      prec    

  public void <init>(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // int offset
        start local 3 // int len
         0: .line 401
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 402
            return
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/math/BigDecimal;
            0    2     1      in  [C
            0    2     2  offset  I
            0    2     3     len  I
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     

  public void <init>(char[], int, int, java.math.MathContext);
    descriptor: ([CIILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=20, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // int offset
        start local 3 // int len
        start local 4 // java.math.MathContext mc
         0: .line 427
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 430
            iload 2 /* offset */
            iload 3 /* len */
            aload 1 /* in */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         2: .line 431
            goto 7
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext
      StackMap stack: java.lang.IndexOutOfBoundsException
         3: pop
         4: .line 432
            new java.lang.NumberFormatException
            dup
         5: .line 433
            ldc "Bad offset or len arguments for char[] input."
         6: .line 432
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 442
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* prec */
        start local 5 // int prec
         8: .line 443
            iconst_0
            istore 6 /* scl */
        start local 6 // int scl
         9: .line 444
            lconst_0
            lstore 7 /* rs */
        start local 7 // long rs
        10: .line 445
            aconst_null
            astore 9 /* rb */
        start local 9 // java.math.BigInteger rb
        11: .line 450
            iconst_0
            istore 10 /* isneg */
        start local 10 // boolean isneg
        12: .line 451
            aload 1 /* in */
            iload 2 /* offset */
            caload
            bipush 45
            if_icmpne 17
        13: .line 452
            iconst_1
            istore 10 /* isneg */
        14: .line 453
            iinc 2 /* offset */ 1
        15: .line 454
            iinc 3 /* len */ -1
        16: .line 455
            goto 20
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int
      StackMap stack:
        17: aload 1 /* in */
            iload 2 /* offset */
            caload
            bipush 43
            if_icmpne 20
        18: .line 456
            iinc 2 /* offset */ 1
        19: .line 457
            iinc 3 /* len */ -1
        20: .line 461
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* dot */
        start local 11 // boolean dot
        21: .line 462
            lconst_0
            lstore 12 /* exp */
        start local 12 // long exp
        22: .line 464
            iload 3 /* len */
            bipush 18
            if_icmpgt 23
            iconst_1
            goto 24
      StackMap locals: int long
      StackMap stack:
        23: iconst_0
      StackMap locals:
      StackMap stack: int
        24: istore 15 /* isCompact */
        start local 15 // boolean isCompact
        25: .line 467
            iconst_0
            istore 16 /* idx */
        start local 16 // int idx
        26: .line 468
            iload 15 /* isCompact */
            ifeq 93
        27: .line 471
            goto 75
        28: .line 472
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            caload
            istore 14 /* c */
        start local 14 // char c
        29: .line 473
            iload 14 /* c */
            bipush 48
            if_icmpne 38
        30: .line 474
            iload 5 /* prec */
            ifne 32
        31: .line 475
            iconst_1
            istore 5 /* prec */
            goto 35
        32: .line 476
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int
      StackMap stack:
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 35
        33: .line 477
            lload 7 /* rs */
            ldc 10
            lmul
            lstore 7 /* rs */
        34: .line 478
            iinc 5 /* prec */ 1
        35: .line 480
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 74
        36: .line 481
            iinc 6 /* scl */ 1
        37: .line 482
            goto 74
      StackMap locals:
      StackMap stack:
        38: iload 14 /* c */
            bipush 49
            if_icmplt 46
            iload 14 /* c */
            bipush 57
            if_icmpgt 46
        39: .line 483
            iload 14 /* c */
            bipush 48
            isub
            istore 17 /* digit */
        start local 17 // int digit
        40: .line 484
            iload 5 /* prec */
            iconst_1
            if_icmpne 41
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 42
        41: .line 485
      StackMap locals: int
      StackMap stack:
            iinc 5 /* prec */ 1
        42: .line 486
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc 10
            lmul
            iload 17 /* digit */
            i2l
            ladd
            lstore 7 /* rs */
        43: .line 487
            iload 11 /* dot */
            ifeq 74
        44: .line 488
            iinc 6 /* scl */ 1
        end local 17 // int digit
        45: .line 489
            goto 74
      StackMap locals:
      StackMap stack:
        46: iload 14 /* c */
            bipush 46
            if_icmpne 51
        47: .line 491
            iload 11 /* dot */
            ifeq 49
        48: .line 492
            new java.lang.NumberFormatException
            dup
            ldc "Character array contains more than one decimal point."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 494
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* dot */
        50: .line 495
            goto 74
      StackMap locals:
      StackMap stack:
        51: iload 14 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifeq 66
        52: .line 496
            iload 14 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 17 /* digit */
        start local 17 // int digit
        53: .line 497
            iload 17 /* digit */
            ifne 60
        54: .line 498
            iload 5 /* prec */
            ifne 56
        55: .line 499
            iconst_1
            istore 5 /* prec */
            goto 63
        56: .line 500
      StackMap locals: int
      StackMap stack:
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 63
        57: .line 501
            lload 7 /* rs */
            ldc 10
            lmul
            lstore 7 /* rs */
        58: .line 502
            iinc 5 /* prec */ 1
        59: .line 504
            goto 63
        60: .line 505
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            iconst_1
            if_icmpne 61
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 62
        61: .line 506
      StackMap locals:
      StackMap stack:
            iinc 5 /* prec */ 1
        62: .line 507
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc 10
            lmul
            iload 17 /* digit */
            i2l
            ladd
            lstore 7 /* rs */
        63: .line 509
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 74
        64: .line 510
            iinc 6 /* scl */ 1
        end local 17 // int digit
        65: .line 511
            goto 74
      StackMap locals:
      StackMap stack:
        66: iload 14 /* c */
            bipush 101
            if_icmpeq 67
            iload 14 /* c */
            bipush 69
            if_icmpne 70
        67: .line 512
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            invokestatic java.math.BigDecimal.parseExp:([CII)J
            lstore 12 /* exp */
        68: .line 514
            lload 12 /* exp */
            l2i
            i2l
            lload 12 /* exp */
            lcmp
            ifeq 76
        69: .line 515
            new java.lang.NumberFormatException
            dup
            ldc "Exponent overflow."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        70: .line 518
      StackMap locals:
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Character "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 14 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        71: .line 519
            ldc " is neither a decimal digit number, decimal point, nor"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        72: .line 520
            ldc " \"e\" notation exponential mark."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 518
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        74: .line 471
      StackMap locals:
      StackMap stack:
            iinc 2 /* offset */ 1
            iinc 3 /* len */ -1
        end local 14 // char c
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
      StackMap stack:
        75: iload 3 /* len */
            ifgt 28
        76: .line 523
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 78
        77: .line 524
            new java.lang.NumberFormatException
            dup
            ldc "No digits found."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 526
      StackMap locals:
      StackMap stack:
            lload 12 /* exp */
            lconst_0
            lcmp
            ifeq 80
        79: .line 527
            aload 0 /* this */
            iload 6 /* scl */
            lload 12 /* exp */
            invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
            istore 6 /* scl */
        80: .line 529
      StackMap locals:
      StackMap stack:
            iload 10 /* isneg */
            ifeq 81
            lload 7 /* rs */
            lneg
            goto 82
      StackMap locals:
      StackMap stack:
        81: lload 7 /* rs */
      StackMap locals:
      StackMap stack: long
        82: lstore 7 /* rs */
        83: .line 530
            aload 4 /* mc */
            getfield java.math.MathContext.precision:I
            istore 17 /* mcp */
        start local 17 // int mcp
        84: .line 531
            iload 5 /* prec */
            iload 17 /* mcp */
            isub
            istore 18 /* drop */
        start local 18 // int drop
        85: .line 533
            iload 17 /* mcp */
            ifle 161
            iload 18 /* drop */
            ifle 161
        86: .line 534
            goto 91
        87: .line 535
      StackMap locals: int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 18 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
        88: .line 536
            lload 7 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 18 /* drop */
            laload
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 7 /* rs */
        89: .line 537
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
        90: .line 538
            iload 5 /* prec */
            iload 17 /* mcp */
            isub
            istore 18 /* drop */
        91: .line 534
      StackMap locals:
      StackMap stack:
            iload 18 /* drop */
            ifgt 87
        end local 18 // int drop
        end local 17 // int mcp
        92: .line 541
            goto 161
        93: .line 542
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            newarray 5
            astore 17 /* coeff */
        start local 17 // char[] coeff
        94: .line 543
            goto 124
        95: .line 544
      StackMap locals: char[]
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            caload
            istore 14 /* c */
        start local 14 // char c
        96: .line 546
            iload 14 /* c */
            bipush 48
            if_icmplt 97
            iload 14 /* c */
            bipush 57
            if_icmple 98
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int char[]
      StackMap stack:
        97: iload 14 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifeq 113
        98: .line 549
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 48
            if_icmpeq 99
            iload 14 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            ifne 107
        99: .line 550
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 103
       100: .line 551
            aload 17 /* coeff */
            iload 16 /* idx */
            iload 14 /* c */
            castore
       101: .line 552
            iconst_1
            istore 5 /* prec */
       102: .line 553
            goto 110
      StackMap locals:
      StackMap stack:
       103: iload 16 /* idx */
            ifeq 110
       104: .line 554
            aload 17 /* coeff */
            iload 16 /* idx */
            iinc 16 /* idx */ 1
            iload 14 /* c */
            castore
       105: .line 555
            iinc 5 /* prec */ 1
       106: .line 557
            goto 110
       107: .line 558
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            iconst_1
            if_icmpne 108
            iload 16 /* idx */
            ifeq 109
       108: .line 559
      StackMap locals:
      StackMap stack:
            iinc 5 /* prec */ 1
       109: .line 560
      StackMap locals:
      StackMap stack:
            aload 17 /* coeff */
            iload 16 /* idx */
            iinc 16 /* idx */ 1
            iload 14 /* c */
            castore
       110: .line 562
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 123
       111: .line 563
            iinc 6 /* scl */ 1
       112: .line 564
            goto 123
       113: .line 567
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 46
            if_icmpne 118
       114: .line 569
            iload 11 /* dot */
            ifeq 116
       115: .line 570
            new java.lang.NumberFormatException
            dup
            ldc "Character array contains more than one decimal point."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       116: .line 572
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* dot */
       117: .line 573
            goto 123
       118: .line 576
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 101
            if_icmpeq 120
            iload 14 /* c */
            bipush 69
            if_icmpeq 120
       119: .line 577
            new java.lang.NumberFormatException
            dup
            ldc "Character array is missing \"e\" notation exponential mark."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       120: .line 579
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            invokestatic java.math.BigDecimal.parseExp:([CII)J
            lstore 12 /* exp */
       121: .line 581
            lload 12 /* exp */
            l2i
            i2l
            lload 12 /* exp */
            lcmp
            ifeq 125
       122: .line 582
            new java.lang.NumberFormatException
            dup
            ldc "Exponent overflow."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       123: .line 543
      StackMap locals:
      StackMap stack:
            iinc 2 /* offset */ 1
            iinc 3 /* len */ -1
        end local 14 // char c
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack:
       124: iload 3 /* len */
            ifgt 95
       125: .line 586
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 127
       126: .line 587
            new java.lang.NumberFormatException
            dup
            ldc "No digits found."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
       127: .line 589
      StackMap locals:
      StackMap stack:
            lload 12 /* exp */
            lconst_0
            lcmp
            ifeq 129
       128: .line 590
            aload 0 /* this */
            iload 6 /* scl */
            lload 12 /* exp */
            invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
            istore 6 /* scl */
       129: .line 593
      StackMap locals:
      StackMap stack:
            new java.math.BigInteger
            dup
            aload 17 /* coeff */
            iload 10 /* isneg */
            ifeq 130
            iconst_m1
            goto 131
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack: new 129 new 129 char[]
       130: iconst_1
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack: new 129 new 129 char[] int
       131: iload 5 /* prec */
            invokespecial java.math.BigInteger.<init>:([CII)V
            astore 9 /* rb */
       132: .line 594
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 7 /* rs */
       133: .line 595
            aload 4 /* mc */
            getfield java.math.MathContext.precision:I
            istore 18 /* mcp */
        start local 18 // int mcp
       134: .line 596
            iload 18 /* mcp */
            ifle 161
            iload 5 /* prec */
            iload 18 /* mcp */
            if_icmple 161
       135: .line 597
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifne 147
       136: .line 598
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
        start local 19 // int drop
       137: .line 599
            goto 146
       138: .line 600
      StackMap locals: int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 19 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
       139: .line 601
            aload 9 /* rb */
            iload 19 /* drop */
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 9 /* rb */
       140: .line 602
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 7 /* rs */
       141: .line 603
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 144
       142: .line 604
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
       143: .line 605
            goto 147
       144: .line 607
      StackMap locals:
      StackMap stack:
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 5 /* prec */
       145: .line 608
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
       146: .line 599
      StackMap locals:
      StackMap stack:
            iload 19 /* drop */
            ifgt 138
        end local 19 // int drop
       147: .line 611
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 161
       148: .line 612
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
        start local 19 // int drop
       149: .line 613
            goto 154
       150: .line 614
      StackMap locals: int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 19 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
       151: .line 615
            lload 7 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 19 /* drop */
            laload
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 7 /* rs */
       152: .line 616
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
       153: .line 617
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
       154: .line 613
      StackMap locals:
      StackMap stack:
            iload 19 /* drop */
            ifgt 150
       155: .line 619
            aconst_null
            astore 9 /* rb */
        end local 19 // int drop
        end local 18 // int mcp
        end local 17 // char[] coeff
        end local 16 // int idx
        end local 15 // boolean isCompact
        end local 12 // long exp
        end local 11 // boolean dot
        end local 10 // boolean isneg
       156: .line 623
            goto 161
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger
      StackMap stack: java.lang.RuntimeException
       157: astore 10 /* e */
        start local 10 // java.lang.RuntimeException e
       158: .line 624
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            astore 11 /* nfe */
        start local 11 // java.lang.NumberFormatException nfe
       159: .line 625
            aload 11 /* nfe */
            aload 10 /* e */
            invokevirtual java.lang.NumberFormatException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
       160: .line 626
            aload 11 /* nfe */
            athrow
        end local 11 // java.lang.NumberFormatException nfe
        end local 10 // java.lang.RuntimeException e
       161: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* scl */
            putfield java.math.BigDecimal.scale:I
       162: .line 629
            aload 0 /* this */
            iload 5 /* prec */
            putfield java.math.BigDecimal.precision:I
       163: .line 630
            aload 0 /* this */
            lload 7 /* rs */
            putfield java.math.BigDecimal.intCompact:J
       164: .line 631
            aload 0 /* this */
            aload 9 /* rb */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
       165: .line 632
            return
        end local 9 // java.math.BigInteger rb
        end local 7 // long rs
        end local 6 // int scl
        end local 5 // int prec
        end local 4 // java.math.MathContext mc
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  166     0       this  Ljava/math/BigDecimal;
            0  166     1         in  [C
            0  166     2     offset  I
            0  166     3        len  I
            0  166     4         mc  Ljava/math/MathContext;
            8  166     5       prec  I
            9  166     6        scl  I
           10  166     7         rs  J
           11  166     9         rb  Ljava/math/BigInteger;
           12  156    10      isneg  Z
           21  156    11        dot  Z
           22  156    12        exp  J
           29   75    14          c  C
           96  124    14          c  C
           25  156    15  isCompact  Z
           26  156    16        idx  I
           40   45    17      digit  I
           53   65    17      digit  I
           84   92    17        mcp  I
           85   92    18       drop  I
           94  156    17      coeff  [C
          134  156    18        mcp  I
          137  147    19       drop  I
          149  156    19       drop  I
          158  161    10          e  Ljava/lang/RuntimeException;
          159  161    11        nfe  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IndexOutOfBoundsException
          11   156     157  Class java.lang.ArrayIndexOutOfBoundsException
          11   156     157  Class java.lang.NegativeArraySizeException
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     
      mc      

  private int adjustScale(int, long);
    descriptor: (IJ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int scl
        start local 2 // long exp
         0: .line 635
            iload 1 /* scl */
            i2l
            lload 2 /* exp */
            lsub
            lstore 4 /* adjustedScale */
        start local 4 // long adjustedScale
         1: .line 636
            lload 4 /* adjustedScale */
            ldc 2147483647
            lcmp
            ifgt 2
            lload 4 /* adjustedScale */
            ldc -2147483648
            lcmp
            ifge 3
         2: .line 637
      StackMap locals: long
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Scale out of range."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 638
      StackMap locals:
      StackMap stack:
            lload 4 /* adjustedScale */
            l2i
            istore 1 /* scl */
         4: .line 639
            iload 1 /* scl */
            ireturn
        end local 4 // long adjustedScale
        end local 2 // long exp
        end local 1 // int scl
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Ljava/math/BigDecimal;
            0    5     1            scl  I
            0    5     2            exp  J
            1    5     4  adjustedScale  J
    MethodParameters:
      Name  Flags
      scl   
      exp   

  private static long parseExp(char[], int, int);
    descriptor: ([CII)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // char[] in
        start local 1 // int offset
        start local 2 // int len
         0: .line 646
            lconst_0
            lstore 3 /* exp */
        start local 3 // long exp
         1: .line 647
            iinc 1 /* offset */ 1
         2: .line 648
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        start local 5 // char c
         3: .line 649
            iinc 2 /* len */ -1
         4: .line 650
            iload 5 /* c */
            bipush 45
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals: long int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* negexp */
        start local 6 // boolean negexp
         7: .line 652
            iload 6 /* negexp */
            ifne 8
            iload 5 /* c */
            bipush 43
            if_icmpne 11
         8: .line 653
      StackMap locals: int
      StackMap stack:
            iinc 1 /* offset */ 1
         9: .line 654
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        10: .line 655
            iinc 2 /* len */ -1
        11: .line 657
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ifgt 16
        12: .line 658
            new java.lang.NumberFormatException
            dup
            ldc "No exponent digits."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 661
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset */ 1
        14: .line 662
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        15: .line 663
            iinc 2 /* len */ -1
        16: .line 660
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            bipush 10
            if_icmple 17
            iload 5 /* c */
            bipush 48
            if_icmpeq 13
            iload 5 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            ifeq 13
        17: .line 665
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            bipush 10
            if_icmple 19
        18: .line 666
            new java.lang.NumberFormatException
            dup
            ldc "Too many nonzero exponent digits."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 670
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 48
            if_icmplt 22
            iload 5 /* c */
            bipush 57
            if_icmpgt 22
        20: .line 671
            iload 5 /* c */
            bipush 48
            isub
            istore 7 /* v */
        start local 7 // int v
        21: .line 672
            goto 25
        end local 7 // int v
        22: .line 673
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 7 /* v */
        start local 7 // int v
        23: .line 674
            iload 7 /* v */
            ifge 25
        24: .line 675
            new java.lang.NumberFormatException
            dup
            ldc "Not a digit."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 677
      StackMap locals: int
      StackMap stack:
            lload 3 /* exp */
            ldc 10
            lmul
            iload 7 /* v */
            i2l
            ladd
            lstore 3 /* exp */
        26: .line 678
            iload 2 /* len */
            iconst_1
            if_icmpne 28
        27: .line 679
            goto 31
        28: .line 680
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset */ 1
        29: .line 681
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        end local 7 // int v
        30: .line 668
            iinc 2 /* len */ -1
            goto 19
        31: .line 683
      StackMap locals:
      StackMap stack:
            iload 6 /* negexp */
            ifeq 33
        32: .line 684
            lload 3 /* exp */
            lneg
            lstore 3 /* exp */
        33: .line 685
      StackMap locals:
      StackMap stack:
            lload 3 /* exp */
            lreturn
        end local 6 // boolean negexp
        end local 5 // char c
        end local 3 // long exp
        end local 2 // int len
        end local 1 // int offset
        end local 0 // char[] in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0      in  [C
            0   34     1  offset  I
            0   34     2     len  I
            1   34     3     exp  J
            3   34     5       c  C
            7   34     6  negexp  Z
           21   22     7       v  I
           23   30     7       v  I
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     

  public void <init>(char[]);
    descriptor: ([C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
         0: .line 705
            aload 0 /* this */
            aload 1 /* in */
            iconst_0
            aload 1 /* in */
            arraylength
            invokespecial java.math.BigDecimal.<init>:([CII)V
         1: .line 706
            return
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1    in  [C
    MethodParameters:
      Name  Flags
      in    

  public void <init>(char[], java.math.MathContext);
    descriptor: ([CLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // java.math.MathContext mc
         0: .line 729
            aload 0 /* this */
            aload 1 /* in */
            iconst_0
            aload 1 /* in */
            arraylength
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 730
            return
        end local 2 // java.math.MathContext mc
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1    in  [C
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      in    
      mc    

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.String val
         0: .line 834
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            invokespecial java.math.BigDecimal.<init>:([CII)V
         1: .line 835
            return
        end local 1 // java.lang.String val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      val   

  public void <init>(java.lang.String, java.math.MathContext);
    descriptor: (Ljava/lang/String;Ljava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.String val
        start local 2 // java.math.MathContext mc
         0: .line 852
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 853
            return
        end local 2 // java.math.MathContext mc
        end local 1 // java.lang.String val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/lang/String;
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // double val
         0: .line 900
            aload 0 /* this */
            dload 1 /* val */
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
         1: .line 901
            return
        end local 1 // double val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  D
    MethodParameters:
      Name  Flags
      val   

  public void <init>(double, java.math.MathContext);
    descriptor: (DLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=18, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // double val
        start local 3 // java.math.MathContext mc
         0: .line 921
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 922
            dload 1 /* val */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifne 2
            dload 1 /* val */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 3
         2: .line 923
      StackMap locals: java.math.BigDecimal double java.math.MathContext
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Infinite or NaN"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 926
      StackMap locals:
      StackMap stack:
            dload 1 /* val */
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 4 /* valBits */
        start local 4 // long valBits
         4: .line 927
            lload 4 /* valBits */
            bipush 63
            lshr
            lconst_0
            lcmp
            ifne 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_m1
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* sign */
        start local 6 // int sign
         7: .line 928
            lload 4 /* valBits */
            bipush 52
            lshr
            ldc 2047
            land
            l2i
            istore 7 /* exponent */
        start local 7 // int exponent
         8: .line 929
            iload 7 /* exponent */
            ifne 10
         9: .line 930
            lload 4 /* valBits */
            ldc 4503599627370495
            land
            iconst_1
            lshl
            goto 11
        10: .line 931
      StackMap locals: int int
      StackMap stack:
            lload 4 /* valBits */
            ldc 4503599627370495
            land
            ldc 4503599627370496
            lor
        11: .line 929
      StackMap locals:
      StackMap stack: long
            lstore 8 /* significand */
        start local 8 // long significand
        12: .line 932
            iinc 7 /* exponent */ -1075
        13: .line 939
            lload 8 /* significand */
            lconst_0
            lcmp
            ifne 21
        14: .line 940
            aload 0 /* this */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        15: .line 941
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
        16: .line 942
            aload 0 /* this */
            lconst_0
            putfield java.math.BigDecimal.intCompact:J
        17: .line 943
            aload 0 /* this */
            iconst_1
            putfield java.math.BigDecimal.precision:I
        18: .line 944
            return
        19: .line 948
      StackMap locals: long
      StackMap stack:
            lload 8 /* significand */
            iconst_1
            lshr
            lstore 8 /* significand */
        20: .line 949
            iinc 7 /* exponent */ 1
        21: .line 947
      StackMap locals:
      StackMap stack:
            lload 8 /* significand */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 19
        22: .line 951
            iconst_0
            istore 10 /* scl */
        start local 10 // int scl
        23: .line 954
            iload 6 /* sign */
            i2l
            lload 8 /* significand */
            lmul
            lstore 12 /* compactVal */
        start local 12 // long compactVal
        24: .line 955
            iload 7 /* exponent */
            ifne 29
        25: .line 956
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 26
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 27
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int top long
      StackMap stack:
        26: aconst_null
      StackMap locals:
      StackMap stack: java.math.BigInteger
        27: astore 11 /* rb */
        start local 11 // java.math.BigInteger rb
        28: .line 957
            goto 35
        end local 11 // java.math.BigInteger rb
        29: .line 958
      StackMap locals:
      StackMap stack:
            iload 7 /* exponent */
            ifge 33
        30: .line 959
            ldc 5
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            iload 7 /* exponent */
            ineg
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            lload 12 /* compactVal */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            astore 11 /* rb */
        start local 11 // java.math.BigInteger rb
        31: .line 960
            iload 7 /* exponent */
            ineg
            istore 10 /* scl */
        32: .line 961
            goto 34
        end local 11 // java.math.BigInteger rb
        33: .line 962
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            iload 7 /* exponent */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            lload 12 /* compactVal */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            astore 11 /* rb */
        start local 11 // java.math.BigInteger rb
        34: .line 964
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long
      StackMap stack:
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 12 /* compactVal */
        35: .line 966
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 14 /* prec */
        start local 14 // int prec
        36: .line 967
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 15 /* mcp */
        start local 15 // int mcp
        37: .line 968
            iload 15 /* mcp */
            ifle 61
        38: .line 969
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 16 /* mode */
        start local 16 // int mode
        39: .line 971
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 51
        40: .line 972
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 14 /* prec */
        41: .line 973
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        start local 17 // int drop
        42: .line 974
            goto 50
        43: .line 975
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long int int int int
      StackMap stack:
            iload 10 /* scl */
            i2l
            iload 17 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scl */
        44: .line 976
            aload 11 /* rb */
            iload 17 /* drop */
            iload 16 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 11 /* rb */
        45: .line 977
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 12 /* compactVal */
        46: .line 978
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 48
        47: .line 979
            goto 51
        48: .line 981
      StackMap locals:
      StackMap stack:
            aload 11 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 14 /* prec */
        49: .line 982
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        50: .line 974
      StackMap locals:
      StackMap stack:
            iload 17 /* drop */
            ifgt 43
        end local 17 // int drop
        51: .line 985
      StackMap locals:
      StackMap stack:
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 61
        52: .line 986
            lload 12 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 14 /* prec */
        53: .line 987
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        start local 17 // int drop
        54: .line 988
            goto 59
        55: .line 989
      StackMap locals: int
      StackMap stack:
            iload 10 /* scl */
            i2l
            iload 17 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scl */
        56: .line 990
            lload 12 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 17 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 12 /* compactVal */
        57: .line 991
            lload 12 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 14 /* prec */
        58: .line 992
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        59: .line 988
      StackMap locals:
      StackMap stack:
            iload 17 /* drop */
            ifgt 55
        60: .line 994
            aconst_null
            astore 11 /* rb */
        end local 17 // int drop
        end local 16 // int mode
        61: .line 997
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* rb */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        62: .line 998
            aload 0 /* this */
            lload 12 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        63: .line 999
            aload 0 /* this */
            iload 10 /* scl */
            putfield java.math.BigDecimal.scale:I
        64: .line 1000
            aload 0 /* this */
            iload 14 /* prec */
            putfield java.math.BigDecimal.precision:I
        65: .line 1001
            return
        end local 15 // int mcp
        end local 14 // int prec
        end local 12 // long compactVal
        end local 11 // java.math.BigInteger rb
        end local 10 // int scl
        end local 8 // long significand
        end local 7 // int exponent
        end local 6 // int sign
        end local 4 // long valBits
        end local 3 // java.math.MathContext mc
        end local 1 // double val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   66     0         this  Ljava/math/BigDecimal;
            0   66     1          val  D
            0   66     3           mc  Ljava/math/MathContext;
            4   66     4      valBits  J
            7   66     6         sign  I
            8   66     7     exponent  I
           12   66     8  significand  J
           23   66    10          scl  I
           28   29    11           rb  Ljava/math/BigInteger;
           31   33    11           rb  Ljava/math/BigInteger;
           34   66    11           rb  Ljava/math/BigInteger;
           24   66    12   compactVal  J
           36   66    14         prec  I
           37   66    15          mcp  I
           39   61    16         mode  I
           42   51    17         drop  I
           54   61    17         drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger val
         0: .line 1010
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1011
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         2: .line 1012
            aload 0 /* this */
            aload 1 /* val */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         3: .line 1013
            aload 0 /* this */
            aload 1 /* val */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            putfield java.math.BigDecimal.intCompact:J
         4: .line 1014
            return
        end local 1 // java.math.BigInteger val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1   val  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  public void <init>(java.math.BigInteger, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;Ljava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger val
        start local 2 // java.math.MathContext mc
         0: .line 1029
            aload 0 /* this */
            aload 1 /* val */
            iconst_0
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;ILjava/math/MathContext;)V
         1: .line 1030
            return
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigInteger val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/math/BigInteger;
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger unscaledVal
        start local 2 // int scale
         0: .line 1041
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1043
            aload 0 /* this */
            aload 1 /* unscaledVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         2: .line 1044
            aload 0 /* this */
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            putfield java.math.BigDecimal.intCompact:J
         3: .line 1045
            aload 0 /* this */
            iload 2 /* scale */
            putfield java.math.BigDecimal.scale:I
         4: .line 1046
            return
        end local 2 // int scale
        end local 1 // java.math.BigInteger unscaledVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Ljava/math/BigDecimal;
            0    5     1  unscaledVal  Ljava/math/BigInteger;
            0    5     2        scale  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        

  public void <init>(java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger unscaledVal
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 1063
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1064
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 4 /* compactVal */
        start local 4 // long compactVal
         2: .line 1065
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 6 /* mcp */
        start local 6 // int mcp
         3: .line 1066
            iconst_0
            istore 7 /* prec */
        start local 7 // int prec
         4: .line 1067
            iload 6 /* mcp */
            ifle 28
         5: .line 1068
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 8 /* mode */
        start local 8 // int mode
         6: .line 1069
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 18
         7: .line 1070
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 7 /* prec */
         8: .line 1071
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
         9: .line 1072
            goto 17
        10: .line 1073
      StackMap locals: java.math.BigDecimal java.math.BigInteger int java.math.MathContext long int int int int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
        11: .line 1074
            aload 1 /* unscaledVal */
            iload 9 /* drop */
            iload 8 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 1 /* unscaledVal */
        12: .line 1075
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 4 /* compactVal */
        13: .line 1076
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 15
        14: .line 1077
            goto 18
        15: .line 1079
      StackMap locals:
      StackMap stack:
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 7 /* prec */
        16: .line 1080
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        17: .line 1072
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 10
        end local 9 // int drop
        18: .line 1083
      StackMap locals:
      StackMap stack:
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 28
        19: .line 1084
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        20: .line 1085
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        21: .line 1086
            goto 26
        22: .line 1087
      StackMap locals: int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
        23: .line 1088
            lload 4 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* drop */
            laload
            iload 8 /* mode */
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 4 /* compactVal */
        24: .line 1089
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        25: .line 1090
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        26: .line 1086
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 22
        27: .line 1092
            aconst_null
            astore 1 /* unscaledVal */
        end local 9 // int drop
        end local 8 // int mode
        28: .line 1095
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unscaledVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        29: .line 1096
            aload 0 /* this */
            lload 4 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        30: .line 1097
            aload 0 /* this */
            iload 2 /* scale */
            putfield java.math.BigDecimal.scale:I
        31: .line 1098
            aload 0 /* this */
            iload 7 /* prec */
            putfield java.math.BigDecimal.precision:I
        32: .line 1099
            return
        end local 7 // int prec
        end local 6 // int mcp
        end local 4 // long compactVal
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 1 // java.math.BigInteger unscaledVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         this  Ljava/math/BigDecimal;
            0   33     1  unscaledVal  Ljava/math/BigInteger;
            0   33     2        scale  I
            0   33     3           mc  Ljava/math/MathContext;
            2   33     4   compactVal  J
            3   33     6          mcp  I
            4   33     7         prec  I
            6   28     8         mode  I
            9   18     9         drop  I
           21   28     9         drop  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        
      mc           

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int val
         0: .line 1109
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1110
            aload 0 /* this */
            iload 1 /* val */
            i2l
            putfield java.math.BigDecimal.intCompact:J
         2: .line 1111
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         3: .line 1112
            aload 0 /* this */
            aconst_null
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         4: .line 1113
            return
        end local 1 // int val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1   val  I
    MethodParameters:
      Name  Flags
      val   

  public void <init>(int, java.math.MathContext);
    descriptor: (ILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int val
        start local 2 // java.math.MathContext mc
         0: .line 1126
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1127
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         2: .line 1128
            iload 1 /* val */
            i2l
            lstore 4 /* compactVal */
        start local 4 // long compactVal
         3: .line 1129
            iconst_0
            istore 6 /* scl */
        start local 6 // int scl
         4: .line 1130
            iconst_0
            istore 7 /* prec */
        start local 7 // int prec
         5: .line 1131
            iload 3 /* mcp */
            ifle 14
         6: .line 1132
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
         7: .line 1133
            iload 7 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
         8: .line 1134
            goto 13
         9: .line 1135
      StackMap locals: java.math.BigDecimal int java.math.MathContext int long int int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
        10: .line 1136
            lload 4 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 4 /* compactVal */
        11: .line 1137
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        12: .line 1138
            iload 7 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        13: .line 1134
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 9
        end local 8 // int drop
        14: .line 1141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        15: .line 1142
            aload 0 /* this */
            lload 4 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        16: .line 1143
            aload 0 /* this */
            iload 6 /* scl */
            putfield java.math.BigDecimal.scale:I
        17: .line 1144
            aload 0 /* this */
            iload 7 /* prec */
            putfield java.math.BigDecimal.precision:I
        18: .line 1145
            return
        end local 7 // int prec
        end local 6 // int scl
        end local 4 // long compactVal
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // int val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Ljava/math/BigDecimal;
            0   19     1         val  I
            0   19     2          mc  Ljava/math/MathContext;
            2   19     3         mcp  I
            3   19     4  compactVal  J
            4   19     6         scl  I
            5   19     7        prec  I
            8   14     8        drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
         0: .line 1154
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1155
            aload 0 /* this */
            lload 1 /* val */
            putfield java.math.BigDecimal.intCompact:J
         2: .line 1156
            aload 0 /* this */
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 3
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 4
      StackMap locals: java.math.BigDecimal long
      StackMap stack: java.math.BigDecimal
         3: aconst_null
      StackMap locals: java.math.BigDecimal long
      StackMap stack: java.math.BigDecimal java.math.BigInteger
         4: putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         5: .line 1157
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         6: .line 1158
            return
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/math/BigDecimal;
            0    7     1   val  J
    MethodParameters:
      Name  Flags
      val   

  public void <init>(long, java.math.MathContext);
    descriptor: (JLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
        start local 3 // java.math.MathContext mc
         0: .line 1171
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1172
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 4 /* mcp */
        start local 4 // int mcp
         2: .line 1173
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 5 /* mode */
        start local 5 // int mode
         3: .line 1174
            iconst_0
            istore 6 /* prec */
        start local 6 // int prec
         4: .line 1175
            iconst_0
            istore 7 /* scl */
        start local 7 // int scl
         5: .line 1176
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 6
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 7
      StackMap locals: java.math.BigDecimal long java.math.MathContext int int int int
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.math.BigInteger
         7: astore 8 /* rb */
        start local 8 // java.math.BigInteger rb
         8: .line 1177
            iload 4 /* mcp */
            ifle 31
         9: .line 1178
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 21
        10: .line 1179
            bipush 19
            istore 6 /* prec */
        11: .line 1180
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        12: .line 1181
            goto 20
        13: .line 1182
      StackMap locals: java.math.BigInteger int
      StackMap stack:
            iload 7 /* scl */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scl */
        14: .line 1183
            aload 8 /* rb */
            iload 9 /* drop */
            iload 5 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 8 /* rb */
        15: .line 1184
            aload 8 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 1 /* val */
        16: .line 1185
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        17: .line 1186
            goto 21
        18: .line 1188
      StackMap locals:
      StackMap stack:
            aload 8 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 6 /* prec */
        19: .line 1189
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        20: .line 1181
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 13
        end local 9 // int drop
        21: .line 1192
      StackMap locals:
      StackMap stack:
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 31
        22: .line 1193
            lload 1 /* val */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* prec */
        23: .line 1194
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        24: .line 1195
            goto 29
        25: .line 1196
      StackMap locals: int
      StackMap stack:
            iload 7 /* scl */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scl */
        26: .line 1197
            lload 1 /* val */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 1 /* val */
        27: .line 1198
            lload 1 /* val */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* prec */
        28: .line 1199
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        29: .line 1195
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 25
        30: .line 1201
            aconst_null
            astore 8 /* rb */
        end local 9 // int drop
        31: .line 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* rb */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        32: .line 1205
            aload 0 /* this */
            lload 1 /* val */
            putfield java.math.BigDecimal.intCompact:J
        33: .line 1206
            aload 0 /* this */
            iload 7 /* scl */
            putfield java.math.BigDecimal.scale:I
        34: .line 1207
            aload 0 /* this */
            iload 6 /* prec */
            putfield java.math.BigDecimal.precision:I
        35: .line 1208
            return
        end local 8 // java.math.BigInteger rb
        end local 7 // int scl
        end local 6 // int prec
        end local 5 // int mode
        end local 4 // int mcp
        end local 3 // java.math.MathContext mc
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   36     0  this  Ljava/math/BigDecimal;
            0   36     1   val  J
            0   36     3    mc  Ljava/math/MathContext;
            2   36     4   mcp  I
            3   36     5  mode  I
            4   36     6  prec  I
            5   36     7   scl  I
            8   36     8    rb  Ljava/math/BigInteger;
           12   21     9  drop  I
           24   31     9  drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public static java.math.BigDecimal valueOf(long, int);
    descriptor: (JI)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // long unscaledVal
        start local 2 // int scale
         0: .line 1226
            iload 2 /* scale */
            ifne 2
         1: .line 1227
            lload 0 /* unscaledVal */
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            areturn
         2: .line 1228
      StackMap locals:
      StackMap stack:
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            ifne 4
         3: .line 1229
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         4: .line 1231
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* unscaledVal */
            ldc -9223372036854775808
            lcmp
            ifne 6
         5: .line 1232
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 7
      StackMap locals: long int
      StackMap stack: new 4 new 4
         6: aconst_null
         7: .line 1233
      StackMap locals: long int
      StackMap stack: new 4 new 4 java.math.BigInteger
            lload 0 /* unscaledVal */
            iload 2 /* scale */
            iconst_0
         8: .line 1231
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 2 // int scale
        end local 0 // long unscaledVal
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0  unscaledVal  J
            0    9     2        scale  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        

  public static java.math.BigDecimal valueOf(long);
    descriptor: (J)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // long val
         0: .line 1248
            lload 0 /* val */
            lconst_0
            lcmp
            iflt 2
            lload 0 /* val */
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 2
         1: .line 1249
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            lload 0 /* val */
            l2i
            aaload
            areturn
         2: .line 1250
      StackMap locals:
      StackMap stack:
            lload 0 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 1251
            new java.math.BigDecimal
            dup
            aconst_null
            lload 0 /* val */
            iconst_0
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
         4: .line 1252
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            lload 0 /* val */
            iconst_0
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   val  J
    MethodParameters:
      Name  Flags
      val   

  static java.math.BigDecimal valueOf(long, int, int);
    descriptor: (JII)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // long unscaledVal
        start local 2 // int scale
        start local 3 // int prec
         0: .line 1256
            iload 2 /* scale */
            ifne 2
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            iflt 2
            lload 0 /* unscaledVal */
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 2
         1: .line 1257
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            lload 0 /* unscaledVal */
            l2i
            aaload
            areturn
         2: .line 1258
      StackMap locals:
      StackMap stack:
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            ifne 4
         3: .line 1259
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         4: .line 1261
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* unscaledVal */
            ldc -9223372036854775808
            lcmp
            ifne 5
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 6
      StackMap locals: long int int
      StackMap stack: new 4 new 4
         5: aconst_null
         6: .line 1262
      StackMap locals: long int int
      StackMap stack: new 4 new 4 java.math.BigInteger
            lload 0 /* unscaledVal */
            iload 2 /* scale */
            iload 3 /* prec */
         7: .line 1261
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // int prec
        end local 2 // int scale
        end local 0 // long unscaledVal
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0  unscaledVal  J
            0    8     2        scale  I
            0    8     3         prec  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        
      prec         

  static java.math.BigDecimal valueOf(java.math.BigInteger, int, int);
    descriptor: (Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // int prec
         0: .line 1266
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 3 /* val */
        start local 3 // long val
         1: .line 1267
            lload 3 /* val */
            lconst_0
            lcmp
            ifne 3
         2: .line 1268
            iload 1 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         3: .line 1269
      StackMap locals: long
      StackMap stack:
            iload 1 /* scale */
            ifne 5
            lload 3 /* val */
            lconst_0
            lcmp
            iflt 5
            lload 3 /* val */
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 5
         4: .line 1270
            getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
            lload 3 /* val */
            l2i
            aaload
            areturn
         5: .line 1272
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* intVal */
            lload 3 /* val */
            iload 1 /* scale */
            iload 2 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // long val
        end local 2 // int prec
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  intVal  Ljava/math/BigInteger;
            0    6     1   scale  I
            0    6     2    prec  I
            1    6     3     val  J
    MethodParameters:
        Name  Flags
      intVal  
      scale   
      prec    

  static java.math.BigDecimal zeroValueOf(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // int scale
         0: .line 1276
            iload 0 /* scale */
            iflt 2
            iload 0 /* scale */
            getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
            arraylength
            if_icmpge 2
         1: .line 1277
            getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
            iload 0 /* scale */
            aaload
            areturn
         2: .line 1279
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iload 0 /* scale */
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 0 // int scale
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  scale  I
    MethodParameters:
       Name  Flags
      scale  

  public static java.math.BigDecimal valueOf(double);
    descriptor: (D)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double val
         0: .line 1304
            new java.math.BigDecimal
            dup
            dload 0 /* val */
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            invokespecial java.math.BigDecimal.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // double val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   val  D
    MethodParameters:
      Name  Flags
      val   

  public java.math.BigDecimal add(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal augend
         0: .line 1317
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         1: .line 1318
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 1319
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JIJI)Ljava/math/BigDecimal;
            areturn
         3: .line 1321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         4: .line 1324
      StackMap locals:
      StackMap stack:
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1325
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         6: .line 1327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.BigDecimal augend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/math/BigDecimal;
            0    7     1  augend  Ljava/math/BigDecimal;
    MethodParameters:
        Name  Flags
      augend  

  public java.math.BigDecimal add(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal augend
        start local 2 // java.math.MathContext mc
         0: .line 1347
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1348
            aload 0 /* this */
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 3 /* lhs */
        start local 3 // java.math.BigDecimal lhs
         3: .line 1354
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.math.BigDecimal
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 4 /* lhsIsZero */
        start local 4 // boolean lhsIsZero
         6: .line 1355
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
            iconst_1
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 5 /* augendIsZero */
        start local 5 // boolean augendIsZero
         9: .line 1357
            iload 4 /* lhsIsZero */
            ifne 10
            iload 5 /* augendIsZero */
            ifeq 25
        10: .line 1358
      StackMap locals: int
      StackMap stack:
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.scale:()I
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.scale:()I
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* preferredScale */
        start local 6 // int preferredScale
        11: .line 1361
            iload 4 /* lhsIsZero */
            ifeq 13
            iload 5 /* augendIsZero */
            ifeq 13
        12: .line 1362
            iload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
        13: .line 1363
      StackMap locals: int
      StackMap stack:
            iload 4 /* lhsIsZero */
            ifeq 14
            aload 1 /* augend */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3 /* lhs */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
      StackMap locals:
      StackMap stack: java.math.BigDecimal
        15: astore 7 /* result */
        start local 7 // java.math.BigDecimal result
        16: .line 1365
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 6 /* preferredScale */
            if_icmpne 18
        17: .line 1366
            aload 7 /* result */
            areturn
        18: .line 1367
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 6 /* preferredScale */
            if_icmple 20
        19: .line 1368
            aload 7 /* result */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 7 /* result */
            getfield java.math.BigDecimal.intCompact:J
            aload 7 /* result */
            getfield java.math.BigDecimal.scale:I
            iload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            areturn
        20: .line 1370
      StackMap locals:
      StackMap stack:
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            istore 8 /* precisionDiff */
        start local 8 // int precisionDiff
        21: .line 1371
            iload 6 /* preferredScale */
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            isub
            istore 9 /* scaleDiff */
        start local 9 // int scaleDiff
        22: .line 1373
            iload 8 /* precisionDiff */
            iload 9 /* scaleDiff */
            if_icmplt 24
        23: .line 1374
            aload 7 /* result */
            iload 6 /* preferredScale */
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        24: .line 1376
      StackMap locals: int int
      StackMap stack:
            aload 7 /* result */
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 8 /* precisionDiff */
            iadd
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        end local 9 // int scaleDiff
        end local 8 // int precisionDiff
        end local 7 // java.math.BigDecimal result
        end local 6 // int preferredScale
        end local 5 // boolean augendIsZero
        end local 4 // boolean lhsIsZero
        25: .line 1381
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext java.math.BigDecimal
      StackMap stack:
            aload 3 /* lhs */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 4 /* padding */
        start local 4 // long padding
        26: .line 1382
            lload 4 /* padding */
            lconst_0
            lcmp
            ifeq 31
        27: .line 1383
            aload 0 /* this */
            aload 3 /* lhs */
            aload 1 /* augend */
            lload 4 /* padding */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.preAlign:(Ljava/math/BigDecimal;Ljava/math/BigDecimal;JLjava/math/MathContext;)[Ljava/math/BigDecimal;
            astore 6 /* arg */
        start local 6 // java.math.BigDecimal[] arg
        28: .line 1384
            aload 6 /* arg */
            invokestatic java.math.BigDecimal.matchScale:([Ljava/math/BigDecimal;)V
        29: .line 1385
            aload 6 /* arg */
            iconst_0
            aaload
            astore 3 /* lhs */
        30: .line 1386
            aload 6 /* arg */
            iconst_1
            aaload
            astore 1 /* augend */
        end local 6 // java.math.BigDecimal[] arg
        31: .line 1388
      StackMap locals: long
      StackMap stack:
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* lhs */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 4 // long padding
        end local 3 // java.math.BigDecimal lhs
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal augend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Ljava/math/BigDecimal;
            0   32     1          augend  Ljava/math/BigDecimal;
            0   32     2              mc  Ljava/math/MathContext;
            3   32     3             lhs  Ljava/math/BigDecimal;
            6   25     4       lhsIsZero  Z
            9   25     5    augendIsZero  Z
           11   25     6  preferredScale  I
           16   25     7          result  Ljava/math/BigDecimal;
           21   25     8   precisionDiff  I
           22   25     9       scaleDiff  I
           26   32     4         padding  J
           28   31     6             arg  [Ljava/math/BigDecimal;
    MethodParameters:
        Name  Flags
      augend  
      mc      

  private java.math.BigDecimal[] preAlign(java.math.BigDecimal, java.math.BigDecimal, long, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/BigDecimal;JLjava/math/MathContext;)[Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal lhs
        start local 2 // java.math.BigDecimal augend
        start local 3 // long padding
        start local 5 // java.math.MathContext mc
         0: .line 1414
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 3 /* padding */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1418
      StackMap locals:
      StackMap stack:
            lload 3 /* padding */
            lconst_0
            lcmp
            ifge 5
         2: .line 1419
            aload 1 /* lhs */
            astore 6 /* big */
        start local 6 // java.math.BigDecimal big
         3: .line 1420
            aload 2 /* augend */
            astore 7 /* small */
        start local 7 // java.math.BigDecimal small
         4: .line 1421
            goto 7
        end local 7 // java.math.BigDecimal small
        end local 6 // java.math.BigDecimal big
         5: .line 1422
      StackMap locals:
      StackMap stack:
            aload 2 /* augend */
            astore 6 /* big */
        start local 6 // java.math.BigDecimal big
         6: .line 1423
            aload 1 /* lhs */
            astore 7 /* small */
        start local 7 // java.math.BigDecimal small
         7: .line 1432
      StackMap locals: java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 6 /* big */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            lsub
            aload 5 /* mc */
            getfield java.math.MathContext.precision:I
            i2l
            ladd
            lstore 8 /* estResultUlpScale */
        start local 8 // long estResultUlpScale
         8: .line 1443
            aload 7 /* small */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 7 /* small */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            lsub
            lconst_1
            ladd
            lstore 10 /* smallHighDigitPos */
        start local 10 // long smallHighDigitPos
         9: .line 1444
            lload 10 /* smallHighDigitPos */
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            iconst_2
            iadd
            i2l
            lcmp
            ifle 12
        10: .line 1445
            lload 10 /* smallHighDigitPos */
            lload 8 /* estResultUlpScale */
            ldc 2
            ladd
            lcmp
            ifle 12
        11: .line 1446
            aload 7 /* small */
            invokevirtual java.math.BigDecimal.signum:()I
            i2l
            aload 0 /* this */
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            i2l
            lload 8 /* estResultUlpScale */
            invokestatic java.lang.Math.max:(JJ)J
            ldc 3
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 7 /* small */
        12: .line 1451
      StackMap locals: long long
      StackMap stack:
            iconst_2
            anewarray java.math.BigDecimal
            dup
            iconst_0
            aload 6 /* big */
            aastore
            dup
            iconst_1
            aload 7 /* small */
            aastore
            astore 12 /* result */
        start local 12 // java.math.BigDecimal[] result
        13: .line 1452
            aload 12 /* result */
            areturn
        end local 12 // java.math.BigDecimal[] result
        end local 10 // long smallHighDigitPos
        end local 8 // long estResultUlpScale
        end local 7 // java.math.BigDecimal small
        end local 6 // java.math.BigDecimal big
        end local 5 // java.math.MathContext mc
        end local 3 // long padding
        end local 2 // java.math.BigDecimal augend
        end local 1 // java.math.BigDecimal lhs
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Ljava/math/BigDecimal;
            0   14     1                lhs  Ljava/math/BigDecimal;
            0   14     2             augend  Ljava/math/BigDecimal;
            0   14     3            padding  J
            0   14     5                 mc  Ljava/math/MathContext;
            3    5     6                big  Ljava/math/BigDecimal;
            6   14     6                big  Ljava/math/BigDecimal;
            4    5     7              small  Ljava/math/BigDecimal;
            7   14     7              small  Ljava/math/BigDecimal;
            8   14     8  estResultUlpScale  J
            9   14    10  smallHighDigitPos  J
           13   14    12             result  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      lhs      
      augend   
      padding  
      mc       

  public java.math.BigDecimal subtract(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal subtrahend
         0: .line 1464
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         1: .line 1465
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 1466
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JIJI)Ljava/math/BigDecimal;
            areturn
         3: .line 1468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         4: .line 1471
      StackMap locals:
      StackMap stack:
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1475
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         6: .line 1477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.BigDecimal subtrahend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/math/BigDecimal;
            0    7     1  subtrahend  Ljava/math/BigDecimal;
    MethodParameters:
            Name  Flags
      subtrahend  

  public java.math.BigDecimal subtract(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal subtrahend
        start local 2 // java.math.MathContext mc
         0: .line 1497
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1498
            aload 0 /* this */
            aload 1 /* subtrahend */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* subtrahend */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal subtrahend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljava/math/BigDecimal;
            0    3     1  subtrahend  Ljava/math/BigDecimal;
            0    3     2          mc  Ljava/math/MathContext;
    MethodParameters:
            Name  Flags
      subtrahend  
      mc          

  public java.math.BigDecimal multiply(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal multiplicand
         0: .line 1512
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.scale:I
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* productScale */
        start local 2 // int productScale
         1: .line 1513
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 5
         2: .line 1514
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 1515
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JJI)Ljava/math/BigDecimal;
            areturn
         4: .line 1517
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         5: .line 1520
      StackMap locals:
      StackMap stack:
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 7
         6: .line 1521
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         7: .line 1523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 2 // int productScale
        end local 1 // java.math.BigDecimal multiplicand
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljava/math/BigDecimal;
            0    8     1  multiplicand  Ljava/math/BigDecimal;
            1    8     2  productScale  I
    MethodParameters:
              Name  Flags
      multiplicand  

  public java.math.BigDecimal multiply(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal multiplicand
        start local 2 // java.math.MathContext mc
         0: .line 1540
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1541
            aload 0 /* this */
            aload 1 /* multiplicand */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.scale:I
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 3 /* productScale */
        start local 3 // int productScale
         3: .line 1543
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 7
         4: .line 1544
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1545
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JJILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         6: .line 1547
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         7: .line 1550
      StackMap locals:
      StackMap stack:
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 9
         8: .line 1551
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         9: .line 1553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 3 // int productScale
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal multiplicand
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Ljava/math/BigDecimal;
            0   10     1  multiplicand  Ljava/math/BigDecimal;
            0   10     2            mc  Ljava/math/MathContext;
            3   10     3  productScale  I
    MethodParameters:
              Name  Flags
      multiplicand  
      mc            

  public java.math.BigDecimal divide(java.math.BigDecimal, int, int);
    descriptor: (Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int scale
        start local 3 // int roundingMode
         0: .line 1588
            iload 3 /* roundingMode */
            iflt 1
            iload 3 /* roundingMode */
            bipush 7
            if_icmple 2
         1: .line 1589
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid rounding mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         3: .line 1591
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 5
         4: .line 1592
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(JIJIII)Ljava/math/BigDecimal;
            areturn
         5: .line 1594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(JILjava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
         6: .line 1597
      StackMap locals:
      StackMap stack:
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         7: .line 1598
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;IJIII)Ljava/math/BigDecimal;
            areturn
         8: .line 1600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;ILjava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 3 // int roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Ljava/math/BigDecimal;
            0    9     1       divisor  Ljava/math/BigDecimal;
            0    9     2         scale  I
            0    9     3  roundingMode  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")
    MethodParameters:
              Name  Flags
      divisor       
      scale         
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, int, java.math.RoundingMode);
    descriptor: (Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int scale
        start local 3 // java.math.RoundingMode roundingMode
         0: .line 1622
            aload 0 /* this */
            aload 1 /* divisor */
            iload 2 /* scale */
            aload 3 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 3 // java.math.RoundingMode roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2         scale  I
            0    1     3  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      divisor       
      scale         
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, int);
    descriptor: (Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int roundingMode
         0: .line 1654
            aload 0 /* this */
            aload 1 /* divisor */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* roundingMode */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // int roundingMode
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2  roundingMode  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")
    MethodParameters:
              Name  Flags
      divisor       
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, java.math.RoundingMode);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.RoundingMode roundingMode
         0: .line 1673
            aload 0 /* this */
            aload 1 /* divisor */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.RoundingMode roundingMode
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      divisor       
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1694
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
         1: .line 1695
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 3
         2: .line 1696
            new java.lang.ArithmeticException
            dup
            ldc "Division undefined"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1697
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Division by zero"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 2 /* preferredScale */
        start local 2 // int preferredScale
         5: .line 1703
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 1704
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         7: .line 1714
      StackMap locals: int
      StackMap stack:
            new java.math.MathContext
            dup
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
         8: .line 1715
            ldc 10.0
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            i2d
            dmul
            ldc 3.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2l
            ladd
         9: .line 1716
            ldc 2147483647
        10: .line 1714
            invokestatic java.lang.Math.min:(JJ)J
            l2i
        11: .line 1717
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
        12: .line 1714
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 3 /* mc */
        start local 3 // java.math.MathContext mc
        13: .line 1720
            aload 0 /* this */
            aload 1 /* divisor */
            aload 3 /* mc */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        start local 4 // java.math.BigDecimal quotient
        14: .line 1721
            goto 17
        end local 4 // java.math.BigDecimal quotient
      StackMap locals: java.math.BigDecimal java.math.BigDecimal int java.math.MathContext
      StackMap stack: java.lang.ArithmeticException
        15: pop
        16: .line 1722
            new java.lang.ArithmeticException
            dup
            ldc "Non-terminating decimal expansion; no exact representable decimal result."
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // java.math.BigDecimal quotient
        17: .line 1726
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 4 /* quotient */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 5 /* quotientScale */
        start local 5 // int quotientScale
        18: .line 1732
            iload 2 /* preferredScale */
            iload 5 /* quotientScale */
            if_icmple 20
        19: .line 1733
            aload 4 /* quotient */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        20: .line 1735
      StackMap locals: int
      StackMap stack:
            aload 4 /* quotient */
            areturn
        end local 5 // int quotientScale
        end local 4 // java.math.BigDecimal quotient
        end local 3 // java.math.MathContext mc
        end local 2 // int preferredScale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Ljava/math/BigDecimal;
            0   21     1         divisor  Ljava/math/BigDecimal;
            5   21     2  preferredScale  I
           13   21     3              mc  Ljava/math/MathContext;
           14   15     4        quotient  Ljava/math/BigDecimal;
           17   21     4        quotient  Ljava/math/BigDecimal;
           18   21     5   quotientScale  I
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.ArithmeticException
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal divide(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1753
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         1: .line 1754
            iload 3 /* mcp */
            ifne 3
         2: .line 1755
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         3: .line 1757
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            astore 4 /* dividend */
        start local 4 // java.math.BigDecimal dividend
         4: .line 1758
            aload 4 /* dividend */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 5 /* preferredScale */
        start local 5 // long preferredScale
         5: .line 1771
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 9
         6: .line 1772
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 8
         7: .line 1773
            new java.lang.ArithmeticException
            dup
            ldc "Division undefined"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1774
      StackMap locals: java.math.BigDecimal long
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Division by zero"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1776
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 11
        10: .line 1777
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
        11: .line 1778
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 7 /* xscale */
        start local 7 // int xscale
        12: .line 1779
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 8 /* yscale */
        start local 8 // int yscale
        13: .line 1780
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 17
        14: .line 1781
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 16
        15: .line 1782
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        16: .line 1784
      StackMap locals: int int
      StackMap stack:
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(JILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        17: .line 1787
      StackMap locals:
      StackMap stack:
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 19
        18: .line 1788
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;IJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        19: .line 1790
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;ILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 8 // int yscale
        end local 7 // int xscale
        end local 5 // long preferredScale
        end local 4 // java.math.BigDecimal dividend
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Ljava/math/BigDecimal;
            0   20     1         divisor  Ljava/math/BigDecimal;
            0   20     2              mc  Ljava/math/MathContext;
            1   20     3             mcp  I
            4   20     4        dividend  Ljava/math/BigDecimal;
            5   20     5  preferredScale  J
           12   20     7          xscale  I
           13   20     8          yscale  I
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal divideToIntegralValue(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1808
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 2 /* preferredScale */
        start local 2 // int preferredScale
         1: .line 1809
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            ifge 3
         2: .line 1811
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         3: .line 1814
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 5
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifeq 5
         4: .line 1815
            aload 0 /* this */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
         5: .line 1820
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
         6: .line 1821
            ldc 10.0
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            i2d
            dmul
            ldc 3.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2l
         7: .line 1820
            ladd
         8: .line 1822
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            lsub
            invokestatic java.lang.Math.abs:(J)J
         9: .line 1820
            ladd
        10: .line 1822
            ldc 2
        11: .line 1820
            ladd
        12: .line 1823
            ldc 2147483647
        13: .line 1820
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 3 /* maxDigits */
        start local 3 // int maxDigits
        14: .line 1824
            aload 0 /* this */
            aload 1 /* divisor */
            new java.math.MathContext
            dup
            iload 3 /* maxDigits */
        15: .line 1825
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
        16: .line 1824
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        start local 4 // java.math.BigDecimal quotient
        17: .line 1826
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            ifle 20
        18: .line 1827
            aload 4 /* quotient */
            iconst_0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        19: .line 1828
            aload 4 /* quotient */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 4 /* quotient */
            getfield java.math.BigDecimal.intCompact:J
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        20: .line 1831
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* preferredScale */
            if_icmpge 22
        21: .line 1833
            aload 4 /* quotient */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        22: .line 1836
      StackMap locals:
      StackMap stack:
            aload 4 /* quotient */
            areturn
        end local 4 // java.math.BigDecimal quotient
        end local 3 // int maxDigits
        end local 2 // int preferredScale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Ljava/math/BigDecimal;
            0   23     1         divisor  Ljava/math/BigDecimal;
            1   23     2  preferredScale  I
           14   23     3       maxDigits  I
           17   23     4        quotient  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal divideToIntegralValue(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1860
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifeq 2
         1: .line 1861
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            ifge 3
         2: .line 1862
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         3: .line 1865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 3 /* preferredScale */
        start local 3 // int preferredScale
         4: .line 1874
            aload 0 /* this */
            aload 1 /* divisor */
            new java.math.MathContext
            dup
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* result */
        start local 4 // java.math.BigDecimal result
         5: .line 1876
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            ifge 9
         6: .line 1882
            aload 4 /* result */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 5 /* product */
        start local 5 // java.math.BigDecimal product
         7: .line 1885
            aload 0 /* this */
            aload 5 /* product */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            iflt 11
         8: .line 1886
            new java.lang.ArithmeticException
            dup
            ldc "Division impossible"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.math.BigDecimal product
         9: .line 1888
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            ifle 11
        10: .line 1894
            aload 4 /* result */
            iconst_0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            astore 4 /* result */
        11: .line 1899
      StackMap locals:
      StackMap stack:
            iload 3 /* preferredScale */
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            if_icmple 17
        12: .line 1900
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            dup
            istore 5 /* precisionDiff */
        start local 5 // int precisionDiff
        13: ifle 17
        14: .line 1901
            aload 4 /* result */
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
        15: .line 1902
            iload 5 /* precisionDiff */
            iload 3 /* preferredScale */
            aload 4 /* result */
            getfield java.math.BigDecimal.scale:I
            isub
            invokestatic java.lang.Math.min:(II)I
            iadd
        16: .line 1901
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        end local 5 // int precisionDiff
        17: .line 1904
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 4 /* result */
            getfield java.math.BigDecimal.intCompact:J
            aload 4 /* result */
            getfield java.math.BigDecimal.scale:I
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            areturn
        end local 4 // java.math.BigDecimal result
        end local 3 // int preferredScale
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Ljava/math/BigDecimal;
            0   18     1         divisor  Ljava/math/BigDecimal;
            0   18     2              mc  Ljava/math/MathContext;
            4   18     3  preferredScale  I
            5   18     4          result  Ljava/math/BigDecimal;
            7    9     5         product  Ljava/math/BigDecimal;
           13   17     5   precisionDiff  I
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal remainder(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1922
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            astore 2 /* divrem */
        start local 2 // java.math.BigDecimal[] divrem
         1: .line 1923
            aload 2 /* divrem */
            iconst_1
            aaload
            areturn
        end local 2 // java.math.BigDecimal[] divrem
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/math/BigDecimal;
            0    2     1  divisor  Ljava/math/BigDecimal;
            1    2     2   divrem  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal remainder(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1952
            aload 0 /* this */
            aload 1 /* divisor */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;
            astore 3 /* divrem */
        start local 3 // java.math.BigDecimal[] divrem
         1: .line 1953
            aload 3 /* divrem */
            iconst_1
            aaload
            areturn
        end local 3 // java.math.BigDecimal[] divrem
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/math/BigDecimal;
            0    2     1  divisor  Ljava/math/BigDecimal;
            0    2     2       mc  Ljava/math/MathContext;
            1    2     3   divrem  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal[] divideAndRemainder(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1978
            iconst_2
            anewarray java.math.BigDecimal
            astore 2 /* result */
        start local 2 // java.math.BigDecimal[] result
         1: .line 1980
            aload 2 /* result */
            iconst_0
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         2: .line 1981
            aload 2 /* result */
            iconst_1
            aload 0 /* this */
            aload 2 /* result */
            iconst_0
            aaload
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         3: .line 1982
            aload 2 /* result */
            areturn
        end local 2 // java.math.BigDecimal[] result
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljava/math/BigDecimal;
            0    4     1  divisor  Ljava/math/BigDecimal;
            1    4     2   result  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal[] divideAndRemainder(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 2012
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2013
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            areturn
         2: .line 2015
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.math.BigDecimal
            astore 3 /* result */
        start local 3 // java.math.BigDecimal[] result
         3: .line 2016
            aload 0 /* this */
            astore 4 /* lhs */
        start local 4 // java.math.BigDecimal lhs
         4: .line 2018
            aload 3 /* result */
            iconst_0
            aload 4 /* lhs */
            aload 1 /* divisor */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            aastore
         5: .line 2019
            aload 3 /* result */
            iconst_1
            aload 4 /* lhs */
            aload 3 /* result */
            iconst_0
            aaload
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         6: .line 2020
            aload 3 /* result */
            areturn
        end local 4 // java.math.BigDecimal lhs
        end local 3 // java.math.BigDecimal[] result
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/math/BigDecimal;
            0    7     1  divisor  Ljava/math/BigDecimal;
            0    7     2       mc  Ljava/math/MathContext;
            3    7     3   result  [Ljava/math/BigDecimal;
            4    7     4      lhs  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal sqrt(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=20, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2058
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 2 /* signum */
        start local 2 // int signum
         1: .line 2059
            iload 2 /* signum */
            iconst_1
            if_icmpne 57
         2: .line 2091
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            iconst_2
            idiv
            istore 3 /* preferredScale */
        start local 3 // int preferredScale
         3: .line 2092
            lconst_0
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 4 /* zeroWithFinalPreferredScale */
        start local 4 // java.math.BigDecimal zeroWithFinalPreferredScale
         4: .line 2096
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.stripTrailingZeros:()Ljava/math/BigDecimal;
            astore 5 /* stripped */
        start local 5 // java.math.BigDecimal stripped
         5: .line 2097
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 6 /* strippedScale */
        start local 6 // int strippedScale
         6: .line 2100
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.isPowerOfTen:()Z
            ifeq 12
         7: .line 2101
            iload 6 /* strippedScale */
            iconst_2
            irem
            ifne 12
         8: .line 2102
            lconst_1
            iload 6 /* strippedScale */
            iconst_2
            idiv
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 7 /* result */
        start local 7 // java.math.BigDecimal result
         9: .line 2103
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 3 /* preferredScale */
            if_icmpeq 11
        10: .line 2106
            aload 7 /* result */
            aload 4 /* zeroWithFinalPreferredScale */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 7 /* result */
        11: .line 2108
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigDecimal java.math.BigDecimal int java.math.BigDecimal
      StackMap stack:
            aload 7 /* result */
            areturn
        end local 7 // java.math.BigDecimal result
        12: .line 2124
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* scaleAdjust */
        start local 7 // int scaleAdjust
        13: .line 2125
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.scale:()I
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            iconst_1
            iadd
            istore 8 /* scale */
        start local 8 // int scale
        14: .line 2126
            iload 8 /* scale */
            iconst_2
            irem
            ifne 17
        15: .line 2127
            iload 8 /* scale */
            istore 7 /* scaleAdjust */
        16: .line 2128
            goto 18
        17: .line 2129
      StackMap locals: int int
      StackMap stack:
            iload 8 /* scale */
            iconst_1
            isub
            istore 7 /* scaleAdjust */
        18: .line 2132
      StackMap locals:
      StackMap stack:
            aload 5 /* stripped */
            iload 7 /* scaleAdjust */
            invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
            astore 9 /* working */
        start local 9 // java.math.BigDecimal working
        19: .line 2134
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 22
        20: .line 2135
            getstatic java.math.BigDecimal.ONE_TENTH:Ljava/math/BigDecimal;
            aload 9 /* working */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 21
            aload 9 /* working */
            getstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 22
      StackMap locals: java.math.BigDecimal
      StackMap stack:
        21: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 2161
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 9 /* working */
            invokevirtual java.math.BigDecimal.doubleValue:()D
            invokestatic java.lang.Math.sqrt:(D)D
            invokespecial java.math.BigDecimal.<init>:(D)V
            astore 10 /* guess */
        start local 10 // java.math.BigDecimal guess
        23: .line 2162
            bipush 15
            istore 11 /* guessPrecision */
        start local 11 // int guessPrecision
        24: .line 2163
            aload 1 /* mc */
            invokevirtual java.math.MathContext.getPrecision:()I
            istore 12 /* originalPrecision */
        start local 12 // int originalPrecision
        25: .line 2170
            iload 12 /* originalPrecision */
            ifne 28
        26: .line 2171
            aload 5 /* stripped */
            invokevirtual java.math.BigDecimal.precision:()I
            iconst_2
            idiv
            iconst_1
            iadd
            istore 13 /* targetPrecision */
        start local 13 // int targetPrecision
        27: .line 2172
            goto 29
        end local 13 // int targetPrecision
        28: .line 2173
      StackMap locals: java.math.BigDecimal int int
      StackMap stack:
            iload 12 /* originalPrecision */
            istore 13 /* targetPrecision */
        start local 13 // int targetPrecision
        29: .line 2180
      StackMap locals: int
      StackMap stack:
            aload 10 /* guess */
            astore 14 /* approx */
        start local 14 // java.math.BigDecimal approx
        30: .line 2181
            aload 9 /* working */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 15 /* workingPrecision */
        start local 15 // int workingPrecision
        31: .line 2183
      StackMap locals: java.math.BigDecimal int
      StackMap stack:
            iload 11 /* guessPrecision */
            iload 13 /* targetPrecision */
            iconst_2
            iadd
            invokestatic java.lang.Math.max:(II)I
        32: .line 2184
            iload 15 /* workingPrecision */
        33: .line 2183
            invokestatic java.lang.Math.max:(II)I
            istore 16 /* tmpPrecision */
        start local 16 // int tmpPrecision
        34: .line 2185
            new java.math.MathContext
            dup
            iload 16 /* tmpPrecision */
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 17 /* mcTmp */
        start local 17 // java.math.MathContext mcTmp
        35: .line 2187
            getstatic java.math.BigDecimal.ONE_HALF:Ljava/math/BigDecimal;
            aload 14 /* approx */
            aload 9 /* working */
            aload 14 /* approx */
            aload 17 /* mcTmp */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            aload 17 /* mcTmp */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 14 /* approx */
        36: .line 2188
            iload 11 /* guessPrecision */
            iconst_2
            imul
            istore 11 /* guessPrecision */
        end local 17 // java.math.MathContext mcTmp
        end local 16 // int tmpPrecision
        37: .line 2189
            iload 11 /* guessPrecision */
            iload 13 /* targetPrecision */
            iconst_2
            iadd
        38: .line 2182
            if_icmplt 31
        39: .line 2192
            aload 1 /* mc */
            invokevirtual java.math.MathContext.getRoundingMode:()Ljava/math/RoundingMode;
            astore 17 /* targetRm */
        start local 17 // java.math.RoundingMode targetRm
        40: .line 2193
            aload 17 /* targetRm */
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            if_acmpeq 41
            iload 12 /* originalPrecision */
            ifne 48
        41: .line 2195
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal int top java.math.RoundingMode
      StackMap stack:
            aload 17 /* targetRm */
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            if_acmpne 42
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            goto 43
      StackMap locals:
      StackMap stack:
        42: aload 17 /* targetRm */
        43: .line 2194
      StackMap locals:
      StackMap stack: java.math.RoundingMode
            astore 18 /* tmpRm */
        start local 18 // java.math.RoundingMode tmpRm
        44: .line 2196
            new java.math.MathContext
            dup
            iload 13 /* targetPrecision */
            aload 18 /* tmpRm */
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 19 /* mcTmp */
        start local 19 // java.math.MathContext mcTmp
        45: .line 2197
            aload 14 /* approx */
            iload 7 /* scaleAdjust */
            ineg
            iconst_2
            idiv
            invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
            aload 19 /* mcTmp */
            invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 16 /* result */
        start local 16 // java.math.BigDecimal result
        46: .line 2201
            aload 0 /* this */
            aload 16 /* result */
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifeq 49
        47: .line 2202
            new java.lang.ArithmeticException
            dup
            ldc "Computed square root not exact."
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 19 // java.math.MathContext mcTmp
        end local 18 // java.math.RoundingMode tmpRm
        end local 16 // java.math.BigDecimal result
        48: .line 2205
      StackMap locals:
      StackMap stack:
            aload 14 /* approx */
            iload 7 /* scaleAdjust */
            ineg
            iconst_2
            idiv
            invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 16 /* result */
        start local 16 // java.math.BigDecimal result
        49: .line 2208
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal java.math.BigDecimal int int int java.math.BigDecimal int java.math.BigDecimal java.math.RoundingMode
      StackMap stack:
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 3 /* preferredScale */
            if_icmpeq 55
        50: .line 2215
            aload 16 /* result */
            invokevirtual java.math.BigDecimal.stripTrailingZeros:()Ljava/math/BigDecimal;
        51: .line 2216
            aload 4 /* zeroWithFinalPreferredScale */
        52: .line 2217
            new java.math.MathContext
            dup
            iload 12 /* originalPrecision */
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
        53: .line 2216
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
        54: .line 2215
            astore 16 /* result */
        55: .line 2219
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 56
            aload 0 /* this */
            aload 16 /* result */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.squareRootResultAssertions:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
            ifne 56
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        56: .line 2220
      StackMap locals:
      StackMap stack:
            aload 16 /* result */
            areturn
        end local 17 // java.math.RoundingMode targetRm
        end local 16 // java.math.BigDecimal result
        end local 15 // int workingPrecision
        end local 14 // java.math.BigDecimal approx
        end local 13 // int targetPrecision
        end local 12 // int originalPrecision
        end local 11 // int guessPrecision
        end local 10 // java.math.BigDecimal guess
        end local 9 // java.math.BigDecimal working
        end local 8 // int scale
        end local 7 // int scaleAdjust
        end local 6 // int strippedScale
        end local 5 // java.math.BigDecimal stripped
        end local 4 // java.math.BigDecimal zeroWithFinalPreferredScale
        end local 3 // int preferredScale
        57: .line 2222
      StackMap locals: java.math.BigDecimal java.math.MathContext int
      StackMap stack:
            iload 2 /* signum */
            tableswitch { // -1 - 0
                   -1: 58
                    0: 59
              default: 60
          }
        58: .line 2224
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Attempted square root of negative BigDecimal"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        59: .line 2227
      StackMap locals:
      StackMap stack:
            lconst_0
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            iconst_2
            idiv
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        60: .line 2230
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "Bad value from signum"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // int signum
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   61     0                         this  Ljava/math/BigDecimal;
            0   61     1                           mc  Ljava/math/MathContext;
            1   61     2                       signum  I
            3   57     3               preferredScale  I
            4   57     4  zeroWithFinalPreferredScale  Ljava/math/BigDecimal;
            5   57     5                     stripped  Ljava/math/BigDecimal;
            6   57     6                strippedScale  I
            9   12     7                       result  Ljava/math/BigDecimal;
           13   57     7                  scaleAdjust  I
           14   57     8                        scale  I
           19   57     9                      working  Ljava/math/BigDecimal;
           23   57    10                        guess  Ljava/math/BigDecimal;
           24   57    11               guessPrecision  I
           25   57    12            originalPrecision  I
           27   28    13              targetPrecision  I
           29   57    13              targetPrecision  I
           30   57    14                       approx  Ljava/math/BigDecimal;
           31   57    15             workingPrecision  I
           34   37    16                 tmpPrecision  I
           35   37    17                        mcTmp  Ljava/math/MathContext;
           46   48    16                       result  Ljava/math/BigDecimal;
           49   57    16                       result  Ljava/math/BigDecimal;
           40   57    17                     targetRm  Ljava/math/RoundingMode;
           44   48    18                        tmpRm  Ljava/math/RoundingMode;
           45   48    19                        mcTmp  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  private boolean isPowerOfTen();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2236
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  private boolean squareRootResultAssertions(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal result
        start local 2 // java.math.MathContext mc
         0: .line 2249
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 2
         1: .line 2250
            aload 0 /* this */
            aload 1 /* result */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.squareRootZeroResultAssertions:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
            ireturn
         2: .line 2252
      StackMap locals:
      StackMap stack:
            aload 2 /* mc */
            invokevirtual java.math.MathContext.getRoundingMode:()Ljava/math/RoundingMode;
            astore 3 /* rm */
        start local 3 // java.math.RoundingMode rm
         3: .line 2253
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.ulp:()Ljava/math/BigDecimal;
            astore 4 /* ulp */
        start local 4 // java.math.BigDecimal ulp
         4: .line 2254
            aload 1 /* result */
            aload 4 /* ulp */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 5 /* neighborUp */
        start local 5 // java.math.BigDecimal neighborUp
         5: .line 2256
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.isPowerOfTen:()Z
            ifeq 7
         6: .line 2257
            aload 4 /* ulp */
            getstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 4 /* ulp */
         7: .line 2259
      StackMap locals: java.math.RoundingMode java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            aload 1 /* result */
            aload 4 /* ulp */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 6 /* neighborDown */
        start local 6 // java.math.BigDecimal neighborDown
         8: .line 2262
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpne 10
         9: .line 2263
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpeq 11
        10: .line 2264
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            iconst_0
            ireturn
        11: .line 2267
      StackMap locals:
      StackMap stack:
            invokestatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:()[I
            aload 3 /* rm */
            invokevirtual java.math.RoundingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 7
                    1: 16
                    2: 12
                    3: 16
                    4: 12
                    5: 20
                    6: 20
                    7: 20
              default: 33
          }
        12: .line 2271
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 15
        13: .line 2272
            aload 5 /* neighborUp */
            aload 5 /* neighborUp */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
        14: .line 2270
            ifle 15
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        15: iconst_0
            ireturn
        16: .line 2277
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 19
        17: .line 2278
            aload 6 /* neighborDown */
            aload 6 /* neighborDown */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
        18: .line 2276
            ifge 19
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        19: iconst_0
            ireturn
        20: .line 2283
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
            astore 7 /* err */
        start local 7 // java.math.BigDecimal err
        21: .line 2284
            aload 5 /* neighborUp */
            aload 5 /* neighborUp */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 8 /* errUp */
        start local 8 // java.math.BigDecimal errUp
        22: .line 2285
            aload 0 /* this */
            aload 6 /* neighborDown */
            aload 6 /* neighborDown */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 9 /* errDown */
        start local 9 // java.math.BigDecimal errDown
        23: .line 2289
            aload 7 /* err */
            aload 8 /* errUp */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            istore 10 /* err_comp_errUp */
        start local 10 // int err_comp_errUp
        24: .line 2290
            aload 7 /* err */
            aload 9 /* errDown */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            istore 11 /* err_comp_errDown */
        start local 11 // int err_comp_errDown
        25: .line 2293
            aload 8 /* errUp */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpne 32
        26: .line 2294
            aload 9 /* errDown */
            invokevirtual java.math.BigDecimal.signum:()I
            iconst_1
            if_icmpne 32
        27: .line 2296
            iload 10 /* err_comp_errUp */
            ifgt 32
        28: .line 2297
            iload 11 /* err_comp_errDown */
            ifgt 32
        29: .line 2299
            iload 10 /* err_comp_errUp */
            ifne 30
            iload 11 /* err_comp_errDown */
            ifge 32
        30: .line 2300
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext java.math.RoundingMode java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal int int
      StackMap stack:
            iload 11 /* err_comp_errDown */
            ifne 31
            iload 10 /* err_comp_errUp */
            ifge 32
        31: .line 2292
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        32: iconst_0
            ireturn
        end local 11 // int err_comp_errDown
        end local 10 // int err_comp_errUp
        end local 9 // java.math.BigDecimal errDown
        end local 8 // java.math.BigDecimal errUp
        end local 7 // java.math.BigDecimal err
        33: .line 2304
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext java.math.RoundingMode java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // java.math.BigDecimal neighborDown
        end local 5 // java.math.BigDecimal neighborUp
        end local 4 // java.math.BigDecimal ulp
        end local 3 // java.math.RoundingMode rm
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal result
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   34     0              this  Ljava/math/BigDecimal;
            0   34     1            result  Ljava/math/BigDecimal;
            0   34     2                mc  Ljava/math/MathContext;
            3   34     3                rm  Ljava/math/RoundingMode;
            4   34     4               ulp  Ljava/math/BigDecimal;
            5   34     5        neighborUp  Ljava/math/BigDecimal;
            8   34     6      neighborDown  Ljava/math/BigDecimal;
           21   33     7               err  Ljava/math/BigDecimal;
           22   33     8             errUp  Ljava/math/BigDecimal;
           23   33     9           errDown  Ljava/math/BigDecimal;
           24   33    10    err_comp_errUp  I
           25   33    11  err_comp_errDown  I
    MethodParameters:
        Name  Flags
      result  
      mc      

  private boolean squareRootZeroResultAssertions(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal result
        start local 2 // java.math.MathContext mc
         0: .line 2310
            aload 0 /* this */
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal result
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/math/BigDecimal;
            0    2     1  result  Ljava/math/BigDecimal;
            0    2     2      mc  Ljava/math/MathContext;
    MethodParameters:
        Name  Flags
      result  
      mc      

  public java.math.BigDecimal pow(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2331
            iload 1 /* n */
            iflt 1
            iload 1 /* n */
            ldc 999999999
            if_icmple 2
         1: .line 2332
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lmul
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         3: .line 2336
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            iload 1 /* n */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            iload 2 /* newScale */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
            areturn
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljava/math/BigDecimal;
            0    4     1         n  I
            3    4     2  newScale  I
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal pow(int, java.math.MathContext);
    descriptor: (ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
        start local 2 // java.math.MathContext mc
         0: .line 2391
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2392
            aload 0 /* this */
            iload 1 /* n */
            invokevirtual java.math.BigDecimal.pow:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 2393
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ldc -999999999
            if_icmplt 3
            iload 1 /* n */
            ldc 999999999
            if_icmple 4
         3: .line 2394
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2395
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ifne 6
         5: .line 2396
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            areturn
         6: .line 2397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 3 /* lhs */
        start local 3 // java.math.BigDecimal lhs
         7: .line 2398
            aload 2 /* mc */
            astore 4 /* workmc */
        start local 4 // java.math.MathContext workmc
         8: .line 2399
            iload 1 /* n */
            invokestatic java.lang.Math.abs:(I)I
            istore 5 /* mag */
        start local 5 // int mag
         9: .line 2400
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifle 16
        10: .line 2401
            iload 5 /* mag */
            i2l
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* elength */
        start local 6 // int elength
        11: .line 2402
            iload 6 /* elength */
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            if_icmple 13
        12: .line 2403
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 2404
      StackMap locals: java.math.BigDecimal int java.math.MathContext java.math.BigDecimal java.math.MathContext int int
      StackMap stack:
            new java.math.MathContext
            dup
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            iload 6 /* elength */
            iadd
            iconst_1
            iadd
        14: .line 2405
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
        15: .line 2404
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 4 /* workmc */
        end local 6 // int elength
        16: .line 2408
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            astore 6 /* acc */
        start local 6 // java.math.BigDecimal acc
        17: .line 2409
            iconst_0
            istore 7 /* seenbit */
        start local 7 // boolean seenbit
        18: .line 2410
            iconst_1
            istore 8 /* i */
        start local 8 // int i
        19: .line 2411
      StackMap locals: java.math.BigDecimal int int
      StackMap stack:
            iload 5 /* mag */
            iload 5 /* mag */
            iadd
            istore 5 /* mag */
        20: .line 2412
            iload 5 /* mag */
            ifge 23
        21: .line 2413
            iconst_1
            istore 7 /* seenbit */
        22: .line 2414
            aload 6 /* acc */
            aload 3 /* lhs */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        23: .line 2416
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            bipush 31
            if_icmpne 25
        24: .line 2417
            goto 28
        25: .line 2418
      StackMap locals:
      StackMap stack:
            iload 7 /* seenbit */
            ifeq 27
        26: .line 2419
            aload 6 /* acc */
            aload 6 /* acc */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        27: .line 2410
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
            goto 19
        end local 8 // int i
        28: .line 2423
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ifge 30
        29: .line 2424
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            aload 6 /* acc */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        30: .line 2426
      StackMap locals:
      StackMap stack:
            aload 6 /* acc */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 7 // boolean seenbit
        end local 6 // java.math.BigDecimal acc
        end local 5 // int mag
        end local 4 // java.math.MathContext workmc
        end local 3 // java.math.BigDecimal lhs
        end local 2 // java.math.MathContext mc
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   31     0     this  Ljava/math/BigDecimal;
            0   31     1        n  I
            0   31     2       mc  Ljava/math/MathContext;
            7   31     3      lhs  Ljava/math/BigDecimal;
            8   31     4   workmc  Ljava/math/MathContext;
            9   31     5      mag  I
           11   16     6  elength  I
           17   31     6      acc  Ljava/math/BigDecimal;
           18   31     7  seenbit  Z
           19   28     8        i  I
    MethodParameters:
      Name  Flags
      n     
      mc    

  public java.math.BigDecimal abs();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2437
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal abs(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2452
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 1
            aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.negate:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal negate();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2462
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifne 2
         1: .line 2463
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            ldc -9223372036854775808
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
         2: .line 2465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal negate(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2480
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;
            0    1     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal plus();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2496
            aload 0 /* this */
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal plus(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2515
            aload 1 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2516
            aload 0 /* this */
            areturn
         2: .line 2517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public int signum();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2527
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
         1: .line 2528
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.signum:(J)I
            goto 3
         2: .line 2529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
         3: .line 2527
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;

  public int scale();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2543
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public int precision();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2556
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            istore 1 /* result */
        start local 1 // int result
         1: .line 2557
            iload 1 /* result */
            ifne 7
         2: .line 2558
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* s */
        start local 2 // long s
         3: .line 2559
            lload 2 /* s */
            ldc -9223372036854775808
            lcmp
            ifeq 5
         4: .line 2560
            lload 2 /* s */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 1 /* result */
            goto 6
         5: .line 2562
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 1 /* result */
         6: .line 2563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* result */
            putfield java.math.BigDecimal.precision:I
        end local 2 // long s
         7: .line 2565
      StackMap locals:
      StackMap stack:
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljava/math/BigDecimal;
            1    8     1  result  I
            3    7     2       s  J

  public java.math.BigInteger unscaledValue();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2578
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal round(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2699
            aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;
            0    1     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal setScale(int, java.math.RoundingMode);
    descriptor: (ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
        start local 2 // java.math.RoundingMode roundingMode
         0: .line 2732
            aload 0 /* this */
            iload 1 /* newScale */
            aload 2 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.RoundingMode roundingMode
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1      newScale  I
            0    1     2  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      newScale      
      roundingMode  

  public java.math.BigDecimal setScale(int, int);
    descriptor: (II)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
        start local 2 // int roundingMode
         0: .line 2777
            iload 2 /* roundingMode */
            iflt 1
            iload 2 /* roundingMode */
            bipush 7
            if_icmple 2
         1: .line 2778
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid rounding mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            istore 3 /* oldScale */
        start local 3 // int oldScale
         3: .line 2781
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmpne 5
         4: .line 2782
            aload 0 /* this */
            areturn
         5: .line 2783
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 2784
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         7: .line 2785
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 21
         8: .line 2786
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* rs */
        start local 4 // long rs
         9: .line 2787
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmple 17
        10: .line 2788
            aload 0 /* this */
            iload 1 /* newScale */
            i2l
            iload 3 /* oldScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 6 /* raise */
        start local 6 // int raise
        11: .line 2789
            lload 4 /* rs */
            iload 6 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 4 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 13
        12: .line 2790
            lload 4 /* rs */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        13: .line 2792
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* raise */
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 7 /* rb */
        start local 7 // java.math.BigInteger rb
        14: .line 2793
            new java.math.BigDecimal
            dup
            aload 7 /* rb */
            ldc -9223372036854775808
            iload 1 /* newScale */
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 15
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            iload 6 /* raise */
            iadd
            goto 16
      StackMap locals: java.math.BigDecimal int int int long int java.math.BigInteger
      StackMap stack: new 14 new 14 java.math.BigInteger long int
        15: iconst_0
      StackMap locals: java.math.BigDecimal int int int long int java.math.BigInteger
      StackMap stack: new 14 new 14 java.math.BigInteger long int int
        16: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 7 // java.math.BigInteger rb
        end local 6 // int raise
        17: .line 2797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* oldScale */
            i2l
            iload 1 /* newScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 6 /* drop */
        start local 6 // int drop
        18: .line 2798
            iload 6 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 20
        19: .line 2799
            lload 4 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 6 /* drop */
            laload
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
        20: .line 2801
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            iload 6 /* drop */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 6 // int drop
        end local 4 // long rs
        21: .line 2805
      StackMap locals:
      StackMap stack:
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmple 27
        22: .line 2806
            aload 0 /* this */
            iload 1 /* newScale */
            i2l
            iload 3 /* oldScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 4 /* raise */
        start local 4 // int raise
        23: .line 2807
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 4 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 5 /* rb */
        start local 5 // java.math.BigInteger rb
        24: .line 2808
            new java.math.BigDecimal
            dup
            aload 5 /* rb */
            ldc -9223372036854775808
            iload 1 /* newScale */
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 25
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            iload 4 /* raise */
            iadd
            goto 26
      StackMap locals: java.math.BigDecimal int int int int java.math.BigInteger
      StackMap stack: new 24 new 24 java.math.BigInteger long int
        25: iconst_0
      StackMap locals: java.math.BigDecimal int int int int java.math.BigInteger
      StackMap stack: new 24 new 24 java.math.BigInteger long int int
        26: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 5 // java.math.BigInteger rb
        end local 4 // int raise
        27: .line 2812
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* oldScale */
            i2l
            iload 1 /* newScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 4 /* drop */
        start local 4 // int drop
        28: .line 2813
            iload 4 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 32
        29: .line 2814
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 4 /* drop */
            laload
            iload 1 /* newScale */
            iload 2 /* roundingMode */
        30: .line 2815
            iload 1 /* newScale */
        31: .line 2814
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        32: .line 2817
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 4 /* drop */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 4 // int drop
        end local 3 // int oldScale
        end local 2 // int roundingMode
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   33     0          this  Ljava/math/BigDecimal;
            0   33     1      newScale  I
            0   33     2  roundingMode  I
            3   33     3      oldScale  I
            9   21     4            rs  J
           11   17     6         raise  I
           14   17     7            rb  Ljava/math/BigInteger;
           18   21     6          drop  I
           23   27     4         raise  I
           24   27     5            rb  Ljava/math/BigInteger;
           28   33     4          drop  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9")
    MethodParameters:
              Name  Flags
      newScale      
      roundingMode  

  public java.math.BigDecimal setScale(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
         0: .line 2859
            aload 0 /* this */
            iload 1 /* newScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljava/math/BigDecimal;
            0    1     1  newScale  I
    MethodParameters:
          Name  Flags
      newScale  

  public java.math.BigDecimal movePointLeft(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2881
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         1: .line 2882
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* newScale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 3 /* num */
        start local 3 // java.math.BigDecimal num
         2: .line 2883
            aload 3 /* num */
            getfield java.math.BigDecimal.scale:I
            ifge 3
            aload 3 /* num */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            goto 4
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
         3: aload 3 /* num */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         4: areturn
        end local 3 // java.math.BigDecimal num
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/math/BigDecimal;
            0    5     1         n  I
            1    5     2  newScale  I
            2    5     3       num  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal movePointRight(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2903
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         1: .line 2904
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* newScale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 3 /* num */
        start local 3 // java.math.BigDecimal num
         2: .line 2905
            aload 3 /* num */
            getfield java.math.BigDecimal.scale:I
            ifge 3
            aload 3 /* num */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            goto 4
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
         3: aload 3 /* num */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         4: areturn
        end local 3 // java.math.BigDecimal num
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/math/BigDecimal;
            0    5     1         n  I
            1    5     2  newScale  I
            2    5     3       num  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal scaleByPowerOfTen(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2922
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
         1: .line 2923
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
         2: .line 2922
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1     n  I
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal stripTrailingZeros();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2942
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifeq 1
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnull 2
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
            ifne 2
         1: .line 2943
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            areturn
         2: .line 2944
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 2945
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ldc -9223372036854775808
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
         4: .line 2947
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ldc -9223372036854775808
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;

  public int compareTo(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 2973
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            if_icmpne 8
         1: .line 2974
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* xs */
        start local 2 // long xs
         2: .line 2975
            aload 1 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* ys */
        start local 4 // long ys
         3: .line 2976
            lload 2 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 8
            lload 4 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 8
         4: .line 2977
            lload 2 /* xs */
            lload 4 /* ys */
            lcmp
            ifeq 6
            lload 2 /* xs */
            lload 4 /* ys */
            lcmp
            ifle 5
            iconst_1
            goto 7
      StackMap locals: long long
      StackMap stack:
         5: iconst_m1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 4 // long ys
        end local 2 // long xs
         8: .line 2979
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 2 /* xsign */
        start local 2 // int xsign
         9: .line 2980
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 3 /* ysign */
        start local 3 // int ysign
        10: .line 2981
            iload 2 /* xsign */
            iload 3 /* ysign */
            if_icmpeq 14
        11: .line 2982
            iload 2 /* xsign */
            iload 3 /* ysign */
            if_icmple 12
            iconst_1
            goto 13
      StackMap locals: int int
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: ireturn
        14: .line 2983
      StackMap locals:
      StackMap stack:
            iload 2 /* xsign */
            ifne 16
        15: .line 2984
            iconst_0
            ireturn
        16: .line 2985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            istore 4 /* cmp */
        start local 4 // int cmp
        17: .line 2986
            iload 2 /* xsign */
            ifle 18
            iload 4 /* cmp */
            goto 19
      StackMap locals: int
      StackMap stack:
        18: iload 4 /* cmp */
            ineg
      StackMap locals:
      StackMap stack: int
        19: ireturn
        end local 4 // int cmp
        end local 3 // int ysign
        end local 2 // int xsign
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Ljava/math/BigDecimal;
            0   20     1    val  Ljava/math/BigDecimal;
            2    8     2     xs  J
            3    8     4     ys  J
            9   20     2  xsign  I
           10   20     3  ysign  I
           17   20     4    cmp  I
    MethodParameters:
      Name  Flags
      val   

  private int compareMagnitude(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 2994
            aload 1 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* ys */
        start local 2 // long ys
         1: .line 2995
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* xs */
        start local 4 // long xs
         2: .line 2996
            lload 4 /* xs */
            lconst_0
            lcmp
            ifne 6
         3: .line 2997
            lload 2 /* ys */
            lconst_0
            lcmp
            ifne 4
            iconst_0
            goto 5
      StackMap locals: long long
      StackMap stack:
         4: iconst_m1
      StackMap locals:
      StackMap stack: int
         5: ireturn
         6: .line 2998
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            lconst_0
            lcmp
            ifne 8
         7: .line 2999
            iconst_1
            ireturn
         8: .line 3001
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         9: .line 3002
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifeq 29
        10: .line 3004
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 8 /* xae */
        start local 8 // long xae
        11: .line 3005
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 10 /* yae */
        start local 10 // long yae
        12: .line 3006
            lload 8 /* xae */
            lload 10 /* yae */
            lcmp
            ifge 14
        13: .line 3007
            iconst_m1
            ireturn
        14: .line 3008
      StackMap locals: long long long
      StackMap stack:
            lload 8 /* xae */
            lload 10 /* yae */
            lcmp
            ifle 16
        15: .line 3009
            iconst_1
            ireturn
        16: .line 3010
      StackMap locals:
      StackMap stack:
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 23
        17: .line 3012
            lload 6 /* sdiff */
            ldc -2147483648
            lcmp
            ifle 29
        18: .line 3013
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 20
        19: .line 3014
            lload 4 /* xs */
            lload 6 /* sdiff */
            lneg
            l2i
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 29
        20: .line 3015
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifne 29
        21: .line 3016
            aload 0 /* this */
            lload 6 /* sdiff */
            lneg
            l2i
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
        22: .line 3017
            aload 12 /* rb */
            aload 1 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 12 // java.math.BigInteger rb
        23: .line 3021
      StackMap locals:
      StackMap stack:
            lload 6 /* sdiff */
            ldc 2147483647
            lcmp
            ifgt 29
        24: .line 3022
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 26
        25: .line 3023
            lload 2 /* ys */
            lload 6 /* sdiff */
            l2i
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifne 29
        26: .line 3024
      StackMap locals:
      StackMap stack:
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 29
        27: .line 3025
            aload 1 /* val */
            lload 6 /* sdiff */
            l2i
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
        28: .line 3026
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 12 /* rb */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 12 // java.math.BigInteger rb
        end local 10 // long yae
        end local 8 // long xae
        29: .line 3030
      StackMap locals:
      StackMap stack:
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 33
        30: .line 3031
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 31
            lload 4 /* xs */
            lload 2 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            goto 32
      StackMap locals:
      StackMap stack:
        31: iconst_m1
      StackMap locals:
      StackMap stack: int
        32: ireturn
        33: .line 3032
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 35
        34: .line 3033
            iconst_1
            ireturn
        35: .line 3035
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 6 // long sdiff
        end local 4 // long xs
        end local 2 // long ys
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   36     0   this  Ljava/math/BigDecimal;
            0   36     1    val  Ljava/math/BigDecimal;
            1   36     2     ys  J
            2   36     4     xs  J
            9   36     6  sdiff  J
           11   29     8    xae  J
           12   29    10    yae  J
           22   23    12     rb  Ljava/math/BigInteger;
           28   29    12     rb  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.Object x
         0: .line 3056
            aload 1 /* x */
            instanceof java.math.BigDecimal
            ifne 2
         1: .line 3057
            iconst_0
            ireturn
         2: .line 3058
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            checkcast java.math.BigDecimal
            astore 2 /* xDec */
        start local 2 // java.math.BigDecimal xDec
         3: .line 3059
            aload 1 /* x */
            aload 0 /* this */
            if_acmpne 5
         4: .line 3060
            iconst_1
            ireturn
         5: .line 3061
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* xDec */
            getfield java.math.BigDecimal.scale:I
            if_icmpeq 7
         6: .line 3062
            iconst_0
            ireturn
         7: .line 3063
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 3 /* s */
        start local 3 // long s
         8: .line 3064
            aload 2 /* xDec */
            getfield java.math.BigDecimal.intCompact:J
            lstore 5 /* xs */
        start local 5 // long xs
         9: .line 3065
            lload 3 /* s */
            ldc -9223372036854775808
            lcmp
            ifeq 14
        10: .line 3066
            lload 5 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 12
        11: .line 3067
            aload 2 /* xDec */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* xs */
        12: .line 3068
      StackMap locals: long long
      StackMap stack:
            lload 5 /* xs */
            lload 3 /* s */
            lcmp
            ifne 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        14: .line 3069
      StackMap locals:
      StackMap stack:
            lload 5 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        15: .line 3070
            lload 5 /* xs */
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lcmp
            ifne 16
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_0
            ireturn
        17: .line 3072
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            aload 2 /* xDec */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 5 // long xs
        end local 3 // long s
        end local 2 // java.math.BigDecimal xDec
        end local 1 // java.lang.Object x
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljava/math/BigDecimal;
            0   18     1     x  Ljava/lang/Object;
            3   18     2  xDec  Ljava/math/BigDecimal;
            8   18     3     s  J
            9   18     5    xs  J
    MethodParameters:
      Name  Flags
      x     

  public java.math.BigDecimal min(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 3087
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1   val  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  public java.math.BigDecimal max(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 3101
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1   val  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3117
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 10
         1: .line 3118
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifge 2
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
      StackMap locals:
      StackMap stack: long
         3: lstore 1 /* val2 */
        start local 1 // long val2
         4: .line 3119
            lload 1 /* val2 */
            bipush 32
            lushr
            l2i
            bipush 31
            imul
            i2l
         5: .line 3120
            lload 1 /* val2 */
            ldc 4294967295
            land
         6: .line 3119
            ladd
            l2i
            istore 3 /* temp */
        start local 3 // int temp
         7: .line 3121
            bipush 31
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifge 8
            iload 3 /* temp */
            ineg
            goto 9
      StackMap locals: java.math.BigDecimal long int
      StackMap stack: int
         8: iload 3 /* temp */
      StackMap locals: java.math.BigDecimal long int
      StackMap stack: int int
         9: imul
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iadd
            ireturn
        end local 3 // int temp
        end local 1 // long val2
        10: .line 3123
      StackMap locals:
      StackMap stack:
            bipush 31
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.hashCode:()I
            imul
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iadd
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/math/BigDecimal;
            4   10     1  val2  J
            7   10     3  temp  I

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3229
            aload 0 /* this */
            getfield java.math.BigDecimal.stringCache:Ljava/lang/String;
            astore 1 /* sc */
        start local 1 // java.lang.String sc
         1: .line 3230
            aload 1 /* sc */
            ifnonnull 3
         2: .line 3231
            aload 0 /* this */
            aload 0 /* this */
            iconst_1
            invokevirtual java.math.BigDecimal.layoutChars:(Z)Ljava/lang/String;
            dup
            astore 1 /* sc */
            putfield java.math.BigDecimal.stringCache:Ljava/lang/String;
         3: .line 3233
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* sc */
            areturn
        end local 1 // java.lang.String sc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1    sc  Ljava/lang/String;

  public java.lang.String toEngineeringString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3261
            aload 0 /* this */
            iconst_0
            invokevirtual java.math.BigDecimal.layoutChars:(Z)Ljava/lang/String;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.lang.String toPlainString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3298
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 4
         1: .line 3299
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 3300
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            areturn
         3: .line 3302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            areturn
         4: .line 3305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 21
         5: .line 3306
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 3307
            ldc "0"
            areturn
         7: .line 3309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lneg
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* trailingZeros */
        start local 1 // int trailingZeros
         8: .line 3311
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 12
         9: .line 3312
            new java.lang.StringBuilder
            dup
            bipush 20
            iload 1 /* trailingZeros */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
        10: .line 3313
            aload 2 /* buf */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        11: .line 3314
            goto 15
        end local 2 // java.lang.StringBuilder buf
        12: .line 3315
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            astore 3 /* str */
        start local 3 // java.lang.String str
        13: .line 3316
            new java.lang.StringBuilder
            dup
            aload 3 /* str */
            invokevirtual java.lang.String.length:()I
            iload 1 /* trailingZeros */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
        14: .line 3317
            aload 2 /* buf */
            aload 3 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String str
        15: .line 3319
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        16: goto 19
        17: .line 3320
      StackMap locals: int
      StackMap stack:
            aload 2 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 3319
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            iload 1 /* trailingZeros */
            if_icmplt 17
        end local 3 // int i
        20: .line 3322
            aload 2 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder buf
        end local 1 // int trailingZeros
        21: .line 3325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 24
        22: .line 3326
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
        23: .line 3327
            goto 25
        end local 1 // java.lang.String str
        24: .line 3328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
        25: .line 3330
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            aload 1 /* str */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokevirtual java.math.BigDecimal.getValueString:(ILjava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String str
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Ljava/math/BigDecimal;
            8   21     1  trailingZeros  I
           10   12     2            buf  Ljava/lang/StringBuilder;
           14   21     2            buf  Ljava/lang/StringBuilder;
           13   15     3            str  Ljava/lang/String;
           16   20     3              i  I
           23   24     1            str  Ljava/lang/String;
           25   26     1            str  Ljava/lang/String;

  private java.lang.String getValueString(int, java.lang.String, int);
    descriptor: (ILjava/lang/String;I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // int signum
        start local 2 // java.lang.String intString
        start local 3 // int scale
         0: .line 3337
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iload 3 /* scale */
            isub
            istore 5 /* insertionPoint */
        start local 5 // int insertionPoint
         1: .line 3338
            iload 5 /* insertionPoint */
            ifne 5
         2: .line 3339
            new java.lang.StringBuilder
            dup
            iload 1 /* signum */
            ifge 3
            ldc "-0."
            goto 4
      StackMap locals: java.math.BigDecimal int java.lang.String int top int
      StackMap stack: new 2 new 2
         3: ldc "0."
      StackMap locals: java.math.BigDecimal int java.lang.String int top int
      StackMap stack: new 2 new 2 java.lang.String
         4: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* intString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         5: .line 3340
      StackMap locals:
      StackMap stack:
            iload 5 /* insertionPoint */
            ifle 11
         6: .line 3341
            new java.lang.StringBuilder
            dup
            aload 2 /* intString */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
         7: .line 3342
            aload 4 /* buf */
            iload 5 /* insertionPoint */
            bipush 46
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
         8: .line 3343
            iload 1 /* signum */
            ifge 21
         9: .line 3344
            aload 4 /* buf */
            iconst_0
            bipush 45
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
        10: .line 3345
            goto 21
        end local 4 // java.lang.StringBuilder buf
        11: .line 3346
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iconst_3
            iload 5 /* insertionPoint */
            isub
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
        12: .line 3347
            aload 4 /* buf */
            iload 1 /* signum */
            ifge 13
            ldc "-0."
            goto 14
      StackMap locals: java.math.BigDecimal int java.lang.String int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder
        13: ldc "0."
      StackMap locals: java.math.BigDecimal int java.lang.String int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder java.lang.String
        14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 3348
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        16: goto 19
        17: .line 3349
      StackMap locals: int
      StackMap stack:
            aload 4 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 3348
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 5 /* insertionPoint */
            ineg
            if_icmplt 17
        end local 6 // int i
        20: .line 3351
            aload 4 /* buf */
            aload 2 /* intString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 3353
      StackMap locals:
      StackMap stack:
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // int insertionPoint
        end local 4 // java.lang.StringBuilder buf
        end local 3 // int scale
        end local 2 // java.lang.String intString
        end local 1 // int signum
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Ljava/math/BigDecimal;
            0   22     1          signum  I
            0   22     2       intString  Ljava/lang/String;
            0   22     3           scale  I
            7   11     4             buf  Ljava/lang/StringBuilder;
           12   22     4             buf  Ljava/lang/StringBuilder;
            1   22     5  insertionPoint  I
           16   20     6               i  I
    MethodParameters:
           Name  Flags
      signum     
      intString  
      scale      

  public java.math.BigInteger toBigInteger();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3376
            aload 0 /* this */
            iconst_0
            iconst_1
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigInteger toBigIntegerExact();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3391
            aload 0 /* this */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public long longValue();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3413
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3414
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lreturn
         2: .line 3417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifeq 4
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.fractionOnly:()Z
            ifne 4
         3: .line 3424
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            bipush -64
            if_icmpgt 5
         4: .line 3425
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
         5: .line 3427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/math/BigDecimal;

  private boolean fractionOnly();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3437
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            isub
            ifgt 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public long longValueExact();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3454
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3455
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lreturn
         2: .line 3458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
         3: .line 3459
            lconst_0
            lreturn
         4: .line 3463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.fractionOnly:()Z
            ifeq 6
         5: .line 3464
            new java.lang.ArithmeticException
            dup
            ldc "Rounding necessary"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 3467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            isub
            bipush 19
            if_icmple 8
         7: .line 3468
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 3471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            astore 1 /* num */
        start local 1 // java.math.BigDecimal num
         9: .line 3472
            aload 1 /* num */
            invokevirtual java.math.BigDecimal.precision:()I
            bipush 19
            if_icmplt 11
        10: .line 3473
            aload 1 /* num */
            invokestatic java.math.BigDecimal$LongOverflow.check:(Ljava/math/BigDecimal;)V
        11: .line 3474
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 1 /* num */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 1 // java.math.BigDecimal num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljava/math/BigDecimal;
            9   12     1   num  Ljava/math/BigDecimal;

  public int intValue();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3511
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3512
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            goto 3
         2: .line 3513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValue:()J
            l2i
         3: .line 3511
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;

  public int intValueExact();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3530
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3531
            lload 1 /* num */
            l2i
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3532
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3533
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public short shortValueExact();
    descriptor: ()S
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3550
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3551
            lload 1 /* num */
            l2i
            i2s
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3552
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3553
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            i2s
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public byte byteValueExact();
    descriptor: ()B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3570
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3571
            lload 1 /* num */
            l2i
            i2b
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3572
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3573
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            i2b
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public float floatValue();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3595
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         1: .line 3596
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 3
         2: .line 3597
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            freturn
         3: .line 3605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            ldc 4194304
            lcmp
            ifge 8
         4: .line 3609
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifle 6
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            arraylength
            if_icmpge 6
         5: .line 3610
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            faload
            fdiv
            freturn
         6: .line 3611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 8
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            arraylength
            ineg
            if_icmple 8
         7: .line 3612
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            getstatic java.math.BigDecimal.FLOAT_10_POW:[F
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ineg
            faload
            fmul
            freturn
         8: .line 3618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toString:()Ljava/lang/String;
            invokestatic java.lang.Float.parseFloat:(Ljava/lang/String;)F
            freturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/math/BigDecimal;

  public double doubleValue();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3640
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         1: .line 3641
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 3
         2: .line 3642
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            dreturn
         3: .line 3650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            ldc 4503599627370496
            lcmp
            ifge 8
         4: .line 3654
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifle 6
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            arraylength
            if_icmpge 6
         5: .line 3655
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            daload
            ddiv
            dreturn
         6: .line 3656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 8
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            arraylength
            ineg
            if_icmple 8
         7: .line 3657
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            getstatic java.math.BigDecimal.DOUBLE_10_POW:[D
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ineg
            daload
            dmul
            dreturn
         8: .line 3663
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toString:()Ljava/lang/String;
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dreturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal ulp();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3701
            lconst_1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            iconst_1
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  private java.lang.String layoutChars(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // boolean sci
         0: .line 3813
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 5
         1: .line 3814
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 3815
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            goto 4
         3: .line 3816
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
         4: .line 3814
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
         5: .line 3817
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iconst_2
            if_icmpne 13
         6: .line 3818
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            iflt 13
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc 2147483647
            lcmp
            ifge 13
         7: .line 3820
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            bipush 100
            irem
            istore 2 /* lowInt */
        start local 2 // int lowInt
         8: .line 3821
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            bipush 100
            idiv
            istore 3 /* highInt */
        start local 3 // int highInt
         9: .line 3822
            new java.lang.StringBuilder
            dup
            iload 3 /* highInt */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        10: .line 3823
            getstatic java.math.BigDecimal$StringBuilderHelper.DIGIT_TENS:[C
            iload 2 /* lowInt */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        11: .line 3824
            getstatic java.math.BigDecimal$StringBuilderHelper.DIGIT_ONES:[C
            iload 2 /* lowInt */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        12: .line 3822
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int highInt
        end local 2 // int lowInt
        13: .line 3827
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.threadLocalStringBuilderHelper:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.math.BigDecimal$StringBuilderHelper
            astore 2 /* sbHelper */
        start local 2 // java.math.BigDecimal$StringBuilderHelper sbHelper
        14: .line 3831
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 18
        15: .line 3832
            aload 2 /* sbHelper */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            invokevirtual java.math.BigDecimal$StringBuilderHelper.putIntCompact:(J)I
            istore 4 /* offset */
        start local 4 // int offset
        16: .line 3833
            aload 2 /* sbHelper */
            invokevirtual java.math.BigDecimal$StringBuilderHelper.getCompactCharArray:()[C
            astore 3 /* coeff */
        start local 3 // char[] coeff
        17: .line 3834
            goto 20
        end local 4 // int offset
        end local 3 // char[] coeff
        18: .line 3835
      StackMap locals: java.math.BigDecimal$StringBuilderHelper
      StackMap stack:
            iconst_0
            istore 4 /* offset */
        start local 4 // int offset
        19: .line 3836
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 3 /* coeff */
        start local 3 // char[] coeff
        20: .line 3843
      StackMap locals: char[] int
      StackMap stack:
            aload 2 /* sbHelper */
            invokevirtual java.math.BigDecimal$StringBuilderHelper.getStringBuilder:()Ljava/lang/StringBuilder;
            astore 5 /* buf */
        start local 5 // java.lang.StringBuilder buf
        21: .line 3844
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 23
        22: .line 3845
            aload 5 /* buf */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        23: .line 3846
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* coeff */
            arraylength
            iload 4 /* offset */
            isub
            istore 6 /* coeffLen */
        start local 6 // int coeffLen
        24: .line 3847
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lneg
            iload 6 /* coeffLen */
            iconst_1
            isub
            i2l
            ladd
            lstore 7 /* adjusted */
        start local 7 // long adjusted
        25: .line 3848
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iflt 40
            lload 7 /* adjusted */
            ldc -6
            lcmp
            iflt 40
        26: .line 3849
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iload 6 /* coeffLen */
            isub
            istore 9 /* pad */
        start local 9 // int pad
        27: .line 3850
            iload 9 /* pad */
            iflt 36
        28: .line 3851
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        29: .line 3852
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        30: .line 3853
            goto 33
        31: .line 3854
      StackMap locals: int long int
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        32: .line 3853
            iinc 9 /* pad */ -1
      StackMap locals:
      StackMap stack:
        33: iload 9 /* pad */
            ifgt 31
        34: .line 3856
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 6 /* coeffLen */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        35: .line 3857
            goto 79
        36: .line 3858
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* pad */
            ineg
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        37: .line 3859
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        38: .line 3860
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 9 /* pad */
            ineg
            iload 4 /* offset */
            iadd
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 9 // int pad
        39: .line 3862
            goto 79
        40: .line 3863
      StackMap locals:
      StackMap stack:
            iload 1 /* sci */
            ifeq 46
        41: .line 3864
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        42: .line 3865
            iload 6 /* coeffLen */
            iconst_1
            if_icmple 74
        43: .line 3866
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        44: .line 3867
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iconst_1
            iadd
            iload 6 /* coeffLen */
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        45: .line 3869
            goto 74
        46: .line 3870
      StackMap locals:
      StackMap stack:
            lload 7 /* adjusted */
            ldc 3
            lrem
            l2i
            istore 9 /* sig */
        start local 9 // int sig
        47: .line 3871
            iload 9 /* sig */
            ifge 49
        48: .line 3872
            iinc 9 /* sig */ 3
        49: .line 3873
      StackMap locals: int
      StackMap stack:
            lload 7 /* adjusted */
            iload 9 /* sig */
            i2l
            lsub
            lstore 7 /* adjusted */
        50: .line 3874
            iinc 9 /* sig */ 1
        51: .line 3875
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 63
        52: .line 3876
            iload 9 /* sig */
            tableswitch { // 1 - 3
                    1: 53
                    2: 55
                    3: 58
              default: 61
          }
        53: .line 3878
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        54: .line 3879
            goto 74
        55: .line 3881
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            ldc "0.00"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        56: .line 3882
            lload 7 /* adjusted */
            ldc 3
            ladd
            lstore 7 /* adjusted */
        57: .line 3883
            goto 74
        58: .line 3885
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            ldc "0.0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        59: .line 3886
            lload 7 /* adjusted */
            ldc 3
            ladd
            lstore 7 /* adjusted */
        60: .line 3887
            goto 74
        61: .line 3889
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected sig value "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sig */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        62: .line 3891
      StackMap locals:
      StackMap stack:
            goto 74
      StackMap locals:
      StackMap stack:
        63: iload 9 /* sig */
            iload 6 /* coeffLen */
            if_icmplt 71
        64: .line 3892
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 6 /* coeffLen */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        65: .line 3894
            iload 9 /* sig */
            iload 6 /* coeffLen */
            isub
            istore 10 /* i */
        start local 10 // int i
        66: goto 69
        67: .line 3895
      StackMap locals: int
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        68: .line 3894
            iinc 10 /* i */ -1
      StackMap locals:
      StackMap stack:
        69: iload 10 /* i */
            ifgt 67
        end local 10 // int i
        70: .line 3897
            goto 74
        71: .line 3898
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* sig */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        72: .line 3899
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        73: .line 3900
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* sig */
            iadd
            iload 6 /* coeffLen */
            iload 9 /* sig */
            isub
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 9 // int sig
        74: .line 3903
      StackMap locals:
      StackMap stack:
            lload 7 /* adjusted */
            lconst_0
            lcmp
            ifeq 79
        75: .line 3904
            aload 5 /* buf */
            bipush 69
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        76: .line 3905
            lload 7 /* adjusted */
            lconst_0
            lcmp
            ifle 78
        77: .line 3906
            aload 5 /* buf */
            bipush 43
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        78: .line 3907
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            lload 7 /* adjusted */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        79: .line 3910
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 7 // long adjusted
        end local 6 // int coeffLen
        end local 5 // java.lang.StringBuilder buf
        end local 4 // int offset
        end local 3 // char[] coeff
        end local 2 // java.math.BigDecimal$StringBuilderHelper sbHelper
        end local 1 // boolean sci
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   80     0      this  Ljava/math/BigDecimal;
            0   80     1       sci  Z
            8   13     2    lowInt  I
            9   13     3   highInt  I
           14   80     2  sbHelper  Ljava/math/BigDecimal$StringBuilderHelper;
           17   18     3     coeff  [C
           20   80     3     coeff  [C
           16   18     4    offset  I
           19   80     4    offset  I
           21   80     5       buf  Ljava/lang/StringBuilder;
           24   80     6  coeffLen  I
           25   80     7  adjusted  J
           27   39     9       pad  I
           47   74     9       sig  I
           66   70    10         i  I
    MethodParameters:
      Name  Flags
      sci   

  private static java.math.BigInteger bigTenToThe(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int n
         0: .line 3920
            iload 0 /* n */
            ifge 2
         1: .line 3921
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            areturn
         2: .line 3923
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_MAX:I
            if_icmpge 7
         3: .line 3924
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            astore 1 /* pows */
        start local 1 // java.math.BigInteger[] pows
         4: .line 3925
            iload 0 /* n */
            aload 1 /* pows */
            arraylength
            if_icmpge 6
         5: .line 3926
            aload 1 /* pows */
            iload 0 /* n */
            aaload
            areturn
         6: .line 3928
      StackMap locals: java.math.BigInteger[]
      StackMap stack:
            iload 0 /* n */
            invokestatic java.math.BigDecimal.expandBigIntegerTenPowers:(I)Ljava/math/BigInteger;
            areturn
        end local 1 // java.math.BigInteger[] pows
         7: .line 3931
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            iload 0 /* n */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            areturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     n  I
            4    7     1  pows  [Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      n     

  private static java.math.BigInteger expandBigIntegerTenPowers(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // int n
         0: .line 3943
            ldc Ljava/math/BigDecimal;
            dup
            astore 1
            monitorenter
         1: .line 3944
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            astore 2 /* pows */
        start local 2 // java.math.BigInteger[] pows
         2: .line 3945
            aload 2 /* pows */
            arraylength
            istore 3 /* curLen */
        start local 3 // int curLen
         3: .line 3948
            iload 3 /* curLen */
            iload 0 /* n */
            if_icmpgt 15
         4: .line 3949
            iload 3 /* curLen */
            iconst_1
            ishl
            istore 4 /* newLen */
        start local 4 // int newLen
         5: .line 3950
            goto 7
         6: .line 3951
      StackMap locals: int java.lang.Class java.math.BigInteger[] int int
      StackMap stack:
            iload 4 /* newLen */
            iconst_1
            ishl
            istore 4 /* newLen */
         7: .line 3950
      StackMap locals:
      StackMap stack:
            iload 4 /* newLen */
            iload 0 /* n */
            if_icmple 6
         8: .line 3953
            aload 2 /* pows */
            iload 4 /* newLen */
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.math.BigInteger[]
            astore 2 /* pows */
         9: .line 3954
            iload 3 /* curLen */
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 3955
      StackMap locals: int
      StackMap stack:
            aload 2 /* pows */
            iload 5 /* i */
            aload 2 /* pows */
            iload 5 /* i */
            iconst_1
            isub
            aaload
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aastore
        12: .line 3954
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 4 /* newLen */
            if_icmplt 11
        end local 5 // int i
        14: .line 3961
            aload 2 /* pows */
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
        end local 4 // int newLen
        15: .line 3963
      StackMap locals:
      StackMap stack:
            aload 2 /* pows */
            iload 0 /* n */
            aaload
            aload 1
            monitorexit
        16: areturn
        end local 3 // int curLen
        end local 2 // java.math.BigInteger[] pows
        17: .line 3943
      StackMap locals: int java.lang.Class
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        18: athrow
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0       n  I
            2   17     2    pows  [Ljava/math/BigInteger;
            3   17     3  curLen  I
            5   15     4  newLen  I
           10   14     5       i  I
      Exception table:
        from    to  target  type
           1    16      17  any
          17    18      17  any
    MethodParameters:
      Name  Flags
      n     

  private static long longMultiplyPowerTen(long, int);
    descriptor: (JI)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // long val
        start local 2 // int n
         0: .line 4043
            lload 0 /* val */
            lconst_0
            lcmp
            ifeq 1
            iload 2 /* n */
            ifgt 2
         1: .line 4044
      StackMap locals:
      StackMap stack:
            lload 0 /* val */
            lreturn
         2: .line 4045
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            astore 3 /* tab */
        start local 3 // long[] tab
         3: .line 4046
            getstatic java.math.BigDecimal.THRESHOLDS_TABLE:[J
            astore 4 /* bounds */
        start local 4 // long[] bounds
         4: .line 4047
            iload 2 /* n */
            aload 3 /* tab */
            arraylength
            if_icmpge 10
            iload 2 /* n */
            aload 4 /* bounds */
            arraylength
            if_icmpge 10
         5: .line 4048
            aload 3 /* tab */
            iload 2 /* n */
            laload
            lstore 5 /* tenpower */
        start local 5 // long tenpower
         6: .line 4049
            lload 0 /* val */
            lconst_1
            lcmp
            ifne 8
         7: .line 4050
            lload 5 /* tenpower */
            lreturn
         8: .line 4051
      StackMap locals: long[] long[] long
      StackMap stack:
            lload 0 /* val */
            invokestatic java.lang.Math.abs:(J)J
            aload 4 /* bounds */
            iload 2 /* n */
            laload
            lcmp
            ifgt 10
         9: .line 4052
            lload 0 /* val */
            lload 5 /* tenpower */
            lmul
            lreturn
        end local 5 // long tenpower
        10: .line 4054
      StackMap locals:
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 4 // long[] bounds
        end local 3 // long[] tab
        end local 2 // int n
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0       val  J
            0   11     2         n  I
            3   11     3       tab  [J
            4   11     4    bounds  [J
            6   10     5  tenpower  J
    MethodParameters:
      Name  Flags
      val   
      n     

  private java.math.BigInteger bigMultiplyPowerTen(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 4062
            iload 1 /* n */
            ifgt 2
         1: .line 4063
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
         2: .line 4065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 4066
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
         4: .line 4068
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1     n  I
    MethodParameters:
      Name  Flags
      n     

  private java.math.BigInteger inflated();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 4076
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 2
         1: .line 4077
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         2: .line 4079
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  private static void matchScale(java.math.BigDecimal[]);
    descriptor: ([Ljava/math/BigDecimal;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.math.BigDecimal[] val
         0: .line 4096
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            if_icmpge 3
         1: .line 4097
            aload 0 /* val */
            iconst_0
            aload 0 /* val */
            iconst_0
            aaload
            aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            aastore
         2: .line 4098
            goto 5
      StackMap locals:
      StackMap stack:
         3: aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            if_icmpge 5
         4: .line 4099
            aload 0 /* val */
            iconst_1
            aload 0 /* val */
            iconst_1
            aaload
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            aastore
         5: .line 4101
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.math.BigDecimal[] val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   val  [Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.io.ObjectInputStream s
         0: .line 4129
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 4131
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 4
         2: .line 4132
            ldc "BigDecimal: null intVal in stream"
            astore 2 /* message */
        start local 2 // java.lang.String message
         3: .line 4133
            new java.io.StreamCorruptedException
            dup
            aload 2 /* message */
            invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String message
         4: .line 4136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            invokestatic java.math.BigDecimal$UnsafeHolder.setIntCompact:(Ljava/math/BigDecimal;J)V
         5: .line 4137
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/math/BigDecimal;
            0    6     1        s  Ljava/io/ObjectInputStream;
            3    4     2  message  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 4147
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 2
         1: .line 4148
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal$UnsafeHolder.setIntValVolatile:(Ljava/math/BigDecimal;Ljava/math/BigInteger;)V
         2: .line 4150
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 4151
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            0    4     1     s  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  static int longDigitLength(long);
    descriptor: (J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // long x
         0: .line 4174
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 0 /* x */
            ldc -9223372036854775808
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4175
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 3
         2: .line 4176
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         3: .line 4177
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            ldc 10
            lcmp
            ifge 5
         4: .line 4178
            iconst_1
            ireturn
         5: .line 4179
      StackMap locals:
      StackMap stack:
            bipush 64
            lload 0 /* x */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            iconst_1
            iadd
            sipush 1233
            imul
            bipush 12
            iushr
            istore 2 /* r */
        start local 2 // int r
         6: .line 4180
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            astore 3 /* tab */
        start local 3 // long[] tab
         7: .line 4182
            iload 2 /* r */
            aload 3 /* tab */
            arraylength
            if_icmpge 8
            lload 0 /* x */
            aload 3 /* tab */
            iload 2 /* r */
            laload
            lcmp
            ifge 9
      StackMap locals: int long[]
      StackMap stack:
         8: iload 2 /* r */
            goto 10
      StackMap locals:
      StackMap stack:
         9: iload 2 /* r */
            iconst_1
            iadd
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 3 // long[] tab
        end local 2 // int r
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     x  J
            6   11     2     r  I
            7   11     3   tab  [J
    MethodParameters:
      Name  Flags
      x     

  private static int bigDigitLength(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.math.BigInteger b
         0: .line 4198
            aload 0 /* b */
            getfield java.math.BigInteger.signum:I
            ifne 2
         1: .line 4199
            iconst_1
            ireturn
         2: .line 4200
      StackMap locals:
      StackMap stack:
            aload 0 /* b */
            invokevirtual java.math.BigInteger.bitLength:()I
            i2l
            lconst_1
            ladd
            ldc 646456993
            lmul
            bipush 31
            lushr
            l2i
            istore 1 /* r */
        start local 1 // int r
         3: .line 4201
            aload 0 /* b */
            iload 1 /* r */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ifge 4
            iload 1 /* r */
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iload 1 /* r */
            iconst_1
            iadd
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 1 // int r
        end local 0 // java.math.BigInteger b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     b  Ljava/math/BigInteger;
            3    6     1     r  I
    MethodParameters:
      Name  Flags
      b     

  private int checkScale(long);
    descriptor: (J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
         0: .line 4216
            lload 1 /* val */
            l2i
            istore 3 /* asInt */
        start local 3 // int asInt
         1: .line 4217
            iload 3 /* asInt */
            i2l
            lload 1 /* val */
            lcmp
            ifeq 11
         2: .line 4218
            lload 1 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 3 /* asInt */
         5: .line 4220
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifeq 11
         6: .line 4221
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            dup
            astore 4 /* b */
        start local 4 // java.math.BigInteger b
         7: ifnull 8
            aload 4 /* b */
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 11
         8: .line 4222
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            iload 3 /* asInt */
            ifle 9
            ldc "Underflow"
            goto 10
      StackMap locals: java.math.BigDecimal long int java.math.BigInteger
      StackMap stack: new 8 new 8
         9: ldc "Overflow"
      StackMap locals: java.math.BigDecimal long int java.math.BigInteger
      StackMap stack: new 8 new 8 java.lang.String
        10: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.math.BigInteger b
        11: .line 4224
      StackMap locals:
      StackMap stack:
            iload 3 /* asInt */
            ireturn
        end local 3 // int asInt
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/math/BigDecimal;
            0   12     1    val  J
            1   12     3  asInt  I
            7   11     4      b  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  private static long compactValFor(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.math.BigInteger b
         0: .line 4233
            aload 0 /* b */
            getfield java.math.BigInteger.mag:[I
            astore 1 /* m */
        start local 1 // int[] m
         1: .line 4234
            aload 1 /* m */
            arraylength
            istore 2 /* len */
        start local 2 // int len
         2: .line 4235
            iload 2 /* len */
            ifne 4
         3: .line 4236
            lconst_0
            lreturn
         4: .line 4237
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* m */
            iconst_0
            iaload
            istore 3 /* d */
        start local 3 // int d
         5: .line 4238
            iload 2 /* len */
            iconst_2
            if_icmpgt 6
            iload 2 /* len */
            iconst_2
            if_icmpne 7
            iload 3 /* d */
            ifge 7
         6: .line 4239
      StackMap locals: int
      StackMap stack:
            ldc -9223372036854775808
            lreturn
         7: .line 4241
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            iconst_2
            if_icmpne 9
         8: .line 4242
            aload 1 /* m */
            iconst_1
            iaload
            i2l
            ldc 4294967295
            land
            iload 3 /* d */
            i2l
            bipush 32
            lshl
            ladd
            goto 10
         9: .line 4243
      StackMap locals:
      StackMap stack:
            iload 3 /* d */
            i2l
            ldc 4294967295
            land
        10: .line 4241
      StackMap locals:
      StackMap stack: long
            lstore 4 /* u */
        start local 4 // long u
        11: .line 4244
            aload 0 /* b */
            getfield java.math.BigInteger.signum:I
            ifge 12
            lload 4 /* u */
            lneg
            goto 13
      StackMap locals: long
      StackMap stack:
        12: lload 4 /* u */
      StackMap locals:
      StackMap stack: long
        13: lreturn
        end local 4 // long u
        end local 3 // int d
        end local 2 // int len
        end local 1 // int[] m
        end local 0 // java.math.BigInteger b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     b  Ljava/math/BigInteger;
            1   14     1     m  [I
            2   14     2   len  I
            5   14     3     d  I
           11   14     4     u  J
    MethodParameters:
      Name  Flags
      b     

  private static int longCompareMagnitude(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 4248
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 2
         1: .line 4249
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         2: .line 4250
      StackMap locals:
      StackMap stack:
            lload 2 /* y */
            lconst_0
            lcmp
            ifge 4
         3: .line 4251
            lload 2 /* y */
            lneg
            lstore 2 /* y */
         4: .line 4252
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifge 5
            iconst_m1
            goto 7
      StackMap locals:
      StackMap stack:
         5: lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifne 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     x  J
            0    8     2     y  J
    MethodParameters:
      Name  Flags
      x     
      y     

  private static int saturateLong(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long s
         0: .line 4256
            lload 0 /* s */
            l2i
            istore 2 /* i */
        start local 2 // int i
         1: .line 4257
            lload 0 /* s */
            iload 2 /* i */
            i2l
            lcmp
            ifne 2
            iload 2 /* i */
            goto 4
      StackMap locals: int
      StackMap stack:
         2: lload 0 /* s */
            lconst_0
            lcmp
            ifge 3
            ldc -2147483648
            goto 4
      StackMap locals:
      StackMap stack:
         3: ldc 2147483647
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 2 // int i
        end local 0 // long s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     s  J
            1    5     2     i  I
    MethodParameters:
      Name  Flags
      s     

  private static void print(java.lang.String, java.math.BigDecimal);
    descriptor: (Ljava/lang/String;Ljava/math/BigDecimal;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.math.BigDecimal bd
         0: .line 4264
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "%s:\tintCompact %d\tintVal %d\tscale %d\tprecision %d%n"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 4265
            aload 0 /* name */
            aastore
            dup
            iconst_1
         2: .line 4266
            aload 1 /* bd */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
         3: .line 4267
            aload 1 /* bd */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aastore
            dup
            iconst_3
         4: .line 4268
            aload 1 /* bd */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
         5: .line 4269
            aload 1 /* bd */
            getfield java.math.BigDecimal.precision:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         6: .line 4264
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         7: .line 4270
            return
        end local 1 // java.math.BigDecimal bd
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  name  Ljava/lang/String;
            0    8     1    bd  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      name  
      bd    

  private java.math.BigDecimal audit();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 4292
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifne 7
         1: .line 4293
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 4
         2: .line 4294
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
         3: .line 4295
            new java.lang.AssertionError
            dup
            ldc "null intVal"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 4298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 17
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            if_icmpeq 17
         5: .line 4299
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
         6: .line 4300
            new java.lang.AssertionError
            dup
            ldc "precision mismatch"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 4303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnull 14
         8: .line 4304
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lstore 1 /* val */
        start local 1 // long val
         9: .line 4305
            lload 1 /* val */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lcmp
            ifeq 14
        10: .line 4306
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
        11: .line 4307
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Inconsistent state, intCompact="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 4308
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "\t intVal="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* val */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 4307
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // long val
        14: .line 4312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 17
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            if_icmpeq 17
        15: .line 4313
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
        16: .line 4314
            new java.lang.AssertionError
            dup
            ldc "precision mismatch"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        17: .line 4317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljava/math/BigDecimal;
            9   14     1   val  J

  private static int checkScaleNonZero(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long val
         0: .line 4322
            lload 0 /* val */
            l2i
            istore 2 /* asInt */
        start local 2 // int asInt
         1: .line 4323
            iload 2 /* asInt */
            i2l
            lload 0 /* val */
            lcmp
            ifeq 5
         2: .line 4324
            new java.lang.ArithmeticException
            dup
            iload 2 /* asInt */
            ifle 3
            ldc "Underflow"
            goto 4
      StackMap locals: long int
      StackMap stack: new 2 new 2
         3: ldc "Overflow"
      StackMap locals: long int
      StackMap stack: new 2 new 2 java.lang.String
         4: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 4326
      StackMap locals:
      StackMap stack:
            iload 2 /* asInt */
            ireturn
        end local 2 // int asInt
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0    val  J
            1    6     2  asInt  I
    MethodParameters:
      Name  Flags
      val   

  private static int checkScale(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // long intCompact
        start local 2 // long val
         0: .line 4330
            lload 2 /* val */
            l2i
            istore 4 /* asInt */
        start local 4 // int asInt
         1: .line 4331
            iload 4 /* asInt */
            i2l
            lload 2 /* val */
            lcmp
            ifeq 9
         2: .line 4332
            lload 2 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* asInt */
         5: .line 4333
            lload 0 /* intCompact */
            lconst_0
            lcmp
            ifeq 9
         6: .line 4334
            new java.lang.ArithmeticException
            dup
            iload 4 /* asInt */
            ifle 7
            ldc "Underflow"
            goto 8
      StackMap locals: long long int
      StackMap stack: new 6 new 6
         7: ldc "Overflow"
      StackMap locals: long long int
      StackMap stack: new 6 new 6 java.lang.String
         8: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 4336
      StackMap locals:
      StackMap stack:
            iload 4 /* asInt */
            ireturn
        end local 4 // int asInt
        end local 2 // long val
        end local 0 // long intCompact
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0  intCompact  J
            0   10     2         val  J
            1   10     4       asInt  I
    MethodParameters:
            Name  Flags
      intCompact  
      val         

  private static int checkScale(java.math.BigInteger, long);
    descriptor: (Ljava/math/BigInteger;J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.math.BigInteger intVal
        start local 1 // long val
         0: .line 4340
            lload 1 /* val */
            l2i
            istore 3 /* asInt */
        start local 3 // int asInt
         1: .line 4341
            iload 3 /* asInt */
            i2l
            lload 1 /* val */
            lcmp
            ifeq 9
         2: .line 4342
            lload 1 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 3 /* asInt */
         5: .line 4343
            aload 0 /* intVal */
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 9
         6: .line 4344
            new java.lang.ArithmeticException
            dup
            iload 3 /* asInt */
            ifle 7
            ldc "Underflow"
            goto 8
      StackMap locals: java.math.BigInteger long int
      StackMap stack: new 6 new 6
         7: ldc "Overflow"
      StackMap locals: java.math.BigInteger long int
      StackMap stack: new 6 new 6 java.lang.String
         8: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 4346
      StackMap locals:
      StackMap stack:
            iload 3 /* asInt */
            ireturn
        end local 3 // int asInt
        end local 1 // long val
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  intVal  Ljava/math/BigInteger;
            0   10     1     val  J
            1   10     3   asInt  I
    MethodParameters:
        Name  Flags
      intVal  
      val     

  private static java.math.BigDecimal doRound(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // java.math.BigDecimal val
        start local 1 // java.math.MathContext mc
         0: .line 4363
            aload 1 /* mc */
            getfield java.math.MathContext.precision:I
            istore 2 /* mcp */
        start local 2 // int mcp
         1: .line 4364
            iconst_0
            istore 3 /* wasDivided */
        start local 3 // boolean wasDivided
         2: .line 4365
            iload 2 /* mcp */
            ifle 34
         3: .line 4366
            aload 0 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            astore 4 /* intVal */
        start local 4 // java.math.BigInteger intVal
         4: .line 4367
            aload 0 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 5 /* compactVal */
        start local 5 // long compactVal
         5: .line 4368
            aload 0 /* val */
            getfield java.math.BigDecimal.scale:I
            istore 7 /* scale */
        start local 7 // int scale
         6: .line 4369
            aload 0 /* val */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 8 /* prec */
        start local 8 // int prec
         7: .line 4370
            aload 1 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* mode */
        start local 9 // int mode
         8: .line 4372
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 21
         9: .line 4373
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        start local 10 // int drop
        10: .line 4374
            goto 20
        11: .line 4375
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigInteger long int int int int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 10 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        12: .line 4376
            aload 4 /* intVal */
            iload 10 /* drop */
            iload 9 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 4 /* intVal */
        13: .line 4377
            iconst_1
            istore 3 /* wasDivided */
        14: .line 4378
            aload 4 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        15: .line 4379
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        16: .line 4380
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 8 /* prec */
        17: .line 4381
            goto 21
        18: .line 4383
      StackMap locals:
      StackMap stack:
            aload 4 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 8 /* prec */
        19: .line 4384
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        20: .line 4374
      StackMap locals:
      StackMap stack:
            iload 10 /* drop */
            ifgt 11
        end local 10 // int drop
        21: .line 4387
      StackMap locals:
      StackMap stack:
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 31
        22: .line 4388
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        start local 10 // int drop
        23: .line 4389
            goto 30
        24: .line 4390
      StackMap locals: int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 10 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        25: .line 4391
            lload 5 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 10 /* drop */
            laload
            aload 1 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 5 /* compactVal */
        26: .line 4392
            iconst_1
            istore 3 /* wasDivided */
        27: .line 4393
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 8 /* prec */
        28: .line 4394
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        29: .line 4395
            aconst_null
            astore 4 /* intVal */
        30: .line 4389
      StackMap locals:
      StackMap stack:
            iload 10 /* drop */
            ifgt 24
        end local 10 // int drop
        31: .line 4398
      StackMap locals:
      StackMap stack:
            iload 3 /* wasDivided */
            ifeq 32
            new java.math.BigDecimal
            dup
            aload 4 /* intVal */
            lload 5 /* compactVal */
            iload 7 /* scale */
            iload 8 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 0 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
        33: areturn
        end local 9 // int mode
        end local 8 // int prec
        end local 7 // int scale
        end local 5 // long compactVal
        end local 4 // java.math.BigInteger intVal
        34: .line 4400
      StackMap locals: java.math.BigDecimal java.math.MathContext int int
      StackMap stack:
            aload 0 /* val */
            areturn
        end local 3 // boolean wasDivided
        end local 2 // int mcp
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal val
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   35     0         val  Ljava/math/BigDecimal;
            0   35     1          mc  Ljava/math/MathContext;
            1   35     2         mcp  I
            2   35     3  wasDivided  Z
            4   34     4      intVal  Ljava/math/BigInteger;
            5   34     5  compactVal  J
            6   34     7       scale  I
            7   34     8        prec  I
            8   34     9        mode  I
           10   21    10        drop  I
           23   31    10        drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  private static java.math.BigDecimal doRound(long, int, java.math.MathContext);
    descriptor: (JILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // long compactVal
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 4408
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 4 /* mcp */
        start local 4 // int mcp
         1: .line 4409
            iload 4 /* mcp */
            ifle 11
            iload 4 /* mcp */
            bipush 19
            if_icmpge 11
         2: .line 4410
            lload 0 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
        start local 5 // int prec
         3: .line 4411
            iload 5 /* prec */
            iload 4 /* mcp */
            isub
            istore 6 /* drop */
        start local 6 // int drop
         4: .line 4412
            goto 9
         5: .line 4413
      StackMap locals: int int int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 6 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
         6: .line 4414
            lload 0 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 6 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 0 /* compactVal */
         7: .line 4415
            lload 0 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
         8: .line 4416
            iload 5 /* prec */
            iload 4 /* mcp */
            isub
            istore 6 /* drop */
         9: .line 4412
      StackMap locals:
      StackMap stack:
            iload 6 /* drop */
            ifgt 5
        10: .line 4418
            lload 0 /* compactVal */
            iload 2 /* scale */
            iload 5 /* prec */
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 6 // int drop
        end local 5 // int prec
        11: .line 4420
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 4 // int mcp
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 0 // long compactVal
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  compactVal  J
            0   12     2       scale  I
            0   12     3          mc  Ljava/math/MathContext;
            1   12     4         mcp  I
            3   11     5        prec  I
            4   11     6        drop  I
    MethodParameters:
            Name  Flags
      compactVal  
      scale       
      mc          

  private static java.math.BigDecimal doRound(java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // java.math.MathContext mc
         0: .line 4428
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         1: .line 4429
            iconst_0
            istore 4 /* prec */
        start local 4 // int prec
         2: .line 4430
            iload 3 /* mcp */
            ifle 27
         3: .line 4431
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        start local 5 // long compactVal
         4: .line 4432
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 7 /* mode */
        start local 7 // int mode
         5: .line 4434
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 17
         6: .line 4435
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 4 /* prec */
         7: .line 4436
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
         8: .line 4437
            goto 16
         9: .line 4438
      StackMap locals: java.math.BigInteger int java.math.MathContext int int long int int
      StackMap stack:
            iload 1 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* scale */
        10: .line 4439
            aload 0 /* intVal */
            iload 8 /* drop */
            iload 7 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 0 /* intVal */
        11: .line 4440
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        12: .line 4441
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 14
        13: .line 4442
            goto 17
        14: .line 4444
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 4 /* prec */
        15: .line 4445
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        16: .line 4437
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 9
        end local 8 // int drop
        17: .line 4448
      StackMap locals:
      StackMap stack:
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 27
        18: .line 4449
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 4 /* prec */
        19: .line 4450
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
        20: .line 4451
            goto 25
        21: .line 4452
      StackMap locals: int
      StackMap stack:
            iload 1 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* scale */
        22: .line 4453
            lload 5 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 5 /* compactVal */
        23: .line 4454
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 4 /* prec */
        24: .line 4455
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        25: .line 4451
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 21
        26: .line 4457
            lload 5 /* compactVal */
            iload 1 /* scale */
            iload 4 /* prec */
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 8 // int drop
        end local 7 // int mode
        end local 5 // long compactVal
        27: .line 4460
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* intVal */
            ldc -9223372036854775808
            iload 1 /* scale */
            iload 4 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 4 // int prec
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0      intVal  Ljava/math/BigInteger;
            0   28     1       scale  I
            0   28     2          mc  Ljava/math/MathContext;
            1   28     3         mcp  I
            2   28     4        prec  I
            4   27     5  compactVal  J
            5   27     7        mode  I
            8   17     8        drop  I
           20   27     8        drop  I
    MethodParameters:
        Name  Flags
      intVal  
      scale   
      mc      

  private static java.math.BigInteger divideAndRoundByTenPow(java.math.BigInteger, int, int);
    descriptor: (Ljava/math/BigInteger;II)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int tenPow
        start local 2 // int roundingMode
         0: .line 4467
            iload 1 /* tenPow */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 2
         1: .line 4468
            aload 0 /* intVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 1 /* tenPow */
            laload
            iload 2 /* roundingMode */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JI)Ljava/math/BigInteger;
            astore 0 /* intVal */
            goto 3
         2: .line 4470
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iload 1 /* tenPow */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 2 /* roundingMode */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 0 /* intVal */
         3: .line 4471
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            areturn
        end local 2 // int roundingMode
        end local 1 // int tenPow
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0        intVal  Ljava/math/BigInteger;
            0    4     1        tenPow  I
            0    4     2  roundingMode  I
    MethodParameters:
              Name  Flags
      intVal        
      tenPow        
      roundingMode  

  private static java.math.BigDecimal divideAndRound(long, long, int, int, int);
    descriptor: (JJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=13, args_size=5
        start local 0 // long ldividend
        start local 2 // long ldivisor
        start local 4 // int scale
        start local 5 // int roundingMode
        start local 6 // int preferredScale
         0: .line 4487
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            ldiv
            lstore 8 /* q */
        start local 8 // long q
         1: .line 4488
            iload 5 /* roundingMode */
            iconst_1
            if_icmpne 3
            iload 4 /* scale */
            iload 6 /* preferredScale */
            if_icmpne 3
         2: .line 4489
            lload 8 /* q */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 4490
      StackMap locals: long long int int int top long
      StackMap stack:
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            lrem
            lstore 10 /* r */
        start local 10 // long r
         4: .line 4491
            lload 0 /* ldividend */
            lconst_0
            lcmp
            ifge 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: lload 2 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: long long int int int top long long
      StackMap stack: int int
         8: if_icmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_m1
      StackMap locals:
      StackMap stack: int
        10: istore 7 /* qsign */
        start local 7 // int qsign
        11: .line 4492
            lload 10 /* r */
            lconst_0
            lcmp
            ifeq 16
        12: .line 4493
            lload 2 /* ldivisor */
            iload 5 /* roundingMode */
            iload 7 /* qsign */
            lload 8 /* q */
            lload 10 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 12 /* increment */
        start local 12 // boolean increment
        13: .line 4494
            iload 12 /* increment */
            ifeq 14
            lload 8 /* q */
            iload 7 /* qsign */
            i2l
            ladd
            goto 15
      StackMap locals: long long int int int int long long int
      StackMap stack:
        14: lload 8 /* q */
      StackMap locals:
      StackMap stack: long
        15: iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 12 // boolean increment
        16: .line 4496
      StackMap locals:
      StackMap stack:
            iload 6 /* preferredScale */
            iload 4 /* scale */
            if_icmpeq 18
        17: .line 4497
            lload 8 /* q */
            iload 4 /* scale */
            iload 6 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        18: .line 4499
      StackMap locals:
      StackMap stack:
            lload 8 /* q */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 10 // long r
        end local 8 // long q
        end local 7 // int qsign
        end local 6 // int preferredScale
        end local 5 // int roundingMode
        end local 4 // int scale
        end local 2 // long ldivisor
        end local 0 // long ldividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0       ldividend  J
            0   19     2        ldivisor  J
            0   19     4           scale  I
            0   19     5    roundingMode  I
            0   19     6  preferredScale  I
           11   19     7           qsign  I
            1   19     8               q  J
            4   19    10               r  J
           13   16    12       increment  Z
    MethodParameters:
                Name  Flags
      ldividend       
      ldivisor        
      scale           
      roundingMode    
      preferredScale  

  private static long divideAndRound(long, long, int);
    descriptor: (JJI)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // long ldividend
        start local 2 // long ldivisor
        start local 4 // int roundingMode
         0: .line 4509
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            ldiv
            lstore 6 /* q */
        start local 6 // long q
         1: .line 4510
            iload 4 /* roundingMode */
            iconst_1
            if_icmpne 3
         2: .line 4511
            lload 6 /* q */
            lreturn
         3: .line 4512
      StackMap locals: long long int top long
      StackMap stack:
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            lrem
            lstore 8 /* r */
        start local 8 // long r
         4: .line 4513
            lload 0 /* ldividend */
            lconst_0
            lcmp
            ifge 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: lload 2 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: long long int top long long
      StackMap stack: int int
         8: if_icmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_m1
      StackMap locals:
      StackMap stack: int
        10: istore 5 /* qsign */
        start local 5 // int qsign
        11: .line 4514
            lload 8 /* r */
            lconst_0
            lcmp
            ifeq 16
        12: .line 4515
            lload 2 /* ldivisor */
            iload 4 /* roundingMode */
            iload 5 /* qsign */
            lload 6 /* q */
            lload 8 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 10 /* increment */
        start local 10 // boolean increment
        13: .line 4516
            iload 10 /* increment */
            ifeq 14
            lload 6 /* q */
            iload 5 /* qsign */
            i2l
            ladd
            goto 15
      StackMap locals: long long int int long long int
      StackMap stack:
        14: lload 6 /* q */
      StackMap locals:
      StackMap stack: long
        15: lreturn
        end local 10 // boolean increment
        16: .line 4518
      StackMap locals:
      StackMap stack:
            lload 6 /* q */
            lreturn
        end local 8 // long r
        end local 6 // long q
        end local 5 // int qsign
        end local 4 // int roundingMode
        end local 2 // long ldivisor
        end local 0 // long ldividend
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0     ldividend  J
            0   17     2      ldivisor  J
            0   17     4  roundingMode  I
           11   17     5         qsign  I
            1   17     6             q  J
            4   17     8             r  J
           13   16    10     increment  Z
    MethodParameters:
              Name  Flags
      ldividend     
      ldivisor      
      roundingMode  

  private static boolean commonNeedIncrement(int, int, int, boolean);
    descriptor: (IIIZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // int roundingMode
        start local 1 // int qsign
        start local 2 // int cmpFracHalf
        start local 3 // boolean oddQuot
         0: .line 4527
            iload 0 /* roundingMode */
            tableswitch { // 0 - 7
                    0: 2
                    1: 3
                    2: 4
                    3: 6
                    4: 8
                    5: 8
                    6: 8
                    7: 1
              default: 8
          }
         1: .line 4529
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Rounding necessary"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4532
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         3: .line 4535
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 4538
      StackMap locals:
      StackMap stack:
            iload 1 /* qsign */
            ifle 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 4541
      StackMap locals:
      StackMap stack:
            iload 1 /* qsign */
            ifge 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 4544
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 11
            iload 0 /* roundingMode */
            iconst_4
            if_icmplt 10
         9: .line 4545
            iload 0 /* roundingMode */
            bipush 6
            if_icmple 11
      StackMap locals:
      StackMap stack:
        10: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected rounding mode"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* roundingMode */
            invokestatic java.math.RoundingMode.valueOf:(I)Ljava/math/RoundingMode;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 4547
      StackMap locals:
      StackMap stack:
            iload 2 /* cmpFracHalf */
            ifge 13
        12: .line 4548
            iconst_0
            ireturn
        13: .line 4549
      StackMap locals:
      StackMap stack:
            iload 2 /* cmpFracHalf */
            ifle 15
        14: .line 4550
            iconst_1
            ireturn
        15: .line 4552
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 16
            iload 2 /* cmpFracHalf */
            ifeq 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 4554
      StackMap locals:
      StackMap stack:
            iload 0 /* roundingMode */
            tableswitch { // 4 - 6
                    4: 18
                    5: 17
                    6: 19
              default: 20
          }
        17: .line 4556
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        18: .line 4559
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        19: .line 4562
      StackMap locals:
      StackMap stack:
            iload 3 /* oddQuot */
            ireturn
        20: .line 4565
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected rounding mode"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* roundingMode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // boolean oddQuot
        end local 2 // int cmpFracHalf
        end local 1 // int qsign
        end local 0 // int roundingMode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0  roundingMode  I
            0   21     1         qsign  I
            0   21     2   cmpFracHalf  I
            0   21     3       oddQuot  Z
    MethodParameters:
              Name  Flags
      roundingMode  
      qsign         
      cmpFracHalf   
      oddQuot       

  private static boolean needIncrement(long, int, int, long, long);
    descriptor: (JIIJJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // long ldivisor
        start local 2 // int roundingMode
        start local 3 // int qsign
        start local 4 // long q
        start local 6 // long r
         0: .line 4576
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 6 /* r */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4579
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            ldc -4611686018427387904
            lcmp
            ifle 2
            lload 6 /* r */
            ldc 4611686018427387903
            lcmp
            ifle 4
         2: .line 4580
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* cmpFracHalf */
        start local 8 // int cmpFracHalf
         3: .line 4581
            goto 5
        end local 8 // int cmpFracHalf
         4: .line 4582
      StackMap locals:
      StackMap stack:
            ldc 2
            lload 6 /* r */
            lmul
            lload 0 /* ldivisor */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 8 /* cmpFracHalf */
        start local 8 // int cmpFracHalf
         5: .line 4585
      StackMap locals: int
      StackMap stack:
            iload 2 /* roundingMode */
            iload 3 /* qsign */
            iload 8 /* cmpFracHalf */
            lload 4 /* q */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 6
            iconst_1
            goto 7
      StackMap locals: long int int long long int
      StackMap stack: int int int
         6: iconst_0
      StackMap locals: long int int long long int
      StackMap stack: int int int int
         7: invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 8 // int cmpFracHalf
        end local 6 // long r
        end local 4 // long q
        end local 3 // int qsign
        end local 2 // int roundingMode
        end local 0 // long ldivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0      ldivisor  J
            0    8     2  roundingMode  I
            0    8     3         qsign  I
            0    8     4             q  J
            0    8     6             r  J
            3    4     8   cmpFracHalf  I
            5    8     8   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      ldivisor      
      roundingMode  
      qsign         
      q             
      r             

  private static java.math.BigInteger divideAndRound(java.math.BigInteger, long, int);
    descriptor: (Ljava/math/BigInteger;JI)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // java.math.BigInteger bdividend
        start local 1 // long ldivisor
        start local 3 // int roundingMode
         0: .line 4594
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 4 /* mdividend */
        start local 4 // java.math.MutableBigInteger mdividend
         1: .line 4596
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 5 /* mq */
        start local 5 // java.math.MutableBigInteger mq
         2: .line 4598
            aload 4 /* mdividend */
            lload 1 /* ldivisor */
            aload 5 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(JLjava/math/MutableBigInteger;)J
            lstore 6 /* r */
        start local 6 // long r
         3: .line 4600
            lload 6 /* r */
            lconst_0
            lcmp
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 8 /* isRemainderZero */
        start local 8 // boolean isRemainderZero
         6: .line 4602
            lload 1 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            ineg
            goto 8
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
      StackMap locals:
      StackMap stack: int
         8: istore 9 /* qsign */
        start local 9 // int qsign
         9: .line 4603
            iload 8 /* isRemainderZero */
            ifne 12
        10: .line 4604
            lload 1 /* ldivisor */
            iload 3 /* roundingMode */
            iload 9 /* qsign */
            aload 5 /* mq */
            lload 6 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 12
        11: .line 4605
            aload 5 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        12: .line 4608
      StackMap locals: int
      StackMap stack:
            aload 5 /* mq */
            iload 9 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            areturn
        end local 9 // int qsign
        end local 8 // boolean isRemainderZero
        end local 6 // long r
        end local 5 // java.math.MutableBigInteger mq
        end local 4 // java.math.MutableBigInteger mdividend
        end local 3 // int roundingMode
        end local 1 // long ldivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0        bdividend  Ljava/math/BigInteger;
            0   13     1         ldivisor  J
            0   13     3     roundingMode  I
            1   13     4        mdividend  Ljava/math/MutableBigInteger;
            2   13     5               mq  Ljava/math/MutableBigInteger;
            3   13     6                r  J
            6   13     8  isRemainderZero  Z
            9   13     9            qsign  I
    MethodParameters:
              Name  Flags
      bdividend     
      ldivisor      
      roundingMode  

  private static java.math.BigDecimal divideAndRound(java.math.BigInteger, long, int, int, int);
    descriptor: (Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=15, args_size=5
        start local 0 // java.math.BigInteger bdividend
        start local 1 // long ldivisor
        start local 3 // int scale
        start local 4 // int roundingMode
        start local 5 // int preferredScale
         0: .line 4623
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 6 /* mdividend */
        start local 6 // java.math.MutableBigInteger mdividend
         1: .line 4625
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 7 /* mq */
        start local 7 // java.math.MutableBigInteger mq
         2: .line 4627
            aload 6 /* mdividend */
            lload 1 /* ldivisor */
            aload 7 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(JLjava/math/MutableBigInteger;)J
            lstore 8 /* r */
        start local 8 // long r
         3: .line 4629
            lload 8 /* r */
            lconst_0
            lcmp
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.math.MutableBigInteger java.math.MutableBigInteger long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 10 /* isRemainderZero */
        start local 10 // boolean isRemainderZero
         6: .line 4631
            lload 1 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            ineg
            goto 8
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
      StackMap locals:
      StackMap stack: int
         8: istore 11 /* qsign */
        start local 11 // int qsign
         9: .line 4632
            iload 10 /* isRemainderZero */
            ifne 13
        10: .line 4633
            lload 1 /* ldivisor */
            iload 4 /* roundingMode */
            iload 11 /* qsign */
            aload 7 /* mq */
            lload 8 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 12
        11: .line 4634
            aload 7 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        12: .line 4636
      StackMap locals: int
      StackMap stack:
            aload 7 /* mq */
            iload 11 /* qsign */
            iload 3 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        13: .line 4638
      StackMap locals:
      StackMap stack:
            iload 5 /* preferredScale */
            iload 3 /* scale */
            if_icmpeq 19
        14: .line 4639
            aload 7 /* mq */
            iload 11 /* qsign */
            invokevirtual java.math.MutableBigInteger.toCompactValue:(I)J
            lstore 12 /* compactVal */
        start local 12 // long compactVal
        15: .line 4640
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        16: .line 4641
            lload 12 /* compactVal */
            iload 3 /* scale */
            iload 5 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        17: .line 4643
      StackMap locals: long
      StackMap stack:
            aload 7 /* mq */
            iload 11 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 14 /* intVal */
        start local 14 // java.math.BigInteger intVal
        18: .line 4644
            aload 14 /* intVal */
            iload 3 /* scale */
            iload 5 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 14 // java.math.BigInteger intVal
        end local 12 // long compactVal
        19: .line 4646
      StackMap locals:
      StackMap stack:
            aload 7 /* mq */
            iload 11 /* qsign */
            iload 3 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 11 // int qsign
        end local 10 // boolean isRemainderZero
        end local 8 // long r
        end local 7 // java.math.MutableBigInteger mq
        end local 6 // java.math.MutableBigInteger mdividend
        end local 5 // int preferredScale
        end local 4 // int roundingMode
        end local 3 // int scale
        end local 1 // long ldivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0        bdividend  Ljava/math/BigInteger;
            0   20     1         ldivisor  J
            0   20     3            scale  I
            0   20     4     roundingMode  I
            0   20     5   preferredScale  I
            1   20     6        mdividend  Ljava/math/MutableBigInteger;
            2   20     7               mq  Ljava/math/MutableBigInteger;
            3   20     8                r  J
            6   20    10  isRemainderZero  Z
            9   20    11            qsign  I
           15   19    12       compactVal  J
           18   19    14           intVal  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      bdividend       
      ldivisor        
      scale           
      roundingMode    
      preferredScale  

  private static boolean needIncrement(long, int, int, java.math.MutableBigInteger, long);
    descriptor: (JIILjava/math/MutableBigInteger;J)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // long ldivisor
        start local 2 // int roundingMode
        start local 3 // int qsign
        start local 4 // java.math.MutableBigInteger mq
        start local 5 // long r
         0: .line 4656
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 5 /* r */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4659
      StackMap locals:
      StackMap stack:
            lload 5 /* r */
            ldc -4611686018427387904
            lcmp
            ifle 2
            lload 5 /* r */
            ldc 4611686018427387903
            lcmp
            ifle 4
         2: .line 4660
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* cmpFracHalf */
        start local 7 // int cmpFracHalf
         3: .line 4661
            goto 5
        end local 7 // int cmpFracHalf
         4: .line 4662
      StackMap locals:
      StackMap stack:
            ldc 2
            lload 5 /* r */
            lmul
            lload 0 /* ldivisor */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 7 /* cmpFracHalf */
        start local 7 // int cmpFracHalf
         5: .line 4665
      StackMap locals: int
      StackMap stack:
            iload 2 /* roundingMode */
            iload 3 /* qsign */
            iload 7 /* cmpFracHalf */
            aload 4 /* mq */
            invokevirtual java.math.MutableBigInteger.isOdd:()Z
            invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 7 // int cmpFracHalf
        end local 5 // long r
        end local 4 // java.math.MutableBigInteger mq
        end local 3 // int qsign
        end local 2 // int roundingMode
        end local 0 // long ldivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0      ldivisor  J
            0    6     2  roundingMode  I
            0    6     3         qsign  I
            0    6     4            mq  Ljava/math/MutableBigInteger;
            0    6     5             r  J
            3    4     7   cmpFracHalf  I
            5    6     7   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      ldivisor      
      roundingMode  
      qsign         
      mq            
      r             

  private static java.math.BigInteger divideAndRound(java.math.BigInteger, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.math.BigInteger bdividend
        start local 1 // java.math.BigInteger bdivisor
        start local 2 // int roundingMode
         0: .line 4676
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 5 /* mdividend */
        start local 5 // java.math.MutableBigInteger mdividend
         1: .line 4677
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 6 /* mq */
        start local 6 // java.math.MutableBigInteger mq
         2: .line 4678
            new java.math.MutableBigInteger
            dup
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 7 /* mdivisor */
        start local 7 // java.math.MutableBigInteger mdivisor
         3: .line 4679
            aload 5 /* mdividend */
            aload 7 /* mdivisor */
            aload 6 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
            astore 8 /* mr */
        start local 8 // java.math.MutableBigInteger mr
         4: .line 4680
            aload 8 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            istore 3 /* isRemainderZero */
        start local 3 // boolean isRemainderZero
         5: .line 4681
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.signum:I
            if_icmpeq 6
            iconst_m1
            goto 7
      StackMap locals: java.math.BigInteger java.math.BigInteger int int top java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* qsign */
        start local 4 // int qsign
         8: .line 4682
            iload 3 /* isRemainderZero */
            ifne 11
         9: .line 4683
            aload 7 /* mdivisor */
            iload 2 /* roundingMode */
            iload 4 /* qsign */
            aload 6 /* mq */
            aload 8 /* mr */
            invokestatic java.math.BigDecimal.needIncrement:(Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
            ifeq 11
        10: .line 4684
            aload 6 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        11: .line 4687
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 6 /* mq */
            iload 4 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            areturn
        end local 8 // java.math.MutableBigInteger mr
        end local 7 // java.math.MutableBigInteger mdivisor
        end local 6 // java.math.MutableBigInteger mq
        end local 5 // java.math.MutableBigInteger mdividend
        end local 4 // int qsign
        end local 3 // boolean isRemainderZero
        end local 2 // int roundingMode
        end local 1 // java.math.BigInteger bdivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0        bdividend  Ljava/math/BigInteger;
            0   12     1         bdivisor  Ljava/math/BigInteger;
            0   12     2     roundingMode  I
            5   12     3  isRemainderZero  Z
            8   12     4            qsign  I
            1   12     5        mdividend  Ljava/math/MutableBigInteger;
            2   12     6               mq  Ljava/math/MutableBigInteger;
            3   12     7         mdivisor  Ljava/math/MutableBigInteger;
            4   12     8               mr  Ljava/math/MutableBigInteger;
    MethodParameters:
              Name  Flags
      bdividend     
      bdivisor      
      roundingMode  

  private static java.math.BigDecimal divideAndRound(java.math.BigInteger, java.math.BigInteger, int, int, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // java.math.BigInteger bdividend
        start local 1 // java.math.BigInteger bdivisor
        start local 2 // int scale
        start local 3 // int roundingMode
        start local 4 // int preferredScale
         0: .line 4704
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 7 /* mdividend */
        start local 7 // java.math.MutableBigInteger mdividend
         1: .line 4705
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 8 /* mq */
        start local 8 // java.math.MutableBigInteger mq
         2: .line 4706
            new java.math.MutableBigInteger
            dup
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 9 /* mdivisor */
        start local 9 // java.math.MutableBigInteger mdivisor
         3: .line 4707
            aload 7 /* mdividend */
            aload 9 /* mdivisor */
            aload 8 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
            astore 10 /* mr */
        start local 10 // java.math.MutableBigInteger mr
         4: .line 4708
            aload 10 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            istore 5 /* isRemainderZero */
        start local 5 // boolean isRemainderZero
         5: .line 4709
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.signum:I
            if_icmpeq 6
            iconst_m1
            goto 7
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int int top java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* qsign */
        start local 6 // int qsign
         8: .line 4710
            iload 5 /* isRemainderZero */
            ifne 12
         9: .line 4711
            aload 9 /* mdivisor */
            iload 3 /* roundingMode */
            iload 6 /* qsign */
            aload 8 /* mq */
            aload 10 /* mr */
            invokestatic java.math.BigDecimal.needIncrement:(Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
            ifeq 11
        10: .line 4712
            aload 8 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        11: .line 4714
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int int int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            iload 2 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        12: .line 4716
      StackMap locals:
      StackMap stack:
            iload 4 /* preferredScale */
            iload 2 /* scale */
            if_icmpeq 18
        13: .line 4717
            aload 8 /* mq */
            iload 6 /* qsign */
            invokevirtual java.math.MutableBigInteger.toCompactValue:(I)J
            lstore 11 /* compactVal */
        start local 11 // long compactVal
        14: .line 4718
            lload 11 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 16
        15: .line 4719
            lload 11 /* compactVal */
            iload 2 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        16: .line 4721
      StackMap locals: long
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 13 /* intVal */
        start local 13 // java.math.BigInteger intVal
        17: .line 4722
            aload 13 /* intVal */
            iload 2 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 13 // java.math.BigInteger intVal
        end local 11 // long compactVal
        18: .line 4724
      StackMap locals:
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            iload 2 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.MutableBigInteger mr
        end local 9 // java.math.MutableBigInteger mdivisor
        end local 8 // java.math.MutableBigInteger mq
        end local 7 // java.math.MutableBigInteger mdividend
        end local 6 // int qsign
        end local 5 // boolean isRemainderZero
        end local 4 // int preferredScale
        end local 3 // int roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigInteger bdivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0        bdividend  Ljava/math/BigInteger;
            0   19     1         bdivisor  Ljava/math/BigInteger;
            0   19     2            scale  I
            0   19     3     roundingMode  I
            0   19     4   preferredScale  I
            5   19     5  isRemainderZero  Z
            8   19     6            qsign  I
            1   19     7        mdividend  Ljava/math/MutableBigInteger;
            2   19     8               mq  Ljava/math/MutableBigInteger;
            3   19     9         mdivisor  Ljava/math/MutableBigInteger;
            4   19    10               mr  Ljava/math/MutableBigInteger;
           14   18    11       compactVal  J
           17   18    13           intVal  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      bdividend       
      bdivisor        
      scale           
      roundingMode    
      preferredScale  

  private static boolean needIncrement(java.math.MutableBigInteger, int, int, java.math.MutableBigInteger, java.math.MutableBigInteger);
    descriptor: (Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // java.math.MutableBigInteger mdivisor
        start local 1 // int roundingMode
        start local 2 // int qsign
        start local 3 // java.math.MutableBigInteger mq
        start local 4 // java.math.MutableBigInteger mr
         0: .line 4734
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            aload 4 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4735
      StackMap locals:
      StackMap stack:
            aload 4 /* mr */
            aload 0 /* mdivisor */
            invokevirtual java.math.MutableBigInteger.compareHalf:(Ljava/math/MutableBigInteger;)I
            istore 5 /* cmpFracHalf */
        start local 5 // int cmpFracHalf
         2: .line 4736
            iload 1 /* roundingMode */
            iload 2 /* qsign */
            iload 5 /* cmpFracHalf */
            aload 3 /* mq */
            invokevirtual java.math.MutableBigInteger.isOdd:()Z
            invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 5 // int cmpFracHalf
        end local 4 // java.math.MutableBigInteger mr
        end local 3 // java.math.MutableBigInteger mq
        end local 2 // int qsign
        end local 1 // int roundingMode
        end local 0 // java.math.MutableBigInteger mdivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0      mdivisor  Ljava/math/MutableBigInteger;
            0    3     1  roundingMode  I
            0    3     2         qsign  I
            0    3     3            mq  Ljava/math/MutableBigInteger;
            0    3     4            mr  Ljava/math/MutableBigInteger;
            2    3     5   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      mdivisor      
      roundingMode  
      qsign         
      mq            
      mr            

  private static java.math.BigDecimal createAndStripZerosToMatchScale(java.math.BigInteger, int, long);
    descriptor: (Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // long preferredScale
         0: .line 4750
            goto 8
         1: .line 4752
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 3
         2: .line 4753
            goto 11
         3: .line 4754
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.divideAndRemainder:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
            astore 4 /* qr */
        start local 4 // java.math.BigInteger[] qr
         4: .line 4755
            aload 4 /* qr */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 6
         5: .line 4756
            goto 11
         6: .line 4757
      StackMap locals: java.math.BigInteger[]
      StackMap stack:
            aload 4 /* qr */
            iconst_0
            aaload
            astore 0 /* intVal */
         7: .line 4758
            aload 0 /* intVal */
            iload 1 /* scale */
            i2l
            lconst_1
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 1 /* scale */
        end local 4 // java.math.BigInteger[] qr
         8: .line 4750
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            iflt 11
         9: .line 4751
            iload 1 /* scale */
            i2l
            lload 2 /* preferredScale */
        10: .line 4750
            lcmp
            ifgt 1
        11: .line 4760
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iload 1 /* scale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // long preferredScale
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0          intVal  Ljava/math/BigInteger;
            0   12     1           scale  I
            0   12     2  preferredScale  J
            4    8     4              qr  [Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      intVal          
      scale           
      preferredScale  

  private static java.math.BigDecimal createAndStripZerosToMatchScale(long, int, long);
    descriptor: (JIJ)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // long compactVal
        start local 2 // int scale
        start local 3 // long preferredScale
         0: .line 4773
            goto 8
         1: .line 4774
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 3
         2: .line 4775
            goto 9
         3: .line 4776
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            ldc 10
            lrem
            lstore 5 /* r */
        start local 5 // long r
         4: .line 4777
            lload 5 /* r */
            lconst_0
            lcmp
            ifeq 6
         5: .line 4778
            goto 9
         6: .line 4779
      StackMap locals: long
      StackMap stack:
            lload 0 /* compactVal */
            ldc 10
            ldiv
            lstore 0 /* compactVal */
         7: .line 4780
            lload 0 /* compactVal */
            iload 2 /* scale */
            i2l
            lconst_1
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 2 /* scale */
        end local 5 // long r
         8: .line 4773
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            invokestatic java.lang.Math.abs:(J)J
            ldc 10
            lcmp
            iflt 9
            iload 2 /* scale */
            i2l
            lload 3 /* preferredScale */
            lcmp
            ifgt 1
         9: .line 4782
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 3 // long preferredScale
        end local 2 // int scale
        end local 0 // long compactVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0      compactVal  J
            0   10     2           scale  I
            0   10     3  preferredScale  J
            4    8     5               r  J
    MethodParameters:
                Name  Flags
      compactVal      
      scale           
      preferredScale  

  private static java.math.BigDecimal stripZerosToMatchScale(java.math.BigInteger, long, int, int);
    descriptor: (Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.math.BigInteger intVal
        start local 1 // long intCompact
        start local 3 // int scale
        start local 4 // int preferredScale
         0: .line 4786
            lload 1 /* intCompact */
            ldc -9223372036854775808
            lcmp
            ifeq 2
         1: .line 4787
            lload 1 /* intCompact */
            iload 3 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
         2: .line 4789
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            ifnonnull 3
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* intVal */
         4: .line 4790
      StackMap locals:
      StackMap stack: java.math.BigInteger
            iload 3 /* scale */
            iload 4 /* preferredScale */
            i2l
         5: .line 4789
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 4 // int preferredScale
        end local 3 // int scale
        end local 1 // long intCompact
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0          intVal  Ljava/math/BigInteger;
            0    6     1      intCompact  J
            0    6     3           scale  I
            0    6     4  preferredScale  I
    MethodParameters:
                Name  Flags
      intVal          
      intCompact      
      scale           
      preferredScale  

  private static long add(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long xs
        start local 2 // long ys
         0: .line 4798
            lload 0 /* xs */
            lload 2 /* ys */
            ladd
            lstore 4 /* sum */
        start local 4 // long sum
         1: .line 4801
            lload 4 /* sum */
            lload 0 /* xs */
            lxor
            lload 4 /* sum */
            lload 2 /* ys */
            lxor
            land
            lconst_0
            lcmp
            iflt 3
         2: .line 4802
            lload 4 /* sum */
            lreturn
         3: .line 4804
      StackMap locals: long
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 4 // long sum
        end local 2 // long ys
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    xs  J
            0    4     2    ys  J
            1    4     4   sum  J
    MethodParameters:
      Name  Flags
      xs    
      ys    

  private static java.math.BigDecimal add(long, long, int);
    descriptor: (JJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // long xs
        start local 2 // long ys
        start local 4 // int scale
         0: .line 4808
            lload 0 /* xs */
            lload 2 /* ys */
            invokestatic java.math.BigDecimal.add:(JJ)J
            lstore 5 /* sum */
        start local 5 // long sum
         1: .line 4809
            lload 5 /* sum */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 4810
            lload 5 /* sum */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 4811
      StackMap locals: long
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* ys */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            iload 4 /* scale */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
            areturn
        end local 5 // long sum
        end local 4 // int scale
        end local 2 // long ys
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0     xs  J
            0    4     2     ys  J
            0    4     4  scale  I
            1    4     5    sum  J
    MethodParameters:
       Name  Flags
      xs     
      ys     
      scale  

  private static java.math.BigDecimal add(long, int, long, int);
    descriptor: (JIJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // long xs
        start local 2 // int scale1
        start local 3 // long ys
        start local 5 // int scale2
         0: .line 4815
            iload 2 /* scale1 */
            i2l
            iload 5 /* scale2 */
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         1: .line 4816
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifne 3
         2: .line 4817
            lload 0 /* xs */
            lload 3 /* ys */
            iload 2 /* scale1 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
         3: .line 4818
      StackMap locals: long
      StackMap stack:
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 13
         4: .line 4819
            lload 0 /* xs */
            lload 6 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* raise */
        start local 8 // int raise
         5: .line 4820
            lload 0 /* xs */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 9 /* scaledX */
        start local 9 // long scaledX
         6: .line 4821
            lload 9 /* scaledX */
            ldc -9223372036854775808
            lcmp
            ifeq 8
         7: .line 4822
            lload 9 /* scaledX */
            lload 3 /* ys */
            iload 5 /* scale2 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
         8: .line 4824
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            lload 3 /* ys */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 11 /* bigsum */
        start local 11 // java.math.BigInteger bigsum
         9: .line 4825
            lload 0 /* xs */
            lload 3 /* ys */
            lxor
            lconst_0
            lcmp
            iflt 11
        10: .line 4826
            new java.math.BigDecimal
            dup
            aload 11 /* bigsum */
            ldc -9223372036854775808
            iload 5 /* scale2 */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 12
        11: .line 4827
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 11 /* bigsum */
            iload 5 /* scale2 */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        12: .line 4825
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 11 // java.math.BigInteger bigsum
        end local 9 // long scaledX
        end local 8 // int raise
        13: .line 4830
      StackMap locals:
      StackMap stack:
            lload 3 /* ys */
            lload 6 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* raise */
        start local 8 // int raise
        14: .line 4831
            lload 3 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 9 /* scaledY */
        start local 9 // long scaledY
        15: .line 4832
            lload 9 /* scaledY */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        16: .line 4833
            lload 0 /* xs */
            lload 9 /* scaledY */
            iload 2 /* scale1 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
        17: .line 4835
      StackMap locals: int long
      StackMap stack:
            lload 3 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            lload 0 /* xs */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 11 /* bigsum */
        start local 11 // java.math.BigInteger bigsum
        18: .line 4836
            lload 0 /* xs */
            lload 3 /* ys */
            lxor
            lconst_0
            lcmp
            iflt 20
        19: .line 4837
            new java.math.BigDecimal
            dup
            aload 11 /* bigsum */
            ldc -9223372036854775808
            iload 2 /* scale1 */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 21
        20: .line 4838
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 11 /* bigsum */
            iload 2 /* scale1 */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        21: .line 4836
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 11 // java.math.BigInteger bigsum
        end local 9 // long scaledY
        end local 8 // int raise
        end local 6 // long sdiff
        end local 5 // int scale2
        end local 3 // long ys
        end local 2 // int scale1
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0       xs  J
            0   22     2   scale1  I
            0   22     3       ys  J
            0   22     5   scale2  I
            1   22     6    sdiff  J
            5   13     8    raise  I
            6   13     9  scaledX  J
            9   13    11   bigsum  Ljava/math/BigInteger;
           14   22     8    raise  I
           15   22     9  scaledY  J
           18   22    11   bigsum  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      xs      final
      scale1  
      ys      final
      scale2  

  private static java.math.BigDecimal add(long, int, java.math.BigInteger, int);
    descriptor: (JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=4
        start local 0 // long xs
        start local 2 // int scale1
        start local 3 // java.math.BigInteger snd
        start local 4 // int scale2
         0: .line 4844
            iload 2 /* scale1 */
            istore 5 /* rscale */
        start local 5 // int rscale
         1: .line 4845
            iload 5 /* rscale */
            i2l
            iload 4 /* scale2 */
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         2: .line 4846
            lload 0 /* xs */
            invokestatic java.lang.Long.signum:(J)I
            aload 3 /* snd */
            getfield java.math.BigInteger.signum:I
            if_icmpne 3
            iconst_1
            goto 4
      StackMap locals: int long
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 8 /* sameSigns */
        start local 8 // boolean sameSigns
         5: .line 4848
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 14
         6: .line 4849
            lload 0 /* xs */
            lload 6 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 10 /* raise */
        start local 10 // int raise
         7: .line 4850
            iload 4 /* scale2 */
            istore 5 /* rscale */
         8: .line 4851
            lload 0 /* xs */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 11 /* scaledX */
        start local 11 // long scaledX
         9: .line 4852
            lload 11 /* scaledX */
            ldc -9223372036854775808
            lcmp
            ifne 12
        10: .line 4853
            aload 3 /* snd */
            lload 0 /* xs */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* sum */
        start local 9 // java.math.BigInteger sum
        11: .line 4854
            goto 17
        end local 9 // java.math.BigInteger sum
        12: .line 4855
      StackMap locals: long int java.math.BigInteger int int long int top int long
      StackMap stack:
            aload 3 /* snd */
            lload 11 /* scaledX */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 9 /* sum */
        end local 11 // long scaledX
        end local 10 // int raise
        start local 9 // java.math.BigInteger sum
        13: .line 4857
            goto 17
        end local 9 // java.math.BigInteger sum
        14: .line 4858
      StackMap locals: long int java.math.BigInteger int int long int
      StackMap stack:
            aload 3 /* snd */
            lload 6 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 10 /* raise */
        start local 10 // int raise
        15: .line 4859
            aload 3 /* snd */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 3 /* snd */
        16: .line 4860
            aload 3 /* snd */
            lload 0 /* xs */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 9 /* sum */
        end local 10 // int raise
        start local 9 // java.math.BigInteger sum
        17: .line 4862
      StackMap locals: java.math.BigInteger
      StackMap stack:
            iload 8 /* sameSigns */
            ifeq 19
        18: .line 4863
            new java.math.BigDecimal
            dup
            aload 9 /* sum */
            ldc -9223372036854775808
            iload 5 /* rscale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 20
        19: .line 4864
      StackMap locals:
      StackMap stack:
            aload 9 /* sum */
            iload 5 /* rscale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        20: .line 4862
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 9 // java.math.BigInteger sum
        end local 8 // boolean sameSigns
        end local 6 // long sdiff
        end local 5 // int rscale
        end local 4 // int scale2
        end local 3 // java.math.BigInteger snd
        end local 2 // int scale1
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0         xs  J
            0   21     2     scale1  I
            0   21     3        snd  Ljava/math/BigInteger;
            0   21     4     scale2  I
            1   21     5     rscale  I
            2   21     6      sdiff  J
            5   21     8  sameSigns  Z
           11   12     9        sum  Ljava/math/BigInteger;
           13   14     9        sum  Ljava/math/BigInteger;
           17   21     9        sum  Ljava/math/BigInteger;
            7   13    10      raise  I
            9   13    11    scaledX  J
           15   17    10      raise  I
    MethodParameters:
        Name  Flags
      xs      final
      scale1  
      snd     
      scale2  

  private static java.math.BigDecimal add(java.math.BigInteger, int, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // java.math.BigInteger fst
        start local 1 // int scale1
        start local 2 // java.math.BigInteger snd
        start local 3 // int scale2
         0: .line 4868
            iload 1 /* scale1 */
            istore 4 /* rscale */
        start local 4 // int rscale
         1: .line 4869
            iload 4 /* rscale */
            i2l
            iload 3 /* scale2 */
            i2l
            lsub
            lstore 5 /* sdiff */
        start local 5 // long sdiff
         2: .line 4870
            lload 5 /* sdiff */
            lconst_0
            lcmp
            ifeq 10
         3: .line 4871
            lload 5 /* sdiff */
            lconst_0
            lcmp
            ifge 8
         4: .line 4872
            aload 0 /* fst */
            lload 5 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* raise */
        start local 7 // int raise
         5: .line 4873
            iload 3 /* scale2 */
            istore 4 /* rscale */
         6: .line 4874
            aload 0 /* fst */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 0 /* fst */
        end local 7 // int raise
         7: .line 4875
            goto 10
         8: .line 4876
      StackMap locals: int long
      StackMap stack:
            aload 2 /* snd */
            lload 5 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* raise */
        start local 7 // int raise
         9: .line 4877
            aload 2 /* snd */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 2 /* snd */
        end local 7 // int raise
        10: .line 4880
      StackMap locals:
      StackMap stack:
            aload 0 /* fst */
            aload 2 /* snd */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* sum */
        start local 7 // java.math.BigInteger sum
        11: .line 4881
            aload 0 /* fst */
            getfield java.math.BigInteger.signum:I
            aload 2 /* snd */
            getfield java.math.BigInteger.signum:I
            if_icmpne 13
        12: .line 4882
            new java.math.BigDecimal
            dup
            aload 7 /* sum */
            ldc -9223372036854775808
            iload 4 /* rscale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 14
        13: .line 4883
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 7 /* sum */
            iload 4 /* rscale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        14: .line 4881
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 7 // java.math.BigInteger sum
        end local 5 // long sdiff
        end local 4 // int rscale
        end local 3 // int scale2
        end local 2 // java.math.BigInteger snd
        end local 1 // int scale1
        end local 0 // java.math.BigInteger fst
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0     fst  Ljava/math/BigInteger;
            0   15     1  scale1  I
            0   15     2     snd  Ljava/math/BigInteger;
            0   15     3  scale2  I
            1   15     4  rscale  I
            2   15     5   sdiff  J
            5    7     7   raise  I
            9   10     7   raise  I
           11   15     7     sum  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      fst     
      scale1  
      snd     
      scale2  

  private static java.math.BigInteger bigMultiplyPowerTen(long, int);
    descriptor: (JI)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long value
        start local 2 // int n
         0: .line 4887
            iload 2 /* n */
            ifgt 2
         1: .line 4888
            lload 0 /* value */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         2: .line 4889
      StackMap locals:
      StackMap stack:
            iload 2 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            lload 0 /* value */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
        end local 2 // int n
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  J
            0    3     2      n  I
    MethodParameters:
       Name  Flags
      value  
      n      

  private static java.math.BigInteger bigMultiplyPowerTen(java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigInteger value
        start local 1 // int n
         0: .line 4893
            iload 1 /* n */
            ifgt 2
         1: .line 4894
            aload 0 /* value */
            areturn
         2: .line 4895
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 4
         3: .line 4896
            aload 0 /* value */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 1 /* n */
            laload
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
         4: .line 4898
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 1 // int n
        end local 0 // java.math.BigInteger value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  value  Ljava/math/BigInteger;
            0    5     1      n  I
    MethodParameters:
       Name  Flags
      value  
      n      

  private static java.math.BigDecimal divideSmallFastPath(long, int, long, int, long, java.math.MathContext);
    descriptor: (JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=22, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
        start local 6 // long preferredScale
        start local 8 // java.math.MathContext mc
         0: .line 4911
            aload 8 /* mc */
            getfield java.math.MathContext.precision:I
            istore 9 /* mcp */
        start local 9 // int mcp
         1: .line 4912
            aload 8 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 10 /* roundingMode */
        start local 10 // int roundingMode
         2: .line 4914
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 4
            iload 2 /* xscale */
            iload 5 /* yscale */
            if_icmpgt 3
            iload 5 /* yscale */
            bipush 18
            if_icmpge 3
            iload 9 /* mcp */
            bipush 18
            if_icmplt 4
      StackMap locals: int int
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 4915
      StackMap locals:
      StackMap stack:
            iload 5 /* yscale */
            iload 2 /* xscale */
            isub
            istore 11 /* xraise */
        start local 11 // int xraise
         5: .line 4916
            iload 11 /* xraise */
            ifne 6
            lload 0 /* xs */
            goto 7
         6: .line 4917
      StackMap locals: int
      StackMap stack:
            lload 0 /* xs */
            iload 11 /* xraise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
         7: .line 4916
      StackMap locals:
      StackMap stack: long
            lstore 12 /* scaledX */
        start local 12 // long scaledX
         8: .line 4920
            lload 12 /* scaledX */
            lload 3 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 15 /* cmp */
        start local 15 // int cmp
         9: .line 4921
            iload 15 /* cmp */
            ifle 41
        10: .line 4922
            iinc 5 /* yscale */ -1
        11: .line 4923
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 16 /* scl */
        start local 16 // int scl
        12: .line 4924
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 27
        13: .line 4926
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 17 /* raise */
        start local 17 // int raise
        14: .line 4928
            lload 0 /* xs */
            iload 17 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 18 /* scaledXs */
        start local 18 // long scaledXs
        15: ldc -9223372036854775808
            lcmp
            ifne 25
        16: .line 4929
            aconst_null
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        17: .line 4930
            iload 9 /* mcp */
            iconst_1
            isub
            iflt 19
            iload 9 /* mcp */
            iconst_1
            isub
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 19
        18: .line 4931
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* mcp */
            iconst_1
            isub
            laload
            lload 12 /* scaledX */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        19: .line 4933
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int int int long
      StackMap stack:
            aload 14 /* quotient */
            ifnonnull 63
        20: .line 4934
            lload 12 /* scaledX */
            iload 9 /* mcp */
            iconst_1
            isub
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 20 /* rb */
        start local 20 // java.math.BigInteger rb
        21: .line 4935
            aload 20 /* rb */
            lload 3 /* ys */
        22: .line 4936
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        23: .line 4935
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 20 // java.math.BigInteger rb
        24: .line 4938
            goto 63
        end local 14 // java.math.BigDecimal quotient
        25: .line 4939
      StackMap locals: long int long int long java.math.MathContext int int int long top int int int long
      StackMap stack:
            lload 18 /* scaledXs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 18 // long scaledXs
        end local 17 // int raise
        start local 14 // java.math.BigDecimal quotient
        26: .line 4941
            goto 63
        end local 14 // java.math.BigDecimal quotient
        27: .line 4942
      StackMap locals:
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 9 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 17 /* newScale */
        start local 17 // int newScale
        28: .line 4944
            iload 17 /* newScale */
            iload 5 /* yscale */
            if_icmpne 31
        29: .line 4945
            lload 0 /* xs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        30: .line 4946
            goto 63
        end local 14 // java.math.BigDecimal quotient
        31: .line 4947
      StackMap locals: int
      StackMap stack:
            iload 17 /* newScale */
            i2l
            iload 5 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 18 /* raise */
        start local 18 // int raise
        32: .line 4949
            lload 3 /* ys */
            iload 18 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 19 /* scaledYs */
        start local 19 // long scaledYs
        33: ldc -9223372036854775808
            lcmp
            ifne 39
        34: .line 4950
            lload 3 /* ys */
            iload 18 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 21 /* rb */
        start local 21 // java.math.BigInteger rb
        35: .line 4951
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
        36: .line 4952
            aload 21 /* rb */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        37: .line 4951
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 21 // java.math.BigInteger rb
        start local 14 // java.math.BigDecimal quotient
        38: .line 4953
            goto 63
        end local 14 // java.math.BigDecimal quotient
        39: .line 4954
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            lload 19 /* scaledYs */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 19 // long scaledYs
        end local 18 // int raise
        end local 17 // int newScale
        end local 16 // int scl
        start local 14 // java.math.BigDecimal quotient
        40: .line 4958
            goto 63
        end local 14 // java.math.BigDecimal quotient
        41: .line 4961
      StackMap locals: long int long int long java.math.MathContext int int int long top int
      StackMap stack:
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 16 /* scl */
        start local 16 // int scl
        42: .line 4962
            iload 15 /* cmp */
            ifne 51
        43: .line 4964
            lload 12 /* scaledX */
            lconst_0
            lcmp
            ifge 44
            iconst_1
            goto 45
      StackMap locals: int
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: lload 3 /* ys */
            lconst_0
            lcmp
            ifge 46
            iconst_1
            goto 47
      StackMap locals:
      StackMap stack: int
        46: iconst_0
      StackMap locals: long int long int long java.math.MathContext int int int long top int int
      StackMap stack: int int
        47: if_icmpne 48
            iconst_1
            goto 49
      StackMap locals:
      StackMap stack:
        48: iconst_m1
      StackMap locals:
      StackMap stack: int
        49: iload 9 /* mcp */
            iload 16 /* scl */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.roundedTenPower:(IIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        50: .line 4965
            goto 63
        end local 14 // java.math.BigDecimal quotient
        51: .line 4968
      StackMap locals:
      StackMap stack:
            lload 12 /* scaledX */
            iload 9 /* mcp */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 17 /* scaledXs */
        start local 17 // long scaledXs
        52: ldc -9223372036854775808
            lcmp
            ifne 62
        53: .line 4969
            aconst_null
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        54: .line 4970
            iload 9 /* mcp */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 56
        55: .line 4971
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* mcp */
            laload
            lload 12 /* scaledX */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        56: .line 4973
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int int long
      StackMap stack:
            aload 14 /* quotient */
            ifnonnull 63
        57: .line 4974
            lload 12 /* scaledX */
            iload 9 /* mcp */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 19 /* rb */
        start local 19 // java.math.BigInteger rb
        58: .line 4975
            aload 19 /* rb */
            lload 3 /* ys */
        59: .line 4976
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        60: .line 4975
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 19 // java.math.BigInteger rb
        61: .line 4978
            goto 63
        end local 14 // java.math.BigDecimal quotient
        62: .line 4979
      StackMap locals: long int long int long java.math.MathContext int int int long top int int long
      StackMap stack:
            lload 17 /* scaledXs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 17 // long scaledXs
        end local 16 // int scl
        start local 14 // java.math.BigDecimal quotient
        63: .line 4984
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int
      StackMap stack:
            aload 14 /* quotient */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 15 // int cmp
        end local 14 // java.math.BigDecimal quotient
        end local 12 // long scaledX
        end local 11 // int xraise
        end local 10 // int roundingMode
        end local 9 // int mcp
        end local 8 // java.math.MathContext mc
        end local 6 // long preferredScale
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   64     0              xs  J
            0   64     2          xscale  I
            0   64     3              ys  J
            0   64     5          yscale  I
            0   64     6  preferredScale  J
            0   64     8              mc  Ljava/math/MathContext;
            1   64     9             mcp  I
            2   64    10    roundingMode  I
            5   64    11          xraise  I
            8   64    12         scaledX  J
           17   25    14        quotient  Ljava/math/BigDecimal;
           26   27    14        quotient  Ljava/math/BigDecimal;
           30   31    14        quotient  Ljava/math/BigDecimal;
           38   39    14        quotient  Ljava/math/BigDecimal;
           40   41    14        quotient  Ljava/math/BigDecimal;
           50   51    14        quotient  Ljava/math/BigDecimal;
           54   62    14        quotient  Ljava/math/BigDecimal;
           63   64    14        quotient  Ljava/math/BigDecimal;
            9   64    15             cmp  I
           12   40    16             scl  I
           14   26    17           raise  I
           15   26    18        scaledXs  J
           21   24    20              rb  Ljava/math/BigInteger;
           28   40    17        newScale  I
           32   40    18           raise  I
           33   40    19        scaledYs  J
           35   38    21              rb  Ljava/math/BigInteger;
           42   63    16             scl  I
           52   63    17        scaledXs  J
           58   61    19              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              final
      xscale          
      ys              final
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(long, int, long, int, long, java.math.MathContext);
    descriptor: (JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=18, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
        start local 6 // long preferredScale
        start local 8 // java.math.MathContext mc
         0: .line 4992
            aload 8 /* mc */
            getfield java.math.MathContext.precision:I
            istore 9 /* mcp */
        start local 9 // int mcp
         1: .line 4993
            iload 2 /* xscale */
            iload 5 /* yscale */
            if_icmpgt 3
            iload 5 /* yscale */
            bipush 18
            if_icmpge 3
            iload 9 /* mcp */
            bipush 18
            if_icmpge 3
         2: .line 4994
            lload 0 /* xs */
            iload 2 /* xscale */
            lload 3 /* ys */
            iload 5 /* yscale */
            lload 6 /* preferredScale */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.divideSmallFastPath:(JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         3: .line 4996
      StackMap locals: int
      StackMap stack:
            lload 0 /* xs */
            iload 2 /* xscale */
            lload 3 /* ys */
            iload 5 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JIJI)I
            ifle 5
         4: .line 4997
            iinc 5 /* yscale */ -1
         5: .line 4999
      StackMap locals:
      StackMap stack:
            aload 8 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 10 /* roundingMode */
        start local 10 // int roundingMode
         6: .line 5003
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         7: .line 5005
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 16
         8: .line 5006
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
         9: .line 5008
            lload 0 /* xs */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 14 /* scaledXs */
        start local 14 // long scaledXs
        10: ldc -9223372036854775808
            lcmp
            ifne 14
        11: .line 5009
            lload 0 /* xs */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 16 /* rb */
        start local 16 // java.math.BigInteger rb
        12: .line 5010
            aload 16 /* rb */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 16 // java.math.BigInteger rb
        start local 12 // java.math.BigDecimal quotient
        13: .line 5011
            goto 29
        end local 12 // java.math.BigDecimal quotient
        14: .line 5012
      StackMap locals: long int long int long java.math.MathContext int int int top int long
      StackMap stack:
            lload 14 /* scaledXs */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 14 // long scaledXs
        end local 13 // int raise
        start local 12 // java.math.BigDecimal quotient
        15: .line 5014
            goto 29
        end local 12 // java.math.BigDecimal quotient
        16: .line 5015
      StackMap locals: long int long int long java.math.MathContext int int int
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 9 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* newScale */
        start local 13 // int newScale
        17: .line 5017
            iload 13 /* newScale */
            iload 5 /* yscale */
            if_icmpne 20
        18: .line 5018
            lload 0 /* xs */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        start local 12 // java.math.BigDecimal quotient
        19: .line 5019
            goto 29
        end local 12 // java.math.BigDecimal quotient
        20: .line 5020
      StackMap locals: long int long int long java.math.MathContext int int int top int
      StackMap stack:
            iload 13 /* newScale */
            i2l
            iload 5 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 14 /* raise */
        start local 14 // int raise
        21: .line 5022
            lload 3 /* ys */
            iload 14 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 15 /* scaledYs */
        start local 15 // long scaledYs
        22: ldc -9223372036854775808
            lcmp
            ifne 28
        23: .line 5023
            lload 3 /* ys */
            iload 14 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 17 /* rb */
        start local 17 // java.math.BigInteger rb
        24: .line 5024
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
        25: .line 5025
            aload 17 /* rb */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        26: .line 5024
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 17 // java.math.BigInteger rb
        start local 12 // java.math.BigDecimal quotient
        27: .line 5026
            goto 29
        end local 12 // java.math.BigDecimal quotient
        28: .line 5027
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            lload 15 /* scaledYs */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 15 // long scaledYs
        end local 14 // int raise
        end local 13 // int newScale
        start local 12 // java.math.BigDecimal quotient
        29: .line 5032
      StackMap locals: long int long int long java.math.MathContext int int int java.math.BigDecimal
      StackMap stack:
            aload 12 /* quotient */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 12 // java.math.BigDecimal quotient
        end local 11 // int scl
        end local 10 // int roundingMode
        end local 9 // int mcp
        end local 8 // java.math.MathContext mc
        end local 6 // long preferredScale
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0              xs  J
            0   30     2          xscale  I
            0   30     3              ys  J
            0   30     5          yscale  I
            0   30     6  preferredScale  J
            0   30     8              mc  Ljava/math/MathContext;
            1   30     9             mcp  I
            6   30    10    roundingMode  I
            7   30    11             scl  I
           13   14    12        quotient  Ljava/math/BigDecimal;
           15   16    12        quotient  Ljava/math/BigDecimal;
           19   20    12        quotient  Ljava/math/BigDecimal;
           27   28    12        quotient  Ljava/math/BigDecimal;
           29   30    12        quotient  Ljava/math/BigDecimal;
            9   15    13           raise  I
           10   15    14        scaledXs  J
           12   13    16              rb  Ljava/math/BigInteger;
           17   29    13        newScale  I
           21   29    14           raise  I
           22   29    15        scaledYs  J
           24   27    17              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              final
      xscale          
      ys              final
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(java.math.BigInteger, int, long, int, long, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;IJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=17, args_size=6
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // long ys
        start local 4 // int yscale
        start local 5 // long preferredScale
        start local 7 // java.math.MathContext mc
         0: .line 5041
            lload 2 /* ys */
            iload 4 /* yscale */
            aload 0 /* xs */
            iload 1 /* xscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JILjava/math/BigInteger;I)I
            ineg
            ifle 2
         1: .line 5042
            iinc 4 /* yscale */ -1
         2: .line 5044
      StackMap locals:
      StackMap stack:
            aload 7 /* mc */
            getfield java.math.MathContext.precision:I
            istore 8 /* mcp */
        start local 8 // int mcp
         3: .line 5045
            aload 7 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* roundingMode */
        start local 9 // int roundingMode
         4: .line 5051
            lload 5 /* preferredScale */
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            iload 8 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         5: .line 5052
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 5053
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
         7: .line 5054
            aload 0 /* xs */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
         8: .line 5055
            aload 13 /* rb */
            lload 2 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        start local 10 // java.math.BigDecimal quotient
         9: .line 5056
            goto 21
        end local 10 // java.math.BigDecimal quotient
        10: .line 5057
      StackMap locals: java.math.BigInteger int long int long java.math.MathContext int int top int
      StackMap stack:
            iload 1 /* xscale */
            i2l
            iload 8 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* newScale */
        start local 12 // int newScale
        11: .line 5059
            iload 12 /* newScale */
            iload 4 /* yscale */
            if_icmpne 14
        12: .line 5060
            aload 0 /* xs */
            lload 2 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        start local 10 // java.math.BigDecimal quotient
        13: .line 5061
            goto 21
        end local 10 // java.math.BigDecimal quotient
        14: .line 5062
      StackMap locals: int
      StackMap stack:
            iload 12 /* newScale */
            i2l
            iload 4 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
        15: .line 5064
            lload 2 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 14 /* scaledYs */
        start local 14 // long scaledYs
        16: ldc -9223372036854775808
            lcmp
            ifne 20
        17: .line 5065
            lload 2 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 16 /* rb */
        start local 16 // java.math.BigInteger rb
        18: .line 5066
            aload 0 /* xs */
            aload 16 /* rb */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 16 // java.math.BigInteger rb
        start local 10 // java.math.BigDecimal quotient
        19: .line 5067
            goto 21
        end local 10 // java.math.BigDecimal quotient
        20: .line 5068
      StackMap locals: int long
      StackMap stack:
            aload 0 /* xs */
            lload 14 /* scaledYs */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 14 // long scaledYs
        end local 13 // int raise
        end local 12 // int newScale
        start local 10 // java.math.BigDecimal quotient
        21: .line 5073
      StackMap locals: java.math.BigInteger int long int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 10 /* quotient */
            aload 7 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 11 // int scl
        end local 10 // java.math.BigDecimal quotient
        end local 9 // int roundingMode
        end local 8 // int mcp
        end local 7 // java.math.MathContext mc
        end local 5 // long preferredScale
        end local 4 // int yscale
        end local 2 // long ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0              xs  Ljava/math/BigInteger;
            0   22     1          xscale  I
            0   22     2              ys  J
            0   22     4          yscale  I
            0   22     5  preferredScale  J
            0   22     7              mc  Ljava/math/MathContext;
            3   22     8             mcp  I
            4   22     9    roundingMode  I
            9   10    10        quotient  Ljava/math/BigDecimal;
           13   14    10        quotient  Ljava/math/BigDecimal;
           19   20    10        quotient  Ljava/math/BigDecimal;
           21   22    10        quotient  Ljava/math/BigDecimal;
            5   22    11             scl  I
            7    9    12           raise  I
            8    9    13              rb  Ljava/math/BigInteger;
           11   21    12        newScale  I
           15   21    13           raise  I
           16   21    14        scaledYs  J
           18   19    16              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(long, int, java.math.BigInteger, int, long, java.math.MathContext);
    descriptor: (JILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // java.math.BigInteger ys
        start local 4 // int yscale
        start local 5 // long preferredScale
        start local 7 // java.math.MathContext mc
         0: .line 5082
            lload 0 /* xs */
            iload 2 /* xscale */
            aload 3 /* ys */
            iload 4 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JILjava/math/BigInteger;I)I
            ifle 2
         1: .line 5083
            iinc 4 /* yscale */ -1
         2: .line 5085
      StackMap locals:
      StackMap stack:
            aload 7 /* mc */
            getfield java.math.MathContext.precision:I
            istore 8 /* mcp */
        start local 8 // int mcp
         3: .line 5086
            aload 7 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* roundingMode */
        start local 9 // int roundingMode
         4: .line 5092
            lload 5 /* preferredScale */
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 8 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         5: .line 5093
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 5094
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
         7: .line 5095
            lload 0 /* xs */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
         8: .line 5096
            aload 13 /* rb */
            aload 3 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        start local 10 // java.math.BigDecimal quotient
         9: .line 5097
            goto 14
        end local 10 // java.math.BigDecimal quotient
        10: .line 5098
      StackMap locals: long int java.math.BigInteger int long java.math.MathContext int int top int
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 8 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* newScale */
        start local 12 // int newScale
        11: .line 5099
            iload 12 /* newScale */
            i2l
            iload 4 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
        12: .line 5100
            aload 3 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 14 /* rb */
        start local 14 // java.math.BigInteger rb
        13: .line 5101
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 14 /* rb */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 14 // java.math.BigInteger rb
        end local 13 // int raise
        end local 12 // int newScale
        start local 10 // java.math.BigDecimal quotient
        14: .line 5104
      StackMap locals: long int java.math.BigInteger int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 10 /* quotient */
            aload 7 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 11 // int scl
        end local 10 // java.math.BigDecimal quotient
        end local 9 // int roundingMode
        end local 8 // int mcp
        end local 7 // java.math.MathContext mc
        end local 5 // long preferredScale
        end local 4 // int yscale
        end local 3 // java.math.BigInteger ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0              xs  J
            0   15     2          xscale  I
            0   15     3              ys  Ljava/math/BigInteger;
            0   15     4          yscale  I
            0   15     5  preferredScale  J
            0   15     7              mc  Ljava/math/MathContext;
            3   15     8             mcp  I
            4   15     9    roundingMode  I
            9   10    10        quotient  Ljava/math/BigDecimal;
           14   15    10        quotient  Ljava/math/BigDecimal;
            5   15    11             scl  I
            7    9    12           raise  I
            8    9    13              rb  Ljava/math/BigInteger;
           11   14    12        newScale  I
           12   14    13           raise  I
           13   14    14              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(java.math.BigInteger, int, java.math.BigInteger, int, long, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // java.math.BigInteger ys
        start local 3 // int yscale
        start local 4 // long preferredScale
        start local 6 // java.math.MathContext mc
         0: .line 5113
            aload 0 /* xs */
            iload 1 /* xscale */
            aload 2 /* ys */
            iload 3 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)I
            ifle 2
         1: .line 5114
            iinc 3 /* yscale */ -1
         2: .line 5116
      StackMap locals:
      StackMap stack:
            aload 6 /* mc */
            getfield java.math.MathContext.precision:I
            istore 7 /* mcp */
        start local 7 // int mcp
         3: .line 5117
            aload 6 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 8 /* roundingMode */
        start local 8 // int roundingMode
         4: .line 5123
            lload 4 /* preferredScale */
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            iload 7 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scl */
        start local 10 // int scl
         5: .line 5124
            iload 7 /* mcp */
            i2l
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 5125
            iload 7 /* mcp */
            i2l
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* raise */
        start local 11 // int raise
         7: .line 5126
            aload 0 /* xs */
            iload 11 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
         8: .line 5127
            aload 12 /* rb */
            aload 2 /* ys */
            iload 10 /* scl */
            iload 8 /* roundingMode */
            lload 4 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 9 /* quotient */
        end local 12 // java.math.BigInteger rb
        end local 11 // int raise
        start local 9 // java.math.BigDecimal quotient
         9: .line 5128
            goto 14
        end local 9 // java.math.BigDecimal quotient
        10: .line 5129
      StackMap locals: java.math.BigInteger int java.math.BigInteger int long java.math.MathContext int int top int
      StackMap stack:
            iload 1 /* xscale */
            i2l
            iload 7 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* newScale */
        start local 11 // int newScale
        11: .line 5130
            iload 11 /* newScale */
            i2l
            iload 3 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
        12: .line 5131
            aload 2 /* ys */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
        13: .line 5132
            aload 0 /* xs */
            aload 13 /* rb */
            iload 10 /* scl */
            iload 8 /* roundingMode */
            lload 4 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 9 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        end local 11 // int newScale
        start local 9 // java.math.BigDecimal quotient
        14: .line 5135
      StackMap locals: java.math.BigInteger int java.math.BigInteger int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 9 /* quotient */
            aload 6 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 10 // int scl
        end local 9 // java.math.BigDecimal quotient
        end local 8 // int roundingMode
        end local 7 // int mcp
        end local 6 // java.math.MathContext mc
        end local 4 // long preferredScale
        end local 3 // int yscale
        end local 2 // java.math.BigInteger ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0              xs  Ljava/math/BigInteger;
            0   15     1          xscale  I
            0   15     2              ys  Ljava/math/BigInteger;
            0   15     3          yscale  I
            0   15     4  preferredScale  J
            0   15     6              mc  Ljava/math/MathContext;
            3   15     7             mcp  I
            4   15     8    roundingMode  I
            9   10     9        quotient  Ljava/math/BigDecimal;
           14   15     9        quotient  Ljava/math/BigDecimal;
            5   15    10             scl  I
            7    9    11           raise  I
            8    9    12              rb  Ljava/math/BigInteger;
           11   14    11        newScale  I
           12   14    12           raise  I
           13   14    13              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal multiplyDivideAndRound(long, long, long, int, int, int);
    descriptor: (JJJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=32, args_size=6
        start local 0 // long dividend0
        start local 2 // long dividend1
        start local 4 // long divisor
        start local 6 // int scale
        start local 7 // int roundingMode
        start local 8 // int preferredScale
         0: .line 5144
            lload 0 /* dividend0 */
            invokestatic java.lang.Long.signum:(J)I
            lload 2 /* dividend1 */
            invokestatic java.lang.Long.signum:(J)I
            imul
            lload 4 /* divisor */
            invokestatic java.lang.Long.signum:(J)I
            imul
            istore 9 /* qsign */
        start local 9 // int qsign
         1: .line 5145
            lload 0 /* dividend0 */
            invokestatic java.lang.Math.abs:(J)J
            lstore 0 /* dividend0 */
         2: .line 5146
            lload 2 /* dividend1 */
            invokestatic java.lang.Math.abs:(J)J
            lstore 2 /* dividend1 */
         3: .line 5147
            lload 4 /* divisor */
            invokestatic java.lang.Math.abs:(J)J
            lstore 4 /* divisor */
         4: .line 5149
            lload 0 /* dividend0 */
            bipush 32
            lushr
            lstore 10 /* d0_hi */
        start local 10 // long d0_hi
         5: .line 5150
            lload 0 /* dividend0 */
            ldc 4294967295
            land
            lstore 12 /* d0_lo */
        start local 12 // long d0_lo
         6: .line 5151
            lload 2 /* dividend1 */
            bipush 32
            lushr
            lstore 14 /* d1_hi */
        start local 14 // long d1_hi
         7: .line 5152
            lload 2 /* dividend1 */
            ldc 4294967295
            land
            lstore 16 /* d1_lo */
        start local 16 // long d1_lo
         8: .line 5153
            lload 12 /* d0_lo */
            lload 16 /* d1_lo */
            lmul
            lstore 18 /* product */
        start local 18 // long product
         9: .line 5154
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 20 /* d0 */
        start local 20 // long d0
        10: .line 5155
            lload 18 /* product */
            bipush 32
            lushr
            lstore 22 /* d1 */
        start local 22 // long d1
        11: .line 5156
            lload 10 /* d0_hi */
            lload 16 /* d1_lo */
            lmul
            lload 22 /* d1 */
            ladd
            lstore 18 /* product */
        12: .line 5157
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 22 /* d1 */
        13: .line 5158
            lload 18 /* product */
            bipush 32
            lushr
            lstore 24 /* d2 */
        start local 24 // long d2
        14: .line 5159
            lload 12 /* d0_lo */
            lload 14 /* d1_hi */
            lmul
            lload 22 /* d1 */
            ladd
            lstore 18 /* product */
        15: .line 5160
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 22 /* d1 */
        16: .line 5161
            lload 24 /* d2 */
            lload 18 /* product */
            bipush 32
            lushr
            ladd
            lstore 24 /* d2 */
        17: .line 5162
            lload 24 /* d2 */
            bipush 32
            lushr
            lstore 26 /* d3 */
        start local 26 // long d3
        18: .line 5163
            lload 24 /* d2 */
            ldc 4294967295
            land
            lstore 24 /* d2 */
        19: .line 5164
            lload 10 /* d0_hi */
            lload 14 /* d1_hi */
            lmul
            lload 24 /* d2 */
            ladd
            lstore 18 /* product */
        20: .line 5165
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 24 /* d2 */
        21: .line 5166
            lload 18 /* product */
            bipush 32
            lushr
            lload 26 /* d3 */
            ladd
            ldc 4294967295
            land
            lstore 26 /* d3 */
        22: .line 5167
            lload 26 /* d3 */
            lload 24 /* d2 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 28 /* dividendHi */
        start local 28 // long dividendHi
        23: .line 5168
            lload 22 /* d1 */
            lload 20 /* d0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 30 /* dividendLo */
        start local 30 // long dividendLo
        24: .line 5170
            lload 28 /* dividendHi */
            lload 30 /* dividendLo */
            lload 4 /* divisor */
            iload 9 /* qsign */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 8 /* preferredScale */
            invokestatic java.math.BigDecimal.divideAndRound128:(JJJIIII)Ljava/math/BigDecimal;
            areturn
        end local 30 // long dividendLo
        end local 28 // long dividendHi
        end local 26 // long d3
        end local 24 // long d2
        end local 22 // long d1
        end local 20 // long d0
        end local 18 // long product
        end local 16 // long d1_lo
        end local 14 // long d1_hi
        end local 12 // long d0_lo
        end local 10 // long d0_hi
        end local 9 // int qsign
        end local 8 // int preferredScale
        end local 7 // int roundingMode
        end local 6 // int scale
        end local 4 // long divisor
        end local 2 // long dividend1
        end local 0 // long dividend0
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0       dividend0  J
            0   25     2       dividend1  J
            0   25     4         divisor  J
            0   25     6           scale  I
            0   25     7    roundingMode  I
            0   25     8  preferredScale  I
            1   25     9           qsign  I
            5   25    10           d0_hi  J
            6   25    12           d0_lo  J
            7   25    14           d1_hi  J
            8   25    16           d1_lo  J
            9   25    18         product  J
           10   25    20              d0  J
           11   25    22              d1  J
           14   25    24              d2  J
           18   25    26              d3  J
           23   25    28      dividendHi  J
           24   25    30      dividendLo  J
    MethodParameters:
                Name  Flags
      dividend0       
      dividend1       
      divisor         
      scale           
      roundingMode    
      preferredScale  

  private static java.math.BigDecimal divideAndRound128(long, long, long, int, int, int, int);
    descriptor: (JJJIIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=34, args_size=7
        start local 0 // long dividendHi
        start local 2 // long dividendLo
        start local 4 // long divisor
        start local 6 // int sign
        start local 7 // int scale
        start local 8 // int roundingMode
        start local 9 // int preferredScale
         0: .line 5182
            lload 0 /* dividendHi */
            lload 4 /* divisor */
            lcmp
            iflt 2
         1: .line 5183
            aconst_null
            areturn
         2: .line 5186
      StackMap locals:
      StackMap stack:
            lload 4 /* divisor */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            istore 10 /* shift */
        start local 10 // int shift
         3: .line 5187
            lload 4 /* divisor */
            iload 10 /* shift */
            lshl
            lstore 4 /* divisor */
         4: .line 5189
            lload 4 /* divisor */
            bipush 32
            lushr
            lstore 11 /* v1 */
        start local 11 // long v1
         5: .line 5190
            lload 4 /* divisor */
            ldc 4294967295
            land
            lstore 13 /* v0 */
        start local 13 // long v0
         6: .line 5192
            lload 2 /* dividendLo */
            iload 10 /* shift */
            lshl
            lstore 15 /* tmp */
        start local 15 // long tmp
         7: .line 5193
            lload 15 /* tmp */
            bipush 32
            lushr
            lstore 17 /* u1 */
        start local 17 // long u1
         8: .line 5194
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 19 /* u0 */
        start local 19 // long u0
         9: .line 5196
            lload 0 /* dividendHi */
            iload 10 /* shift */
            lshl
            lload 2 /* dividendLo */
            bipush 64
            iload 10 /* shift */
            isub
            lushr
            lor
            lstore 15 /* tmp */
        10: .line 5197
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 21 /* u2 */
        start local 21 // long u2
        11: .line 5199
            lload 11 /* v1 */
            lconst_1
            lcmp
            ifne 15
        12: .line 5200
            lload 15 /* tmp */
            lstore 23 /* q1 */
        start local 23 // long q1
        13: .line 5201
            lconst_0
            lstore 25 /* r_tmp */
        start local 25 // long r_tmp
        14: .line 5202
            goto 27
        end local 25 // long r_tmp
        end local 23 // long q1
      StackMap locals: long long long int int int int int long long long long long long
      StackMap stack:
        15: lload 15 /* tmp */
            lconst_0
            lcmp
            iflt 19
        16: .line 5203
            lload 15 /* tmp */
            lload 11 /* v1 */
            ldiv
            lstore 23 /* q1 */
        start local 23 // long q1
        17: .line 5204
            lload 15 /* tmp */
            lload 23 /* q1 */
            lload 11 /* v1 */
            lmul
            lsub
            lstore 25 /* r_tmp */
        start local 25 // long r_tmp
        18: .line 5205
            goto 27
        end local 25 // long r_tmp
        end local 23 // long q1
        19: .line 5206
      StackMap locals:
      StackMap stack:
            lload 15 /* tmp */
            lload 11 /* v1 */
            invokestatic java.math.BigDecimal.divRemNegativeLong:(JJ)[J
            astore 27 /* rq */
        start local 27 // long[] rq
        20: .line 5207
            aload 27 /* rq */
            iconst_1
            laload
            lstore 23 /* q1 */
        start local 23 // long q1
        21: .line 5208
            aload 27 /* rq */
            iconst_0
            laload
            lstore 25 /* r_tmp */
        end local 27 // long[] rq
        start local 25 // long r_tmp
        22: .line 5211
            goto 27
        23: .line 5212
      StackMap locals: long long
      StackMap stack:
            lload 23 /* q1 */
            lconst_1
            lsub
            lstore 23 /* q1 */
        24: .line 5213
            lload 25 /* r_tmp */
            lload 11 /* v1 */
            ladd
            lstore 25 /* r_tmp */
        25: .line 5214
            lload 25 /* r_tmp */
            ldc 4294967296
            lcmp
            iflt 27
        26: .line 5215
            goto 28
        27: .line 5211
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            ldc 4294967296
            lcmp
            ifge 23
            lload 23 /* q1 */
            lload 13 /* v0 */
            lmul
            lload 25 /* r_tmp */
            lload 17 /* u1 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            invokestatic java.math.BigDecimal.unsignedLongCompare:(JJ)Z
            ifne 23
        28: .line 5218
      StackMap locals:
      StackMap stack:
            lload 21 /* u2 */
            lload 17 /* u1 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 23 /* q1 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            lstore 15 /* tmp */
        29: .line 5219
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 17 /* u1 */
        30: .line 5221
            lload 11 /* v1 */
            lconst_1
            lcmp
            ifne 34
        31: .line 5222
            lload 15 /* tmp */
            lstore 27 /* q0 */
        start local 27 // long q0
        32: .line 5223
            lconst_0
            lstore 25 /* r_tmp */
        33: .line 5224
            goto 46
        end local 27 // long q0
      StackMap locals:
      StackMap stack:
        34: lload 15 /* tmp */
            lconst_0
            lcmp
            iflt 38
        35: .line 5225
            lload 15 /* tmp */
            lload 11 /* v1 */
            ldiv
            lstore 27 /* q0 */
        start local 27 // long q0
        36: .line 5226
            lload 15 /* tmp */
            lload 27 /* q0 */
            lload 11 /* v1 */
            lmul
            lsub
            lstore 25 /* r_tmp */
        37: .line 5227
            goto 46
        end local 27 // long q0
        38: .line 5228
      StackMap locals:
      StackMap stack:
            lload 15 /* tmp */
            lload 11 /* v1 */
            invokestatic java.math.BigDecimal.divRemNegativeLong:(JJ)[J
            astore 29 /* rq */
        start local 29 // long[] rq
        39: .line 5229
            aload 29 /* rq */
            iconst_1
            laload
            lstore 27 /* q0 */
        start local 27 // long q0
        40: .line 5230
            aload 29 /* rq */
            iconst_0
            laload
            lstore 25 /* r_tmp */
        end local 29 // long[] rq
        41: .line 5233
            goto 46
        42: .line 5234
      StackMap locals: long
      StackMap stack:
            lload 27 /* q0 */
            lconst_1
            lsub
            lstore 27 /* q0 */
        43: .line 5235
            lload 25 /* r_tmp */
            lload 11 /* v1 */
            ladd
            lstore 25 /* r_tmp */
        44: .line 5236
            lload 25 /* r_tmp */
            ldc 4294967296
            lcmp
            iflt 46
        45: .line 5237
            goto 47
        46: .line 5233
      StackMap locals:
      StackMap stack:
            lload 27 /* q0 */
            ldc 4294967296
            lcmp
            ifge 42
            lload 27 /* q0 */
            lload 13 /* v0 */
            lmul
            lload 25 /* r_tmp */
            lload 19 /* u0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            invokestatic java.math.BigDecimal.unsignedLongCompare:(JJ)Z
            ifne 42
        47: .line 5240
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            l2i
            ifge 60
        48: .line 5243
            new java.math.MutableBigInteger
            dup
            iconst_2
            newarray 10
            dup
            iconst_0
            lload 23 /* q1 */
            l2i
            iastore
            dup
            iconst_1
            lload 27 /* q0 */
            l2i
            iastore
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 29 /* mq */
        start local 29 // java.math.MutableBigInteger mq
        49: .line 5244
            iload 8 /* roundingMode */
            iconst_1
            if_icmpne 51
            iload 7 /* scale */
            iload 9 /* preferredScale */
            if_icmpne 51
        50: .line 5245
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        51: .line 5247
      StackMap locals: java.math.MutableBigInteger
      StackMap stack:
            lload 17 /* u1 */
            lload 19 /* u0 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            iload 10 /* shift */
            lushr
            lstore 30 /* r */
        start local 30 // long r
        52: .line 5248
            lload 30 /* r */
            lconst_0
            lcmp
            ifeq 56
        53: .line 5249
            lload 4 /* divisor */
            iload 10 /* shift */
            lushr
            iload 8 /* roundingMode */
            iload 6 /* sign */
            aload 29 /* mq */
            lload 30 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 55
        54: .line 5250
            aload 29 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        55: .line 5252
      StackMap locals: long
      StackMap stack:
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        56: .line 5254
      StackMap locals:
      StackMap stack:
            iload 9 /* preferredScale */
            iload 7 /* scale */
            if_icmpeq 59
        57: .line 5255
            aload 29 /* mq */
            iload 6 /* sign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 32 /* intVal */
        start local 32 // java.math.BigInteger intVal
        58: .line 5256
            aload 32 /* intVal */
            iload 7 /* scale */
            iload 9 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 32 // java.math.BigInteger intVal
        59: .line 5258
      StackMap locals:
      StackMap stack:
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 30 // long r
        end local 29 // java.math.MutableBigInteger mq
        60: .line 5263
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 29 /* q */
        start local 29 // long q
        61: .line 5264
            lload 29 /* q */
            iload 6 /* sign */
            i2l
            lmul
            lstore 29 /* q */
        62: .line 5266
            iload 8 /* roundingMode */
            iconst_1
            if_icmpne 64
            iload 7 /* scale */
            iload 9 /* preferredScale */
            if_icmpne 64
        63: .line 5267
            lload 29 /* q */
            iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        64: .line 5269
      StackMap locals: long
      StackMap stack:
            lload 17 /* u1 */
            lload 19 /* u0 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            iload 10 /* shift */
            lushr
            lstore 31 /* r */
        start local 31 // long r
        65: .line 5270
            lload 31 /* r */
            lconst_0
            lcmp
            ifeq 70
        66: .line 5271
            lload 4 /* divisor */
            iload 10 /* shift */
            lushr
            iload 8 /* roundingMode */
            iload 6 /* sign */
            lload 29 /* q */
            lload 31 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 33 /* increment */
        start local 33 // boolean increment
        67: .line 5272
            iload 33 /* increment */
            ifeq 68
            lload 29 /* q */
            iload 6 /* sign */
            i2l
            ladd
            goto 69
      StackMap locals: long int
      StackMap stack:
        68: lload 29 /* q */
      StackMap locals:
      StackMap stack: long
        69: iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 33 // boolean increment
        70: .line 5274
      StackMap locals:
      StackMap stack:
            iload 9 /* preferredScale */
            iload 7 /* scale */
            if_icmpeq 72
        71: .line 5275
            lload 29 /* q */
            iload 7 /* scale */
            iload 9 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        72: .line 5277
      StackMap locals:
      StackMap stack:
            lload 29 /* q */
            iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 31 // long r
        end local 29 // long q
        end local 27 // long q0
        end local 25 // long r_tmp
        end local 23 // long q1
        end local 21 // long u2
        end local 19 // long u0
        end local 17 // long u1
        end local 15 // long tmp
        end local 13 // long v0
        end local 11 // long v1
        end local 10 // int shift
        end local 9 // int preferredScale
        end local 8 // int roundingMode
        end local 7 // int scale
        end local 6 // int sign
        end local 4 // long divisor
        end local 2 // long dividendLo
        end local 0 // long dividendHi
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   73     0      dividendHi  J
            0   73     2      dividendLo  J
            0   73     4         divisor  J
            0   73     6            sign  I
            0   73     7           scale  I
            0   73     8    roundingMode  I
            0   73     9  preferredScale  I
            3   73    10           shift  I
            5   73    11              v1  J
            6   73    13              v0  J
            7   73    15             tmp  J
            8   73    17              u1  J
            9   73    19              u0  J
           11   73    21              u2  J
           13   15    23              q1  J
           17   19    23              q1  J
           21   73    23              q1  J
           14   15    25           r_tmp  J
           18   19    25           r_tmp  J
           22   73    25           r_tmp  J
           20   22    27              rq  [J
           32   34    27              q0  J
           36   38    27              q0  J
           40   73    27              q0  J
           39   41    29              rq  [J
           49   60    29              mq  Ljava/math/MutableBigInteger;
           52   60    30               r  J
           58   59    32          intVal  Ljava/math/BigInteger;
           61   73    29               q  J
           65   73    31               r  J
           67   70    33       increment  Z
    MethodParameters:
                Name  Flags
      dividendHi      final
      dividendLo      final
      divisor         
      sign            
      scale           
      roundingMode    
      preferredScale  

  private static java.math.BigDecimal roundedTenPower(int, int, int, int);
    descriptor: (IIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // int qsign
        start local 1 // int raise
        start local 2 // int scale
        start local 3 // int preferredScale
         0: .line 5287
            iload 2 /* scale */
            iload 3 /* preferredScale */
            if_icmple 5
         1: .line 5288
            iload 2 /* scale */
            iload 3 /* preferredScale */
            isub
            istore 4 /* diff */
        start local 4 // int diff
         2: .line 5289
            iload 4 /* diff */
            iload 1 /* raise */
            if_icmpge 4
         3: .line 5290
            iload 1 /* raise */
            iload 4 /* diff */
            isub
            iload 0 /* qsign */
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.scaledTenPow:(III)Ljava/math/BigDecimal;
            areturn
         4: .line 5292
      StackMap locals: int
      StackMap stack:
            iload 0 /* qsign */
            i2l
            iload 2 /* scale */
            iload 1 /* raise */
            isub
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 4 // int diff
         5: .line 5295
      StackMap locals:
      StackMap stack:
            iload 1 /* raise */
            iload 0 /* qsign */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.scaledTenPow:(III)Ljava/math/BigDecimal;
            areturn
        end local 3 // int preferredScale
        end local 2 // int scale
        end local 1 // int raise
        end local 0 // int qsign
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0           qsign  I
            0    6     1           raise  I
            0    6     2           scale  I
            0    6     3  preferredScale  I
            2    5     4            diff  I
    MethodParameters:
                Name  Flags
      qsign           
      raise           
      scale           
      preferredScale  

  static java.math.BigDecimal scaledTenPow(int, int, int);
    descriptor: (III)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // int n
        start local 1 // int sign
        start local 2 // int scale
         0: .line 5300
            iload 0 /* n */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 2
         1: .line 5301
            iload 1 /* sign */
            i2l
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 0 /* n */
            laload
            lmul
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         2: .line 5303
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            astore 3 /* unscaledVal */
        start local 3 // java.math.BigInteger unscaledVal
         3: .line 5304
            iload 1 /* sign */
            iconst_m1
            if_icmpne 5
         4: .line 5305
            aload 3 /* unscaledVal */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 3 /* unscaledVal */
         5: .line 5307
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 3 /* unscaledVal */
            ldc -9223372036854775808
            iload 2 /* scale */
            iload 0 /* n */
            iconst_1
            iadd
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // java.math.BigInteger unscaledVal
        end local 2 // int scale
        end local 1 // int sign
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0            n  I
            0    6     1         sign  I
            0    6     2        scale  I
            3    6     3  unscaledVal  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      n      
      sign   
      scale  

  private static long[] divRemNegativeLong(long, long);
    descriptor: (JJ)[J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // long n
        start local 2 // long d
         0: .line 5321
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 0 /* n */
            lconst_0
            lcmp
            iflt 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Non-negative numerator "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* n */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 5322
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 2
            lload 2 /* d */
            lconst_1
            lcmp
            ifne 2
            new java.lang.AssertionError
            dup
            ldc "Unity denominator"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 5325
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            iconst_1
            lushr
            lload 2 /* d */
            iconst_1
            lushr
            ldiv
            lstore 4 /* q */
        start local 4 // long q
         3: .line 5326
            lload 0 /* n */
            lload 4 /* q */
            lload 2 /* d */
            lmul
            lsub
            lstore 6 /* r */
        start local 6 // long r
         4: .line 5329
            goto 7
         5: .line 5330
      StackMap locals: long long
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            ladd
            lstore 6 /* r */
         6: .line 5331
            lload 4 /* q */
            lconst_1
            lsub
            lstore 4 /* q */
         7: .line 5329
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lconst_0
            lcmp
            iflt 5
         8: .line 5333
            goto 11
         9: .line 5334
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            lsub
            lstore 6 /* r */
        10: .line 5335
            lload 4 /* q */
            lconst_1
            ladd
            lstore 4 /* q */
        11: .line 5333
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            lcmp
            ifge 9
        12: .line 5339
            iconst_2
            newarray 11
            dup
            iconst_0
            lload 6 /* r */
            lastore
            dup
            iconst_1
            lload 4 /* q */
            lastore
            areturn
        end local 6 // long r
        end local 4 // long q
        end local 2 // long d
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0     n  J
            0   13     2     d  J
            3   13     4     q  J
            4   13     6     r  J
    MethodParameters:
      Name  Flags
      n     
      d     

  private static long make64(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long hi
        start local 2 // long lo
         0: .line 5343
            lload 0 /* hi */
            bipush 32
            lshl
            lload 2 /* lo */
            lor
            lreturn
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    hi  J
            0    1     2    lo  J
    MethodParameters:
      Name  Flags
      hi    
      lo    

  private static long mulsub(long, long, long, long, long);
    descriptor: (JJJJJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // long u1
        start local 2 // long u0
        start local 4 // long v1
        start local 6 // long v0
        start local 8 // long q0
         0: .line 5347
            lload 2 /* u0 */
            lload 8 /* q0 */
            lload 6 /* v0 */
            lmul
            lsub
            lstore 10 /* tmp */
        start local 10 // long tmp
         1: .line 5348
            lload 0 /* u1 */
            lload 10 /* tmp */
            bipush 32
            lushr
            ladd
            lload 8 /* q0 */
            lload 4 /* v1 */
            lmul
            lsub
            lload 10 /* tmp */
            ldc 4294967295
            land
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lreturn
        end local 10 // long tmp
        end local 8 // long q0
        end local 6 // long v0
        end local 4 // long v1
        end local 2 // long u0
        end local 0 // long u1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    u1  J
            0    2     2    u0  J
            0    2     4    v1  J
            0    2     6    v0  J
            0    2     8    q0  J
            1    2    10   tmp  J
    MethodParameters:
      Name  Flags
      u1    
      u0    
      v1    final
      v0    final
      q0    

  private static boolean unsignedLongCompare(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long one
        start local 2 // long two
         0: .line 5352
            lload 0 /* one */
            ldc -9223372036854775808
            ladd
            lload 2 /* two */
            ldc -9223372036854775808
            ladd
            lcmp
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // long two
        end local 0 // long one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   one  J
            0    2     2   two  J
    MethodParameters:
      Name  Flags
      one   
      two   

  private static boolean unsignedLongCompareEq(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long one
        start local 2 // long two
         0: .line 5356
            lload 0 /* one */
            ldc -9223372036854775808
            ladd
            lload 2 /* two */
            ldc -9223372036854775808
            ladd
            lcmp
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // long two
        end local 0 // long one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   one  J
            0    2     2   two  J
    MethodParameters:
      Name  Flags
      one   
      two   

  private static int compareMagnitudeNormalized(long, int, long, int);
    descriptor: (JIJI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
         0: .line 5363
            iload 2 /* xscale */
            iload 5 /* yscale */
            isub
            istore 6 /* sdiff */
        start local 6 // int sdiff
         1: .line 5364
            iload 6 /* sdiff */
            ifeq 6
         2: .line 5365
            iload 6 /* sdiff */
            ifge 5
         3: .line 5366
            lload 0 /* xs */
            iload 6 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 0 /* xs */
         4: .line 5367
            goto 6
         5: .line 5368
      StackMap locals: int
      StackMap stack:
            lload 3 /* ys */
            iload 6 /* sdiff */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 3 /* ys */
         6: .line 5371
      StackMap locals:
      StackMap stack:
            lload 0 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 10
         7: .line 5372
            lload 3 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 8
            lload 0 /* xs */
            lload 3 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_m1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        10: .line 5374
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // int sdiff
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0      xs  J
            0   11     2  xscale  I
            0   11     3      ys  J
            0   11     5  yscale  I
            1   11     6   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static int compareMagnitudeNormalized(long, int, java.math.BigInteger, int);
    descriptor: (JILjava/math/BigInteger;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // java.math.BigInteger ys
        start local 4 // int yscale
         0: .line 5380
            lload 0 /* xs */
            lconst_0
            lcmp
            ifne 2
         1: .line 5381
            iconst_m1
            ireturn
         2: .line 5382
      StackMap locals:
      StackMap stack:
            iload 2 /* xscale */
            iload 4 /* yscale */
            isub
            istore 5 /* sdiff */
        start local 5 // int sdiff
         3: .line 5383
            iload 5 /* sdiff */
            ifge 6
         4: .line 5384
            lload 0 /* xs */
            iload 5 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            ldc -9223372036854775808
            lcmp
            ifne 6
         5: .line 5385
            lload 0 /* xs */
            iload 5 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            aload 3 /* ys */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
         6: .line 5388
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 5 // int sdiff
        end local 4 // int yscale
        end local 3 // java.math.BigInteger ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0      xs  J
            0    7     2  xscale  I
            0    7     3      ys  Ljava/math/BigInteger;
            0    7     4  yscale  I
            3    7     5   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static int compareMagnitudeNormalized(java.math.BigInteger, int, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // java.math.BigInteger ys
        start local 3 // int yscale
         0: .line 5393
            iload 1 /* xscale */
            iload 3 /* yscale */
            isub
            istore 4 /* sdiff */
        start local 4 // int sdiff
         1: .line 5394
            iload 4 /* sdiff */
            ifge 3
         2: .line 5395
            aload 0 /* xs */
            iload 4 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            aload 2 /* ys */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
         3: .line 5397
      StackMap locals: int
      StackMap stack:
            aload 0 /* xs */
            aload 2 /* ys */
            iload 4 /* sdiff */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 4 // int sdiff
        end local 3 // int yscale
        end local 2 // java.math.BigInteger ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      xs  Ljava/math/BigInteger;
            0    4     1  xscale  I
            0    4     2      ys  Ljava/math/BigInteger;
            0    4     3  yscale  I
            1    4     4   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static long multiply(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 5402
            lload 0 /* x */
            lload 2 /* y */
            lmul
            lstore 4 /* product */
        start local 4 // long product
         1: .line 5403
            lload 0 /* x */
            invokestatic java.lang.Math.abs:(J)J
            lstore 6 /* ax */
        start local 6 // long ax
         2: .line 5404
            lload 2 /* y */
            invokestatic java.lang.Math.abs:(J)J
            lstore 8 /* ay */
        start local 8 // long ay
         3: .line 5405
            lload 6 /* ax */
            lload 8 /* ay */
            lor
            bipush 31
            lushr
            lconst_0
            lcmp
            ifeq 4
            lload 2 /* y */
            lconst_0
            lcmp
            ifeq 4
            lload 4 /* product */
            lload 2 /* y */
            ldiv
            lload 0 /* x */
            lcmp
            ifne 5
         4: .line 5406
      StackMap locals: long long long
      StackMap stack:
            lload 4 /* product */
            lreturn
         5: .line 5408
      StackMap locals:
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 8 // long ay
        end local 6 // long ax
        end local 4 // long product
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0        x  J
            0    6     2        y  J
            1    6     4  product  J
            2    6     6       ax  J
            3    6     8       ay  J
    MethodParameters:
      Name  Flags
      x     
      y     

  private static java.math.BigDecimal multiply(long, long, int);
    descriptor: (JJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // long x
        start local 2 // long y
        start local 4 // int scale
         0: .line 5412
            lload 0 /* x */
            lload 2 /* y */
            invokestatic java.math.BigDecimal.multiply:(JJ)J
            lstore 5 /* product */
        start local 5 // long product
         1: .line 5413
            lload 5 /* product */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 5414
            lload 5 /* product */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 5416
      StackMap locals: long
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* x */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* y */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 4 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 5 // long product
        end local 4 // int scale
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0        x  J
            0    4     2        y  J
            0    4     4    scale  I
            1    4     5  product  J
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiply(long, java.math.BigInteger, int);
    descriptor: (JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // long x
        start local 2 // java.math.BigInteger y
        start local 3 // int scale
         0: .line 5420
            lload 0 /* x */
            lconst_0
            lcmp
            ifne 2
         1: .line 5421
            iload 3 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 5423
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 2 /* y */
            lload 0 /* x */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 3 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // int scale
        end local 2 // java.math.BigInteger y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0      x  J
            0    3     2      y  Ljava/math/BigInteger;
            0    3     3  scale  I
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiply(java.math.BigInteger, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.math.BigInteger x
        start local 1 // java.math.BigInteger y
        start local 2 // int scale
         0: .line 5427
            new java.math.BigDecimal
            dup
            aload 0 /* x */
            aload 1 /* y */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 2 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 2 // int scale
        end local 1 // java.math.BigInteger y
        end local 0 // java.math.BigInteger x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  Ljava/math/BigInteger;
            0    1     1      y  Ljava/math/BigInteger;
            0    1     2  scale  I
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiplyAndRound(long, long, int, java.math.MathContext);
    descriptor: (JJILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=30, args_size=4
        start local 0 // long x
        start local 2 // long y
        start local 4 // int scale
        start local 5 // java.math.MathContext mc
         0: .line 5434
            lload 0 /* x */
            lload 2 /* y */
            invokestatic java.math.BigDecimal.multiply:(JJ)J
            lstore 6 /* product */
        start local 6 // long product
         1: .line 5435
            lload 6 /* product */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 5436
            lload 6 /* product */
            iload 4 /* scale */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound:(JILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         3: .line 5439
      StackMap locals: long
      StackMap stack:
            iconst_1
            istore 8 /* rsign */
        start local 8 // int rsign
         4: .line 5440
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 7
         5: .line 5441
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         6: .line 5442
            iconst_m1
            istore 8 /* rsign */
         7: .line 5444
      StackMap locals: int
      StackMap stack:
            lload 2 /* y */
            lconst_0
            lcmp
            ifge 10
         8: .line 5445
            lload 2 /* y */
            lneg
            lstore 2 /* y */
         9: .line 5446
            iload 8 /* rsign */
            iconst_m1
            imul
            istore 8 /* rsign */
        10: .line 5449
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            bipush 32
            lushr
            lstore 9 /* m0_hi */
        start local 9 // long m0_hi
        11: .line 5450
            lload 0 /* x */
            ldc 4294967295
            land
            lstore 11 /* m0_lo */
        start local 11 // long m0_lo
        12: .line 5451
            lload 2 /* y */
            bipush 32
            lushr
            lstore 13 /* m1_hi */
        start local 13 // long m1_hi
        13: .line 5452
            lload 2 /* y */
            ldc 4294967295
            land
            lstore 15 /* m1_lo */
        start local 15 // long m1_lo
        14: .line 5453
            lload 11 /* m0_lo */
            lload 15 /* m1_lo */
            lmul
            lstore 6 /* product */
        15: .line 5454
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 17 /* m0 */
        start local 17 // long m0
        16: .line 5455
            lload 6 /* product */
            bipush 32
            lushr
            lstore 19 /* m1 */
        start local 19 // long m1
        17: .line 5456
            lload 9 /* m0_hi */
            lload 15 /* m1_lo */
            lmul
            lload 19 /* m1 */
            ladd
            lstore 6 /* product */
        18: .line 5457
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 19 /* m1 */
        19: .line 5458
            lload 6 /* product */
            bipush 32
            lushr
            lstore 21 /* m2 */
        start local 21 // long m2
        20: .line 5459
            lload 11 /* m0_lo */
            lload 13 /* m1_hi */
            lmul
            lload 19 /* m1 */
            ladd
            lstore 6 /* product */
        21: .line 5460
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 19 /* m1 */
        22: .line 5461
            lload 21 /* m2 */
            lload 6 /* product */
            bipush 32
            lushr
            ladd
            lstore 21 /* m2 */
        23: .line 5462
            lload 21 /* m2 */
            bipush 32
            lushr
            lstore 23 /* m3 */
        start local 23 // long m3
        24: .line 5463
            lload 21 /* m2 */
            ldc 4294967295
            land
            lstore 21 /* m2 */
        25: .line 5464
            lload 9 /* m0_hi */
            lload 13 /* m1_hi */
            lmul
            lload 21 /* m2 */
            ladd
            lstore 6 /* product */
        26: .line 5465
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 21 /* m2 */
        27: .line 5466
            lload 6 /* product */
            bipush 32
            lushr
            lload 23 /* m3 */
            ladd
            ldc 4294967295
            land
            lstore 23 /* m3 */
        28: .line 5467
            lload 23 /* m3 */
            lload 21 /* m2 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 25 /* mHi */
        start local 25 // long mHi
        29: .line 5468
            lload 19 /* m1 */
            lload 17 /* m0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 27 /* mLo */
        start local 27 // long mLo
        30: .line 5469
            lload 25 /* mHi */
            lload 27 /* mLo */
            iload 8 /* rsign */
            iload 4 /* scale */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound128:(JJIILjava/math/MathContext;)Ljava/math/BigDecimal;
            astore 29 /* res */
        start local 29 // java.math.BigDecimal res
        31: .line 5470
            aload 29 /* res */
            ifnull 33
        32: .line 5471
            aload 29 /* res */
            areturn
        33: .line 5473
      StackMap locals: long long int java.math.MathContext long int long long long long long long long long long long java.math.BigDecimal
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* x */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* y */
            iload 8 /* rsign */
            i2l
            lmul
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 4 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 29 /* res */
        34: .line 5474
            aload 29 /* res */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 29 // java.math.BigDecimal res
        end local 27 // long mLo
        end local 25 // long mHi
        end local 23 // long m3
        end local 21 // long m2
        end local 19 // long m1
        end local 17 // long m0
        end local 15 // long m1_lo
        end local 13 // long m1_hi
        end local 11 // long m0_lo
        end local 9 // long m0_hi
        end local 8 // int rsign
        end local 6 // long product
        end local 5 // java.math.MathContext mc
        end local 4 // int scale
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   35     0        x  J
            0   35     2        y  J
            0   35     4    scale  I
            0   35     5       mc  Ljava/math/MathContext;
            1   35     6  product  J
            4   35     8    rsign  I
           11   35     9    m0_hi  J
           12   35    11    m0_lo  J
           13   35    13    m1_hi  J
           14   35    15    m1_lo  J
           16   35    17       m0  J
           17   35    19       m1  J
           20   35    21       m2  J
           24   35    23       m3  J
           29   35    25      mHi  J
           30   35    27      mLo  J
           31   35    29      res  Ljava/math/BigDecimal;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal multiplyAndRound(long, java.math.BigInteger, int, java.math.MathContext);
    descriptor: (JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // long x
        start local 2 // java.math.BigInteger y
        start local 3 // int scale
        start local 4 // java.math.MathContext mc
         0: .line 5478
            lload 0 /* x */
            lconst_0
            lcmp
            ifne 2
         1: .line 5479
            iload 3 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 5481
      StackMap locals:
      StackMap stack:
            aload 2 /* y */
            lload 0 /* x */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            iload 3 /* scale */
            aload 4 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 4 // java.math.MathContext mc
        end local 3 // int scale
        end local 2 // java.math.BigInteger y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0      x  J
            0    3     2      y  Ljava/math/BigInteger;
            0    3     3  scale  I
            0    3     4     mc  Ljava/math/MathContext;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal multiplyAndRound(java.math.BigInteger, java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.math.BigInteger x
        start local 1 // java.math.BigInteger y
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 5485
            aload 0 /* x */
            aload 1 /* y */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iload 2 /* scale */
            aload 3 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 1 // java.math.BigInteger y
        end local 0 // java.math.BigInteger x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  Ljava/math/BigInteger;
            0    1     1      y  Ljava/math/BigInteger;
            0    1     2  scale  I
            0    1     3     mc  Ljava/math/MathContext;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal doRound128(long, long, int, int, java.math.MathContext);
    descriptor: (JJIILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=10, args_size=5
        start local 0 // long hi
        start local 2 // long lo
        start local 4 // int sign
        start local 5 // int scale
        start local 6 // java.math.MathContext mc
         0: .line 5493
            aload 6 /* mc */
            getfield java.math.MathContext.precision:I
            istore 7 /* mcp */
        start local 7 // int mcp
         1: .line 5495
            aconst_null
            astore 9 /* res */
        start local 9 // java.math.BigDecimal res
         2: .line 5496
            lload 0 /* hi */
            lload 2 /* lo */
            invokestatic java.math.BigDecimal.precision:(JJ)I
            iload 7 /* mcp */
            isub
            dup
            istore 8 /* drop */
        start local 8 // int drop
         3: ifle 6
            iload 8 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 6
         4: .line 5497
            iload 5 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 5 /* scale */
         5: .line 5498
            lload 0 /* hi */
            lload 2 /* lo */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            iload 4 /* sign */
            iload 5 /* scale */
            aload 6 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound128:(JJJIIII)Ljava/math/BigDecimal;
            astore 9 /* res */
         6: .line 5500
      StackMap locals: int int java.math.BigDecimal
      StackMap stack:
            aload 9 /* res */
            ifnull 8
         7: .line 5501
            aload 9 /* res */
            aload 6 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         8: .line 5503
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 9 // java.math.BigDecimal res
        end local 8 // int drop
        end local 7 // int mcp
        end local 6 // java.math.MathContext mc
        end local 5 // int scale
        end local 4 // int sign
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0     hi  J
            0    9     2     lo  J
            0    9     4   sign  I
            0    9     5  scale  I
            0    9     6     mc  Ljava/math/MathContext;
            1    9     7    mcp  I
            3    9     8   drop  I
            2    9     9    res  Ljava/math/BigDecimal;
    MethodParameters:
       Name  Flags
      hi     
      lo     
      sign   
      scale  
      mc     

  private static int precision(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // long hi
        start local 2 // long lo
         0: .line 5533
            lload 0 /* hi */
            lconst_0
            lcmp
            ifne 6
         1: .line 5534
            lload 2 /* lo */
            lconst_0
            lcmp
            iflt 3
         2: .line 5535
            lload 2 /* lo */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            ireturn
         3: .line 5537
      StackMap locals:
      StackMap stack:
            lload 2 /* lo */
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iconst_0
            aaload
            iconst_1
            laload
            invokestatic java.math.BigDecimal.unsignedLongCompareEq:(JJ)Z
            ifeq 4
            bipush 20
            goto 5
      StackMap locals:
      StackMap stack:
         4: bipush 19
      StackMap locals:
      StackMap stack: int
         5: ireturn
         6: .line 5540
      StackMap locals:
      StackMap stack:
            sipush 128
            lload 0 /* hi */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            iconst_1
            iadd
            sipush 1233
            imul
            bipush 12
            iushr
            istore 4 /* r */
        start local 4 // int r
         7: .line 5541
            iload 4 /* r */
            bipush 19
            isub
            istore 5 /* idx */
        start local 5 // int idx
         8: .line 5542
            iload 5 /* idx */
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            arraylength
            if_icmpge 12
            lload 0 /* hi */
            lload 2 /* lo */
         9: .line 5543
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iload 5 /* idx */
            aaload
            iconst_0
            laload
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iload 5 /* idx */
            aaload
            iconst_1
            laload
        10: .line 5542
            invokestatic java.math.BigDecimal.longLongCompareMagnitude:(JJJJ)Z
        11: .line 5543
            ifeq 13
      StackMap locals: int int
      StackMap stack:
        12: iload 4 /* r */
            goto 14
      StackMap locals:
      StackMap stack:
        13: iload 4 /* r */
            iconst_1
            iadd
        14: .line 5542
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 5 // int idx
        end local 4 // int r
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0    hi  J
            0   15     2    lo  J
            7   15     4     r  I
            8   15     5   idx  I
    MethodParameters:
      Name  Flags
      hi    
      lo    

  private static boolean longLongCompareMagnitude(long, long, long, long);
    descriptor: (JJJJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // long hi0
        start local 2 // long lo0
        start local 4 // long hi1
        start local 6 // long lo1
         0: .line 5551
            lload 0 /* hi0 */
            lload 4 /* hi1 */
            lcmp
            ifeq 3
         1: .line 5552
            lload 0 /* hi0 */
            lload 4 /* hi1 */
            lcmp
            ifge 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 5554
      StackMap locals:
      StackMap stack:
            lload 2 /* lo0 */
            ldc -9223372036854775808
            ladd
            lload 6 /* lo1 */
            ldc -9223372036854775808
            ladd
            lcmp
            ifge 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 6 // long lo1
        end local 4 // long hi1
        end local 2 // long lo0
        end local 0 // long hi0
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   hi0  J
            0    5     2   lo0  J
            0    5     4   hi1  J
            0    5     6   lo1  J
    MethodParameters:
      Name  Flags
      hi0   
      lo0   
      hi1   
      lo1   

  private static java.math.BigDecimal divide(long, int, long, int, int, int);
    descriptor: (JIJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=13, args_size=6
        start local 0 // long dividend
        start local 2 // int dividendScale
        start local 3 // long divisor
        start local 5 // int divisorScale
        start local 6 // int scale
        start local 7 // int roundingMode
         0: .line 5558
            lload 0 /* dividend */
            iload 6 /* scale */
            i2l
            iload 5 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            iload 2 /* dividendScale */
            if_icmple 12
         1: .line 5559
            iload 6 /* scale */
            iload 5 /* divisorScale */
            iadd
            istore 8 /* newScale */
        start local 8 // int newScale
         2: .line 5560
            iload 8 /* newScale */
            iload 2 /* dividendScale */
            isub
            istore 9 /* raise */
        start local 9 // int raise
         3: .line 5561
            iload 9 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 10
         4: .line 5562
            lload 0 /* dividend */
            lstore 10 /* xs */
        start local 10 // long xs
         5: .line 5563
            lload 10 /* xs */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 10 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 7
         6: .line 5564
            lload 10 /* xs */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
         7: .line 5566
      StackMap locals: int int long
      StackMap stack:
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* raise */
            laload
            lload 0 /* dividend */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 12 /* q */
        start local 12 // java.math.BigDecimal q
         8: .line 5567
            aload 12 /* q */
            ifnull 10
         9: .line 5568
            aload 12 /* q */
            areturn
        end local 12 // java.math.BigDecimal q
        end local 10 // long xs
        10: .line 5571
      StackMap locals:
      StackMap stack:
            lload 0 /* dividend */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 10 /* scaledDividend */
        start local 10 // java.math.BigInteger scaledDividend
        11: .line 5572
            aload 10 /* scaledDividend */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.BigInteger scaledDividend
        end local 9 // int raise
        end local 8 // int newScale
        12: .line 5574
      StackMap locals:
      StackMap stack:
            lload 3 /* divisor */
            iload 2 /* dividendScale */
            i2l
            iload 6 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* newScale */
        start local 8 // int newScale
        13: .line 5575
            iload 8 /* newScale */
            iload 5 /* divisorScale */
            isub
            istore 9 /* raise */
        start local 9 // int raise
        14: .line 5576
            iload 9 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 18
        15: .line 5577
            lload 3 /* divisor */
            lstore 10 /* ys */
        start local 10 // long ys
        16: .line 5578
            lload 10 /* ys */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 10 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        17: .line 5579
            lload 0 /* dividend */
            lload 10 /* ys */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
        end local 10 // long ys
        18: .line 5582
      StackMap locals: int int
      StackMap stack:
            lload 3 /* divisor */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 10 /* scaledDivisor */
        start local 10 // java.math.BigInteger scaledDivisor
        19: .line 5583
            lload 0 /* dividend */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 10 /* scaledDivisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.BigInteger scaledDivisor
        end local 9 // int raise
        end local 8 // int newScale
        end local 7 // int roundingMode
        end local 6 // int scale
        end local 5 // int divisorScale
        end local 3 // long divisor
        end local 2 // int dividendScale
        end local 0 // long dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0        dividend  J
            0   20     2   dividendScale  I
            0   20     3         divisor  J
            0   20     5    divisorScale  I
            0   20     6           scale  I
            0   20     7    roundingMode  I
            2   12     8        newScale  I
            3   12     9           raise  I
            5   10    10              xs  J
            8   10    12               q  Ljava/math/BigDecimal;
           11   12    10  scaledDividend  Ljava/math/BigInteger;
           13   20     8        newScale  I
           14   20     9           raise  I
           16   18    10              ys  J
           19   20    10   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(java.math.BigInteger, int, long, int, int, int);
    descriptor: (Ljava/math/BigInteger;IJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // java.math.BigInteger dividend
        start local 1 // int dividendScale
        start local 2 // long divisor
        start local 4 // int divisorScale
        start local 5 // int scale
        start local 6 // int roundingMode
         0: .line 5588
            aload 0 /* dividend */
            iload 5 /* scale */
            i2l
            iload 4 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            iload 1 /* dividendScale */
            if_icmple 5
         1: .line 5589
            iload 5 /* scale */
            iload 4 /* divisorScale */
            iadd
            istore 7 /* newScale */
        start local 7 // int newScale
         2: .line 5590
            iload 7 /* newScale */
            iload 1 /* dividendScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         3: .line 5591
            aload 0 /* dividend */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 9 /* scaledDividend */
        start local 9 // java.math.BigInteger scaledDividend
         4: .line 5592
            aload 9 /* scaledDividend */
            lload 2 /* divisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDividend
        end local 8 // int raise
        end local 7 // int newScale
         5: .line 5594
      StackMap locals:
      StackMap stack:
            lload 2 /* divisor */
            iload 1 /* dividendScale */
            i2l
            iload 5 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 7 /* newScale */
        start local 7 // int newScale
         6: .line 5595
            iload 7 /* newScale */
            iload 4 /* divisorScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         7: .line 5596
            iload 8 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 11
         8: .line 5597
            lload 2 /* divisor */
            lstore 9 /* ys */
        start local 9 // long ys
         9: .line 5598
            lload 9 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 9 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 11
        10: .line 5599
            aload 0 /* dividend */
            lload 9 /* ys */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 9 // long ys
        11: .line 5602
      StackMap locals: int int
      StackMap stack:
            lload 2 /* divisor */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 9 /* scaledDivisor */
        start local 9 // java.math.BigInteger scaledDivisor
        12: .line 5603
            aload 0 /* dividend */
            aload 9 /* scaledDivisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDivisor
        end local 8 // int raise
        end local 7 // int newScale
        end local 6 // int roundingMode
        end local 5 // int scale
        end local 4 // int divisorScale
        end local 2 // long divisor
        end local 1 // int dividendScale
        end local 0 // java.math.BigInteger dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0        dividend  Ljava/math/BigInteger;
            0   13     1   dividendScale  I
            0   13     2         divisor  J
            0   13     4    divisorScale  I
            0   13     5           scale  I
            0   13     6    roundingMode  I
            2    5     7        newScale  I
            3    5     8           raise  I
            4    5     9  scaledDividend  Ljava/math/BigInteger;
            6   13     7        newScale  I
            7   13     8           raise  I
            9   11     9              ys  J
           12   13     9   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(long, int, java.math.BigInteger, int, int, int);
    descriptor: (JILjava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // long dividend
        start local 2 // int dividendScale
        start local 3 // java.math.BigInteger divisor
        start local 4 // int divisorScale
        start local 5 // int scale
        start local 6 // int roundingMode
         0: .line 5608
            lload 0 /* dividend */
            iload 5 /* scale */
            i2l
            iload 4 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            iload 2 /* dividendScale */
            if_icmple 5
         1: .line 5609
            iload 5 /* scale */
            iload 4 /* divisorScale */
            iadd
            istore 7 /* newScale */
        start local 7 // int newScale
         2: .line 5610
            iload 7 /* newScale */
            iload 2 /* dividendScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         3: .line 5611
            lload 0 /* dividend */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 9 /* scaledDividend */
        start local 9 // java.math.BigInteger scaledDividend
         4: .line 5612
            aload 9 /* scaledDividend */
            aload 3 /* divisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDividend
        end local 8 // int raise
        end local 7 // int newScale
         5: .line 5614
      StackMap locals:
      StackMap stack:
            aload 3 /* divisor */
            iload 2 /* dividendScale */
            i2l
            iload 5 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* newScale */
        start local 7 // int newScale
         6: .line 5615
            iload 7 /* newScale */
            iload 4 /* divisorScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         7: .line 5616
            aload 3 /* divisor */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 9 /* scaledDivisor */
        start local 9 // java.math.BigInteger scaledDivisor
         8: .line 5617
            lload 0 /* dividend */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 9 /* scaledDivisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDivisor
        end local 8 // int raise
        end local 7 // int newScale
        end local 6 // int roundingMode
        end local 5 // int scale
        end local 4 // int divisorScale
        end local 3 // java.math.BigInteger divisor
        end local 2 // int dividendScale
        end local 0 // long dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0        dividend  J
            0    9     2   dividendScale  I
            0    9     3         divisor  Ljava/math/BigInteger;
            0    9     4    divisorScale  I
            0    9     5           scale  I
            0    9     6    roundingMode  I
            2    5     7        newScale  I
            3    5     8           raise  I
            4    5     9  scaledDividend  Ljava/math/BigInteger;
            6    9     7        newScale  I
            7    9     8           raise  I
            8    9     9   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(java.math.BigInteger, int, java.math.BigInteger, int, int, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=6
        start local 0 // java.math.BigInteger dividend
        start local 1 // int dividendScale
        start local 2 // java.math.BigInteger divisor
        start local 3 // int divisorScale
        start local 4 // int scale
        start local 5 // int roundingMode
         0: .line 5622
            aload 0 /* dividend */
            iload 4 /* scale */
            i2l
            iload 3 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            iload 1 /* dividendScale */
            if_icmple 5
         1: .line 5623
            iload 4 /* scale */
            iload 3 /* divisorScale */
            iadd
            istore 6 /* newScale */
        start local 6 // int newScale
         2: .line 5624
            iload 6 /* newScale */
            iload 1 /* dividendScale */
            isub
            istore 7 /* raise */
        start local 7 // int raise
         3: .line 5625
            aload 0 /* dividend */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 8 /* scaledDividend */
        start local 8 // java.math.BigInteger scaledDividend
         4: .line 5626
            aload 8 /* scaledDividend */
            aload 2 /* divisor */
            iload 4 /* scale */
            iload 5 /* roundingMode */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 8 // java.math.BigInteger scaledDividend
        end local 7 // int raise
        end local 6 // int newScale
         5: .line 5628
      StackMap locals:
      StackMap stack:
            aload 2 /* divisor */
            iload 1 /* dividendScale */
            i2l
            iload 4 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 6 /* newScale */
        start local 6 // int newScale
         6: .line 5629
            iload 6 /* newScale */
            iload 3 /* divisorScale */
            isub
            istore 7 /* raise */
        start local 7 // int raise
         7: .line 5630
            aload 2 /* divisor */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 8 /* scaledDivisor */
        start local 8 // java.math.BigInteger scaledDivisor
         8: .line 5631
            aload 0 /* dividend */
            aload 8 /* scaledDivisor */
            iload 4 /* scale */
            iload 5 /* roundingMode */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 8 // java.math.BigInteger scaledDivisor
        end local 7 // int raise
        end local 6 // int newScale
        end local 5 // int roundingMode
        end local 4 // int scale
        end local 3 // int divisorScale
        end local 2 // java.math.BigInteger divisor
        end local 1 // int dividendScale
        end local 0 // java.math.BigInteger dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0        dividend  Ljava/math/BigInteger;
            0    9     1   dividendScale  I
            0    9     2         divisor  Ljava/math/BigInteger;
            0    9     3    divisorScale  I
            0    9     4           scale  I
            0    9     5    roundingMode  I
            2    5     6        newScale  I
            3    5     7           raise  I
            4    5     8  scaledDividend  Ljava/math/BigInteger;
            6    9     6        newScale  I
            7    9     7           raise  I
            8    9     8   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.math.BigDecimal
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$java$math$RoundingMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 228
            getstatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic java.math.RoundingMode.values:()[Ljava/math/RoundingMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 7
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            bipush 8
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic java.math.RoundingMode.UP:Ljava/math/RoundingMode;
            invokevirtual java.math.RoundingMode.ordinal:()I
            iconst_1
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            dup
            putstatic java.math.BigDecimal.$SWITCH_TABLE$java$math$RoundingMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
}
Signature: Ljava/lang/Number;Ljava/lang/Comparable<Ljava/math/BigDecimal;>;
SourceFile: "BigDecimal.java"
NestMembers:
  java.math.BigDecimal$1  java.math.BigDecimal$LongOverflow  java.math.BigDecimal$StringBuilderHelper  java.math.BigDecimal$UnsafeHolder
InnerClasses:
  java.math.BigDecimal$1
  private LongOverflow = java.math.BigDecimal$LongOverflow of java.math.BigDecimal
  StringBuilderHelper = java.math.BigDecimal$StringBuilderHelper of java.math.BigDecimal
  private UnsafeHolder = java.math.BigDecimal$UnsafeHolder of java.math.BigDecimal