/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.XmlUtil
 *  com.l7tech.gateway.common.audit.AdminAuditRecord
 *  com.l7tech.gateway.common.audit.AuditDetail
 *  com.l7tech.gateway.common.audit.AuditRecord
 *  com.l7tech.gateway.common.audit.AuditRecordPropertiesDomMarshaller
 *  com.l7tech.gateway.common.audit.MessageSummaryAuditRecord
 *  com.l7tech.gateway.common.audit.SystemAuditRecord
 *  com.l7tech.policy.variable.Syntax$SyntaxErrorHandler
 *  jakarta.xml.bind.MarshalException
 */
package com.l7tech.server.policy.variable;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.common.audit.AdminAuditRecord;
import com.l7tech.gateway.common.audit.AuditDetail;
import com.l7tech.gateway.common.audit.AuditRecord;
import com.l7tech.gateway.common.audit.AuditRecordPropertiesDomMarshaller;
import com.l7tech.gateway.common.audit.MessageSummaryAuditRecord;
import com.l7tech.gateway.common.audit.SystemAuditRecord;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.server.policy.variable.aa;
import com.l7tech.server.policy.variable.ab;
import com.l7tech.server.policy.variable.ac;
import com.l7tech.server.policy.variable.ad;
import com.l7tech.server.policy.variable.ae;
import com.l7tech.server.policy.variable.af;
import com.l7tech.server.policy.variable.ag;
import com.l7tech.server.policy.variable.ah;
import com.l7tech.server.policy.variable.ai;
import com.l7tech.server.policy.variable.aj;
import com.l7tech.server.policy.variable.ak;
import com.l7tech.server.policy.variable.al;
import com.l7tech.server.policy.variable.am;
import com.l7tech.server.policy.variable.an;
import com.l7tech.server.policy.variable.ao;
import com.l7tech.server.policy.variable.ap;
import com.l7tech.server.policy.variable.aq;
import com.l7tech.server.policy.variable.b;
import com.l7tech.server.policy.variable.c;
import com.l7tech.server.policy.variable.d;
import com.l7tech.server.policy.variable.e;
import com.l7tech.server.policy.variable.f;
import com.l7tech.server.policy.variable.g;
import com.l7tech.server.policy.variable.h;
import com.l7tech.server.policy.variable.i;
import com.l7tech.server.policy.variable.j;
import com.l7tech.server.policy.variable.k;
import com.l7tech.server.policy.variable.l;
import com.l7tech.server.policy.variable.m;
import com.l7tech.server.policy.variable.n;
import com.l7tech.server.policy.variable.o;
import com.l7tech.server.policy.variable.p;
import com.l7tech.server.policy.variable.q;
import com.l7tech.server.policy.variable.r;
import com.l7tech.server.policy.variable.s;
import com.l7tech.server.policy.variable.t;
import com.l7tech.server.policy.variable.u;
import com.l7tech.server.policy.variable.v;
import com.l7tech.server.policy.variable.w;
import com.l7tech.server.policy.variable.x;
import com.l7tech.server.policy.variable.y;
import com.l7tech.server.policy.variable.z;
import com.l7tech.server.util.CompressedStringType;
import jakarta.xml.bind.MarshalException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.logging.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class AuditRecordSelector
implements ExpandVariables.Selector<AuditRecord> {
    private static final Logger a;
    private static final String b;
    private static final String c;
    static Map<String, aq<AuditRecord>> d;
    static Map<String, aq<SystemAuditRecord>> e;
    private static final AuditRecordPropertiesDomMarshaller f;
    static Map<String, aq<AdminAuditRecord>> g;
    static Map<String, aq<MessageSummaryAuditRecord>> h;
    static List<String> i;
    private static final String[] j;

    @Override
    public ExpandVariables.Selector.Selection select(String string, AuditRecord auditRecord, String string2, Syntax.SyntaxErrorHandler syntaxErrorHandler, boolean bl2) {
        block29: {
            AuditDetail[] auditDetailArray;
            block31: {
                block30: {
                    aq<MessageSummaryAuditRecord> aq2;
                    try {
                        if (auditRecord == null) {
                            a.warning(j[53]);
                            return null;
                        }
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditRecordSelector.a(numberFormatException);
                    }
                    aq<AuditRecord> aq3 = d.get(string2);
                    try {
                        if (aq3 != null) {
                            return aq3.getFieldValue(auditRecord, string2);
                        }
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditRecordSelector.a(numberFormatException);
                    }
                    if (auditRecord instanceof MessageSummaryAuditRecord) {
                        auditDetailArray = (AuditDetail[])auditRecord;
                        aq2 = h.get(string2);
                        try {
                            if (aq2 != null) {
                                return aq2.getFieldValue((MessageSummaryAuditRecord)auditDetailArray, string2);
                            }
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditRecordSelector.a(numberFormatException);
                        }
                    }
                    if (auditRecord instanceof AdminAuditRecord) {
                        auditDetailArray = (AdminAuditRecord)auditRecord;
                        aq2 = g.get(string2);
                        try {
                            if (aq2 != null) {
                                return aq2.getFieldValue((MessageSummaryAuditRecord)auditDetailArray, string2);
                            }
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditRecordSelector.a(numberFormatException);
                        }
                    }
                    if (auditRecord instanceof SystemAuditRecord) {
                        auditDetailArray = (SystemAuditRecord)auditRecord;
                        aq2 = e.get(string2);
                        try {
                            if (aq2 != null) {
                                return aq2.getFieldValue((MessageSummaryAuditRecord)auditDetailArray, string2);
                            }
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditRecordSelector.a(numberFormatException);
                        }
                    }
                    try {
                        try {
                            if (!string2.toLowerCase().startsWith(j[54])) break block29;
                            if (string2.length() >= j[54].length() + 1) break block30;
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw AuditRecordSelector.a(numberFormatException);
                        }
                        return null;
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditRecordSelector.a(numberFormatException);
                    }
                }
                auditDetailArray = auditRecord.getDetailsInOrder();
                try {
                    try {
                        if (auditDetailArray != null && auditDetailArray.length != 0) break block31;
                    }
                    catch (NumberFormatException numberFormatException) {
                        throw AuditRecordSelector.a(numberFormatException);
                    }
                    return new ExpandVariables.Selector.Selection(new AuditDetail[0]);
                }
                catch (NumberFormatException numberFormatException) {
                    throw AuditRecordSelector.a(numberFormatException);
                }
            }
            return AuditRecordSelector.a(string2, auditDetailArray, a);
        }
        try {
            if (i.contains(string2)) {
                return new ExpandVariables.Selector.Selection(null);
            }
        }
        catch (NumberFormatException numberFormatException) {
            throw AuditRecordSelector.a(numberFormatException);
        }
        return null;
    }

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

    static ExpandVariables.Selector.Selection a(String string, AuditDetail[] auditDetailArray, Logger logger) {
        String[] stringArray = j;
        string = string.substring(stringArray[41].length());
        try {
            if (string.equals(stringArray[1])) {
                return null;
            }
        }
        catch (NumberFormatException numberFormatException) {
            throw AuditRecordSelector.a(numberFormatException);
        }
        int n2 = string.indexOf(46);
        try {
            String string2;
            int n3;
            if (n2 == -1) {
                n3 = Integer.parseInt(string);
                string2 = null;
            } else {
                String string3;
                n3 = Integer.parseInt(string.substring(0, n2));
                try {
                    string3 = string.length() > n2 ? string.substring(n2 + 1) : null;
                }
                catch (NumberFormatException numberFormatException) {
                    throw AuditRecordSelector.a(numberFormatException);
                }
                string2 = string3;
            }
            return new ExpandVariables.Selector.Selection(auditDetailArray[n3], string2);
        }
        catch (NumberFormatException numberFormatException) {
            stringArray = j;
            logger.warning(stringArray[60]);
            return null;
        }
        catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) {
            logger.fine(j[17]);
            return null;
        }
    }

    private static String a(AuditRecord auditRecord) {
        Document document = XmlUtil.createEmptyDocument();
        try {
            Element element = f.marshal(document, auditRecord);
            document.appendChild(element);
            return XmlUtil.nodeToFormattedString((Node)element);
        }
        catch (MarshalException marshalException) {
            String[] stringArray = j;
            a.warning(stringArray[63]);
        }
        catch (IOException iOException) {
            a.warning(j[11]);
        }
        return null;
    }

    private static byte[] a(String string) {
        try {
            return CompressedStringType.compress(string);
        }
        catch (SQLException sQLException) {
            return null;
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[65];
                var3_1 = 0;
                var2_2 = "zlPoq^zwwt{\u0006ufSxjX\u0011kfNoq^l|P\\i{TYubZ\u0007tfNl\u007fWz\u000ekfNoq^l|PI~jEl\u0006x`Ivq^\u000eklHkw^xUbIzpSf\u001ajbKzzbzjsRqmU\\vmIzpDS|mZkv\u0004mjPz\u000blpXm0Y{IqRi-PmK~rY{9mHr{Bvz#TqzUg9eRm>Qj}jI?zUkxjQ?r_prvM\u001dLm\\}rU?ml\u001dr\u007fBlqbQs>@mvsXmjYzj\bxvIwJIo|\u0007lpXm0Y{\n|mIvjI1vjY\bufKzrckk\u000ekfNoq^l|PI~jEl+PmYzf\u0010plw\u001dpx\u0010}vvS{m\u0010yvq\u001d~kTvm#YzjQvu#Qpq[ji\tzlPoq^zww\u0010kfLj{CkJbKzzvsxd\u0006kfLEw@\u0006kfNEw@\u0010tbMow^xObQj{CPpg\u0004mzMz\bxvIwJIo|\u0006x`Ivq^\rxvIw{^kp`\\k{T\njfOiwSzVjY\f|mIvjI1zo\\lm\u000eklHkw^xUbIzpSf\u0005ufKzr+PmYzf\u0010plw\u001dpx\u0010}vvS{m\u0010yvq\u001d~kTvm#YzjQvu#Qpq[ji\tkfLj{CkPg\f|mIvjI1zo\\lm\u000ejfLj{^||MHr|Um\u0006wlYzWT\tjjZq\u007fDjkf\rvsXm\u007fDvvms~sU\tlpXm0^~tf\u001ajbKzzbzjsRqmU\\vmIzpDS|mZkv\u0006kfNEw@\b}fI~w\\l7\u0010kfLj{CkJbKzzvsxd\u0004wbPz\u0010tbMow^xObQj{CPpg\tps|{zBzjp\niqRo{BkpfN\u0019jbKzzbzhvXljspwwXqj|zwdIw\u0019jbKzzbzhvXljspwwXqj|zwdIw\u0006jw\\kkC\u0006jw\\kkC\rvsXm\u007fDvvms~sU\n|mIvjI1vjY)XvYvjbzzlO{MUs|`Ipl\n?xvYvj\u0010m|`Rmz\u0010vj#Sjr\\\b}fI~w\\l7\u0002pg\njfOiwSzVjY\u0007}fI~w\\l\u0011kfNoq^l|P\\i{TYubZ\u0006mkOpi^-PmK~rY{9mHr{Bvz#TqzUg9eRm>Qj}jI?zUkxjQ?r_prvM\u0006kfLEw@\u000bzlPoq^zwwt{";
                var4_3 = "zlPoq^zwwt{\u0006ufSxjX\u0011kfNoq^l|P\\i{TYubZ\u0007tfNl\u007fWz\u000ekfNoq^l|PI~jEl\u0006x`Ivq^\u000eklHkw^xUbIzpSf\u001ajbKzzbzjsRqmU\\vmIzpDS|mZkv\u0004mjPz\u000blpXm0Y{IqRi-PmK~rY{9mHr{Bvz#TqzUg9eRm>Qj}jI?zUkxjQ?r_prvM\u001dLm\\}rU?ml\u001dr\u007fBlqbQs>@mvsXmjYzj\bxvIwJIo|\u0007lpXm0Y{\n|mIvjI1vjY\bufKzrckk\u000ekfNoq^l|PI~jEl+PmYzf\u0010plw\u001dpx\u0010}vvS{m\u0010yvq\u001d~kTvm#YzjQvu#Qpq[ji\tzlPoq^zww\u0010kfLj{CkJbKzzvsxd\u0006kfLEw@\u0006kfNEw@\u0010tbMow^xObQj{CPpg\u0004mzMz\bxvIwJIo|\u0006x`Ivq^\rxvIw{^kp`\\k{T\njfOiwSzVjY\f|mIvjI1zo\\lm\u000eklHkw^xUbIzpSf\u0005ufKzr+PmYzf\u0010plw\u001dpx\u0010}vvS{m\u0010yvq\u001d~kTvm#YzjQvu#Qpq[ji\tkfLj{CkPg\f|mIvjI1zo\\lm\u000ejfLj{^||MHr|Um\u0006wlYzWT\tjjZq\u007fDjkf\rvsXm\u007fDvvms~sU\tlpXm0^~tf\u001ajbKzzbzjsRqmU\\vmIzpDS|mZkv\u0006kfNEw@\b}fI~w\\l7\u0010kfLj{CkJbKzzvsxd\u0004wbPz\u0010tbMow^xObQj{CPpg\tps|{zBzjp\niqRo{BkpfN\u0019jbKzzbzhvXljspwwXqj|zwdIw\u0019jbKzzbzhvXljspwwXqj|zwdIw\u0006jw\\kkC\u0006jw\\kkC\rvsXm\u007fDvvms~sU\n|mIvjI1vjY)XvYvjbzzlO{MUs|`Ipl\n?xvYvj\u0010m|`Rmz\u0010vj#Sjr\\\b}fI~w\\l7\u0002pg\njfOiwSzVjY\u0007}fI~w\\l\u0011kfNoq^l|P\\i{TYubZ\u0006mkOpi^-PmK~rY{9mHr{Bvz#TqzUg9eRm>Qj}jI?zUkxjQ?r_prvM\u0006kfLEw@\u000bzlPoq^zwwt{".length();
                var1_4 = 11;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = AuditRecordSelector.a(v0, AuditRecordSelector.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\f-\u001c=2\u0015\u007f-,]2?\u0002,1\"\u00113~\u0000-63\u0018-*\u0019:*\r86\t7;\u001e+0 \u001c+;\u0014";
                    var4_3 = "\f-\u001c=2\u0015\u007f-,]2?\u0002,1\"\u00113~\u0000-63\u0018-*\u0019:*\r86\t7;\u001e+0 \u001c+;\u0014".length();
                    var1_4 = 29;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 86;
                        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++] = AuditRecordSelector.a(v0, AuditRecordSelector.b(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;
            }
        }
        AuditRecordSelector.j = var5;
        AuditRecordSelector.c = AuditRecordSelector.j[31];
        AuditRecordSelector.b = AuditRecordSelector.j[10];
        AuditRecordSelector.a = Logger.getLogger(AuditRecordSelector.class.getName());
        AuditRecordSelector.d = new TreeMap<String, aq<AuditRecord>>(String.CASE_INSENSITIVE_ORDER);
        var0_6 = AuditRecordSelector.j;
        AuditRecordSelector.d.put(var0_6[23], new b());
        AuditRecordSelector.d.put(var0_6[55], new m());
        AuditRecordSelector.d.put(var0_6[30], new x());
        AuditRecordSelector.d.put(var0_6[15], new ai());
        AuditRecordSelector.d.put(var0_6[43], new al());
        AuditRecordSelector.d.put(var0_6[34], new am());
        AuditRecordSelector.d.put(var0_6[35], new an());
        AuditRecordSelector.d.put(var0_6[32], new ao());
        AuditRecordSelector.d.put(var0_6[8], new ap());
        AuditRecordSelector.d.put(var0_6[3], new c());
        AuditRecordSelector.d.put(var0_6[45], new d());
        AuditRecordSelector.d.put(var0_6[38], new e());
        AuditRecordSelector.d.put(var0_6[13], new f());
        AuditRecordSelector.d.put(var0_6[9], new g());
        AuditRecordSelector.d.put(var0_6[59], new h());
        AuditRecordSelector.d.put(var0_6[57], new i());
        AuditRecordSelector.d.put(var0_6[25], new j());
        AuditRecordSelector.d.put(var0_6[18], new k());
        AuditRecordSelector.d.put(var0_6[46], new l());
        AuditRecordSelector.d.put(var0_6[36], new n());
        AuditRecordSelector.d.put(var0_6[21], new o());
        AuditRecordSelector.d.put(var0_6[20], new p());
        AuditRecordSelector.d.put(var0_6[33], new q());
        AuditRecordSelector.d.put(var0_6[52], new r());
        AuditRecordSelector.e = new TreeMap<String, aq<SystemAuditRecord>>(String.CASE_INSENSITIVE_ORDER);
        AuditRecordSelector.e.put(var0_6[62], new s());
        AuditRecordSelector.e.put(var0_6[5], new t());
        AuditRecordSelector.f = new AuditRecordPropertiesDomMarshaller();
        AuditRecordSelector.g = new TreeMap<String, aq<AdminAuditRecord>>(String.CASE_INSENSITIVE_ORDER);
        AuditRecordSelector.g.put(var0_6[5], new u());
        AuditRecordSelector.h = new TreeMap<String, aq<MessageSummaryAuditRecord>>(String.CASE_INSENSITIVE_ORDER);
        AuditRecordSelector.h.put(var0_6[24], new v());
        AuditRecordSelector.h.put(var0_6[44], new w());
        AuditRecordSelector.h.put(var0_6[51], new y());
        AuditRecordSelector.h.put(var0_6[19], new z());
        AuditRecordSelector.h.put(var0_6[2], new aa());
        AuditRecordSelector.h.put(var0_6[6], new ab());
        AuditRecordSelector.h.put(var0_6[27], new ac());
        AuditRecordSelector.h.put(var0_6[50], new ad());
        AuditRecordSelector.h.put(var0_6[26], new ae());
        AuditRecordSelector.h.put(var0_6[16], new af());
        AuditRecordSelector.h.put(var0_6[7], new ag());
        AuditRecordSelector.h.put(var0_6[47], new ah());
        AuditRecordSelector.h.put(var0_6[40], new aj());
        AuditRecordSelector.h.put(var0_6[61], new ak());
        AuditRecordSelector.i = new ArrayList<String>();
        AuditRecordSelector.i.add(var0_6[0]);
        AuditRecordSelector.i.add(var0_6[5]);
        AuditRecordSelector.i.add(var0_6[28]);
        AuditRecordSelector.i.add(var0_6[14]);
        AuditRecordSelector.i.add(var0_6[12]);
        AuditRecordSelector.i.add(var0_6[22]);
        AuditRecordSelector.i.add(var0_6[37]);
        AuditRecordSelector.i.add(var0_6[42]);
        AuditRecordSelector.i.add(var0_6[58]);
        AuditRecordSelector.i.add(var0_6[29]);
        AuditRecordSelector.i.add(var0_6[48]);
        AuditRecordSelector.i.add(var0_6[39]);
        AuditRecordSelector.i.add(var0_6[56]);
        AuditRecordSelector.i.add(var0_6[49]);
        AuditRecordSelector.i.add(var0_6[64]);
        AuditRecordSelector.i.add(var0_6[4]);
        AuditRecordSelector.i.add(var0_6[40]);
        AuditRecordSelector.i.add(var0_6[61]);
        AuditRecordSelector.i.add(var0_6[0]);
        AuditRecordSelector.i.add(var0_6[5]);
    }

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

    private static char[] b(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 9);
        }
        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 -> 15;
                    case 1 -> 21;
                    case 2 -> 43;
                    case 3 -> 9;
                    case 4 -> 8;
                    case 5 -> 38;
                    default -> 9;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

