/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.CertUtils
 *  com.l7tech.common.io.XmlUtil
 *  com.l7tech.gateway.common.LicenseException
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.identity.AuthenticationException
 *  com.l7tech.identity.User
 *  com.l7tech.identity.UserBean
 *  com.l7tech.message.Message
 *  com.l7tech.message.TcpKnob
 *  com.l7tech.policy.assertion.Assertion
 *  com.l7tech.policy.assertion.AssertionStatus
 *  com.l7tech.policy.assertion.SslAssertion
 *  com.l7tech.policy.assertion.composite.AllAssertion
 *  com.l7tech.policy.assertion.composite.OneOrMoreAssertion
 *  com.l7tech.policy.assertion.credential.LoginCredentials
 *  com.l7tech.policy.assertion.credential.http.HttpBasic
 *  com.l7tech.policy.assertion.credential.http.HttpDigest
 *  com.l7tech.policy.assertion.credential.wss.WssBasic
 *  com.l7tech.policy.assertion.xmlsec.RequireWssSaml
 *  com.l7tech.policy.assertion.xmlsec.RequireWssSignedElement
 *  com.l7tech.policy.assertion.xmlsec.RequireWssTimestamp
 *  com.l7tech.policy.assertion.xmlsec.RequireWssX509Cert
 *  com.l7tech.policy.assertion.xmlsec.SecureConversation
 *  com.l7tech.security.saml.NameIdentifierInclusionType
 *  com.l7tech.security.saml.SamlAssertionGenerator
 *  com.l7tech.security.saml.SamlAssertionGenerator$Options
 *  com.l7tech.security.saml.SamlConstants
 *  com.l7tech.security.saml.SubjectStatement
 *  com.l7tech.security.saml.SubjectStatement$Confirmation
 *  com.l7tech.security.token.XmlSecurityToken
 *  com.l7tech.security.xml.KeyInfoInclusionType
 *  com.l7tech.security.xml.SecurityTokenResolver
 *  com.l7tech.security.xml.SignerInfo
 *  com.l7tech.security.xml.XencUtil
 *  com.l7tech.security.xml.decorator.DecorationRequirements
 *  com.l7tech.security.xml.decorator.DecoratorException
 *  com.l7tech.security.xml.decorator.WssDecoratorImpl
 *  com.l7tech.security.xml.processor.BadSecurityContextException
 *  com.l7tech.security.xml.processor.ProcessorException
 *  com.l7tech.security.xml.processor.ProcessorResult
 *  com.l7tech.security.xml.processor.X509BinarySecurityTokenImpl
 *  com.l7tech.util.Config
 *  com.l7tech.util.DomUtils
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.HexUtils
 *  com.l7tech.util.ISO8601Date
 *  com.l7tech.util.InvalidDocumentFormatException
 *  com.l7tech.util.ResourceUtils
 *  com.l7tech.util.SoapConstants
 *  com.l7tech.util.SyspropUtil
 *  com.l7tech.xml.soap.SoapUtil
 *  com.l7tech.xml.xpath.XpathExpression
 *  org.springframework.context.support.ApplicationObjectSupport
 */
package com.l7tech.server;

import com.l7tech.common.io.CertUtils;
import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.common.LicenseException;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.identity.AuthenticationException;
import com.l7tech.identity.User;
import com.l7tech.identity.UserBean;
import com.l7tech.message.Message;
import com.l7tech.message.TcpKnob;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.AssertionStatus;
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.LoginCredentials;
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.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.SecureConversation;
import com.l7tech.security.saml.NameIdentifierInclusionType;
import com.l7tech.security.saml.SamlAssertionGenerator;
import com.l7tech.security.saml.SamlConstants;
import com.l7tech.security.saml.SubjectStatement;
import com.l7tech.security.token.XmlSecurityToken;
import com.l7tech.security.xml.KeyInfoInclusionType;
import com.l7tech.security.xml.SecurityTokenResolver;
import com.l7tech.security.xml.SignerInfo;
import com.l7tech.security.xml.XencUtil;
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.BadSecurityContextException;
import com.l7tech.security.xml.processor.ProcessorException;
import com.l7tech.security.xml.processor.ProcessorResult;
import com.l7tech.security.xml.processor.X509BinarySecurityTokenImpl;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.TokenService;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.ServerPolicyException;
import com.l7tech.server.policy.ServerPolicyFactory;
import com.l7tech.server.policy.assertion.ServerAssertion;
import com.l7tech.server.secureconversation.InboundSecureConversationContextManager;
import com.l7tech.server.secureconversation.SecureConversationSession;
import com.l7tech.server.secureconversation.SessionCreationException;
import com.l7tech.util.Config;
import com.l7tech.util.DomUtils;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import com.l7tech.util.ISO8601Date;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.ResourceUtils;
import com.l7tech.util.SoapConstants;
import com.l7tech.util.SyspropUtil;
import com.l7tech.xml.soap.SoapUtil;
import com.l7tech.xml.xpath.XpathExpression;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Closeable;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.GeneralSecurityException;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import org.springframework.context.support.ApplicationObjectSupport;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;

