package com.l7tech.server.policy.variable;

import com.l7tech.message.HeadersKnob;
import com.l7tech.message.Message;
import com.l7tech.message.TcpKnob;
import com.l7tech.policy.variable.Syntax.SyntaxErrorHandler;
import com.l7tech.util.Functions;
import com.l7tech.util.Functions.Unary;
import java.security.cert.X509Certificate;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
import org.jetbrains.annotations.NotNull;

public class MessageSelector implements ExpandVariables.Selector<Message> {
   public static final String MODIFIED_SUFFIX;
   private static Map<String, MessageSelector.MessageAttributeSelector> a;
   private static final String b;
   private static final String c;
   private static final String d;
   private static final String e;
   private static final String f;
   private static final String g;
   private static final String h;
   private static final String i;
   private static final String j;
   private static final String k;
   private static final String l;
   private static final String m;
   private static final String n;
   private static final String o;
   private static final String p;
   private static final String q;
   private static final String r;
   private static final String s;
   private static final String t;
   private static final String u;
   private static final String v;
   private static final String w;
   private static final String x;
   private static final String y;
   private static final String z;
   private static final String A;
   private static final String B;
   private static final String C;
   private static final String D;
   private static final String E;
   private static final String F;
   private static final String G;
   private static final String H;
   private static final String I;
   private static final String J;
   private static final String K;
   private static final String L;
   private static final String M;
   private static final String N;
   private static final String O;
   private static final String P;
   private static final String Q;
   private static final String R;
   private static final String S;
   private static final String T;
   private static final String U;
   private static final String V;
   private static final String W;
   private static final String X;
   private static final String Y;
   private static final String Z;
   private static final String aa;
   private static final String ab;
   private static final String ac;
   private static final String ad;
   private static final String ae;
   private static final String af;
   private static final String ag;
   private static final String ah;
   private static final Map<String, Unary<Object, TcpKnob>> ai;
   private static final Map<String, String> aj;
   private static final Pattern ak;
   private static final MessageSelector.MessageAttributeSelector al;
   private static final MessageSelector.MessageAttributeSelector am;
   private static final MessageSelector.MessageAttributeSelector an;
   private static final MessageSelector.MessageAttributeSelector ao;
   private static final MessageSelector.MessageAttributeSelector ap;
   private static final MessageSelector.MessageAttributeSelector aq;
   private static final MessageSelector.MessageAttributeSelector ar;
   private static final MessageSelector.MessageAttributeSelector as;
   private static final MessageSelector.MessageAttributeSelector at;
   private static final MessageSelector.MessageAttributeSelector au;
   private static final MessageSelector.MessageAttributeSelector av;
   private static final MessageSelector.MessageAttributeSelector aw;
   private static final MessageSelector.MessageAttributeSelector ax;
   private final MessageSelector.MessageAttributeSelector ay = new eo(this);
   private final MessageSelector.MessageAttributeSelector az = new ep(this);
   private static final MessageSelector.MessageAttributeSelector aA;
   private static final MessageSelector.MessageAttributeSelector aB;
   private static final MessageSelector.MessageAttributeSelector aC;
   private static final MessageSelector.MessageAttributeSelector aD;
   private static final MessageSelector.MessageAttributeSelector aE;
   private static final MessageSelector.MessageAttributeSelector aF;
   private static final MessageSelector.MessageAttributeSelector aG;
   private static final MessageSelector.MessageAttributeSelector aH;
   private static final MessageSelector.MessageAttributeSelector aI;
   private static final MessageSelector.MessageAttributeSelector aJ;
   private static final MessageSelector.MessageAttributeSelector aK;
   private static final MessageSelector.MessageAttributeSelector aL;
   private static final MessageSelector.MessageAttributeSelector aM;
   private static final MessageSelector.HeadersKnobSelector aN;
   private static final MessageSelector.HeadersKnobSelector aO;
   private static final MessageSelector.HeadersKnobSelector aP;
   private static final MessageSelector.HeadersKnobSelector aQ;
   private static final MessageSelector.MessageAttributeSelector aR;
   private static final MessageSelector.MessageAttributeSelector aS;
   private static final e5 aT;
   private static final String[] bb;

   public static void registerSelector(String var0, MessageSelector.MessageAttributeSelector var1) {
      a.put(var0, var1);
   }

   public static void unRegisterSelector(String var0) {
      a.remove(var0);
   }

   @Override
   public Class<Message> getContextObjectClass() {
      return Message.class;
   }

