package com.l7tech.xml.xpath;

import com.l7tech.xml.ElementCursor;
import com.l7tech.xml.InvalidXpathException;
import java.util.Map;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFunctionResolver;
import javax.xml.xpath.XPathVariableResolver;
import org.xml.sax.InputSource;

class d implements XPathExpression {
   private final CompiledXpath a;
   private final NamespaceContext b;
   private final XPathVariableResolver c;
   private final XPathFunctionResolver d;
   private static final String[] e;

   @Override
   public Object evaluate(Object var1, QName var2) throws XPathExpressionException {
      try {
         if (var2 == null) {
            throw new NullPointerException(e[11]);
         }
      } catch (XPathExpressionException var7) {
         throw a(var7);
      }

      this.a(var2);
      if (var1 instanceof ElementCursor var3) {
         XpathResult var4 = var3.getXpathResult(this.a);
         Object var5 = null;
         if (var2.equals(XPathConstants.STRING)) {
            var5 = this.a(var4);
         } else if (var2.equals(XPathConstants.BOOLEAN)) {
            var5 = this.b(var4);
         } else {
            if (!var2.equals(XPathConstants.NUMBER)) {
               String var10002 = String.valueOf(var2);
               String[] var6 = e;
               throw new XPathExpressionException(var6[8] + var10002 + "'");
            }

            var5 = this.c(var4);
         }

         return var5;
      } else {
         throw new XPathExpressionException(e[7]);
      }
   }

   @Override
   public String evaluate(Object var1) throws XPathExpressionException {
      return (String)this.evaluate(var1, XPathConstants.STRING);
   }

   @Override
   public Object evaluate(InputSource var1, QName var2) throws XPathExpressionException {
      try {
         if (var1 == null) {
            throw new NullPointerException(e[2]);
         }
      } catch (XPathExpressionException var3) {
         throw a(var3);
      }

      try {
         if (var2 == null) {
            throw new NullPointerException(e[5]);
         }
      } catch (XPathExpressionException var4) {
         throw a(var4);
      }

      this.a(var2);
      throw new XPathExpressionException(e[9]);
   }

   @Override
   public String evaluate(InputSource var1) throws XPathExpressionException {
      try {
         if (var1 == null) {
            throw new NullPointerException(e[6]);
         }
      } catch (XPathExpressionException var2) {
         throw a(var2);
      }

      throw new XPathExpressionException(e[10]);
   }

   @Override
   public String toString() {
      String var10000 = this.a.getExpression();
      String[] var1 = e;
      return var1[3] + var10000 + var1[1];
   }

   d(String var1, NamespaceContext var2, XPathVariableResolver var3, XPathFunctionResolver var4) throws XPathExpressionException {
      this.b = var2;
      this.c = var3;
      this.d = var4;

      try {
         XpathExpression var5 = new XpathExpression(var1);
         var5.setNamespaces(this.a(var1, var2));
         this.a = var5.compile();
      } catch (InvalidXpathException var6) {
         throw (XPathExpressionException)new XPathExpressionException(var6.getMessage()).initCause(var6);
      }
   }

   private void a(QName 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: getstatic javax/xml/xpath/XPathConstants.BOOLEAN Ljavax/xml/namespace/QName;
      // 04: invokevirtual javax/xml/namespace/QName.equals (Ljava/lang/Object;)Z
      // 07: ifne 6c
      // 0a: aload 1
      // 0b: getstatic javax/xml/xpath/XPathConstants.NODE Ljavax/xml/namespace/QName;
      // 0e: invokevirtual javax/xml/namespace/QName.equals (Ljava/lang/Object;)Z
      // 11: ifne 6c
      // 14: goto 1b
      // 17: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: aload 1
      // 1c: getstatic javax/xml/xpath/XPathConstants.NODESET Ljavax/xml/namespace/QName;
      // 1f: invokevirtual javax/xml/namespace/QName.equals (Ljava/lang/Object;)Z
      // 22: ifne 6c
      // 25: goto 2c
      // 28: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2b: athrow
      // 2c: aload 1
      // 2d: getstatic javax/xml/xpath/XPathConstants.NUMBER Ljavax/xml/namespace/QName;
      // 30: invokevirtual javax/xml/namespace/QName.equals (Ljava/lang/Object;)Z
      // 33: ifne 6c
      // 36: goto 3d
      // 39: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3c: athrow
      // 3d: aload 1
      // 3e: getstatic javax/xml/xpath/XPathConstants.STRING Ljavax/xml/namespace/QName;
      // 41: invokevirtual javax/xml/namespace/QName.equals (Ljava/lang/Object;)Z
      // 44: ifne 6c
      // 47: goto 4e
      // 4a: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4d: athrow
      // 4e: new java/lang/IllegalArgumentException
      // 51: dup
      // 52: aload 1
      // 53: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 56: getstatic com/l7tech/xml/xpath/d.e [Ljava/lang/String;
      // 59: bipush 14
      // 5b: aaload
      // 5c: swap
      // 5d: ldc "'"
      // 5f: 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" ]
      // 64: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 67: athrow
      // 68: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6b: athrow
      // 6c: return
      // try (0 -> 8): 9 java/lang/NullPointerException
      // try (4 -> 15): 16 java/lang/NullPointerException
      // try (11 -> 22): 23 java/lang/NullPointerException
      // try (18 -> 29): 30 java/lang/NullPointerException
      // try (25 -> 44): 44 java/lang/NullPointerException
   }

