class freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection implements freemarker.template.TemplateMethodModelEx
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection
  super_class: java.lang.Object
{
  private final freemarker.core.Environment env;
    descriptor: Lfreemarker/core/Environment;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.template.TemplateCollectionModel coll;
    descriptor: Lfreemarker/template/TemplateCollectionModel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final freemarker.core.BuiltInsForSequences$joinBI this$1;
    descriptor: Lfreemarker/core/BuiltInsForSequences$joinBI;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(freemarker.core.BuiltInsForSequences$joinBI, freemarker.core.Environment, freemarker.template.TemplateCollectionModel);
    descriptor: (Lfreemarker/core/BuiltInsForSequences$joinBI;Lfreemarker/core/Environment;Lfreemarker/template/TemplateCollectionModel;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
        start local 2 // freemarker.core.Environment env
        start local 3 // freemarker.template.TemplateCollectionModel coll
         0: .line 186
            aload 0 /* this */
            aload 1
            putfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 187
            aload 0 /* this */
            aload 2 /* env */
            putfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.env:Lfreemarker/core/Environment;
         2: .line 188
            aload 0 /* this */
            aload 3 /* coll */
            putfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.coll:Lfreemarker/template/TemplateCollectionModel;
         3: .line 189
            return
        end local 3 // freemarker.template.TemplateCollectionModel coll
        end local 2 // freemarker.core.Environment env
        end local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lfreemarker/core/BuiltInsForSequences$joinBI$BIMethodForCollection;
            0    4     2   env  Lfreemarker/core/Environment;
            0    4     3  coll  Lfreemarker/template/TemplateCollectionModel;
    MethodParameters:
        Name  Flags
      this$0  final
      env     
      coll    

  public java.lang.Object exec(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=11, args_size=2
        start local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
        start local 1 // java.util.List args
         0: .line 193
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
            aload 1 /* args */
            iconst_1
            iconst_3
            invokevirtual freemarker.core.BuiltInsForSequences$joinBI.checkMethodArgCount:(Ljava/util/List;II)V
         1: .line 194
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
            aload 1 /* args */
            iconst_0
            invokevirtual freemarker.core.BuiltInsForSequences$joinBI.getStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
            astore 2 /* separator */
        start local 2 // java.lang.String separator
         2: .line 195
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
            aload 1 /* args */
            iconst_1
            invokevirtual freemarker.core.BuiltInsForSequences$joinBI.getOptStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
            astore 3 /* whenEmpty */
        start local 3 // java.lang.String whenEmpty
         3: .line 196
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
            aload 1 /* args */
            iconst_2
            invokevirtual freemarker.core.BuiltInsForSequences$joinBI.getOptStringMethodArg:(Ljava/util/List;I)Ljava/lang/String;
            astore 4 /* afterLast */
        start local 4 // java.lang.String afterLast
         4: .line 198
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
         5: .line 200
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.coll:Lfreemarker/template/TemplateCollectionModel;
            invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
            astore 6 /* it */
        start local 6 // freemarker.template.TemplateModelIterator it
         6: .line 202
            iconst_0
            istore 7 /* idx */
        start local 7 // int idx
         7: .line 203
            iconst_0
            istore 8 /* hadItem */
        start local 8 // boolean hadItem
         8: .line 204
            goto 25
         9: .line 205
      StackMap locals: freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection java.util.List java.lang.String java.lang.String java.lang.String java.lang.StringBuilder freemarker.template.TemplateModelIterator int int
      StackMap stack:
            aload 6 /* it */
            invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
            astore 9 /* item */
        start local 9 // freemarker.template.TemplateModel item
        10: .line 206
            aload 9 /* item */
            ifnull 24
        11: .line 207
            iload 8 /* hadItem */
            ifeq 14
        12: .line 208
            aload 5 /* sb */
            aload 2 /* separator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 209
            goto 15
        14: .line 210
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            iconst_1
            istore 8 /* hadItem */
        15: .line 213
      StackMap locals:
      StackMap stack:
            aload 5 /* sb */
            aload 9 /* item */
            aconst_null
            aconst_null
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.env:Lfreemarker/core/Environment;
            invokestatic freemarker.core.EvalUtil.coerceModelToStringOrUnsupportedMarkup:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 214
            goto 24
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
        17: astore 10 /* e */
        start local 10 // freemarker.template.TemplateException e
        18: .line 215
            new freemarker.core._TemplateModelException
            dup
            aload 10 /* e */
            bipush 8
            anewarray java.lang.Object
            dup
            iconst_0
        19: .line 216
            ldc "\"?"
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection.this$1:Lfreemarker/core/BuiltInsForSequences$joinBI;
            getfield freemarker.core.BuiltInsForSequences$joinBI.key:Ljava/lang/String;
            aastore
            dup
            iconst_2
            ldc "\" failed at index "
            aastore
            dup
            iconst_3
            iload 7 /* idx */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            ldc " with this error:\n\n"
            aastore
            dup
            iconst_5
        20: .line 217
            ldc "---begin-message---\n"
            aastore
            dup
            bipush 6
        21: .line 218
            new freemarker.core._DelayedGetMessageWithoutStackTop
            dup
            aload 10 /* e */
            invokespecial freemarker.core._DelayedGetMessageWithoutStackTop.<init>:(Lfreemarker/template/TemplateException;)V
            aastore
            dup
            bipush 7
        22: .line 219
            ldc "\n---end-message---"
        23: .line 215
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            athrow
        end local 10 // freemarker.template.TemplateException e
        24: .line 222
      StackMap locals:
      StackMap stack:
            iinc 7 /* idx */ 1
        end local 9 // freemarker.template.TemplateModel item
        25: .line 204
      StackMap locals:
      StackMap stack:
            aload 6 /* it */
            invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
            ifne 9
        26: .line 224
            iload 8 /* hadItem */
            ifeq 29
        27: .line 225
            aload 4 /* afterLast */
            ifnull 30
            aload 5 /* sb */
            aload 4 /* afterLast */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 226
            goto 30
        29: .line 227
      StackMap locals:
      StackMap stack:
            aload 3 /* whenEmpty */
            ifnull 30
            aload 5 /* sb */
            aload 3 /* whenEmpty */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 229
      StackMap locals:
      StackMap stack:
            new freemarker.template.SimpleScalar
            dup
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
            areturn
        end local 8 // boolean hadItem
        end local 7 // int idx
        end local 6 // freemarker.template.TemplateModelIterator it
        end local 5 // java.lang.StringBuilder sb
        end local 4 // java.lang.String afterLast
        end local 3 // java.lang.String whenEmpty
        end local 2 // java.lang.String separator
        end local 1 // java.util.List args
        end local 0 // freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   31     0       this  Lfreemarker/core/BuiltInsForSequences$joinBI$BIMethodForCollection;
            0   31     1       args  Ljava/util/List;
            2   31     2  separator  Ljava/lang/String;
            3   31     3  whenEmpty  Ljava/lang/String;
            4   31     4  afterLast  Ljava/lang/String;
            5   31     5         sb  Ljava/lang/StringBuilder;
            6   31     6         it  Lfreemarker/template/TemplateModelIterator;
            7   31     7        idx  I
            8   31     8    hadItem  Z
           10   25     9       item  Lfreemarker/template/TemplateModel;
           18   24    10          e  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
          15    16      17  Class freemarker.template.TemplateException
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "BuiltInsForSequences.java"
NestHost: freemarker.core.BuiltInsForSequences
InnerClasses:
  joinBI = freemarker.core.BuiltInsForSequences$joinBI of freemarker.core.BuiltInsForSequences
  private BIMethodForCollection = freemarker.core.BuiltInsForSequences$joinBI$BIMethodForCollection of freemarker.core.BuiltInsForSequences$joinBI