   public ExpandVariables.Selector.Selection select(String param1, Message param2, String param3, SyntaxErrorHandler param4, boolean param5) {
      // $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 3
      // 001: invokevirtual java/lang/String.toLowerCase ()Ljava/lang/String;
      // 004: astore 7
      // 006: aload 7
      // 008: astore 8
      // 00a: aload 8
      // 00c: bipush 46
      // 00e: invokevirtual java/lang/String.indexOf (I)I
      // 011: istore 9
      // 013: iload 9
      // 015: bipush -1
      // 016: if_icmple 023
      // 019: aload 8
      // 01b: bipush 0
      // 01c: iload 9
      // 01e: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
      // 021: astore 8
      // 023: invokestatic com/l7tech/server/policy/variable/MessageSelector.a ()[Ljava/lang/String;
      // 026: aload 8
      // 028: invokestatic com/l7tech/util/ArrayUtils.contains ([Ljava/lang/Object;Ljava/lang/Object;)Z
      // 02b: ifne 048
      // 02e: getstatic com/l7tech/server/policy/variable/MessageSelector.a Ljava/util/Map;
      // 031: aload 8
      // 033: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 038: ifnonnull 048
      // 03b: goto 042
      // 03e: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 041: athrow
      // 042: aconst_null
      // 043: areturn
      // 044: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 047: athrow
      // 048: aload 7
      // 04a: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 04d: astore 15
      // 04f: aload 15
      // 051: bipush 72
      // 053: aaload
      // 054: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 057: ifeq 062
      // 05a: getstatic com/l7tech/server/policy/variable/MessageSelector.aN Lcom/l7tech/server/policy/variable/MessageSelector$HeadersKnobSelector;
      // 05d: astore 6
      // 05f: goto 628
      // 062: aload 7
      // 064: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 067: astore 15
      // 069: aload 15
      // 06b: bipush 65
      // 06d: aaload
      // 06e: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 071: ifeq 07c
      // 074: getstatic com/l7tech/server/policy/variable/MessageSelector.aO Lcom/l7tech/server/policy/variable/MessageSelector$HeadersKnobSelector;
      // 077: astore 6
      // 079: goto 628
      // 07c: aload 7
      // 07e: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 081: astore 15
      // 083: aload 15
      // 085: bipush 28
      // 087: aaload
      // 088: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 08b: ifeq 096
      // 08e: getstatic com/l7tech/server/policy/variable/MessageSelector.aH Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 091: astore 6
      // 093: goto 628
      // 096: aload 7
      // 098: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 09b: astore 15
      // 09d: aload 15
      // 09f: bipush 41
      // 0a1: aaload
      // 0a2: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0a5: ifeq 0b0
      // 0a8: getstatic com/l7tech/server/policy/variable/MessageSelector.aK Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 0ab: astore 6
      // 0ad: goto 628
      // 0b0: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 0b3: astore 15
      // 0b5: aload 15
      // 0b7: bipush 111
      // 0b9: aaload
      // 0ba: aload 7
      // 0bc: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0bf: ifeq 0ca
      // 0c2: getstatic com/l7tech/server/policy/variable/MessageSelector.aw Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 0c5: astore 6
      // 0c7: goto 628
      // 0ca: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 0cd: astore 15
      // 0cf: aload 15
      // 0d1: bipush 54
      // 0d3: aaload
      // 0d4: aload 7
      // 0d6: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0d9: ifeq 0e4
      // 0dc: getstatic com/l7tech/server/policy/variable/MessageSelector.ax Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 0df: astore 6
      // 0e1: goto 628
      // 0e4: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 0e7: astore 15
      // 0e9: aload 15
      // 0eb: bipush 14
      // 0ed: aaload
      // 0ee: aload 7
      // 0f0: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0f3: ifeq 0fe
      // 0f6: getstatic com/l7tech/server/policy/variable/MessageSelector.as Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 0f9: astore 6
      // 0fb: goto 628
      // 0fe: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 101: astore 15
      // 103: aload 15
      // 105: bipush 90
      // 107: aaload
      // 108: aload 7
      // 10a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 10d: ifeq 119
      // 110: aload 0
      // 111: getfield com/l7tech/server/policy/variable/MessageSelector.ay Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 114: astore 6
      // 116: goto 628
      // 119: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 11c: astore 15
      // 11e: aload 15
      // 120: bipush 83
      // 122: aaload
      // 123: aload 7
      // 125: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 128: ifeq 134
      // 12b: aload 0
      // 12c: getfield com/l7tech/server/policy/variable/MessageSelector.az Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 12f: astore 6
      // 131: goto 628
      // 134: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 137: astore 15
      // 139: aload 15
      // 13b: bipush 116
      // 13d: aaload
      // 13e: aload 7
      // 140: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 143: ifeq 14e
      // 146: getstatic com/l7tech/server/policy/variable/MessageSelector.at Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 149: astore 6
      // 14b: goto 628
      // 14e: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 151: astore 15
      // 153: aload 15
      // 155: bipush 84
      // 157: aaload
      // 158: aload 7
      // 15a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 15d: ifeq 168
      // 160: getstatic com/l7tech/server/policy/variable/MessageSelector.av Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 163: astore 6
      // 165: goto 628
      // 168: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 16b: astore 15
      // 16d: aload 15
      // 16f: bipush 94
      // 171: aaload
      // 172: aload 7
      // 174: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 177: ifeq 182
      // 17a: getstatic com/l7tech/server/policy/variable/MessageSelector.au Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 17d: astore 6
      // 17f: goto 628
      // 182: aload 7
      // 184: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 187: astore 15
      // 189: aload 15
      // 18b: bipush 8
      // 18d: aaload
      // 18e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 191: ifeq 19c
      // 194: getstatic com/l7tech/server/policy/variable/MessageSelector.aA Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 197: astore 6
      // 199: goto 628
      // 19c: aload 7
      // 19e: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 1a1: astore 15
      // 1a3: aload 15
      // 1a5: bipush 45
      // 1a7: aaload
      // 1a8: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1ab: ifeq 1b6
      // 1ae: getstatic com/l7tech/server/policy/variable/MessageSelector.aB Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 1b1: astore 6
      // 1b3: goto 628
      // 1b6: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 1b9: astore 15
      // 1bb: aload 15
      // 1bd: bipush 106
      // 1bf: aaload
      // 1c0: aload 7
      // 1c2: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1c5: ifeq 1d0
      // 1c8: getstatic com/l7tech/server/policy/variable/MessageSelector.aS Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 1cb: astore 6
      // 1cd: goto 628
      // 1d0: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 1d3: astore 15
      // 1d5: aload 15
      // 1d7: bipush 101
      // 1d9: aaload
      // 1da: aload 7
      // 1dc: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1df: ifeq 1ea
      // 1e2: getstatic com/l7tech/server/policy/variable/MessageSelector.aR Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 1e5: astore 6
      // 1e7: goto 628
      // 1ea: aload 7
      // 1ec: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 1ef: astore 15
      // 1f1: aload 15
      // 1f3: bipush 46
      // 1f5: aaload
      // 1f6: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 1f9: ifeq 204
      // 1fc: getstatic com/l7tech/server/policy/variable/MessageSelector.aC Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 1ff: astore 6
      // 201: goto 628
      // 204: aload 7
      // 206: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 209: astore 15
      // 20b: aload 15
      // 20d: bipush 118
      // 20f: aaload
      // 210: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 213: ifeq 21e
      // 216: getstatic com/l7tech/server/policy/variable/MessageSelector.aD Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 219: astore 6
      // 21b: goto 628
      // 21e: aload 7
      // 220: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 223: bipush 36
      // 225: aaload
      // 226: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 229: ifne 241
      // 22c: aload 7
      // 22e: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 231: bipush 93
      // 233: aaload
      // 234: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 237: ifeq 24d
      // 23a: goto 241
      // 23d: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 240: athrow
      // 241: aload 0
      // 242: aload 2
      // 243: aload 7
      // 245: invokevirtual com/l7tech/server/policy/variable/MessageSelector.a (Lcom/l7tech/message/Message;Ljava/lang/String;)Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 248: astore 6
      // 24a: goto 628
      // 24d: aload 7
      // 24f: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 252: astore 15
      // 254: aload 15
      // 256: bipush 122
      // 258: aaload
      // 259: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 25c: ifeq 27b
      // 25f: aload 0
      // 260: new com/l7tech/server/policy/variable/bh
      // 263: dup
      // 264: aload 15
      // 266: bipush 103
      // 268: aaload
      // 269: bipush 1
      // 26a: ldc java/lang/String
      // 26c: getstatic com/l7tech/server/policy/variable/bh.b Lcom/l7tech/util/Functions$Unary;
      // 26f: aload 2
      // 270: invokespecial com/l7tech/server/policy/variable/bh.<init> (Ljava/lang/String;ZLjava/lang/Class;Lcom/l7tech/util/Functions$Unary;Lcom/l7tech/message/Message;)V
      // 273: invokevirtual com/l7tech/server/policy/variable/MessageSelector.a (Lcom/l7tech/server/policy/variable/bh;)Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 276: astore 6
      // 278: goto 628
      // 27b: aload 7
      // 27d: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 280: astore 15
      // 282: aload 15
      // 284: bipush 66
      // 286: aaload
      // 287: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 28a: ifeq 345
      // 28d: getstatic com/l7tech/server/policy/variable/MessageSelector.ak Ljava/util/regex/Pattern;
      // 290: aload 3
      // 291: bipush 2
      // 292: invokevirtual java/util/regex/Pattern.split (Ljava/lang/CharSequence;I)[Ljava/lang/String;
      // 295: astore 10
      // 297: aload 10
      // 299: arraylength
      // 29a: bipush 1
      // 29b: if_icmple 2a9
      // 29e: aload 10
      // 2a0: bipush 1
      // 2a1: aaload
      // 2a2: goto 2aa
      // 2a5: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 2a8: athrow
      // 2a9: aconst_null
      // 2aa: astore 11
      // 2ac: aload 11
      // 2ae: ifnonnull 2d1
      // 2b1: aload 0
      // 2b2: new com/l7tech/server/policy/variable/bh
      // 2b5: dup
      // 2b6: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 2b9: astore 15
      // 2bb: aload 15
      // 2bd: bipush 1
      // 2be: aaload
      // 2bf: bipush 0
      // 2c0: ldc java/lang/String
      // 2c2: getstatic com/l7tech/server/policy/variable/bh.b Lcom/l7tech/util/Functions$Unary;
      // 2c5: aload 2
      // 2c6: invokespecial com/l7tech/server/policy/variable/bh.<init> (Ljava/lang/String;ZLjava/lang/Class;Lcom/l7tech/util/Functions$Unary;Lcom/l7tech/message/Message;)V
      // 2c9: invokevirtual com/l7tech/server/policy/variable/MessageSelector.a (Lcom/l7tech/server/policy/variable/bh;)Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 2cc: astore 6
      // 2ce: goto 342
      // 2d1: aload 11
      // 2d3: invokestatic java/lang/Integer.parseInt (Ljava/lang/String;)I
      // 2d6: pop
      // 2d7: aload 0
      // 2d8: new com/l7tech/server/policy/variable/bh
      // 2db: dup
      // 2dc: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 2df: astore 15
      // 2e1: aload 15
      // 2e3: bipush 1
      // 2e4: aaload
      // 2e5: bipush 0
      // 2e6: ldc java/lang/String
      // 2e8: getstatic com/l7tech/server/policy/variable/bh.b Lcom/l7tech/util/Functions$Unary;
      // 2eb: aload 2
      // 2ec: invokespecial com/l7tech/server/policy/variable/bh.<init> (Ljava/lang/String;ZLjava/lang/Class;Lcom/l7tech/util/Functions$Unary;Lcom/l7tech/message/Message;)V
      // 2ef: invokevirtual com/l7tech/server/policy/variable/MessageSelector.a (Lcom/l7tech/server/policy/variable/bh;)Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 2f2: astore 6
      // 2f4: goto 342
      // 2f7: astore 12
      // 2f9: new com/l7tech/server/policy/variable/bh
      // 2fc: dup
      // 2fd: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 300: astore 15
      // 302: aload 15
      // 304: bipush 1
      // 305: aaload
      // 306: bipush 0
      // 307: ldc com/l7tech/identity/User
      // 309: getstatic com/l7tech/server/policy/variable/bh.a Lcom/l7tech/util/Functions$Unary;
      // 30c: aload 2
      // 30d: invokespecial com/l7tech/server/policy/variable/bh.<init> (Ljava/lang/String;ZLjava/lang/Class;Lcom/l7tech/util/Functions$Unary;Lcom/l7tech/message/Message;)V
      // 310: astore 13
      // 312: aload 13
      // 314: aload 10
      // 316: bipush 0
      // 317: aaload
      // 318: invokestatic com/l7tech/server/message/PolicyEnforcementContextFactory.getCurrent ()Lcom/l7tech/server/message/PolicyEnforcementContext;
      // 31b: invokevirtual com/l7tech/server/policy/variable/bh.get (Ljava/lang/String;Lcom/l7tech/server/message/PolicyEnforcementContext;)Ljava/lang/Object;
      // 31e: checkcast com/l7tech/identity/User
      // 321: astore 14
      // 323: aload 14
      // 325: ifnonnull 336
      // 328: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 32b: dup
      // 32c: ldc ""
      // 32e: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;)V
      // 331: areturn
      // 332: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 335: athrow
      // 336: new com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection
      // 339: dup
      // 33a: aload 14
      // 33c: aload 11
      // 33e: invokespecial com/l7tech/server/policy/variable/ExpandVariables$Selector$Selection.<init> (Ljava/lang/Object;Ljava/lang/String;)V
      // 341: areturn
      // 342: goto 628
      // 345: aload 7
      // 347: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 34a: astore 15
      // 34c: aload 15
      // 34e: bipush 10
      // 350: aaload
      // 351: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 354: ifeq 373
      // 357: aload 0
      // 358: new com/l7tech/server/policy/variable/bh
      // 35b: dup
      // 35c: aload 15
      // 35e: bipush 25
      // 360: aaload
      // 361: bipush 1
      // 362: ldc java/lang/String
      // 364: getstatic com/l7tech/server/policy/variable/bh.c Lcom/l7tech/util/Functions$Unary;
      // 367: aload 2
      // 368: invokespecial com/l7tech/server/policy/variable/bh.<init> (Ljava/lang/String;ZLjava/lang/Class;Lcom/l7tech/util/Functions$Unary;Lcom/l7tech/message/Message;)V
      // 36b: invokevirtual com/l7tech/server/policy/variable/MessageSelector.a (Lcom/l7tech/server/policy/variable/bh;)Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 36e: astore 6
      // 370: goto 628
      // 373: aload 7
      // 375: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 378: astore 15
      // 37a: aload 15
      // 37c: bipush 96
      // 37e: aaload
      // 37f: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 382: ifeq 3a1
      // 385: aload 0
      // 386: new com/l7tech/server/policy/variable/bh
      // 389: dup
      // 38a: aload 15
      // 38c: bipush 114
      // 38e: aaload
      // 38f: bipush 0
      // 390: ldc java/lang/String
      // 392: getstatic com/l7tech/server/policy/variable/bh.c Lcom/l7tech/util/Functions$Unary;
      // 395: aload 2
      // 396: invokespecial com/l7tech/server/policy/variable/bh.<init> (Ljava/lang/String;ZLjava/lang/Class;Lcom/l7tech/util/Functions$Unary;Lcom/l7tech/message/Message;)V
      // 399: invokevirtual com/l7tech/server/policy/variable/MessageSelector.a (Lcom/l7tech/server/policy/variable/bh;)Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 39c: astore 6
      // 39e: goto 628
      // 3a1: aload 7
      // 3a3: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 3a6: bipush 55
      // 3a8: aaload
      // 3a9: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 3ac: ifeq 3d4
      // 3af: aload 7
      // 3b1: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 3b4: bipush 73
      // 3b6: aaload
      // 3b7: invokevirtual java/lang/String.endsWith (Ljava/lang/String;)Z
      // 3ba: ifeq 3cc
      // 3bd: goto 3c4
      // 3c0: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 3c3: athrow
      // 3c4: getstatic com/l7tech/server/policy/variable/MessageSelector.aQ Lcom/l7tech/server/policy/variable/MessageSelector$HeadersKnobSelector;
      // 3c7: astore 6
      // 3c9: goto 628
      // 3cc: getstatic com/l7tech/server/policy/variable/MessageSelector.aG Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 3cf: astore 6
      // 3d1: goto 628
      // 3d4: aload 7
      // 3d6: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 3d9: bipush 71
      // 3db: aaload
      // 3dc: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 3df: ifeq 407
      // 3e2: aload 7
      // 3e4: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 3e7: bipush 31
      // 3e9: aaload
      // 3ea: invokevirtual java/lang/String.endsWith (Ljava/lang/String;)Z
      // 3ed: ifeq 3ff
      // 3f0: goto 3f7
      // 3f3: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 3f6: athrow
      // 3f7: getstatic com/l7tech/server/policy/variable/MessageSelector.aJ Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 3fa: astore 6
      // 3fc: goto 628
      // 3ff: getstatic com/l7tech/server/policy/variable/MessageSelector.aE Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 402: astore 6
      // 404: goto 628
      // 407: aload 7
      // 409: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 40c: bipush 51
      // 40e: aaload
      // 40f: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 412: ifeq 43a
      // 415: aload 7
      // 417: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 41a: bipush 31
      // 41c: aaload
      // 41d: invokevirtual java/lang/String.endsWith (Ljava/lang/String;)Z
      // 420: ifeq 432
      // 423: goto 42a
      // 426: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 429: athrow
      // 42a: getstatic com/l7tech/server/policy/variable/MessageSelector.aM Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 42d: astore 6
      // 42f: goto 628
      // 432: getstatic com/l7tech/server/policy/variable/MessageSelector.aF Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 435: astore 6
      // 437: goto 628
      // 43a: aload 7
      // 43c: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 43f: astore 15
      // 441: aload 15
      // 443: bipush 57
      // 445: aaload
      // 446: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 449: ifeq 454
      // 44c: getstatic com/l7tech/server/policy/variable/MessageSelector.aP Lcom/l7tech/server/policy/variable/MessageSelector$HeadersKnobSelector;
      // 44f: astore 6
      // 451: goto 628
      // 454: aload 7
      // 456: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 459: astore 15
      // 45b: aload 15
      // 45d: bipush 110
      // 45f: aaload
      // 460: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 463: ifeq 46e
      // 466: getstatic com/l7tech/server/policy/variable/MessageSelector.aI Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 469: astore 6
      // 46b: goto 628
      // 46e: aload 7
      // 470: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 473: astore 15
      // 475: aload 15
      // 477: bipush 98
      // 479: aaload
      // 47a: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 47d: ifeq 488
      // 480: getstatic com/l7tech/server/policy/variable/MessageSelector.aL Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 483: astore 6
      // 485: goto 628
      // 488: aload 7
      // 48a: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 48d: astore 15
      // 48f: aload 15
      // 491: bipush 113
      // 493: aaload
      // 494: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 497: ifeq 4a2
      // 49a: getstatic com/l7tech/server/policy/variable/MessageSelector.am Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 49d: astore 6
      // 49f: goto 628
      // 4a2: aload 7
      // 4a4: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 4a7: astore 15
      // 4a9: aload 15
      // 4ab: bipush 32
      // 4ad: aaload
      // 4ae: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 4b1: ifeq 4bc
      // 4b4: getstatic com/l7tech/server/policy/variable/MessageSelector.al Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 4b7: astore 6
      // 4b9: goto 628
      // 4bc: aload 7
      // 4be: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 4c1: bipush 91
      // 4c3: aaload
      // 4c4: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 4c7: ifne 509
      // 4ca: aload 7
      // 4cc: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 4cf: bipush 112
      // 4d1: aaload
      // 4d2: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 4d5: ifne 509
      // 4d8: goto 4df
      // 4db: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 4de: athrow
      // 4df: aload 7
      // 4e1: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 4e4: bipush 68
      // 4e6: aaload
      // 4e7: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 4ea: ifne 509
      // 4ed: goto 4f4
      // 4f0: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 4f3: athrow
      // 4f4: aload 7
      // 4f6: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 4f9: bipush 13
      // 4fb: aaload
      // 4fc: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 4ff: ifeq 511
      // 502: goto 509
      // 505: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 508: athrow
      // 509: getstatic com/l7tech/server/policy/variable/MessageSelector.aT Lcom/l7tech/server/policy/variable/e5;
      // 50c: astore 6
      // 50e: goto 628
      // 511: aload 7
      // 513: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 516: astore 15
      // 518: aload 15
      // 51a: bipush 109
      // 51c: aaload
      // 51d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 520: ifeq 52b
      // 523: getstatic com/l7tech/server/policy/variable/MessageSelector.an Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 526: astore 6
      // 528: goto 628
      // 52b: aload 7
      // 52d: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 530: astore 15
      // 532: aload 15
      // 534: bipush 97
      // 536: aaload
      // 537: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 53a: ifeq 545
      // 53d: getstatic com/l7tech/server/policy/variable/MessageSelector.ao Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 540: astore 6
      // 542: goto 628
      // 545: aload 7
      // 547: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 54a: astore 15
      // 54c: aload 15
      // 54e: bipush 20
      // 550: aaload
      // 551: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 554: ifeq 55f
      // 557: getstatic com/l7tech/server/policy/variable/MessageSelector.ap Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 55a: astore 6
      // 55c: goto 628
      // 55f: aload 7
      // 561: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 564: astore 15
      // 566: aload 15
      // 568: bipush 60
      // 56a: aaload
      // 56b: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 56e: ifeq 579
      // 571: getstatic com/l7tech/server/policy/variable/MessageSelector.aq Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 574: astore 6
      // 576: goto 628
      // 579: aload 7
      // 57b: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 57e: astore 15
      // 580: aload 15
      // 582: bipush 47
      // 584: aaload
      // 585: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 588: ifeq 593
      // 58b: getstatic com/l7tech/server/policy/variable/MessageSelector.ar Lcom/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector;
      // 58e: astore 6
      // 590: goto 628
      // 593: getstatic com/l7tech/server/policy/variable/MessageSelector.a Ljava/util/Map;
      // 596: aload 8
      // 598: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 59d: ifnull 5b2
      // 5a0: getstatic com/l7tech/server/policy/variable/MessageSelector.a Ljava/util/Map;
      // 5a3: aload 8
      // 5a5: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 5aa: checkcast com/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector
      // 5ad: astore 6
      // 5af: goto 628
      // 5b2: getstatic com/l7tech/server/policy/variable/MessageSelector.ai Ljava/util/Map;
      // 5b5: aload 7
      // 5b7: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 5bc: checkcast com/l7tech/util/Functions$Unary
      // 5bf: astore 10
      // 5c1: aload 10
      // 5c3: ifnull 5d4
      // 5c6: new com/l7tech/server/policy/variable/fg
      // 5c9: dup
      // 5ca: aload 10
      // 5cc: invokespecial com/l7tech/server/policy/variable/fg.<init> (Lcom/l7tech/util/Functions$Unary;)V
      // 5cf: astore 6
      // 5d1: goto 628
      // 5d4: getstatic com/l7tech/server/policy/variable/MessageSelector.aj Ljava/util/Map;
      // 5d7: aload 7
      // 5d9: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 5de: checkcast java/lang/String
      // 5e1: astore 11
      // 5e3: aload 11
      // 5e5: ifnull 5f6
      // 5e8: new com/l7tech/server/policy/variable/fe
      // 5eb: dup
      // 5ec: aload 11
      // 5ee: invokespecial com/l7tech/server/policy/variable/fe.<init> (Ljava/lang/String;)V
      // 5f1: astore 6
      // 5f3: goto 628
      // 5f6: aload 4
      // 5f8: aload 3
      // 5f9: aload 2
      // 5fa: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 5fd: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 600: getstatic com/l7tech/server/policy/variable/MessageSelector.bb [Ljava/lang/String;
      // 603: bipush 121
      // 605: aaload
      // 606: swap
      // 607: 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" ]
      // 60c: invokeinterface com/l7tech/policy/variable/Syntax$SyntaxErrorHandler.handleBadVariable (Ljava/lang/String;)Ljava/lang/String; 2
      // 611: astore 12
      // 613: iload 5
      // 615: ifeq 626
      // 618: new java/lang/IllegalArgumentException
      // 61b: dup
      // 61c: aload 12
      // 61e: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 621: athrow
      // 622: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 625: athrow
      // 626: aconst_null
      // 627: areturn
      // 628: aload 6
      // 62a: aload 2
      // 62b: aload 3
      // 62c: aload 4
      // 62e: iload 5
      // 630: invokeinterface com/l7tech/server/policy/variable/MessageSelector$MessageAttributeSelector.select (Lcom/l7tech/message/Message;Ljava/lang/String;Lcom/l7tech/policy/variable/Syntax$SyntaxErrorHandler;Z)Lcom/l7tech/server/policy/variable/ExpandVariables$Selector$Selection; 5
      // 635: areturn
      // try (288 -> 296): 296 java/lang/NumberFormatException
      // try (232 -> 244): 245 java/lang/NumberFormatException
      // try (21 -> 30): 30 java/lang/NumberFormatException
      // try (17 -> 25): 26 java/lang/NumberFormatException
      // try (318 -> 336): 337 java/lang/NumberFormatException
      // try (359 -> 366): 366 java/lang/NumberFormatException
      // try (419 -> 431): 432 java/lang/NumberFormatException
      // try (440 -> 452): 453 java/lang/NumberFormatException
      // try (461 -> 473): 474 java/lang/NumberFormatException
      // try (537 -> 549): 550 java/lang/NumberFormatException
      // try (543 -> 558): 559 java/lang/NumberFormatException
      // try (552 -> 567): 568 java/lang/NumberFormatException
      // try (676 -> 683): 683 java/lang/NumberFormatException
   }

