package com.l7tech.external.assertions.gatewaygraphql.server.resolver.mutation;

import com.l7tech.external.assertions.gatewaygraphql.EntityTypeInfo;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMappingAction;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMappingInstruction;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMutationPayload;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMutationStatus;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMutationsPayload;
import com.l7tech.external.assertions.gatewaygraphql.server.error.GatewayEntityError;
import com.l7tech.external.assertions.gatewaygraphql.server.error.NoMutationException;
import com.l7tech.external.assertions.gatewaygraphql.server.input.EntityInput;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.ResolverExecutionContext;
import com.l7tech.external.assertions.gatewaygraphql.server.util.FolderHelper;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.objectmodel.folder.Folder;
import com.l7tech.objectmodel.folder.HasFolder;
import graphql.schema.DataFetchingEnvironment;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.atomic.AtomicBoolean;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;

public abstract class EntityAwareGraphQLMutationResolver<ET extends Entity, EO extends EntityDTO<ET>, EI extends EntityInput>
   extends BasicGraphQLMutationResolver {
   private static final String[] w;

   protected EntityAwareGraphQLMutationResolver(EntityTypeInfo var1, PlatformTransactionManager var2) {
      super(var1, var2);
   }

   protected boolean isFindMultipleEnabled() {
      return false;
   }

   protected boolean isDeletable(ET var1) {
      return true;
   }

   protected abstract ET findByGoid(Goid var1) throws FindException;

   protected abstract ET findByInput(EI var1) throws FindException;

   protected Collection<ET> findMultipleByInput(EI var1) throws FindException {
      return Collections.emptyList();
   }

   protected ET findBy(EI var1, AtomicBoolean var2) throws FindException {
      if (this.isFindMultipleEnabled()) {
         Collection var3 = this.findMultipleByInput((EI)var1);

         AtomicBoolean var10000;
         boolean var10001;
         label31: {
            try {
               var10000 = var2;
               if (var3.size() > 1) {
                  var10001 = true;
                  break label31;
               }
            } catch (FindException var5) {
               throw a(var5);
            }

            var10001 = false;
         }

         try {
            var10000.set(var10001);
            if (var3.size() == 1) {
               return (ET)var3.iterator().next();
            }
         } catch (FindException var4) {
            throw a(var4);
         }

         return null;
      } else {
         return this.findByInput((EI)var1);
      }
   }

   protected abstract ET toEntity(EI var1);

   protected abstract EO toEntityDTO(ET var1);

   protected abstract EI toEntityInput(EntityMappingInstruction var1);

   protected EI toEntityInput(Object var1) {
      return this.toEntityInput(this.toEntityMappingInstruction(var1));
   }

   protected final EntityMappingInstruction toEntityMappingInstruction(Object var1) {
      EntityMappingInstruction var2 = new EntityMappingInstruction(EntityMappingAction.NEW_OR_UPDATE);
      var2.setSource(this.entityTypeInfo.getIdentityKey(), var1);
      var2.setIdentityValue((String)var1);
      return var2;
   }

   protected Map<String, Object> toRawEntity(@Nullable EI var1) {
      if (var1 != null) {
         HashMap var2 = new HashMap();
         var2.put(this.entityTypeInfo.getIdentityKey(), var1.getIdentityValue());
         return var2;
      } else {
         return null;
      }
   }

   protected abstract EO doCreate(EI var1) throws ObjectModelException;

   protected abstract EO doUpdate(EI var1, ET var2) throws ObjectModelException;

   protected abstract EO doDelete(EI var1, ET var2) throws ObjectModelException;

   protected void onEntityCreated(EI var1, ET var2, TransactionStatus var3) throws ObjectModelException {
   }

   protected abstract void setEntity(EI var1, ET var2);

   protected void setEntityConditionally(EI var1, ET var2) {
   }

   protected void resetEntitySelectively(EI var1, ET var2) {
   }

   protected void resetEntityConditionally(EI var1, ET var2) {
   }

   protected final void doUpsertSilently(EI param1, ResolverExecutionContext param2, EntityMutationsPayload<EO> param3, TransactionStatus param4) {
      // $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:
      // 00: aconst_null
      // 01: astore 5
      // 03: aload 1
      // 04: aload 2
      // 05: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput.setExecutionContext (Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/ResolverExecutionContext;)V
      // 08: aload 1
      // 09: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput.getExecutionContext ()Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/ResolverExecutionContext;
      // 0c: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/ResolverExecutionContext.getBundleProperties ()Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/ResolverBundleProperties;
      // 0f: aload 0
      // 10: getfield com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.entityTypeInfo Lcom/l7tech/external/assertions/gatewaygraphql/EntityTypeInfo;
      // 13: aload 1
      // 14: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/ResolverBundleProperties.getEntityMappingInstruction (Lcom/l7tech/external/assertions/gatewaygraphql/EntityTypeInfo;Lcom/l7tech/external/assertions/gatewaygraphql/server/input/MappingAwareEntityInput;)Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction;
      // 17: astore 6
      // 19: aload 6
      // 1b: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction.getAction ()Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;
      // 1e: astore 5
      // 20: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction.IGNORE Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;
      // 23: aload 5
      // 25: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction.equals (Ljava/lang/Object;)Z
      // 28: ifeq 3b
      // 2b: aload 3
      // 2c: aload 5
      // 2e: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus.IGNORED Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;
      // 31: aload 0
      // 32: aload 1
      // 33: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.toRawEntity (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Map;
      // 36: aconst_null
      // 37: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload.add (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;Ljava/util/Map;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityDTO;)V
      // 3a: return
      // 3b: aload 2
      // 3c: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/ResolverExecutionContext.getInputNormalizer ()Ljava/util/function/Consumer;
      // 3f: astore 7
      // 41: aload 7
      // 43: ifnull 63
      // 46: aload 1
      // 47: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput.isNodef ()Z
      // 4a: ifne 63
      // 4d: goto 54
      // 50: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 53: athrow
      // 54: aload 7
      // 56: aload 1
      // 57: invokeinterface java/util/function/Consumer.accept (Ljava/lang/Object;)V 2
      // 5c: goto 63
      // 5f: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 62: athrow
      // 63: aload 0
      // 64: aload 1
      // 65: aload 6
      // 67: aload 3
      // 68: aload 4
      // 6a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload;Lorg/springframework/transaction/TransactionStatus;)V
      // 6d: goto a6
      // 70: astore 6
      // 72: aload 3
      // 73: aload 5
      // 75: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus.NONE Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;
      // 78: aload 6
      // 7a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException.getMessage ()Ljava/lang/String;
      // 7d: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.w [Ljava/lang/String;
      // 80: bipush 9
      // 82: aaload
      // 83: 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" ]
      // 88: aload 0
      // 89: aload 1
      // 8a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.toRawEntity (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Map;
      // 8d: aconst_null
      // 8e: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload.add (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityDTO;)V
      // 91: goto a6
      // 94: astore 6
      // 96: aload 0
      // 97: aload 4
      // 99: aload 6
      // 9b: aload 3
      // 9c: aload 5
      // 9e: aload 0
      // 9f: aload 1
      // a0: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.toRawEntity (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Map;
      // a3: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.handleMutationError (Lorg/springframework/transaction/TransactionStatus;Ljava/lang/Throwable;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;Ljava/util/Map;)V
      // a6: return
      // try (2 -> 28): 53 com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
      // try (34 -> 43): 44 com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
      // try (32 -> 37): 38 com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
      // try (29 -> 52): 53 com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
      // try (2 -> 28): 69 java/lang/Exception
      // try (29 -> 52): 69 java/lang/Exception
   }

   protected final void doCreateSilently(EI var1, ResolverExecutionContext var2, EntityMutationPayload<EO> var3, TransactionStatus var4) {
      try {
         var1.setExecutionContext(var2);
         EntityDTO var5 = this.doCreate((EI)var1);
         this.onEntityCreated((EI)var1, (ET)var5.entity(), var4);
         var3.set(EntityMutationStatus.CREATED, this.toRawEntity((EI)var1), var5);
      } catch (NoMutationException var7) {
         var3.set(EntityMutationStatus.NONE, var7.getMessage() + w[1], this.toRawEntity((EI)var1), null);
      } catch (Exception var8) {
         String var6 = GatewayEntityError.getCreateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var8);
         this.handleMutationError(var4, var8, var6, var3, this.toRawEntity((EI)var1));
      }
   }

   protected final void doUpdateSilently(EI var1, ResolverExecutionContext var2, EntityMutationPayload<EO> var3, TransactionStatus var4) {
      try {
         AtomicBoolean var12 = new AtomicBoolean();
         var1.setExecutionContext(var2);
         var1.setFullInput(false);
         Entity var5 = this.findBy((EI)var1, var12);

         try {
            if (var12.get()) {
               var3.set(EntityMutationStatus.NONE, w[7], this.toRawEntity((EI)var1), null);
               return;
            }
         } catch (NoMutationException var9) {
            throw a(var9);
         }

         try {
            if (var5 != null) {
               var3.set(EntityMutationStatus.UPDATED, this.toRawEntity((EI)var1), this.doUpdate((EI)var1, (ET)var5));
               return;
            }
         } catch (NoMutationException var8) {
            throw a(var8);
         }

         String[] var7 = w;
         var3.set(EntityMutationStatus.NONE, var7[0], this.toRawEntity((EI)var1), null);
      } catch (NoMutationException var10) {
         var3.set(EntityMutationStatus.NONE, var10.getMessage() + w[1], this.toRawEntity((EI)var1), null);
      } catch (Exception var11) {
         String var6 = GatewayEntityError.getUpdateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var11);
         this.handleMutationError(var4, var11, var6, var3, this.toRawEntity((EI)var1));
      }
   }

   protected final void doUpdateSilently(EI var1, ResolverExecutionContext var2, EntityMutationPayload<EO> var3, TransactionStatus var4, Callable<Void> var5) {
      try {
         var1.setExecutionContext(var2);
         var5.call();
      } catch (NoMutationException var8) {
         var3.set(EntityMutationStatus.NONE, var8.getMessage() + w[1], this.toRawEntity((EI)var1), null);
      } catch (Exception var9) {
         String var7 = GatewayEntityError.getUpdateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var9);
         this.handleMutationError(var4, var9, var7, var3, this.toRawEntity((EI)var1));
      }
   }

   protected final void doUpdateSilently(EI var1, ResolverExecutionContext var2, EntityMutationsPayload<EO> var3, TransactionStatus var4, Callable<Void> var5) {
      try {
         var1.setExecutionContext(var2);
         var5.call();
      } catch (NoMutationException var7) {
         var3.add(null, EntityMutationStatus.NONE, var7.getMessage() + w[1], this.toRawEntity((EI)var1), null);
      } catch (Exception var8) {
         this.handleMutationError(var4, var8, var3, null, this.toRawEntity((EI)var1));
      }
   }

   protected final void doDeleteSilently(EI var1, ResolverExecutionContext var2, EntityMutationPayload<EO> var3, TransactionStatus var4) {
      try {
         AtomicBoolean var14 = new AtomicBoolean();
         var1.setExecutionContext(var2);
         var1.setFullInput(false);
         Entity var5 = this.findBy((EI)var1, var14);

         try {
            if (var14.get()) {
               var3.set(EntityMutationStatus.NONE, w[8], this.toRawEntity((EI)var1), null);
               return;
            }
         } catch (NoMutationException var11) {
            throw a(var11);
         }

         label63: {
            label64: {
               try {
                  if (var5 == null) {
                     break label64;
                  }

                  if (!this.isDeletable((ET)var5)) {
                     break label63;
                  }
               } catch (NoMutationException var10) {
                  throw a(var10);
               }

               EntityDTO var7 = this.doDelete((EI)var1, (ET)var5);

               try {
                  var4.flush();
                  if (var5 instanceof HasFolder) {
                     this.a(var1, ((HasFolder)var5).getFolder(), var4);
                  }
               } catch (NoMutationException var9) {
                  throw a(var9);
               }

               var3.set(EntityMutationStatus.DELETED, this.toRawEntity((EI)var1), var7);
               return;
            }

            String[] var15 = w;
            var3.set(EntityMutationStatus.NONE, var15[11], this.toRawEntity((EI)var1), null);
            return;
         }

         String[] var8 = w;
         var3.set(EntityMutationStatus.NONE, var8[10], this.toRawEntity((EI)var1), this.toEntityDTO((ET)var5));
      } catch (NoMutationException var12) {
         var3.set(EntityMutationStatus.NONE, var12.getMessage() + w[1], this.toRawEntity((EI)var1), null);
      } catch (Exception var13) {
         String var6 = GatewayEntityError.getUpdateMutationErrorMessage(this.entityTypeInfo.getEntityType(), var13);
         this.handleMutationError(var4, var13, var6, var3, this.toRawEntity((EI)var1));
      }
   }

   protected final void doDeleteSilently(EI var1, ResolverExecutionContext var2, EntityMutationsPayload<EO> var3, TransactionStatus var4) {
      try {
         AtomicBoolean var6 = new AtomicBoolean();
         var1.setExecutionContext(var2);
         var1.setFullInput(false);
         Entity var5 = this.findBy((EI)var1, var6);

         try {
            if (var6.get()) {
               var3.add(EntityMappingAction.DELETE, EntityMutationStatus.NONE, w[8], this.toRawEntity((EI)var1), null);
               return;
            }
         } catch (NoMutationException var11) {
            throw a(var11);
         }

         label63: {
            label64: {
               try {
                  if (var5 == null) {
                     break label64;
                  }

                  if (!this.isDeletable((ET)var5)) {
                     break label63;
                  }
               } catch (NoMutationException var10) {
                  throw a(var10);
               }

               EntityDTO var7 = this.doDelete((EI)var1, (ET)var5);

               try {
                  var4.flush();
                  if (var5 instanceof HasFolder) {
                     this.a(var1, ((HasFolder)var5).getFolder(), var4);
                  }
               } catch (NoMutationException var9) {
                  throw a(var9);
               }

               var3.add(EntityMappingAction.DELETE, EntityMutationStatus.DELETED, this.toRawEntity((EI)var1), var7);
               return;
            }

            String[] var14 = w;
            var3.add(EntityMappingAction.DELETE, EntityMutationStatus.NONE, var14[11], this.toRawEntity((EI)var1), null);
            return;
         }

         String[] var8 = w;
         var3.add(EntityMappingAction.DELETE, EntityMutationStatus.NONE, var8[2], this.toRawEntity((EI)var1), this.toEntityDTO((ET)var5));
      } catch (NoMutationException var12) {
         var3.add(EntityMappingAction.DELETE, EntityMutationStatus.NONE, var12.getMessage() + w[1], this.toRawEntity((EI)var1), null);
      } catch (Exception var13) {
         this.handleMutationError(var4, var13, var3, EntityMappingAction.DELETE, this.toRawEntity((EI)var1));
      }
   }

   protected final void doDeleteSilently(Object var1, ResolverExecutionContext var2, EntityMutationsPayload<EO> var3, TransactionStatus var4) {
      EntityInput var5 = null;

      try {
         var5 = this.toEntityInput(var1);

         try {
            var5.setExecutionContext(var2);
            if (this.isFindMultipleEnabled()) {
               this.a((EI)var5, this.findMultipleByInput((EI)var5), var3, var4);
               return;
            }
         } catch (NoMutationException var7) {
            throw a(var7);
         }

         this.a((EI)var5, this.findByInput((EI)var5), var3, var4);
      } catch (NoMutationException var8) {
         var3.add(EntityMappingAction.DELETE, EntityMutationStatus.NONE, var8.getMessage() + w[1], this.toRawEntity((EI)var5), null);
      } catch (Exception var9) {
         this.handleMutationError(var4, var9, var3, EntityMappingAction.DELETE, this.toRawEntity((EI)var5));
      }
   }

   private void a(EI param1, EntityMappingInstruction param2, EntityMutationsPayload<EO> param3, TransactionStatus param4) throws ObjectModelException {
      // $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:
      // 00: aload 1
      // 01: bipush 1
      // 02: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput.setFullInput (Z)V
      // 05: aload 0
      // 06: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.isFindMultipleEnabled ()Z
      // 09: ifeq 4f
      // 0c: aload 0
      // 0d: aload 1
      // 0e: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.findMultipleByInput (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Collection;
      // 11: astore 6
      // 13: aload 6
      // 15: invokeinterface java/util/Collection.isEmpty ()Z 1
      // 1a: ifeq 25
      // 1d: aconst_null
      // 1e: goto 34
      // 21: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 24: athrow
      // 25: aload 6
      // 27: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 2c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 31: checkcast com/l7tech/objectmodel/Entity
      // 34: astore 5
      // 36: aload 6
      // 38: invokeinterface java/util/Collection.size ()I 1
      // 3d: bipush 1
      // 3e: if_icmple 49
      // 41: bipush 1
      // 42: goto 4a
      // 45: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 48: athrow
      // 49: bipush 0
      // 4a: istore 7
      // 4c: goto 5c
      // 4f: aconst_null
      // 50: astore 6
      // 52: aload 0
      // 53: aload 1
      // 54: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.findByInput (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Lcom/l7tech/objectmodel/Entity;
      // 57: astore 5
      // 59: bipush 0
      // 5a: istore 7
      // 5c: aload 5
      // 5e: ifnonnull 76
      // 61: aload 0
      // 62: aload 2
      // 63: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.failOnNewIfRequired (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction;)V
      // 66: aload 0
      // 67: aload 1
      // 68: aload 2
      // 69: aload 3
      // 6a: aload 4
      // 6c: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.b (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload;Lorg/springframework/transaction/TransactionStatus;)V
      // 6f: goto bf
      // 72: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 75: athrow
      // 76: aload 0
      // 77: aload 2
      // 78: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.failOnExistingIfRequired (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction;)V
      // 7b: iload 7
      // 7d: ifeq b2
      // 80: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction.ALWAYS_CREATE_NEW Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;
      // 83: aload 2
      // 84: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction.getAction ()Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;
      // 87: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction.equals (Ljava/lang/Object;)Z
      // 8a: ifne b2
      // 8d: goto 94
      // 90: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 93: athrow
      // 94: aload 3
      // 95: aload 2
      // 96: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction.getAction ()Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;
      // 99: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus.NONE Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;
      // 9c: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.w [Ljava/lang/String;
      // 9f: bipush 8
      // a1: aaload
      // a2: aload 0
      // a3: aload 1
      // a4: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.toRawEntity (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Map;
      // a7: aconst_null
      // a8: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload.add (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityDTO;)V
      // ab: goto bf
      // ae: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b1: athrow
      // b2: aload 0
      // b3: aload 1
      // b4: aload 5
      // b6: aload 6
      // b8: aload 2
      // b9: aload 3
      // ba: aload 4
      // bc: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;Lcom/l7tech/objectmodel/Entity;Ljava/util/Collection;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload;Lorg/springframework/transaction/TransactionStatus;)V
      // bf: return
      // try (10 -> 15): 15 com/l7tech/objectmodel/ObjectModelException
      // try (22 -> 28): 28 com/l7tech/objectmodel/ObjectModelException
      // try (41 -> 53): 53 com/l7tech/objectmodel/ObjectModelException
      // try (55 -> 65): 66 com/l7tech/objectmodel/ObjectModelException
      // try (60 -> 81): 81 com/l7tech/objectmodel/ObjectModelException
   }

   private void b(EI param1, EntityMappingInstruction param2, EntityMutationsPayload<EO> param3, TransactionStatus param4) throws ObjectModelException {
      // $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:
      // 00: aload 2
      // 01: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction.getAction ()Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;
      // 04: astore 5
      // 06: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/c.a [I
      // 09: aload 5
      // 0b: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction.ordinal ()I
      // 0e: iaload
      // 0f: tableswitch 148 1 4 29 74 74 124
      // 2c: aload 0
      // 2d: aload 1
      // 2e: aload 1
      // 2f: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput.getGoid ()Ljava/lang/String;
      // 32: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/util/Util.isNotEmpty (Ljava/lang/String;)Z
      // 35: ifeq 55
      // 38: goto 3f
      // 3b: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3e: athrow
      // 3f: aload 0
      // 40: aload 0
      // 41: aload 1
      // 42: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput.getGoid ()Ljava/lang/String;
      // 45: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/String;)Ljava/lang/String;
      // 48: invokestatic com/l7tech/objectmodel/Goid.parseGoid (Ljava/lang/String;)Lcom/l7tech/objectmodel/Goid;
      // 4b: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.findByGoid (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/objectmodel/Entity;
      // 4e: goto 56
      // 51: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 54: athrow
      // 55: aconst_null
      // 56: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.makeEntityInputCreateNewMutationReady (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/MappingAwareEntityInput;Lcom/l7tech/objectmodel/Entity;)V
      // 59: aload 0
      // 5a: aload 1
      // 5b: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.ignoreEntityActionIfRequired (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)V
      // 5e: aload 0
      // 5f: aload 1
      // 60: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.doCreate (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityDTO;
      // 63: astore 6
      // 65: aload 4
      // 67: invokeinterface org/springframework/transaction/TransactionStatus.flush ()V 1
      // 6c: aload 0
      // 6d: aload 1
      // 6e: aload 6
      // 70: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityDTO.entity ()Lcom/l7tech/objectmodel/Entity;
      // 73: aload 4
      // 75: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.onEntityCreated (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;Lcom/l7tech/objectmodel/Entity;Lorg/springframework/transaction/TransactionStatus;)V
      // 78: aload 3
      // 79: aload 5
      // 7b: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus.CREATED Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;
      // 7e: aload 0
      // 7f: aload 1
      // 80: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.toRawEntity (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Map;
      // 83: aload 6
      // 85: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload.add (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;Ljava/util/Map;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityDTO;)V
      // 88: goto ae
      // 8b: aload 3
      // 8c: aload 5
      // 8e: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus.NONE Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;
      // 91: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.w [Ljava/lang/String;
      // 94: bipush 11
      // 96: aaload
      // 97: aload 0
      // 98: aload 1
      // 99: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.toRawEntity (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Map;
      // 9c: aconst_null
      // 9d: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload.add (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingAction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationStatus;Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityDTO;)V
      // a0: goto ae
      // a3: aload 0
      // a4: aload 2
      // a5: aload 3
      // a6: aload 0
      // a7: aload 1
      // a8: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.toRawEntity (Lcom/l7tech/external/assertions/gatewaygraphql/server/input/EntityInput;)Ljava/util/Map;
      // ab: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.ignoreUnexpectedMappingInstruction (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMappingInstruction;Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMutationsPayload;Ljava/util/Map;)V
      // ae: return
      // try (3 -> 14): 15 com/l7tech/objectmodel/ObjectModelException
      // try (8 -> 25): 25 com/l7tech/objectmodel/ObjectModelException
   }

   private void a(EI var1, ET var2, Collection<ET> var3, EntityMappingInstruction var4, EntityMutationsPayload<EO> var5, TransactionStatus var6) throws ObjectModelException {
      EntityMappingAction var7 = var4.getAction();
      switch (c.a[var7.ordinal()]) {
         case 1:
            this.ignoreEntityActionIfRequired(var1);
            this.makeEntityInputCreateNewMutationReady(var1, var2, var3);
            EntityDTO var11 = this.doCreate((EI)var1);
            var6.flush();
            this.onEntityCreated((EI)var1, (ET)var11.entity(), var6);
            var5.add(var7, EntityMutationStatus.CREATED, this.toRawEntity((EI)var1), var11);
            break;
         case 2:
            this.ignoreEntityActionIfRequired(var1);
            EntityDTO var10 = this.doUpdate((EI)var1, (ET)var2);
            var6.flush();
            var5.add(var7, EntityMutationStatus.UPDATED, this.toRawEntity((EI)var1), var10);
            break;
         case 3:
            var5.add(var7, EntityMutationStatus.USED_EXISTING, this.toRawEntity((EI)var1), this.toEntityDTO((ET)var2));
            break;
         case 4:
            if (this.isDeletable((ET)var2)) {
               EntityDTO var8 = this.doDelete((EI)var1, (ET)var2);

               try {
                  var6.flush();
                  if (var2 instanceof HasFolder) {
                     this.a(var1, ((HasFolder)var2).getFolder(), var6);
                  }
               } catch (ObjectModelException var9) {
                  throw a(var9);
               }

               var5.add(var7, EntityMutationStatus.DELETED, this.toRawEntity((EI)var1), var8);
            } else {
               var5.add(var7, EntityMutationStatus.NONE, w[10], this.toRawEntity((EI)var1), this.toEntityDTO((ET)var2));
            }
            break;
         default:
            this.ignoreUnexpectedMappingInstruction(var4, var5, this.toRawEntity((EI)var1));
      }
   }

   private void a(EI var1, Collection<ET> var2, EntityMutationsPayload<EO> var3, TransactionStatus var4) throws ObjectModelException {
      try {
         if (var2.isEmpty()) {
            this.a((EI)var1, (ET)null, var3, var4);
            return;
         }
      } catch (ObjectModelException var8) {
         throw a(var8);
      }

      try {
         if (var2.size() == 1) {
            this.a((EI)var1, (ET)var2.iterator().next(), var3, var4);
            return;
         }
      } catch (ObjectModelException var7) {
         throw a(var7);
      }

      if (var1.getExecutionContext().getQueryOptionsSupplier().isAllDeletionStrategyEnabled()) {
         for (Entity var6 : var2) {
            this.a((EI)var1, (ET)var6, var3, var4);
         }
      } else {
         var3.add(EntityMappingAction.DELETE, EntityMutationStatus.NONE, w[8], this.toRawEntity((EI)var1), null);
      }
   }

   private void a(EI var1, ET var2, EntityMutationsPayload<EO> var3, TransactionStatus var4) throws ObjectModelException {
      EntityMappingAction var5 = EntityMappingAction.DELETE;

      try {
         if (var2 == null) {
            var3.add(var5, EntityMutationStatus.NONE, w[11], this.toRawEntity((EI)var1), null);
            return;
         }
      } catch (ObjectModelException var8) {
         throw a(var8);
      }

      if (this.isDeletable((ET)var2)) {
         EntityDTO var6 = this.doDelete((EI)var1, (ET)var2);

         try {
            var4.flush();
            if (var2 instanceof HasFolder) {
               this.a(var1, ((HasFolder)var2).getFolder(), var4);
            }
         } catch (ObjectModelException var7) {
            throw a(var7);
         }

         var3.add(var5, EntityMutationStatus.DELETED, this.toRawEntity((EI)var1), var6);
      } else {
         var3.add(var5, EntityMutationStatus.NONE, w[10], this.toRawEntity((EI)var1), this.toEntityDTO((ET)var2));
      }
   }

   private <EI extends EntityInput> void a(EI var1, Folder var2, TransactionStatus var3) throws ObjectModelException {
      try {
         if (!this.a(var1)) {
            return;
         }
      } catch (ObjectModelException var6) {
         throw a(var6);
      }

      FolderHelper var4 = var1.getExecutionContext().getFolderHelper();

      while (true) {
         try {
            if (!this.b(var2) || !var4.deleteFolderIfEmpty(var2)) {
               return;
            }
         } catch (ObjectModelException var5) {
            throw a(var5);
         }

         var3.flush();
         var2 = var2.getFolder();
      }
   }

   private boolean a(@NotNull Folder var1) {
      try {
         if (var1 == null) {
            a(0);
         }
      } catch (NoMutationException var2) {
         throw a(var2);
      }

      return Folder.ROOT_FOLDER_ID.equals(var1.getGoid());
   }

   private boolean b(Folder param1) {
      // $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:
      // 00: aload 1
      // 01: ifnull 1b
      // 04: aload 0
      // 05: aload 1
      // 06: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Lcom/l7tech/objectmodel/folder/Folder;)Z
      // 09: ifne 1b
      // 0c: goto 13
      // 0f: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12: athrow
      // 13: bipush 1
      // 14: goto 1c
      // 17: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/mutation/EntityAwareGraphQLMutationResolver.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: bipush 0
      // 1c: ireturn
      // try (0 -> 6): 7 com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
      // try (2 -> 11): 11 com/l7tech/external/assertions/gatewaygraphql/server/error/NoMutationException
   }

   private boolean a(EntityInput var1) {
      return var1.getExecutionContext().getQueryOptionsSupplier().isDeleteEmptyParentFoldersEnabled();
   }

   protected void transformNoDefEntityMappings(List<EI> var1, DataFetchingEnvironment var2) {
      this.getNoDefEntityMappings(var2, this.entityTypeInfo).forEach(var2x -> {
         EntityInput var3 = this.toEntityInput(var2x);
         var3.setNodef(true);
         var1.add(var3);
      });
   }

   private String a(String var1) {
      int var2 = var1.indexOf(58);

      try {
         if (var2 != -1) {
            return var1.substring(0, var2);
         }
      } catch (NoMutationException var3) {
         throw a(var3);
      }

      return var1;
   }

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

   static {
      String[] var5 = new String[12];
      int var3 = 0;
      String var2 = "2\u000b/~F|GV\u0004\"0L3G\u001e\u0007k;FgZ\u0002\u001bg~At]\u0019\u0010\"0O3G\u001e\u0007k3]gR\u0002\u000b$0\u0017ZB\"9F|A\u001f\f,~\\{VV\u000f>*IgZ\u0019\f=0\r>0L3G\u001e\u0007k;FgZ\u0002\u001bk*@rGV\u000b8~F|GV\u0006.2MgR\u0014\u000e.r\bzT\u0018\r97Ft\u0013\u0002\n.~EfG\u0017\u0016\"1F>7\u0010,+Ev]\u0002B-1Z3s8\r?\u0010]\u007f_V\u0012*,I~V\u0002\u00079~\u000f6@QB$8\b6@XG8~Ef@\u0002B%1\\3Q\u0013B%+D\u007f\f\u001f\u0011\u00191Ggu\u0019\u000e/;Z\u0006\u0010\r':Mai\u0015\r&qD$G\u0013\u0001#qMkG\u0013\u0010%?D<R\u0005\u0011.,\\z\\\u0018\u0011d9IgV\u0001\u000329ZrC\u001e\u0013'q[vA\u0000\u00079qZv@\u0019\u000e=;Z<^\u0003\u0016**A|]Y'%*AgJ7\u0015*,MTA\u0017\u0012#\u000fd^F\u0002\u0003?7G}a\u0013\u0011$2^vA20\r>0L3G\u001e\u0007k3]\u007fG\u001f\u0012';\bv]\u0002\u000b?7M`\u001fV\u000b,0GaZ\u0018\u0005k*@v\u0013\u001b\u0017??\\z\\\u001820\r>0L3G\u001e\u0007k3]\u007fG\u001f\u0012';\bv]\u0002\u000b?7M`\u001fV\u000b,0GaZ\u0018\u0005k*@v\u0013\u001b\u0017??\\z\\\u0018\u0017ZB\"9F|A\u001f\f,~\\{VV\u000f>*IgZ\u0019\f";
      int var4 = "2\u000b/~F|GV\u0004\"0L3G\u001e\u0007k;FgZ\u0002\u001bg~At]\u0019\u0010\"0O3G\u001e\u0007k3]gR\u0002\u000b$0\u0017ZB\"9F|A\u001f\f,~\\{VV\u000f>*IgZ\u0019\f=0\r>0L3G\u001e\u0007k;FgZ\u0002\u001bk*@rGV\u000b8~F|GV\u0006.2MgR\u0014\u000e.r\bzT\u0018\r97Ft\u0013\u0002\n.~EfG\u0017\u0016\"1F>7\u0010,+Ev]\u0002B-1Z3s8\r?\u0010]\u007f_V\u0012*,I~V\u0002\u00079~\u000f6@QB$8\b6@XG8~Ef@\u0002B%1\\3Q\u0013B%+D\u007f\f\u001f\u0011\u00191Ggu\u0019\u000e/;Z\u0006\u0010\r':Mai\u0015\r&qD$G\u0013\u0001#qMkG\u0013\u0010%?D<R\u0005\u0011.,\\z\\\u0018\u0011d9IgV\u0001\u000329ZrC\u001e\u0013'q[vA\u0000\u00079qZv@\u0019\u000e=;Z<^\u0003\u0016**A|]Y'%*AgJ7\u0015*,MTA\u0017\u0012#\u000fd^F\u0002\u0003?7G}a\u0013\u0011$2^vA20\r>0L3G\u001e\u0007k3]\u007fG\u001f\u0012';\bv]\u0002\u000b?7M`\u001fV\u000b,0GaZ\u0018\u0005k*@v\u0013\u001b\u0017??\\z\\\u001820\r>0L3G\u001e\u0007k3]\u007fG\u001f\u0012';\bv]\u0002\u000b?7M`\u001fV\u000b,0GaZ\u0018\u0005k*@v\u0013\u001b\u0017??\\z\\\u0018\u0017ZB\"9F|A\u001f\f,~\\{VV\u000f>*IgZ\u0019\f"
         .length();
      char var1 = '.';
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, e(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     w = var5;
                     return;
                  }

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

                  var2 = "\u001a'\u0014\u001af\u0019m4-A\u0011lMp(1A\u0000jXm|!\u0012TlVm|,\u0004\u0018gMx>$\u0004X\"P~2'\u0013\u001dl^9( \u0004ToLm=<\b\u001bl.\u0018!\u0005TlVm|.\b\u001af\u0019m4-A\u0011lMp(1MTk^w3:\b\u001ae\u0019m4-A\u0019wMx(!\u000e\u001a";
                  var4 = "\u001a'\u0014\u001af\u0019m4-A\u0011lMp(1A\u0000jXm|!\u0012TlVm|,\u0004\u0018gMx>$\u0004X\"P~2'\u0013\u001dl^9( \u0004ToLm=<\b\u001bl.\u0018!\u0005TlVm|.\b\u001af\u0019m4-A\u0011lMp(1MTk^w3:\b\u001ae\u0019m4-A\u0019wMx(!\u000e\u001a"
                     .length();
                  var1 = '=';
                  var7 = -1;
            }

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

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

      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 -> 87;
            case 1 -> 67;
            case 2 -> 106;
            case 3 -> 127;
            case 4 -> 9;
            case 5 -> 50;
            default -> 18;
         });
      }

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