package com.l7tech.server.policy;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.common.LicenseException;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.identity.User;
import com.l7tech.message.Message;
import com.l7tech.policy.PolicyPathBuilderFactory;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.SslAssertion;
import com.l7tech.policy.assertion.composite.AllAssertion;
import com.l7tech.policy.assertion.composite.OneOrMoreAssertion;
import com.l7tech.policy.assertion.credential.http.HttpBasic;
import com.l7tech.policy.assertion.credential.http.HttpDigest;
import com.l7tech.policy.assertion.credential.wss.WssBasic;
import com.l7tech.policy.assertion.xmlsec.RequestWssKerberos;
import com.l7tech.policy.assertion.xmlsec.RequireWssSaml;
import com.l7tech.policy.assertion.xmlsec.RequireWssSignedElement;
import com.l7tech.policy.assertion.xmlsec.RequireWssTimestamp;
import com.l7tech.policy.assertion.xmlsec.RequireWssX509Cert;
import com.l7tech.policy.assertion.xmlsec.SamlAuthenticationStatement;
import com.l7tech.policy.assertion.xmlsec.SecureConversation;
import com.l7tech.security.saml.SamlConstants;
import com.l7tech.security.xml.SecurityTokenResolver;
import com.l7tech.security.xml.decorator.DecorationRequirements;
import com.l7tech.security.xml.decorator.DecoratorException;
import com.l7tech.security.xml.decorator.WssDecoratorImpl;
import com.l7tech.security.xml.processor.SecurityContextFinder;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.ServerAssertion;
import com.l7tech.server.policy.filter.FilterManager;
import com.l7tech.server.policy.filter.FilteringException;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.DomUtils;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.MissingRequiredElementException;
import com.l7tech.util.SoapConstants;
import com.l7tech.xml.SoapFaultDetail;
import com.l7tech.xml.soap.SoapFaultUtils;
import com.l7tech.xml.soap.SoapUtil;
import com.l7tech.xml.soap.SoapVersion;
import com.l7tech.xml.xpath.XpathExpression;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.SignatureException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.context.support.ApplicationObjectSupport;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public class PolicyService extends ApplicationObjectSupport {
   private static final Logger a;
   private static final boolean b;
   private static final boolean c;
   private static final boolean d;
   private static final String e;
   private final List<Assertion> f;
   private final List<Assertion> g;
   private final Config h;
   private final DefaultKey i;
   private final ServerPolicyFactory j;
   private final FilterManager k;
   private final SecurityTokenResolver l;
   private final PolicyPathBuilderFactory m;
   private final SecurityContextFinder n;
   private static final Assertion[] o;
   private static final Assertion[] p;
   private static final String[] q;

   public PolicyService(
      Config var1,
      DefaultKey var2,
      ServerPolicyFactory var3,
      FilterManager var4,
      SecurityTokenResolver var5,
      PolicyPathBuilderFactory var6,
      SecurityContextFinder var7
   ) {
      if (var1 == null) {
         String[] var10 = q;
         throw new IllegalArgumentException(var10[30]);
      }

      try {
         if (var2 == null) {
            throw new IllegalArgumentException(q[15]);
         }
      } catch (IllegalArgumentException var12) {
         throw a(var12);
      }

      try {
         if (var3 == null) {
            throw new IllegalArgumentException(q[4]);
         }
      } catch (IllegalArgumentException var15) {
         throw a(var15);
      }

      try {
         if (var4 == null) {
            throw new IllegalArgumentException(q[42]);
         }
      } catch (IllegalArgumentException var11) {
         throw a(var11);
      }

      try {
         if (var6 == null) {
            throw new IllegalArgumentException(q[48]);
         }
      } catch (IllegalArgumentException var14) {
         throw a(var14);
      }

      this.h = var1;
      this.i = var2;
      this.j = var3;
      this.k = var4;
      this.l = var5;
      this.m = var6;
      this.n = var7;
      this.f = this.a(o);
      boolean var8 = var1.getBooleanProperty(q[18], false);
      ArrayList var9 = new ArrayList<>(Arrays.asList(p));

      try {
         if (var8) {
            var9.add(0, new HttpDigest());
         }
      } catch (IllegalArgumentException var13) {
         throw a(var13);
      }

      this.g = this.a(var9.toArray(new Assertion[var9.size()]));
   }

   private List<Assertion> a(Assertion[] var1) {
      ArrayList var2 = new ArrayList();

      for (Assertion var6 : var1) {
         if (var6 instanceof RequireWssSaml var7) {
            var7.setCheckAssertionValidity(false);
            var7.setNameFormats(SamlConstants.ALL_NAMEIDENTIFIERS);
            SamlAuthenticationStatement var8 = new SamlAuthenticationStatement();
            var8.setAuthenticationMethods(SamlConstants.ALL_AUTHENTICATIONS);
            var7.setAuthenticationStatement(var8);
            var7.setNoSubjectConfirmation(true);
         }

         var2.add(var6);
      }

      return Collections.unmodifiableList(var2);
   }

   public Document respondToPolicyDownloadRequest(String param1, String param2, User param3, PolicyService.PolicyGetter param4, boolean param5) throws FilteringException, IOException, SAXException, PolicyAssertionException {
      // $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 com/l7tech/policy/wsp/WspWriter
      // 03: dup
      // 04: invokespecial com/l7tech/policy/wsp/WspWriter.<init> ()V
      // 07: astore 6
      // 09: aload 6
      // 0b: aload 2
      // 0c: invokevirtual com/l7tech/policy/wsp/WspWriter.setTargetVersion (Ljava/lang/String;)V
      // 0f: aload 4
      // 11: aload 1
      // 12: invokeinterface com/l7tech/server/policy/PolicyService$PolicyGetter.getPolicy (Ljava/lang/String;)Lcom/l7tech/server/policy/PolicyService$ServiceInfo; 2
      // 17: astore 7
      // 19: aload 7
      // 1b: ifnull 2c
      // 1e: aload 7
      // 20: invokeinterface com/l7tech/server/policy/PolicyService$ServiceInfo.getPolicy ()Lcom/l7tech/policy/assertion/Assertion; 1
      // 25: goto 2d
      // 28: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2b: athrow
      // 2c: aconst_null
      // 2d: astore 8
      // 2f: aload 8
      // 31: ifnonnull 4d
      // 34: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 37: aload 1
      // 38: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 3b: bipush 47
      // 3d: aaload
      // 3e: swap
      // 3f: 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" ]
      // 44: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 47: aconst_null
      // 48: areturn
      // 49: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4c: athrow
      // 4d: iload 5
      // 4f: ifeq 66
      // 52: aload 6
      // 54: aload 8
      // 56: invokevirtual com/l7tech/policy/wsp/WspWriter.setPolicy (Lcom/l7tech/policy/assertion/Assertion;)V
      // 59: aload 6
      // 5b: invokevirtual com/l7tech/policy/wsp/WspWriter.getPolicyXmlAsString ()Ljava/lang/String;
      // 5e: invokestatic com/l7tech/common/io/XmlUtil.stringToDocument (Ljava/lang/String;)Lorg/w3c/dom/Document;
      // 61: areturn
      // 62: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 65: athrow
      // 66: aload 0
      // 67: aload 8
      // 69: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/policy/assertion/Assertion;)Z
      // 6c: istore 9
      // 6e: goto 7d
      // 71: astore 10
      // 73: new java/lang/RuntimeException
      // 76: dup
      // 77: aload 10
      // 79: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/Throwable;)V
      // 7c: athrow
      // 7d: aload 3
      // 7e: ifnonnull 93
      // 81: iload 9
      // 83: ifne 93
      // 86: goto 8d
      // 89: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8c: athrow
      // 8d: aconst_null
      // 8e: areturn
      // 8f: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 92: athrow
      // 93: aload 0
      // 94: getfield com/l7tech/server/policy/PolicyService.k Lcom/l7tech/server/policy/filter/FilterManager;
      // 97: aload 3
      // 98: aload 8
      // 9a: invokevirtual com/l7tech/server/policy/filter/FilterManager.applyAllFilters (Lcom/l7tech/identity/User;Lcom/l7tech/policy/assertion/Assertion;)Lcom/l7tech/policy/assertion/Assertion;
      // 9d: astore 10
      // 9f: aload 10
      // a1: ifnonnull c5
      // a4: iload 9
      // a6: ifeq c3
      // a9: goto b0
      // ac: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // af: athrow
      // b0: aload 6
      // b2: aconst_null
      // b3: invokevirtual com/l7tech/policy/wsp/WspWriter.setPolicy (Lcom/l7tech/policy/assertion/Assertion;)V
      // b6: aload 6
      // b8: invokevirtual com/l7tech/policy/wsp/WspWriter.getPolicyXmlAsString ()Ljava/lang/String;
      // bb: invokestatic com/l7tech/common/io/XmlUtil.stringToDocument (Ljava/lang/String;)Lorg/w3c/dom/Document;
      // be: areturn
      // bf: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c2: athrow
      // c3: aconst_null
      // c4: areturn
      // c5: aload 6
      // c7: aload 10
      // c9: invokevirtual com/l7tech/policy/wsp/WspWriter.setPolicy (Lcom/l7tech/policy/assertion/Assertion;)V
      // cc: aload 6
      // ce: invokevirtual com/l7tech/policy/wsp/WspWriter.getPolicyXmlAsString ()Ljava/lang/String;
      // d1: invokestatic com/l7tech/common/io/XmlUtil.stringToDocument (Ljava/lang/String;)Lorg/w3c/dom/Document;
      // d4: areturn
      // try (34 -> 43): 43 java/lang/InterruptedException
      // try (20 -> 32): 32 java/lang/InterruptedException
      // try (11 -> 16): 16 java/lang/InterruptedException
      // try (45 -> 49): 50 java/lang/InterruptedException
      // try (56 -> 60): 61 java/lang/InterruptedException
      // try (58 -> 65): 65 java/lang/InterruptedException
      // try (73 -> 77): 78 java/lang/InterruptedException
      // try (75 -> 87): 87 java/lang/InterruptedException
   }

   public void respondToPolicyDownloadRequest(PolicyEnforcementContext param1, boolean param2, PolicyService.PolicyGetter param3) throws IOException, SAXException, PolicyAssertionException {
      // $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 1
      // 001: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getRequest ()Lcom/l7tech/message/Message; 1
      // 006: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 009: astore 4
      // 00b: aload 1
      // 00c: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getRequest ()Lcom/l7tech/message/Message; 1
      // 011: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 014: astore 5
      // 016: aload 1
      // 017: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getResponse ()Lcom/l7tech/message/Message; 1
      // 01c: astore 6
      // 01e: aload 1
      // 01f: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getService ()Lcom/l7tech/gateway/common/service/PublishedService; 1
      // 024: ifnull 047
      // 027: aload 1
      // 028: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getService ()Lcom/l7tech/gateway/common/service/PublishedService; 1
      // 02d: invokevirtual com/l7tech/gateway/common/service/PublishedService.getSoapVersion ()Lcom/l7tech/xml/soap/SoapVersion;
      // 030: getstatic com/l7tech/xml/soap/SoapVersion.SOAP_1_2 Lcom/l7tech/xml/soap/SoapVersion;
      // 033: if_acmpne 047
      // 036: goto 03d
      // 039: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03c: athrow
      // 03d: getstatic com/l7tech/xml/soap/SoapVersion.SOAP_1_2 Lcom/l7tech/xml/soap/SoapVersion;
      // 040: goto 04a
      // 043: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 046: athrow
      // 047: getstatic com/l7tech/xml/soap/SoapVersion.SOAP_1_1 Lcom/l7tech/xml/soap/SoapVersion;
      // 04a: astore 7
      // 04c: aload 4
      // 04e: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 053: astore 8
      // 055: new com/l7tech/security/xml/processor/WssProcessorImpl
      // 058: dup
      // 059: invokespecial com/l7tech/security/xml/processor/WssProcessorImpl.<init> ()V
      // 05c: astore 10
      // 05e: aload 10
      // 060: aload 1
      // 061: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getRequest ()Lcom/l7tech/message/Message; 1
      // 066: aload 0
      // 067: getfield com/l7tech/server/policy/PolicyService.n Lcom/l7tech/security/xml/processor/SecurityContextFinder;
      // 06a: aload 0
      // 06b: getfield com/l7tech/server/policy/PolicyService.l Lcom/l7tech/security/xml/SecurityTokenResolver;
      // 06e: invokeinterface com/l7tech/security/xml/processor/WssProcessor.undecorateMessage (Lcom/l7tech/message/Message;Lcom/l7tech/security/xml/processor/SecurityContextFinder;Lcom/l7tech/security/xml/SecurityTokenResolver;)Lcom/l7tech/security/xml/processor/ProcessorResult; 4
      // 073: astore 9
      // 075: aload 5
      // 077: aload 9
      // 079: invokeinterface com/l7tech/message/SecurityKnob.setProcessorResult (Lcom/l7tech/security/xml/processor/ProcessorResult;)V 2
      // 07e: goto 09a
      // 081: astore 10
      // 083: aload 6
      // 085: aload 0
      // 086: aload 7
      // 088: aload 10
      // 08a: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 08d: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 090: aload 1
      // 091: getstatic com/l7tech/policy/assertion/AssertionStatus.BAD_REQUEST Lcom/l7tech/policy/assertion/AssertionStatus;
      // 094: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 099: return
      // 09a: aload 0
      // 09b: aload 8
      // 09d: invokevirtual com/l7tech/server/policy/PolicyService.a (Lorg/w3c/dom/Document;)Ljava/lang/String;
      // 0a0: astore 10
      // 0a2: aload 0
      // 0a3: aload 8
      // 0a5: invokevirtual com/l7tech/server/policy/PolicyService.b (Lorg/w3c/dom/Document;)Ljava/lang/String;
      // 0a8: astore 11
      // 0aa: aload 8
      // 0ac: invokestatic com/l7tech/xml/soap/SoapUtil.getL7aMessageId (Lorg/w3c/dom/Document;)Ljava/lang/String;
      // 0af: astore 12
      // 0b1: goto 0cd
      // 0b4: astore 13
      // 0b6: aload 6
      // 0b8: aload 0
      // 0b9: aload 7
      // 0bb: aload 13
      // 0bd: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 0c0: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 0c3: aload 1
      // 0c4: getstatic com/l7tech/policy/assertion/AssertionStatus.BAD_REQUEST Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0c7: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 0cc: return
      // 0cd: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 0d0: aload 11
      // 0d2: aload 10
      // 0d4: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 0d7: astore 20
      // 0d9: aload 20
      // 0db: bipush 26
      // 0dd: aaload
      // 0de: dup_x2
      // 0df: pop
      // 0e0: aload 20
      // 0e2: bipush 35
      // 0e4: aaload
      // 0e5: swap
      // 0e6: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 0eb: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 0ee: aload 3
      // 0ef: aload 11
      // 0f1: invokeinterface com/l7tech/server/policy/PolicyService$PolicyGetter.getPolicy (Ljava/lang/String;)Lcom/l7tech/server/policy/PolicyService$ServiceInfo; 2
      // 0f6: astore 13
      // 0f8: aload 13
      // 0fa: invokeinterface com/l7tech/server/policy/PolicyService$ServiceInfo.getPolicy ()Lcom/l7tech/policy/assertion/Assertion; 1
      // 0ff: astore 14
      // 101: aload 14
      // 103: ifnonnull 167
      // 106: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 109: aload 11
      // 10b: aload 20
      // 10d: bipush 9
      // 10f: aaload
      // 110: swap
      // 111: 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" ]
      // 116: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 119: aload 7
      // 11b: getstatic com/l7tech/xml/soap/SoapUtil.FC_SERVER Ljava/lang/String;
      // 11e: aload 11
      // 120: aload 20
      // 122: bipush 13
      // 124: aaload
      // 125: swap
      // 126: aload 20
      // 128: bipush 33
      // 12a: aaload
      // 12b: 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" ]
      // 130: aconst_null
      // 131: ldc ""
      // 133: invokestatic com/l7tech/xml/soap/SoapFaultUtils.generateSoapFaultDocument (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/Element;Ljava/lang/String;)Lorg/w3c/dom/Document;
      // 136: astore 15
      // 138: goto 156
      // 13b: astore 16
      // 13d: aload 0
      // 13e: aload 7
      // 140: aload 16
      // 142: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 145: astore 15
      // 147: goto 156
      // 14a: astore 16
      // 14c: aload 0
      // 14d: aload 7
      // 14f: aload 16
      // 151: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 154: astore 15
      // 156: aload 6
      // 158: aload 15
      // 15a: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 15d: aload 1
      // 15e: getstatic com/l7tech/policy/assertion/AssertionStatus.BAD_REQUEST Lcom/l7tech/policy/assertion/AssertionStatus;
      // 161: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 166: return
      // 167: bipush 0
      // 168: istore 15
      // 16a: aload 0
      // 16b: aload 14
      // 16d: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/policy/assertion/Assertion;)Z
      // 170: ifeq 179
      // 173: bipush 1
      // 174: istore 15
      // 176: goto 189
      // 179: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 17c: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 17f: astore 20
      // 181: aload 20
      // 183: bipush 8
      // 185: aaload
      // 186: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 189: goto 198
      // 18c: astore 16
      // 18e: new java/lang/RuntimeException
      // 191: dup
      // 192: aload 16
      // 194: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/Throwable;)V
      // 197: athrow
      // 198: aconst_null
      // 199: astore 16
      // 19b: iload 15
      // 19d: ifne 25e
      // 1a0: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 1a3: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 1a6: astore 20
      // 1a8: aload 20
      // 1aa: bipush 34
      // 1ac: aaload
      // 1ad: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 1b0: aconst_null
      // 1b1: astore 17
      // 1b3: aload 0
      // 1b4: getfield com/l7tech/server/policy/PolicyService.h Lcom/l7tech/util/Config;
      // 1b7: aload 20
      // 1b9: bipush 6
      // 1bb: aaload
      // 1bc: bipush 1
      // 1bd: invokeinterface com/l7tech/util/Config.getBooleanProperty (Ljava/lang/String;Z)Z 3
      // 1c2: istore 18
      // 1c4: aload 0
      // 1c5: aload 14
      // 1c7: iload 18
      // 1c9: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/policy/assertion/Assertion;Z)Lcom/l7tech/server/policy/assertion/ServerAssertion;
      // 1cc: astore 17
      // 1ce: aload 17
      // 1d0: aload 1
      // 1d1: invokeinterface com/l7tech/server/policy/assertion/ServerAssertion.checkRequest (Lcom/l7tech/server/message/PolicyEnforcementContext;)Lcom/l7tech/policy/assertion/AssertionStatus; 2
      // 1d6: astore 16
      // 1d8: aload 1
      // 1d9: aload 16
      // 1db: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 1e0: aload 17
      // 1e2: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/io/Closeable;)V
      // 1e5: goto 25e
      // 1e8: astore 18
      // 1ea: aload 6
      // 1ec: aload 0
      // 1ed: aload 7
      // 1ef: aload 18
      // 1f1: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 1f4: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 1f7: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 1fa: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 1fd: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 200: astore 20
      // 202: aload 20
      // 204: bipush 38
      // 206: aaload
      // 207: aload 18
      // 209: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 20c: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 20f: aload 1
      // 210: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 213: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 218: aload 17
      // 21a: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/io/Closeable;)V
      // 21d: return
      // 21e: astore 18
      // 220: aload 6
      // 222: aload 0
      // 223: aload 7
      // 225: aload 18
      // 227: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 22a: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 22d: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 230: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 233: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 236: astore 20
      // 238: aload 20
      // 23a: bipush 29
      // 23c: aaload
      // 23d: aload 18
      // 23f: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 242: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 245: aload 1
      // 246: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 249: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 24e: aload 17
      // 250: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/io/Closeable;)V
      // 253: return
      // 254: astore 19
      // 256: aload 17
      // 258: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/io/Closeable;)V
      // 25b: aload 19
      // 25d: athrow
      // 25e: aconst_null
      // 25f: astore 17
      // 261: iload 15
      // 263: ifne 275
      // 266: aload 16
      // 268: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 26b: if_acmpne 345
      // 26e: goto 275
      // 271: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 274: athrow
      // 275: aload 1
      // 276: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getDefaultAuthenticationContext ()Lcom/l7tech/server/message/AuthenticationContext; 1
      // 27b: invokevirtual com/l7tech/server/message/AuthenticationContext.getLastAuthenticatedUser ()Lcom/l7tech/identity/User;
      // 27e: astore 18
      // 280: aload 0
      // 281: aload 11
      // 283: aload 10
      // 285: aload 18
      // 287: aload 3
      // 288: bipush 0
      // 289: invokevirtual com/l7tech/server/policy/PolicyService.respondToPolicyDownloadRequest (Ljava/lang/String;Ljava/lang/String;Lcom/l7tech/identity/User;Lcom/l7tech/server/policy/PolicyService$PolicyGetter;Z)Lorg/w3c/dom/Document;
      // 28c: astore 17
      // 28e: goto 345
      // 291: astore 18
      // 293: aload 6
      // 295: aload 0
      // 296: aload 7
      // 298: aload 18
      // 29a: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 29d: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 2a0: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 2a3: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 2a6: aload 18
      // 2a8: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 2ab: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 2ae: astore 20
      // 2b0: aload 20
      // 2b2: bipush 24
      // 2b4: aaload
      // 2b5: swap
      // 2b6: 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" ]
      // 2bb: aload 18
      // 2bd: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2c0: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 2c3: aload 1
      // 2c4: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 2c7: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 2cc: return
      // 2cd: astore 18
      // 2cf: aload 6
      // 2d1: aload 0
      // 2d2: aload 7
      // 2d4: aload 18
      // 2d6: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 2d9: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 2dc: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 2df: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 2e2: aload 18
      // 2e4: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 2e7: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 2ea: astore 20
      // 2ec: aload 20
      // 2ee: bipush 27
      // 2f0: aaload
      // 2f1: swap
      // 2f2: 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" ]
      // 2f7: aload 18
      // 2f9: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2fc: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 2ff: aload 1
      // 300: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 303: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 308: return
      // 309: astore 18
      // 30b: aload 6
      // 30d: aload 0
      // 30e: aload 7
      // 310: aload 18
      // 312: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 315: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 318: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 31b: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 31e: aload 18
      // 320: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 323: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 326: astore 20
      // 328: aload 20
      // 32a: bipush 27
      // 32c: aaload
      // 32d: swap
      // 32e: 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" ]
      // 333: aload 18
      // 335: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 338: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 33b: aload 1
      // 33c: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 33f: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 344: return
      // 345: aload 17
      // 347: ifnonnull 3a4
      // 34a: new com/l7tech/xml/SoapFaultLevel
      // 34d: dup
      // 34e: invokespecial com/l7tech/xml/SoapFaultLevel.<init> ()V
      // 351: astore 18
      // 353: aload 18
      // 355: bipush 1
      // 356: invokevirtual com/l7tech/xml/SoapFaultLevel.setLevel (I)V
      // 359: aload 7
      // 35b: getstatic com/l7tech/xml/soap/SoapVersion.SOAP_1_2 Lcom/l7tech/xml/soap/SoapVersion;
      // 35e: if_acmpne 373
      // 361: aload 18
      // 363: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 366: bipush 12
      // 368: aaload
      // 369: invokevirtual com/l7tech/xml/SoapFaultLevel.setFaultTemplate (Ljava/lang/String;)V
      // 36c: goto 382
      // 36f: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 372: athrow
      // 373: aload 18
      // 375: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 378: astore 20
      // 37a: aload 20
      // 37c: bipush 45
      // 37e: aaload
      // 37f: invokevirtual com/l7tech/xml/SoapFaultLevel.setFaultTemplate (Ljava/lang/String;)V
      // 382: aload 1
      // 383: aload 18
      // 385: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setFaultlevel (Lcom/l7tech/xml/SoapFaultLevel;)V 2
      // 38a: aload 1
      // 38b: getstatic com/l7tech/policy/assertion/AssertionStatus.AUTH_FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 38e: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 393: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 396: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 399: astore 20
      // 39b: aload 20
      // 39d: bipush 36
      // 39f: aaload
      // 3a0: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 3a3: return
      // 3a4: aload 11
      // 3a6: aload 13
      // 3a8: invokeinterface com/l7tech/server/policy/PolicyService$ServiceInfo.getVersion ()Ljava/lang/String; 1
      // 3ad: 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" ]
      // 3b2: astore 18
      // 3b4: aload 6
      // 3b6: aload 0
      // 3b7: aload 17
      // 3b9: aload 18
      // 3bb: aload 12
      // 3bd: iload 2
      // 3be: invokevirtual com/l7tech/server/policy/PolicyService.a (Lorg/w3c/dom/Document;Ljava/lang/String;Ljava/lang/String;Z)Lorg/w3c/dom/Document;
      // 3c1: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 3c4: aload 1
      // 3c5: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 3c8: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 3cd: goto 445
      // 3d0: astore 18
      // 3d2: aload 6
      // 3d4: aload 0
      // 3d5: aload 7
      // 3d7: aload 18
      // 3d9: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 3dc: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 3df: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 3e2: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 3e5: aload 18
      // 3e7: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 3ea: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 3ed: astore 20
      // 3ef: aload 20
      // 3f1: bipush 27
      // 3f3: aaload
      // 3f4: swap
      // 3f5: 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" ]
      // 3fa: aload 18
      // 3fc: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3ff: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 402: aload 1
      // 403: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 406: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 40b: goto 445
      // 40e: astore 18
      // 410: aload 6
      // 412: aload 0
      // 413: aload 7
      // 415: aload 18
      // 417: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/xml/soap/SoapVersion;Ljava/lang/Exception;)Lorg/w3c/dom/Document;
      // 41a: invokevirtual com/l7tech/message/Message.initialize (Lorg/w3c/dom/Document;)V
      // 41d: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 420: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 423: aload 18
      // 425: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 428: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 42b: bipush 27
      // 42d: aaload
      // 42e: swap
      // 42f: 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" ]
      // 434: aload 18
      // 436: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 439: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 43c: aload 1
      // 43d: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 440: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setPolicyResult (Lcom/l7tech/policy/assertion/AssertionStatus;)V 2
      // 445: return
      // try (14 -> 24): 24 java/lang/Exception
      // try (11 -> 19): 20 java/lang/Exception
      // try (31 -> 47): 48 java/lang/Exception
      // try (59 -> 70): 71 com/l7tech/util/InvalidDocumentFormatException
      // try (115 -> 130): 131 java/io/IOException
      // try (115 -> 130): 138 org/xml/sax/SAXException
      // try (153 -> 167): 168 java/lang/InterruptedException
      // try (187 -> 207): 210 java/io/IOException
      // try (187 -> 207): 233 com/l7tech/policy/assertion/PolicyAssertionException
      // try (187 -> 207): 256 null
      // try (210 -> 230): 256 null
      // try (233 -> 253): 256 null
      // try (256 -> 257): 256 null
      // try (263 -> 268): 269 java/lang/Exception
      // try (271 -> 283): 284 com/l7tech/server/policy/filter/FilteringException
      // try (271 -> 283): 309 java/io/IOException
      // try (271 -> 283): 334 org/xml/sax/SAXException
      // try (365 -> 377): 377 java/lang/Exception
      // try (400 -> 416): 417 java/security/GeneralSecurityException
      // try (400 -> 416): 442 com/l7tech/security/xml/decorator/DecoratorException
   }

   private Document a(Document var1, String var2, String var3, boolean var4) throws GeneralSecurityException, DecoratorException {
      try {
         String var11 = SoapConstants.WSX_NAMESPACE;
         String var12 = SoapConstants.L7_MESSAGEID_NAMESPACE;
         String var13 = SoapConstants.L7_POLICYVERSION_ELEMENT;
         String[] var14 = q;
         Document var5 = XmlUtil.stringToDocument(var14[41] + var13 + var14[5] + var12 + var14[46] + var11 + var14[28]);
         Element var6 = SoapUtil.getHeaderElement(var5);
         Element var7 = DomUtils.findFirstChildElement(var6);
         var7.appendChild(DomUtils.createTextNode(var5, var2));
         Element var8 = SoapUtil.getBodyElement(var5);
         Element var9 = DomUtils.findFirstChildElement(var8);
         var9.appendChild(var5.importNode(var1.getDocumentElement(), true));
         Element var10 = null;
         if (var3 != null) {
            var10 = SoapUtil.setL7aRelatesTo(var5, var3);
         }

         try {
            if (var4) {
               this.a(var5, var7, var10, this.i.getServerSslInfo());
               return var5;
            }
         } catch (SAXException var15) {
            throw a(var15);
         }

         SoapUtil.addTimestamp(var6, SoapConstants.WSU_NAMESPACE, null, 0L, 0);
         return var5;
      } catch (SAXException var16) {
         throw new RuntimeException(var16);
      } catch (InvalidDocumentFormatException var17) {
         throw new RuntimeException(var17);
      } catch (IOException var18) {
         throw new SignatureException(q[0] + ExceptionUtils.getMessage(var18), var18);
      }
   }

   private void a(Document var1, Element var2, Element var3, SsgKeyEntry var4) throws GeneralSecurityException, DecoratorException {
      WssDecoratorImpl var5 = new WssDecoratorImpl();
      DecorationRequirements var6 = new DecorationRequirements();
      var6.setSenderMessageSigningCertificate(var4.getCertificate());
      var6.setSenderMessageSigningPrivateKey(var4.getPrivate());
      var6.setSignTimestamp(true);

      try {
         var6.getElementsToSign().add(SoapUtil.getBodyElement(var1));
         if (var2 != null) {
            var6.getElementsToSign().add(var2);
         }

         try {
            if (var3 != null) {
               var6.getElementsToSign().add(var3);
            }
         } catch (InvalidDocumentFormatException var8) {
            throw a(var8);
         }

         var5.decorateMessage(new Message(var1), var6);
      } catch (InvalidDocumentFormatException var9) {
         throw new RuntimeException(var9);
      } catch (SAXException var10) {
         throw new RuntimeException(var10);
      } catch (IOException var11) {
         throw new RuntimeException(var11);
      }
   }

   private String a(Document var1) throws InvalidDocumentFormatException {
      Element var3 = SoapUtil.getHeaderElement(var1);

      try {
         if (var3 == null) {
            throw new MissingRequiredElementException(q[3]);
         }
      } catch (InvalidDocumentFormatException var7) {
         throw a(var7);
      }

      Element var4 = DomUtils.findOnlyOneChildElementByName(var3, SoapConstants.L7_MESSAGEID_NAMESPACE, SoapConstants.L7_CLIENTVERSION_ELEMENT);
      String var2;
      if (var4 == null) {
         String[] var5 = q;
         var2 = var5[31];
      } else {
         var2 = DomUtils.getTextValue(var4).trim();
      }

      try {
         if (var2.length() < 1) {
            throw new InvalidDocumentFormatException(SoapConstants.L7_CLIENTVERSION_ELEMENT + q[40]);
         } else {
            return var2;
         }
      } catch (InvalidDocumentFormatException var6) {
         throw a(var6);
      }
   }

   private String b(Document param1) throws InvalidDocumentFormatException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: invokestatic com/l7tech/xml/soap/SoapUtil.getHeaderElement (Lorg/w3c/dom/Document;)Lorg/w3c/dom/Element;
      // 04: astore 2
      // 05: aload 2
      // 06: ifnonnull 1b
      // 09: new com/l7tech/util/MissingRequiredElementException
      // 0c: dup
      // 0d: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 10: bipush 32
      // 12: aaload
      // 13: invokespecial com/l7tech/util/MissingRequiredElementException.<init> (Ljava/lang/String;)V
      // 16: athrow
      // 17: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: aload 2
      // 1c: getstatic com/l7tech/util/SoapConstants.L7_MESSAGEID_NAMESPACE Ljava/lang/String;
      // 1f: getstatic com/l7tech/util/SoapConstants.L7_SERVICEID_ELEMENT Ljava/lang/String;
      // 22: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 25: astore 3
      // 26: aload 3
      // 27: ifnonnull 52
      // 2a: new com/l7tech/util/MissingRequiredElementException
      // 2d: dup
      // 2e: getstatic com/l7tech/util/SoapConstants.L7_MESSAGEID_NAMESPACE Ljava/lang/String;
      // 31: getstatic com/l7tech/util/SoapConstants.L7_SERVICEID_ELEMENT Ljava/lang/String;
      // 34: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 37: bipush 10
      // 39: aaload
      // 3a: dup_x2
      // 3b: pop
      // 3c: ldc "}"
      // 3e: swap
      // 3f: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 42: bipush 25
      // 44: aaload
      // 45: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 4a: invokespecial com/l7tech/util/MissingRequiredElementException.<init> (Ljava/lang/String;)V
      // 4d: athrow
      // 4e: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 51: athrow
      // 52: aload 3
      // 53: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;)Ljava/lang/String;
      // 56: astore 4
      // 58: aload 4
      // 5a: ifnull 6d
      // 5d: aload 4
      // 5f: invokevirtual java/lang/String.length ()I
      // 62: bipush 1
      // 63: if_icmpge 87
      // 66: goto 6d
      // 69: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6c: athrow
      // 6d: new com/l7tech/util/InvalidDocumentFormatException
      // 70: dup
      // 71: getstatic com/l7tech/util/SoapConstants.L7_SERVICEID_ELEMENT Ljava/lang/String;
      // 74: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 77: bipush 37
      // 79: aaload
      // 7a: 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" ]
      // 7f: invokespecial com/l7tech/util/InvalidDocumentFormatException.<init> (Ljava/lang/String;)V
      // 82: athrow
      // 83: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 86: athrow
      // 87: aload 1
      // 88: invokestatic com/l7tech/xml/soap/SoapUtil.getBodyElement (Lorg/w3c/dom/Document;)Lorg/w3c/dom/Element;
      // 8b: astore 5
      // 8d: aload 5
      // 8f: ifnonnull a4
      // 92: new com/l7tech/util/MissingRequiredElementException
      // 95: dup
      // 96: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 99: bipush 43
      // 9b: aaload
      // 9c: invokespecial com/l7tech/util/MissingRequiredElementException.<init> (Ljava/lang/String;)V
      // 9f: athrow
      // a0: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a3: athrow
      // a4: aload 5
      // a6: getstatic com/l7tech/util/SoapConstants.WSX_NAMESPACE Ljava/lang/String;
      // a9: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // ac: astore 7
      // ae: aload 7
      // b0: bipush 49
      // b2: aaload
      // b3: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // b6: astore 6
      // b8: aload 6
      // ba: ifnonnull ce
      // bd: new com/l7tech/util/MissingRequiredElementException
      // c0: dup
      // c1: aload 7
      // c3: bipush 17
      // c5: aaload
      // c6: invokespecial com/l7tech/util/MissingRequiredElementException.<init> (Ljava/lang/String;)V
      // c9: athrow
      // ca: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // cd: athrow
      // ce: aload 4
      // d0: areturn
      // try (3 -> 12): 12 com/l7tech/util/InvalidDocumentFormatException
      // try (19 -> 38): 38 com/l7tech/util/InvalidDocumentFormatException
      // try (43 -> 49): 50 com/l7tech/util/InvalidDocumentFormatException
      // try (45 -> 61): 61 com/l7tech/util/InvalidDocumentFormatException
      // try (66 -> 75): 75 com/l7tech/util/InvalidDocumentFormatException
      // try (86 -> 95): 95 com/l7tech/util/InvalidDocumentFormatException
   }

   private Document a(SoapVersion var1, Exception var2) {
      a.log(Level.FINE, q[22] + ExceptionUtils.getMessage(var2), ExceptionUtils.getDebugException(var2));

      try {
         Document var3;
         if (var2 instanceof SoapFaultDetail) {
            var3 = SoapFaultUtils.generateSoapFaultDocument(var1, (SoapFaultDetail)var2, SoapUtil.FC_SERVER);
         } else {
            var3 = SoapFaultUtils.generateSoapFaultDocument(var1, SoapUtil.FC_SERVER, var2.getMessage(), null, var2.getClass().getName());
         }

         return var3;
      } catch (IOException var4) {
         throw new RuntimeException(var4);
      } catch (SAXException var5) {
         throw new RuntimeException(var5);
      }
   }

   ServerAssertion a(Assertion var1, boolean var2) throws ServerPolicyException {
      AllAssertion var3 = new AllAssertion();

      try {
         var3.addChild(new OneOrMoreAssertion(this.f));
         if (var2) {
            var3.addChild(RequireWssTimestamp.newInstance());
         }
      } catch (LicenseException var12) {
         throw a(var12);
      }

      label74:
      if (!b) {
         OneOrMoreAssertion var4 = new OneOrMoreAssertion();

         try {
            var4.addChild(new RequireWssSignedElement(new XpathExpression(q[11], "s", q[19])));
            var4.addChild(new RequireWssSignedElement(new XpathExpression(q[44], "s", q[39])));
            var3.addChild(var4);
            if (c) {
               var3.addChild(new RequireWssSignedElement(new XpathExpression(q[2] + SoapUtil.L7_MESSAGEID_NAMESPACE + q[50])));
               break label74;
            }
         } catch (LicenseException var16) {
            throw a(var16);
         }

         String[] var10 = q;
         var3.addChild(
            new RequireWssSignedElement(
               new XpathExpression(var10[23] + SoapUtil.L7_MESSAGEID_NAMESPACE + var10[51] + SoapUtil.L7_SERVICEID_ELEMENT + var10[16])
            )
         );
      }

      AllAssertion var17 = new AllAssertion();

      try {
         if (!b) {
            var17.addChild(new SslAssertion());
         }
      } catch (LicenseException var15) {
         throw a(var15);
      }

      var17.addChild(new OneOrMoreAssertion(this.g));
      AllAssertion var5;
      if (d) {
         var5 = new AllAssertion();
         var5.addChild(new SslAssertion());
         var5.addChild(new OneOrMoreAssertion(Arrays.asList(new RequestWssKerberos())));
      } else {
         var5 = null;
      }

      OneOrMoreAssertion var6 = new OneOrMoreAssertion();

      try {
         var6.addChild(var3);
         var6.addChild(var17);
         if (var5 != null) {
            var6.addChild(var5);
         }
      } catch (LicenseException var14) {
         throw a(var14);
      }

      AllAssertion var7 = new AllAssertion();
      var7.addChild(var6);
      ArrayList var8 = new ArrayList();

      try {
         this.a(var1, var8);
         if (var8.size() > 0) {
            var7.addChild(new OneOrMoreAssertion(var8));
         }
      } catch (LicenseException var13) {
         throw a(var13);
      }

      try {
         Assertion.filterOutDisabledAssertions(var7);
         return this.j.compilePolicy(var7, false);
      } catch (LicenseException var11) {
         throw new RuntimeException(var11);
      }
   }

   private void a(Assertion param1, List<Assertion> 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: aload 1
      // 01: invokevirtual com/l7tech/policy/assertion/Assertion.isEnabled ()Z
      // 04: ifne 0c
      // 07: return
      // 08: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b: athrow
      // 0c: aload 1
      // 0d: instanceof com/l7tech/policy/assertion/identity/IdentityAssertion
      // 10: ifeq 30
      // 13: aload 1
      // 14: invokestatic com/l7tech/policy/assertion/Assertion.isRequest (Lcom/l7tech/policy/assertion/Assertion;)Z
      // 17: ifeq 30
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: aload 2
      // 22: aload 1
      // 23: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 28: pop
      // 29: goto 30
      // 2c: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: aload 1
      // 31: instanceof com/l7tech/policy/assertion/composite/CompositeAssertion
      // 34: ifne 3c
      // 37: return
      // 38: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3b: athrow
      // 3c: aload 1
      // 3d: checkcast com/l7tech/policy/assertion/composite/CompositeAssertion
      // 40: astore 3
      // 41: aload 3
      // 42: invokevirtual com/l7tech/policy/assertion/composite/CompositeAssertion.getChildren ()Ljava/util/List;
      // 45: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 4a: astore 4
      // 4c: aload 4
      // 4e: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 53: ifeq 70
      // 56: aload 4
      // 58: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 5d: astore 5
      // 5f: aload 5
      // 61: checkcast com/l7tech/policy/assertion/Assertion
      // 64: astore 6
      // 66: aload 0
      // 67: aload 6
      // 69: aload 2
      // 6a: invokevirtual com/l7tech/server/policy/PolicyService.a (Lcom/l7tech/policy/assertion/Assertion;Ljava/util/List;)V
      // 6d: goto 4c
      // 70: return
      // try (0 -> 4): 4 java/lang/IllegalArgumentException
      // try (6 -> 12): 13 java/lang/IllegalArgumentException
      // try (9 -> 19): 20 java/lang/IllegalArgumentException
      // try (22 -> 26): 26 java/lang/IllegalArgumentException
   }

   private boolean a(Assertion param1) throws InterruptedException, PolicyAssertionException {
      // $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 com/l7tech/server/policy/filter/HideDisabledAssertions
      // 03: dup
      // 04: invokespecial com/l7tech/server/policy/filter/HideDisabledAssertions.<init> ()V
      // 07: aconst_null
      // 08: aload 1
      // 09: invokevirtual com/l7tech/server/policy/filter/HideDisabledAssertions.filter (Lcom/l7tech/identity/User;Lcom/l7tech/policy/assertion/Assertion;)Lcom/l7tech/policy/assertion/Assertion;
      // 0c: astore 2
      // 0d: aload 2
      // 0e: ifnonnull 41
      // 11: aload 1
      // 12: instanceof com/l7tech/policy/assertion/composite/CompositeAssertion
      // 15: ifeq 3f
      // 18: goto 1f
      // 1b: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1e: athrow
      // 1f: aload 1
      // 20: checkcast com/l7tech/policy/assertion/composite/CompositeAssertion
      // 23: astore 3
      // 24: aload 3
      // 25: invokevirtual com/l7tech/policy/assertion/composite/CompositeAssertion.isEmpty ()Z
      // 28: ifeq 3f
      // 2b: aload 3
      // 2c: invokevirtual com/l7tech/policy/assertion/composite/CompositeAssertion.permitsEmpty ()Z
      // 2f: ifeq 3f
      // 32: goto 39
      // 35: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 38: athrow
      // 39: bipush 1
      // 3a: ireturn
      // 3b: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3e: athrow
      // 3f: bipush 0
      // 40: ireturn
      // 41: aload 0
      // 42: getfield com/l7tech/server/policy/PolicyService.m Lcom/l7tech/policy/PolicyPathBuilderFactory;
      // 45: invokevirtual com/l7tech/policy/PolicyPathBuilderFactory.makePathBuilder ()Lcom/l7tech/policy/PolicyPathBuilder;
      // 48: aload 2
      // 49: invokevirtual com/l7tech/policy/PolicyPathBuilder.generate (Lcom/l7tech/policy/assertion/Assertion;)Lcom/l7tech/policy/PolicyPathResult;
      // 4c: astore 3
      // 4d: goto 63
      // 50: astore 4
      // 52: getstatic com/l7tech/server/policy/PolicyService.a Ljava/util/logging/Logger;
      // 55: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 58: getstatic com/l7tech/server/policy/PolicyService.q [Ljava/lang/String;
      // 5b: bipush 7
      // 5d: aaload
      // 5e: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 61: bipush 0
      // 62: ireturn
      // 63: aload 3
      // 64: invokeinterface com/l7tech/policy/PolicyPathResult.paths ()Ljava/util/Set; 1
      // 69: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 6e: astore 4
      // 70: aload 4
      // 72: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 77: ifeq d8
      // 7a: aload 4
      // 7c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 81: checkcast com/l7tech/policy/AssertionPath
      // 84: astore 5
      // 86: aload 5
      // 88: invokevirtual com/l7tech/policy/AssertionPath.getPath ()[Lcom/l7tech/policy/assertion/Assertion;
      // 8b: astore 6
      // 8d: bipush 0
      // 8e: istore 7
      // 90: aload 6
      // 92: astore 8
      // 94: aload 8
      // 96: arraylength
      // 97: istore 9
      // 99: bipush 0
      // 9a: istore 10
      // 9c: iload 10
      // 9e: iload 9
      // a0: if_icmpge ca
      // a3: aload 8
      // a5: iload 10
      // a7: aaload
      // a8: astore 11
      // aa: aload 11
      // ac: instanceof com/l7tech/policy/assertion/identity/IdentityAssertion
      // af: ifeq c4
      // b2: aload 11
      // b4: invokestatic com/l7tech/policy/assertion/Assertion.isRequest (Lcom/l7tech/policy/assertion/Assertion;)Z
      // b7: ifeq c4
      // ba: goto c1
      // bd: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c0: athrow
      // c1: bipush 1
      // c2: istore 7
      // c4: iinc 10 1
      // c7: goto 9c
      // ca: iload 7
      // cc: ifne d5
      // cf: bipush 1
      // d0: ireturn
      // d1: invokestatic com/l7tech/server/policy/PolicyService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // d4: athrow
      // d5: goto 70
      // d8: bipush 0
      // d9: ireturn
      // try (21 -> 29): 29 com/l7tech/policy/PolicyTooComplexException
      // try (18 -> 24): 25 com/l7tech/policy/PolicyTooComplexException
      // try (7 -> 12): 13 com/l7tech/policy/PolicyTooComplexException
      // try (33 -> 39): 40 com/l7tech/policy/PolicyTooComplexException
      // try (79 -> 85): 86 com/l7tech/policy/PolicyTooComplexException
      // try (92 -> 96): 96 com/l7tech/policy/PolicyTooComplexException
   }

   static {
      String[] var5 = new String[52];
      int var3 = 0;
      String var2 = "gnb/sQeFo#>vS+\u0012pl!vW<\b :Qoncs\u00031WckclQ7Deqco[)[czco[)[cz\u001ezF3[cf\bqU'^eO(xU&KKf?}Q7]sH\u001d*X!pW$^-m,rQm\u001b=$\bqB ^os(8ij\u0018[o\"|U)\u001fnb z\u001cl\u000f'K(~P @'^b5o+Smf>oU&W-v?v\u001cl\u000f'(|o#\u001ePu\u0015\u0012Hf,{Q7\u0012wb>?R*GngmvZeFhfmmQ4Gep91\u001aboo$|Meta`9pF<\u0012ipmmQ4Giq({\f\u0012xn!qG\u007f~7bp=\u001dAeq;vW \u001cvb!vP$FeT>l`,_ep9~Y5A^boo$|MeFolm|[(Blf5?@*\u0012am,sM?W .`?U6Aun$qSe[t#.pZ1Sim>?Z*\u0012pb9wGeSlo\"h]+U v#~A1Zem9vW$Fegm~W&Wsp$fhfmo[)[czm{[ A m\"k\u0014$^ll:?U+]nz pA6\u001c#Qam#p@eTim)?@$@gf9?D*^i`4?R7]m#${\u000ee\u0004|o#6\u0012\u001ds9\bqB ^os(0G\u007fpog4ȱ\u000e?{ s\u00143Wrp$pZx\u00101-}=\u0014 \\cl)vZ\"\u000f\"V\u0019Y\u0019}\u0010?=G#G*Spf#i\u000e\u0000\\vf!pD \u0012xn!qG\u007fAob=zZ3\u000f\"k9kD\u007f\u001d/t:h\u001a2\u0001.l?x\u001bw\u000200b/\u0001jAob=2Q+Deo\"oQg\u0012 #m?\u0014e\u0012 #m?\u0014e\u0012 #m?L(^npws\u0003x\u0010hw9o\u000ej\u001dwt:1X$KeqzkQ&Z.`\"r\u001b2A/s\"s]&K/e,jX1\u0010>\tm?\u0014e\u000esl,oQ+D:A\"{M{8 #m?\u0014e\u0012 ?>pU5WnuwYU0^t=G?\u0014e\u0012 #m?\u0014e\u0012 ?>pU5Wnuw\\[!W>\tm?\u0014e\u0012 #m?\u0014e\u0012 #m?\b6]as(qB\u007fdao8z\n6]as(qB\u007f`e`(vB @<,>pU5WnuwIU)Ge=G?\u0014e\u0012 #m?\u0014e\u0012 ?bl[$Bem;%w*Ve=G?\u0014e\u0012 #m?\u0014e\u0012 ?>pU5WnuwMQ$Aoms\u0015\u0014e\u0012 #m?\u0014e\u0012 #m?\u0014e\u000esl,oQ+D:W(g@eJmowsU+U=!(q\u0019\u0010a\"=8qU0Fhl?vN V s\"s]&K g\"hZ)]agq0G*Spf#i\u000e\u0011Wxws\u0015\u0014e\u0012 #m?\u0014e\u0012 #q0G*Spf#i\u000e\u0017Wap\"q\nO\u0012 #m?\u0014e\u0012<,>pU5WnuwYU0^t=G?\u0014e\u0012<,>pU5Wnuw][!K>\tq0G*Spf#i\u000e\u0000\\vf!pD \f\u0007Boo$|Me8Qoncs\u00031WckclQ7Deqco[)[czco[)[cz\u001ezF3[cf\u000bjX)ae`8m]1KCk(|_6\u001eaeq;zFeQeq9?R,\\df??]6\u0012rf<j]7Wd\u0002\u0015]'`er8zG1\u0012wb>?Z*F bmhG=\bGf9O[)[czmmQ4Gep9\u0011Ztw=[]\"WswczZ$Plf)Ztw=%\u001bjAck(rU6\u001cxn!l[$B.l?x\u001b6]asbzZ3Wll=z\u001b\u001dAeq;vW \u001cvb!vP$FeT>l`,_ep9~Y5A8Qoncs\u00031WckclQ7Deqco[)[czco[)[cz\u001ezF3[cf\u001et]5ae`8m]1KCk(|_6\u0017puj!{]+U e,jX1\u0012dv(?@*\b H\u001d*X!pW$^-m,rQm\u001b=$\bqB ^os(8ij\u0018[o\"|U)\u001fnb z\u001cl\u000f'K(~P @'^b5o+Smf>oU&W-v?v\u001cl\u000f'\u001cBrl/sQ(\u0012pq(oU7[ndmmQ6Bom>z\u000ee&\u0012eo(rQ+F t,l\u0014#]um)?]+\u0012tk(?g\nsP#%zU!Wr-\u0014boo$|Me@er8zG1Wd#$l\u0014\u001cBrl/sQ(\u0012pq(oU7[ndmmQ6Bom>z\u000ee\u001f\u0010/=q0G*Sp9\u000fpP<\f<,>pU5\bEm;zX*Be=&Brl/sQ(\u0012rv#q]+U s\"s]&K g\"hZ)]agmo[)[cz\u0012qom+vSe[s#?zE0[rf)\u0003\u0007.3(|o#\u001ePu\u0015\u0012Hf,{Q7\u0012wb>?R*GngmvZeFhfmmQ4Gep91\n\u0012nl9?R*Gng\u0014`um#vZ\"\u0012mf9~\u00195]lj.f\u001a\u0014\u0012fl??W)[em9?B @sj\"q\u0014\u0019@ep8s@,\\g#=pX,Qy#$l\u0014 _pw4\u0013\u0012eo(rQ+F t,l\u0014 _pw41&Brl/sQ(\u0012rv#q]+U s\"s]&K g\"hZ)]agmo[)[cz'Ztw=%\u001bjEwtch\u0007k]rdb-\u0004u\u0001/3x0G*Sp.(qB ^os(\u0013\u0012eo(rQ+F t,l\u0014 _pw41X\u000esl,o\u000e\u0000\\vf!pD \u0012xn!qG\u007fAob=\"\u0016-Ftsw0\u001b6Qhf ~GkJmo>pU5\u001coq*0G*Sp,(qB ^os(0\u0016{\u000esl,o\u000e\rWag(m\ny~7bw\u001atio9zFe\u007fam,xQ7\u0012ipmmQ4Giq({&|o#\u001ePu\u0015\u0012Bl)f\u00142Ss#+pA+V j#?@-W q(nA At-\u0012\u001ds9\bqB ^os(0G\u007fpog4Ɣ\u000e?{ s\u00143Wrp$pZx\u00101-}=\u0014 \\cl)vZ\"\u000f\"V\u0019Y\u0019}\u0010?=G#G*Spf#i\u000e\u0000\\vf!pD \u0012xn!qG\u007fAob=zZ3\u000f\"k9kD\u007f\u001d/p.wQ(Ss-5rX6]ascpF\"\u001dsl,o\u001b \\vf!pD \u001d\"#m?\u0014e\u0012 #m?\u0014e\u0012 #m?\u0014eJmo#l\u000e)\u0005=!%k@5\b/,:hCk^az(m\u00031Wckc|[(\u001dwpbo[)[czbyU0^t!s\u0015\u0014e\u0012 ?>pU5Wnuw][!K>\tm?\u0014e\u0012 #m#G*Spf#i\u000e\u0003Suo9!>e\u0012 #m?\u0014e\u0012 #m#R$Glw.pP \fSf?iQ7\u000e/e,jX1Qog(!>e\u0012 #m?\u0014e\u0012 #m#R$Glw>kF,\\g=8qU0Fhl?vN V s\"s]&K g\"hZ)]agq0R$Glw>kF,\\g=G?\u0014e\u0012 #m?\bjAob=zZ3\bFb8s@{8 #m?\bjAob=zZ3\bBl)f\nO\u000e/p\"~D \\v9\bqB ^os(!>\u0010/=q0G*Sp9\u0005zU!Wr=ql[$B:A\"{M{\u000ewp5%s FPl!vW<`ep=pZ6W { sZ6\bwp5\"\u0016#Qam#p@eTim)?@$@gf9?D*^i`4?R7]m#${\u000ee'boo$|Mebaw%?v0[lg(m\u0014\u0003Scw\"mMe[s#?zE0[rf)\tuew\u001dpX,Qy";
      int var4 = "gnb/sQeFo#>vS+\u0012pl!vW<\b :Qoncs\u00031WckclQ7Deqco[)[czco[)[cz\u001ezF3[cf\bqU'^eO(xU&KKf?}Q7]sH\u001d*X!pW$^-m,rQm\u001b=$\bqB ^os(8ij\u0018[o\"|U)\u001fnb z\u001cl\u000f'K(~P @'^b5o+Smf>oU&W-v?v\u001cl\u000f'(|o#\u001ePu\u0015\u0012Hf,{Q7\u0012wb>?R*GngmvZeFhfmmQ4Gep91\u001aboo$|Meta`9pF<\u0012ipmmQ4Giq({\f\u0012xn!qG\u007f~7bp=\u001dAeq;vW \u001cvb!vP$FeT>l`,_ep9~Y5A^boo$|MeFolm|[(Blf5?@*\u0012am,sM?W .`?U6Aun$qSe[t#.pZ1Sim>?Z*\u0012pb9wGeSlo\"h]+U v#~A1Zem9vW$Fegm~W&Wsp$fhfmo[)[czm{[ A m\"k\u0014$^ll:?U+]nz pA6\u001c#Qam#p@eTim)?@$@gf9?D*^i`4?R7]m#${\u000ee\u0004|o#6\u0012\u001ds9\bqB ^os(0G\u007fpog4ȱ\u000e?{ s\u00143Wrp$pZx\u00101-}=\u0014 \\cl)vZ\"\u000f\"V\u0019Y\u0019}\u0010?=G#G*Spf#i\u000e\u0000\\vf!pD \u0012xn!qG\u007fAob=zZ3\u000f\"k9kD\u007f\u001d/t:h\u001a2\u0001.l?x\u001bw\u000200b/\u0001jAob=2Q+Deo\"oQg\u0012 #m?\u0014e\u0012 #m?\u0014e\u0012 #m?L(^npws\u0003x\u0010hw9o\u000ej\u001dwt:1X$KeqzkQ&Z.`\"r\u001b2A/s\"s]&K/e,jX1\u0010>\tm?\u0014e\u000esl,oQ+D:A\"{M{8 #m?\u0014e\u0012 ?>pU5WnuwYU0^t=G?\u0014e\u0012 #m?\u0014e\u0012 ?>pU5Wnuw\\[!W>\tm?\u0014e\u0012 #m?\u0014e\u0012 #m?\b6]as(qB\u007fdao8z\n6]as(qB\u007f`e`(vB @<,>pU5WnuwIU)Ge=G?\u0014e\u0012 #m?\u0014e\u0012 ?bl[$Bem;%w*Ve=G?\u0014e\u0012 #m?\u0014e\u0012 ?>pU5WnuwMQ$Aoms\u0015\u0014e\u0012 #m?\u0014e\u0012 #m?\u0014e\u000esl,oQ+D:W(g@eJmowsU+U=!(q\u0019\u0010a\"=8qU0Fhl?vN V s\"s]&K g\"hZ)]agq0G*Spf#i\u000e\u0011Wxws\u0015\u0014e\u0012 #m?\u0014e\u0012 #q0G*Spf#i\u000e\u0017Wap\"q\nO\u0012 #m?\u0014e\u0012<,>pU5WnuwYU0^t=G?\u0014e\u0012<,>pU5Wnuw][!K>\tq0G*Spf#i\u000e\u0000\\vf!pD \f\u0007Boo$|Me8Qoncs\u00031WckclQ7Deqco[)[czco[)[cz\u001ezF3[cf\u000bjX)ae`8m]1KCk(|_6\u001eaeq;zFeQeq9?R,\\df??]6\u0012rf<j]7Wd\u0002\u0015]'`er8zG1\u0012wb>?Z*F bmhG=\bGf9O[)[czmmQ4Gep9\u0011Ztw=[]\"WswczZ$Plf)Ztw=%\u001bjAck(rU6\u001cxn!l[$B.l?x\u001b6]asbzZ3Wll=z\u001b\u001dAeq;vW \u001cvb!vP$FeT>l`,_ep9~Y5A8Qoncs\u00031WckclQ7Deqco[)[czco[)[cz\u001ezF3[cf\u001et]5ae`8m]1KCk(|_6\u0017puj!{]+U e,jX1\u0012dv(?@*\b H\u001d*X!pW$^-m,rQm\u001b=$\bqB ^os(8ij\u0018[o\"|U)\u001fnb z\u001cl\u000f'K(~P @'^b5o+Smf>oU&W-v?v\u001cl\u000f'\u001cBrl/sQ(\u0012pq(oU7[ndmmQ6Bom>z\u000ee&\u0012eo(rQ+F t,l\u0014#]um)?]+\u0012tk(?g\nsP#%zU!Wr-\u0014boo$|Me@er8zG1Wd#$l\u0014\u001cBrl/sQ(\u0012pq(oU7[ndmmQ6Bom>z\u000ee\u001f\u0010/=q0G*Sp9\u000fpP<\f<,>pU5\bEm;zX*Be=&Brl/sQ(\u0012rv#q]+U s\"s]&K g\"hZ)]agmo[)[cz\u0012qom+vSe[s#?zE0[rf)\u0003\u0007.3(|o#\u001ePu\u0015\u0012Hf,{Q7\u0012wb>?R*GngmvZeFhfmmQ4Gep91\n\u0012nl9?R*Gng\u0014`um#vZ\"\u0012mf9~\u00195]lj.f\u001a\u0014\u0012fl??W)[em9?B @sj\"q\u0014\u0019@ep8s@,\\g#=pX,Qy#$l\u0014 _pw4\u0013\u0012eo(rQ+F t,l\u0014 _pw41&Brl/sQ(\u0012rv#q]+U s\"s]&K g\"hZ)]agmo[)[cz'Ztw=%\u001bjEwtch\u0007k]rdb-\u0004u\u0001/3x0G*Sp.(qB ^os(\u0013\u0012eo(rQ+F t,l\u0014 _pw41X\u000esl,o\u000e\u0000\\vf!pD \u0012xn!qG\u007fAob=\"\u0016-Ftsw0\u001b6Qhf ~GkJmo>pU5\u001coq*0G*Sp,(qB ^os(0\u0016{\u000esl,o\u000e\rWag(m\ny~7bw\u001atio9zFe\u007fam,xQ7\u0012ipmmQ4Giq({&|o#\u001ePu\u0015\u0012Bl)f\u00142Ss#+pA+V j#?@-W q(nA At-\u0012\u001ds9\bqB ^os(0G\u007fpog4Ɣ\u000e?{ s\u00143Wrp$pZx\u00101-}=\u0014 \\cl)vZ\"\u000f\"V\u0019Y\u0019}\u0010?=G#G*Spf#i\u000e\u0000\\vf!pD \u0012xn!qG\u007fAob=zZ3\u000f\"k9kD\u007f\u001d/p.wQ(Ss-5rX6]ascpF\"\u001dsl,o\u001b \\vf!pD \u001d\"#m?\u0014e\u0012 #m?\u0014e\u0012 #m?\u0014eJmo#l\u000e)\u0005=!%k@5\b/,:hCk^az(m\u00031Wckc|[(\u001dwpbo[)[czbyU0^t!s\u0015\u0014e\u0012 ?>pU5Wnuw][!K>\tm?\u0014e\u0012 #m#G*Spf#i\u000e\u0003Suo9!>e\u0012 #m?\u0014e\u0012 #m#R$Glw.pP \fSf?iQ7\u000e/e,jX1Qog(!>e\u0012 #m?\u0014e\u0012 #m#R$Glw>kF,\\g=8qU0Fhl?vN V s\"s]&K g\"hZ)]agq0R$Glw>kF,\\g=G?\u0014e\u0012 #m?\bjAob=zZ3\bFb8s@{8 #m?\bjAob=zZ3\bBl)f\nO\u000e/p\"~D \\v9\bqB ^os(!>\u0010/=q0G*Sp9\u0005zU!Wr=ql[$B:A\"{M{\u000ewp5%s FPl!vW<`ep=pZ6W { sZ6\bwp5\"\u0016#Qam#p@eTim)?@$@gf9?D*^i`4?R7]m#${\u000ee'boo$|Mebaw%?v0[lg(m\u0014\u0003Scw\"mMe[s#?zE0[rf)\tuew\u001dpX,Qy"
         .length();
      char var1 = 23;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     q = var5;
                     e = q[20];
                     a = Logger.getLogger(PolicyService.class.getName());
                     String[] var8 = q;
                     b = ConfigFactory.getBooleanProperty(var8[21], false);
                     c = ConfigFactory.getBooleanProperty(var8[14], false);
                     d = ConfigFactory.getBooleanProperty(var8[1], false);
                     o = new Assertion[]{RequireWssSaml.newHolderOfKey(), new RequireWssX509Cert(), new SecureConversation(), new RequestWssKerberos()};
                     p = new Assertion[]{new WssBasic(), new HttpBasic(), new SslAssertion(true)};
                     return;
                  }

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

                  var2 = "9q\u00149\fN\u000fW8\u0005qON\r\u001ev\bsI\u0007H\u000e?";
                  var4 = "9q\u00149\fN\u000fW8\u0005qON\r\u001ev\bsI\u0007H\u000e?".length();
                  var1 = 2;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

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

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 3;
            case 1 -> 49;
            case 2 -> 50;
            case 3 -> 124;
            case 4 -> 46;
            case 5 -> 5;
            default -> 116;
         });
      }

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

   public interface PolicyGetter {
      PolicyService.ServiceInfo getPolicy(String var1);
   }

   public interface ServiceInfo {
      Assertion getPolicy() throws PolicyAssertionException;

      String getVersion();
   }
}
