package com.l7tech.policy.assertion;

import com.l7tech.policy.assertion.annotation.ProcessesResponse;
import com.l7tech.xml.xpath.XpathExpression;

@ProcessesResponse
public class ResponseXpathAssertion extends SimpleXpathAssertion implements UsesVariables {
   public static final String DEFAULT_VAR_PREFIX;
   protected String xmlMsgSrc;
   static final AssertionNodeNameFactory policyNameFactory;
   static final long serialVersionUID = 1168716759718559319L;
   private static final String[] d;

   public ResponseXpathAssertion() {
      this(compatOrigDefaultXpathValue());
   }

   public ResponseXpathAssertion(XpathExpression var1) {
      this.setXpathExpression(var1);
   }

   @Override
   public boolean permitsFullyDynamicExpression() {
      return true;
   }

   @Override
   protected String defaultVariablePrefix() {
      return d[4];
   }

   public String getXmlMsgSrc() {
      return this.xmlMsgSrc;
   }

   public void setXmlMsgSrc(String var1) {
      this.xmlMsgSrc = var1;
   }

   @Override
   protected XpathBasedAssertion.VariablesUsed doGetVariablesUsed() {
      return super.doGetVariablesUsed().withVariables(this.xmlMsgSrc);
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = d;
      var1.put(var2[2], new String[]{var2[12]});
      var1.put(var2[1], var2[11]);
      var1.put(var2[14], var2[16]);
      var1.put(var2[13], var2[0]);
      var1.put(var2[3], var2[15]);
      var1.put(var2[17], var2[6]);
      var1.put(var2[7], new XpathBasedAssertionFactory<>(ResponseXpathAssertion.class));
      var1.put(var2[5], policyNameFactory);
      var1.put(var2[8], new String[]{var2[9]});
      return var1;
   }

   static {
      String[] var5 = new String[18];
      int var3 = 0;
      String var2 = "~J!|\u0019LDZM*/\u000e\tZ_Q0|\u0006HCIJd=KZGOA-:\u0002LS\nz\u0014=\u001fA\u0017ZC0(\u000e[Y\u0004\u000fZC(9\u001f]RdM 9\"JXD\u000eZC(9\u001f]RlM(8\u000e[D\u0014ZP+,\u000e[CCG7\u001d\b]^EL\r?\u0004G\rXG7,\u0004GDOz4=\u001fA\u0015ZM(5\bPyEF!\u0012\nDRlC'(\u0004[N\"oT%0\u001eHCO\u0002\u00169\u0018YXDQ!|3yV^Jd\f\u0019FGOP05\u000eZ\u0010KQ79\u0019]^EL\u0002=\b]XX[\u0016IN-9\u0005]vYQ!.\u001f@XDv%.\fLCY\bXG7,\u0004GDO\rXG7,\u0004GDOz4=\u001fA-IM)s\u0007\u001eCOA,s\bFYYM(9D[RYM1.\bLD\u0005Z)0\u0018@PDC0)\u0019L\u0019MK\"\u0003RO(\u000bNG7?\u0019@G^K+2\tYJ+.\u001fgVGG-IM)s\u0007\u001eCOA,s\bFYYM(9D[RYM1.\bLD\u0005r63\u001bLE^K!/Z\u001f\u0019MK\"";
      int var4 = "~J!|\u0019LDZM*/\u000e\tZ_Q0|\u0006HCIJd=KZGOA-:\u0002LS\nz\u0014=\u001fA\u0017ZC0(\u000e[Y\u0004\u000fZC(9\u001f]RdM 9\"JXD\u000eZC(9\u001f]RlM(8\u000e[D\u0014ZP+,\u000e[CCG7\u001d\b]^EL\r?\u0004G\rXG7,\u0004GDOz4=\u001fA\u0015ZM(5\bPyEF!\u0012\nDRlC'(\u0004[N\"oT%0\u001eHCO\u0002\u00169\u0018YXDQ!|3yV^Jd\f\u0019FGOP05\u000eZ\u0010KQ79\u0019]^EL\u0002=\b]XX[\u0016IN-9\u0005]vYQ!.\u001f@XDv%.\fLCY\bXG7,\u0004GDO\rXG7,\u0004GDOz4=\u001fA-IM)s\u0007\u001eCOA,s\bFYYM(9D[RYM1.\bLD\u0005Z)0\u0018@PDC0)\u0019L\u0019MK\"\u0003RO(\u000bNG7?\u0019@G^K+2\tYJ+.\u001fgVGG-IM)s\u0007\u001eCOA,s\bFYYM(9D[RYM1.\bLD\u0005r63\u001bLE^K!/Z\u001f\u0019MK\""
         .length();
      char var1 = '2';
      int var7 = -1;

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

         while (true) {
            String var8 = d(var10000, d(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     d = var5;
                     DEFAULT_VAR_PREFIX = d[10];
                     policyNameFactory = new bj();
                     return;
                  }

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

                  var2 = "\u001b QDj<7;vbMl-,0%U\bG\r\"*>\u0014.$_Xz/773Ci|)*18~Ir8";
                  var4 = "\u001b QDj<7;vbMl-,0%U\bG\r\"*>\u0014.$_Xz/773Ci|)*18~Ir8".length();
                  var1 = 23;
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String d(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 -> 49;
            case 1 -> 57;
            case 2 -> 95;
            case 3 -> 71;
            case 4 -> 112;
            case 5 -> 50;
            default -> 44;
         });
      }

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