/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.PortRange
 *  com.l7tech.common.io.PortRanges
 *  com.l7tech.gateway.common.transport.InterfaceTag
 *  com.l7tech.gateway.common.transport.SsgConnector
 *  com.l7tech.gateway.common.transport.SsgConnector$Endpoint
 *  com.l7tech.gateway.common.transport.TransportDescriptor
 *  com.l7tech.objectmodel.Entity
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.util.ConfigFactory
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.Functions
 *  com.l7tech.util.Functions$Unary
 *  com.l7tech.util.InetAddressUtil
 *  com.l7tech.util.Pair
 *  org.springframework.beans.factory.DisposableBean
 *  org.springframework.beans.factory.InitializingBean
 *  org.springframework.context.ApplicationEvent
 *  org.springframework.transaction.annotation.Propagation
 *  org.springframework.transaction.annotation.Transactional
 */
package com.l7tech.server.transport;

import com.l7tech.common.io.PortRange;
import com.l7tech.common.io.PortRanges;
import com.l7tech.gateway.common.transport.InterfaceTag;
import com.l7tech.gateway.common.transport.SsgConnector;
import com.l7tech.gateway.common.transport.TransportDescriptor;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.HibernateEntityManager;
import com.l7tech.server.ServerConfig;
import com.l7tech.server.transport.ListenerException;
import com.l7tech.server.transport.SsgConnectorManager;
import com.l7tech.server.transport.TransportModule;
import com.l7tech.server.transport.a;
import com.l7tech.server.transport.b;
import com.l7tech.server.util.ApplicationEventProxy;
import com.l7tech.server.util.FirewallUtils;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions;
import com.l7tech.util.InetAddressUtil;
import com.l7tech.util.Pair;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.net.InetAddress;
import java.net.SocketException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationEvent;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