   private String a(XpathResult var1) throws XPathExpressionException {
      Object var2 = null;

      return switch (var1.getType()) {
         case 2 -> Boolean.toString(var1.getBoolean());
         case 3 -> var1.getNumber().toString();
         case 4 -> var1.getString();
         default -> {
            short var10002 = var1.getType();
            String[] var3 = e;
            throw new XPathExpressionException(var3[4] + var10002 + var3[12]);
         }
      };
   }

   private Boolean b(XpathResult var1) throws XPathExpressionException {
      Object var2 = null;

      return switch (var1.getType()) {
         case 2 -> var1.getBoolean();
         case 3 -> {
            Double var3 = var1.getNumber().doubleValue();

            label42: {
               try {
                  if (!var3.isNaN() && var3 != 0.0) {
                     break label42;
                  }
               } catch (XPathExpressionException var7) {
                  throw a(var7);
               }

               yield Boolean.FALSE;
            }

            yield Boolean.TRUE;
         }
         case 4 -> {
            String var4 = var1.getString();

            label32: {
               try {
                  if (var4 != null && var4.length() > 0) {
                     break label32;
                  }
               } catch (XPathExpressionException var6) {
                  throw a(var6);
               }

               yield Boolean.FALSE;
            }

            yield Boolean.TRUE;
         }
         default -> {
            short var10002 = var1.getType();
            String[] var5 = e;
            throw new XPathExpressionException(var5[15] + var10002 + var5[0]);
         }
      };
   }

   private Double c(XpathResult param1) throws XPathExpressionException {
      // $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 2
      // 02: aload 1
      // 03: invokeinterface com/l7tech/xml/xpath/XpathResult.getType ()S 1
      // 08: tableswitch 120 2 4 28 60 76
      // 24: aload 1
      // 25: invokeinterface com/l7tech/xml/xpath/XpathResult.getBoolean ()Z 1
      // 2a: ifeq 3c
      // 2d: goto 34
      // 30: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 33: athrow
      // 34: dconst_1
      // 35: goto 3d
      // 38: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3b: athrow
      // 3c: dconst_0
      // 3d: invokestatic java/lang/Double.valueOf (D)Ljava/lang/Double;
      // 40: astore 2
      // 41: goto a2
      // 44: aload 1
      // 45: invokeinterface com/l7tech/xml/xpath/XpathResult.getNumber ()Ljava/lang/Number; 1
      // 4a: invokevirtual java/lang/Number.doubleValue ()D
      // 4d: invokestatic java/lang/Double.valueOf (D)Ljava/lang/Double;
      // 50: astore 2
      // 51: goto a2
      // 54: aload 1
      // 55: invokeinterface com/l7tech/xml/xpath/XpathResult.getString ()Ljava/lang/String; 1
      // 5a: astore 3
      // 5b: aload 3
      // 5c: ifnonnull 69
      // 5f: ldc2_w NaN
      // 62: invokestatic java/lang/Double.valueOf (D)Ljava/lang/Double;
      // 65: astore 2
      // 66: goto a2
      // 69: aload 3
      // 6a: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 6d: invokestatic java/lang/Double.valueOf (Ljava/lang/String;)Ljava/lang/Double;
      // 70: astore 2
      // 71: goto a2
      // 74: astore 4
      // 76: ldc2_w NaN
      // 79: invokestatic java/lang/Double.valueOf (D)Ljava/lang/Double;
      // 7c: astore 2
      // 7d: goto a2
      // 80: new javax/xml/xpath/XPathExpressionException
      // 83: dup
      // 84: aload 1
      // 85: invokeinterface com/l7tech/xml/xpath/XpathResult.getType ()S 1
      // 8a: getstatic com/l7tech/xml/xpath/d.e [Ljava/lang/String;
      // 8d: astore 5
      // 8f: aload 5
      // 91: bipush 4
      // 92: aaload
      // 93: swap
      // 94: aload 5
      // 96: bipush 12
      // 98: aaload
      // 99: invokedynamic makeConcatWithConstants (Ljava/lang/String;SLjava/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" ]
      // 9e: invokespecial javax/xml/xpath/XPathExpressionException.<init> (Ljava/lang/String;)V
      // a1: athrow
      // a2: aload 2
      // a3: areturn
      // try (5 -> 13): 13 java/lang/NumberFormatException
      // try (2 -> 8): 9 java/lang/NumberFormatException
      // try (34 -> 38): 39 java/lang/NumberFormatException
   }

