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

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

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

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

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

  void <init>(freemarker.core.Expression, freemarker.core.Expression, freemarker.core.OutputFormat, boolean);
    descriptor: (Lfreemarker/core/Expression;Lfreemarker/core/Expression;Lfreemarker/core/OutputFormat;Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // freemarker.core.DollarVariable this
        start local 1 // freemarker.core.Expression expression
        start local 2 // freemarker.core.Expression escapedExpression
        start local 3 // freemarker.core.OutputFormat outputFormat
        start local 4 // boolean autoEscape
         0: .line 47
            aload 0 /* this */
            invokespecial freemarker.core.Interpolation.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* expression */
            putfield freemarker.core.DollarVariable.expression:Lfreemarker/core/Expression;
         2: .line 51
            aload 0 /* this */
            aload 2 /* escapedExpression */
            putfield freemarker.core.DollarVariable.escapedExpression:Lfreemarker/core/Expression;
         3: .line 52
            aload 0 /* this */
            aload 3 /* outputFormat */
            putfield freemarker.core.DollarVariable.outputFormat:Lfreemarker/core/OutputFormat;
         4: .line 53
            aload 0 /* this */
         5: .line 54
            aload 3 /* outputFormat */
            instanceof freemarker.core.MarkupOutputFormat
            ifeq 6
            aload 3 /* outputFormat */
            goto 7
      StackMap locals: freemarker.core.DollarVariable freemarker.core.Expression freemarker.core.Expression freemarker.core.OutputFormat int
      StackMap stack: freemarker.core.DollarVariable
         6: aconst_null
      StackMap locals: freemarker.core.DollarVariable freemarker.core.Expression freemarker.core.Expression freemarker.core.OutputFormat int
      StackMap stack: freemarker.core.DollarVariable freemarker.core.OutputFormat
         7: checkcast freemarker.core.MarkupOutputFormat
         8: .line 53
            putfield freemarker.core.DollarVariable.markupOutputFormat:Lfreemarker/core/MarkupOutputFormat;
         9: .line 55
            aload 0 /* this */
            iload 4 /* autoEscape */
            putfield freemarker.core.DollarVariable.autoEscape:Z
        10: .line 56
            return
        end local 4 // boolean autoEscape
        end local 3 // freemarker.core.OutputFormat outputFormat
        end local 2 // freemarker.core.Expression escapedExpression
        end local 1 // freemarker.core.Expression expression
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lfreemarker/core/DollarVariable;
            0   11     1         expression  Lfreemarker/core/Expression;
            0   11     2  escapedExpression  Lfreemarker/core/Expression;
            0   11     3       outputFormat  Lfreemarker/core/OutputFormat;
            0   11     4         autoEscape  Z
    MethodParameters:
                   Name  Flags
      expression         
      escapedExpression  
      outputFormat       
      autoEscape         

  freemarker.core.TemplateElement[] accept(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)[Lfreemarker/core/TemplateElement;
    flags: (0x0000) 
    Code:
      stack=9, locals=7, args_size=2
        start local 0 // freemarker.core.DollarVariable this
        start local 1 // freemarker.core.Environment env
         0: .line 63
            aload 0 /* this */
            aload 1 /* env */
            invokevirtual freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup:(Lfreemarker/core/Environment;)Ljava/lang/Object;
            astore 2 /* moOrStr */
        start local 2 // java.lang.Object moOrStr
         1: .line 64
            aload 1 /* env */
            invokevirtual freemarker.core.Environment.getOut:()Ljava/io/Writer;
            astore 3 /* out */
        start local 3 // java.io.Writer out
         2: .line 65
            aload 2 /* moOrStr */
            instanceof java.lang.String
            ifeq 9
         3: .line 66
            aload 2 /* moOrStr */
            checkcast java.lang.String
            astore 4 /* s */
        start local 4 // java.lang.String s
         4: .line 67
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.autoEscape:Z
            ifeq 7
         5: .line 68
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.markupOutputFormat:Lfreemarker/core/MarkupOutputFormat;
            aload 4 /* s */
            aload 3 /* out */
            invokevirtual freemarker.core.MarkupOutputFormat.output:(Ljava/lang/String;Ljava/io/Writer;)V
         6: .line 69
            goto 25
         7: .line 70
      StackMap locals: java.lang.Object java.io.Writer java.lang.String
      StackMap stack:
            aload 3 /* out */
            aload 4 /* s */
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        end local 4 // java.lang.String s
         8: .line 72
            goto 25
         9: .line 73
      StackMap locals:
      StackMap stack:
            aload 2 /* moOrStr */
            checkcast freemarker.core.TemplateMarkupOutputModel
            astore 4 /* mo */
        start local 4 // freemarker.core.TemplateMarkupOutputModel mo
        10: .line 74
            aload 4 /* mo */
            invokeinterface freemarker.core.TemplateMarkupOutputModel.getOutputFormat:()Lfreemarker/core/MarkupOutputFormat;
            astore 5 /* moOF */
        start local 5 // freemarker.core.MarkupOutputFormat moOF
        11: .line 76
            aload 5 /* moOF */
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.outputFormat:Lfreemarker/core/OutputFormat;
            if_acmpeq 24
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.outputFormat:Lfreemarker/core/OutputFormat;
            invokevirtual freemarker.core.OutputFormat.isOutputFormatMixingAllowed:()Z
            ifne 24
        12: .line 79
            aload 5 /* moOF */
            aload 4 /* mo */
            invokevirtual freemarker.core.MarkupOutputFormat.getSourcePlainText:(Lfreemarker/core/TemplateMarkupOutputModel;)Ljava/lang/String;
            astore 6 /* srcPlainText */
        start local 6 // java.lang.String srcPlainText
        13: .line 80
            aload 6 /* srcPlainText */
            ifnonnull 19
        14: .line 81
            new freemarker.core._TemplateModelException
            dup
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.escapedExpression:Lfreemarker/core/Expression;
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
        15: .line 82
            ldc "The value to print is in "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedToString
            dup
            aload 5 /* moOF */
            invokespecial freemarker.core._DelayedToString.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
        16: .line 83
            ldc " format, which differs from the current output format, "
            aastore
            dup
            iconst_3
        17: .line 84
            new freemarker.core._DelayedToString
            dup
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.outputFormat:Lfreemarker/core/OutputFormat;
            invokespecial freemarker.core._DelayedToString.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_4
            ldc ". Format conversion wasn't possible."
        18: .line 81
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Lfreemarker/core/Expression;[Ljava/lang/Object;)V
            athrow
        19: .line 86
      StackMap locals: freemarker.core.TemplateMarkupOutputModel freemarker.core.MarkupOutputFormat java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.outputFormat:Lfreemarker/core/OutputFormat;
            instanceof freemarker.core.MarkupOutputFormat
            ifeq 22
        20: .line 87
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.outputFormat:Lfreemarker/core/OutputFormat;
            checkcast freemarker.core.MarkupOutputFormat
            aload 6 /* srcPlainText */
            aload 3 /* out */
            invokevirtual freemarker.core.MarkupOutputFormat.output:(Ljava/lang/String;Ljava/io/Writer;)V
        21: .line 88
            goto 25
        22: .line 89
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 6 /* srcPlainText */
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        end local 6 // java.lang.String srcPlainText
        23: .line 91
            goto 25
        24: .line 92
      StackMap locals:
      StackMap stack:
            aload 5 /* moOF */
            aload 4 /* mo */
            aload 3 /* out */
            invokevirtual freemarker.core.MarkupOutputFormat.output:(Lfreemarker/core/TemplateMarkupOutputModel;Ljava/io/Writer;)V
        end local 5 // freemarker.core.MarkupOutputFormat moOF
        end local 4 // freemarker.core.TemplateMarkupOutputModel mo
        25: .line 95
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.io.Writer out
        end local 2 // java.lang.Object moOrStr
        end local 1 // freemarker.core.Environment env
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0          this  Lfreemarker/core/DollarVariable;
            0   26     1           env  Lfreemarker/core/Environment;
            1   26     2       moOrStr  Ljava/lang/Object;
            2   26     3           out  Ljava/io/Writer;
            4    8     4             s  Ljava/lang/String;
           10   25     4            mo  Lfreemarker/core/TemplateMarkupOutputModel;
           11   25     5          moOF  Lfreemarker/core/MarkupOutputFormat;
           13   23     6  srcPlainText  Ljava/lang/String;
    Exceptions:
      throws freemarker.template.TemplateException, java.io.IOException
    MethodParameters:
      Name  Flags
      env   

  protected java.lang.Object calculateInterpolatedStringOrMarkup(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // freemarker.core.DollarVariable this
        start local 1 // freemarker.core.Environment env
         0: .line 100
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.escapedExpression:Lfreemarker/core/Expression;
            aload 1 /* env */
            invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.escapedExpression:Lfreemarker/core/Expression;
            aconst_null
            aload 1 /* env */
            invokestatic freemarker.core.EvalUtil.coerceModelToStringOrMarkup:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/Object;
            areturn
        end local 1 // freemarker.core.Environment env
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/DollarVariable;
            0    1     1   env  Lfreemarker/core/Environment;
    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=6, args_size=3
        start local 0 // freemarker.core.DollarVariable this
        start local 1 // boolean canonical
        start local 2 // boolean inStringLiteral
         0: .line 105
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 106
            aload 0 /* this */
            invokevirtual freemarker.core.DollarVariable.getTemplate:()Lfreemarker/template/Template;
            invokevirtual freemarker.template.Template.getInterpolationSyntax:()I
            istore 4 /* syntax */
        start local 4 // int syntax
         2: .line 107
            aload 3 /* sb */
            iload 4 /* syntax */
            bipush 22
            if_icmpeq 3
            ldc "${"
            goto 4
      StackMap locals: freemarker.core.DollarVariable int int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder
         3: ldc "[="
      StackMap locals: freemarker.core.DollarVariable int int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 108
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.expression:Lfreemarker/core/Expression;
            invokevirtual freemarker.core.Expression.getCanonicalForm:()Ljava/lang/String;
            astore 5 /* exprCF */
        start local 5 // java.lang.String exprCF
         6: .line 109
            aload 3 /* sb */
            iload 2 /* inStringLiteral */
            ifeq 7
            aload 5 /* exprCF */
            bipush 34
            invokestatic freemarker.template.utility.StringUtil.FTLStringLiteralEnc:(Ljava/lang/String;C)Ljava/lang/String;
            goto 8
      StackMap locals: freemarker.core.DollarVariable int int java.lang.StringBuilder int java.lang.String
      StackMap stack: java.lang.StringBuilder
         7: aload 5 /* exprCF */
      StackMap locals: freemarker.core.DollarVariable int int java.lang.StringBuilder int java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 110
            aload 3 /* sb */
            iload 4 /* syntax */
            bipush 22
            if_icmpeq 10
            ldc "}"
            goto 11
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        10: ldc "]"
      StackMap locals: freemarker.core.DollarVariable int int java.lang.StringBuilder int java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        11: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 111
            iload 1 /* canonical */
            ifne 14
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.expression:Lfreemarker/core/Expression;
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.escapedExpression:Lfreemarker/core/Expression;
            if_acmpeq 14
        13: .line 112
            aload 3 /* sb */
            ldc " auto-escaped"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 114
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // java.lang.String exprCF
        end local 4 // int syntax
        end local 3 // java.lang.StringBuilder sb
        end local 2 // boolean inStringLiteral
        end local 1 // boolean canonical
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lfreemarker/core/DollarVariable;
            0   15     1        canonical  Z
            0   15     2  inStringLiteral  Z
            1   15     3               sb  Ljava/lang/StringBuilder;
            2   15     4           syntax  I
            6   15     5           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.DollarVariable this
         0: .line 119
            ldc "${...}"
            areturn
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/DollarVariable;

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

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

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

  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.DollarVariable this
        start local 1 // int idx
         0: .line 139
            iload 1 /* idx */
            ifeq 1
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         1: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.DollarVariable.expression:Lfreemarker/core/Expression;
            areturn
        end local 1 // int idx
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/DollarVariable;
            0    2     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.DollarVariable this
        start local 1 // int idx
         0: .line 145
            iload 1 /* idx */
            ifeq 1
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         1: .line 146
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.ParameterRole.CONTENT:Lfreemarker/core/ParameterRole;
            areturn
        end local 1 // int idx
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/DollarVariable;
            0    2     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.DollarVariable this
         0: .line 151
            iconst_0
            ireturn
        end local 0 // freemarker.core.DollarVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/DollarVariable;
}
SourceFile: "DollarVariable.java"