   static String[] a() {
      String[] var10000 = new String[22];
      String[] var0 = bb;
      var10000[0] = var0[15];
      var10000[1] = var0[78];
      var10000[2] = var0[74];
      var10000[3] = var0[16];
      var10000[4] = var0[119];
      var10000[5] = var0[70];
      var10000[6] = var0[92];
      var10000[7] = var0[120];
      var10000[8] = var0[52];
      var10000[9] = var0[23];
      var10000[10] = var0[99];
      var10000[11] = var0[56];
      var10000[12] = var0[27];
      var10000[13] = var0[44];
      var10000[14] = var0[88];
      var10000[15] = var0[29];
      var10000[16] = var0[48];
      var10000[17] = var0[7];
      var10000[18] = var0[1];
      var10000[19] = var0[103];
      var10000[20] = var0[114];
      var10000[21] = var0[25];
      return var10000;
   }

   private MessageSelector.MessageAttributeSelector a(bh var1) {
      return new ex(this, var1);
   }

   private MessageSelector.MessageAttributeSelector a(Message var1, String var2) {
      return new ey(this, var1, var2);
   }

   private static String a(String var0) {
      try {
         if (var0 == null) {
            return null;
         }
      } catch (NumberFormatException var3) {
         throw a(var3);
      }

      try {
         if (var0.startsWith(bb[11])) {
            return bb[17];
         }
      } catch (NumberFormatException var2) {
         throw a(var2);
      }

      try {
         if (var0.startsWith(bb[42])) {
            return bb[3];
         }
      } catch (NumberFormatException var1) {
         throw a(var1);
      }

      return null;
   }

