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

import com.l7tech.message.Message;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.xmlsec.RequireSaml;
import com.l7tech.policy.assertion.xmlsec.RequireWssSaml;
import com.l7tech.security.token.SamlSecurityToken;
import com.l7tech.security.xml.SecurityTokenResolver;
import com.l7tech.security.xml.processor.ProcessorResult;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AbstractMessageTargetableServerAssertion;
import com.l7tech.server.util.MessageIdManager;
import com.l7tech.util.Config;
import com.l7tech.util.Pair;
import com.l7tech.util.Triple;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.jetbrains.annotations.NotNull;

public abstract class ServerRequireSaml<AT extends RequireSaml> extends AbstractMessageTargetableServerAssertion<AT> {
   protected static final long CACHE_ID_EXTRA_TIME_MILLIS = 300000L;
   protected static final long DEFAULT_EXPIRY = 300000L;
   protected final SamlAssertionValidate assertionValidate;
   @Inject
   protected Config config;
   @Inject
   @Named("securityTokenResolver")
   protected SecurityTokenResolver securityTokenResolver;
   @Inject
   protected MessageIdManager messageIdManager;
   protected final String[] variablesUsed;
   private static final String[] d;

   public ServerRequireSaml(AT var1) {
      super((AT)var1);
      this.assertionValidate = new SamlAssertionValidate(var1);
      this.variablesUsed = var1.getVariablesUsed();
   }

   @NotNull
   protected abstract Triple<AssertionStatus, ProcessorResult, SamlSecurityToken> getSamlSecurityTokenAndContext(
      Message var1, String var2, AuthenticationContext var3
   ) throws IOException;