public class SsgConnectorManagerImpl
extends HibernateEntityManager<SsgConnector, EntityHeader>
implements SsgConnectorManager,
InitializingBean,
DisposableBean,
PropertyChangeListener {
    protected static final Logger logger;
    private static final String m;
    private final ServerConfig n;
    private final Map<Goid, SsgConnector> o = new LinkedHashMap<Goid, SsgConnector>();
    private final Map<SsgConnector.Endpoint, SsgConnector> p = Collections.synchronizedMap(new HashMap());
    private final Map<SsgConnector.Endpoint, SsgConnector> q = Collections.synchronizedMap(new HashMap());
    private final ConcurrentMap<String, Pair<TransportDescriptor, TransportModule>> r = new ConcurrentSkipListMap<String, Pair<TransportDescriptor, TransportModule>>(String.CASE_INSENSITIVE_ORDER);
    private final AtomicReference<Pair<String, Set<InterfaceTag>>> s = new AtomicReference<Object>(null);
    private static final String[] t;

    public SsgConnectorManagerImpl(ServerConfig serverConfig, ApplicationEventProxy applicationEventProxy) {
        this.n = serverConfig;
        applicationEventProxy.addApplicationListener(new a(this));
    }

    public Class<? extends Entity> getImpClass() {
        return SsgConnector.class;
    }

    @Override
    public Class<? extends Entity> getInterfaceClass() {
        return SsgConnector.class;
    }

    @Override
    public String getTableName() {
        return t[6];
    }

    @Override
    public EntityType getEntityType() {
        return EntityType.SSG_CONNECTOR;
    }

    public SsgConnector find(String string, SsgConnector.Endpoint endpoint) throws FindException {
        SsgConnector ssgConnector;
        block21: {
            SsgConnector ssgConnector2;
            try {
                if (string == null) {
                    throw new NullPointerException(t[18]);
                }
            }
            catch (FindException findException) {
                throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
            }
            try {
                if (endpoint == null) {
                    throw new NullPointerException(t[14]);
                }
            }
            catch (FindException findException) {
                throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
            }
            Map<SsgConnector.Endpoint, SsgConnector> map = null;
            if (SsgConnector.SCHEME_HTTP.equals(string)) {
                map = this.p;
            } else if (SsgConnector.SCHEME_HTTPS.equals(string)) {
                map = this.q;
            }
            try {
                ssgConnector2 = map == null ? null : map.get(endpoint);
            }
            catch (FindException findException) {
                throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
            }
            Object object = ssgConnector2;
            try {
                if (object != null) {
                    return object;
                }
            }
            catch (FindException findException) {
                throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
            }
            object = new HashMap();
            String[] stringArray = t;
            object.put(stringArray[4], Boolean.TRUE);
            object.put(stringArray[23], string);
            List list = this.findMatching(Collections.singletonList(object));
            ssgConnector = null;
            for (SsgConnector ssgConnector3 : list) {
                try {
                    if (!ssgConnector3.offersEndpoint(endpoint) || !string.equals(ssgConnector3.getScheme())) continue;
                }
                catch (FindException findException) {
                    throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
                }
                ssgConnector = ssgConnector3;
                break;
            }
            try {
                try {
                    if (ssgConnector == null || map == null) break block21;
                }
                catch (FindException findException) {
                    throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
                }
                map.put(endpoint, ssgConnector);
            }
            catch (FindException findException) {
                throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
            }
        }
        return ssgConnector;
    }

    private void a(String string, String string2, SsgConnector.Endpoint endpoint) throws FindException {
        block3: {
            SsgConnector ssgConnector;
            block2: {
                ssgConnector = this.find(string2, endpoint);
                try {
                    if (ssgConnector != null) break block2;
                    this.n.removeProperty(string);
                    break block3;
                }
                catch (FindException findException) {
                    throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
                }
            }
            this.n.putProperty(string, Integer.toString(ssgConnector.getPort()));
        }
        String[] stringArray = t;
        logger.info(stringArray[1] + string2 + stringArray[31] + this.n.getProperty(string));
    }

    private void a() {
        try {
            String[] stringArray = t;
            this.a(stringArray[15], SsgConnector.SCHEME_HTTP, SsgConnector.Endpoint.OTHER_SERVLETS);
            this.a(stringArray[0], SsgConnector.SCHEME_HTTPS, SsgConnector.Endpoint.OTHER_SERVLETS);
        }
        catch (FindException findException) {
            logger.log(Level.WARNING, t[16] + ExceptionUtils.getMessage((Throwable)findException), findException);
        }
    }

    @Override
    public String translateBindAddress(String string, int n2) throws ListenerException {
        List list;
        try {
            if (!this.looksLikeInterfaceTagName(string)) {
                return string;
            }
        }
        catch (SocketException socketException) {
            throw SsgConnectorManagerImpl.a(socketException);
        }
        Pair<String, Set<InterfaceTag>> pair = this.getInterfaceTagsCached();
        try {
            if (pair == null) {
                throw new ListenerException(t[27] + n2 + t[13] + string);
            }
        }
        catch (SocketException socketException) {
            throw SsgConnectorManagerImpl.a(socketException);
        }
        try {
            list = InetAddressUtil.findAllLocalInetAddresses();
        }
        catch (SocketException socketException) {
            String string2 = ExceptionUtils.getMessage((Throwable)socketException);
            String string3 = string;
            int n3 = n2;
            String[] stringArray = t;
            throw new ListenerException(stringArray[22] + n3 + stringArray[9] + string3 + stringArray[34] + string2);
        }
        InterfaceTag interfaceTag = this.a((Collection)pair.right, string);
        try {
            if (interfaceTag == null) {
                throw new ListenerException(t[11] + string + t[5] + n2 + ")");
            }
        }
        catch (SocketException socketException) {
            throw SsgConnectorManagerImpl.a(socketException);
        }
        Set set = interfaceTag.getIpPatterns();
        InetAddress inetAddress = null;
        block12: for (InetAddress inetAddress2 : list) {
            for (String string4 : set) {
                block18: {
                    try {
                        if (!InetAddressUtil.patternMatchesAddress((String)string4, (InetAddress)inetAddress2)) continue;
                        if (inetAddress != null) break block18;
                    }
                    catch (SocketException socketException) {
                        throw SsgConnectorManagerImpl.a(socketException);
                    }
                    inetAddress = inetAddress2;
                    continue;
                }
                String[] stringArray = t;
                logger.log(Level.WARNING, stringArray[29] + string + stringArray[30] + String.valueOf(inetAddress));
                break block12;
            }
        }
        try {
            if (inetAddress == null) {
                throw new ListenerException(t[20] + string + t[8] + n2 + ")");
            }
        }
        catch (SocketException socketException) {
            throw SsgConnectorManagerImpl.a(socketException);
        }
        return inetAddress.getHostAddress();
    }

    @Override
    @Transactional(propagation=Propagation.SUPPORTS)
    public void registerTransportProtocol(TransportDescriptor transportDescriptor, TransportModule transportModule) {
        block9: {
            String string;
            block8: {
                string = transportDescriptor.getScheme();
                try {
                    try {
                        if (string != null && string.trim().length() >= 1) break block8;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw SsgConnectorManagerImpl.a(nullPointerException);
                    }
                    throw new IllegalArgumentException(t[7]);
                }
                catch (NullPointerException nullPointerException) {
                    throw SsgConnectorManagerImpl.a(nullPointerException);
                }
            }
            Pair<TransportDescriptor, TransportModule> pair = this.r.put(string, (Pair<TransportDescriptor, TransportModule>)new Pair((Object)transportDescriptor, (Object)transportModule));
            try {
                try {
                    if (pair == null || pair.left == transportDescriptor) break block9;
                }
                catch (NullPointerException nullPointerException) {
                    throw SsgConnectorManagerImpl.a(nullPointerException);
                }
                logger.log(Level.WARNING, t[26] + string);
            }
            catch (NullPointerException nullPointerException) {
                throw SsgConnectorManagerImpl.a(nullPointerException);
            }
        }
    }

    @Override
    @Transactional(propagation=Propagation.SUPPORTS)
    public TransportModule unregisterTransportProtocol(String string) {
        TransportModule transportModule;
        Pair pair = (Pair)this.r.remove(string);
        try {
            transportModule = pair != null ? (TransportModule)pair.right : null;
        }
        catch (NullPointerException nullPointerException) {
            throw SsgConnectorManagerImpl.a(nullPointerException);
        }
        return transportModule;
    }

    @Override
    @Transactional(propagation=Propagation.SUPPORTS)
    public TransportDescriptor[] getTransportProtocols() {
        ArrayList<TransportDescriptor> arrayList = new ArrayList<TransportDescriptor>();
        Collection collection = this.r.values();
        for (Pair pair : collection) {
            arrayList.add((TransportDescriptor)pair.left);
        }
        return arrayList.toArray(new TransportDescriptor[arrayList.size()]);
    }

    @Override
    @Transactional(propagation=Propagation.SUPPORTS)
    public PortRanges getReservedPorts() {
        ArrayList<PortRange> arrayList = new ArrayList<PortRange>();
        String[] stringArray = t;
        String string = ConfigFactory.getProperty((String)stringArray[19], null);
        if (string != null) {
            String[] stringArray2;
            for (String string2 : stringArray2 = string.split(",")) {
                stringArray = t;
                String[] stringArray3 = string2.split(stringArray[10], 2);
                if (stringArray3.length <= 0) continue;
                try {
                    int n2;
                    int n3 = Integer.parseInt(stringArray3[0]);
                    try {
                        n2 = stringArray3.length < 2 ? n3 : Integer.parseInt(stringArray3[1]);
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SsgConnectorManagerImpl.a(illegalArgumentException);
                    }
                    int n4 = n2;
                    arrayList.add(new PortRange(n3, n4, false));
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    logger.log(Level.WARNING, t[21]);
                }
            }
        }
        return new PortRanges(arrayList);
    }

    protected boolean looksLikeInterfaceTagName(String string) {
        boolean bl2;
        block13: {
            block12: {
                block11: {
                    try {
                        block10: {
                            try {
                                try {
                                    if (string == null || string.length() < 1) break block10;
                                }
                                catch (NullPointerException nullPointerException) {
                                    throw SsgConnectorManagerImpl.a(nullPointerException);
                                }
                                if (!string.contains(":")) break block11;
                            }
                            catch (NullPointerException nullPointerException) {
                                throw SsgConnectorManagerImpl.a(nullPointerException);
                            }
                        }
                        return false;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw SsgConnectorManagerImpl.a(nullPointerException);
                    }
                }
                char c10 = string.charAt(0);
                try {
                    try {
                        if (c10 >= '0' && c10 <= '9') break block12;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw SsgConnectorManagerImpl.a(nullPointerException);
                    }
                    bl2 = true;
                    break block13;
                }
                catch (NullPointerException nullPointerException) {
                    throw SsgConnectorManagerImpl.a(nullPointerException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    private InterfaceTag a(Collection<InterfaceTag> collection, String string) {
        for (InterfaceTag interfaceTag : collection) {
            try {
                if (!interfaceTag.getName().equalsIgnoreCase(string)) continue;
                return interfaceTag;
            }
            catch (NullPointerException nullPointerException) {
                throw SsgConnectorManagerImpl.a(nullPointerException);
            }
        }
        return null;
    }

    private Pair<String, Set<InterfaceTag>> b() throws FindException, ParseException {
        Set set;
        String string = ConfigFactory.getUncachedConfig().getProperty(InterfaceTag.PROPERTY_NAME);
        try {
            set = string == null ? Collections.emptySet() : InterfaceTag.parseMultiple((String)string);
        }
        catch (FindException findException) {
            throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
        }
        Set set2 = set;
        return new Pair((Object)string, (Object)set2);
    }

    protected Pair<String, Set<InterfaceTag>> getInterfaceTagsCached() {
        Pair<String, Set<InterfaceTag>> pair = this.s.get();
        if (pair == null) {
            try {
                pair = this.b();
                this.s.set(pair);
            }
            catch (FindException findException) {
                String[] stringArray = t;
                logger.log(Level.WARNING, stringArray[3] + ExceptionUtils.getMessage((Throwable)findException), ExceptionUtils.getDebugException((Throwable)findException));
            }
            catch (ParseException parseException) {
                logger.log(Level.WARNING, t[24] + ExceptionUtils.getMessage((Throwable)parseException), ExceptionUtils.getDebugException((Throwable)parseException));
            }
        }
        return pair;
    }

    @Override
    public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
        block16: {
            boolean bl2;
            boolean bl3;
            Pair<String, Set<InterfaceTag>> pair;
            block15: {
                try {
                    if (!InterfaceTag.PROPERTY_NAME.equals(propertyChangeEvent.getPropertyName())) {
                        return;
                    }
                }
                catch (NullPointerException nullPointerException) {
                    throw SsgConnectorManagerImpl.a(nullPointerException);
                }
                pair = this.s.get();
                try {
                    try {
                        if (pair != null && pair.left != null) break block15;
                    }
                    catch (NullPointerException nullPointerException) {
                        throw SsgConnectorManagerImpl.a(nullPointerException);
                    }
                    return;
                }
                catch (NullPointerException nullPointerException) {
                    throw SsgConnectorManagerImpl.a(nullPointerException);
                }
            }
            this.s.set(null);
            Pair<String, Set<InterfaceTag>> pair2 = this.getInterfaceTagsCached();
            try {
                bl3 = pair2.left == null;
            }
            catch (NullPointerException nullPointerException) {
                throw SsgConnectorManagerImpl.a(nullPointerException);
            }
            try {
                bl2 = pair.left == null;
            }
            catch (NullPointerException nullPointerException) {
                throw SsgConnectorManagerImpl.a(nullPointerException);
            }
            try {
                try {
                    if (bl3 == bl2 && ((String)pair2.left).equals(pair.left)) break block16;
                }
                catch (NullPointerException nullPointerException) {
                    throw SsgConnectorManagerImpl.a(nullPointerException);
                }
                this.c();
            }
            catch (NullPointerException nullPointerException) {
                throw SsgConnectorManagerImpl.a(nullPointerException);
            }
        }
    }

    /*
     * Exception decompiling
     */
    private void c() {
        /*
         * 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: Started 2 blocks at once
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.getStartingBlocks(Op04StructuredStatement.java:412)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:487)
         *     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");
    }

    protected void initDao() throws Exception {
        super.initDao();
        for (SsgConnector ssgConnector : this.findAll()) {
            try {
                if (!ssgConnector.isEnabled()) continue;
                this.o.put(ssgConnector.getGoid(), ssgConnector);
            }
            catch (Exception exception) {
                throw SsgConnectorManagerImpl.a(exception);
            }
        }
        this.a();
        this.d();
    }

    public void destroy() throws Exception {
        this.e();
    }

    private void d() {
        File file = this.n.getLocalDirectoryProperty(t[33], true);
        List<Object> list = new ArrayList<SsgConnector>(this.o.values());
        list = Functions.map(list, (Functions.Unary)new b(this));
        FirewallUtils.openFirewallForConnectors(file, list);
    }

    private SsgConnector a(SsgConnector ssgConnector) {
        SsgConnector ssgConnector2 = ssgConnector.getCopy();
        try {
            String string = ssgConnector.getProperty(SsgConnector.PROP_BIND_ADDRESS);
            if (this.looksLikeInterfaceTagName(string)) {
                String string2 = this.translateBindAddress(string, ssgConnector.getPort());
                ssgConnector2.putProperty(SsgConnector.PROP_BIND_ADDRESS, string2);
            }
        }
        catch (ListenerException listenerException) {
            logger.log(Level.WARNING, t[25] + ExceptionUtils.getMessage((Throwable)listenerException), ExceptionUtils.getDebugException((Throwable)listenerException));
        }
        return ssgConnector2;
    }

    private void e() {
        File file = this.n.getLocalDirectoryProperty(t[17], true);
        FirewallUtils.closeFirewallForConnectors(file);
    }

    /*
     * Exception decompiling
     */
    private void a(ApplicationEvent var1_1) {
        /*
         * 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 [2[TRYBLOCK]], but top level block is 3[SWITCH]
         *     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");
    }

    /*
     * Loose catch block
     */
    private void a(Goid goid) {
        block7: {
            try {
                block6: {
                    SsgConnector ssgConnector = (SsgConnector)this.findByPrimaryKey(goid);
                    if (ssgConnector == null) break block6;
                    try {
                        block8: {
                            if (!ssgConnector.isEnabled()) break block6;
                            break block8;
                            catch (FindException findException) {
                                throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
                            }
                        }
                        this.o.put(goid, ssgConnector);
                        break block7;
                    }
                    catch (FindException findException) {
                        throw SsgConnectorManagerImpl.a((Exception)((Object)findException));
                    }
                }
                this.o.remove(goid);
            }
            catch (FindException findException) {
                String[] stringArray = t;
                logger.log(Level.WARNING, stringArray[32] + String.valueOf(goid) + stringArray[12] + ExceptionUtils.getMessage((Throwable)findException), findException);
            }
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[35];
                var3_1 = 0;
                var2_2 = "u#*E\u0010\u0002?Y28T\u0016>$c2\bU#*E\u0010\u0002?1]D(-F\t\u000bke)lQ\u0015\n*e#lG\n\u0000%t%8K\u0017\u001dkd5%J\u0002N\"\u007f2)V\u0003\u000f(tf(A\u0003\u0007%x2%K\u000b\u001dq13\"E\u0007\u0002.12#\u0004\u0003\u000b?r.lH\f\u001d?1)*\u0004\u0006\u0001%\u007f#/P\n\u001c8+f&D(-F\t\u000bke)lH\n\u000f/1/\"P\u0000\u001c-p%)\u0004\u0001\u000b-x(%P\f\u0001%b|l\u0007t(-F\t\u000b/\u001b1/?\u0004\u000e\u0000$f(l\f\u0003\u000191*%W\u0011\u000b%16#V\u0011N\tr)\"J\u0000\r?~47E.)\u0004\u0011\u001c*\u007f5<K\u0017\u001a\u000ft5/V\f\u001e?~4lI\u0010\u001d?16>K\u0013\u0007/tf-\u0004\u0015\u001c$e)/K\tN8r.)I\u0000@;1+-P\u0006\u0006.bf-J\u001cN%t2;K\u0017\u0005kp\"(V\u0000\u001d81)\"\u0004\u0011\u0006\"bf\"K\u0001\u000bk9 #VE\u0002\"b2)JE\u001e$c2l\u001113?M\u000b\tkx(8A\u0017\b*r#l\u0002Mk\u001e_)lM\u000b\u001a.c -G\u0000N/t %J\f\u001a\"~(lJ\u0004\u0003.uf\u0002+f\u001113?M\u000b\tkx(8A\u0017\b*r#l\bt((T\n\u0007%e\u000fu#*E\u0010\u0002?Y28T5\u00019eED(-F\t\u000bke)lQ\u0015\n*e#l@\u0000\b*d*8\u0004-:\u001fAf-J\u0001N\u0003E\u0012\u001cwE\u001e$c2?\u0004\u0003\u000191$9M\t\u001afx(lW\u0000\u001c=x%)W_N\fg'>`\f\u001c.r2#V\u001c\u0006b%$A\b\u000b)r)!\n\tY?t%$\n\u0016\u000b9g#>\n\u0011\u001c*\u007f5<K\u0017\u001aec#?A\u0017\u0018.u\u0016#V\u0011\u001d'_)lE\u0001\n9t5?\u0004\u0015\u000f?e#>JE\b$cf%J\u0011\u000b9w'/AE\u0000*|#(\u0004CX!\"K\u0017\u0007%vf%J\u0013\u000f'x\"lV\u0004\u0000,tf%JE\r$|h \u0013\u0011\u000b(yh?A\u0017\u0018.ch8V\u0004\u00008a)>PK\u001c.b#>R\u0000\n\u001b~48WKD(-F\t\u000bke)lH\n\u0001 13<\u0004\u000b\u000b?f)>OE\u0007%e#>B\u0004\r.bf;L\f\u0002.1 %J\u0001\u0007%vf-\u0004\b\u000f?r.lB\n\u001ck}/?P\u0000\u0000ka)>PE\u0006b%$A\b\u000b\u001eX(:E\t\u0007/1/\"P\u0000\u001c-p%)\u0004\u0001\u000b-x(%P\f\u0001%+f@D(-F\t\u000bke)lP\u0017\u000f%b*-P\u0000N)x((\u0004\u0004\n/c#?WE\u0019#x*)\u0004\u0010\u001e/p2%J\u0002N-x4)S\u0004\u0002'149H\u0000\u001dq1<\\)>AE\u001a#p(lK\u000b\u000bkp28A\b\u001e?12#\u0004\u0017\u000b,x58A\u0017N(d58K\bN?c'\"W\u0015\u00019ef<V\n\u001a$r) \u0004E_)lM\u000b\u001a.c -G\u0000N/t %J\f\u001a\"~(?\u0004\u0000\u0016\"b2w\u0004\u0010\u0000*s*)\u0004\u0011\u0001kw/\"@E\u0003*e%$\u0004\u0003\u000191*%W\u0011\u000b%16#V\u0011N)r)!\n\tY?t%$\n\u0016\u000b9g#>\n\u0011\u001c*\u007f5<K\u0017\u001aec#?A\u0017\u0018.u\u0016#V\u0011\u001d\nX(8A\u0017\b*r#lc1%#J\u0011\u000f\"\u007f5lT\u0004\u001a?t4\"WE\u0003*e%$M\u000b\tk|)>AE\u001a#p(lK\u000b\u000bk\u007f#8S\n\u001c 1'(@\u0017\u000b8b#?\u0004\n\u0000ke.%WE\u0000$u#b\u0004E9\"}*lQ\u0016\u000bkw/>W\u0011N&p2/LE\u0001-1\u000716#V\u0011Tk9D(-F\t\u000bke)lB\f\u0000/1,9W\u0011C*u\")@E\u000191k9T\u0001\u000f?t\"lG\n\u0000%t%8K\u0017N<x2$\u0004\n\u0007/1";
                var4_3 = "u#*E\u0010\u0002?Y28T\u0016>$c2\bU#*E\u0010\u0002?1]D(-F\t\u000bke)lQ\u0015\n*e#lG\n\u0000%t%8K\u0017\u001dkd5%J\u0002N\"\u007f2)V\u0003\u000f(tf(A\u0003\u0007%x2%K\u000b\u001dq13\"E\u0007\u0002.12#\u0004\u0003\u000b?r.lH\f\u001d?1)*\u0004\u0006\u0001%\u007f#/P\n\u001c8+f&D(-F\t\u000bke)lH\n\u000f/1/\"P\u0000\u001c-p%)\u0004\u0001\u000b-x(%P\f\u0001%b|l\u0007t(-F\t\u000b/\u001b1/?\u0004\u000e\u0000$f(l\f\u0003\u000191*%W\u0011\u000b%16#V\u0011N\tr)\"J\u0000\r?~47E.)\u0004\u0011\u001c*\u007f5<K\u0017\u001a\u000ft5/V\f\u001e?~4lI\u0010\u001d?16>K\u0013\u0007/tf-\u0004\u0015\u001c$e)/K\tN8r.)I\u0000@;1+-P\u0006\u0006.bf-J\u001cN%t2;K\u0017\u0005kp\"(V\u0000\u001d81)\"\u0004\u0011\u0006\"bf\"K\u0001\u000bk9 #VE\u0002\"b2)JE\u001e$c2l\u001113?M\u000b\tkx(8A\u0017\b*r#l\u0002Mk\u001e_)lM\u000b\u001a.c -G\u0000N/t %J\f\u001a\"~(lJ\u0004\u0003.uf\u0002+f\u001113?M\u000b\tkx(8A\u0017\b*r#l\bt((T\n\u0007%e\u000fu#*E\u0010\u0002?Y28T5\u00019eED(-F\t\u000bke)lQ\u0015\n*e#l@\u0000\b*d*8\u0004-:\u001fAf-J\u0001N\u0003E\u0012\u001cwE\u001e$c2?\u0004\u0003\u000191$9M\t\u001afx(lW\u0000\u001c=x%)W_N\fg'>`\f\u001c.r2#V\u001c\u0006b%$A\b\u000b)r)!\n\tY?t%$\n\u0016\u000b9g#>\n\u0011\u001c*\u007f5<K\u0017\u001aec#?A\u0017\u0018.u\u0016#V\u0011\u001d'_)lE\u0001\n9t5?\u0004\u0015\u000f?e#>JE\b$cf%J\u0011\u000b9w'/AE\u0000*|#(\u0004CX!\"K\u0017\u0007%vf%J\u0013\u000f'x\"lV\u0004\u0000,tf%JE\r$|h \u0013\u0011\u000b(yh?A\u0017\u0018.ch8V\u0004\u00008a)>PK\u001c.b#>R\u0000\n\u001b~48WKD(-F\t\u000bke)lH\n\u0001 13<\u0004\u000b\u000b?f)>OE\u0007%e#>B\u0004\r.bf;L\f\u0002.1 %J\u0001\u0007%vf-\u0004\b\u000f?r.lB\n\u001ck}/?P\u0000\u0000ka)>PE\u0006b%$A\b\u000b\u001eX(:E\t\u0007/1/\"P\u0000\u001c-p%)\u0004\u0001\u000b-x(%P\f\u0001%+f@D(-F\t\u000bke)lP\u0017\u000f%b*-P\u0000N)x((\u0004\u0004\n/c#?WE\u0019#x*)\u0004\u0010\u001e/p2%J\u0002N-x4)S\u0004\u0002'149H\u0000\u001dq1<\\)>AE\u001a#p(lK\u000b\u000bkp28A\b\u001e?12#\u0004\u0017\u000b,x58A\u0017N(d58K\bN?c'\"W\u0015\u00019ef<V\n\u001a$r) \u0004E_)lM\u000b\u001a.c -G\u0000N/t %J\f\u001a\"~(?\u0004\u0000\u0016\"b2w\u0004\u0010\u0000*s*)\u0004\u0011\u0001kw/\"@E\u0003*e%$\u0004\u0003\u000191*%W\u0011\u000b%16#V\u0011N)r)!\n\tY?t%$\n\u0016\u000b9g#>\n\u0011\u001c*\u007f5<K\u0017\u001aec#?A\u0017\u0018.u\u0016#V\u0011\u001d\nX(8A\u0017\b*r#lc1%#J\u0011\u000f\"\u007f5lT\u0004\u001a?t4\"WE\u0003*e%$M\u000b\tk|)>AE\u001a#p(lK\u000b\u000bk\u007f#8S\n\u001c 1'(@\u0017\u000b8b#?\u0004\n\u0000ke.%WE\u0000$u#b\u0004E9\"}*lQ\u0016\u000bkw/>W\u0011N&p2/LE\u0001-1\u000716#V\u0011Tk9D(-F\t\u000bke)lB\f\u0000/1,9W\u0011C*u\")@E\u000191k9T\u0001\u000f?t\"lG\n\u0000%t%8K\u0017N<x2$\u0004\n\u0007/1".length();
                var1_4 = 16;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = SsgConnectorManagerImpl.b(v0, SsgConnectorManagerImpl.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "?\u007ff8TDv*j{\u000eD\u0002s>";
                    var4_3 = "?\u007ff8TDv*j{\u000eD\u0002s>".length();
                    var1_4 = 12;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 27;
                        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++] = SsgConnectorManagerImpl.b(v0, SsgConnectorManagerImpl.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;
            }
        }
        SsgConnectorManagerImpl.t = var5;
        SsgConnectorManagerImpl.m = SsgConnectorManagerImpl.t[28];
        SsgConnectorManagerImpl.logger = Logger.getLogger(SsgConnectorManagerImpl.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] ^ 8);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String b(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 -> 82;
                    case 1 -> 5;
                    case 2 -> 15;
                    case 3 -> 103;
                    case 4 -> 38;
                    case 5 -> 45;
                    default -> 8;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