   private static boolean b(String var0) {
      try {
         Integer.parseInt(var0);
         return true;
      } catch (NumberFormatException var2) {
         return false;
      }
   }

   private static int a(Message param0, boolean 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: bipush 0
      // 01: istore 2
      // 02: aload 0
      // 03: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 06: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 0b: astore 3
      // 0c: aload 3
      // 0d: ifnull 65
      // 10: aload 3
      // 11: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getXmlSecurityTokens ()[Lcom/l7tech/security/token/XmlSecurityToken; 1
      // 16: astore 4
      // 18: aload 4
      // 1a: arraylength
      // 1b: istore 5
      // 1d: bipush 0
      // 1e: istore 6
      // 20: iload 6
      // 22: iload 5
      // 24: if_icmpge 65
      // 27: aload 4
      // 29: iload 6
      // 2b: aaload
      // 2c: astore 7
      // 2e: aload 7
      // 30: instanceof com/l7tech/security/token/X509SigningSecurityToken
      // 33: ifeq 5f
      // 36: iload 1
      // 37: ifeq 55
      // 3a: goto 41
      // 3d: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 40: athrow
      // 41: aload 7
      // 43: checkcast com/l7tech/security/token/X509SigningSecurityToken
      // 46: invokeinterface com/l7tech/security/token/X509SigningSecurityToken.isPossessionProved ()Z 1
      // 4b: ifeq 5f
      // 4e: goto 55
      // 51: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 54: athrow
      // 55: iinc 2 1
      // 58: goto 5f
      // 5b: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 5e: athrow
      // 5f: iinc 6 1
      // 62: goto 20
      // 65: iload 2
      // 66: ireturn
      // try (23 -> 28): 29 java/lang/NumberFormatException
      // try (26 -> 35): 36 java/lang/NumberFormatException
      // try (31 -> 39): 40 java/lang/NumberFormatException
   }

