final class freemarker.core.NumericalOutput extends freemarker.core.Interpolation
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: freemarker.core.NumericalOutput
  super_class: freemarker.core.Interpolation
{
  private final freemarker.core.Expression expression;
    descriptor: Lfreemarker/core/Expression;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean hasFormat;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final freemarker.core.MarkupOutputFormat autoEscapeOutputFormat;
    descriptor: Lfreemarker/core/MarkupOutputFormat;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile freemarker.core.NumericalOutput$FormatHolder formatCache;
    descriptor: Lfreemarker/core/NumericalOutput$FormatHolder;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  void <init>(freemarker.core.Expression, freemarker.core.MarkupOutputFormat);
    descriptor: (Lfreemarker/core/Expression;Lfreemarker/core/MarkupOutputFormat;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // freemarker.core.NumericalOutput this
        start local 1 // freemarker.core.Expression expression
        start local 2 // freemarker.core.MarkupOutputFormat autoEscapeOutputFormat
         0: .line 46
            aload 0 /* this */
            invokespecial freemarker.core.Interpolation.<init>:()V
         1: .line 47
            aload 0 /* this */
            aload 1 /* expression */
            putfield freemarker.core.NumericalOutput.expression:Lfreemarker/core/Expression;
         2: .line 48
            aload 0 /* this */
            iconst_0
            putfield freemarker.core.NumericalOutput.hasFormat:Z
         3: .line 49
            aload 0 /* this */
            iconst_0
            putfield freemarker.core.NumericalOutput.minFracDigits:I
         4: .line 50
            aload 0 /* this */
            iconst_0
            putfield freemarker.core.NumericalOutput.maxFracDigits:I
         5: .line 51
            aload 0 /* this */
            aload 2 /* autoEscapeOutputFormat */
            putfield freemarker.core.NumericalOutput.autoEscapeOutputFormat:Lfreemarker/core/MarkupOutputFormat;
         6: .line 52
            return
        end local 2 // freemarker.core.MarkupOutputFormat autoEscapeOutputFormat
        end local 1 // freemarker.core.Expression expression
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                    this  Lfreemarker/core/NumericalOutput;
            0    7     1              expression  Lfreemarker/core/Expression;
            0    7     2  autoEscapeOutputFormat  Lfreemarker/core/MarkupOutputFormat;
    MethodParameters:
                        Name  Flags
      expression              
      autoEscapeOutputFormat  

  void <init>(freemarker.core.Expression, int, int, freemarker.core.MarkupOutputFormat);
    descriptor: (Lfreemarker/core/Expression;IILfreemarker/core/MarkupOutputFormat;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // freemarker.core.NumericalOutput this
        start local 1 // freemarker.core.Expression expression
        start local 2 // int minFracDigits
        start local 3 // int maxFracDigits
        start local 4 // freemarker.core.MarkupOutputFormat autoEscapeOutputFormat
         0: .line 54
            aload 0 /* this */
            invokespecial freemarker.core.Interpolation.<init>:()V
         1: .line 57
            aload 0 /* this */
            aload 1 /* expression */
            putfield freemarker.core.NumericalOutput.expression:Lfreemarker/core/Expression;
         2: .line 58
            aload 0 /* this */
            iconst_1
            putfield freemarker.core.NumericalOutput.hasFormat:Z
         3: .line 59
            aload 0 /* this */
            iload 2 /* minFracDigits */
            putfield freemarker.core.NumericalOutput.minFracDigits:I
         4: .line 60
            aload 0 /* this */
            iload 3 /* maxFracDigits */
            putfield freemarker.core.NumericalOutput.maxFracDigits:I
         5: .line 61
            aload 0 /* this */
            aload 4 /* autoEscapeOutputFormat */
            putfield freemarker.core.NumericalOutput.autoEscapeOutputFormat:Lfreemarker/core/MarkupOutputFormat;
         6: .line 62
            return
        end local 4 // freemarker.core.MarkupOutputFormat autoEscapeOutputFormat
        end local 3 // int maxFracDigits
        end local 2 // int minFracDigits
        end local 1 // freemarker.core.Expression expression
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                    this  Lfreemarker/core/NumericalOutput;
            0    7     1              expression  Lfreemarker/core/Expression;
            0    7     2           minFracDigits  I
            0    7     3           maxFracDigits  I
            0    7     4  autoEscapeOutputFormat  Lfreemarker/core/MarkupOutputFormat;
    MethodParameters:
                        Name  Flags
      expression              
      minFracDigits           
      maxFracDigits           
      autoEscapeOutputFormat  

  freemarker.core.TemplateElement[] accept(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)[Lfreemarker/core/TemplateElement;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // freemarker.core.NumericalOutput this
        start local 1 // freemarker.core.Environment env
         0: .line 66
            aload 0 /* this */
            aload 1 /* env */
            invokevirtual freemarker.core.NumericalOutput.calculateInterpolatedStringOrMarkup:(Lfreemarker/core/Environment;)Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         1: .line 67
            aload 1 /* env */
            invokevirtual freemarker.core.Environment.getOut:()Ljava/io/Writer;
            astore 3 /* out */
        start local 3 // java.io.Writer out
         2: .line 68
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.autoEscapeOutputFormat:Lfreemarker/core/MarkupOutputFormat;
            ifnull 5
         3: .line 69
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.autoEscapeOutputFormat:Lfreemarker/core/MarkupOutputFormat;
            aload 2 /* s */
            aload 3 /* out */
            invokevirtual freemarker.core.MarkupOutputFormat.output:(Ljava/lang/String;Ljava/io/Writer;)V
         4: .line 70
            goto 6
         5: .line 71
      StackMap locals: java.lang.String java.io.Writer
      StackMap stack:
            aload 3 /* out */
            aload 2 /* s */
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
         6: .line 73
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.io.Writer out
        end local 2 // java.lang.String s
        end local 1 // freemarker.core.Environment env
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lfreemarker/core/NumericalOutput;
            0    7     1   env  Lfreemarker/core/Environment;
            1    7     2     s  Ljava/lang/String;
            2    7     3   out  Ljava/io/Writer;
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
      Name  Flags
      env   

  protected java.lang.String calculateInterpolatedStringOrMarkup(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // freemarker.core.NumericalOutput this
        start local 1 // freemarker.core.Environment env
         0: .line 78
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.expression:Lfreemarker/core/Expression;
            aload 1 /* env */
            invokevirtual freemarker.core.Expression.evalToNumber:(Lfreemarker/core/Environment;)Ljava/lang/Number;
            astore 2 /* num */
        start local 2 // java.lang.Number num
         1: .line 80
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.formatCache:Lfreemarker/core/NumericalOutput$FormatHolder;
            astore 3 /* fmth */
        start local 3 // freemarker.core.NumericalOutput$FormatHolder fmth
         2: .line 81
            aload 3 /* fmth */
            ifnull 3
            aload 3 /* fmth */
            getfield freemarker.core.NumericalOutput$FormatHolder.locale:Ljava/util/Locale;
            aload 1 /* env */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokevirtual java.util.Locale.equals:(Ljava/lang/Object;)Z
            ifne 20
         3: .line 82
      StackMap locals: java.lang.Number freemarker.core.NumericalOutput$FormatHolder
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         4: .line 83
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.formatCache:Lfreemarker/core/NumericalOutput$FormatHolder;
            astore 3 /* fmth */
         5: .line 84
            aload 3 /* fmth */
            ifnull 6
            aload 3 /* fmth */
            getfield freemarker.core.NumericalOutput$FormatHolder.locale:Ljava/util/Locale;
            aload 1 /* env */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokevirtual java.util.Locale.equals:(Ljava/lang/Object;)Z
            ifne 16
         6: .line 85
      StackMap locals: freemarker.core.NumericalOutput
      StackMap stack:
            aload 1 /* env */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokestatic java.text.NumberFormat.getNumberInstance:(Ljava/util/Locale;)Ljava/text/NumberFormat;
            astore 5 /* fmt */
        start local 5 // java.text.NumberFormat fmt
         7: .line 86
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.hasFormat:Z
            ifeq 11
         8: .line 87
            aload 5 /* fmt */
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.minFracDigits:I
            invokevirtual java.text.NumberFormat.setMinimumFractionDigits:(I)V
         9: .line 88
            aload 5 /* fmt */
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.maxFracDigits:I
            invokevirtual java.text.NumberFormat.setMaximumFractionDigits:(I)V
        10: .line 89
            goto 13
        11: .line 90
      StackMap locals: java.text.NumberFormat
      StackMap stack:
            aload 5 /* fmt */
            iconst_0
            invokevirtual java.text.NumberFormat.setMinimumFractionDigits:(I)V
        12: .line 91
            aload 5 /* fmt */
            bipush 50
            invokevirtual java.text.NumberFormat.setMaximumFractionDigits:(I)V
        13: .line 93
      StackMap locals:
      StackMap stack:
            aload 5 /* fmt */
            iconst_0
            invokevirtual java.text.NumberFormat.setGroupingUsed:(Z)V
        14: .line 94
            aload 0 /* this */
            new freemarker.core.NumericalOutput$FormatHolder
            dup
            aload 5 /* fmt */
            aload 1 /* env */
            invokevirtual freemarker.core.Environment.getLocale:()Ljava/util/Locale;
            invokespecial freemarker.core.NumericalOutput$FormatHolder.<init>:(Ljava/text/NumberFormat;Ljava/util/Locale;)V
            putfield freemarker.core.NumericalOutput.formatCache:Lfreemarker/core/NumericalOutput$FormatHolder;
        15: .line 95
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.formatCache:Lfreemarker/core/NumericalOutput$FormatHolder;
            astore 3 /* fmth */
        end local 5 // java.text.NumberFormat fmt
        16: .line 82
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        17: goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: aload 4
            monitorexit
        19: athrow
        20: .line 102
      StackMap locals:
      StackMap stack:
            aload 3 /* fmth */
            getfield freemarker.core.NumericalOutput$FormatHolder.format:Ljava/text/NumberFormat;
            aload 2 /* num */
            invokevirtual java.text.NumberFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            astore 4 /* s */
        start local 4 // java.lang.String s
        21: .line 103
            aload 4 /* s */
            areturn
        end local 4 // java.lang.String s
        end local 3 // freemarker.core.NumericalOutput$FormatHolder fmth
        end local 2 // java.lang.Number num
        end local 1 // freemarker.core.Environment env
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lfreemarker/core/NumericalOutput;
            0   22     1   env  Lfreemarker/core/Environment;
            1   22     2   num  Ljava/lang/Number;
            2   22     3  fmth  Lfreemarker/core/NumericalOutput$FormatHolder;
            7   16     5   fmt  Ljava/text/NumberFormat;
           21   22     4     s  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4    17      18  any
          18    19      18  any
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      env   

  protected java.lang.String dump(boolean, boolean);
    descriptor: (ZZ)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // freemarker.core.NumericalOutput this
        start local 1 // boolean canonical
        start local 2 // boolean inStringLiteral
         0: .line 108
            new java.lang.StringBuilder
            dup
            ldc "#{"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuilder buf
         1: .line 109
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.expression:Lfreemarker/core/Expression;
            invokevirtual freemarker.core.Expression.getCanonicalForm:()Ljava/lang/String;
            astore 4 /* exprCF */
        start local 4 // java.lang.String exprCF
         2: .line 110
            aload 3 /* buf */
            iload 2 /* inStringLiteral */
            ifeq 3
            aload 4 /* exprCF */
            bipush 34
            invokestatic freemarker.template.utility.StringUtil.FTLStringLiteralEnc:(Ljava/lang/String;C)Ljava/lang/String;
            goto 4
      StackMap locals: freemarker.core.NumericalOutput int int java.lang.StringBuilder java.lang.String
      StackMap stack: java.lang.StringBuilder
         3: aload 4 /* exprCF */
      StackMap locals: freemarker.core.NumericalOutput int int java.lang.StringBuilder java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 111
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.hasFormat:Z
            ifeq 11
         6: .line 112
            aload 3 /* buf */
            ldc " ; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 113
            aload 3 /* buf */
            ldc "m"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 114
            aload 3 /* buf */
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.minFracDigits:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         9: .line 115
            aload 3 /* buf */
            ldc "M"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 116
            aload 3 /* buf */
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.maxFracDigits:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        11: .line 118
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 119
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.String exprCF
        end local 3 // java.lang.StringBuilder buf
        end local 2 // boolean inStringLiteral
        end local 1 // boolean canonical
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lfreemarker/core/NumericalOutput;
            0   13     1        canonical  Z
            0   13     2  inStringLiteral  Z
            1   13     3              buf  Ljava/lang/StringBuilder;
            2   13     4           exprCF  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      canonical        
      inStringLiteral  

  java.lang.String getNodeTypeSymbol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.NumericalOutput this
         0: .line 124
            ldc "#{...}"
            areturn
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/NumericalOutput;

  boolean heedsOpeningWhitespace();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.NumericalOutput this
         0: .line 129
            iconst_1
            ireturn
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/NumericalOutput;

  boolean heedsTrailingWhitespace();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.NumericalOutput this
         0: .line 134
            iconst_1
            ireturn
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/NumericalOutput;

  int getParameterCount();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.NumericalOutput this
         0: .line 149
            iconst_3
            ireturn
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/NumericalOutput;

  java.lang.Object getParameterValue(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.NumericalOutput this
        start local 1 // int idx
         0: .line 154
            iload 1 /* idx */
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 5
              default: 8
          }
         1: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.expression:Lfreemarker/core/Expression;
            areturn
         2: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.hasFormat:Z
            ifeq 3
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.minFracDigits:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Integer
         4: areturn
         5: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.hasFormat:Z
            ifeq 6
            aload 0 /* this */
            getfield freemarker.core.NumericalOutput.maxFracDigits:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            goto 7
      StackMap locals:
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Integer
         7: areturn
         8: .line 158
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
        end local 1 // int idx
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lfreemarker/core/NumericalOutput;
            0    9     1   idx  I
    MethodParameters:
      Name  Flags
      idx   

  freemarker.core.ParameterRole getParameterRole(int);
    descriptor: (I)Lfreemarker/core/ParameterRole;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.NumericalOutput this
        start local 1 // int idx
         0: .line 164
            iload 1 /* idx */
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 4
          }
         1: .line 165
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.ParameterRole.CONTENT:Lfreemarker/core/ParameterRole;
            areturn
         2: .line 166
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.ParameterRole.MINIMUM_DECIMALS:Lfreemarker/core/ParameterRole;
            areturn
         3: .line 167
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.ParameterRole.MAXIMUM_DECIMALS:Lfreemarker/core/ParameterRole;
            areturn
         4: .line 168
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
        end local 1 // int idx
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lfreemarker/core/NumericalOutput;
            0    5     1   idx  I
    MethodParameters:
      Name  Flags
      idx   

  boolean isNestedBlockRepeater();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.NumericalOutput this
         0: .line 174
            iconst_0
            ireturn
        end local 0 // freemarker.core.NumericalOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/NumericalOutput;

  protected java.lang.Object calculateInterpolatedStringOrMarkup(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual freemarker.core.NumericalOutput.calculateInterpolatedStringOrMarkup:(Lfreemarker/core/Environment;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws freemarker.template.TemplateException
}
SourceFile: "NumericalOutput.java"
NestMembers:
  freemarker.core.NumericalOutput$FormatHolder
InnerClasses:
  private FormatHolder = freemarker.core.NumericalOutput$FormatHolder of freemarker.core.NumericalOutput