   private Map a(String param1, NamespaceContext param2) {
      // $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: getstatic java/util/Collections.EMPTY_MAP Ljava/util/Map;
      // 03: astore 3
      // 04: aload 2
      // 05: ifnull 6a
      // 08: new java/util/StringTokenizer
      // 0b: dup
      // 0c: aload 1
      // 0d: getstatic com/l7tech/xml/xpath/d.e [Ljava/lang/String;
      // 10: bipush 13
      // 12: aaload
      // 13: invokespecial java/util/StringTokenizer.<init> (Ljava/lang/String;Ljava/lang/String;)V
      // 16: astore 4
      // 18: aload 4
      // 1a: invokevirtual java/util/StringTokenizer.countTokens ()I
      // 1d: ifle 6a
      // 20: new java/util/HashMap
      // 23: dup
      // 24: invokespecial java/util/HashMap.<init> ()V
      // 27: astore 3
      // 28: aload 4
      // 2a: invokevirtual java/util/StringTokenizer.hasMoreTokens ()Z
      // 2d: ifeq 6a
      // 30: aload 4
      // 32: invokevirtual java/util/StringTokenizer.nextToken ()Ljava/lang/String;
      // 35: astore 5
      // 37: aload 2
      // 38: aload 5
      // 3a: invokeinterface javax/xml/namespace/NamespaceContext.getNamespaceURI (Ljava/lang/String;)Ljava/lang/String; 2
      // 3f: astore 6
      // 41: aload 6
      // 43: ifnull 67
      // 46: aload 6
      // 48: invokevirtual java/lang/String.length ()I
      // 4b: ifle 67
      // 4e: goto 55
      // 51: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 54: athrow
      // 55: aload 3
      // 56: aload 5
      // 58: aload 6
      // 5a: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 5f: pop
      // 60: goto 67
      // 63: invokestatic com/l7tech/xml/xpath/d.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 66: athrow
      // 67: goto 28
      // 6a: aload 3
      // 6b: areturn
      // try (29 -> 34): 35 java/lang/NullPointerException
      // try (31 -> 42): 43 java/lang/NullPointerException
   }

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

   static {
      String[] var5 = new String[16];
      int var3 = 0;
      String var2 = "k\u001fFIy<O0V\\Aw\u0002eb\u00171PGT:*\u001b/JARy!T6\u001fPCy!N.S$\u0001J@U6=c\u0012^FN\u001c7K0ZAU0 Uj\u0016iC!?I'LAO6!\u0006e\u001c\u0001^\\H6;\u001b!P\\P<=ObMWU,#ObKKV<o\u0013\u001b0ZFS+!o;OW\u00064:H6\u001f\\I-oY'\u001f\\S5#\u00171PGT:*\u001b/JARy!T6\u001fPCy!N.S\u001e+KWKy\"N1K\u0012D<oZ,\u001fwJ<\"^,KqS+<T0\u001e\u0018\u0017QAS)?T0KWBy=^6J@H\r6K'\u001f\u0015\u000f\fPF\u00060\"K.Z_C7;^&\u000f\fPF\u00060\"K.Z_C7;^&\u001b0ZFS+!o;OW\u00064:H6\u001f\\I-oY'\u001f\\S5#\fk\u001fFIy<O0V\\Aw\u0005m\u0005r\u000ey";
      int var4 = "k\u001fFIy<O0V\\Aw\u0002eb\u00171PGT:*\u001b/JARy!T6\u001fPCy!N.S$\u0001J@U6=c\u0012^FN\u001c7K0ZAU0 Uj\u0016iC!?I'LAO6!\u0006e\u001c\u0001^\\H6;\u001b!P\\P<=ObMWU,#ObKKV<o\u0013\u001b0ZFS+!o;OW\u00064:H6\u001f\\I-oY'\u001f\\S5#\u00171PGT:*\u001b/JARy!T6\u001fPCy!N.S\u001e+KWKy\"N1K\u0012D<oZ,\u001fwJ<\"^,KqS+<T0\u001e\u0018\u0017QAS)?T0KWBy=^6J@H\r6K'\u001f\u0015\u000f\fPF\u00060\"K.Z_C7;^&\u000f\fPF\u00060\"K.Z_C7;^&\u001b0ZFS+!o;OW\u00064:H6\u001f\\I-oY'\u001f\\S5#\fk\u001fFIy<O0V\\Aw\u0005m\u0005r\u000ey"
         .length();
      char var1 = '\f';
      int var7 = -1;

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

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

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

                  var2 = "8bwt\u0006\u0015lQ~da\u001f\u000ef%uqpJ[\u001c2mo{\u0005\b(\u0012coc\u000f\u000e|Q~df\u001f\u0010|Qxxe\u000f\\ ";
                  var4 = "8bwt\u0006\u0015lQ~da\u001f\u000ef%uqpJ[\u001c2mo{\u0005\b(\u0012coc\u000f\u000e|Q~df\u001f\u0010|Qxxe\u000f\\ ".length();
                  var1 = 20;
                  var7 = -1;
            }

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

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

      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 -> 44;
            case 1 -> 81;
            case 2 -> 92;
            case 3 -> 72;
            case 4 -> 55;
            case 5 -> 33;
            default -> 85;
         });
      }

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