   @Override
   protected AssertionStatus doCheckRequest(PolicyEnforcementContext param1, Message param2, String param3, AuthenticationContext param4) throws IOException {
      // $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: aload 2
      // 002: aload 3
      // 003: aload 4
      // 005: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.getSamlSecurityTokenAndContext (Lcom/l7tech/message/Message;Ljava/lang/String;Lcom/l7tech/server/message/AuthenticationContext;)Lcom/l7tech/util/Triple;
      // 008: astore 5
      // 00a: aload 5
      // 00c: getfield com/l7tech/util/Triple.left Ljava/lang/Object;
      // 00f: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 012: if_acmpeq 04e
      // 015: aload 0
      // 016: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.isRequest ()Z
      // 019: ifeq 045
      // 01c: goto 023
      // 01f: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 022: athrow
      // 023: getstatic com/l7tech/policy/assertion/AssertionStatus.AUTH_REQUIRED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 026: aload 5
      // 028: getfield com/l7tech/util/Triple.left Ljava/lang/Object;
      // 02b: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 02e: ifeq 045
      // 031: goto 038
      // 034: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 037: athrow
      // 038: aload 1
      // 039: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setAuthenticationMissing ()V 1
      // 03e: goto 045
      // 041: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 044: athrow
      // 045: aload 5
      // 047: getfield com/l7tech/util/Triple.left Ljava/lang/Object;
      // 04a: checkcast com/l7tech/policy/assertion/AssertionStatus
      // 04d: areturn
      // 04e: aload 5
      // 050: getfield com/l7tech/util/Triple.middle Ljava/lang/Object;
      // 053: checkcast com/l7tech/security/xml/processor/ProcessorResult
      // 056: astore 6
      // 058: aload 5
      // 05a: getfield com/l7tech/util/Triple.right Ljava/lang/Object;
      // 05d: checkcast com/l7tech/security/token/SamlSecurityToken
      // 060: astore 7
      // 062: bipush 0
      // 063: istore 8
      // 065: aload 7
      // 067: ifnull 084
      // 06a: aload 7
      // 06c: invokeinterface com/l7tech/security/token/SamlSecurityToken.getVersionId ()I 1
      // 071: bipush 1
      // 072: if_icmpne 084
      // 075: goto 07c
      // 078: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 07b: athrow
      // 07c: bipush 1
      // 07d: goto 085
      // 080: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 083: athrow
      // 084: bipush 0
      // 085: istore 9
      // 087: aload 0
      // 088: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 08b: checkcast com/l7tech/policy/assertion/xmlsec/RequireSaml
      // 08e: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 091: ifnull 0b3
      // 094: aload 0
      // 095: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 098: checkcast com/l7tech/policy/assertion/xmlsec/RequireSaml
      // 09b: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 09e: invokevirtual java/lang/Integer.intValue ()I
      // 0a1: ifne 0b3
      // 0a4: goto 0ab
      // 0a7: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 0aa: athrow
      // 0ab: bipush 1
      // 0ac: goto 0b4
      // 0af: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 0b2: athrow
      // 0b3: bipush 0
      // 0b4: istore 10
      // 0b6: aload 0
      // 0b7: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0ba: checkcast com/l7tech/policy/assertion/xmlsec/RequireSaml
      // 0bd: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 0c0: ifnull 0db
      // 0c3: aload 0
      // 0c4: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0c7: checkcast com/l7tech/policy/assertion/xmlsec/RequireSaml
      // 0ca: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 0cd: invokevirtual java/lang/Integer.intValue ()I
      // 0d0: bipush 1
      // 0d1: if_icmpne 0e3
      // 0d4: goto 0db
      // 0d7: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 0da: athrow
      // 0db: bipush 1
      // 0dc: goto 0e4
      // 0df: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 0e2: athrow
      // 0e3: bipush 0
      // 0e4: istore 11
      // 0e6: aload 0
      // 0e7: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0ea: checkcast com/l7tech/policy/assertion/xmlsec/RequireSaml
      // 0ed: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 0f0: ifnull 113
      // 0f3: aload 0
      // 0f4: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0f7: checkcast com/l7tech/policy/assertion/xmlsec/RequireSaml
      // 0fa: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 0fd: invokevirtual java/lang/Integer.intValue ()I
      // 100: bipush 2
      // 101: if_icmpne 113
      // 104: goto 10b
      // 107: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 10a: athrow
      // 10b: bipush 1
      // 10c: goto 114
      // 10f: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 112: athrow
      // 113: bipush 0
      // 114: istore 12
      // 116: iload 9
      // 118: ifeq 139
      // 11b: iload 10
      // 11d: ifne 133
      // 120: goto 127
      // 123: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 126: athrow
      // 127: iload 11
      // 129: ifeq 139
      // 12c: goto 133
      // 12f: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 132: athrow
      // 133: bipush 1
      // 134: istore 8
      // 136: goto 159
      // 139: iload 9
      // 13b: ifne 159
      // 13e: iload 10
      // 140: ifne 156
      // 143: goto 14a
      // 146: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 149: athrow
      // 14a: iload 12
      // 14c: ifeq 159
      // 14f: goto 156
      // 152: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 155: athrow
      // 156: bipush 1
      // 157: istore 8
      // 159: aload 7
      // 15b: ifnull 16a
      // 15e: iload 8
      // 160: ifne 190
      // 163: goto 16a
      // 166: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 169: athrow
      // 16a: aload 0
      // 16b: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_AUTHN_STMT_NO_ACCEPTABLE_SAML_ASSERTION Lcom/l7tech/gateway/common/audit/Messages$M;
      // 16e: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 171: aload 0
      // 172: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.isRequest ()Z
      // 175: ifeq 18c
      // 178: goto 17f
      // 17b: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 17e: athrow
      // 17f: aload 1
      // 180: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setAuthenticationMissing ()V 1
      // 185: goto 18c
      // 188: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 18b: athrow
      // 18c: getstatic com/l7tech/policy/assertion/AssertionStatus.AUTH_REQUIRED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 18f: areturn
      // 190: new java/util/ArrayList
      // 193: dup
      // 194: invokespecial java/util/ArrayList.<init> ()V
      // 197: astore 13
      // 199: new java/util/ArrayList
      // 19c: dup
      // 19d: invokespecial java/util/ArrayList.<init> ()V
      // 1a0: astore 14
      // 1a2: aload 4
      // 1a4: invokevirtual com/l7tech/server/message/AuthenticationContext.getLastCredentials ()Lcom/l7tech/policy/assertion/credential/LoginCredentials;
      // 1a7: astore 15
      // 1a9: aload 2
      // 1aa: ldc com/l7tech/message/TcpKnob
      // 1ac: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 1af: ifnull 1d8
      // 1b2: aload 2
      // 1b3: invokevirtual com/l7tech/message/Message.getTcpKnob ()Lcom/l7tech/message/TcpKnob;
      // 1b6: invokeinterface com/l7tech/message/TcpKnob.getRemoteAddress ()Ljava/lang/String; 1
      // 1bb: ifnull 1d8
      // 1be: goto 1c5
      // 1c1: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 1c4: athrow
      // 1c5: aload 2
      // 1c6: invokevirtual com/l7tech/message/Message.getTcpKnob ()Lcom/l7tech/message/TcpKnob;
      // 1c9: invokeinterface com/l7tech/message/TcpKnob.getRemoteAddress ()Ljava/lang/String; 1
      // 1ce: invokestatic java/util/Collections.singleton (Ljava/lang/Object;)Ljava/util/Set;
      // 1d1: goto 1d9
      // 1d4: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 1d7: athrow
      // 1d8: aconst_null
      // 1d9: astore 16
      // 1db: aload 1
      // 1dc: aload 0
      // 1dd: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.variablesUsed [Ljava/lang/String;
      // 1e0: aload 0
      // 1e1: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 1e4: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getVariableMap ([Ljava/lang/String;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/util/Map; 3
      // 1e9: astore 17
      // 1eb: aload 0
      // 1ec: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertionValidate Lcom/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate;
      // 1ef: aload 15
      // 1f1: aload 6
      // 1f3: aload 13
      // 1f5: aload 14
      // 1f7: aload 16
      // 1f9: aload 17
      // 1fb: aload 0
      // 1fc: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 1ff: aload 0
      // 200: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 203: instanceof com/l7tech/policy/assertion/xmlsec/HasOptionalSamlSignature
      // 206: ifeq 21f
      // 209: aload 0
      // 20a: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 20d: checkcast com/l7tech/policy/assertion/xmlsec/HasOptionalSamlSignature
      // 210: invokeinterface com/l7tech/policy/assertion/xmlsec/HasOptionalSamlSignature.isRequireDigitalSignature ()Z 1
      // 215: ifeq 227
      // 218: goto 21f
      // 21b: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 21e: athrow
      // 21f: bipush 1
      // 220: goto 228
      // 223: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 226: athrow
      // 227: bipush 0
      // 228: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.validate (Lcom/l7tech/policy/assertion/credential/LoginCredentials;Lcom/l7tech/security/xml/processor/ProcessorResult;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;Z)V
      // 22b: aload 13
      // 22d: invokeinterface java/util/Collection.size ()I 1
      // 232: ifle 2a3
      // 235: new java/lang/StringBuilder
      // 238: dup
      // 239: invokespecial java/lang/StringBuilder.<init> ()V
      // 23c: astore 18
      // 23e: bipush 1
      // 23f: istore 19
      // 241: aload 13
      // 243: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 248: astore 20
      // 24a: aload 20
      // 24c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 251: ifeq 28c
      // 254: aload 20
      // 256: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 25b: astore 21
      // 25d: iload 19
      // 25f: ifne 274
      // 262: aload 18
      // 264: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.d [Ljava/lang/String;
      // 267: bipush 3
      // 268: aaload
      // 269: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 26c: pop
      // 26d: goto 274
      // 270: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 273: athrow
      // 274: aload 21
      // 276: checkcast com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 279: astore 22
      // 27b: aload 18
      // 27d: aload 22
      // 27f: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 282: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 285: pop
      // 286: bipush 0
      // 287: istore 19
      // 289: goto 24a
      // 28c: aload 0
      // 28d: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_STMT_VALIDATE_FAILED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 290: bipush 1
      // 291: anewarray 106
      // 294: dup
      // 295: bipush 0
      // 296: aload 18
      // 298: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 29b: aastore
      // 29c: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 29f: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 2a2: areturn
      // 2a3: aload 0
      // 2a4: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 2a7: checkcast com/l7tech/policy/assertion/xmlsec/RequireSaml
      // 2aa: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getMaxExpiry ()J
      // 2ad: lstore 18
      // 2af: lload 18
      // 2b1: lconst_0
      // 2b2: lcmp
      // 2b3: ifeq 37d
      // 2b6: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.UTC_TIME_ZONE Ljava/util/TimeZone;
      // 2b9: invokestatic java/util/Calendar.getInstance (Ljava/util/TimeZone;)Ljava/util/Calendar;
      // 2bc: astore 20
      // 2be: aload 7
      // 2c0: invokeinterface com/l7tech/security/token/SamlSecurityToken.getIssueInstant ()Ljava/util/Calendar; 1
      // 2c5: astore 21
      // 2c7: aload 21
      // 2c9: ifnonnull 2e7
      // 2cc: aload 0
      // 2cd: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_STMT_VALIDATE_FAILED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 2d0: bipush 1
      // 2d1: anewarray 106
      // 2d4: dup
      // 2d5: bipush 0
      // 2d6: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.d [Ljava/lang/String;
      // 2d9: bipush 4
      // 2da: aaload
      // 2db: aastore
      // 2dc: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 2df: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 2e2: areturn
      // 2e3: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 2e6: athrow
      // 2e7: aload 21
      // 2e9: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b (Ljava/util/Calendar;)Ljava/util/Calendar;
      // 2ec: astore 22
      // 2ee: aload 20
      // 2f0: aload 22
      // 2f2: invokevirtual java/util/Calendar.before (Ljava/lang/Object;)Z
      // 2f5: ifeq 313
      // 2f8: aload 0
      // 2f9: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_STMT_VALIDATE_FAILED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 2fc: bipush 1
      // 2fd: anewarray 106
      // 300: dup
      // 301: bipush 0
      // 302: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.d [Ljava/lang/String;
      // 305: bipush 2
      // 306: aaload
      // 307: aastore
      // 308: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 30b: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 30e: areturn
      // 30f: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 312: athrow
      // 313: aload 21
      // 315: astore 23
      // 317: lload 18
      // 319: getstatic com/l7tech/util/TimeUnit.MINUTES Lcom/l7tech/util/TimeUnit;
      // 31c: invokevirtual com/l7tech/util/TimeUnit.getMultiplier ()I
      // 31f: i2l
      // 320: lcmp
      // 321: ifle 353
      // 324: lload 18
      // 326: getstatic com/l7tech/util/TimeUnit.MINUTES Lcom/l7tech/util/TimeUnit;
      // 329: invokevirtual com/l7tech/util/TimeUnit.getMultiplier ()I
      // 32c: i2l
      // 32d: ldiv
      // 32e: l2i
      // 32f: istore 24
      // 331: aload 23
      // 333: bipush 12
      // 335: iload 24
      // 337: invokevirtual java/util/Calendar.add (II)V
      // 33a: lload 18
      // 33c: getstatic com/l7tech/util/TimeUnit.MINUTES Lcom/l7tech/util/TimeUnit;
      // 33f: invokevirtual com/l7tech/util/TimeUnit.getMultiplier ()I
      // 342: i2l
      // 343: lrem
      // 344: l2i
      // 345: istore 25
      // 347: aload 23
      // 349: bipush 14
      // 34b: iload 25
      // 34d: invokevirtual java/util/Calendar.add (II)V
      // 350: goto 35d
      // 353: aload 23
      // 355: bipush 14
      // 357: lload 18
      // 359: l2i
      // 35a: invokevirtual java/util/Calendar.add (II)V
      // 35d: aload 23
      // 35f: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/util/Calendar;)Ljava/util/Calendar;
      // 362: astore 24
      // 364: aload 20
      // 366: aload 24
      // 368: invokevirtual java/util/Calendar.after (Ljava/lang/Object;)Z
      // 36b: ifeq 37d
      // 36e: aload 0
      // 36f: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_TOKEN_EXPIRATION_WARNING Lcom/l7tech/gateway/common/audit/Messages$M;
      // 372: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 375: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 378: areturn
      // 379: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 37c: athrow
      // 37d: aload 7
      // 37f: invokeinterface com/l7tech/security/token/SamlSecurityToken.isOneTimeUse ()Z 1
      // 384: ifeq 45f
      // 387: aload 7
      // 389: invokeinterface com/l7tech/security/token/SamlSecurityToken.getExpires ()Ljava/util/Calendar; 1
      // 38e: ifnonnull 3a6
      // 391: goto 398
      // 394: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 397: athrow
      // 398: invokestatic java/lang/System.currentTimeMillis ()J
      // 39b: ldc2_w 300000
      // 39e: ladd
      // 39f: goto 3b0
      // 3a2: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 3a5: athrow
      // 3a6: aload 7
      // 3a8: invokeinterface com/l7tech/security/token/SamlSecurityToken.getExpires ()Ljava/util/Calendar; 1
      // 3ad: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // 3b0: lstore 20
      // 3b2: new com/l7tech/server/util/MessageId
      // 3b5: dup
      // 3b6: aload 0
      // 3b7: getstatic com/l7tech/security/saml/SamlConstants.NS_SAML_PREFIX Ljava/lang/String;
      // 3ba: aload 7
      // 3bc: invokeinterface com/l7tech/security/token/SamlSecurityToken.getUniqueId ()Ljava/lang/String; 1
      // 3c1: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001-\u0001" ]
      // 3c6: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Ljava/lang/String;)Ljava/lang/String;
      // 3c9: lload 20
      // 3cb: ldc2_w 300000
      // 3ce: ladd
      // 3cf: invokespecial com/l7tech/server/util/MessageId.<init> (Ljava/lang/String;J)V
      // 3d2: astore 22
      // 3d4: aload 0
      // 3d5: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.messageIdManager Lcom/l7tech/server/util/MessageIdManager;
      // 3d8: aload 22
      // 3da: invokeinterface com/l7tech/server/util/MessageIdManager.assertMessageIdIsUnique (Lcom/l7tech/server/util/MessageId;)V 2
      // 3df: goto 45f
      // 3e2: astore 23
      // 3e4: aload 0
      // 3e5: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_STMT_VALIDATE_FAILED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 3e8: bipush 1
      // 3e9: anewarray 106
      // 3ec: dup
      // 3ed: bipush 0
      // 3ee: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.d [Ljava/lang/String;
      // 3f1: astore 26
      // 3f3: aload 26
      // 3f5: bipush 0
      // 3f6: aaload
      // 3f7: aastore
      // 3f8: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 3fb: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 3fe: areturn
      // 3ff: astore 23
      // 401: aload 23
      // 403: invokevirtual com/l7tech/server/util/MessageIdManager$MessageIdCheckException.getCause ()Ljava/lang/Throwable;
      // 406: instanceof com/l7tech/server/extension/provider/sharedstate/SharedStateProviderLowMemoryException
      // 409: ifeq 441
      // 40c: aload 0
      // 40d: getfield com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logger Ljava/util/logging/Logger;
      // 410: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 413: aload 23
      // 415: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 418: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.d [Ljava/lang/String;
      // 41b: bipush 7
      // 41d: aaload
      // 41e: swap
      // 41f: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 424: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 427: aload 1
      // 428: getstatic com/l7tech/policy/assertion/xmlsec/RequireSaml.VARIABLE_REASON_CODE Ljava/lang/String;
      // 42b: getstatic com/l7tech/policy/assertion/AssertionStatus.INSUFFICIENT_STORAGE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 42e: invokevirtual com/l7tech/policy/assertion/AssertionStatus.getNumeric ()I
      // 431: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 434: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setVariable (Ljava/lang/String;Ljava/lang/Object;)V 3
      // 439: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 43c: areturn
      // 43d: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 440: athrow
      // 441: aload 0
      // 442: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_STMT_VALIDATE_FAILED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 445: bipush 1
      // 446: anewarray 106
      // 449: dup
      // 44a: bipush 0
      // 44b: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.d [Ljava/lang/String;
      // 44e: astore 26
      // 450: aload 26
      // 452: bipush 6
      // 454: aaload
      // 455: aastore
      // 456: aload 23
      // 458: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 45b: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 45e: areturn
      // 45f: aload 4
      // 461: aload 7
      // 463: ldc com/l7tech/policy/assertion/xmlsec/RequireWssSaml
      // 465: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.makeLoginCredentials (Lcom/l7tech/security/token/SecurityToken;Ljava/lang/Class;)Lcom/l7tech/policy/assertion/credential/LoginCredentials;
      // 468: invokevirtual com/l7tech/server/message/AuthenticationContext.addCredentials (Lcom/l7tech/policy/assertion/credential/LoginCredentials;)V
      // 46b: goto 49b
      // 46e: astore 20
      // 470: aload 20
      // 472: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 475: astore 21
      // 477: aload 21
      // 479: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.d [Ljava/lang/String;
      // 47c: bipush 5
      // 47d: aaload
      // 47e: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 481: ifeq 498
      // 484: aload 0
      // 485: getstatic com/l7tech/gateway/common/audit/AssertionMessages.SAML_NAME_IDENTIFIER_INVALID_DN Lcom/l7tech/gateway/common/audit/Messages$M;
      // 488: aload 20
      // 48a: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 48d: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;Ljava/lang/Throwable;)V
      // 490: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 493: areturn
      // 494: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 497: athrow
      // 498: aload 20
      // 49a: athrow
      // 49b: aload 14
      // 49d: invokeinterface java/util/Collection.isEmpty ()Z 1
      // 4a2: ifne 4b3
      // 4a5: aload 0
      // 4a6: aload 1
      // 4a7: aload 14
      // 4a9: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/message/PolicyEnforcementContext;Ljava/util/Collection;)V
      // 4ac: goto 4b3
      // 4af: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerRequireSaml.a (Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;)Lcom/l7tech/server/util/MessageIdManager$DuplicateMessageIdException;
      // 4b2: athrow
      // 4b3: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 4b6: areturn
      // try (397 -> 407): 407 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (394 -> 400): 401 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (383 -> 392): 392 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (325 -> 342): 342 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (305 -> 320): 320 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (256 -> 264): 265 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (224 -> 234): 234 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (210 -> 229): 230 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (187 -> 199): 199 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (183 -> 191): 192 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (156 -> 167): 168 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (151 -> 162): 163 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (149 -> 153): 154 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (137 -> 144): 145 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (135 -> 139): 140 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (122 -> 129): 130 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (120 -> 124): 125 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (104 -> 116): 116 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (99 -> 111): 112 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (83 -> 95): 95 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (78 -> 90): 91 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (63 -> 74): 74 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (58 -> 69): 70 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (45 -> 54): 54 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (43 -> 49): 50 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (16 -> 26): 27 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (10 -> 21): 22 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (6 -> 13): 14 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (426 -> 430): 431 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (426 -> 430): 447 com/l7tech/server/util/MessageIdManager$MessageIdCheckException
      // try (448 -> 471): 471 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (489 -> 494): 495 java/lang/IllegalArgumentException
      // try (499 -> 512): 512 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
      // try (516 -> 523): 524 com/l7tech/server/util/MessageIdManager$DuplicateMessageIdException
   }

