package com.l7tech.server.policy.assertion.xml;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.message.Message;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.xml.RemoveElement;
import com.l7tech.policy.assertion.xml.RemoveElement.ElementLocation;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AbstractMessageTargetableServerAssertion;
import com.l7tech.server.policy.assertion.AssertionStatusException;
import com.l7tech.server.policy.variable.ExpandVariables;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public class ServerRemoveElement extends AbstractMessageTargetableServerAssertion<RemoveElement> {
   private final boolean d;
   private final ElementLocation e;
   private final String f;
   private final String g;
   private final String[] h;
   private static final String[] j;

   public ServerRemoveElement(RemoveElement var1) {
      super(var1);
      this.e = var1.getInsertedElementLocation();
      this.d = this.e != null;
      this.f = var1.getElementFromVariable();
      this.g = var1.getElementToInsertVariable();
      this.h = var1.getVariablesUsed();
   }

   @Override
   protected AssertionStatus doCheckRequest(PolicyEnforcementContext param1, Message param2, String param3, AuthenticationContext param4) throws IOException, PolicyAssertionException {
      // $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/message/Message.isXml ()Z
      // 04: ifne 16
      // 07: aload 0
      // 08: getstatic com/l7tech/gateway/common/audit/AssertionMessages.REMOVE_ELEMENT_NOT_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0b: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 0e: getstatic com/l7tech/policy/assertion/AssertionStatus.NOT_APPLICABLE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 11: areturn
      // 12: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 15: athrow
      // 16: aload 1
      // 17: aload 0
      // 18: getfield com/l7tech/server/policy/assertion/xml/ServerRemoveElement.h [Ljava/lang/String;
      // 1b: aload 0
      // 1c: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 1f: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getVariableMap ([Ljava/lang/String;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/util/Map; 3
      // 24: astore 5
      // 26: aload 0
      // 27: getfield com/l7tech/server/policy/assertion/xml/ServerRemoveElement.f Ljava/lang/String;
      // 2a: getstatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.j [Ljava/lang/String;
      // 2d: bipush 1
      // 2e: aaload
      // 2f: swap
      // 30: ldc "}"
      // 32: invokedynamic makeConcatWithConstants (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" ]
      // 37: aload 5
      // 39: aload 0
      // 3a: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 3d: invokestatic com/l7tech/server/policy/variable/ExpandVariables.processSingleVariableAsObject (Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/lang/Object;
      // 40: astore 6
      // 42: aload 0
      // 43: aload 6
      // 45: aload 0
      // 46: getfield com/l7tech/server/policy/assertion/xml/ServerRemoveElement.f Ljava/lang/String;
      // 49: bipush 0
      // 4a: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Object;Ljava/lang/String;Z)[Lorg/w3c/dom/Element;
      // 4d: astore 7
      // 4f: aload 0
      // 50: getfield com/l7tech/server/policy/assertion/xml/ServerRemoveElement.d Z
      // 53: ifeq 61
      // 56: aload 0
      // 57: aload 1
      // 58: aload 5
      // 5a: aload 2
      // 5b: aload 7
      // 5d: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Lcom/l7tech/server/message/PolicyEnforcementContext;Ljava/util/Map;Lcom/l7tech/message/Message;[Lorg/w3c/dom/Element;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 60: areturn
      // 61: aload 7
      // 63: arraylength
      // 64: ifle c5
      // 67: aload 2
      // 68: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 6b: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 70: astore 8
      // 72: aload 7
      // 74: astore 9
      // 76: aload 9
      // 78: arraylength
      // 79: istore 10
      // 7b: bipush 0
      // 7c: istore 11
      // 7e: iload 11
      // 80: iload 10
      // 82: if_icmpge c5
      // 85: aload 9
      // 87: iload 11
      // 89: aaload
      // 8a: astore 12
      // 8c: aload 8
      // 8e: aload 12
      // 90: invokeinterface org/w3c/dom/Element.getOwnerDocument ()Lorg/w3c/dom/Document; 1
      // 95: if_acmpne bf
      // 98: aload 12
      // 9a: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 9f: ifnull bf
      // a2: goto a9
      // a5: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a8: athrow
      // a9: aload 12
      // ab: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // b0: aload 12
      // b2: invokeinterface org/w3c/dom/Node.removeChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // b7: pop
      // b8: goto bf
      // bb: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // be: athrow
      // bf: iinc 11 1
      // c2: goto 7e
      // c5: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // c8: areturn
      // c9: astore 5
      // cb: aload 0
      // cc: getstatic com/l7tech/gateway/common/audit/AssertionMessages.NO_SUCH_VARIABLE Lcom/l7tech/gateway/common/audit/Messages$M;
      // cf: bipush 1
      // d0: anewarray 85
      // d3: dup
      // d4: bipush 0
      // d5: aload 0
      // d6: getfield com/l7tech/server/policy/assertion/xml/ServerRemoveElement.f Ljava/lang/String;
      // d9: aastore
      // da: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // dd: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // e0: areturn
      // e1: astore 5
      // e3: aload 0
      // e4: getstatic com/l7tech/gateway/common/audit/AssertionMessages.REMOVE_ELEMENT_NOT_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // e7: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // ea: getstatic com/l7tech/policy/assertion/AssertionStatus.NOT_APPLICABLE Lcom/l7tech/policy/assertion/AssertionStatus;
      // ed: areturn
      // try (0 -> 8): 8 com/l7tech/policy/variable/NoSuchVariableException
      // try (10 -> 46): 90 com/l7tech/policy/variable/NoSuchVariableException
      // try (72 -> 83): 84 com/l7tech/policy/variable/NoSuchVariableException
      // try (68 -> 75): 76 com/l7tech/policy/variable/NoSuchVariableException
      // try (47 -> 89): 90 com/l7tech/policy/variable/NoSuchVariableException
      // try (10 -> 46): 103 org/xml/sax/SAXException
      // try (47 -> 89): 103 org/xml/sax/SAXException
   }

   private Element[] a(Object var1, String var2, boolean var3) {
      Element[] var4 = new Element[0];
      if (var1 instanceof Element[]) {
         var4 = (Element[])var1;
      } else if (var1 instanceof Element) {
         var4 = new Element[]{(Element)var1};
      } else if (var1 instanceof Collection var5) {
         if (!var5.isEmpty()) {
            try {
               var4 = var5.toArray(var4);
            } catch (ArrayStoreException var8) {
               this.logAndAudit(AssertionMessages.VARIABLE_INVALID_VALUE, var2, j[4]);
               throw new AssertionStatusException(AssertionStatus.FAILED);
            }
         }
      } else {
         try {
            if (!var3 || !(var1 instanceof CharSequence)) {
               return var4;
            }
         } catch (ArrayStoreException var9) {
            throw a(var9);
         }

         CharSequence var10 = (CharSequence)var1;

         try {
            Document var6 = XmlUtil.stringToDocument(var10.toString());
            var4 = new Element[]{var6.getDocumentElement()};
         } catch (SAXException var7) {
            this.logAndAudit(AssertionMessages.INSERT_ELEMENT_BAD_FRAGMENT);
            throw new AssertionStatusException(AssertionStatus.FAILED);
         }
      }

      return var4;
   }

   private AssertionStatus a(PolicyEnforcementContext var1, Map<String, Object> var2, Message var3, Element[] var4) throws NoSuchVariableException, SAXException, IOException {
      Document var5 = var3.getXmlKnob().getDocumentWritable();

      try {
         if (var4.length < 1) {
            this.logAndAudit(AssertionMessages.INSERT_ELEMENT_EXISTING_NOT_FOUND);
            return AssertionStatus.FAILED;
         }
      } catch (NoSuchVariableException var15) {
         throw a(var15);
      }

      try {
         if (var4.length > 1) {
            this.logAndAudit(AssertionMessages.INSERT_ELEMENT_EXISTING_TOO_MANY);
            return AssertionStatus.FAILED;
         }
      } catch (NoSuchVariableException var18) {
         throw a(var18);
      }

      Element var6 = var4[0];

      try {
         if (var6 == null) {
            this.logAndAudit(AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO, j[2]);
            return AssertionStatus.SERVER_ERROR;
         }
      } catch (NoSuchVariableException var17) {
         throw a(var17);
      }

      Document var7 = var6.getOwnerDocument();

      try {
         if (var7 == null) {
            this.logAndAudit(AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO, j[5]);
            return AssertionStatus.SERVER_ERROR;
         }
      } catch (NoSuchVariableException var14) {
         throw a(var14);
      }

      try {
         if (var7 != var5) {
            this.logAndAudit(AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO, j[0]);
            return AssertionStatus.SERVER_ERROR;
         }
      } catch (NoSuchVariableException var16) {
         throw a(var16);
      }

      Object var8 = ExpandVariables.processSingleVariableAsObject(j[7] + this.g + "}", var2, this.getAudit());
      Element[] var9 = this.a(var8, this.g, true);

      for (Element var13 : var9) {
         this.a(var6, var13, this.e);
      }

      return AssertionStatus.NONE;
   }

   private void a(Element param1, Element param2, ElementLocation param3) {
      // $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: getstatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.i Z
      // 003: ifne 01d
      // 006: aload 1
      // 007: ifnonnull 01d
      // 00a: goto 011
      // 00d: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 010: athrow
      // 011: new java/lang/AssertionError
      // 014: dup
      // 015: invokespecial java/lang/AssertionError.<init> ()V
      // 018: athrow
      // 019: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01c: athrow
      // 01d: aload 2
      // 01e: ifnonnull 043
      // 021: aload 0
      // 022: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 025: bipush 1
      // 026: anewarray 85
      // 029: dup
      // 02a: bipush 0
      // 02b: getstatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.j [Ljava/lang/String;
      // 02e: bipush 3
      // 02f: aaload
      // 030: aastore
      // 031: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 034: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 037: dup
      // 038: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 03b: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 03e: athrow
      // 03f: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 042: athrow
      // 043: aload 2
      // 044: invokeinterface org/w3c/dom/Element.getOwnerDocument ()Lorg/w3c/dom/Document; 1
      // 049: aload 1
      // 04a: invokeinterface org/w3c/dom/Element.getOwnerDocument ()Lorg/w3c/dom/Document; 1
      // 04f: if_acmpeq 063
      // 052: aload 1
      // 053: invokeinterface org/w3c/dom/Element.getOwnerDocument ()Lorg/w3c/dom/Document; 1
      // 058: aload 2
      // 059: bipush 1
      // 05a: invokeinterface org/w3c/dom/Document.importNode (Lorg/w3c/dom/Node;Z)Lorg/w3c/dom/Node; 3
      // 05f: checkcast org/w3c/dom/Element
      // 062: astore 2
      // 063: getstatic com/l7tech/server/policy/assertion/xml/c.a [I
      // 066: aload 3
      // 067: invokevirtual com/l7tech/policy/assertion/xml/RemoveElement$ElementLocation.ordinal ()I
      // 06a: iaload
      // 06b: tableswitch 204 1 4 29 68 79 79
      // 088: aload 1
      // 089: invokestatic com/l7tech/util/DomUtils.findFirstChildElement (Lorg/w3c/dom/Element;)Lorg/w3c/dom/Element;
      // 08c: astore 4
      // 08e: aload 4
      // 090: ifnonnull 0a2
      // 093: aload 1
      // 094: aload 2
      // 095: invokeinterface org/w3c/dom/Element.appendChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 09a: pop
      // 09b: goto 14f
      // 09e: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a1: athrow
      // 0a2: aload 1
      // 0a3: aload 2
      // 0a4: aload 4
      // 0a6: invokeinterface org/w3c/dom/Element.insertBefore (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 3
      // 0ab: pop
      // 0ac: goto 14f
      // 0af: aload 1
      // 0b0: aload 2
      // 0b1: invokeinterface org/w3c/dom/Element.appendChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 0b6: pop
      // 0b7: goto 14f
      // 0ba: aload 1
      // 0bb: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 0c0: astore 5
      // 0c2: aload 5
      // 0c4: instanceof org/w3c/dom/Element
      // 0c7: ifne 0ed
      // 0ca: aload 0
      // 0cb: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0ce: bipush 1
      // 0cf: anewarray 85
      // 0d2: dup
      // 0d3: bipush 0
      // 0d4: getstatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.j [Ljava/lang/String;
      // 0d7: bipush 8
      // 0d9: aaload
      // 0da: aastore
      // 0db: invokevirtual com/l7tech/server/policy/assertion/xml/ServerRemoveElement.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0de: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 0e1: dup
      // 0e2: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0e5: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 0e8: athrow
      // 0e9: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ec: athrow
      // 0ed: aload 5
      // 0ef: checkcast org/w3c/dom/Element
      // 0f2: astore 6
      // 0f4: getstatic com/l7tech/policy/assertion/xml/RemoveElement$ElementLocation.PREVIOUS_SIBLING Lcom/l7tech/policy/assertion/xml/RemoveElement$ElementLocation;
      // 0f7: aload 3
      // 0f8: if_acmpne 10c
      // 0fb: aload 6
      // 0fd: aload 2
      // 0fe: aload 1
      // 0ff: invokeinterface org/w3c/dom/Element.insertBefore (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 3
      // 104: pop
      // 105: goto 14f
      // 108: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10b: athrow
      // 10c: aload 1
      // 10d: invokeinterface org/w3c/dom/Element.getNextSibling ()Lorg/w3c/dom/Node; 1
      // 112: astore 7
      // 114: aload 7
      // 116: ifnonnull 129
      // 119: aload 6
      // 11b: aload 2
      // 11c: invokeinterface org/w3c/dom/Element.appendChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 121: pop
      // 122: goto 134
      // 125: invokestatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 128: athrow
      // 129: aload 6
      // 12b: aload 2
      // 12c: aload 7
      // 12e: invokeinterface org/w3c/dom/Element.insertBefore (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 3
      // 133: pop
      // 134: goto 14f
      // 137: new java/lang/IllegalStateException
      // 13a: dup
      // 13b: aload 3
      // 13c: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 13f: getstatic com/l7tech/server/policy/assertion/xml/ServerRemoveElement.j [Ljava/lang/String;
      // 142: bipush 6
      // 144: aaload
      // 145: swap
      // 146: 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" ]
      // 14b: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 14e: athrow
      // 14f: return
      // try (0 -> 4): 5 java/lang/ArrayStoreException
      // try (2 -> 11): 11 java/lang/ArrayStoreException
      // try (13 -> 31): 31 java/lang/ArrayStoreException
      // try (53 -> 60): 60 java/lang/ArrayStoreException
      // try (76 -> 95): 95 java/lang/ArrayStoreException
      // try (100 -> 109): 109 java/lang/ArrayStoreException
      // try (114 -> 121): 121 java/lang/ArrayStoreException
   }

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "8v]~U\u001aJ\u001a.QaD\u001eA\u0013z\u0014iN\u0016W]`[y\u0001\u0011A\u0011aZj\u0001\u0007K]z\\h\u0001\u0007E\u000fiQy\u0001\u001eA\u000e}UjDS@\u0012mA`D\u001dP\u0002Yu\u00198v]~U\u001aJ\u001a.QaD\u001eA\u0013z\u0014z@\u0000\u0004\u0013{Xa\u00143kC-D\u001fA\u0010kZy\u0001\u0004E\u000e.ZxM\u001f\u00078bQ`D\u001dP-8v]~U\u001aJ\u001a.QaD\u001eA\u0013z\u0014iH\u0017\u0004\u0013a@-C\u0016H\u0012`S-U\u001c\u0004\u001c.PbB\u0006I\u0018`@\u0019(`_cN\u0004J]kXhL\u0016J\tB[n@\u0007M\u0012`\u000e-";
      int var4 = "8v]~U\u001aJ\u001a.QaD\u001eA\u0013z\u0014iN\u0016W]`[y\u0001\u0011A\u0011aZj\u0001\u0007K]z\\h\u0001\u0007E\u000fiQy\u0001\u001eA\u000e}UjDS@\u0012mA`D\u001dP\u0002Yu\u00198v]~U\u001aJ\u001a.QaD\u001eA\u0013z\u0014z@\u0000\u0004\u0013{Xa\u00143kC-D\u001fA\u0010kZy\u0001\u0004E\u000e.ZxM\u001f\u00078bQ`D\u001dP-8v]~U\u001aJ\u001a.QaD\u001eA\u0013z\u0014iH\u0017\u0004\u0013a@-C\u0016H\u0012`S-U\u001c\u0004\u001c.PbB\u0006I\u0018`@\u0019(`_cN\u0004J]kXhL\u0016J\tB[n@\u0007M\u0012`\u000e-"
         .length();
      char var1 = '?';
      int var8 = -1;

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

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

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

                        var10 = false;
                     }

                     i = var10;
                     return;
                  }

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

                  var2 = "$\b^U\u001d(\u00120kyt\u001ci\u00192}<r\u0007i\u0011/.*i\u0011%\u00192iyo\u0015i\u0015$g*t\u001a'\u0017|k5e\u001e,\u001e(.;e\u0010(\u0005/kye\u000b \u0003(g7gS,\u001c9c<n\u0007i\u0018=}yn\u001ci\u0000=|<n\u0007i\u00150k4e\u001d=";
                  var4 = "$\b^U\u001d(\u00120kyt\u001ci\u00192}<r\u0007i\u0011/.*i\u0011%\u00192iyo\u0015i\u0015$g*t\u001a'\u0017|k5e\u001e,\u001e(.;e\u0010(\u0005/kye\u000b \u0003(g7gS,\u001c9c<n\u0007i\u0018=}yn\u001ci\u0000=|<n\u0007i\u00150k4e\u001d="
                     .length();
                  var1 = 2;
                  var8 = -1;
            }

            var10000 = 9;
            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] ^ 80);
      }

      return var10000;
   }

   private static String c(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 -> 9;
            case 1 -> 122;
            case 2 -> 64;
            case 3 -> 121;
            case 4 -> 85;
            case 5 -> 7;
            default -> 80;
         });
      }

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