public class TokenServiceImpl
extends ApplicationObjectSupport
implements TokenService,
PropertyChangeListener {
    private static final Logger a;
    private static final String b;
    private static final String c;
    private static final String d;
    private static final String e;
    private static final String f;
    private static final String g;
    private static final String h;
    private final Config i;
    private final DefaultKey j;
    private final ServerPolicyFactory k;
    private final AtomicReference<ServerAssertion> l = new AtomicReference();
    private final SecurityTokenResolver m;
    private final InboundSecureConversationContextManager n;
    private final Pattern o;
    private static final String[] p;

    public TokenServiceImpl(Config config, DefaultKey defaultKey, ServerPolicyFactory serverPolicyFactory, SecurityTokenResolver securityTokenResolver, InboundSecureConversationContextManager inboundSecureConversationContextManager) {
        String[] stringArray = p;
        this.o = Pattern.compile(stringArray[32]);
        if (defaultKey == null) {
            throw new IllegalArgumentException(stringArray[0]);
        }
        this.i = config;
        this.j = defaultKey;
        this.k = serverPolicyFactory;
        this.m = securityTokenResolver;
        this.n = inboundSecureConversationContextManager;
        try {
            this.a();
        }
        catch (ServerPolicyException serverPolicyException) {
            throw new RuntimeException((Throwable)((Object)serverPolicyException));
        }
        catch (LicenseException licenseException) {
            throw new RuntimeException(licenseException);
        }
    }

    private void a() throws ServerPolicyException, LicenseException {
        boolean bl2 = this.i.getBooleanProperty(p[13], true);
        ServerAssertion serverAssertion = this.k.compilePolicy(this.a(bl2), false);
        ServerAssertion serverAssertion2 = this.l.getAndSet(serverAssertion);
        ResourceUtils.closeQuietly((Closeable)serverAssertion2);
    }

    /*
     * Exception decompiling
     */
    @Override
    public AssertionStatus respondToSecurityTokenRequest(PolicyEnforcementContext var1_1, TokenService.CredentialsAuthenticator var2_2, boolean var3_3, boolean var4_4) throws InvalidDocumentFormatException, TokenServiceException, ProcessorException, BadSecurityContextException, GeneralSecurityException, AuthenticationException {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [49[CATCHBLOCK]], but top level block is 22[TRYBLOCK]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    /*
     * WARNING - Removed back jump from a try to a catch block - possible behaviour change.
     * Unable to fully structure code
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    @Override
    public void propertyChange(PropertyChangeEvent var1_1) {
        try {
            if (TokenServiceImpl.p[60].equals(var1_1.getPropertyName())) ** GOTO lbl-1000
            ** GOTO lbl8
        }
        catch (ServerPolicyException v0) {
            try {
                throw TokenServiceImpl.a((Exception)v0);
lbl8:
                // 2 sources

                if (TokenServiceImpl.p[47].equals(var1_1.getPropertyName()) == false) return;
            }
            catch (IllegalArgumentException v1) {
                throw TokenServiceImpl.a(v1);
            }
lbl-1000:
            // 2 sources

            {
                TokenServiceImpl.a.info(TokenServiceImpl.p[27]);
                ** try [egrp 3[TRYBLOCK] [1, 2 : 51->58)] { 
lbl13:
                // 1 sources

lbl14:
                // 1 sources

                catch (ServerPolicyException var2_2) {
                    var3_4 = TokenServiceImpl.p;
                    TokenServiceImpl.a.log(Level.SEVERE, var3_4[9], (Throwable)var2_2);
                    return;
                }
lbl18:
                // 1 sources

                catch (LicenseException var2_3) {
                    TokenServiceImpl.a.log(Level.SEVERE, TokenServiceImpl.p[7], var2_3);
                    return;
                }
            }
        }
        this.a();
    }

    private Assertion a(boolean bl2) {
        AllAssertion allAssertion = new AllAssertion();
        OneOrMoreAssertion oneOrMoreAssertion = new OneOrMoreAssertion();
        AllAssertion allAssertion2 = new AllAssertion();
        OneOrMoreAssertion oneOrMoreAssertion2 = new OneOrMoreAssertion();
        try {
            oneOrMoreAssertion2.addChild((Assertion)new RequireWssX509Cert());
            oneOrMoreAssertion2.addChild((Assertion)new RequireWssSaml());
            oneOrMoreAssertion2.addChild((Assertion)new SecureConversation());
            allAssertion2.addChild((Assertion)oneOrMoreAssertion2);
            if (bl2) {
                allAssertion2.addChild((Assertion)RequireWssTimestamp.newInstance());
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TokenServiceImpl.a(illegalArgumentException);
        }
        OneOrMoreAssertion oneOrMoreAssertion3 = new OneOrMoreAssertion();
        String[] stringArray = p;
        oneOrMoreAssertion3.addChild((Assertion)new RequireWssSignedElement(new XpathExpression(stringArray[76], "s", stringArray[29])));
        oneOrMoreAssertion3.addChild((Assertion)new RequireWssSignedElement(new XpathExpression(stringArray[30], "s", stringArray[77])));
        allAssertion2.addChild((Assertion)oneOrMoreAssertion3);
        AllAssertion allAssertion3 = new AllAssertion();
        allAssertion3.addChild((Assertion)new SslAssertion());
        OneOrMoreAssertion oneOrMoreAssertion4 = new OneOrMoreAssertion();
        oneOrMoreAssertion4.addChild((Assertion)new HttpBasic());
        oneOrMoreAssertion4.addChild((Assertion)new WssBasic());
        boolean bl3 = this.i.getBooleanProperty(stringArray[52], false);
        try {
            if (bl3) {
                oneOrMoreAssertion4.addChild((Assertion)new HttpDigest());
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TokenServiceImpl.a(illegalArgumentException);
        }
        oneOrMoreAssertion4.addChild((Assertion)new SslAssertion(true));
        RequireWssSaml requireWssSaml = new RequireWssSaml();
        oneOrMoreAssertion4.addChild((Assertion)requireWssSaml);
        allAssertion3.addChild((Assertion)oneOrMoreAssertion4);
        oneOrMoreAssertion.addChild((Assertion)allAssertion2);
        oneOrMoreAssertion.addChild((Assertion)allAssertion3);
        allAssertion.addChild((Assertion)oneOrMoreAssertion);
        Assertion.filterOutDisabledAssertions((Assertion)oneOrMoreAssertion);
        a.fine(p[50] + allAssertion.toString());
        return allAssertion;
    }

    /*
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    private Document a(Map<String, String> map, String string, PolicyEnforcementContext policyEnforcementContext, boolean bl2, boolean bl3) throws TokenServiceException, GeneralSecurityException {
        SamlAssertionGenerator samlAssertionGenerator;
        String[] stringArray;
        KeyInfoInclusionType keyInfoInclusionType;
        SsgKeyEntry ssgKeyEntry;
        KeyInfoInclusionType keyInfoInclusionType2;
        SamlAssertionGenerator.Options options;
        SamlAssertionGenerator.Options options2;
        LoginCredentials loginCredentials;
        block19: {
            String string2 = null;
            TcpKnob tcpKnob = policyEnforcementContext.getRequest().getTcpKnob();
            if (tcpKnob != null) {
                string2 = tcpKnob.getRemoteAddress();
            }
            loginCredentials = policyEnforcementContext.getDefaultAuthenticationContext().getLastCredentials();
            options2 = new SamlAssertionGenerator.Options();
            try {
                if (string2 == null) break block19;
                try {
                    options2.setClientAddress(InetAddress.getByName(string2));
                }
                catch (UnknownHostException unknownHostException) {
                    String[] stringArray2 = p;
                    throw new TokenServiceException(stringArray2[72], unknownHostException);
                }
            }
            catch (SAXException sAXException) {
                throw TokenServiceImpl.a(sAXException);
            }
        }
        try {
            options = options2;
            keyInfoInclusionType2 = bl2 ? KeyInfoInclusionType.STR_THUMBPRINT : KeyInfoInclusionType.CERT;
        }
        catch (UnknownHostException unknownHostException) {
            throw TokenServiceImpl.a(unknownHostException);
        }
        try {
            options.setIssuerKeyInfoType(keyInfoInclusionType2);
            options2.setSignAssertion(true);
            if (SamlConstants.NS_SAML2.equals(string)) {
                options2.setVersion(2);
            }
        }
        catch (UnknownHostException unknownHostException) {
            throw TokenServiceImpl.a(unknownHostException);
        }
        try {
            ssgKeyEntry = this.j.getServerSslInfo();
        }
        catch (IOException iOException) {
            String[] stringArray3 = p;
            throw new TokenServiceException(stringArray3[11] + ExceptionUtils.getMessage((Throwable)iOException), iOException);
        }
        try {
            keyInfoInclusionType = bl3 ? KeyInfoInclusionType.STR_THUMBPRINT : KeyInfoInclusionType.CERT;
        }
        catch (UnknownHostException unknownHostException) {
            throw TokenServiceImpl.a(unknownHostException);
        }
        KeyInfoInclusionType keyInfoInclusionType3 = keyInfoInclusionType;
        SubjectStatement subjectStatement = SubjectStatement.createAuthenticationStatement((LoginCredentials)loginCredentials, (SubjectStatement.Confirmation)SubjectStatement.HOLDER_OF_KEY, (KeyInfoInclusionType)keyInfoInclusionType3, (NameIdentifierInclusionType)NameIdentifierInclusionType.FROM_CREDS, null, null, null, null);
        if (this.getApplicationContext() != null) {
            stringArray = p;
            samlAssertionGenerator = (Config)this.getApplicationContext().getBean(stringArray[31]);
            if (samlAssertionGenerator != null) {
                int n2 = samlAssertionGenerator.getIntProperty(stringArray[67], 2);
                options2.setNotBeforeSeconds(n2 * 60);
                SyspropUtil.setProperty((String)SamlAssertionGenerator.BEFORE_OFFSET_SYSTEM_PROPERTY, (String)Integer.toString(n2));
                int n3 = samlAssertionGenerator.getIntProperty(stringArray[62], 5);
                options2.setNotAfterSeconds(n3 * 60);
                SyspropUtil.setProperty((String)SamlAssertionGenerator.AFTER_OFFSET_SYSTEM_PROPERTY, (String)Integer.toString(n3));
            }
        }
        samlAssertionGenerator = new SamlAssertionGenerator((SignerInfo)ssgKeyEntry);
        Document document = samlAssertionGenerator.createAssertion(subjectStatement, options2);
        stringArray = p;
        StringBuilder stringBuilder = new StringBuilder(TokenServiceImpl.a(map.get(stringArray[85]), map.get(stringArray[70]), map.get(stringArray[78])));
        try {
            stringBuilder.append(XmlUtil.nodeToString((Node)document));
            stringBuilder.append(stringArray[68]);
            stringBuilder.append(stringArray[58]);
            Document document2 = XmlUtil.stringToDocument((String)stringBuilder.toString());
            return this.a(document2);
        }
        catch (IOException iOException) {
            stringArray = p;
            throw new TokenServiceException(stringArray[38], iOException);
        }
        catch (SAXException sAXException) {
            throw new TokenServiceException(p[25], sAXException);
        }
    }

    private Document a(Map<String, String> map, PolicyEnforcementContext policyEnforcementContext, User user, String string) throws TokenServiceException, GeneralSecurityException {
        Document document;
        String[] stringArray;
        String string2;
        SecureConversationSession secureConversationSession;
        try {
            secureConversationSession = this.n.createContextForUser(user, string);
        }
        catch (SessionCreationException sessionCreationException) {
            throw new TokenServiceException((Throwable)sessionCreationException);
        }
        ProcessorResult processorResult = policyEnforcementContext.getRequest().getSecurityKnob().getProcessorResult();
        XmlSecurityToken[] xmlSecurityTokenArray = processorResult.getXmlSecurityTokens();
        X509Certificate x509Certificate = null;
        for (Object sAXException : xmlSecurityTokenArray) {
            X509BinarySecurityTokenImpl x509BinarySecurityTokenImpl;
            block9: {
                if (!(sAXException instanceof X509BinarySecurityTokenImpl)) continue;
                x509BinarySecurityTokenImpl = (X509BinarySecurityTokenImpl)sAXException;
                try {
                    if (!x509BinarySecurityTokenImpl.isPossessionProved()) continue;
                    if (x509Certificate == null) break block9;
                }
                catch (SessionCreationException sessionCreationException) {
                    throw TokenServiceImpl.a(sessionCreationException);
                }
                String[] stringArray2 = p;
                String string3 = stringArray2[41];
                a.log(Level.WARNING, string3);
                throw new TokenServiceException(string3);
            }
            x509Certificate = x509BinarySecurityTokenImpl.getCertificate();
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(secureConversationSession.getExpiration());
        if (x509Certificate != null) {
            string2 = this.a(secureConversationSession.getSharedSecret(), x509Certificate);
        } else {
            stringArray = p;
            string2 = this.a(secureConversationSession.getSharedSecret(), map.get(stringArray[42]));
        }
        try {
            Object sAXException;
            stringArray = p;
            String string4 = ISO8601Date.format((Date)calendar.getTime());
            String string5 = string2;
            String string6 = secureConversationSession.getIdentifier();
            sAXException = TokenServiceImpl.a(map.get(stringArray[85]), map.get(stringArray[75]), map.get(stringArray[44])) + stringArray[37] + string6 + stringArray[59] + string5 + stringArray[1] + string4 + stringArray[26];
            document = XmlUtil.stringToDocument((String)sAXException);
        }
        catch (SAXException sAXException) {
            throw new TokenServiceException((Throwable)sAXException);
        }
        return this.a(document);
    }

    private Document a(Document document) throws TokenServiceException {
        SsgKeyEntry ssgKeyEntry;
        Element element;
        try {
            element = SoapUtil.getBodyElement((Document)document);
            ssgKeyEntry = this.j.getServerSslInfo();
        }
        catch (InvalidDocumentFormatException invalidDocumentFormatException) {
            throw new TokenServiceException((Throwable)invalidDocumentFormatException);
        }
        catch (IOException iOException) {
            throw new TokenServiceException(p[36] + ExceptionUtils.getMessage((Throwable)iOException), iOException);
        }
        WssDecoratorImpl wssDecoratorImpl = new WssDecoratorImpl();
        DecorationRequirements decorationRequirements = new DecorationRequirements();
        decorationRequirements.setSignTimestamp(true);
        decorationRequirements.getElementsToSign().add(element);
        try {
            decorationRequirements.setSenderMessageSigningCertificate(ssgKeyEntry.getCertificate());
            decorationRequirements.setSenderMessageSigningPrivateKey(ssgKeyEntry.getPrivateKey());
            wssDecoratorImpl.decorateMessage(new Message(document, Message.getMaxBytes()), decorationRequirements);
        }
        catch (InvalidDocumentFormatException invalidDocumentFormatException) {
            throw new TokenServiceException((Throwable)invalidDocumentFormatException);
        }
        catch (GeneralSecurityException generalSecurityException) {
            throw new TokenServiceException((Throwable)generalSecurityException);
        }
        catch (DecoratorException decoratorException) {
            throw new TokenServiceException((Throwable)decoratorException);
        }
        catch (SAXException sAXException) {
            throw new TokenServiceException((Throwable)sAXException);
        }
        catch (IOException iOException) {
            throw new TokenServiceException((Throwable)iOException);
        }
        return document;
    }

    private String a(byte[] byArray, String string) {
        StringBuilder stringBuilder = new StringBuilder();
        String[] stringArray = p;
        stringBuilder.append(stringArray[10]).append(string).append(stringArray[23]);
        stringBuilder.append(HexUtils.encodeBase64((byte[])byArray, (boolean)true));
        stringBuilder.append(stringArray[24]);
        return stringBuilder.toString();
    }

    private String a(byte[] byArray, X509Certificate x509Certificate) throws GeneralSecurityException {
        Object object;
        StringBuilder stringBuilder = new StringBuilder();
        String[] stringArray = p;
        stringBuilder.append(stringArray[84]);
        String string = CertUtils.getSki((X509Certificate)x509Certificate);
        if (string != null) {
            object = stringArray[48] + SoapConstants.VALUETYPE_SKI + stringArray[54] + string + stringArray[57];
            stringBuilder.append(stringArray[81]);
            stringBuilder.append((String)object);
            stringBuilder.append(stringArray[5]);
        }
        stringArray = p;
        stringBuilder.append(stringArray[12]);
        object = HexUtils.encodeBase64((byte[])XencUtil.encryptKeyWithRsaAndPad((byte[])byArray, (X509Certificate)x509Certificate, (PublicKey)x509Certificate.getPublicKey()), (boolean)true);
        stringBuilder.append((String)object);
        stringBuilder.append(stringArray[83]);
        return stringBuilder.toString();
    }

    private boolean a(Map<String, String> map) {
        block9: {
            String string;
            block8: {
                string = map.get(SoapConstants.WST_TOKENTYPE);
                try {
                    try {
                        if (string != null && p[80].equals(string)) break block8;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw TokenServiceImpl.a(illegalArgumentException);
                    }
                    return false;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TokenServiceImpl.a(illegalArgumentException);
                }
            }
            string = map.get(SoapConstants.WST_REQUESTTYPE);
            try {
                try {
                    if (string != null && string.endsWith(p[17])) break block9;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TokenServiceImpl.a(illegalArgumentException);
                }
                a.warning(p[46] + string);
                return false;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw TokenServiceImpl.a(illegalArgumentException);
            }
        }
        map.put(p[70], SoapConstants.WSSC_NAMESPACE);
        return true;
    }

    private boolean b(Map<String, String> map) {
        block7: {
            String string = map.get(SoapConstants.WST_TOKENTYPE);
            try {
                try {
                    if (string != null && p[74].equals(string)) break block7;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TokenServiceImpl.a(illegalArgumentException);
                }
                return false;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw TokenServiceImpl.a(illegalArgumentException);
            }
        }
        String string = map.get(SoapConstants.WST_REQUESTTYPE);
        try {
            if (!string.endsWith(p[17])) {
                a.warning(p[4] + string);
                return false;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TokenServiceImpl.a(illegalArgumentException);
        }
        map.put(p[70], SoapConstants.WSSC_NAMESPACE2);
        return true;
    }

    private boolean c(Map map) {
        block12: {
            block11: {
                String string = (String)map.get(SoapConstants.WST_TOKENTYPE);
                try {
                    block10: {
                        try {
                            try {
                                if (string == null || !string.startsWith(p[87])) break block10;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw TokenServiceImpl.a(illegalArgumentException);
                            }
                            if (string.endsWith(p[28])) break block11;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw TokenServiceImpl.a(illegalArgumentException);
                        }
                    }
                    return false;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TokenServiceImpl.a(illegalArgumentException);
                }
            }
            String string = (String)map.get(SoapConstants.WST_REQUESTTYPE);
            try {
                try {
                    if (string != null && string.endsWith(p[3])) break block12;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TokenServiceImpl.a(illegalArgumentException);
                }
                return false;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw TokenServiceImpl.a(illegalArgumentException);
            }
        }
        a.fine(p[34]);
        return true;
    }

    private Map<String, String> a(PolicyEnforcementContext policyEnforcementContext) throws InvalidDocumentFormatException {
        HashMap<String, String> hashMap;
        block19: {
            Element element;
            block18: {
                Element element2;
                block17: {
                    Element element3;
                    block16: {
                        Document document;
                        Object object;
                        hashMap = new HashMap<String, String>();
                        String[] stringArray = p;
                        hashMap.put(stringArray[78], stringArray[20]);
                        hashMap.put(stringArray[70], SoapConstants.WSSC_NAMESPACE);
                        try {
                            object = policyEnforcementContext.getRequest().getXmlKnob();
                            document = object.getDocumentReadOnly();
                        }
                        catch (SAXException sAXException) {
                            stringArray = p;
                            a.log(Level.WARNING, stringArray[21], sAXException);
                            return hashMap;
                        }
                        catch (IOException iOException) {
                            stringArray = p;
                            a.log(Level.WARNING, stringArray[6], iOException);
                            return hashMap;
                        }
                        object = SoapUtil.getBodyElement((Document)document);
                        try {
                            if (p[2].equals(object.getNamespaceURI())) {
                                hashMap.put(p[78], p[2]);
                            }
                        }
                        catch (SAXException sAXException) {
                            throw TokenServiceImpl.a(sAXException);
                        }
                        element2 = DomUtils.findFirstChildElement((Element)object);
                        try {
                            if (!element2.getLocalName().equals(SoapConstants.WST_REQUESTSECURITYTOKEN)) {
                                a.fine(p[49] + element2.getLocalName() + ")");
                                return hashMap;
                            }
                        }
                        catch (SAXException sAXException) {
                            throw TokenServiceImpl.a(sAXException);
                        }
                        try {
                            if (!Arrays.asList(SoapConstants.WST_NAMESPACE_ARRAY).contains(element2.getNamespaceURI())) {
                                a.fine(p[63] + element2.getNamespaceURI() + ")");
                                return hashMap;
                            }
                        }
                        catch (SAXException sAXException) {
                            throw TokenServiceImpl.a(sAXException);
                        }
                        stringArray = p;
                        hashMap.put(stringArray[85], element2.getNamespaceURI());
                        element3 = DomUtils.findOnlyOneChildElementByName((Element)element2, (String[])SoapConstants.WST_NAMESPACE_ARRAY, (String)SoapConstants.WST_TOKENTYPE);
                        try {
                            if (element3 != null) break block16;
                            a.warning(stringArray[45]);
                            break block17;
                        }
                        catch (SAXException sAXException) {
                            throw TokenServiceImpl.a(sAXException);
                        }
                    }
                    hashMap.put(SoapConstants.WST_TOKENTYPE, DomUtils.getTextValue((Element)element3));
                }
                element = DomUtils.findOnlyOneChildElementByName((Element)element2, (String[])SoapConstants.WST_NAMESPACE_ARRAY, (String)SoapConstants.WST_REQUESTTYPE);
                try {
                    if (element != null) break block18;
                    a.warning(p[35]);
                    break block19;
                }
                catch (SAXException sAXException) {
                    throw TokenServiceImpl.a(sAXException);
                }
            }
            hashMap.put(SoapConstants.WST_REQUESTTYPE, DomUtils.getTextValue((Element)element));
        }
        return hashMap;
    }

    private boolean d(Map map) {
        boolean bl2;
        block10: {
            block9: {
                block8: {
                    String string = (String)map.get(SoapConstants.WST_TOKENTYPE);
                    try {
                        try {
                            if (string != null && this.o.matcher(string).find()) break block8;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw TokenServiceImpl.a(illegalArgumentException);
                        }
                        a.fine(p[86] + string + p[65]);
                        return false;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw TokenServiceImpl.a(illegalArgumentException);
                    }
                }
                String string = (String)map.get(SoapConstants.WST_REQUESTTYPE);
                try {
                    try {
                        if (string == null || !string.endsWith(p[17])) break block9;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw TokenServiceImpl.a(illegalArgumentException);
                    }
                    bl2 = true;
                    break block10;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TokenServiceImpl.a(illegalArgumentException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    private String b(PolicyEnforcementContext policyEnforcementContext) {
        Message message;
        String string = null;
        if (policyEnforcementContext != null && (message = policyEnforcementContext.getRequest()).isHttpRequest()) {
            string = message.getHttpRequestKnob().getRemoteAddress();
        }
        return string;
    }

    private User c(PolicyEnforcementContext policyEnforcementContext) {
        User user = null;
        if (policyEnforcementContext.getDefaultAuthenticationContext().isAuthenticated()) {
            user = policyEnforcementContext.getDefaultAuthenticationContext().getLastAuthenticatedUser();
        }
        if (user == null) {
            user = new UserBean();
        }
        return user;
    }

    private String a(User user) {
        String string;
        try {
            string = user.getName() != null ? user.getName() : user.getLogin();
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TokenServiceImpl.a(illegalArgumentException);
        }
        return string;
    }

    private static String a(String string, String string2, String string3) {
        String string4 = string2;
        String string5 = SoapConstants.SECURITY_NAMESPACE;
        String string6 = SoapConstants.WSU_NAMESPACE;
        String string7 = string;
        String string8 = string3;
        String[] stringArray = p;
        return stringArray[40] + string8 + stringArray[15] + string7 + stringArray[53] + string6 + stringArray[16] + string5 + stringArray[19] + string4 + stringArray[22];
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[88];
                var3_1 = 0;
                var2_2 = "QDgJ\u000e\u0007N^Dx\u000b\u0016\u001eIa\u0001cN[\u001bHzWhO\u001e\u000f\u001aaN!H\t\u000e[aD!J[?U~Dox\u001e\u0019L|Bd5)\u000evX\u000fQhpPtN\b\u001f_qqsD\u0014\rnzJdEEWMfU;g\u0012\r_aHlNEWMfT;n\u0003\u001bSgDr\u0015'}Uu[AD\u0015bVv\u0005\fX\u0014zSf\u0004I[\n&\u000e1\u001eT\u0018UtQ,N\u0015\u001d_yNqN\f:Us^\b\u001f\u0015\\Rr^\u001e\u001aGDp^\u001e\u0018NAXqN[\u0005Ua\u0001r^\u000b\u001bUgUdOU\n)\u000eJN\u0002\"TsN?\u001dV@oE\u0014\u001f\u001arDu\u000b\t\u000eK`Dr_\\\u0018\u001aqNb^\u0016\u000eTa&PSsD\tKHpCtB\u0017\u000fS{F!_\u0014\u0000_{\u0001rN\t\u001dSvD![\u0014\u0007SvX/\u0017PSsD\tK^|RqJ\u000f\bR|Of\u000b\u001e\u001d_{U&PSsD\tKHpCtB\u0017\u000fS{F!_\u0014\u0000_{\u0001rN\t\u001dSvD![\u0014\u0007SvX/\u0018)Vr_A)S{@sR(\u000eYgDu\u000b/\u0012Jp\u001c#&@O`I\u0017\u000e\u001aaN!L\u001e\u001f\u001aqDgJ\u000e\u0007N5rdY\r\u000eH5rRg[\u0000_l\u001b!#)YdE\u0018Qy|QiN\t/[a@?\u0017\u0003\u000eTv\u001bBB\u000b\u0003_gw`G\u000e\u000e\u0004\u001dfDs]\u0012\b_;W`G\u0012\u000f[aDVX\b?SxDr_\u001a\u0006JfAAIhX[\u0019_dTdX\u000fKYtOoD\u000fKXp\u0001sN\u0018\u0004]{H{N\u001fK[f\u0001`\u000b\r\nV|E!y\u001e\u001aOpRux\u001e\bOgHuR/\u0004QpO:7\u001f=X\u0014\nJ/cnO\u0002U\u0006bRu\u0011)\u000eK`Dr_(\u000eY`Sh_\u0002?U~Doy\u001e\u0018JzOrN[\u0013WyOr\u0011\f\u0018N(\u0003\u000e7\u0001yF\u0017\u0005I/VrX\u001eV\u0018\f:Us^\b\u001f\u0015\\Rr^\u001e\u001d)\u000evX\u000fQhpPtN\b\u001f_qrdH\u000e\u0019SaXUD\u0010\u000eT+\r7\u0001yF\u0017\u0005I/VrHFI)}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDIz@q\u0004\u001e\u0005LpMn[\u001eD\u001dV@oE\u0014\u001f\u001arDu\u000b\t\u000eK`Dr_\\\u0018\u001aqNb^\u0016\u000eTa\u001e7\u001f=\\\b\u001f\u0000GDp^\u001e\u0018NpERN\u0018\u001eH|Ux\u007f\u0014\u0000_{\u001f\u000f:rxF\u0016\u000eNgHb`\u001e\u0012\u0018+\u0013)\u000evX\u000fQx|O`Y\u00028_vSd_E\u0019VNtG\u001f\u0005\u001da\u0001sN\u001a\u000f\u001afHfE\u0012\u0005]5JdR\\)\u000evX\u000eQ\u007fmQhY\u001e\u0018\u0004)\u000evX\u000fQv|Gd_\u0012\u0006_+\u001d.\\\b\u001f\u0000GDp^\u001e\u0018NFDb^\t\u0002Nlun@\u001e\u0005hpRqD\u0015\u0018_+\u001d.X\u0014\nJ/cnO\u0002U\u0006:RnJ\u000bQ\u007f{WdG\u0014\u001b_+ GDc^\u0012\u0007^|Of\u000b\u000f\u0004QpO!X\u001e\u0019L|Bd\u000b\u000b\u0004V|Bx\u0005\tTRrN\t\u001fSzO)}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDIz@q\u0004\u001e\u0005LpMn[\u001eD\u0012:R;n\u0015\u001d_yNqNT\u0018\u0000WNeR\ffDs]\u001e\u0019yzOgB\u001c\u0015N\u001b\"v:\u0018IpSuB\u0014\u0005\u001ei\u007fRj6'\u001e\u0002/\u00010GDp^\u001e\u0018N5V`X[\u0002^pOuB\u001d\u0002_q\u0001`X[\u0004Tp\u0001gD\tKiTlM\u000bIE\n5un@\u001e\u00052GDp^\u001e\u0018N5Ux[\u001eKTzU!X\u000b\u000eY|GhN\u001fE\u001aAIhX[\u0002I5On_[\u0018OeQnY\u000f\u000e^;\u001f@O`I\u0017\u000e\u001aaN!L\u001e\u001f\u001aqDgJ\u000e\u0007N5rRg[\u0000_l\u001b!*)VrHA8_vTsB\u000f\u0012yzOuN\u0003\u001fnzJdEEWMfB;b\u001f\u000eTaHgB\u001e\u0019\u0004\u0019VNtG\u001f\u0005\u001da\u0001sN\u001a\u000f\u001afHfE\u0012\u0005]5JdR&AId\u000b\u0012\u0005NpSoJ\u0017KJzMhH\u0002KMtR!E\u0014\u001f\u001agDr[\u001e\bNpE!\u001b)RnJ\u000bQ\u007f{WdG\u0014\u001b_5YlG\u0015\u0018\u0000fN`[FIQGDp^\u001e\u0018N5HoH\u0017\u001e^pE!F\u0014\u0019_5UiJ\u0015KU{D!sN[\u00035RdH\u000e\u0019SaX!_\u0014\u0000_{\u0001vC\u0014\u0018_5JdR[\u0004M{DsX\u0013\u0002J5V`X[\u001bHzWdE\u0007aStX\u000f\u0005I\u0014FDb^\t\u0002Nl\u0001UD\u0010\u000eT5dsY\u0014\u0019\u0006fN`[\u0015\u00180ANjN\u0015KNlQd\u000b\u0015\u0004N5RqN\u0018\u0002\\|De\u0005[?R|R!B\bKTzU!X\u000e\u001bJzSuN\u001fE\u001aGDp^\u001e\u0018NAXqN[\u0005Ua\u0001r^\u000b\u001bUgUdOU\u0011}Uu[?\u0002]pRu\u0005\u001e\u0005[wMd<)VrX\u001eQipBtY\u0012\u001fCANjN\u00159_sDsN\u0015\b_+\u001dvX\b\u000e\u0000^Dxb\u001f\u000eTaHgB\u001e\u0019\u001aC@m^\u001e?CeD<\t(WNeR\\\u0018\u001avIhG\u001fK^zDr\u000b\u0015\u0004N5RdN\u0016KNz\u0001cN[\n\u001aGrU\u000bS\u001fANjN\u00158_gWhH\u001eK_{GnY\u0018\u0002Tr\u0001qD\u0017\u0002Yl\u001b!\u0002/\u0001\u0011}Uu[?\u0002]pRu\u0005\u001e\u0005[wMd\r7\u0001yF\u0017\u0005I/Vr^FI\u00027\u001f\u0015FDb^\t\u0002Nl\u0001UD\u0010\u000eT5hrX\u000e\u000e^\u0012/\u0001qY\u0014\b_fRhE\u001cK_gSnY3)\u000evX\b\u000e\u0000^Dxb\u001f\u000eTaHgB\u001e\u0019\u0004)\u000evX\b\u000e\u0000FDb^\t\u0002Nlun@\u001e\u0005hpGdY\u001e\u0005Yp\u001f?)\u000evX\u000fQhpPtN\b\u001fipBtY\u0012\u001fCANjN\u00159_fQnE\b\u000e\u0004)\u000erD\u001a\u001b\u0000WNeREW\u0015fN`[A.TcDmD\u000b\u000e\u0004b)\u000evX\u0018QsqDo_\u0012\rSpS?\u0017T\u001cIv\u001bRN\u0018\u001eH|Uxh\u0014\u0005NpYu\u007f\u0014\u0000_{\u001f=\u0004\f\u0018N/sdZ\u000e\u000eIaDex\u001e\bOgHuR/\u0004QpO?\u0017\f\u0018N/sdZ\u000e\u000eIaDe{\t\u0004Usun@\u001e\u0005\u0004\u001dfDs]\u0012\b_;W`G\u0012\u000f[aDVX\b?SxDr_\u001a\u0006Jf\u0014FDb^\t\u0002Nl\u0001UD\u0010\u000eT5dsY\u0014\u0019\u0015f@lG:\rNpSNM\u001d\u0018_alhE\u000e\u001f_ AStX\u000fKTtLdX\u000b\nYp\u0001oD\u000fKHpBnL\u0015\u0002@pE!\u0003\u0012/\u0001qY\u0014\b_fRhE\u001cK_gSnY32\u0001hX[\u0005Ua\u0001sN\u0018\u0004]{H{N\u001fK[f\u0001bJ\u0017\u0007S{F!M\u0014\u0019\u001at\u0001rJ\u0016\u0007\u0000TRrN\t\u001fSzO\u0015FDb^\t\u0002Nl\u0001UD\u0010\u000eT5hrX\u000e\u000e^\u0016f@lG9\u000e\\zSdd\u001d\rIpULB\u0015\u001eNp\u001d)\u000evX\u000fQhpPtN\b\u001f_qrdH\u000e\u0019SaXUD\u0010\u000eT+\u01e6)\u001eyF\u0017KLpSrB\u0014\u0005\u00077\u0010/\u001bYK_{BnO\u0012\u0005](\u0003T\u007f=F\u00027\u001e?!G\u0018UtQdE\rQ\u007f{WdG\u0014\u001b_5YlG\u0015\u0018\u0000fN`[\u001e\u0005L(\u0003i_\u000f\u001b\u0000:\u000erH\u0013\u000eWtR/S\u0016\u0007Iz@q\u0005\u0014\u0019]:RnJ\u000bD_{WdG\u0014\u001b_:\u0003!\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u000b[K\u001amLmE\bQV\"\u001c#C\u000f\u001fJ/\u000e.\\\f\u001c\u0014y@xN\t\\NpBi\u0005\u0018\u0004W:Vr\u0004\u000b\u0004V|Bx\u0004\u001d\nOyU#\u0015qK\u001a5\u0001=X\u0014\nJpOw\u00119\u0004^l\u001f\u000b\u000b[K\u001a5\u0001!\u000bG\u0018UtQdE\rQ|tTm_Ea\u001a5\u0001!\u000b[K\u001a5\u0001!\u000bG\r[`MuH\u0014\u000f_+M6\u0011\u0015\u0004[`UiN\u0015\u001fSv@uB\u0014\u0005\u0006:G`^\u0017\u001fYzEd\u0015qK\u001a5\u0001!\u000b[K\u001a5\u0001!\u0017\u001d\nOyUr_\t\u0002Tr\u001fUC\u001eKHpPtN\b\u001f\u001asNs\u000b\u001aKNzJdE[\u001c[f\u0001oD\u000fK[`UiN\u0015\u001fSv@uN\u001fW\u0015s@tG\u000f\u0018NgHoLEa\u001a5\u0001!\u000b[K\u001a5\u0001!\u000bG\r[`MuJ\u0018\u001fUg\u001f%P\t\u000eK`Dr_U\u001eHy\\=\u0004\u001d\nOyU`H\u000f\u0004H++!\u000b[K\u001a5\u0001!\u0017T\u0018UtQdE\rQ|tTm_Ea\u001a5\u0001!\u0017T\u0018UtQdE\rQxzEx\u0015qW\u0015fN`[\u001e\u0005L/do]\u001e\u0007UeD?\u0004fBoX\u027d)\u001eyF\u0017KLpSrB\u0014\u0005\u00077\u0010/\u001bYK_{BnO\u0012\u0005](\u0003T\u007f=F\u00027\u001e?!G\u0018UtQdE\rQ\u007f{WdG\u0014\u001b_5YlG\u0015\u0018\u0000fN`[\u001e\u0005L(\u0003i_\u000f\u001b\u0000:\u000ev\\\fEM&\u000fnY\u001cD\b%\u00112\u0004K^\u0015fN`[V\u000eTcDmD\u000b\u000e\u00185\u0001!\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u000b[\u0013WyOr\u0011\u0017\\\u00077Iu_\u000bQ\u0015:Vv\\U\u0007[lDs\u001c\u000f\u000eY}\u000fbD\u0016DMf\u000eqD\u0017\u0002Yl\u000egJ\u000e\u0007N7\u001f\u000b\u000b[K\u001a)RnJ\u000b\u000eTc\u001bCD\u001f\u0012\u0004\u001f\u0001!\u000b[K\u001a5\u0001=X\u0014\nJpOw\u0011=\nOyU?![K\u001a5\u0001!\u000b[K\u001a5\u0001=X\u0014\nJpOw\u00118\u0004^p\u001f\u000b\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u000b[WIz@qN\u0015\u001d\u0000C@m^\u001eUV\"\u001boD\u001a\u001eN}Do_\u0012\b[aHnEGDIz@qN\u0015\u001d\u0000C@m^\u001eU05\u0001!\u000b[K\u001a5\u0001!\u000b[W\u0015fN`[\u001e\u0005L/bnO\u001eU05\u0001!\u000b[K\u001a5\u0001!\u000b[WIz@qN\u0015\u001d\u0000GD`X\u0014\u0005\u0004\u001f\u0001!\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u0017\b\u0004[eDo]A?_mU!S\u0016\u0007\u0000y@oLFI_{\fTxYUn}D!Y\u001e\u001aOpRu\u000b\u001d\u0004H5@!_\u0014\u0000_{\u0001vJ\bKTzU!J\u000e\u001fRpOuB\u0018\nNpE=\u0004\b\u0004[eDo]A?_mU?![K\u001a5\u0001!\u000b[K\u001a5\u0001=\u0004\b\u0004[eDo]A9_tRnEEa\u001a5\u0001!\u000b[K\u001a5\u0001!\u000bG\u0018UtQdE\rQhzMd\u0015_\u0010HpPtN\b\u001f\u0014`SmVGDIz@qN\u0015\u001d\u0000GNmNEa\u001a5\u0001!\u000b[K\u001a)\u000erD\u001a\u001b_{W;m\u001a\u001eVa\u001f\u000b\u000b[K\u001a)\u000erD\u001a\u001b_{W;i\u0014\u000fC++=\u0004\b\u0004[eDo]A.TcDmD\u000b\u000e\u0004\"VNtG\u001f\u0005\u001da\u0001sN\b\u0004VcD!H\u0017\u0002_{U!b+K[qEsN\b\u0018\u0017PSsD\tK^|RqJ\u000f\bR|Of\u000b\u001e\u001d_{U,}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDMf\u000e3\u001bK^\u0015%\u0013.X\u0018DIvU\u0004fBoX\u0012:R;n\u0015\u001d_yNqNT\u0018\u0000WNeR'}Uu[AD\u0015bVv\u0005\fX\u0014zSf\u0004I[\n&\u000e1\u001eT\u0018UtQ,N\u0015\u001d_yNqN\u0006fN`[\u0015\u0018?)\u000evX\u000fQhpPtN\b\u001fipBtY\u0012\u001fCANjN\u00159_fQnE\b\u000e\u0004)\u000erD\u001a\u001b\u0000WNeREW\u0015fN`[A.TcDmD\u000b\u000e\u00045}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDMf\u000e3\u001bK_\u0015%\u0015.X\u001e\bOgHuRT\u0018Y:Rb_4)jdR2\u0005\\z\u0001yF\u0017\u0005I(\u0003i_\u000f\u001b\u0000:\u000ev\\\fEM&\u000fnY\u001cD\b%\u00111\u0004KR\u0015mLmO\b\u0002]6\u0003?-AId\u000b\t\u000eK`Dr_[\rUg\u0001`\u000b\u000f\u0004QpO!\\\u001a\u0018\u001a{Nu\u000b\u001a\u001eN}Do_\u0012\b[aDe9)\u000eyN\u0015\b\u0000VHqC\u001e\u0019ltMtNEW\u0015mDoHA(SeIdY?\nNt\u001f=\u0004\u0003\u000eTv\u001bDE\u0018\u0019CeUdO0\u000eC+\u00a2)YdE\u0018Q\u007f{BsR\u000b\u001f_qjdR[\u001cI`\u001bHOFITpVQY\u0014\u0004\\7\u0001yF\u0017\u0005I/YdE\u0018V\u0018}Uu[AD\u0015bVv\u0005\fX\u0014zSf\u0004I[\n$\u000e1\u001fT\u0013WyDoHXI\u0004)YdE\u0018Q\u007f{BsR\u000b\u001fSzOLN\u000f\u0003Uq\u0001@G\u001c\u0004H|UiFFIRaUq\u0011TDMbV/\\HEUgF.\u0019K[\u000b:\u00115\u0004\u0003\u0006VpOb\b\t\u0018[8\u0010^\u001eYK\u0015+\u0007aStX\u000f\u0005I";
                var4_3 = "QDgJ\u000e\u0007N^Dx\u000b\u0016\u001eIa\u0001cN[\u001bHzWhO\u001e\u000f\u001aaN!H\t\u000e[aD!J[?U~Dox\u001e\u0019L|Bd5)\u000evX\u000fQhpPtN\b\u001f_qqsD\u0014\rnzJdEEWMfU;g\u0012\r_aHlNEWMfT;n\u0003\u001bSgDr\u0015'}Uu[AD\u0015bVv\u0005\fX\u0014zSf\u0004I[\n&\u000e1\u001eT\u0018UtQ,N\u0015\u001d_yNqN\f:Us^\b\u001f\u0015\\Rr^\u001e\u001aGDp^\u001e\u0018NAXqN[\u0005Ua\u0001r^\u000b\u001bUgUdOU\n)\u000eJN\u0002\"TsN?\u001dV@oE\u0014\u001f\u001arDu\u000b\t\u000eK`Dr_\\\u0018\u001aqNb^\u0016\u000eTa&PSsD\tKHpCtB\u0017\u000fS{F!_\u0014\u0000_{\u0001rN\t\u001dSvD![\u0014\u0007SvX/\u0017PSsD\tK^|RqJ\u000f\bR|Of\u000b\u001e\u001d_{U&PSsD\tKHpCtB\u0017\u000fS{F!_\u0014\u0000_{\u0001rN\t\u001dSvD![\u0014\u0007SvX/\u0018)Vr_A)S{@sR(\u000eYgDu\u000b/\u0012Jp\u001c#&@O`I\u0017\u000e\u001aaN!L\u001e\u001f\u001aqDgJ\u000e\u0007N5rdY\r\u000eH5rRg[\u0000_l\u001b!#)YdE\u0018Qy|QiN\t/[a@?\u0017\u0003\u000eTv\u001bBB\u000b\u0003_gw`G\u000e\u000e\u0004\u001dfDs]\u0012\b_;W`G\u0012\u000f[aDVX\b?SxDr_\u001a\u0006JfAAIhX[\u0019_dTdX\u000fKYtOoD\u000fKXp\u0001sN\u0018\u0004]{H{N\u001fK[f\u0001`\u000b\r\nV|E!y\u001e\u001aOpRux\u001e\bOgHuR/\u0004QpO:7\u001f=X\u0014\nJ/cnO\u0002U\u0006bRu\u0011)\u000eK`Dr_(\u000eY`Sh_\u0002?U~Doy\u001e\u0018JzOrN[\u0013WyOr\u0011\f\u0018N(\u0003\u000e7\u0001yF\u0017\u0005I/VrX\u001eV\u0018\f:Us^\b\u001f\u0015\\Rr^\u001e\u001d)\u000evX\u000fQhpPtN\b\u001f_qrdH\u000e\u0019SaXUD\u0010\u000eT+\r7\u0001yF\u0017\u0005I/VrHFI)}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDIz@q\u0004\u001e\u0005LpMn[\u001eD\u001dV@oE\u0014\u001f\u001arDu\u000b\t\u000eK`Dr_\\\u0018\u001aqNb^\u0016\u000eTa\u001e7\u001f=\\\b\u001f\u0000GDp^\u001e\u0018NpERN\u0018\u001eH|Ux\u007f\u0014\u0000_{\u001f\u000f:rxF\u0016\u000eNgHb`\u001e\u0012\u0018+\u0013)\u000evX\u000fQx|O`Y\u00028_vSd_E\u0019VNtG\u001f\u0005\u001da\u0001sN\u001a\u000f\u001afHfE\u0012\u0005]5JdR\\)\u000evX\u000eQ\u007fmQhY\u001e\u0018\u0004)\u000evX\u000fQv|Gd_\u0012\u0006_+\u001d.\\\b\u001f\u0000GDp^\u001e\u0018NFDb^\t\u0002Nlun@\u001e\u0005hpRqD\u0015\u0018_+\u001d.X\u0014\nJ/cnO\u0002U\u0006:RnJ\u000bQ\u007f{WdG\u0014\u001b_+ GDc^\u0012\u0007^|Of\u000b\u000f\u0004QpO!X\u001e\u0019L|Bd\u000b\u000b\u0004V|Bx\u0005\tTRrN\t\u001fSzO)}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDIz@q\u0004\u001e\u0005LpMn[\u001eD\u0012:R;n\u0015\u001d_yNqNT\u0018\u0000WNeR\ffDs]\u001e\u0019yzOgB\u001c\u0015N\u001b\"v:\u0018IpSuB\u0014\u0005\u001ei\u007fRj6'\u001e\u0002/\u00010GDp^\u001e\u0018N5V`X[\u0002^pOuB\u001d\u0002_q\u0001`X[\u0004Tp\u0001gD\tKiTlM\u000bIE\n5un@\u001e\u00052GDp^\u001e\u0018N5Ux[\u001eKTzU!X\u000b\u000eY|GhN\u001fE\u001aAIhX[\u0002I5On_[\u0018OeQnY\u000f\u000e^;\u001f@O`I\u0017\u000e\u001aaN!L\u001e\u001f\u001aqDgJ\u000e\u0007N5rRg[\u0000_l\u001b!*)VrHA8_vTsB\u000f\u0012yzOuN\u0003\u001fnzJdEEWMfB;b\u001f\u000eTaHgB\u001e\u0019\u0004\u0019VNtG\u001f\u0005\u001da\u0001sN\u001a\u000f\u001afHfE\u0012\u0005]5JdR&AId\u000b\u0012\u0005NpSoJ\u0017KJzMhH\u0002KMtR!E\u0014\u001f\u001agDr[\u001e\bNpE!\u001b)RnJ\u000bQ\u007f{WdG\u0014\u001b_5YlG\u0015\u0018\u0000fN`[FIQGDp^\u001e\u0018N5HoH\u0017\u001e^pE!F\u0014\u0019_5UiJ\u0015KU{D!sN[\u00035RdH\u000e\u0019SaX!_\u0014\u0000_{\u0001vC\u0014\u0018_5JdR[\u0004M{DsX\u0013\u0002J5V`X[\u001bHzWdE\u0007aStX\u000f\u0005I\u0014FDb^\t\u0002Nl\u0001UD\u0010\u000eT5dsY\u0014\u0019\u0006fN`[\u0015\u00180ANjN\u0015KNlQd\u000b\u0015\u0004N5RqN\u0018\u0002\\|De\u0005[?R|R!B\bKTzU!X\u000e\u001bJzSuN\u001fE\u001aGDp^\u001e\u0018NAXqN[\u0005Ua\u0001r^\u000b\u001bUgUdOU\u0011}Uu[?\u0002]pRu\u0005\u001e\u0005[wMd<)VrX\u001eQipBtY\u0012\u001fCANjN\u00159_sDsN\u0015\b_+\u001dvX\b\u000e\u0000^Dxb\u001f\u000eTaHgB\u001e\u0019\u001aC@m^\u001e?CeD<\t(WNeR\\\u0018\u001avIhG\u001fK^zDr\u000b\u0015\u0004N5RdN\u0016KNz\u0001cN[\n\u001aGrU\u000bS\u001fANjN\u00158_gWhH\u001eK_{GnY\u0018\u0002Tr\u0001qD\u0017\u0002Yl\u001b!\u0002/\u0001\u0011}Uu[?\u0002]pRu\u0005\u001e\u0005[wMd\r7\u0001yF\u0017\u0005I/Vr^FI\u00027\u001f\u0015FDb^\t\u0002Nl\u0001UD\u0010\u000eT5hrX\u000e\u000e^\u0012/\u0001qY\u0014\b_fRhE\u001cK_gSnY3)\u000evX\b\u000e\u0000^Dxb\u001f\u000eTaHgB\u001e\u0019\u0004)\u000evX\b\u000e\u0000FDb^\t\u0002Nlun@\u001e\u0005hpGdY\u001e\u0005Yp\u001f?)\u000evX\u000fQhpPtN\b\u001fipBtY\u0012\u001fCANjN\u00159_fQnE\b\u000e\u0004)\u000erD\u001a\u001b\u0000WNeREW\u0015fN`[A.TcDmD\u000b\u000e\u0004b)\u000evX\u0018QsqDo_\u0012\rSpS?\u0017T\u001cIv\u001bRN\u0018\u001eH|Uxh\u0014\u0005NpYu\u007f\u0014\u0000_{\u001f=\u0004\f\u0018N/sdZ\u000e\u000eIaDex\u001e\bOgHuR/\u0004QpO?\u0017\f\u0018N/sdZ\u000e\u000eIaDe{\t\u0004Usun@\u001e\u0005\u0004\u001dfDs]\u0012\b_;W`G\u0012\u000f[aDVX\b?SxDr_\u001a\u0006Jf\u0014FDb^\t\u0002Nl\u0001UD\u0010\u000eT5dsY\u0014\u0019\u0015f@lG:\rNpSNM\u001d\u0018_alhE\u000e\u001f_ AStX\u000fKTtLdX\u000b\nYp\u0001oD\u000fKHpBnL\u0015\u0002@pE!\u0003\u0012/\u0001qY\u0014\b_fRhE\u001cK_gSnY32\u0001hX[\u0005Ua\u0001sN\u0018\u0004]{H{N\u001fK[f\u0001bJ\u0017\u0007S{F!M\u0014\u0019\u001at\u0001rJ\u0016\u0007\u0000TRrN\t\u001fSzO\u0015FDb^\t\u0002Nl\u0001UD\u0010\u000eT5hrX\u000e\u000e^\u0016f@lG9\u000e\\zSdd\u001d\rIpULB\u0015\u001eNp\u001d)\u000evX\u000fQhpPtN\b\u001f_qrdH\u000e\u0019SaXUD\u0010\u000eT+\u01e6)\u001eyF\u0017KLpSrB\u0014\u0005\u00077\u0010/\u001bYK_{BnO\u0012\u0005](\u0003T\u007f=F\u00027\u001e?!G\u0018UtQdE\rQ\u007f{WdG\u0014\u001b_5YlG\u0015\u0018\u0000fN`[\u001e\u0005L(\u0003i_\u000f\u001b\u0000:\u000erH\u0013\u000eWtR/S\u0016\u0007Iz@q\u0005\u0014\u0019]:RnJ\u000bD_{WdG\u0014\u001b_:\u0003!\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u000b[K\u001amLmE\bQV\"\u001c#C\u000f\u001fJ/\u000e.\\\f\u001c\u0014y@xN\t\\NpBi\u0005\u0018\u0004W:Vr\u0004\u000b\u0004V|Bx\u0004\u001d\nOyU#\u0015qK\u001a5\u0001=X\u0014\nJpOw\u00119\u0004^l\u001f\u000b\u000b[K\u001a5\u0001!\u000bG\u0018UtQdE\rQ|tTm_Ea\u001a5\u0001!\u000b[K\u001a5\u0001!\u000bG\r[`MuH\u0014\u000f_+M6\u0011\u0015\u0004[`UiN\u0015\u001fSv@uB\u0014\u0005\u0006:G`^\u0017\u001fYzEd\u0015qK\u001a5\u0001!\u000b[K\u001a5\u0001!\u0017\u001d\nOyUr_\t\u0002Tr\u001fUC\u001eKHpPtN\b\u001f\u001asNs\u000b\u001aKNzJdE[\u001c[f\u0001oD\u000fK[`UiN\u0015\u001fSv@uN\u001fW\u0015s@tG\u000f\u0018NgHoLEa\u001a5\u0001!\u000b[K\u001a5\u0001!\u000bG\r[`MuJ\u0018\u001fUg\u001f%P\t\u000eK`Dr_U\u001eHy\\=\u0004\u001d\nOyU`H\u000f\u0004H++!\u000b[K\u001a5\u0001!\u0017T\u0018UtQdE\rQ|tTm_Ea\u001a5\u0001!\u0017T\u0018UtQdE\rQxzEx\u0015qW\u0015fN`[\u001e\u0005L/do]\u001e\u0007UeD?\u0004fBoX\u027d)\u001eyF\u0017KLpSrB\u0014\u0005\u00077\u0010/\u001bYK_{BnO\u0012\u0005](\u0003T\u007f=F\u00027\u001e?!G\u0018UtQdE\rQ\u007f{WdG\u0014\u001b_5YlG\u0015\u0018\u0000fN`[\u001e\u0005L(\u0003i_\u000f\u001b\u0000:\u000ev\\\fEM&\u000fnY\u001cD\b%\u00112\u0004K^\u0015fN`[V\u000eTcDmD\u000b\u000e\u00185\u0001!\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u000b[\u0013WyOr\u0011\u0017\\\u00077Iu_\u000bQ\u0015:Vv\\U\u0007[lDs\u001c\u000f\u000eY}\u000fbD\u0016DMf\u000eqD\u0017\u0002Yl\u000egJ\u000e\u0007N7\u001f\u000b\u000b[K\u001a)RnJ\u000b\u000eTc\u001bCD\u001f\u0012\u0004\u001f\u0001!\u000b[K\u001a5\u0001=X\u0014\nJpOw\u0011=\nOyU?![K\u001a5\u0001!\u000b[K\u001a5\u0001=X\u0014\nJpOw\u00118\u0004^p\u001f\u000b\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u000b[WIz@qN\u0015\u001d\u0000C@m^\u001eUV\"\u001boD\u001a\u001eN}Do_\u0012\b[aHnEGDIz@qN\u0015\u001d\u0000C@m^\u001eU05\u0001!\u000b[K\u001a5\u0001!\u000b[W\u0015fN`[\u001e\u0005L/bnO\u001eU05\u0001!\u000b[K\u001a5\u0001!\u000b[WIz@qN\u0015\u001d\u0000GD`X\u0014\u0005\u0004\u001f\u0001!\u000b[K\u001a5\u0001!\u000b[K\u001a5\u0001!\u0017\b\u0004[eDo]A?_mU!S\u0016\u0007\u0000y@oLFI_{\fTxYUn}D!Y\u001e\u001aOpRu\u000b\u001d\u0004H5@!_\u0014\u0000_{\u0001vJ\bKTzU!J\u000e\u001fRpOuB\u0018\nNpE=\u0004\b\u0004[eDo]A?_mU?![K\u001a5\u0001!\u000b[K\u001a5\u0001=\u0004\b\u0004[eDo]A9_tRnEEa\u001a5\u0001!\u000b[K\u001a5\u0001!\u000bG\u0018UtQdE\rQhzMd\u0015_\u0010HpPtN\b\u001f\u0014`SmVGDIz@qN\u0015\u001d\u0000GNmNEa\u001a5\u0001!\u000b[K\u001a)\u000erD\u001a\u001b_{W;m\u001a\u001eVa\u001f\u000b\u000b[K\u001a)\u000erD\u001a\u001b_{W;i\u0014\u000fC++=\u0004\b\u0004[eDo]A.TcDmD\u000b\u000e\u0004\"VNtG\u001f\u0005\u001da\u0001sN\b\u0004VcD!H\u0017\u0002_{U!b+K[qEsN\b\u0018\u0017PSsD\tK^|RqJ\u000f\bR|Of\u000b\u001e\u001d_{U,}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDMf\u000e3\u001bK^\u0015%\u0013.X\u0018DIvU\u0004fBoX\u0012:R;n\u0015\u001d_yNqNT\u0018\u0000WNeR'}Uu[AD\u0015bVv\u0005\fX\u0014zSf\u0004I[\n&\u000e1\u001eT\u0018UtQ,N\u0015\u001d_yNqN\u0006fN`[\u0015\u0018?)\u000evX\u000fQhpPtN\b\u001fipBtY\u0012\u001fCANjN\u00159_fQnE\b\u000e\u0004)\u000erD\u001a\u001b\u0000WNeREW\u0015fN`[A.TcDmD\u000b\u000e\u00045}Uu[AD\u0015fBiN\u0016\nI;YlG\b\u0004[e\u000fnY\u001cDMf\u000e3\u001bK_\u0015%\u0015.X\u001e\bOgHuRT\u0018Y:Rb_4)jdR2\u0005\\z\u0001yF\u0017\u0005I(\u0003i_\u000f\u001b\u0000:\u000ev\\\fEM&\u000fnY\u001cD\b%\u00111\u0004KR\u0015mLmO\b\u0002]6\u0003?-AId\u000b\t\u000eK`Dr_[\rUg\u0001`\u000b\u000f\u0004QpO!\\\u001a\u0018\u001a{Nu\u000b\u001a\u001eN}Do_\u0012\b[aDe9)\u000eyN\u0015\b\u0000VHqC\u001e\u0019ltMtNEW\u0015mDoHA(SeIdY?\nNt\u001f=\u0004\u0003\u000eTv\u001bDE\u0018\u0019CeUdO0\u000eC+\u00a2)YdE\u0018Q\u007f{BsR\u000b\u001f_qjdR[\u001cI`\u001bHOFITpVQY\u0014\u0004\\7\u0001yF\u0017\u0005I/YdE\u0018V\u0018}Uu[AD\u0015bVv\u0005\fX\u0014zSf\u0004I[\n$\u000e1\u001fT\u0013WyDoHXI\u0004)YdE\u0018Q\u007f{BsR\u000b\u001fSzOLN\u000f\u0003Uq\u0001@G\u001c\u0004H|UiFFIRaUq\u0011TDMbV/\\HEUgF.\u0019K[\u000b:\u00115\u0004\u0003\u0006VpOb\b\t\u0018[8\u0010^\u001eYK\u0015+\u0007aStX\u000f\u0005I".length();
                var1_4 = 52;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 86;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = TokenServiceImpl.a(v0, TokenServiceImpl.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0016\u0019=\u0019Bh\u00142\u0013v[%7\u00048FC]\u001e+\u0005l\u0012MQ\b1L\"\u001f\u0016o,\u000f:lN\u0002\fW#\u0005%\u0019^H\u0004-\u0018";
                    var4_3 = "\u0016\u0019=\u0019Bh\u00142\u0013v[%7\u00048FC]\u001e+\u0005l\u0012MQ\b1L\"\u001f\u0016o,\u000f:lN\u0002\fW#\u0005%\u0019^H\u0004-\u0018".length();
                    var1_4 = 11;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 1;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = TokenServiceImpl.a(v0, TokenServiceImpl.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        TokenServiceImpl.p = var5;
        TokenServiceImpl.g = TokenServiceImpl.p[70];
        TokenServiceImpl.c = TokenServiceImpl.p[52];
        TokenServiceImpl.b = TokenServiceImpl.p[13];
        TokenServiceImpl.d = TokenServiceImpl.p[18];
        TokenServiceImpl.f = TokenServiceImpl.p[85];
        TokenServiceImpl.e = TokenServiceImpl.p[79];
        TokenServiceImpl.h = TokenServiceImpl.p[78];
        TokenServiceImpl.a = Logger.getLogger(TokenServiceImpl.class.getName());
    }

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

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x6C);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 67;
                    case 1 -> 119;
                    case 2 -> 87;
                    case 3 -> 125;
                    case 4 -> 45;
                    case 5 -> 61;
                    default -> 108;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    public class TokenServiceException
    extends Exception {
        static final long serialVersionUID = 7762542878026708184L;

        public TokenServiceException(Throwable throwable) {
            super(throwable);
        }

        public TokenServiceException(String string) {
            super(string);
        }

        public TokenServiceException(String string, Throwable throwable) {
            super(string, throwable);
        }
    }
}

