public class io.ebeaninternal.server.query.CQueryPlan implements io.ebeaninternal.api.SpiQueryPlan
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.ebeaninternal.server.query.CQueryPlan
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.lang.String RESULT_SET_BASED_RAW_SQL;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "--ResultSetBasedRawSql"

  private final io.ebeaninternal.api.SpiEbeanServer server;
    descriptor: Lio/ebeaninternal/api/SpiEbeanServer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.ProfileLocation profileLocation;
    descriptor: Lio/ebean/ProfileLocation;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String location;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String label;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.api.CQueryPlanKey planKey;
    descriptor: Lio/ebeaninternal/api/CQueryPlanKey;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.lang.String sql;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String hash;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String logWhereSql;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.query.SqlTree sqlTree;
    descriptor: Lio/ebeaninternal/server/query/SqlTree;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.query.STreeProperty[] encryptedProps;
    descriptor: [Lio/ebeaninternal/server/query/STreeProperty;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.query.CQueryPlanStats stats;
    descriptor: Lio/ebeaninternal/server/query/CQueryPlanStats;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<?> beanType;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  final io.ebeaninternal.server.core.timezone.DataTimeZone dataTimeZone;
    descriptor: Lio/ebeaninternal/server/core/timezone/DataTimeZone;
    flags: (0x0010) ACC_FINAL

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

  private volatile java.lang.String auditQueryHash;
    descriptor: Ljava/lang/String;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.Set<java.lang.String> dependentTables;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private final io.ebeaninternal.api.SpiQueryBindCapture bindCapture;
    descriptor: Lio/ebeaninternal/api/SpiQueryBindCapture;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 52
            ldc Lio/ebeaninternal/server/query/CQueryPlan;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic io.ebeaninternal.server.query.CQueryPlan.logger:Lorg/slf4j/Logger;
         1: .line 54
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebean.config.dbplatform.SqlLimitResponse, io.ebeaninternal.server.query.SqlTree, boolean, java.lang.String);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebean/config/dbplatform/SqlLimitResponse;Lio/ebeaninternal/server/query/SqlTree;ZLjava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebean.config.dbplatform.SqlLimitResponse sqlRes
        start local 3 // io.ebeaninternal.server.query.SqlTree sqlTree
        start local 4 // boolean rawSql
        start local 5 // java.lang.String logWhereSql
         0: .line 102
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getServer:()Lio/ebeaninternal/api/SpiEbeanServer;
            putfield io.ebeaninternal.server.query.CQueryPlan.server:Lio/ebeaninternal/api/SpiEbeanServer;
         2: .line 104
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.server:Lio/ebeaninternal/api/SpiEbeanServer;
            invokeinterface io.ebeaninternal.api.SpiEbeanServer.getDataTimeZone:()Lio/ebeaninternal/server/core/timezone/DataTimeZone;
            putfield io.ebeaninternal.server.query.CQueryPlan.dataTimeZone:Lio/ebeaninternal/server/core/timezone/DataTimeZone;
         3: .line 105
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBeanType:()Ljava/lang/Class;
            putfield io.ebeaninternal.server.query.CQueryPlan.beanType:Ljava/lang/Class;
         4: .line 106
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQueryPlanKey:()Lio/ebeaninternal/api/CQueryPlanKey;
            putfield io.ebeaninternal.server.query.CQueryPlan.planKey:Lio/ebeaninternal/api/CQueryPlanKey;
         5: .line 107
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 6 /* query */
        start local 6 // io.ebeaninternal.api.SpiQuery query
         6: .line 108
            aload 0 /* this */
            aload 6 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getProfileLocation:()Lio/ebean/ProfileLocation;
            putfield io.ebeaninternal.server.query.CQueryPlan.profileLocation:Lio/ebean/ProfileLocation;
         7: .line 109
            aload 0 /* this */
            aload 6 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getPlanLabel:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.label:Ljava/lang/String;
         8: .line 110
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.label:Ljava/lang/String;
            aload 6 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getType:()Lio/ebeaninternal/api/SpiQuery$Type;
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getSimpleName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.deriveName:(Ljava/lang/String;Lio/ebeaninternal/api/SpiQuery$Type;Ljava/lang/String;)Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.name:Ljava/lang/String;
         9: .line 111
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.location:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.location:Ljava/lang/String;
        10: .line 112
            aload 0 /* this */
            aload 6 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getAsOfTableCount:()I
            putfield io.ebeaninternal.server.query.CQueryPlan.asOfTableCount:I
        11: .line 113
            aload 0 /* this */
            aload 2 /* sqlRes */
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.sql:Ljava/lang/String;
        12: .line 114
            aload 0 /* this */
            aload 3 /* sqlTree */
            putfield io.ebeaninternal.server.query.CQueryPlan.sqlTree:Lio/ebeaninternal/server/query/SqlTree;
        13: .line 115
            aload 0 /* this */
            iload 4 /* rawSql */
            putfield io.ebeaninternal.server.query.CQueryPlan.rawSql:Z
        14: .line 116
            aload 0 /* this */
            aload 5 /* logWhereSql */
            putfield io.ebeaninternal.server.query.CQueryPlan.logWhereSql:Ljava/lang/String;
        15: .line 117
            aload 0 /* this */
            aload 3 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.getEncryptedProps:()[Lio/ebeaninternal/server/query/STreeProperty;
            putfield io.ebeaninternal.server.query.CQueryPlan.encryptedProps:[Lio/ebeaninternal/server/query/STreeProperty;
        16: .line 118
            aload 0 /* this */
            new io.ebeaninternal.server.query.CQueryPlanStats
            dup
            aload 0 /* this */
            invokespecial io.ebeaninternal.server.query.CQueryPlanStats.<init>:(Lio/ebeaninternal/server/query/CQueryPlan;)V
            putfield io.ebeaninternal.server.query.CQueryPlan.stats:Lio/ebeaninternal/server/query/CQueryPlanStats;
        17: .line 119
            aload 0 /* this */
            aload 3 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.dependentTables:()Ljava/util/Set;
            putfield io.ebeaninternal.server.query.CQueryPlan.dependentTables:Ljava/util/Set;
        18: .line 120
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* query */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.initBindCapture:(Lio/ebeaninternal/api/SpiQuery;)Lio/ebeaninternal/api/SpiQueryBindCapture;
            putfield io.ebeaninternal.server.query.CQueryPlan.bindCapture:Lio/ebeaninternal/api/SpiQueryBindCapture;
        19: .line 121
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.md5Hash:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.hash:Ljava/lang/String;
        20: .line 122
            return
        end local 6 // io.ebeaninternal.api.SpiQuery query
        end local 5 // java.lang.String logWhereSql
        end local 4 // boolean rawSql
        end local 3 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 2 // io.ebean.config.dbplatform.SqlLimitResponse sqlRes
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lio/ebeaninternal/server/query/CQueryPlan;
            0   21     1      request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0   21     2       sqlRes  Lio/ebean/config/dbplatform/SqlLimitResponse;
            0   21     3      sqlTree  Lio/ebeaninternal/server/query/SqlTree;
            0   21     4       rawSql  Z
            0   21     5  logWhereSql  Ljava/lang/String;
            6   21     6        query  Lio/ebeaninternal/api/SpiQuery<*>;
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebean/config/dbplatform/SqlLimitResponse;Lio/ebeaninternal/server/query/SqlTree;ZLjava/lang/String;)V
    MethodParameters:
             Name  Flags
      request      
      sqlRes       
      sqlTree      
      rawSql       
      logWhereSql  

  void <init>(io.ebeaninternal.server.core.OrmQueryRequest<?>, java.lang.String, io.ebeaninternal.server.query.SqlTree, java.lang.String);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // java.lang.String sql
        start local 3 // io.ebeaninternal.server.query.SqlTree sqlTree
        start local 4 // java.lang.String logWhereSql
         0: .line 127
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 128
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getServer:()Lio/ebeaninternal/api/SpiEbeanServer;
            putfield io.ebeaninternal.server.query.CQueryPlan.server:Lio/ebeaninternal/api/SpiEbeanServer;
         2: .line 129
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.server:Lio/ebeaninternal/api/SpiEbeanServer;
            invokeinterface io.ebeaninternal.api.SpiEbeanServer.getDataTimeZone:()Lio/ebeaninternal/server/core/timezone/DataTimeZone;
            putfield io.ebeaninternal.server.query.CQueryPlan.dataTimeZone:Lio/ebeaninternal/server/core/timezone/DataTimeZone;
         3: .line 130
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBeanType:()Ljava/lang/Class;
            putfield io.ebeaninternal.server.query.CQueryPlan.beanType:Ljava/lang/Class;
         4: .line 131
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 5 /* query */
        start local 5 // io.ebeaninternal.api.SpiQuery query
         5: .line 132
            aload 0 /* this */
            aload 5 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getProfileLocation:()Lio/ebean/ProfileLocation;
            putfield io.ebeaninternal.server.query.CQueryPlan.profileLocation:Lio/ebean/ProfileLocation;
         6: .line 133
            aload 0 /* this */
            aload 5 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getPlanLabel:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.label:Ljava/lang/String;
         7: .line 134
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.label:Ljava/lang/String;
            aload 5 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getType:()Lio/ebeaninternal/api/SpiQuery$Type;
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getSimpleName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.deriveName:(Ljava/lang/String;Lio/ebeaninternal/api/SpiQuery$Type;Ljava/lang/String;)Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.name:Ljava/lang/String;
         8: .line 135
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.location:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.location:Ljava/lang/String;
         9: .line 136
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* sql */
            aload 4 /* logWhereSql */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.buildPlanKey:(Ljava/lang/String;Ljava/lang/String;)Lio/ebeaninternal/api/CQueryPlanKey;
            putfield io.ebeaninternal.server.query.CQueryPlan.planKey:Lio/ebeaninternal/api/CQueryPlanKey;
        10: .line 137
            aload 0 /* this */
            iconst_0
            putfield io.ebeaninternal.server.query.CQueryPlan.asOfTableCount:I
        11: .line 138
            aload 0 /* this */
            aload 2 /* sql */
            putfield io.ebeaninternal.server.query.CQueryPlan.sql:Ljava/lang/String;
        12: .line 139
            aload 0 /* this */
            aload 3 /* sqlTree */
            putfield io.ebeaninternal.server.query.CQueryPlan.sqlTree:Lio/ebeaninternal/server/query/SqlTree;
        13: .line 140
            aload 0 /* this */
            iconst_0
            putfield io.ebeaninternal.server.query.CQueryPlan.rawSql:Z
        14: .line 141
            aload 0 /* this */
            aload 4 /* logWhereSql */
            putfield io.ebeaninternal.server.query.CQueryPlan.logWhereSql:Ljava/lang/String;
        15: .line 142
            aload 0 /* this */
            aload 3 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.getEncryptedProps:()[Lio/ebeaninternal/server/query/STreeProperty;
            putfield io.ebeaninternal.server.query.CQueryPlan.encryptedProps:[Lio/ebeaninternal/server/query/STreeProperty;
        16: .line 143
            aload 0 /* this */
            new io.ebeaninternal.server.query.CQueryPlanStats
            dup
            aload 0 /* this */
            invokespecial io.ebeaninternal.server.query.CQueryPlanStats.<init>:(Lio/ebeaninternal/server/query/CQueryPlan;)V
            putfield io.ebeaninternal.server.query.CQueryPlan.stats:Lio/ebeaninternal/server/query/CQueryPlanStats;
        17: .line 144
            aload 0 /* this */
            aload 3 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.dependentTables:()Ljava/util/Set;
            putfield io.ebeaninternal.server.query.CQueryPlan.dependentTables:Ljava/util/Set;
        18: .line 145
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* sql */
            aload 5 /* query */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.initBindCaptureRaw:(Ljava/lang/String;Lio/ebeaninternal/api/SpiQuery;)Lio/ebeaninternal/api/SpiQueryBindCapture;
            putfield io.ebeaninternal.server.query.CQueryPlan.bindCapture:Lio/ebeaninternal/api/SpiQueryBindCapture;
        19: .line 146
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.md5Hash:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.hash:Ljava/lang/String;
        20: .line 147
            return
        end local 5 // io.ebeaninternal.api.SpiQuery query
        end local 4 // java.lang.String logWhereSql
        end local 3 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 2 // java.lang.String sql
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lio/ebeaninternal/server/query/CQueryPlan;
            0   21     1      request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0   21     2          sql  Ljava/lang/String;
            0   21     3      sqlTree  Lio/ebeaninternal/server/query/SqlTree;
            0   21     4  logWhereSql  Ljava/lang/String;
            5   21     5        query  Lio/ebeaninternal/api/SpiQuery<*>;
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Ljava/lang/String;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
    MethodParameters:
             Name  Flags
      request      
      sql          
      sqlTree      
      logWhereSql  

  private java.lang.String deriveName(java.lang.String, io.ebeaninternal.api.SpiQuery$Type, java.lang.String);
    descriptor: (Ljava/lang/String;Lio/ebeaninternal/api/SpiQuery$Type;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // java.lang.String label
        start local 2 // io.ebeaninternal.api.SpiQuery$Type type
        start local 3 // java.lang.String simpleName
         0: .line 150
            aload 1 /* label */
            ifnonnull 2
         1: .line 151
            ldc "orm."
            aload 3 /* simpleName */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "."
            aastore
            dup
            iconst_1
            aload 2 /* type */
            invokevirtual io.ebeaninternal.api.SpiQuery$Type.label:()Ljava/lang/String;
            aastore
            invokestatic io.ebeaninternal.server.lib.Str.add:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            areturn
         2: .line 153
      StackMap locals:
      StackMap stack:
            aload 3 /* simpleName */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            istore 4 /* pos */
        start local 4 // int pos
         3: .line 154
            iload 4 /* pos */
            iconst_1
            if_icmple 5
         4: .line 156
            ldc "orm."
            aload 3 /* simpleName */
            iconst_0
            iload 4 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "_"
            aastore
            dup
            iconst_1
            aload 1 /* label */
            aastore
            invokestatic io.ebeaninternal.server.lib.Str.add:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            areturn
         5: .line 158
      StackMap locals: int
      StackMap stack:
            aload 1 /* label */
            aload 3 /* simpleName */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 159
            ldc "orm."
            aload 1 /* label */
            invokestatic io.ebeaninternal.server.lib.Str.add:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         7: .line 161
      StackMap locals:
      StackMap stack:
            ldc "orm."
            aload 3 /* simpleName */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "_"
            aastore
            dup
            iconst_1
            aload 1 /* label */
            aastore
            invokestatic io.ebeaninternal.server.lib.Str.add:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 4 // int pos
        end local 3 // java.lang.String simpleName
        end local 2 // io.ebeaninternal.api.SpiQuery$Type type
        end local 1 // java.lang.String label
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    8     1       label  Ljava/lang/String;
            0    8     2        type  Lio/ebeaninternal/api/SpiQuery$Type;
            0    8     3  simpleName  Ljava/lang/String;
            3    8     4         pos  I
    Signature: (Ljava/lang/String;Lio/ebeaninternal/api/SpiQuery$Type;Ljava/lang/String;)Ljava/lang/String;
    MethodParameters:
            Name  Flags
      label       
      type        
      simpleName  

  private io.ebeaninternal.api.SpiQueryBindCapture initBindCapture(io.ebeaninternal.api.SpiQuery<?>);
    descriptor: (Lio/ebeaninternal/api/SpiQuery;)Lio/ebeaninternal/api/SpiQueryBindCapture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // io.ebeaninternal.api.SpiQuery query
         0: .line 165
            aload 1 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getType:()Lio/ebeaninternal/api/SpiQuery$Type;
            invokevirtual io.ebeaninternal.api.SpiQuery$Type.isUpdate:()Z
            ifeq 1
            getstatic io.ebeaninternal.api.SpiQueryBindCapture.NOOP:Lio/ebeaninternal/api/SpiQueryBindCapture;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.server:Lio/ebeaninternal/api/SpiEbeanServer;
            aload 0 /* this */
            invokeinterface io.ebeaninternal.api.SpiEbeanServer.createQueryBindCapture:(Lio/ebeaninternal/api/SpiQueryPlan;)Lio/ebeaninternal/api/SpiQueryBindCapture;
      StackMap locals:
      StackMap stack: io.ebeaninternal.api.SpiQueryBindCapture
         2: areturn
        end local 1 // io.ebeaninternal.api.SpiQuery query
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    3     1  query  Lio/ebeaninternal/api/SpiQuery<*>;
    Signature: (Lio/ebeaninternal/api/SpiQuery<*>;)Lio/ebeaninternal/api/SpiQueryBindCapture;
    MethodParameters:
       Name  Flags
      query  

  private io.ebeaninternal.api.SpiQueryBindCapture initBindCaptureRaw(java.lang.String, io.ebeaninternal.api.SpiQuery<?>);
    descriptor: (Ljava/lang/String;Lio/ebeaninternal/api/SpiQuery;)Lio/ebeaninternal/api/SpiQueryBindCapture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // java.lang.String sql
        start local 2 // io.ebeaninternal.api.SpiQuery query
         0: .line 169
            aload 1 /* sql */
            ldc "--ResultSetBasedRawSql"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getType:()Lio/ebeaninternal/api/SpiQuery$Type;
            invokevirtual io.ebeaninternal.api.SpiQuery$Type.isUpdate:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: getstatic io.ebeaninternal.api.SpiQueryBindCapture.NOOP:Lio/ebeaninternal/api/SpiQueryBindCapture;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.server:Lio/ebeaninternal/api/SpiEbeanServer;
            aload 0 /* this */
            invokeinterface io.ebeaninternal.api.SpiEbeanServer.createQueryBindCapture:(Lio/ebeaninternal/api/SpiQueryPlan;)Lio/ebeaninternal/api/SpiQueryBindCapture;
      StackMap locals:
      StackMap stack: io.ebeaninternal.api.SpiQueryBindCapture
         3: areturn
        end local 2 // io.ebeaninternal.api.SpiQuery query
        end local 1 // java.lang.String sql
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    4     1    sql  Ljava/lang/String;
            0    4     2  query  Lio/ebeaninternal/api/SpiQuery<*>;
    Signature: (Ljava/lang/String;Lio/ebeaninternal/api/SpiQuery<*>;)Lio/ebeaninternal/api/SpiQueryBindCapture;
    MethodParameters:
       Name  Flags
      sql    
      query  

  private java.lang.String location();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 173
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.profileLocation:Lio/ebean/ProfileLocation;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.profileLocation:Lio/ebean/ProfileLocation;
            invokeinterface io.ebean.ProfileLocation.location:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  private io.ebeaninternal.api.CQueryPlanKey buildPlanKey(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/ebeaninternal/api/CQueryPlanKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // java.lang.String sql
        start local 2 // java.lang.String logWhereSql
         0: .line 177
            new io.ebeaninternal.server.query.RawSqlQueryPlanKey
            dup
            aload 1 /* sql */
            iconst_0
            aload 2 /* logWhereSql */
            invokespecial io.ebeaninternal.server.query.RawSqlQueryPlanKey.<init>:(Ljava/lang/String;ZLjava/lang/String;)V
            areturn
        end local 2 // java.lang.String logWhereSql
        end local 1 // java.lang.String sql
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    1     1          sql  Ljava/lang/String;
            0    1     2  logWhereSql  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      sql          
      logWhereSql  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 182
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.beanType:Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " hash:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.planKey:Lio/ebeaninternal/api/CQueryPlanKey;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public java.lang.Class<?> getBeanType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 187
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.beanType:Ljava/lang/Class;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;
    Signature: ()Ljava/lang/Class<*>;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 192
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.name:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public java.lang.String getHash();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 197
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.hash:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public java.lang.String getSql();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 202
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.sql:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public io.ebean.ProfileLocation getProfileLocation();
    descriptor: ()Lio/ebean/ProfileLocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 207
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.profileLocation:Lio/ebean/ProfileLocation;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public java.lang.String getLabel();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 211
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.label:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public java.util.Set<java.lang.String> getDependentTables();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 215
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.dependentTables:Ljava/util/Set;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.lang.String getLocation();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 219
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.location:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public void queryPlanInit(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // long thresholdMicros
         0: .line 224
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.bindCapture:Lio/ebeaninternal/api/SpiQueryBindCapture;
            lload 1 /* thresholdMicros */
            invokeinterface io.ebeaninternal.api.SpiQueryBindCapture.queryPlanInit:(J)V
         1: .line 225
            return
        end local 1 // long thresholdMicros
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    2     1  thresholdMicros  J
    MethodParameters:
                 Name  Flags
      thresholdMicros  

  public io.ebeaninternal.server.query.DQueryPlanOutput createMeta(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/ebeaninternal/server/query/DQueryPlanOutput;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // java.lang.String bind
        start local 2 // java.lang.String planString
         0: .line 229
            new io.ebeaninternal.server.query.DQueryPlanOutput
            dup
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.getBeanType:()Ljava/lang/Class;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.name:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.hash:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.profileLocation:Lio/ebean/ProfileLocation;
            aload 1 /* bind */
            aload 2 /* planString */
            invokespecial io.ebeaninternal.server.query.DQueryPlanOutput.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/ebean/ProfileLocation;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String planString
        end local 1 // java.lang.String bind
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    1     1        bind  Ljava/lang/String;
            0    1     2  planString  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      bind        
      planString  

  public io.ebean.core.type.DataReader createDataReader(java.sql.ResultSet);
    descriptor: (Ljava/sql/ResultSet;)Lio/ebean/core/type/DataReader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // java.sql.ResultSet rset
         0: .line 233
            new io.ebeaninternal.server.type.RsetDataReader
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.dataTimeZone:Lio/ebeaninternal/server/core/timezone/DataTimeZone;
            aload 1 /* rset */
            invokespecial io.ebeaninternal.server.type.RsetDataReader.<init>:(Lio/ebeaninternal/server/core/timezone/DataTimeZone;Ljava/sql/ResultSet;)V
            areturn
        end local 1 // java.sql.ResultSet rset
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    1     1  rset  Ljava/sql/ResultSet;
    MethodParameters:
      Name  Flags
      rset  

  io.ebeaninternal.server.type.DataBind bindEncryptedProperties(java.sql.PreparedStatement, java.sql.Connection);
    descriptor: (Ljava/sql/PreparedStatement;Ljava/sql/Connection;)Lio/ebeaninternal/server/type/DataBind;
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // java.sql.PreparedStatement stmt
        start local 2 // java.sql.Connection conn
         0: .line 240
            new io.ebeaninternal.server.type.DataBind
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.dataTimeZone:Lio/ebeaninternal/server/core/timezone/DataTimeZone;
            aload 1 /* stmt */
            aload 2 /* conn */
            invokespecial io.ebeaninternal.server.type.DataBind.<init>:(Lio/ebeaninternal/server/core/timezone/DataTimeZone;Ljava/sql/PreparedStatement;Ljava/sql/Connection;)V
            astore 3 /* dataBind */
        start local 3 // io.ebeaninternal.server.type.DataBind dataBind
         1: .line 241
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.encryptedProps:[Lio/ebeaninternal/server/query/STreeProperty;
            ifnull 7
         2: .line 242
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.encryptedProps:[Lio/ebeaninternal/server/query/STreeProperty;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: io.ebeaninternal.server.query.CQueryPlan java.sql.PreparedStatement java.sql.Connection io.ebeaninternal.server.type.DataBind top int int io.ebeaninternal.server.query.STreeProperty[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* encryptedProp */
        start local 4 // io.ebeaninternal.server.query.STreeProperty encryptedProp
         4: .line 243
            aload 3 /* dataBind */
            aload 4 /* encryptedProp */
            invokeinterface io.ebeaninternal.server.query.STreeProperty.getEncryptKeyAsString:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.type.DataBind.setString:(Ljava/lang/String;)V
        end local 4 // io.ebeaninternal.server.query.STreeProperty encryptedProp
         5: .line 242
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 3
         7: .line 246
      StackMap locals: io.ebeaninternal.server.query.CQueryPlan java.sql.PreparedStatement java.sql.Connection io.ebeaninternal.server.type.DataBind
      StackMap stack:
            aload 3 /* dataBind */
            areturn
        end local 3 // io.ebeaninternal.server.type.DataBind dataBind
        end local 2 // java.sql.Connection conn
        end local 1 // java.sql.PreparedStatement stmt
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    8     1           stmt  Ljava/sql/PreparedStatement;
            0    8     2           conn  Ljava/sql/Connection;
            1    8     3       dataBind  Lio/ebeaninternal/server/type/DataBind;
            4    5     4  encryptedProp  Lio/ebeaninternal/server/query/STreeProperty;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      stmt  
      conn  

  private io.ebeaninternal.server.type.DataBindCapture bindCapture();
    descriptor: ()Lio/ebeaninternal/server/type/DataBindCapture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 250
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.dataTimeZone:Lio/ebeaninternal/server/core/timezone/DataTimeZone;
            invokestatic io.ebeaninternal.server.type.DataBindCapture.of:(Lio/ebeaninternal/server/core/timezone/DataTimeZone;)Lio/ebeaninternal/server/type/DataBindCapture;
            astore 1 /* dataBind */
        start local 1 // io.ebeaninternal.server.type.DataBindCapture dataBind
         1: .line 251
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.encryptedProps:[Lio/ebeaninternal/server/query/STreeProperty;
            ifnull 7
         2: .line 252
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.encryptedProps:[Lio/ebeaninternal/server/query/STreeProperty;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: io.ebeaninternal.server.query.CQueryPlan io.ebeaninternal.server.type.DataBindCapture top int int io.ebeaninternal.server.query.STreeProperty[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* encryptedProp */
        start local 2 // io.ebeaninternal.server.query.STreeProperty encryptedProp
         4: .line 253
            aload 1 /* dataBind */
            aload 2 /* encryptedProp */
            invokeinterface io.ebeaninternal.server.query.STreeProperty.getEncryptKeyAsString:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.type.DataBindCapture.setString:(Ljava/lang/String;)V
        end local 2 // io.ebeaninternal.server.query.STreeProperty encryptedProp
         5: .line 252
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 256
      StackMap locals: io.ebeaninternal.server.query.CQueryPlan io.ebeaninternal.server.type.DataBindCapture
      StackMap stack:
            aload 1 /* dataBind */
            areturn
        end local 1 // io.ebeaninternal.server.type.DataBindCapture dataBind
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lio/ebeaninternal/server/query/CQueryPlan;
            1    8     1       dataBind  Lio/ebeaninternal/server/type/DataBindCapture;
            4    5     2  encryptedProp  Lio/ebeaninternal/server/query/STreeProperty;
    Exceptions:
      throws java.sql.SQLException

  int getAsOfTableCount();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 260
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.asOfTableCount:I
            ireturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  java.lang.String getAuditQueryKey();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 267
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.auditQueryHash:Ljava/lang/String;
            ifnonnull 2
         1: .line 269
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.calcAuditQueryKey:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryPlan.auditQueryHash:Ljava/lang/String;
         2: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.auditQueryHash:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  private java.lang.String calcAuditQueryKey();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 276
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.rawSql:Z
            ifeq 1
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.planKey:Lio/ebeaninternal/api/CQueryPlanKey;
            invokeinterface io.ebeaninternal.api.CQueryPlanKey.getPartialKey:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.hash:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.planKey:Lio/ebeaninternal/api/CQueryPlanKey;
            invokeinterface io.ebeaninternal.api.CQueryPlanKey.getPartialKey:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  private java.lang.String md5Hash();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 283
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.sql:Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 284
            ldc "|"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 285
            ldc "|"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.location:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 283
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         4: .line 287
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.ebeaninternal.server.util.Md5.hash:(Ljava/lang/String;)Ljava/lang/String;
         5: areturn
         6: .line 288
      StackMap locals: io.ebeaninternal.server.query.CQueryPlan java.lang.StringBuilder
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         7: .line 289
            getstatic io.ebeaninternal.server.query.CQueryPlan.logger:Lorg/slf4j/Logger;
            ldc "Failed to MD5 hash the query"
            aload 2 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
         8: .line 290
            ldc "error"
            areturn
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.StringBuilder sb
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/ebeaninternal/server/query/CQueryPlan;
            4    9     1    sb  Ljava/lang/StringBuilder;
            7    9     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Exception

  io.ebeaninternal.server.query.SqlTree getSqlTree();
    descriptor: ()Lio/ebeaninternal/server/query/SqlTree;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 295
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.sqlTree:Lio/ebeaninternal/server/query/SqlTree;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public boolean isRawSql();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 299
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.rawSql:Z
            ireturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  java.lang.String getLogWhereSql();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 303
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.logWhereSql:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  public void resetStatistics();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 310
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.stats:Lio/ebeaninternal/server/query/CQueryPlanStats;
            invokevirtual io.ebeaninternal.server.query.CQueryPlanStats.reset:()V
         1: .line 311
            return
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  boolean executionTime(long);
    descriptor: (J)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // long timeMicros
         0: .line 317
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.stats:Lio/ebeaninternal/server/query/CQueryPlanStats;
            lload 1 /* timeMicros */
            invokevirtual io.ebeaninternal.server.query.CQueryPlanStats.add:(J)V
         1: .line 318
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.bindCapture:Lio/ebeaninternal/api/SpiQueryBindCapture;
            ifnull 2
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.bindCapture:Lio/ebeaninternal/api/SpiQueryBindCapture;
            lload 1 /* timeMicros */
            invokeinterface io.ebeaninternal.api.SpiQueryBindCapture.collectFor:(J)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // long timeMicros
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    3     1  timeMicros  J
    MethodParameters:
            Name  Flags
      timeMicros  

  public io.ebeaninternal.server.query.CQueryPlanStats$Snapshot getSnapshot(boolean);
    descriptor: (Z)Lio/ebeaninternal/server/query/CQueryPlanStats$Snapshot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // boolean reset
         0: .line 325
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.stats:Lio/ebeaninternal/server/query/CQueryPlanStats;
            iload 1 /* reset */
            invokevirtual io.ebeaninternal.server.query.CQueryPlanStats.getSnapshot:(Z)Lio/ebeaninternal/server/query/CQueryPlanStats$Snapshot;
            areturn
        end local 1 // boolean reset
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    1     1  reset  Z
    MethodParameters:
       Name  Flags
      reset  

  public long getLastQueryTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 332
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.stats:Lio/ebeaninternal/server/query/CQueryPlanStats;
            invokevirtual io.ebeaninternal.server.query.CQueryPlanStats.getLastQueryTime:()J
            lreturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  io.ebean.core.type.ScalarDataReader<?> getSingleAttributeScalarType();
    descriptor: ()Lio/ebean/core/type/ScalarDataReader;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 336
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.sqlTree:Lio/ebeaninternal/server/query/SqlTree;
            invokevirtual io.ebeaninternal.server.query.SqlTree.getRootNode:()Lio/ebeaninternal/server/query/SqlTreeNode;
            invokeinterface io.ebeaninternal.server.query.SqlTreeNode.getSingleAttributeReader:()Lio/ebean/core/type/ScalarDataReader;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;
    Signature: ()Lio/ebean/core/type/ScalarDataReader<*>;

  public boolean isEmptyStats();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 343
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.stats:Lio/ebeaninternal/server/query/CQueryPlanStats;
            invokevirtual io.ebeaninternal.server.query.CQueryPlanStats.isEmpty:()Z
            ireturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  io.ebean.metric.TimedMetric createTimedMetric();
    descriptor: ()Lio/ebean/metric/TimedMetric;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
         0: .line 347
            invokestatic io.ebean.metric.MetricFactory.get:()Lio/ebean/metric/MetricFactory;
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.label:Ljava/lang/String;
            invokeinterface io.ebean.metric.MetricFactory.createTimedMetric:(Ljava/lang/String;)Lio/ebean/metric/TimedMetric;
            areturn
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlan;

  void captureBindForQueryPlan(io.ebeaninternal.server.query.CQueryPredicates, long);
    descriptor: (Lio/ebeaninternal/server/query/CQueryPredicates;J)V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryPlan this
        start local 1 // io.ebeaninternal.server.query.CQueryPredicates predicates
        start local 2 // long executionTimeMicros
         0: .line 351
            invokestatic java.lang.System.nanoTime:()J
            lstore 4 /* startNanos */
        start local 4 // long startNanos
         1: .line 353
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.bindCapture:()Lio/ebeaninternal/server/type/DataBindCapture;
            astore 6 /* capture */
        start local 6 // io.ebeaninternal.server.type.DataBindCapture capture
         2: .line 354
            aload 1 /* predicates */
            aload 6 /* capture */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.bind:(Lio/ebeaninternal/server/type/DataBind;)Ljava/lang/String;
            pop
         3: .line 355
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlan.bindCapture:Lio/ebeaninternal/api/SpiQueryBindCapture;
            aload 6 /* capture */
            invokevirtual io.ebeaninternal.server.type.DataBindCapture.bindCapture:()Lio/ebeaninternal/server/type/bindcapture/BindCapture;
            lload 2 /* executionTimeMicros */
            lload 4 /* startNanos */
            invokeinterface io.ebeaninternal.api.SpiQueryBindCapture.setBind:(Lio/ebeaninternal/server/type/bindcapture/BindCapture;JJ)V
        end local 6 // io.ebeaninternal.server.type.DataBindCapture capture
         4: .line 356
            goto 7
      StackMap locals: io.ebeaninternal.server.query.CQueryPlan io.ebeaninternal.server.query.CQueryPredicates long long
      StackMap stack: java.sql.SQLException
         5: astore 6 /* e */
        start local 6 // java.sql.SQLException e
         6: .line 357
            getstatic io.ebeaninternal.server.query.CQueryPlan.logger:Lorg/slf4j/Logger;
            ldc "Error capturing bind values"
            aload 6 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // java.sql.SQLException e
         7: .line 359
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long startNanos
        end local 2 // long executionTimeMicros
        end local 1 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 0 // io.ebeaninternal.server.query.CQueryPlan this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lio/ebeaninternal/server/query/CQueryPlan;
            0    8     1           predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            0    8     2  executionTimeMicros  J
            1    8     4           startNanos  J
            2    4     6              capture  Lio/ebeaninternal/server/type/DataBindCapture;
            6    7     6                    e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           1     4       5  Class java.sql.SQLException
    MethodParameters:
                     Name  Flags
      predicates           
      executionTimeMicros  

  public io.ebeaninternal.api.SpiDbQueryPlan createMeta(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/ebeaninternal/api/SpiDbQueryPlan;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.createMeta:(Ljava/lang/String;Ljava/lang/String;)Lio/ebeaninternal/server/query/DQueryPlanOutput;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "CQueryPlan.java"
InnerClasses:
  public final Type = io.ebeaninternal.api.SpiQuery$Type of io.ebeaninternal.api.SpiQuery
  Snapshot = io.ebeaninternal.server.query.CQueryPlanStats$Snapshot of io.ebeaninternal.server.query.CQueryPlanStats