abstract class freemarker.core.BuiltInsForSequences$MinOrMaxBI extends freemarker.core.BuiltIn
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: freemarker.core.BuiltInsForSequences$MinOrMaxBI
  super_class: freemarker.core.BuiltIn
{
  private final int comparatorOperator;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
        start local 1 // int comparatorOperator
         0: .line 891
            aload 0 /* this */
            invokespecial freemarker.core.BuiltIn.<init>:()V
         1: .line 892
            aload 0 /* this */
            iload 1 /* comparatorOperator */
            putfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.comparatorOperator:I
         2: .line 893
            return
        end local 1 // int comparatorOperator
        end local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lfreemarker/core/BuiltInsForSequences$MinOrMaxBI;
            0    3     1  comparatorOperator  I
    MethodParameters:
                    Name  Flags
      comparatorOperator  

  freemarker.template.TemplateModel _eval(freemarker.core.Environment);
    descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
        start local 1 // freemarker.core.Environment env
         0: .line 898
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.target:Lfreemarker/core/Expression;
            aload 1 /* env */
            invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            astore 2 /* model */
        start local 2 // freemarker.template.TemplateModel model
         1: .line 899
            aload 2 /* model */
            instanceof freemarker.template.TemplateCollectionModel
            ifeq 3
         2: .line 900
            aload 0 /* this */
            aload 2 /* model */
            checkcast freemarker.template.TemplateCollectionModel
            aload 1 /* env */
            invokevirtual freemarker.core.BuiltInsForSequences$MinOrMaxBI.calculateResultForColletion:(Lfreemarker/template/TemplateCollectionModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            areturn
         3: .line 901
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aload 2 /* model */
            instanceof freemarker.template.TemplateSequenceModel
            ifeq 5
         4: .line 902
            aload 0 /* this */
            aload 2 /* model */
            checkcast freemarker.template.TemplateSequenceModel
            aload 1 /* env */
            invokevirtual freemarker.core.BuiltInsForSequences$MinOrMaxBI.calculateResultForSequence:(Lfreemarker/template/TemplateSequenceModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
            areturn
         5: .line 904
      StackMap locals:
      StackMap stack:
            new freemarker.core.NonSequenceOrCollectionException
            dup
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.target:Lfreemarker/core/Expression;
            aload 2 /* model */
            aload 1 /* env */
            invokespecial freemarker.core.NonSequenceOrCollectionException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)V
            athrow
        end local 2 // freemarker.template.TemplateModel model
        end local 1 // freemarker.core.Environment env
        end local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lfreemarker/core/BuiltInsForSequences$MinOrMaxBI;
            0    6     1    env  Lfreemarker/core/Environment;
            1    6     2  model  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      env   

  private freemarker.template.TemplateModel calculateResultForColletion(freemarker.template.TemplateCollectionModel, freemarker.core.Environment);
    descriptor: (Lfreemarker/template/TemplateCollectionModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=6, args_size=3
        start local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
        start local 1 // freemarker.template.TemplateCollectionModel coll
        start local 2 // freemarker.core.Environment env
         0: .line 910
            aconst_null
            astore 3 /* best */
        start local 3 // freemarker.template.TemplateModel best
         1: .line 911
            aload 1 /* coll */
            invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
            astore 4 /* iter */
        start local 4 // freemarker.template.TemplateModelIterator iter
         2: .line 912
            goto 10
         3: .line 913
      StackMap locals: freemarker.template.TemplateModel freemarker.template.TemplateModelIterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
            astore 5 /* cur */
        start local 5 // freemarker.template.TemplateModel cur
         4: .line 914
            aload 5 /* cur */
            ifnull 10
         5: .line 915
            aload 3 /* best */
            ifnull 9
            aload 5 /* cur */
            aconst_null
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.comparatorOperator:I
            aconst_null
            aload 3 /* best */
         6: .line 916
            aconst_null
            aload 0 /* this */
            iconst_1
            iconst_0
            iconst_0
            iconst_0
            aload 2 /* env */
         7: .line 915
            invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;ILjava/lang/String;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Lfreemarker/core/Expression;ZZZZLfreemarker/core/Environment;)Z
         8: .line 916
            ifeq 10
         9: .line 917
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aload 5 /* cur */
            astore 3 /* best */
        end local 5 // freemarker.template.TemplateModel cur
        10: .line 912
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
            ifne 3
        11: .line 920
            aload 3 /* best */
            areturn
        end local 4 // freemarker.template.TemplateModelIterator iter
        end local 3 // freemarker.template.TemplateModel best
        end local 2 // freemarker.core.Environment env
        end local 1 // freemarker.template.TemplateCollectionModel coll
        end local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lfreemarker/core/BuiltInsForSequences$MinOrMaxBI;
            0   12     1  coll  Lfreemarker/template/TemplateCollectionModel;
            0   12     2   env  Lfreemarker/core/Environment;
            1   12     3  best  Lfreemarker/template/TemplateModel;
            2   12     4  iter  Lfreemarker/template/TemplateModelIterator;
            4   10     5   cur  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      coll  
      env   

  private freemarker.template.TemplateModel calculateResultForSequence(freemarker.template.TemplateSequenceModel, freemarker.core.Environment);
    descriptor: (Lfreemarker/template/TemplateSequenceModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=6, args_size=3
        start local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
        start local 1 // freemarker.template.TemplateSequenceModel seq
        start local 2 // freemarker.core.Environment env
         0: .line 925
            aconst_null
            astore 3 /* best */
        start local 3 // freemarker.template.TemplateModel best
         1: .line 926
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 11
         3: .line 927
      StackMap locals: freemarker.template.TemplateModel int
      StackMap stack:
            aload 1 /* seq */
            iload 4 /* i */
            invokeinterface freemarker.template.TemplateSequenceModel.get:(I)Lfreemarker/template/TemplateModel;
            astore 5 /* cur */
        start local 5 // freemarker.template.TemplateModel cur
         4: .line 928
            aload 5 /* cur */
            ifnull 10
         5: .line 929
            aload 3 /* best */
            ifnull 9
            aload 5 /* cur */
            aconst_null
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.comparatorOperator:I
            aconst_null
            aload 3 /* best */
         6: .line 930
            aconst_null
            aload 0 /* this */
            iconst_1
            iconst_0
            iconst_0
            iconst_0
            aload 2 /* env */
         7: .line 929
            invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;ILjava/lang/String;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Lfreemarker/core/Expression;ZZZZLfreemarker/core/Environment;)Z
         8: .line 930
            ifeq 10
         9: .line 931
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aload 5 /* cur */
            astore 3 /* best */
        end local 5 // freemarker.template.TemplateModel cur
        10: .line 926
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 1 /* seq */
            invokeinterface freemarker.template.TemplateSequenceModel.size:()I
            if_icmplt 3
        end local 4 // int i
        12: .line 934
            aload 3 /* best */
            areturn
        end local 3 // freemarker.template.TemplateModel best
        end local 2 // freemarker.core.Environment env
        end local 1 // freemarker.template.TemplateSequenceModel seq
        end local 0 // freemarker.core.BuiltInsForSequences$MinOrMaxBI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lfreemarker/core/BuiltInsForSequences$MinOrMaxBI;
            0   13     1   seq  Lfreemarker/template/TemplateSequenceModel;
            0   13     2   env  Lfreemarker/core/Environment;
            1   13     3  best  Lfreemarker/template/TemplateModel;
            2   12     4     i  I
            4   10     5   cur  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
      Name  Flags
      seq   
      env   
}
SourceFile: "BuiltInsForSequences.java"
NestHost: freemarker.core.BuiltInsForSequences
InnerClasses:
  private abstract MinOrMaxBI = freemarker.core.BuiltInsForSequences$MinOrMaxBI of freemarker.core.BuiltInsForSequences