package com.l7tech.policy.validator;

import com.l7tech.policy.AssertionPath;
import com.l7tech.policy.PolicyValidatorResult;
import com.l7tech.policy.assertion.Assertion;
import java.util.List;

public class VariableUseValidator implements AssertionValidator {
   private final Assertion a;
   private final List<String> b;
   private final String c;
   private static final String[] d;

   @Override
   public void validate(AssertionPath var1, PolicyValidationContext var2, PolicyValidatorResult var3) {
      for (String var5 : this.b) {
         var3.addWarning(new PolicyValidatorResult.Warning(this.a, var5, null));
      }

      try {
         if (this.c != null) {
            var3.addError(new PolicyValidatorResult.Error(this.a, this.c, null));
         }
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }
   }

   VariableUseValidator(Assertion 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:
      // 000: aload 0
      // 001: invokespecial java/lang/Object.<init> ()V
      // 004: new java/util/ArrayList
      // 007: dup
      // 008: invokespecial java/util/ArrayList.<init> ()V
      // 00b: astore 2
      // 00c: aconst_null
      // 00d: astore 3
      // 00e: aload 1
      // 00f: instanceof com/l7tech/policy/assertion/UsesVariables
      // 012: ifeq 108
      // 015: aload 1
      // 016: checkcast com/l7tech/policy/assertion/UsesVariables
      // 019: astore 4
      // 01b: aload 4
      // 01d: invokeinterface com/l7tech/policy/assertion/UsesVariables.getVariablesUsed ()[Ljava/lang/String; 1
      // 022: astore 5
      // 024: aload 1
      // 025: invokestatic com/l7tech/policy/variable/PolicyVariableUtils.getVariablesSetByPredecessors (Lcom/l7tech/policy/assertion/Assertion;)Ljava/util/Map;
      // 028: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 02d: astore 6
      // 02f: aload 5
      // 031: astore 7
      // 033: aload 7
      // 035: arraylength
      // 036: istore 8
      // 038: bipush 0
      // 039: istore 9
      // 03b: iload 9
      // 03d: iload 8
      // 03f: if_icmpge 0fd
      // 042: aload 7
      // 044: iload 9
      // 046: aaload
      // 047: astore 10
      // 049: aload 10
      // 04b: ifnonnull 05b
      // 04e: getstatic com/l7tech/policy/validator/VariableUseValidator.d [Ljava/lang/String;
      // 051: astore 14
      // 053: aload 14
      // 055: bipush 0
      // 056: aaload
      // 057: astore 3
      // 058: goto 0fd
      // 05b: aload 10
      // 05d: getstatic com/l7tech/policy/validator/VariableUseValidator.d [Ljava/lang/String;
      // 060: bipush 2
      // 061: aaload
      // 062: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 065: ifeq 07b
      // 068: aload 2
      // 069: getstatic com/l7tech/policy/validator/VariableUseValidator.d [Ljava/lang/String;
      // 06c: bipush 3
      // 06d: aaload
      // 06e: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 073: pop
      // 074: goto 07b
      // 077: invokestatic com/l7tech/policy/validator/VariableUseValidator.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 07a: athrow
      // 07b: aload 10
      // 07d: invokestatic com/l7tech/policy/variable/BuiltinVariables.isPredefined (Ljava/lang/String;)Z
      // 080: ifne 0b6
      // 083: aload 10
      // 085: aload 6
      // 087: invokestatic com/l7tech/policy/variable/Syntax.getMatchingName (Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
      // 08a: ifnonnull 0b6
      // 08d: goto 094
      // 090: invokestatic com/l7tech/policy/validator/VariableUseValidator.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 093: athrow
      // 094: aload 2
      // 095: aload 10
      // 097: getstatic com/l7tech/policy/validator/VariableUseValidator.d [Ljava/lang/String;
      // 09a: bipush 8
      // 09c: aaload
      // 09d: swap
      // 09e: getstatic com/l7tech/policy/validator/VariableUseValidator.d [Ljava/lang/String;
      // 0a1: bipush 7
      // 0a3: aaload
      // 0a4: 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" ]
      // 0a9: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0ae: pop
      // 0af: goto 0b6
      // 0b2: invokestatic com/l7tech/policy/validator/VariableUseValidator.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0b5: athrow
      // 0b6: aload 10
      // 0b8: invokestatic com/l7tech/policy/variable/BuiltinVariables.isDeprecated (Ljava/lang/String;)Z
      // 0bb: ifeq 0f7
      // 0be: aload 2
      // 0bf: aload 10
      // 0c1: aload 10
      // 0c3: invokestatic com/l7tech/policy/variable/BuiltinVariables.getMetadata (Ljava/lang/String;)Lcom/l7tech/policy/variable/VariableMetadata;
      // 0c6: invokevirtual com/l7tech/policy/variable/VariableMetadata.getReplacedBy ()Ljava/lang/String;
      // 0c9: aload 10
      // 0cb: invokestatic com/l7tech/policy/variable/BuiltinVariables.getUnmatchedName (Ljava/lang/String;)Ljava/lang/String;
      // 0ce: astore 11
      // 0d0: astore 12
      // 0d2: astore 13
      // 0d4: getstatic com/l7tech/policy/validator/VariableUseValidator.d [Ljava/lang/String;
      // 0d7: astore 14
      // 0d9: aload 14
      // 0db: bipush 1
      // 0dc: aaload
      // 0dd: aload 13
      // 0df: aload 14
      // 0e1: bipush 6
      // 0e3: aaload
      // 0e4: aload 12
      // 0e6: aload 11
      // 0e8: aload 14
      // 0ea: bipush 5
      // 0eb: aaload
      // 0ec: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 0f1: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0f6: pop
      // 0f7: iinc 9 1
      // 0fa: goto 03b
      // 0fd: goto 108
      // 100: astore 5
      // 102: getstatic com/l7tech/policy/validator/VariableUseValidator.d [Ljava/lang/String;
      // 105: bipush 4
      // 106: aaload
      // 107: astore 3
      // 108: aload 0
      // 109: aload 1
      // 10a: putfield com/l7tech/policy/validator/VariableUseValidator.a Lcom/l7tech/policy/assertion/Assertion;
      // 10d: aload 0
      // 10e: aload 2
      // 10f: putfield com/l7tech/policy/validator/VariableUseValidator.b Ljava/util/List;
      // 112: aload 0
      // 113: aload 3
      // 114: putfield com/l7tech/policy/validator/VariableUseValidator.c Ljava/lang/String;
      // 117: return
      // try (62 -> 81): 82 java/lang/IllegalArgumentException
      // try (59 -> 66): 67 java/lang/IllegalArgumentException
      // try (44 -> 56): 57 java/lang/IllegalArgumentException
      // try (14 -> 116): 117 java/lang/IllegalArgumentException
   }

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

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "Pv\u001dlTaKw{\u0006k\u001doV$k\u0007z\u0007 [kp\u0000z\ft\u0018r\u007f\u0006v\u0015bTa>\u0000w\u0015t\u0018j{\u0011{\u0007 Lk>\u0016zTsHa}\u001dy\u001de\\*\u0015@{\u0004m\u0011cYp{\u0010?\u0002aJm\u007f\u0016s\u0011 \u001f\u000bw{\u0006i\u001dc]*k\u0006s\u009bPv\u0011?\u0017oVp{\fkTvYvw\u0015}\u0018e\u0018&m\u0011m\u0002i[a0\u0001m\u0018\"\u0018l\u007f\u0007?\u0016e]j>\u0010z\u0004r]g\u007f\u0000z\u0010.\u0018$P\u001bhTHlPNTm\u001buLmp\u0013?\u0015sKal\u0000v\u001bnK$k\u0007zTa\u0018j{\u0003?\u0017oVp{\fkTvYvw\u0015}\u0018e\u0018&v\u0000k\u0004RWqj\u001dq\u0013.MvrV?\u001dnKp{\u0015{To^$<\u0007z\u0006vQg{Zj\u0006l\u001a*,Pv\u001dlTaKw{\u0006k\u001doV$k\u0007z\u0007 Qjh\u0015s\u001dd\u0018r\u007f\u0006v\u0015bTa>\u0007f\u001atY|0\u0002#0\u0019#>\u0007w\u001buT`>\u0016zTr]tr\u0015|\u0011d\u0018fgT8";
      int var4 = "Pv\u001dlTaKw{\u0006k\u001doV$k\u0007z\u0007 [kp\u0000z\ft\u0018r\u007f\u0006v\u0015bTa>\u0000w\u0015t\u0018j{\u0011{\u0007 Lk>\u0016zTsHa}\u001dy\u001de\\*\u0015@{\u0004m\u0011cYp{\u0010?\u0002aJm\u007f\u0016s\u0011 \u001f\u000bw{\u0006i\u001dc]*k\u0006s\u009bPv\u0011?\u0017oVp{\fkTvYvw\u0015}\u0018e\u0018&m\u0011m\u0002i[a0\u0001m\u0018\"\u0018l\u007f\u0007?\u0016e]j>\u0010z\u0004r]g\u007f\u0000z\u0010.\u0018$P\u001bhTHlPNTm\u001buLmp\u0013?\u0015sKal\u0000v\u001bnK$k\u0007zTa\u0018j{\u0003?\u0017oVp{\fkTvYvw\u0015}\u0018e\u0018&v\u0000k\u0004RWqj\u001dq\u0013.MvrV?\u001dnKp{\u0015{To^$<\u0007z\u0006vQg{Zj\u0006l\u001a*,Pv\u001dlTaKw{\u0006k\u001doV$k\u0007z\u0007 Qjh\u0015s\u001dd\u0018r\u007f\u0006v\u0015bTa>\u0007f\u001atY|0\u0002#0\u0019#>\u0007w\u001buT`>\u0016zTr]tr\u0015|\u0011d\u0018fgT8"
         .length();
      char var1 = '@';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 7;
         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) {
                     d = var5;
                     return;
                  }

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

                  var2 = "du\u0013/[.\u001c+yZ+\u0013)\u001a*-[=Ag\u000f1<W=U.\u0011&=\u00136\\5_0<GxZ)_71VxC(\u0013*:Jx@(_%8Av'\u00171Z+\u0013&\f0<A,Z(\u0011c+V>V5\fc-\\xG/\u001ac/R*Z&\u001d/<\u0013\u007f";
                  var4 = "du\u0013/[.\u001c+yZ+\u0013)\u001a*-[=Ag\u000f1<W=U.\u0011&=\u00136\\5_0<GxZ)_71VxC(\u0013*:Jx@(_%8Av'\u00171Z+\u0013&\f0<A,Z(\u0011c+V>V5\fc-\\xG/\u001ac/R*Z&\u001d/<\u0013\u007f"
                     .length();
                  var1 = '<';
                  var7 = -1;
            }

            var10000 = 64;
            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] ^ 63);
      }

      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 -> 3;
            case 1 -> 25;
            case 2 -> 115;
            case 3 -> 24;
            case 4 -> 115;
            case 5 -> 7;
            default -> 63;
         });
      }

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