package com.l7tech.gateway.common.solutionkit;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.api.Bundle;
import com.l7tech.gateway.api.Mapping;
import com.l7tech.gateway.api.Mappings;
import com.l7tech.gateway.api.impl.MarshallingUtils;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Pair;
import com.l7tech.util.ResourceUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;

public class SolutionKitsConfig {
   public static final String MAPPING_PROPERTY_NAME_SK_ALLOW_MAPPING_OVERRIDE;
   private static final Logger a;
   private Map<SolutionKit, Bundle> b = new HashMap<>();
   private Set<SolutionKit> c = new TreeSet<>();
   private Map<SolutionKit, Mappings> d = new HashMap<>();
   private Map<String, Map<String, Mapping>> e = new HashMap<>();
   private Map<String, Pair<SolutionKit, Map<String, String>>> f = new HashMap<>();
   private Map<String, Pair<SolutionKit, Map<String, String>>> g = new HashMap<>();
   private List<SolutionKit> h = new ArrayList<>();
   private Map<String, Pair<SolutionKit, SolutionKitCustomization>> i = new HashMap<>();
   private boolean j;
   @Nullable
   private SolutionKit k;
   private static final String[] m;

   @NotNull
   public Map<SolutionKit, Bundle> getLoadedSolutionKits() {
      try {
         if (this.b == null) {
            a(0);
         }

         return this.b;
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   @Nullable
   public Bundle getBundle(@NotNull SolutionKit var1) {
      try {
         if (var1 == null) {
            a(1);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return this.b.get(var1);
   }

   @Nullable
   public String getBundleAsString(@NotNull SolutionKit var1) {
      try {
         if (var1 == null) {
            a(2);
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      Bundle var2 = this.getBundle(var1);
      if (var2 != null) {
         DOMResult var3 = new DOMResult();

         try {
            MarshallingUtils.marshal(var2, var3, false);
            return XmlUtil.nodeToString(var3.getNode());
         } catch (IOException var5) {
            a.log(Level.WARNING, ExceptionUtils.getMessage(var5), ExceptionUtils.getDebugException(var5));
            return null;
         }
      } else {
         return null;
      }
   }

   @Nullable
   public Document getBundleAsDocument(@NotNull SolutionKit var1) {
      try {
         if (var1 == null) {
            a(3);
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      Bundle var2 = this.getBundle(var1);
      if (var2 != null) {
         DOMResult var3 = new DOMResult();

         try {
            MarshallingUtils.marshal(var2, var3, false);
            return (Document)var3.getNode();
         } catch (IOException var5) {
            a.log(Level.WARNING, ExceptionUtils.getMessage(var5), ExceptionUtils.getDebugException(var5));
            return null;
         }
      } else {
         return null;
      }
   }

   public void setBundle(@NotNull SolutionKit var1, Document var2) throws IOException {
      try {
         if (var1 == null) {
            a(4);
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      DOMSource var3 = new DOMSource();
      var3.setNode(var2.getDocumentElement());
      this.b.put(var1, (Bundle)MarshallingUtils.unmarshal(Bundle.class, var3, true));
   }

   @NotNull
   public Set<SolutionKit> getSelectedSolutionKits() {
      try {
         if (this.c == null) {
            a(5);
         }

         return this.c;
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   public void setSelectedSolutionKits(@NotNull Set<SolutionKit> var1) {
      try {
         if (var1 == null) {
            a(6);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.c = var1;
   }

   @Nullable
   public Mappings getTestMappings(@NotNull SolutionKit var1) {
      try {
         if (var1 == null) {
            a(7);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return this.d.get(var1);
   }

   public void setTestMappings(@NotNull Map<SolutionKit, Mappings> var1) {
      try {
         if (var1 == null) {
            a(8);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.d = var1;
   }

   @NotNull
   public Pair<SolutionKit, Map<String, String>> getResolvedEntityIds(@NotNull String var1) {
      try {
         if (var1 == null) {
            a(9);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      Pair var2 = this.f.get(var1);
      if (var2 == null) {
         Map var3 = Collections.emptyMap();
         return new Pair(null, var3);
      }

      try {
         if (var2 == null) {
            a(10);
         }

         return var2;
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }
   }

   public void setResolvedEntityIds(@NotNull Map<String, Pair<SolutionKit, Map<String, String>>> var1) {
      try {
         if (var1 == null) {
            a(11);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.f = var1;
   }

   @NotNull
   public Map<String, Pair<SolutionKit, Map<String, String>>> getPreviouslyResolvedEntityIds() {
      try {
         if (this.g == null) {
            a(12);
         }

         return this.g;
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   @NotNull
   public List<SolutionKit> getSolutionKitsToUpgrade() {
      try {
         if (this.h == null) {
            a(13);
         }

         return this.h;
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   @Nullable
   public SolutionKit getSolutionKitToUpgrade(@NotNull String var1) {
      try {
         if (var1 == null) {
            a(14);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      for (SolutionKit var3 : this.h) {
         try {
            if (var1.equals(var3.getSolutionKitGuid())) {
               return var3;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }
      }

      return null;
   }

   public void setSolutionKitsToUpgrade(@NotNull List<SolutionKit> var1) {
      try {
         if (var1 == null) {
            a(15);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.h = var1;
   }

   public boolean isUpgrade() {
      try {
         if (this.h.size() > 0) {
            return true;
         }
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }

      return false;
   }

   public boolean isParentSelectedForUpgrade() {
      return this.j;
   }

   public void setParentSelectedForUpgrade(@Nullable SolutionKit var1) {
      try {
         if (var1 != null) {
            this.j = SolutionKitUtils.isParentSolutionKit(var1);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }
   }

   @NotNull
   public Map<String, Pair<SolutionKit, SolutionKitCustomization>> getCustomizations() {
      try {
         if (this.i == null) {
            a(16);
         }

         return this.i;
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   @NotNull
   public Map<String, Mapping> getInstallMappings(@NotNull String var1) {
      try {
         if (var1 == null) {
            a(17);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      Map var2 = this.e.get(var1);
      if (var2 == null) {
         var2 = new HashMap();
         this.e.put(var1, var2);
      }

      try {
         if (var2 == null) {
            a(18);
         }

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

   @Nullable
   public SolutionKit getParentSolutionKitLoaded() {
      return this.k;
   }

   public void setParentSolutionKitLoaded(@Nullable SolutionKit var1) {
      this.k = var1;
   }

   public void clear(boolean var1) {
      try {
         this.b.clear();
         this.c.clear();
         this.d.clear();
         this.e.clear();
         this.f.clear();
         if (var1) {
            this.h.clear();
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.a();
   }

   public void clear() {
      this.clear(true);
   }

   private void a() {
      for (Pair var2 : this.i.values()) {
         try {
            if (var2.right != null) {
               ResourceUtils.closeQuietly(((SolutionKitCustomization)var2.right).getClassLoader());
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }
      }

      this.i.clear();
   }

   public void setPreviouslyResolvedIds() {
      // $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 0
      // 001: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.getSolutionKitsToUpgrade ()Ljava/util/List;
      // 004: astore 1
      // 005: aload 1
      // 006: invokeinterface java/util/List.size ()I 1
      // 00b: bipush 1
      // 00c: if_icmple 017
      // 00f: bipush 1
      // 010: goto 018
      // 013: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 016: athrow
      // 017: bipush 0
      // 018: istore 2
      // 019: iload 2
      // 01a: istore 3
      // 01b: iload 3
      // 01c: aload 1
      // 01d: invokeinterface java/util/List.size ()I 1
      // 022: if_icmpge 132
      // 025: aload 1
      // 026: iload 3
      // 027: invokeinterface java/util/List.get (I)Ljava/lang/Object; 2
      // 02c: checkcast com/l7tech/gateway/common/solutionkit/SolutionKit
      // 02f: astore 4
      // 031: aload 4
      // 033: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitUtils.isParentSolutionKit (Lcom/l7tech/gateway/common/solutionkit/SolutionKit;)Z
      // 036: ifne 12c
      // 039: ldc com/l7tech/gateway/api/Item
      // 03b: new javax/xml/transform/stream/StreamSource
      // 03e: dup
      // 03f: new java/io/StringReader
      // 042: dup
      // 043: aload 4
      // 045: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKit.getMappings ()Ljava/lang/String;
      // 048: invokespecial java/io/StringReader.<init> (Ljava/lang/String;)V
      // 04b: invokespecial javax/xml/transform/stream/StreamSource.<init> (Ljava/io/Reader;)V
      // 04e: invokestatic com/l7tech/gateway/api/impl/MarshallingUtils.unmarshal (Ljava/lang/Class;Ljavax/xml/transform/Source;)Ljava/lang/Object;
      // 051: checkcast com/l7tech/gateway/api/Item
      // 054: astore 5
      // 056: getstatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.l Z
      // 059: ifne 089
      // 05c: aload 5
      // 05e: invokevirtual com/l7tech/gateway/api/Item.getContent ()Ljava/lang/Object;
      // 061: ifnull 07d
      // 064: goto 06b
      // 067: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 06a: athrow
      // 06b: aload 5
      // 06d: invokevirtual com/l7tech/gateway/api/Item.getContent ()Ljava/lang/Object;
      // 070: instanceof com/l7tech/gateway/api/Mappings
      // 073: ifne 089
      // 076: goto 07d
      // 079: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07c: athrow
      // 07d: new java/lang/AssertionError
      // 080: dup
      // 081: invokespecial java/lang/AssertionError.<init> ()V
      // 084: athrow
      // 085: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 088: athrow
      // 089: aload 5
      // 08b: invokevirtual com/l7tech/gateway/api/Item.getContent ()Ljava/lang/Object;
      // 08e: checkcast com/l7tech/gateway/api/Mappings
      // 091: astore 6
      // 093: new java/util/HashMap
      // 096: dup
      // 097: invokespecial java/util/HashMap.<init> ()V
      // 09a: astore 7
      // 09c: aload 6
      // 09e: invokevirtual com/l7tech/gateway/api/Mappings.getMappings ()Ljava/util/List;
      // 0a1: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 0a6: astore 8
      // 0a8: aload 8
      // 0aa: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 0af: ifeq 0ea
      // 0b2: aload 8
      // 0b4: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0b9: checkcast com/l7tech/gateway/api/Mapping
      // 0bc: astore 9
      // 0be: aload 9
      // 0c0: invokevirtual com/l7tech/gateway/api/Mapping.getSrcId ()Ljava/lang/String;
      // 0c3: aload 9
      // 0c5: invokevirtual com/l7tech/gateway/api/Mapping.getTargetId ()Ljava/lang/String;
      // 0c8: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0cb: ifne 0e7
      // 0ce: aload 7
      // 0d0: aload 9
      // 0d2: invokevirtual com/l7tech/gateway/api/Mapping.getSrcId ()Ljava/lang/String;
      // 0d5: aload 9
      // 0d7: invokevirtual com/l7tech/gateway/api/Mapping.getTargetId ()Ljava/lang/String;
      // 0da: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 0df: pop
      // 0e0: goto 0e7
      // 0e3: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e6: athrow
      // 0e7: goto 0a8
      // 0ea: aload 7
      // 0ec: invokeinterface java/util/Map.isEmpty ()Z 1
      // 0f1: ifne 115
      // 0f4: aload 0
      // 0f5: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.getPreviouslyResolvedEntityIds ()Ljava/util/Map;
      // 0f8: aload 4
      // 0fa: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKit.getSolutionKitGuid ()Ljava/lang/String;
      // 0fd: new com/l7tech/util/Pair
      // 100: dup
      // 101: aload 4
      // 103: aload 7
      // 105: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 108: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 10d: pop
      // 10e: goto 115
      // 111: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 114: athrow
      // 115: goto 12c
      // 118: astore 5
      // 11a: new java/lang/IllegalArgumentException
      // 11d: dup
      // 11e: aload 5
      // 120: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 123: aload 5
      // 125: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 128: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 12b: athrow
      // 12c: iinc 3 1
      // 12f: goto 01b
      // 132: return
      // try (96 -> 110): 111 java/io/IOException
      // try (79 -> 92): 93 java/io/IOException
      // try (47 -> 58): 58 java/io/IOException
      // try (41 -> 51): 52 java/io/IOException
      // try (39 -> 44): 45 java/io/IOException
      // try (3 -> 9): 9 java/io/IOException
      // try (27 -> 113): 114 java/io/IOException
   }

   public void setMappingTargetIdsFromResolvedIds(@NotNull SolutionKit param1) throws ForbiddenException {
      // $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: ifnonnull 10
      // 04: bipush 19
      // 06: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (I)V
      // 09: goto 10
      // 0c: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f: athrow
      // 10: aload 0
      // 11: aload 1
      // 12: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKit.getSolutionKitGuid ()Ljava/lang/String;
      // 15: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.getResolvedEntityIds (Ljava/lang/String;)Lcom/l7tech/util/Pair;
      // 18: astore 2
      // 19: aload 0
      // 1a: aload 1
      // 1b: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.getBundle (Lcom/l7tech/gateway/common/solutionkit/SolutionKit;)Lcom/l7tech/gateway/api/Bundle;
      // 1e: astore 3
      // 1f: aload 3
      // 20: ifnull b8
      // 23: aload 3
      // 24: invokevirtual com/l7tech/gateway/api/Bundle.getMappings ()Ljava/util/List;
      // 27: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 2c: astore 4
      // 2e: aload 4
      // 30: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 35: ifeq b8
      // 38: aload 4
      // 3a: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 3f: checkcast com/l7tech/gateway/api/Mapping
      // 42: astore 5
      // 44: aload 2
      // 45: getfield com/l7tech/util/Pair.right Ljava/lang/Object;
      // 48: ifnonnull 53
      // 4b: aconst_null
      // 4c: goto 67
      // 4f: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 52: athrow
      // 53: aload 2
      // 54: getfield com/l7tech/util/Pair.right Ljava/lang/Object;
      // 57: checkcast java/util/Map
      // 5a: aload 5
      // 5c: invokevirtual com/l7tech/gateway/api/Mapping.getSrcId ()Ljava/lang/String;
      // 5f: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 64: checkcast java/lang/String
      // 67: astore 6
      // 69: aload 6
      // 6b: ifnull b5
      // 6e: aload 5
      // 70: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.allowOverride (Lcom/l7tech/gateway/api/Mapping;)Z
      // 73: ifeq 8b
      // 76: goto 7d
      // 79: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7c: athrow
      // 7d: aload 5
      // 7f: aload 6
      // 81: invokevirtual com/l7tech/gateway/api/Mapping.setTargetId (Ljava/lang/String;)V
      // 84: goto b5
      // 87: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8a: athrow
      // 8b: new com/l7tech/gateway/common/solutionkit/ForbiddenException
      // 8e: dup
      // 8f: aload 5
      // 91: invokevirtual com/l7tech/gateway/api/Mapping.getSrcId ()Ljava/lang/String;
      // 94: aload 6
      // 96: getstatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.m [Ljava/lang/String;
      // 99: astore 7
      // 9b: aload 7
      // 9d: bipush 21
      // 9f: aaload
      // a0: dup_x2
      // a1: pop
      // a2: aload 7
      // a4: bipush 3
      // a5: aaload
      // a6: swap
      // a7: aload 7
      // a9: bipush 8
      // ab: aaload
      // ac: 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" ]
      // b1: invokespecial com/l7tech/gateway/common/solutionkit/ForbiddenException.<init> (Ljava/lang/String;)V
      // b4: athrow
      // b5: goto 2e
      // b8: return
      // try (0 -> 4): 5 com/l7tech/gateway/common/solutionkit/ForbiddenException
      // try (29 -> 34): 34 com/l7tech/gateway/common/solutionkit/ForbiddenException
      // try (44 -> 49): 50 com/l7tech/gateway/common/solutionkit/ForbiddenException
      // try (46 -> 56): 56 com/l7tech/gateway/common/solutionkit/ForbiddenException
   }

   public void setMappingTargetIdsFromPreviouslyResolvedIds(@NotNull SolutionKit var1, @Nullable Bundle var2) {
      try {
         if (var1 == null) {
            a(20);
         }
      } catch (IllegalArgumentException var8) {
         throw a(var8);
      }

      if (var2 != null) {
         Pair var3 = this.getPreviouslyResolvedEntityIds().get(var1.getSolutionKitGuid());

         for (Mapping var5 : var2.getMappings()) {
            if (var3 != null) {
               String var6 = (String)((Map)var3.right).get(var5.getSrcId());

               try {
                  if (var6 != null) {
                     var5.setTargetId(var6);
                  }
               } catch (IllegalArgumentException var7) {
                  throw a(var7);
               }
            }
         }
      }
   }

   public static boolean allowOverride(@NotNull Mapping param0) {
      // $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 0
      // 01: ifnonnull 10
      // 04: bipush 21
      // 06: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (I)V
      // 09: goto 10
      // 0c: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f: athrow
      // 10: aload 0
      // 11: getstatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.m [Ljava/lang/String;
      // 14: bipush 9
      // 16: aaload
      // 17: invokevirtual com/l7tech/gateway/api/Mapping.getProperty (Ljava/lang/String;)Ljava/lang/Object;
      // 1a: checkcast java/lang/Boolean
      // 1d: astore 1
      // 1e: aload 1
      // 1f: ifnull 38
      // 22: aload 1
      // 23: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 26: ifeq 38
      // 29: goto 30
      // 2c: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: bipush 1
      // 31: goto 39
      // 34: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKitsConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: bipush 0
      // 39: ireturn
      // try (0 -> 4): 5 java/lang/IllegalArgumentException
      // try (14 -> 19): 20 java/lang/IllegalArgumentException
      // try (16 -> 24): 24 java/lang/IllegalArgumentException
   }

   static {
      String[] var5 = new String[38];
      int var3 = 0;
      String var2 = "=\b7~0\u001f2\"\b\u0011)\b7~0\u001f2\"\b\u0002O\u0016\u0005$'\u0003$\u0014=\b7n \u00029\"\u001b&X\u0000\u001f\"'\u0019:u!\u0002\u0012`Mcn \u0001:/\u000e&Q \u001f\"n\u0004'\u0001\u000f=\u0002/I1\u00189 &*H\u0002\u0004?*8-\u0002.\u0013)F\"+\u000e+\u0013\"\u0010\"+\u001a\"Ej\u00129#\u0000,Rj\u00029\"\u00187U*\u001f='\u0019lo*\u001d#:\u0004,R\u000e\u0018\"=.,R#\u00181\u0014=\b/Y&\u00053*>,P0\u0005?!\u0003\bU1\u0002\u0015=\u0002/I1\u00189 &*H6%9\u001b\u001d$N$\u00153Zn\u001f&M0\u0018$+\u001ecH-\u0014v`\u001e(]7Q0'\u0001&\u001c$\u0004\"&\u00021\u001c1\u001ev=\b7\u001c(\u0010&>\u0004-[e\u0001$!\u001d&N1\bvi>\bc\u0004\u001d:!\u001a\u000e]5\u0001? \n\fJ \u0003$'\t&\u001be\u00059n\u00191I _\u0017\u001d&\u001c})\u001d99 \"L5\u00188)\"5Y7\u0003?*\b\u0018=\b7o*\u001d#:\u0004,R\u000e\u0018\"=9,i5\u0016$/\t&8-\u0002.\u0013)F\"+\u000e+\u0013\"\u0010\"+\u001a\"Ej\u00129#\u0000,Rj\u00029\"\u00187U*\u001f='\u0019lo*\u001d#:\u0004,R\u000e\u0018\"=.,R#\u00181\u0017=\b7o \u001d3-\u0019&X\u0016\u001e:;\u0019*S+:?:\u001e\u0014)\b7n \u00029\"\u001b&X\u0000\u001f\"'\u0019:u!\u0002\u0007#\f3L,\u001f1\u0012)\b7u+\u0002\"/\u0001/q$\u0001&'\u0003$O\u0017\u001d&\u001c})\u001d99 \"L5\u00188)\"5Y7\u0003?*\b\"=\b7q$\u0001&'\u0003$h$\u00031+\u0019\nX67$!\u0000\u0011Y6\u001e:8\b'u!\u0002\u0015)\b7p*\u00102+\t\u0010S)\u0004\"'\u0002-w,\u0005%\u0017)\b7o*\u001d#:\u0004,R\u000e\u0018\"\u001a\u0002\u0016L\"\u00037*\b,=\b7q$\u0001&'\u0003$h$\u00031+\u0019\nX67$!\u0000\u0013N \u0007?!\u00180P<#3=\u0002/J \u0015\u001f*\u001e;\u001b\u0003\"^)\u0014v:\u0002cL7\u001e5+\u001e0\u001c \u001f\"'\u0019:\u001c\f5v<\b3P$\u00123n\u000b,Ne\u001c7>\u001d*R\"Q!'\u0019+\u001c6\u0012$\u0007\t~\t)\b7~0\u001f2\"\b\u0011)\b7\u007f0\u0002\"!\u0000*F$\u0005?!\u00030>\u000f\u001f$I(\u00148:M%S7Q\u0016\u0000\u00027r0\u001d:n\u001d\"N$\u001c3:\b1\u001cbT%iM,ZeT%`H0\u001c(\u0004%:M-S1Q4+M-I)\u001d\u0011<\b0S)\u00073*(-H,\u0005/\u0007\t0\f:\b0H\b\u0010&>\u0004-[6\r/\u0001/S2> +\u001f1U!\u0014\u0014)\b7n \u00029\"\u001b&X\u0000\u001f\"'\u0019:u!\u0002*\u000e#,H\u000b\u0004:\"M.Y1\u00199*MfOkT%n\u00006O1Q8!\u0019cN \u0005#<\u0003cR0\u001d:\u000f=\b7h \u0002\"\u0003\f3L,\u001f1=\u000f)\b7h \u0002\"\u0003\f3L,\u001f1=\u001e)\b7l7\u0014 '\u00026O)\b\u0004+\u001e,P3\u00142\u000b\u00037U1\b\u001f*\u001e\u0018)\b7o*\u001d#:\u0004,R\u000e\u0018\"=9,i5\u0016$/\t&\u0017)\b7o \u001d3-\u0019&X\u0016\u001e:;\u0019*S+:?:\u001e\u0012)\b7u+\u0002\"/\u0001/q$\u0001&'\u0003$O";
      int var4 = "=\b7~0\u001f2\"\b\u0011)\b7~0\u001f2\"\b\u0002O\u0016\u0005$'\u0003$\u0014=\b7n \u00029\"\u001b&X\u0000\u001f\"'\u0019:u!\u0002\u0012`Mcn \u0001:/\u000e&Q \u001f\"n\u0004'\u0001\u000f=\u0002/I1\u00189 &*H\u0002\u0004?*8-\u0002.\u0013)F\"+\u000e+\u0013\"\u0010\"+\u001a\"Ej\u00129#\u0000,Rj\u00029\"\u00187U*\u001f='\u0019lo*\u001d#:\u0004,R\u000e\u0018\"=.,R#\u00181\u0014=\b/Y&\u00053*>,P0\u0005?!\u0003\bU1\u0002\u0015=\u0002/I1\u00189 &*H6%9\u001b\u001d$N$\u00153Zn\u001f&M0\u0018$+\u001ecH-\u0014v`\u001e(]7Q0'\u0001&\u001c$\u0004\"&\u00021\u001c1\u001ev=\b7\u001c(\u0010&>\u0004-[e\u0001$!\u001d&N1\bvi>\bc\u0004\u001d:!\u001a\u000e]5\u0001? \n\fJ \u0003$'\t&\u001be\u00059n\u00191I _\u0017\u001d&\u001c})\u001d99 \"L5\u00188)\"5Y7\u0003?*\b\u0018=\b7o*\u001d#:\u0004,R\u000e\u0018\"=9,i5\u0016$/\t&8-\u0002.\u0013)F\"+\u000e+\u0013\"\u0010\"+\u001a\"Ej\u00129#\u0000,Rj\u00029\"\u00187U*\u001f='\u0019lo*\u001d#:\u0004,R\u000e\u0018\"=.,R#\u00181\u0017=\b7o \u001d3-\u0019&X\u0016\u001e:;\u0019*S+:?:\u001e\u0014)\b7n \u00029\"\u001b&X\u0000\u001f\"'\u0019:u!\u0002\u0007#\f3L,\u001f1\u0012)\b7u+\u0002\"/\u0001/q$\u0001&'\u0003$O\u0017\u001d&\u001c})\u001d99 \"L5\u00188)\"5Y7\u0003?*\b\"=\b7q$\u0001&'\u0003$h$\u00031+\u0019\nX67$!\u0000\u0011Y6\u001e:8\b'u!\u0002\u0015)\b7p*\u00102+\t\u0010S)\u0004\"'\u0002-w,\u0005%\u0017)\b7o*\u001d#:\u0004,R\u000e\u0018\"\u001a\u0002\u0016L\"\u00037*\b,=\b7q$\u0001&'\u0003$h$\u00031+\u0019\nX67$!\u0000\u0013N \u0007?!\u00180P<#3=\u0002/J \u0015\u001f*\u001e;\u001b\u0003\"^)\u0014v:\u0002cL7\u001e5+\u001e0\u001c \u001f\"'\u0019:\u001c\f5v<\b3P$\u00123n\u000b,Ne\u001c7>\u001d*R\"Q!'\u0019+\u001c6\u0012$\u0007\t~\t)\b7~0\u001f2\"\b\u0011)\b7\u007f0\u0002\"!\u0000*F$\u0005?!\u00030>\u000f\u001f$I(\u00148:M%S7Q\u0016\u0000\u00027r0\u001d:n\u001d\"N$\u001c3:\b1\u001cbT%iM,ZeT%`H0\u001c(\u0004%:M-S1Q4+M-I)\u001d\u0011<\b0S)\u00073*(-H,\u0005/\u0007\t0\f:\b0H\b\u0010&>\u0004-[6\r/\u0001/S2> +\u001f1U!\u0014\u0014)\b7n \u00029\"\u001b&X\u0000\u001f\"'\u0019:u!\u0002*\u000e#,H\u000b\u0004:\"M.Y1\u00199*MfOkT%n\u00006O1Q8!\u0019cN \u0005#<\u0003cR0\u001d:\u000f=\b7h \u0002\"\u0003\f3L,\u001f1=\u000f)\b7h \u0002\"\u0003\f3L,\u001f1=\u001e)\b7l7\u0014 '\u00026O)\b\u0004+\u001e,P3\u00142\u000b\u00037U1\b\u001f*\u001e\u0018)\b7o*\u001d#:\u0004,R\u000e\u0018\"=9,i5\u0016$/\t&\u0017)\b7o \u001d3-\u0019&X\u0016\u001e:;\u0019*S+:?:\u001e\u0012)\b7u+\u0002\"/\u0001/q$\u0001&'\u0003$O"
         .length();
      char var1 = '\t';
      int var8 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var8 += var1) >= var4) {
                     m = var5;
                     MAPPING_PROPERTY_NAME_SK_ALLOW_MAPPING_OVERRIDE = m[16];

                     label26: {
                        try {
                           if (!SolutionKitsConfig.class.desiredAssertionStatus()) {
                              var10 = true;
                              break label26;
                           }
                        } catch (IllegalArgumentException var6) {
                           throw a(var6);
                        }

                        var10 = false;
                     }

                     l = var10;
                     a = Logger.getLogger(SolutionKitsConfig.class.getName());
                     return;
                  }

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

                  var2 = ">\u001f i'\b%5\u001f\u0015X\u0016\t\",\u00171E&\u000b*\u00158^&\u000f.71=_";
                  var4 = ">\u001f i'\b%5\u001f\u0015X\u0016\t\",\u00171E&\u000b*\u00158^&\u000f.71=_".length();
                  var1 = 19;
                  var8 = -1;
            }

            var10000 = 71;
            var10001 = var2.substring(++var8, var8 + 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] ^ 6);
      }

      return var10000;
   }

   private static String a(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 -> 30;
            case 1 -> 61;
            case 2 -> 19;
            case 3 -> 108;
            case 4 -> 21;
            case 5 -> 33;
            default -> 6;
         });
      }

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