   void a(PolicyEnforcementContext var1, Collection<Pair<String, String[]>> var2) {
      Map var3 = a(var2);
      a(var1, var3);
   }

   private static Map<String, List<String>> a(Collection<Pair<String, String[]>> var0) {
      LinkedHashMap var1 = new LinkedHashMap();

      for (Pair var3 : var0) {
         String var4 = d[1] + RequireWssSaml.toContextVariableName(((String)var3.left).toLowerCase());
         List var5 = (List)var1.get(var4);
         if (var5 == null) {
            var5 = new ArrayList();
         }

         var5.addAll(Arrays.asList((String[])var3.right));
         var1.put(var4, var5);
      }

      return var1;
   }

   private static void a(PolicyEnforcementContext var0, Map<String, List<String>> var1) {
      for (Entry var3 : var1.entrySet()) {
         String var4 = (String)var3.getKey();
         List var5 = (List)var3.getValue();
         var0.setVariable(var4, var5.toArray(new String[((List)var3.getValue()).size()]));
      }
   }

   private String a(String var1) {
      return var1.replace('/', '-').replace('+', '_');
   }

   private static MessageIdManager.DuplicateMessageIdException a(MessageIdManager.DuplicateMessageIdException var0) {
      return var0;
   }

   static {
      String[] var5 = new String[8];
      int var3 = 0;
      String var2 = "\u007f\b`w1<YB\u000b0z#6\u001c_\u0019yt>e\rE\fd;96YK\u0002b;\u001f+\u001cy\u0004}~\u00056\u001c\u0003\n^\f}w~$\rY\u001f>F~,]Wp\u0004\n^\bbo9*\u0017\r;qw9!\u0018Y\u0004\u007fup\u0000\u000b_\u0002b!p\u0011\u0011HMyh#0\u001c\r\u0004~h$$\u0017YMyhp+\u0016YMyup1\u0011HM`z#1W\u0002\u0001MD~,]Wp\u0004\n^\bbo9*\u0017\r;qw9!\u0018Y\u0004\u007fup\u0000\u000b_\u0002b!p\u0011\u0011HMyh#0\u001c\r\u0004~h$$\u0017YMyhp+\u0016YMck5&\u0010K\u0004u\u007f~\nd\u0003fz<,\u001d\r)^";
      int var4 = "\u007f\b`w1<YB\u000b0z#6\u001c_\u0019yt>e\rE\fd;96YK\u0002b;\u001f+\u001cy\u0004}~\u00056\u001c\u0003\n^\f}w~$\rY\u001f>F~,]Wp\u0004\n^\bbo9*\u0017\r;qw9!\u0018Y\u0004\u007fup\u0000\u000b_\u0002b!p\u0011\u0011HMyh#0\u001c\r\u0004~h$$\u0017YMyhp+\u0016YMyup1\u0011HM`z#1W\u0002\u0001MD~,]Wp\u0004\n^\bbo9*\u0017\r;qw9!\u0018Y\u0004\u007fup\u0000\u000b_\u0002b!p\u0011\u0011HMyh#0\u001c\r\u0004~h$$\u0017YMyhp+\u0016YMck5&\u0010K\u0004u\u007f~\nd\u0003fz<,\u001d\r)^"
         .length();
      char var1 = '+';
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, b(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 = ")^#5c$[\u0004I21xj_LJ>(1v]\u001c@0#1k^LM\")tvL\u0005C?zelY\u0018\f8)1bW\u001e\f\u001e4tPQ\u0001I\u0004)t\"?D0(t`\u0018\u001fX0.t$H\u001eC'3uaJL@>-1i]\u0001C##+$";
                  var4 = ")^#5c$[\u0004I21xj_LJ>(1v]\u001c@0#1k^LM\")tvL\u0005C?zelY\u0018\f8)1bW\u001e\f\u001e4tPQ\u0001I\u0004)t\"?D0(t`\u0018\u001fX0.t$H\u001eC'3uaJL@>-1i]\u0001C##+$"
                     .length();
                  var1 = '=';
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String c(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 90;
            case 1 -> 26;
            case 2 -> 103;
            case 3 -> 108;
            case 4 -> 39;
            case 5 -> 50;
            default -> 14;
         });
      }

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