package com.l7tech.server.entity;

import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityManager;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.NamedEntity;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.objectmodel.EntityManager.UniqueType;
import com.l7tech.policy.GenericEntity;
import com.l7tech.policy.GenericEntityHeader;
import com.l7tech.policy.InvalidGenericEntityException;
import com.l7tech.server.HibernateEntityManager;
import com.l7tech.util.Charsets;
import com.l7tech.util.ClassFilter;
import com.l7tech.util.ClassFilterBuilder;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.SafeXMLDecoder;
import com.l7tech.util.SafeXMLDecoderBuilder;
import java.io.ByteArrayInputStream;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.logging.Logger;
import org.hibernate.HibernateException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class GenericEntityManagerImpl extends HibernateEntityManager<GenericEntity, GenericEntityHeader> implements GenericEntityManager {
   private static final Logger m;
   public static final String F_CLASSNAME;
   private final String n;
   private final String o;
   private final ConcurrentMap<String, e<?>> p;
   private static final String[] q;

   public GenericEntityManagerImpl() {
      String var10001 = this.getTableName();
      String var10002 = this.getTableName();
      String var10003 = this.getTableName();
      String var10004 = this.getImpClass().getName();
      String var1 = this.getTableName();
      String var2 = var10004;
      String var3 = var10003;
      String var4 = var10002;
      String var5 = var10001;
      String[] var11 = q;
      this.n = var11[9] + var5 + var11[22] + var4 + var11[5] + var3 + var11[23] + var2 + var11[26] + var1 + var11[68];
      var10001 = this.getTableName();
      var10002 = this.getTableName();
      var10003 = this.getImpClass().getName();
      String var6;
      String var7 = var6 = this.getTableName();
      String var8 = var10003;
      String var9 = var10002;
      String var10 = var10001;
      this.o = var11[55] + var10 + var11[13] + var9 + var11[65] + var8 + var11[0] + var7 + var11[58] + var6 + var11[17];
      this.p = new ConcurrentHashMap<>();
   }

   @Transactional(readOnly = true)
   public Class<? extends Entity> getImpClass() {
      return GenericEntity.class;
   }

   @Transactional(readOnly = true)
   @Override
   protected UniqueType getUniqueType() {
      return UniqueType.OTHER;
   }

   @Override
   public <ET extends GenericEntity> void registerClass(@NotNull Class<ET> var1) throws IllegalArgumentException {
      try {
         if (var1 == null) {
            b(0);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.registerClass(var1, null);
   }

   @Override
   public <ET extends GenericEntity> void registerClass(@NotNull Class<ET> var1, @Nullable GenericEntityMetadata var2) throws IllegalArgumentException {
      try {
         if (var1 == null) {
            b(1);
         }
      } catch (IllegalArgumentException var8) {
         throw a(var8);
      }

      try {
         if (!GenericEntity.class.isAssignableFrom(var1)) {
            throw new IllegalArgumentException(q[40] + var1.getName());
         }
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }

      try {
         if (var1 == GenericEntity.class) {
            throw new IllegalArgumentException(q[62] + var1.getName());
         }
      } catch (IllegalArgumentException var7) {
         throw a(var7);
      }

      String var3 = var1.getName();
      e var4 = this.p.putIfAbsent(var3, new e(var1, var2));

      try {
         if (null != var4) {
            throw new IllegalArgumentException(q[53] + var1.getName());
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }
   }

   @Override
   public boolean unRegisterClass(String var1) {
      e var2 = this.p.remove(var1);

      try {
         if (var2 != null) {
            return true;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return false;
   }

   @Transactional(readOnly = true)
   @Override
   public boolean isRegistered(String var1) {
      return this.p.containsKey(var1);
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> EntityManager<ET, GenericEntityHeader> getEntityManager(@NotNull Class<ET> var1) {
      try {
         if (var1 == null) {
            b(2);
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      GenericEntityManager var2 = (GenericEntityManager)this.applicationContext.getBean(q[7], GenericEntityManager.class);
      return new b(this, var2, var1);
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> Collection<ET> findAll(@NotNull Class<ET> var1) throws FindException {
      try {
         if (var1 == null) {
            b(3);
         }
      } catch (HibernateException var5) {
         throw a(var5);
      }

      e var2 = this.a(var1);

      try {
         return (Collection<ET>)this.getHibernateTemplate().execute(new f(this, var1, var2));
      } catch (HibernateException var4) {
         throw new FindException(q[56] + var1.getName(), var4);
      }
   }

   @NotNull
   private <ET extends GenericEntity> e<ET> a(Class<ET> var1) throws FindException {
      e var2 = this.p.get(var1.getName());

      try {
         if (var2 == null) {
            throw new FindException(c(var1));
         }
      } catch (FindException var4) {
         throw a(var4);
      }

      try {
         if (!var2.a().equals(var1)) {
            throw new FindException(q[47] + var1);
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      try {
         if (var2 == null) {
            b(4);
         }

         return var2;
      } catch (FindException var3) {
         throw a(var3);
      }
   }

   @Transactional(readOnly = true)
   @Override
   public Collection<GenericEntityHeader> findAllHeaders(@NotNull Class<? extends GenericEntity> var1) throws FindException {
      try {
         if (var1 == null) {
            b(5);
         }
      } catch (HibernateException var4) {
         throw a(var4);
      }

      try {
         if (this.p.get(var1.getName()) == null) {
            throw new FindException(q[29] + var1.getName() + q[54]);
         }
      } catch (HibernateException var5) {
         throw a(var5);
      }

      try {
         return (Collection<GenericEntityHeader>)this.getHibernateTemplate().execute(new g(this, var1));
      } catch (HibernateException var3) {
         throw new FindException(q[44] + var1.getName(), var3);
      }
   }

   @Transactional(readOnly = true)
   @Override
   public Collection<GenericEntityHeader> findAllHeaders(@NotNull Class<? extends GenericEntity> var1, int var2, int var3) throws FindException {
      try {
         if (var1 == null) {
            b(6);
         }
      } catch (HibernateException var6) {
         throw a(var6);
      }

      try {
         if (this.p.get(var1.getName()) == null) {
            throw new FindException(q[42] + var1.getName() + q[34]);
         }
      } catch (HibernateException var7) {
         throw a(var7);
      }

      try {
         return (Collection<GenericEntityHeader>)this.getHibernateTemplate().execute(new h(this, var1, var2, var3));
      } catch (HibernateException var5) {
         throw new FindException(q[44] + var1.getName(), var5);
      }
   }

   @Override
   public <ET extends GenericEntity> Goid save(@NotNull Class<ET> var1, ET var2) throws SaveException {
      try {
         if (var1 == null) {
            b(7);
         }
      } catch (SaveException var4) {
         throw a(var4);
      }

      GenericEntity var3 = this.a(var1, var2);
      return this.save(var3);
   }

   @Override
   public <ET extends GenericEntity> void save(@NotNull Goid var1, @NotNull Class<ET> var2, ET var3) throws SaveException {
      try {
         if (var1 == null) {
            b(8);
         }
      } catch (SaveException var5) {
         throw a(var5);
      }

      try {
         if (var2 == null) {
            b(9);
         }
      } catch (SaveException var6) {
         throw a(var6);
      }

      GenericEntity var4 = this.a(var2, var3);
      this.save(var1, var4);
   }

   private <ET extends GenericEntity> GenericEntity a(Class<ET> var1, ET var2) throws SaveException {
      try {
         if (!this.b(var1)) {
            throw new SaveException(c(var1));
         }
      } catch (SaveException var4) {
         throw a(var4);
      }

      try {
         if (!var1.getName().equals(var2.getEntityClassName())) {
            throw new SaveException(q[21] + var1.getName() + q[69] + var2.getEntityClassName());
         }
      } catch (SaveException var5) {
         throw a(var5);
      }

      GenericEntityUtils.regenerateValueXml(var2);
      GenericEntity var3 = new GenericEntity();
      GenericEntity.copyBaseFields(var2, var3);
      return var3;
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> Integer getVersion(@NotNull Class<ET> var1, Goid var2) throws FindException {
      try {
         if (var1 == null) {
            b(10);
         }
      } catch (Exception var5) {
         throw a(var5);
      }

      try {
         if (!this.b(var1)) {
            throw new FindException(c(var1));
         }
      } catch (Exception var6) {
         throw a(var6);
      }

      try {
         return (Integer)this.getHibernateTemplate().execute(new i(this, var2, var1));
      } catch (Exception var4) {
         throw new FindException(var4.toString(), var4);
      }
   }

   private <ET extends GenericEntity> boolean b(Class<ET> var1) {
      try {
         if (this.p.get(var1.getName()) != null) {
            return true;
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return false;
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> Map<Goid, Integer> findVersionMap(@NotNull Class<ET> param1) throws FindException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: ifnonnull 010
      // 004: bipush 11
      // 006: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.b (I)V
      // 009: goto 010
      // 00c: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 00f: athrow
      // 010: aload 0
      // 011: aload 1
      // 012: invokevirtual com/l7tech/server/entity/GenericEntityManagerImpl.b (Ljava/lang/Class;)Z
      // 015: ifne 028
      // 018: new com/l7tech/objectmodel/FindException
      // 01b: dup
      // 01c: aload 1
      // 01d: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.c (Ljava/lang/Class;)Ljava/lang/String;
      // 020: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 023: athrow
      // 024: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 027: athrow
      // 028: new java/util/HashMap
      // 02b: dup
      // 02c: invokespecial java/util/HashMap.<init> ()V
      // 02f: astore 2
      // 030: ldc com/l7tech/objectmodel/PersistentEntity
      // 032: aload 0
      // 033: invokevirtual com/l7tech/server/entity/GenericEntityManagerImpl.getImpClass ()Ljava/lang/Class;
      // 036: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 039: ifne 04e
      // 03c: new com/l7tech/objectmodel/FindException
      // 03f: dup
      // 040: getstatic com/l7tech/server/entity/GenericEntityManagerImpl.q [Ljava/lang/String;
      // 043: bipush 16
      // 045: aaload
      // 046: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 049: athrow
      // 04a: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04d: athrow
      // 04e: aconst_null
      // 04f: astore 3
      // 050: aconst_null
      // 051: astore 4
      // 053: aload 0
      // 054: invokevirtual com/l7tech/server/entity/GenericEntityManagerImpl.getSessionFactory ()Lorg/hibernate/SessionFactory;
      // 057: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.useCurrentOrOpenNewSession (Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
      // 05a: astore 3
      // 05b: aload 3
      // 05c: invokeinterface org/hibernate/Session.getHibernateFlushMode ()Lorg/hibernate/FlushMode; 1
      // 061: astore 4
      // 063: aload 3
      // 064: getstatic org/hibernate/FlushMode.MANUAL Lorg/hibernate/FlushMode;
      // 067: invokeinterface org/hibernate/Session.setHibernateFlushMode (Lorg/hibernate/FlushMode;)V 2
      // 06c: aload 3
      // 06d: aload 0
      // 06e: getfield com/l7tech/server/entity/GenericEntityManagerImpl.n Ljava/lang/String;
      // 071: invokeinterface org/hibernate/Session.createQuery (Ljava/lang/String;)Lorg/hibernate/query/Query; 2
      // 076: astore 5
      // 078: aload 5
      // 07a: getstatic com/l7tech/server/entity/GenericEntityManagerImpl.q [Ljava/lang/String;
      // 07d: astore 11
      // 07f: aload 11
      // 081: bipush 67
      // 083: aaload
      // 084: aload 1
      // 085: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 088: invokeinterface org/hibernate/Query.setParameter (Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/Query; 3
      // 08d: pop
      // 08e: aload 5
      // 090: invokeinterface org/hibernate/Query.list ()Ljava/util/List; 1
      // 095: astore 6
      // 097: aload 6
      // 099: invokeinterface java/util/List.size ()I 1
      // 09e: ifle 130
      // 0a1: aload 6
      // 0a3: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 0a8: astore 7
      // 0aa: aload 7
      // 0ac: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 0b1: ifeq 130
      // 0b4: aload 7
      // 0b6: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0bb: astore 8
      // 0bd: aload 8
      // 0bf: checkcast [Ljava/lang/Object;
      // 0c2: astore 9
      // 0c4: aload 9
      // 0c6: bipush 0
      // 0c7: aaload
      // 0c8: instanceof com/l7tech/objectmodel/Goid
      // 0cb: ifeq 0fb
      // 0ce: aload 9
      // 0d0: bipush 1
      // 0d1: aaload
      // 0d2: instanceof java/lang/Integer
      // 0d5: ifeq 0fb
      // 0d8: goto 0df
      // 0db: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0de: athrow
      // 0df: aload 2
      // 0e0: aload 9
      // 0e2: bipush 0
      // 0e3: aaload
      // 0e4: checkcast com/l7tech/objectmodel/Goid
      // 0e7: aload 9
      // 0e9: bipush 1
      // 0ea: aaload
      // 0eb: checkcast java/lang/Integer
      // 0ee: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 0f3: pop
      // 0f4: goto 12d
      // 0f7: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fa: athrow
      // 0fb: new com/l7tech/objectmodel/FindException
      // 0fe: dup
      // 0ff: aload 9
      // 101: bipush 0
      // 102: aaload
      // 103: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 106: aload 9
      // 108: bipush 1
      // 109: aaload
      // 10a: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 10d: getstatic com/l7tech/server/entity/GenericEntityManagerImpl.q [Ljava/lang/String;
      // 110: astore 11
      // 112: aload 11
      // 114: bipush 64
      // 116: aaload
      // 117: dup_x2
      // 118: pop
      // 119: aload 11
      // 11b: bipush 48
      // 11d: aaload
      // 11e: swap
      // 11f: aload 11
      // 121: bipush 39
      // 123: aaload
      // 124: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 129: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 12c: athrow
      // 12d: goto 0aa
      // 130: aload 3
      // 131: ifnull 14f
      // 134: aload 4
      // 136: ifnull 14f
      // 139: goto 140
      // 13c: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 13f: athrow
      // 140: aload 3
      // 141: aload 4
      // 143: invokeinterface org/hibernate/Session.setHibernateFlushMode (Lorg/hibernate/FlushMode;)V 2
      // 148: goto 14f
      // 14b: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14e: athrow
      // 14f: aload 3
      // 150: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.closeNewSession (Lorg/hibernate/Session;)V
      // 153: goto 19b
      // 156: astore 5
      // 158: new com/l7tech/objectmodel/FindException
      // 15b: dup
      // 15c: aload 5
      // 15e: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 161: getstatic com/l7tech/server/entity/GenericEntityManagerImpl.q [Ljava/lang/String;
      // 164: bipush 70
      // 166: aaload
      // 167: swap
      // 168: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 16d: aload 5
      // 16f: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 172: athrow
      // 173: astore 10
      // 175: aload 3
      // 176: ifnull 194
      // 179: aload 4
      // 17b: ifnull 194
      // 17e: goto 185
      // 181: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 184: athrow
      // 185: aload 3
      // 186: aload 4
      // 188: invokeinterface org/hibernate/Session.setHibernateFlushMode (Lorg/hibernate/FlushMode;)V 2
      // 18d: goto 194
      // 190: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 193: athrow
      // 194: aload 3
      // 195: invokestatic com/l7tech/server/entity/GenericEntityManagerImpl.closeNewSession (Lorg/hibernate/Session;)V
      // 198: aload 10
      // 19a: athrow
      // 19b: aload 2
      // 19c: areturn
      // try (89 -> 109): 109 java/lang/Exception
      // try (84 -> 94): 95 java/lang/Exception
      // try (23 -> 35): 35 java/lang/Exception
      // try (7 -> 17): 17 java/lang/Exception
      // try (0 -> 4): 5 java/lang/Exception
      // try (41 -> 139): 155 java/lang/Exception
      // try (41 -> 139): 168 null
      // try (141 -> 149): 150 java/lang/Exception
      // try (139 -> 143): 144 java/lang/Exception
      // try (155 -> 169): 168 null
      // try (169 -> 173): 174 java/lang/Exception
      // try (171 -> 179): 180 java/lang/Exception
   }

   @Override
   public <ET extends GenericEntity> void delete(@NotNull Class<ET> var1, ET var2) throws DeleteException {
      try {
         if (var1 == null) {
            b(12);
         }
      } catch (DeleteException var5) {
         throw a(var5);
      }

      try {
         if (!this.b(var1)) {
            throw new DeleteException(c(var1));
         }
      } catch (DeleteException var3) {
         throw a(var3);
      }

      try {
         if (!var1.getName().equals(var2.getEntityClassName())) {
            throw new DeleteException(q[71] + var1.getName() + q[74] + var2.getEntityClassName());
         }
      } catch (DeleteException var4) {
         throw a(var4);
      }

      this.delete(var2);
   }

   private static <ET extends GenericEntity> String c(Class<ET> var0) {
      String var10000 = var0.getName();
      String[] var1 = q;
      return var1[42] + var10000 + var1[34];
   }

   @Transactional(readOnly = true)
   protected GenericEntity checkAndCache(GenericEntity var1) throws FindException {
      String var2 = var1.getEntityClassName();
      e var3 = this.p.get(var2);

      try {
         if (var3 == null) {
            throw new FindException(q[42] + var2 + q[34]);
         }
      } catch (FindException var4) {
         throw a(var4);
      }

      var1 = this.a(var1, var3);
      return (GenericEntity)super.checkAndCache(var1);
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> ET getCachedEntity(@NotNull Class<ET> var1, Goid var2, int var3) throws FindException {
      try {
         if (var1 == null) {
            b(13);
         }
      } catch (FindException var8) {
         throw a(var8);
      }

      e var4 = this.a(var1);
      GenericEntity var5 = (GenericEntity)super.getCachedEntity(var2, var3);

      try {
         if (var5 == null) {
            return null;
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      try {
         if (var1.isInstance(var5)) {
            return (ET)var1.cast(var5);
         }
      } catch (FindException var7) {
         throw a(var7);
      }

      return this.a(var5, var4);
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> ET findByUniqueName(@NotNull Class<ET> var1, String var2) throws FindException {
      try {
         if (var1 == null) {
            b(14);
         }
      } catch (FindException var7) {
         throw a(var7);
      }

      e var3 = this.a(var1);
      GenericEntity var4 = this.a(var1.getName(), var2);

      try {
         if (var4 == null) {
            return null;
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      try {
         if (var1.isInstance(var4)) {
            return (ET)var1.cast(var4);
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      return this.a(var4, var3);
   }

   @Override
   public GenericEntity findByUniqueName(@NotNull String var1, String var2) throws FindException {
      try {
         if (var1 == null) {
            b(15);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      try {
         if (!this.isRegistered(var1)) {
            throw new FindException(q[42] + var1 + q[34]);
         }
      } catch (FindException var4) {
         throw a(var4);
      }

      return this.a(var1, var2);
   }

   private GenericEntity a(@NotNull String var1, String var2) throws FindException {
      try {
         if (var1 == null) {
            b(16);
         }
      } catch (HibernateException var7) {
         throw a(var7);
      }

      try {
         if (var2 == null) {
            throw new NullPointerException();
         }
      } catch (HibernateException var5) {
         throw a(var5);
      }

      try {
         if (!NamedEntity.class.isAssignableFrom(this.getImpClass())) {
            throw new IllegalArgumentException(q[50]);
         }
      } catch (HibernateException var6) {
         throw a(var6);
      }

      try {
         return (GenericEntity)this.getHibernateTemplate().execute(new j(this, var2, var1));
      } catch (HibernateException var4) {
         throw new FindException(q[2], var4);
      }
   }

   @Override
   public <ET extends GenericEntity> void delete(@NotNull Class<ET> var1, Goid var2) throws DeleteException, FindException {
      try {
         if (var1 == null) {
            b(17);
         }
      } catch (DeleteException var8) {
         throw a(var8);
      }

      try {
         if (!this.b(var1)) {
            throw new DeleteException(c(var1));
         }
      } catch (DeleteException var10) {
         throw a(var10);
      }

      GenericEntity var3 = this.findByPrimaryKey(var2);

      label31: {
         try {
            if (var3 != null && !var1.getName().equals(var3.getEntityClassName())) {
               break label31;
            }
         } catch (DeleteException var9) {
            throw a(var9);
         }

         this.delete(var2);
         return;
      }

      String var10002 = var2.toString();
      String var10003 = var1.getName();
      String var4 = var3.getEntityClassName();
      String var5 = var10003;
      String var6 = var10002;
      String[] var7 = q;
      throw new DeleteException(var7[30] + var6 + var7[49] + var5 + var7[4] + var4);
   }

   @Override
   public <ET extends GenericEntity> void update(@NotNull Class<ET> var1, ET var2) throws UpdateException {
      try {
         if (var1 == null) {
            b(18);
         }
      } catch (FindException var9) {
         throw a(var9);
      }

      try {
         if (!this.b(var1)) {
            throw new UpdateException(c(var1));
         }
      } catch (FindException var12) {
         throw a(var12);
      }

      try {
         label45: {
            Goid var3 = var2.getGoid();
            GenericEntity var4 = this.findByPrimaryKey(var3);

            try {
               if (var4 == null || var1.getName().equals(var4.getEntityClassName())) {
                  break label45;
               }
            } catch (FindException var10) {
               throw a(var10);
            }

            String var10002 = var3.toString();
            String var10003 = var1.getName();
            String var5 = var4.getEntityClassName();
            String var6 = var10003;
            String var7 = var10002;
            String[] var8 = q;
            throw new UpdateException(var8[73] + var7 + var8[24] + var6 + var8[77] + var5);
         }
      } catch (FindException var11) {
         throw new UpdateException(q[37] + ExceptionUtils.getMessage(var11), var11);
      }

      GenericEntityUtils.regenerateValueXml(var2);
      GenericEntity var13 = new GenericEntity();
      GenericEntity.copyBaseFields(var2, var13);
      this.update(var13);
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> ET findByHeader(@NotNull Class<ET> var1, EntityHeader var2) throws FindException {
      try {
         if (var1 == null) {
            b(19);
         }
      } catch (FindException var7) {
         throw a(var7);
      }

      e var3 = this.a(var1);
      GenericEntity var4 = this.findByHeader(var2);

      try {
         if (var4 == null) {
            return null;
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      try {
         if (!var1.getName().equals(var4.getEntityClassName())) {
            return null;
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      return this.a(var4, var3);
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> List<ET> findPagedMatching(
      @NotNull Class<ET> var1, int var2, int var3, String var4, Boolean var5, Map<String, List<Object>> var6
   ) throws FindException {
      try {
         if (var1 == null) {
            b(20);
         }
      } catch (Exception var10) {
         throw a(var10);
      }

      e var7 = this.a(var1);

      try {
         return (List<ET>)this.getHibernateTemplate().execute(new k(this, var1, var6, var4, var5, var2, var3, var7));
      } catch (Exception var9) {
         throw new FindException(q[1] + var1.getName(), var9);
      }
   }

   @Transactional(readOnly = true)
   @Override
   public <ET extends GenericEntity> ET findByGenericClassAndPrimaryKey(@NotNull Class<ET> var1, Goid var2) throws FindException {
      try {
         if (var1 == null) {
            b(21);
         }
      } catch (FindException var7) {
         throw a(var7);
      }

      e var3 = this.a(var1);
      GenericEntity var4 = this.findByPrimaryKey(var2);

      try {
         if (var4 == null) {
            return null;
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      try {
         if (!var1.getName().equals(var4.getEntityClassName())) {
            return null;
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      return this.a(var4, var3);
   }

   protected GenericEntityHeader newHeader(GenericEntity var1) {
      return new GenericEntityHeader(var1);
   }

   @Override
   public <ET extends GenericEntity> ET asConcreteEntity(@NotNull GenericEntity var1) throws InvalidGenericEntityException {
      try {
         if (var1 == null) {
            b(22);
         }
      } catch (ClassCastException var6) {
         throw a(var6);
      }

      e var2 = this.p.get(var1.getEntityClassName());

      try {
         if (var2 == null) {
            throw new InvalidGenericEntityException(q[20] + var1.getEntityClassName());
         }
      } catch (ClassCastException var5) {
         throw a(var5);
      }

      try {
         return this.a(var1, var2);
      } catch (ClassCastException var4) {
         throw new InvalidGenericEntityException(q[76], var4);
      }
   }

   <ET extends GenericEntity> ET a(GenericEntity var1, e<ET> var2) throws InvalidGenericEntityException {
      Class var3 = var2.a();
      GenericEntityMetadata var4 = var2.b();
      String var5 = var1.getEntityClassName();

      try {
         if (!var3.getName().equals(var5)) {
            throw new InvalidGenericEntityException(q[15] + var5 + q[25] + var3.getName());
         }
      } catch (Exception var21) {
         throw a(var21);
      }

      String var6 = var1.getValueXml();

      label87: {
         try {
            if (var6 == null || var6.length() < 1) {
               break label87;
            }
         } catch (Exception var20) {
            throw a(var20);
         }

         ClassFilterBuilder var7 = this.a(var3, var4);
         ByteArrayInputStream var8 = new ByteArrayInputStream(var6.getBytes(Charsets.UTF8));

         try {
            SafeXMLDecoder var9 = new SafeXMLDecoderBuilder(var7, var8).setClassLoader(var3.getClassLoader()).build();

            label60: {
               GenericEntity var12;
               try {
                  Object var10 = var9.readObject();
                  if (!var3.isInstance(var10)) {
                     break label60;
                  }

                  GenericEntity var11 = (GenericEntity)var3.cast(var10);
                  GenericEntity.copyBaseFields(var1, var11);
                  var12 = var11;
               } catch (Throwable var17) {
                  if (var9 != null) {
                     try {
                        var9.close();
                     } catch (Throwable var14) {
                        var17.addSuppressed(var14);
                     }
                  }

                  throw var17;
               }

               try {
                  if (var9 != null) {
                     var9.close();
                  }

                  return (ET)var12;
               } catch (Exception var15) {
                  throw a(var15);
               }
            }

            try {
               if (var9 != null) {
                  var9.close();
               }
            } catch (Exception var18) {
               throw a(var18);
            }
         } catch (ArrayIndexOutOfBoundsException var19) {
            String[] var13 = q;
            throw new InvalidGenericEntityException(var13[6], var19);
         }

         throw new InvalidGenericEntityException(q[59] + var5);
      }

      try {
         GenericEntity var22 = (GenericEntity)var3.newInstance();
         GenericEntity.copyBaseFields(var1, var22);
         return (ET)var22;
      } catch (Exception var16) {
         String var10002 = var3.getName();
         String var10003 = ExceptionUtils.getMessage(var16);
         String[] var23 = q;
         throw new InvalidGenericEntityException(var23[41] + var10002 + var23[66] + var10003, var16);
      }
   }

   private <ET extends GenericEntity> ClassFilterBuilder a(Class<ET> var1, GenericEntityMetadata var2) {
      a var3 = new a(this, var1.getClassLoader(), Arrays.asList(q[61], var1.getPackage().getName() + "."));
      ClassFilterBuilder var4 = new ClassFilterBuilder().allowDefaults().addClassFilter(var3);
      if (var2 != null) {
         Set var5 = var2.a();

         try {
            if (var5 != null) {
               var4.addClasses(false, var5.toArray(new String[var5.size()]));
            }
         } catch (IllegalArgumentException var13) {
            throw a(var13);
         }

         Set var6 = var2.b();

         try {
            if (var6 != null) {
               var4.addConstructors(var6.toArray(new String[var6.size()]));
            }
         } catch (IllegalArgumentException var12) {
            throw a(var12);
         }

         Set var7 = var2.c();

         try {
            if (var7 != null) {
               var4.addMethods(var7.toArray(new String[var7.size()]));
            }
         } catch (IllegalArgumentException var11) {
            throw a(var11);
         }

         List var8 = var2.d();
         if (var8 != null) {
            for (ClassFilter var10 : var8) {
               var4.addClassFilter(var10);
            }
         }
      }

      return var4;
   }

   protected Collection<Map<String, Object>> getUniqueConstraints(GenericEntity var1) {
      HashMap var2 = new HashMap();
      String[] var3 = q;
      var2.put(var3[57], var1.getName());
      var2.put(var3[45], var1.getEntityClassName());
      return Arrays.asList(var2);
   }

   static {
      String[] var5 = new String[79];
      int var3 = 0;
      String var2 = "ef}l$s\u0010'\u0006^@E\u0012X\u00171\u0011S@\u0018R\u0010\"T[L\u0004_SeT[]\u001fBY B\u0015F\u0010\u0016D<AP\t\u001b\u0006^@E\u0012X\u00171\u0011S@\u0018R\u00100_\\X\u0003S\u0010 _A@\u0002O\u0010$BvF\u0018UB EPl\u0018BY1H\u001aeSPJ\u0017CC \u0011\\]V_CePV]\u0003W\\)H\u0015HV\u000ekGP[\u0005__+\u0011s{9{\u0010$\u0016EGL\u0017[\u0010!^PZVX_1\u0011VF\u0018BQ,_\u0015H\u0018O\u0010 _A@\u0002_U6\u0014\"T[L\u0004_S\u0000_A@\u0002O}$_TN\u0013D\u0012!^s@\u0018Rr<d[@\u0007CU\u000bPXL\u0007\u0016tyl5b\u0010\f\"TAj\u001aWC6x[O\u0019\f#X[M4Ox PQL\u0004\u0007#X[M7Z\\\u000ekGP[\u0005__+\u0011s{9{\u0010\u001f#X[M4Ow _P[\u001fUs)PFZ7XT\u0015C\\D\u0017DI\u000eTL(\"T[L\u0004_SeT[]\u001fBIeXF\t\u0018YDe^S\t\u0013N@ RAL\u0012\u0016S)PFZV\u0018\u0006P[\u000e\u0002\u0016V,_Q\t\u0018Y^ht[]\u001fBY B\u0014#kT[]\u001fBI\u0006]TZ\u0005xQ(T\u0015\u0014V\fU+E\\]\u000fu\\$BFg\u0017[U1&^X\u0006\u001a\u0001D R]\u0006\u0005SB3TG\u0006\u0013XD,EL\u00061S^ C\\J3XD,ELd\u0017XQ\"TG`\u001bF\\*\u0005\u007fZ]8C\\)\u0011XL\u0002^_!\u0011\u0010ZX\u0013Ce\\@Z\u0002\u0016^*E\u0015[\u0013BE7_\u0015G\u0003Z\\/\u0006P[\t\u0018YDeW\\G\u0012\u0016W _P[\u001fU\u0010 _A@\u0002O\u0010(P[H\u0011SBeWZ[VU\\$BF\u0013V;\u0002T[L\u0004_SeT[]\u001fBIeRYH\u0005E\u0010&P[G\u0019B\u0010'T\u0015Z\u0017@U!\u0011B@\u0002^\u0010&]TZ\u0005\u0016_1YP[VBX$_\u0015\u0007kVZ@\u0012\u001a\u0010\nex{\t5zq\u0016b\u0015\u0018eRTG\u0018YDeSP\t\u0003FT$EPMVWCeP\u0015\u0016\u007f\u0011TJ\u0002CQ)\u0011VE\u0017EC+PXLV_Ce\u0007ef}l$s\u0010\u0010#X[M4Oe+XD\\\u0013xQ(T\u00046PCL\u001e\u000b^\u0015N\u0013XU7XV\t\u0013XD,EL\t\u0015ZQ6B\u0015G\u0017[U!\u0011\u0019\u0002T[L\u0004_SeT[]\u001fBIeF\\]\u001e\u0016W*XQ\t\u0010\"TAl\u0018BY1HxH\u0018WW C>\u0004CR\\\u001bS^1\u0011SF\u0004\u0016p\u000b^Ag\u0003Z\\eAT[\u0017[U1TG\tQ\u0013Cb\u0011ZOV\u0013Ck\u0014F\t\u001bCC1\u0011[F\u0002\u0016R \u0011[\\\u001aZ\u0006!TYL\u0002S\u000eeXF\t\u0004SW,BAL\u0004ST1&^X\u0006\u001a\u0001D R]\u0006\u0005SB3TG\u0006\u0013XD,EL\u00061S^ C\\J3XD,ELd\u0017XQ\"TG`\u001bF\\\r\"T[L\u0004_S\u0000_A@\u0002O!\u0010_TK\u001aS\u00101^\u0015\\\u0006RQ1T\u0015N\u0013XU7XV\t\u0013XD,EL\u0013V\u0011#X[M&WW UxH\u0002UX,_R\feWGF\u001b\u0016A0TGPWI\u0016APJ\u001fPY U\u0015L\u0018BY1H\u0015J\u001aWC6\u0011\\ZVX_1\u0011TZ\u0005_W+PWE\u0013\u0016D*\u0011rL\u0018SB,RpG\u0002_D<\u001d\u0015L\u0018BY1H\u0015J\u001aWC6\u000b\u0015\u0016\u0010_TK\u001aS\u00101^\u0015@\u0018ED$_A@\u0017BUe\u001e\u000b^\u0015N\u0013XU7XV\t\u0013XD,EL\t\u0015ZQ6B\u0015G\u0017[U!\u0011\u00060AQH\u0002S+\u0006^@E\u0012X\u00171\u0011S@\u0018R\u0010$]Y\t\u0011S^ C\\JVS^1XA@\u0013E\u0010*W\u0015]\u000fFUe\u000f _A@\u0002Os)PFZ8W] \u000e#X[M7Z\\\rTTM\u0013DC0\u0006]TZ\u0005\u0016T*TF\t\u0018YDe\\T]\u0015^\u0010#^G\t\u0011S^ C\\JVS^1XAPVYVeELY\u0013\u0016\u0005eP[MV\u0018eRTG\u0018YDeSP\t\u0012S\\ EPMVWCeP\u0015.\u0011Y\\ZV{Q+PRL\u0004\u0011CeT[]\u001fBY B\u0015H\u0004S\u0010+^A\t8W] UpG\u0002_D,TF\b\r7TR@\u0005BU7rYH\u0005E\u000b _A@\u0002Os)PFZ@\u0016APJ\u001fPY U\u0015L\u0018BY1H\u0015J\u001aWC6_TD\u0013\u0016Y6\u0011TE\u0004SQ!H\u0015[\u0013QY6EP[\u0013R\u001ceT[]\u001fBIeRYH\u0005E\ne\u000eeXF\t\u0004SW,BAL\u0004ST\u0007\u0016tyl5b\u0010+\u0006^@E\u0012X\u00171\u0011S@\u0018R\u0010$]Y\t\u0011S^ C\\JVS^1XA@\u0013E\u0010*W\u0015]\u000fFUe\u0004+PXL\u0014kVZ@\u0012\u0016\re\u000bRF\u001fR\u0010e\u0011tg2\u00169\u0002T[L\u0004_SeT[]\u001fBIeixeVED7TTDVRY!\u0011[F\u0002\u0016S*_AH\u001fX\u0010$_\u0015@\u0018ED$_VLVYVe\n\"TA\u007f\u0013DC,^[\u000b&^X\u0007\u001a\u0001D R]\u0007{\u0016APJ\u001fPY U\u0015L\u0018BY1H\u0015J\u001aWC6\u0011\\ZVqU+TG@\u0015s^1XAPV_D6TYOM\u0016S*_V[\u0013BUeT[]\u001fBIeRYH\u0005E\u00106YZ\\\u001aR\u0010'T\u0015HVEE'RYH\u0005E\u0010*W\u0015n\u0013XU7XVl\u0018BY1H\u0019\t\u0013XD,EL\t\u0015ZQ6B\u000f\t\u000f\"TAj\u0017UX UpG\u0002_D<\u0016\u0002^A\t\u0003XU=APJ\u0002STeW\\L\u001aRCe\nex{\t5zq\u0016b\u0015\u0002\u007f\u0011\u000f _A@\u0002Os)PFZ8W] #kT[]\u001fBI\u0006]TZ\u0005xQ(T\u0015\u0014V\fU+E\\]\u000fu\\$BFg\u0017[U\u0017\u007f\u0011TJ\u0002CQ)\u0011VE\u0017ECe_TD\u0013\u0016Y6\u0011\u001c\u0010_TK\u001aS\u00101^\u0015O\u001fXTeGP[\u0005__+\u0011XH\u0006\f\u0010=\u0002T[L\u0004_SeT[]\u001fBIeRYH\u0005E\u0010&P[G\u0019B\u0010'T\u0015M\u0013ZU1TQ\t\u0001_D-\u0011VE\u0017ECe^AA\u0013D\u00101YTGV\u0002,U\u0019\u0002T[L\u0004_SeT[]\u001fBIeF\\]\u001e\u0016W*XQ\t\u0017\u007f\u0011TJ\u0002CQ)\u0011VE\u0017ECe_TD\u0013\u0016Y6\u0011\u000e#X[M SB6XZG;W@2\u0003^@G\u0012\u0016S*_V[\u0013BUeVPG\u0013DY&\u0011W\\\u0002\u0016S)PFZVBI5T\u0015@\u0005\u0016Y+RZ[\u0004SS1";
      int var4 = "ef}l$s\u0010'\u0006^@E\u0012X\u00171\u0011S@\u0018R\u0010\"T[L\u0004_SeT[]\u001fBY B\u0015F\u0010\u0016D<AP\t\u001b\u0006^@E\u0012X\u00171\u0011S@\u0018R\u00100_\\X\u0003S\u0010 _A@\u0002O\u0010$BvF\u0018UB EPl\u0018BY1H\u001aeSPJ\u0017CC \u0011\\]V_CePV]\u0003W\\)H\u0015HV\u000ekGP[\u0005__+\u0011s{9{\u0010$\u0016EGL\u0017[\u0010!^PZVX_1\u0011VF\u0018BQ,_\u0015H\u0018O\u0010 _A@\u0002_U6\u0014\"T[L\u0004_S\u0000_A@\u0002O}$_TN\u0013D\u0012!^s@\u0018Rr<d[@\u0007CU\u000bPXL\u0007\u0016tyl5b\u0010\f\"TAj\u001aWC6x[O\u0019\f#X[M4Ox PQL\u0004\u0007#X[M7Z\\\u000ekGP[\u0005__+\u0011s{9{\u0010\u001f#X[M4Ow _P[\u001fUs)PFZ7XT\u0015C\\D\u0017DI\u000eTL(\"T[L\u0004_SeT[]\u001fBIeXF\t\u0018YDe^S\t\u0013N@ RAL\u0012\u0016S)PFZV\u0018\u0006P[\u000e\u0002\u0016V,_Q\t\u0018Y^ht[]\u001fBY B\u0014#kT[]\u001fBI\u0006]TZ\u0005xQ(T\u0015\u0014V\fU+E\\]\u000fu\\$BFg\u0017[U1&^X\u0006\u001a\u0001D R]\u0006\u0005SB3TG\u0006\u0013XD,EL\u00061S^ C\\J3XD,ELd\u0017XQ\"TG`\u001bF\\*\u0005\u007fZ]8C\\)\u0011XL\u0002^_!\u0011\u0010ZX\u0013Ce\\@Z\u0002\u0016^*E\u0015[\u0013BE7_\u0015G\u0003Z\\/\u0006P[\t\u0018YDeW\\G\u0012\u0016W _P[\u001fU\u0010 _A@\u0002O\u0010(P[H\u0011SBeWZ[VU\\$BF\u0013V;\u0002T[L\u0004_SeT[]\u001fBIeRYH\u0005E\u0010&P[G\u0019B\u0010'T\u0015Z\u0017@U!\u0011B@\u0002^\u0010&]TZ\u0005\u0016_1YP[VBX$_\u0015\u0007kVZ@\u0012\u001a\u0010\nex{\t5zq\u0016b\u0015\u0018eRTG\u0018YDeSP\t\u0003FT$EPMVWCeP\u0015\u0016\u007f\u0011TJ\u0002CQ)\u0011VE\u0017EC+PXLV_Ce\u0007ef}l$s\u0010\u0010#X[M4Oe+XD\\\u0013xQ(T\u00046PCL\u001e\u000b^\u0015N\u0013XU7XV\t\u0013XD,EL\t\u0015ZQ6B\u0015G\u0017[U!\u0011\u0019\u0002T[L\u0004_SeT[]\u001fBIeF\\]\u001e\u0016W*XQ\t\u0010\"TAl\u0018BY1HxH\u0018WW C>\u0004CR\\\u001bS^1\u0011SF\u0004\u0016p\u000b^Ag\u0003Z\\eAT[\u0017[U1TG\tQ\u0013Cb\u0011ZOV\u0013Ck\u0014F\t\u001bCC1\u0011[F\u0002\u0016R \u0011[\\\u001aZ\u0006!TYL\u0002S\u000eeXF\t\u0004SW,BAL\u0004ST1&^X\u0006\u001a\u0001D R]\u0006\u0005SB3TG\u0006\u0013XD,EL\u00061S^ C\\J3XD,ELd\u0017XQ\"TG`\u001bF\\\r\"T[L\u0004_S\u0000_A@\u0002O!\u0010_TK\u001aS\u00101^\u0015\\\u0006RQ1T\u0015N\u0013XU7XV\t\u0013XD,EL\u0013V\u0011#X[M&WW UxH\u0002UX,_R\feWGF\u001b\u0016A0TGPWI\u0016APJ\u001fPY U\u0015L\u0018BY1H\u0015J\u001aWC6\u0011\\ZVX_1\u0011TZ\u0005_W+PWE\u0013\u0016D*\u0011rL\u0018SB,RpG\u0002_D<\u001d\u0015L\u0018BY1H\u0015J\u001aWC6\u000b\u0015\u0016\u0010_TK\u001aS\u00101^\u0015@\u0018ED$_A@\u0017BUe\u001e\u000b^\u0015N\u0013XU7XV\t\u0013XD,EL\t\u0015ZQ6B\u0015G\u0017[U!\u0011\u00060AQH\u0002S+\u0006^@E\u0012X\u00171\u0011S@\u0018R\u0010$]Y\t\u0011S^ C\\JVS^1XA@\u0013E\u0010*W\u0015]\u000fFUe\u000f _A@\u0002Os)PFZ8W] \u000e#X[M7Z\\\rTTM\u0013DC0\u0006]TZ\u0005\u0016T*TF\t\u0018YDe\\T]\u0015^\u0010#^G\t\u0011S^ C\\JVS^1XAPVYVeELY\u0013\u0016\u0005eP[MV\u0018eRTG\u0018YDeSP\t\u0012S\\ EPMVWCeP\u0015.\u0011Y\\ZV{Q+PRL\u0004\u0011CeT[]\u001fBY B\u0015H\u0004S\u0010+^A\t8W] UpG\u0002_D,TF\b\r7TR@\u0005BU7rYH\u0005E\u000b _A@\u0002Os)PFZ@\u0016APJ\u001fPY U\u0015L\u0018BY1H\u0015J\u001aWC6_TD\u0013\u0016Y6\u0011TE\u0004SQ!H\u0015[\u0013QY6EP[\u0013R\u001ceT[]\u001fBIeRYH\u0005E\ne\u000eeXF\t\u0004SW,BAL\u0004ST\u0007\u0016tyl5b\u0010+\u0006^@E\u0012X\u00171\u0011S@\u0018R\u0010$]Y\t\u0011S^ C\\JVS^1XA@\u0013E\u0010*W\u0015]\u000fFUe\u0004+PXL\u0014kVZ@\u0012\u0016\re\u000bRF\u001fR\u0010e\u0011tg2\u00169\u0002T[L\u0004_SeT[]\u001fBIeixeVED7TTDVRY!\u0011[F\u0002\u0016S*_AH\u001fX\u0010$_\u0015@\u0018ED$_VLVYVe\n\"TA\u007f\u0013DC,^[\u000b&^X\u0007\u001a\u0001D R]\u0007{\u0016APJ\u001fPY U\u0015L\u0018BY1H\u0015J\u001aWC6\u0011\\ZVqU+TG@\u0015s^1XAPV_D6TYOM\u0016S*_V[\u0013BUeT[]\u001fBIeRYH\u0005E\u00106YZ\\\u001aR\u0010'T\u0015HVEE'RYH\u0005E\u0010*W\u0015n\u0013XU7XVl\u0018BY1H\u0019\t\u0013XD,EL\t\u0015ZQ6B\u000f\t\u000f\"TAj\u0017UX UpG\u0002_D<\u0016\u0002^A\t\u0003XU=APJ\u0002STeW\\L\u001aRCe\nex{\t5zq\u0016b\u0015\u0002\u007f\u0011\u000f _A@\u0002Os)PFZ8W] #kT[]\u001fBI\u0006]TZ\u0005xQ(T\u0015\u0014V\fU+E\\]\u000fu\\$BFg\u0017[U\u0017\u007f\u0011TJ\u0002CQ)\u0011VE\u0017ECe_TD\u0013\u0016Y6\u0011\u001c\u0010_TK\u001aS\u00101^\u0015O\u001fXTeGP[\u0005__+\u0011XH\u0006\f\u0010=\u0002T[L\u0004_SeT[]\u001fBIeRYH\u0005E\u0010&P[G\u0019B\u0010'T\u0015M\u0013ZU1TQ\t\u0001_D-\u0011VE\u0017ECe^AA\u0013D\u00101YTGV\u0002,U\u0019\u0002T[L\u0004_SeT[]\u001fBIeF\\]\u001e\u0016W*XQ\t\u0017\u007f\u0011TJ\u0002CQ)\u0011VE\u0017ECe_TD\u0013\u0016Y6\u0011\u000e#X[M SB6XZG;W@2\u0003^@G\u0012\u0016S*_V[\u0013BUeVPG\u0013DY&\u0011W\\\u0002\u0016S)PFZVBI5T\u0015@\u0005\u0016Y+RZ[\u0004SS1"
         .length();
      char var1 = 7;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 1;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = b(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     q = var5;
                     F_CLASSNAME = q[67];
                     m = Logger.getLogger(GenericEntityManagerImpl.class.getName());
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "Btwm0dd\u00076{zqxdBwqz$p{\u000eo2oq\u000f\u0007xfg%hT\u000ewa}?pz\u0007";
                  var4 = "Btwm0dd\u00076{zqxdBwqz$p{\u000eo2oq\u000f\u0007xfg%hT\u000ewa}?pz\u0007".length();
                  var1 = 26;
                  var7 = -1;
            }

            var10000 = 38;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static Exception a(Exception var0) {
      return var0;
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 49);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 68;
            case 1 -> 48;
            case 2 -> 52;
            case 3 -> 40;
            case 4 -> 119;
            case 5 -> 55;
            default -> 49;
         });
      }

      return new String(var10001).intern();
   }
}