   private static X509Certificate a(Message param0, int param1, boolean 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: new java/util/ArrayList
      // 03: dup
      // 04: invokespecial java/util/ArrayList.<init> ()V
      // 07: astore 3
      // 08: aload 0
      // 09: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 0c: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 11: astore 4
      // 13: aload 4
      // 15: ifnull 75
      // 18: aload 4
      // 1a: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getXmlSecurityTokens ()[Lcom/l7tech/security/token/XmlSecurityToken; 1
      // 1f: astore 5
      // 21: aload 5
      // 23: arraylength
      // 24: istore 6
      // 26: bipush 0
      // 27: istore 7
      // 29: iload 7
      // 2b: iload 6
      // 2d: if_icmpge 75
      // 30: aload 5
      // 32: iload 7
      // 34: aaload
      // 35: astore 8
      // 37: aload 8
      // 39: instanceof com/l7tech/security/token/X509SigningSecurityToken
      // 3c: ifeq 6f
      // 3f: iload 2
      // 40: ifeq 5e
      // 43: goto 4a
      // 46: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 49: athrow
      // 4a: aload 8
      // 4c: checkcast com/l7tech/security/token/X509SigningSecurityToken
      // 4f: invokeinterface com/l7tech/security/token/X509SigningSecurityToken.isPossessionProved ()Z 1
      // 54: ifeq 6f
      // 57: goto 5e
      // 5a: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 5d: athrow
      // 5e: aload 3
      // 5f: aload 8
      // 61: checkcast com/l7tech/security/token/X509SigningSecurityToken
      // 64: invokevirtual java/util/ArrayList.add (Ljava/lang/Object;)Z
      // 67: pop
      // 68: goto 6f
      // 6b: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 6e: athrow
      // 6f: iinc 7 1
      // 72: goto 29
      // 75: iload 1
      // 76: bipush 1
      // 77: if_icmplt 89
      // 7a: iload 1
      // 7b: aload 3
      // 7c: invokevirtual java/util/ArrayList.size ()I
      // 7f: if_icmple 91
      // 82: goto 89
      // 85: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 88: athrow
      // 89: aconst_null
      // 8a: goto a0
      // 8d: invokestatic com/l7tech/server/policy/variable/MessageSelector.a (Ljava/lang/NumberFormatException;)Ljava/lang/NumberFormatException;
      // 90: athrow
      // 91: aload 3
      // 92: iload 1
      // 93: bipush 1
      // 94: isub
      // 95: invokevirtual java/util/ArrayList.get (I)Ljava/lang/Object;
      // 98: checkcast com/l7tech/security/token/X509SigningSecurityToken
      // 9b: invokeinterface com/l7tech/security/token/X509SigningSecurityToken.getCertificate ()Ljava/security/cert/X509Certificate; 1
      // a0: areturn
      // try (25 -> 30): 31 java/lang/NumberFormatException
      // try (28 -> 37): 38 java/lang/NumberFormatException
      // try (33 -> 45): 46 java/lang/NumberFormatException
      // try (50 -> 57): 58 java/lang/NumberFormatException
      // try (53 -> 62): 62 java/lang/NumberFormatException
   }

   static {
      String[] var5 = new String[123];
      int var3 = 0;
      String var2 = "8\u0016m%De\u0005#\u0001x{Yr\u001c\u0011-\u0000icSn\u001c%\u0016|\u007fSd\u001d?\u0010o\u000b\u0004!I[\u0016H\r-\u0011xy\u001e;\u0006n%Ei\u000f\"\u001cslUe\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u001d;\u0006n%Ei\u000f\"\u001cslUe\u001a8\u001c{bUa\u001c)\u00063hYu\u00068\u000b&\u0018n%^e\t(\u0010o%\u000b\u0004!I[\u0016H\r-\u0011xy\b9\u0006xyXa\u0005)\u000b/\u001as\u007fSn\u001c8\fmn\u0013&\u0018n%Wl\u0004$\u0010|oSr\u001e-\u0019hnE\u0010-\u0000icSn\u001c%\u0016|\u007fSd\f\"\u0006\u0017;\u0006n%Ue\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u0004;\u0006n%\u0012$\u0001i{\u0018c\u0007#\u001etn@a\u00049\u0010n%\u0004?\u001cgn\u0004$\u0001i{\u0004!\u0004i\u007f\u0017;\u0006n%Ue\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u0010$\u0001i{\u0018h\r-\u0011xyXa\u0005)\u0006\u00118\u0016m%De\u0005#\u0001xjRd\u001a)\u0006n\u0019!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001a)\u0006mdXs\r/\u001ayn\f?\u0006q%Fr\u00078\u001a~dZ\f\u00068N+fr\u0007<\u0010o\u007fO\u00038\u0016m\u000e8\u0016m%Zi\u001b8\u0010s{Yr\u001c\u0010-\u0000icSn\u001c%\u0016|\u007fSd\f\"\u0006\u00108\u0016m%Zo\u000b-\u0019|oRr\r?\u0006\u0004?\u001a|{\u0010$\u0001i{\u0018h\r-\u0011xyXa\u0005)\u0006\u000b/\u001as\u007fSn\u001c8\fmn\u0011&\u0018n%Fr\u0007<\u0010o\u007fOn\t!\u0010n\tb\u0018ro_f\u0001)\u0011\f/\u001apfWn\fb\u0001d{S\n\u00068N+~e\t(\u0010o\u0014 \u001cn\u007fSn\r>[~dXc\u001d>\u0007xeUy\r&\u0018n%Fr\u0007<\u0010o\u007fO.\b<\u0014nxAo\u001a(\u000e.\u0000{mSrF-\u0019qdAe\f\u0002\u0010[\f$\u0001i{\u0018c\u0007#\u001etnE\r!\u0014teFa\u001a8[nbLe\u0014$\u0001i{\u0018a\u0004 \u001dxjRe\u001a:\u0014q~Ss\u001e;\u0006n%Ei\u000f\"\u001cslUe\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u0016;\u0006n%Ue\u001a8\u001c{bUa\u001c)\u00063hYu\u00068\u0006.\u0000{mSr\u0014!\u0014teFa\u001a8[~dXt\r\"\u0001irFe\u0005<\u0014o\u007fE\u0019!\u0004i\u007f\u0018s\u001d.\u0006~y_b\rb\u0012ojXt\r(\u0004rx\b<\u0014nxAo\u001a(\u0019!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001a)\u0006mdXs\r/\u001ayn\u000f?\u001a|{\u0018e\u0006:\u0010qdFe\u0006?\u0013&\u0018n%Wl\u0004$\u0010|oSr\u001e-\u0019hnE\u0003;\u0006n\r8\u0016m%Zo\u000b-\u0019mdDt\u000b$\u0001i{\u0018s\u001c-\u0001hx\u000b&\u0018n%^e\t(\u0010o%\b \u001cn\u007fSn\r>\r&\u0018n%Fr\u0007<\u0010o\u007fO.\f/\u001apfWn\fb\u0001d{S\r*\u0001m%De\u0018 \finNt\u001b!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001b)\u0006nbYn\u0018>\u0010nnXt\r.\u0000{mSrF?\u0001|\u007fCs\r8\u0016m%Zo\u000b-\u0019udEt\u0012$\u0001i{\u0018h\r-\u0011xy@a\u00049\u0010n%\r$\u0001i{\u0018c\u0007#\u001etnE.\u0012$\u0001i{\u0018h\r-\u0011xy@a\u00049\u0010n%\u0011-\u0000icSn\u001c%\u0016|\u007fSd\u001d?\u0010o\r*\u0001m%De\u0018 \f~dRe\r$\u0001i{\u0018c\u0007#\u001etnE.\f8\u0016m%De\u0005#\u0001xbF\b!\u0014teFa\u001a8\u000f&\u0018n%^e\t(\u0010oeWm\r?\f$\u0001i{\u0018h\r-\u0011xy\u0018\tb\u0018ro_f\u0001)\u0011\u0003*\u0001m\f$\u0001i{\u0018v\r>\u0006tdX\u0014$\u0001i{\u0018a\u0004 \u001dxjRe\u001a:\u0014q~Ss\u000f&\u0018n%^e\t(\u0010oeWm\r?\u0003&\u0018n\n\u00068N+~e\t(\u0010o\f?\u001a|{\u0018v\r>\u0006tdX\r?\u0006q%Ee\u001b?\u001cre_d\u0012$\u0001i{\u0018c\u0007#\u001etn@a\u00049\u0010n%\u0010#\u0007tl_n\t \u0018|bXp\t>\u0001\r.\u0000{mSrF?\u0001|\u007fCs\u000b?\u0006q%]e\u0011?\u001cgn\u000b$\u0001i{\u0018s\u001c-\u0001hx\u000b8\u0016m%Zo\u000b-\u0019t{\u0004?\u001cgn\u000f?\u0006q%Ui\u0018$\u0010oxCi\u001c)\b!\u0014teFa\u001a8\f$\u0001i{\u0018c\u0007#\u001etnE\u0005<\u0014o\u007fE\b9\u0006xyXa\u0005)\u000e.\u0000{mSrF-\u0019qdAe\f\u0010$\u0001i{\u0018c\u0007#\u001etnXa\u0005)\u0006\u000f-\u0000icSn\u001c%\u0016|\u007fSd\f\"\r*\u0001m%De\u0018 \finNt\u0015&\u0018n%Wl\u0004<\u0007r{Sr\u001c5\u0003|gCe\u001b\u0003?\u0006q\f$\u0001i{\u0018h\r-\u0011xy\u0018\f?\u001a|{\u0018v\r>\u0006tdX\u0015&\u0018n%Wl\u0004<\u0007r{Sr\u001c5\u0003|gCe\u001b\u0012-\u0000icSn\u001c%\u0016|\u007fSd\u001d?\u0010ox\f\u00068N+fr\u0007<\u0010o\u007fO\u0014!\u0014teFa\u001a8[~dXt\r\"\u0001irFe\u000f?\u001a|{\u0018e\u0006:\u0010qdFe\u0006?\u0012/\u001apfWn\fb\u0005|yWm\r8\u0010o%\u0019!\u0004i\u007f\u0018s\u001d.\u0006~y_b\rb\u0012ojXt\r(\u0004rx\r*\u0001m%De\u0018 \f~dRe\u0011&\u0018n%Fr\u0007<\u0010o\u007fOn\t!\u0010n\f$\u0001i{\u0018v\r>\u0006tdX\u0010$\u0001i{\u0018c\u0007#\u001etnXa\u0005)\u0006\u0012/\u001apfWn\fb\u0005|yWm\r8\u0010o%\u000f-\u0000icSn\u001c%\u0016|\u007fSd\f\"\u000e8\u0016m%De\u0005#\u0001xcYs\u001c\r!\u0014teFa\u001a8[nbLe\u001b!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001b)\u0006nbYn\u0018>\u0010nnXt\u0004;\u0006n%\u0007/\u001apfWn\f\u0010#\u0007tl_n\t \u0018|bXp\t>\u0001";
      int var4 = "8\u0016m%De\u0005#\u0001x{Yr\u001c\u0011-\u0000icSn\u001c%\u0016|\u007fSd\u001d?\u0010o\u000b\u0004!I[\u0016H\r-\u0011xy\u001e;\u0006n%Ei\u000f\"\u001cslUe\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u001d;\u0006n%Ei\u000f\"\u001cslUe\u001a8\u001c{bUa\u001c)\u00063hYu\u00068\u000b&\u0018n%^e\t(\u0010o%\u000b\u0004!I[\u0016H\r-\u0011xy\b9\u0006xyXa\u0005)\u000b/\u001as\u007fSn\u001c8\fmn\u0013&\u0018n%Wl\u0004$\u0010|oSr\u001e-\u0019hnE\u0010-\u0000icSn\u001c%\u0016|\u007fSd\f\"\u0006\u0017;\u0006n%Ue\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u0004;\u0006n%\u0012$\u0001i{\u0018c\u0007#\u001etn@a\u00049\u0010n%\u0004?\u001cgn\u0004$\u0001i{\u0004!\u0004i\u007f\u0017;\u0006n%Ue\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u0010$\u0001i{\u0018h\r-\u0011xyXa\u0005)\u0006\u00118\u0016m%De\u0005#\u0001xjRd\u001a)\u0006n\u0019!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001a)\u0006mdXs\r/\u001ayn\f?\u0006q%Fr\u00078\u001a~dZ\f\u00068N+fr\u0007<\u0010o\u007fO\u00038\u0016m\u000e8\u0016m%Zi\u001b8\u0010s{Yr\u001c\u0010-\u0000icSn\u001c%\u0016|\u007fSd\f\"\u0006\u00108\u0016m%Zo\u000b-\u0019|oRr\r?\u0006\u0004?\u001a|{\u0010$\u0001i{\u0018h\r-\u0011xyXa\u0005)\u0006\u000b/\u001as\u007fSn\u001c8\fmn\u0011&\u0018n%Fr\u0007<\u0010o\u007fOn\t!\u0010n\tb\u0018ro_f\u0001)\u0011\f/\u001apfWn\fb\u0001d{S\n\u00068N+~e\t(\u0010o\u0014 \u001cn\u007fSn\r>[~dXc\u001d>\u0007xeUy\r&\u0018n%Fr\u0007<\u0010o\u007fO.\b<\u0014nxAo\u001a(\u000e.\u0000{mSrF-\u0019qdAe\f\u0002\u0010[\f$\u0001i{\u0018c\u0007#\u001etnE\r!\u0014teFa\u001a8[nbLe\u0014$\u0001i{\u0018a\u0004 \u001dxjRe\u001a:\u0014q~Ss\u001e;\u0006n%Ei\u000f\"\u001cslUe\u001a8\u001c{bUa\u001c)\u00063}Wl\u001d)[\u0016;\u0006n%Ue\u001a8\u001c{bUa\u001c)\u00063hYu\u00068\u0006.\u0000{mSr\u0014!\u0014teFa\u001a8[~dXt\r\"\u0001irFe\u0005<\u0014o\u007fE\u0019!\u0004i\u007f\u0018s\u001d.\u0006~y_b\rb\u0012ojXt\r(\u0004rx\b<\u0014nxAo\u001a(\u0019!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001a)\u0006mdXs\r/\u001ayn\u000f?\u001a|{\u0018e\u0006:\u0010qdFe\u0006?\u0013&\u0018n%Wl\u0004$\u0010|oSr\u001e-\u0019hnE\u0003;\u0006n\r8\u0016m%Zo\u000b-\u0019mdDt\u000b$\u0001i{\u0018s\u001c-\u0001hx\u000b&\u0018n%^e\t(\u0010o%\b \u001cn\u007fSn\r>\r&\u0018n%Fr\u0007<\u0010o\u007fO.\f/\u001apfWn\fb\u0001d{S\r*\u0001m%De\u0018 \finNt\u001b!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001b)\u0006nbYn\u0018>\u0010nnXt\r.\u0000{mSrF?\u0001|\u007fCs\r8\u0016m%Zo\u000b-\u0019udEt\u0012$\u0001i{\u0018h\r-\u0011xy@a\u00049\u0010n%\r$\u0001i{\u0018c\u0007#\u001etnE.\u0012$\u0001i{\u0018h\r-\u0011xy@a\u00049\u0010n%\u0011-\u0000icSn\u001c%\u0016|\u007fSd\u001d?\u0010o\r*\u0001m%De\u0018 \f~dRe\r$\u0001i{\u0018c\u0007#\u001etnE.\f8\u0016m%De\u0005#\u0001xbF\b!\u0014teFa\u001a8\u000f&\u0018n%^e\t(\u0010oeWm\r?\f$\u0001i{\u0018h\r-\u0011xy\u0018\tb\u0018ro_f\u0001)\u0011\u0003*\u0001m\f$\u0001i{\u0018v\r>\u0006tdX\u0014$\u0001i{\u0018a\u0004 \u001dxjRe\u001a:\u0014q~Ss\u000f&\u0018n%^e\t(\u0010oeWm\r?\u0003&\u0018n\n\u00068N+~e\t(\u0010o\f?\u001a|{\u0018v\r>\u0006tdX\r?\u0006q%Ee\u001b?\u001cre_d\u0012$\u0001i{\u0018c\u0007#\u001etn@a\u00049\u0010n%\u0010#\u0007tl_n\t \u0018|bXp\t>\u0001\r.\u0000{mSrF?\u0001|\u007fCs\u000b?\u0006q%]e\u0011?\u001cgn\u000b$\u0001i{\u0018s\u001c-\u0001hx\u000b8\u0016m%Zo\u000b-\u0019t{\u0004?\u001cgn\u000f?\u0006q%Ui\u0018$\u0010oxCi\u001c)\b!\u0014teFa\u001a8\f$\u0001i{\u0018c\u0007#\u001etnE\u0005<\u0014o\u007fE\b9\u0006xyXa\u0005)\u000e.\u0000{mSrF-\u0019qdAe\f\u0010$\u0001i{\u0018c\u0007#\u001etnXa\u0005)\u0006\u000f-\u0000icSn\u001c%\u0016|\u007fSd\f\"\r*\u0001m%De\u0018 \finNt\u0015&\u0018n%Wl\u0004<\u0007r{Sr\u001c5\u0003|gCe\u001b\u0003?\u0006q\f$\u0001i{\u0018h\r-\u0011xy\u0018\f?\u001a|{\u0018v\r>\u0006tdX\u0015&\u0018n%Wl\u0004<\u0007r{Sr\u001c5\u0003|gCe\u001b\u0012-\u0000icSn\u001c%\u0016|\u007fSd\u001d?\u0010ox\f\u00068N+fr\u0007<\u0010o\u007fO\u0014!\u0014teFa\u001a8[~dXt\r\"\u0001irFe\u000f?\u001a|{\u0018e\u0006:\u0010qdFe\u0006?\u0012/\u001apfWn\fb\u0005|yWm\r8\u0010o%\u0019!\u0004i\u007f\u0018s\u001d.\u0006~y_b\rb\u0012ojXt\r(\u0004rx\r*\u0001m%De\u0018 \f~dRe\u0011&\u0018n%Fr\u0007<\u0010o\u007fOn\t!\u0010n\f$\u0001i{\u0018v\r>\u0006tdX\u0010$\u0001i{\u0018c\u0007#\u001etnXa\u0005)\u0006\u0012/\u001apfWn\fb\u0005|yWm\r8\u0010o%\u000f-\u0000icSn\u001c%\u0016|\u007fSd\f\"\u000e8\u0016m%De\u0005#\u0001xcYs\u001c\r!\u0014teFa\u001a8[nbLe\u001b!\u0004i\u007f\u0018c\u0007\"\u001bxhB.\u001b)\u0006nbYn\u0018>\u0010nnXt\u0004;\u0006n%\u0007/\u001apfWn\f\u0010#\u0007tl_n\t \u0018|bXp\t>\u0001"
         .length();
      char var1 = 14;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     bb = var5;
                     String[] var10 = bb;
                     n = bb[40];
                     u = var10[64];
                     S = var10[114];
                     ac = var10[67];
                     W = var10[5];
                     z = var10[4];
                     ag = var10[108];
                     I = var10[53];
                     O = var10[48];
                     N = var10[21];
                     y = var10[17];
                     t = var10[95];
                     d = var10[18];
                     Y = var10[9];
                     B = var10[19];
                     R = var10[103];
                     e = var10[76];
                     M = var10[81];
                     ad = var10[59];
                     af = var10[117];
                     s = var10[39];
                     aa = var10[30];
                     ah = var10[34];
                     x = var10[43];
                     p = var10[37];
                     k = var10[88];
                     P = var10[7];
                     b = var10[100];
                     Z = var10[35];
                     A = var10[3];
                     c = var10[63];
                     i = var10[92];
                     MODIFIED_SUFFIX = var10[31];
                     o = var10[61];
                     g = var10[86];
                     Q = var10[1];
                     U = var10[50];
                     r = var10[107];
                     C = var10[69];
                     w = var10[12];
                     D = var10[115];
                     F = var10[26];
                     j = var10[120];
                     J = var10[24];
                     E = var10[0];
                     f = var10[75];
                     ab = var10[102];
                     V = var10[80];
                     l = var10[29];
                     G = var10[87];
                     ae = var10[49];
                     X = var10[77];
                     v = var10[82];
                     m = var10[105];
                     K = var10[89];
                     h = var10[70];
                     L = var10[85];
                     T = var10[25];
                     q = var10[58];
                     H = var10[62];
                     a = new HashMap<>();
                     ai = Collections.unmodifiableMap(
                        new HashMap<String, Unary<Object, TcpKnob>>() {
                           static final long serialVersionUID = -5648771712515017644L;
                           private static final String[] a;

                           {
                              String[] var1x = a;
                              this.put(var1x[8], Functions.propertyTransform(TcpKnob.class, var1x[4]));
                              this.put(var1x[6], Functions.propertyTransform(TcpKnob.class, var1x[11]));
                              this.put(var1x[15], Functions.propertyTransform(TcpKnob.class, var1x[14]));
                              this.put(var1x[16], Functions.propertyTransform(TcpKnob.class, var1x[2]));
                              this.put(var1x[10], Functions.propertyTransform(TcpKnob.class, var1x[3]));
                              this.put(var1x[12], Functions.propertyTransform(TcpKnob.class, var1x[0]));
                              this.put(var1x[17], Functions.propertyTransform(TcpKnob.class, var1x[1]));
                              this.put(var1x[13], Functions.propertyTransform(TcpKnob.class, var1x[7]));
                              this.put(var1x[9], Functions.propertyTransform(TcpKnob.class, var1x[5]));
                           }

                           static {
                              String[] var5 = new String[18];
                              int var3 = 0;
                              String var2 = "@5> 6]>H(82)\t@5> 6T5_.\n^?0..y\nC()\f@5> 6]>H(82)\r^?0..y\u001bH>/$)o\u0011@5> 6P3_.8/?n\nC()\fX9-o(y7C.8(*\t@5> 6L5^.\u0011X9-o(y7C.8 >x(I).\u000eX9-o6u)X?315n.\u0010X9-o6s9M6<%>n?_)\r^?0..y\u001bH>/$)o\u000bX9-o6s9M641\rX9-o6s9M6-.(h\n^?0..y\u0012C))\u000eX9-o(y7C.8)5o.";
                              int var4 = "@5> 6]>H(82)\t@5> 6T5_.\n^?0..y\nC()\f@5> 6]>H(82)\r^?0..y\u001bH>/$)o\u0011@5> 6P3_.8/?n\nC()\fX9-o(y7C.8(*\t@5> 6L5^.\u0011X9-o(y7C.8 >x(I).\u000eX9-o6u)X?315n.\u0010X9-o6s9M6<%>n?_)\r^?0..y\u001bH>/$)o\u000bX9-o6s9M641\rX9-o6s9M6-.(h\n^?0..y\u0012C))\u000eX9-o(y7C.8)5o."
                                 .length();
                              char var1 = '\f';
                              int var7 = -1;

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

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

                                          var2 = "_>*h/~0D)?62i)\r_>*h1t>J12).o";
                                          var4 = "_>*h/~0D)?62i)\r_>*h1t>J12).o".length();
                                          var1 = 14;
                                          var7 = -1;
                                    }

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

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

                              return var10000x;
                           }

                           private static String a(int var0, char[] var1x) {
                              int var10003 = var1x.length;
                              int var10002x = var0;
                              char[] var10001x = var1x;
                              int var10000x = var10003;

                              for (int var2x = 0; var10000x > var2x; var2x++) {
                                 var10001x[var2x] = (char)(var10001x[var2x] ^ var10002x ^ switch (var2x % 7) {
                                    case 0 -> 3;
                                    case 1 -> 117;
                                    case 2 -> 114;
                                    case 3 -> 110;
                                    case 4 -> 117;
                                    case 5 -> 51;
                                    default -> 117;
                                 });
                              }

                              return new String(var10001x).intern();
                           }
                        }
                     );
                     aj = Collections.unmodifiableMap(
                        new HashMap<String, String>() {
                           static final long serialVersionUID = -1660550116639231764L;
                           private static final String[] a;

                           {
                              String[] var1 = a;
                              this.put(var1[4], var1[2]);
                              this.put(var1[3], var1[0]);
                              this.put(var1[8], var1[5]);
                              this.put(var1[9], var1[7]);
                              this.put(var1[6], var1[1]);
                           }

                           static {
                              String[] var5 = new String[10];
                              int var3 = 0;
                              String var2 = "qH\u0002,m6_5Z\f?i.[o\u0007\u001b(n7[h]G&z;ah@\u0013(-xF\u0004csuJ~J\u0001cl'LmL\u001bcl1YXF\u0007#z!Jt[9\"p.}tG\n8m0[uJ\u0010$qH\u0002,m6_5Z\f?i.[o\u0007\u001b(n7[h]G.v2V~[6>j+J~\u000bhZ\u0005ct'Gh@\u0013(\u000fhZ\u0005c|+NsL\u001b>j+J~&qH\u0002,m6_5Z\f?i.[o\u0007\u001b(n7[h]G>l.ahL\u001a>v-PD@\r\u0014w@\u001a9z,[i\u0007\n\"q!Ki[\f#|;2t[\u000ec~2_xA\fck-SxH\u001dcj6Ww\u0007\u0007(klM~J\u001c?z\u001dNiF\u001d\"|-RD_\f?l+Qu";
                              int var4 = "qH\u0002,m6_5Z\f?i.[o\u0007\u001b(n7[h]G&z;ah@\u0013(-xF\u0004csuJ~J\u0001cl'LmL\u001bcl1YXF\u0007#z!Jt[9\"p.}tG\n8m0[uJ\u0010$qH\u0002,m6_5Z\f?i.[o\u0007\u001b(n7[h]G.v2V~[6>j+J~\u000bhZ\u0005ct'Gh@\u0013(\u000fhZ\u0005c|+NsL\u001b>j+J~&qH\u0002,m6_5Z\f?i.[o\u0007\u001b(n7[h]G>l.ahL\u001a>v-PD@\r\u0014w@\u001a9z,[i\u0007\n\"q!Ki[\f#|;2t[\u000ec~2_xA\fck-SxH\u001dcj6Ww\u0007\u0007(klM~J\u001c?z\u001dNiF\u001d\"|-RD_\f?l+Qu"
                                 .length();
                              char var1 = ' ';
                              int var7 = -1;

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

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

                                          var2 = "-\u001f@&)b\b-\u0005Cf3c\f-\u001f@&*u\u0014*\u0003Og6";
                                          var4 = "-\u001f@&)b\b-\u0005Cf3c\f-\u001f@&*u\u0014*\u0003Og6".length();
                                          var1 = '\r';
                                          var7 = -1;
                                    }

                                    var10000 = 112;
                                    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] ^ 11);
                              }

                              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 -> 46;
                                    case 1 -> 28;
                                    case 2 -> 92;
                                    case 3 -> 120;
                                    case 4 -> 42;
                                    case 5 -> 119;
                                    default -> 11;
                                 });
                              }

                              return new String(var10001).intern();
                           }
                        }
                     );
                     String[] var8 = bb;
                     ak = Pattern.compile(var8[38]);
                     al = new ez();
                     am = new e0();
                     an = new e1();
                     ao = new e2();
                     ap = new e3();
                     aq = new eh();
                     ar = new ei();
                     as = new ej();
                     at = new ek();
                     au = new el();
                     av = new em();
                     aw = new e4();
                     ax = new en();
                     aA = new eq();
                     aB = new er();
                     aC = new es();
                     aD = new et();
                     aE = new eu();
                     aF = new ev();
                     aG = new ew();
                     aH = new e_(var8[2]);
                     aI = new e_(var8[22]);
                     aJ = new e_(var8[79]);
                     aK = new e7(var8[6]);
                     aL = new e8(var8[104]);
                     aM = new e9(var8[33]);
                     aN = new fa(var8[100]);
                     aO = new fb(var8[63]);
                     aP = new fc(var8[35]);
                     aQ = new fd(var8[5]);
                     aR = new ff(true);
                     aS = new ff(false);
                     aT = new e5();
                     return;
                  }

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

                  var2 = "j\u001au-\u0012+\u0006oeUh\u001a#\u0010zyUb\u001b9\u0016i~";
                  var4 = "j\u001au-\u0012+\u0006oeUh\u001a#\u0010zyUb\u001b9\u0016i~".length();
                  var1 = 4;
                  var7 = -1;
            }

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

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

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

      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 -> 86;
            case 1 -> 111;
            case 2 -> 7;
            case 3 -> 17;
            case 4 -> 44;
            case 5 -> 26;
            default -> 114;
         });
      }

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

   public abstract static class AbstractMessageAttributeSelector implements MessageSelector.MessageAttributeSelector {
      protected ExpandVariables.Selector.Selection handleBadVariable(String var1, SyntaxErrorHandler var2, boolean var3) {
         String var4 = var2.handleBadVariable(var1);

         try {
            if (var3) {
               throw new IllegalArgumentException(var4);
            } else {
               return null;
            }
         } catch (IllegalArgumentException var5) {
            throw a(var5);
         }
      }

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

   enum BufferStatus {
      UNINITIALIZED,
      UNREAD,
      BUFFERED,
      GONE;

      private final String label;

      BufferStatus(String var3) {
         this.label = var3;
      }

      String getLabel() {
         return this.label;
      }

      // $VF: Failed to inline enum fields
      // 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!)
      static {
         String[] var0 = new String[8];
         int var4 = 0;
         String var3 = "$p^\u007f70H\"\r3kQw;6D'iQc7&\u0004\u0001Jv\\\u00063kJ|3&\u0004!jV|\r\u0013KqW\u001b\u0016d\u0007IqC\u0017\u0006";
         int var5 = "$p^\u007f70H\"\r3kQw;6D'iQc7&\u0004\u0001Jv\\\u00063kJ|3&\u0004!jV|\r\u0013KqW\u001b\u0016d\u0007IqC\u0017\u0006".length();
         char var2 = '\b';
         int var7 = -1;

         label25:
         while (true) {
            byte var10000 = 124;
            String var10001 = var3.substring(++var7, var7 + var2);
            byte var10002 = -1;

            while (true) {
               String var8 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var0[var4++] = var8;
                     if ((var7 += var2) >= var5) {
                        UNINITIALIZED = new MessageSelector.BufferStatus(var0[1]);
                        UNREAD = new MessageSelector.BufferStatus(var0[3]);
                        BUFFERED = new MessageSelector.BufferStatus(var0[0]);
                        GONE = new MessageSelector.BufferStatus(var0[4]);
                        return;
                     }

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

                     var3 = "R\n+\u001dRG\bE\u0011?\u001eVQ)C";
                     var5 = "R\n+\u001dRG\bE\u0011?\u001eVQ)C".length();
                     var2 = 6;
                     var7 = -1;
               }

               var10000 = 61;
               var10001 = var3.substring(++var7, var7 + var2);
               var10002 = 0;
            }
         }
      }

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

         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 -> 58;
               case 1 -> 121;
               case 2 -> 68;
               case 3 -> 101;
               case 4 -> 46;
               case 5 -> 62;
               default -> 81;
            });
         }

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

   public static class ChainedSelector implements MessageSelector.MessageAttributeSelector {
      private Collection<MessageSelector.MessageAttributeSelector> a;
      private static final String[] b;

      public ChainedSelector(@NotNull Collection<MessageSelector.MessageAttributeSelector> var1) {
         if (var1 == null) {
            a(0);
         }

         super();
         this.a = var1;
      }

      @Override
      public ExpandVariables.Selector.Selection select(Message var1, String var2, SyntaxErrorHandler var3, boolean var4) {
         for (MessageSelector.MessageAttributeSelector var6 : this.a) {
            if (var6 != null) {
               ExpandVariables.Selector.Selection var7 = var6.select(var1, var2, var3, var4);

               try {
                  if (var7 != null) {
                     return var7;
                  }
               } catch (IllegalArgumentException var8) {
                  throw a(var8);
               }
            }
         }

         return null;
      }

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

      static {
         String[] var5 = new String[4];
         int var3 = 0;
         String var2 = "\u0013Rpp~y\u0018\u0015^upa+\u001e\u0006Xopb!\u0000\u0019^dpd/\u001e\u0019\\\u007f3wa!\u0015Nn>u+?\u0015Qx<f!\u001eT~u>{ \t\u0014nx3w-\u0018\u001fO>1Oz*\u007f+\u0002\u0004\u001d{0`n,>Ri\u0011g\"\u0000PM|-s#\t\u0004Xo\u007f5k\u001fW\u001dr92k\u001f^\u0018n\u007f\u007f;\u001f\u0004\u001ds0fn\u000e\u0015\u001ds*~\"";
         int var4 = "\u0013Rpp~y\u0018\u0015^upa+\u001e\u0006Xopb!\u0000\u0019^dpd/\u001e\u0019\\\u007f3wa!\u0015Nn>u+?\u0015Qx<f!\u001eT~u>{ \t\u0014nx3w-\u0018\u001fO>1Oz*\u007f+\u0002\u0004\u001d{0`n,>Ri\u0011g\"\u0000PM|-s#\t\u0004Xo\u007f5k\u001fW\u001dr92k\u001f^\u0018n\u007f\u007f;\u001f\u0004\u001ds0fn\u000e\u0015\u001ds*~\""
            .length();
         char var1 = 'A';
         int var7 = -1;

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

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

                     var2 = "\nFo$k1\u0006\u000bP\u0006RJm(xn";
                     var4 = "\nFo$k1\u0006\u000bP\u0006RJm(xn".length();
                     var1 = '\t';
                     var7 = -1;
               }

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

         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 -> 105;
               case 1 -> 36;
               case 2 -> 4;
               case 3 -> 70;
               case 4 -> 11;
               case 5 -> 87;
               default -> 117;
            });
         }

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

   public abstract static class HeadersKnobSelector implements MessageSelector.MessageAttributeSelector {
      final String a;
      private static final String[] b;

      public HeadersKnobSelector(String var1) {
         this.a = var1;
      }

      @Override
      public ExpandVariables.Selector.Selection select(Message var1, String var2, SyntaxErrorHandler var3, boolean var4) {
         boolean var5 = false;
         String var6 = var2.substring(this.a.length());
         HeadersKnob var7 = (HeadersKnob)var1.getKnob(HeadersKnob.class);
         if (var7 != null) {
            var5 = true;
            ExpandVariables.Selector.Selection var8 = this.createSelection(var6, var7);

            try {
               if (null != var8) {
                  return var8;
               }
            } catch (IllegalArgumentException var11) {
               throw a(var11);
            }
         }

         String var10000;
         label35: {
            try {
               if (var5) {
                  var10000 = var6 + b[0];
                  break label35;
               }
            } catch (IllegalArgumentException var12) {
               throw a(var12);
            }

            var10000 = var2 + b[1] + var1.getClass().getName();
         }

         String var13 = var10000;
         String var9 = var3.handleBadVariable(var13);

         try {
            if (var4) {
               throw new IllegalArgumentException(var9);
            } else {
               return null;
            }
         } catch (IllegalArgumentException var10) {
            throw a(var10);
         }
      }

      protected abstract ExpandVariables.Selector.Selection createSelection(String var1, HeadersKnob var2);

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

      static {
         String[] var5 = new String[2];
         int var3 = 0;
         String var2 = "94-~2D{9+)lvDdi(1\u000495&?";
         int var4 = "94-~2D{9+)lvDdi(1\u000495&?".length();
         char var1 = 17;
         int var0 = -1;

         while (true) {
            String var10002 = a(104, a(var2.substring(++var0, var0 + var1)));
            byte var10001 = -1;
            var5[var3++] = var10002;
            if ((var0 += var1) >= var4) {
               b = var5;
               return;
            }

            var1 = var2.charAt(var0);
         }
      }

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

         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 -> 113;
               case 1 -> 52;
               case 2 -> 32;
               case 3 -> 119;
               case 4 -> 62;
               case 5 -> 73;
               default -> 97;
            });
         }

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

   public interface MessageAttributeSelector {
      ExpandVariables.Selector.Selection select(Message var1, String var2, SyntaxErrorHandler var3, boolean var4);
   }
}
