/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.ProcResult
 *  com.l7tech.common.io.ProcUtils
 *  com.l7tech.gateway.common.cluster.ClusterContext
 *  com.l7tech.gateway.common.cluster.ClusterNodeInfo
 *  com.l7tech.gateway.common.log.LogAccessAdmin
 *  com.l7tech.gateway.common.log.LogFileInfo
 *  com.l7tech.gateway.common.log.LogSinkData
 *  com.l7tech.gateway.common.log.LogSinkQuery
 *  com.l7tech.gateway.common.log.SinkConfiguration
 *  com.l7tech.gateway.common.log.SinkConfiguration$SeverityThreshold
 *  com.l7tech.gateway.common.log.SinkConfiguration$SinkType
 *  com.l7tech.gateway.common.security.rbac.OperationType
 *  com.l7tech.gateway.common.security.rbac.OtherOperationName
 *  com.l7tech.gateway.common.security.rbac.Role
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.PersistentEntity
 *  com.l7tech.objectmodel.SaveException
 *  com.l7tech.objectmodel.UpdateException
 *  com.l7tech.util.ConfigFactory
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.Functions
 *  com.l7tech.util.Functions$Unary
 *  com.l7tech.util.Functions$UnaryThrows
 *  com.l7tech.util.IOUtils
 *  com.l7tech.util.InetAddressUtil
 *  com.l7tech.util.JdkLoggerConfigurator
 *  com.l7tech.util.Option
 *  com.l7tech.util.Pair
 *  com.l7tech.util.PoolByteArrayOutputStream
 *  com.l7tech.util.ResourceUtils
 *  com.l7tech.util.SyspropUtil
 *  com.l7tech.util.TextUtils
 *  com.l7tech.util.TruncatingInputStream
 *  com.l7tech.util.ValidationUtils
 *  org.jetbrains.annotations.NotNull
 *  org.springframework.context.ApplicationEvent
 *  org.springframework.transaction.annotation.Propagation
 *  org.springframework.transaction.annotation.Transactional
 */
package com.l7tech.server.log;

import com.l7tech.common.io.ProcResult;
import com.l7tech.common.io.ProcUtils;
import com.l7tech.gateway.common.cluster.ClusterContext;
import com.l7tech.gateway.common.cluster.ClusterNodeInfo;
import com.l7tech.gateway.common.log.LogAccessAdmin;
import com.l7tech.gateway.common.log.LogFileInfo;
import com.l7tech.gateway.common.log.LogSinkData;
import com.l7tech.gateway.common.log.LogSinkQuery;
import com.l7tech.gateway.common.log.SinkConfiguration;
import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.security.rbac.OtherOperationName;
import com.l7tech.gateway.common.security.rbac.Role;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.server.HibernateEntityManager;
import com.l7tech.server.ServerConfig;
import com.l7tech.server.cluster.ClusterContextFactory;
import com.l7tech.server.cluster.ClusterInfoManager;
import com.l7tech.server.event.EntityClassEvent;
import com.l7tech.server.log.ConsoleMessageSink;
import com.l7tech.server.log.DispatchingMessageSink;
import com.l7tech.server.log.FileMessageSink;
import com.l7tech.server.log.JdkLogConfig;
import com.l7tech.server.log.MessageCategory;
import com.l7tech.server.log.MessageSink;
import com.l7tech.server.log.MessageSinkSupport;
import com.l7tech.server.log.SinkHandler;
import com.l7tech.server.log.SinkManager;
import com.l7tech.server.log.StartupAwareHandler;
import com.l7tech.server.log.TrafficLogger;
import com.l7tech.server.log.d;
import com.l7tech.server.log.e;
import com.l7tech.server.log.g;
import com.l7tech.server.log.h;
import com.l7tech.server.log.i;
import com.l7tech.server.log.j;
import com.l7tech.server.log.k;
import com.l7tech.server.log.l;
import com.l7tech.server.log.m;
import com.l7tech.server.log.n;
import com.l7tech.server.log.o;
import com.l7tech.server.log.p;
import com.l7tech.server.log.syslog.SyslogManager;
import com.l7tech.server.log.syslog.SyslogProtocol;
import com.l7tech.server.log.syslog.TestingSyslogManager;
import com.l7tech.server.log.t;
import com.l7tech.server.security.rbac.RoleManager;
import com.l7tech.server.util.ApplicationEventProxy;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions;
import com.l7tech.util.IOUtils;
import com.l7tech.util.InetAddressUtil;
import com.l7tech.util.JdkLoggerConfigurator;
import com.l7tech.util.Option;
import com.l7tech.util.Pair;
import com.l7tech.util.PoolByteArrayOutputStream;
import com.l7tech.util.ResourceUtils;
import com.l7tech.util.SyspropUtil;
import com.l7tech.util.TextUtils;
import com.l7tech.util.TruncatingInputStream;
import com.l7tech.util.ValidationUtils;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.StringReader;
import java.net.ConnectException;
import java.nio.charset.Charset;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.CompletionException;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.security.auth.Subject;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.ApplicationEvent;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional(propagation=Propagation.REQUIRED, rollbackFor={Throwable.class}, noRollbackFor={FindException.class})
public class SinkManagerImpl
extends HibernateEntityManager<SinkConfiguration, EntityHeader>
implements SinkManager,
PropertyChangeListener {
    static final String m;
    static final String n;
    static final String o;
    private static final Logger p;
    private static final String q;
    private static final String r;
    private static final String s;
    private static final String t;
    private static final long u = 0x40000000L;
    private static final long v = 0x140000000L;
    private static final String w;
    private static final String x;
    private final DispatchingMessageSink y = new DispatchingMessageSink();
    private final MessageSink z = new p(this.y);
    private final ServerConfig A;
    private final SyslogManager B;
    private final TrafficLogger C;
    private final ClusterInfoManager D;
    private ClusterContextFactory E;
    private final RoleManager F;
    private final Collection<Logger> G = new ArrayList<Logger>();
    private static final String[] H;

    public SinkManagerImpl(ServerConfig serverConfig, SyslogManager syslogManager, TrafficLogger trafficLogger, ApplicationEventProxy applicationEventProxy, ClusterInfoManager clusterInfoManager, RoleManager roleManager) {
        if (serverConfig == null) {
            String[] stringArray = H;
            throw new IllegalArgumentException(stringArray[53]);
        }
        try {
            if (syslogManager == null) {
                throw new IllegalArgumentException(H[65]);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw SinkManagerImpl.a(illegalArgumentException);
        }
        this.A = serverConfig;
        this.B = syslogManager;
        this.C = trafficLogger;
        this.D = clusterInfoManager;
        this.F = roleManager;
        applicationEventProxy.addApplicationListener(new g(this));
    }

    @Override
    public long getMaximumFileStorageSpace() {
        long l2 = 0x140000000L;
        String[] stringArray = H;
        String string = this.A.getProperty(stringArray[67]);
        if (string != null) {
            try {
                l2 = Long.parseLong(string);
            }
            catch (NumberFormatException numberFormatException) {
                stringArray = H;
                p.log(Level.WARNING, stringArray[12], new String[]{stringArray[88], string});
            }
        }
        return l2;
    }

    @Override
    public long getReservedFileStorageSpace() {
        long l2 = 0L;
        Collection<SinkConfiguration> collection = this.h();
        for (SinkConfiguration sinkConfiguration : collection) {
            try {
                if (!sinkConfiguration.isEnabled() || !this.a(sinkConfiguration)) continue;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw SinkManagerImpl.a(illegalArgumentException);
            }
            l2 += this.c(sinkConfiguration);
        }
        return l2;
    }

    public Class<SinkConfiguration> getImpClass() {
        return SinkConfiguration.class;
    }

    @Override
    public Class<SinkConfiguration> getInterfaceClass() {
        return SinkConfiguration.class;
    }

    @Override
    public String getTableName() {
        return H[37];
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Loose catch block
     */
    @Override
    public boolean test(SinkConfiguration sinkConfiguration, String string) {
        boolean bl2;
        block16: {
            bl2 = true;
            if (sinkConfiguration == null) break block16;
            ArrayList<Closeable> arrayList = new ArrayList<Closeable>(10);
            TestingSyslogManager testingSyslogManager = new TestingSyslogManager(this.A);
            arrayList.add(testingSyslogManager);
            try {
                e e10 = new e(this.A, sinkConfiguration, testingSyslogManager, true);
                for (MessageCategory messageCategory : MessageCategory.values()) {
                    String string2;
                    Level level;
                    LogRecord logRecord;
                    LogRecord logRecord2;
                    block15: {
                        block14: {
                            if (!e10.a(messageCategory)) continue;
                            try {
                                block17: {
                                    LogRecord logRecord3;
                                    logRecord2 = logRecord3;
                                    logRecord = logRecord3;
                                    level = Level.INFO;
                                    if (string != null) break block14;
                                    break block17;
                                    catch (MessageSinkSupport.ConfigurationException configurationException) {
                                        throw SinkManagerImpl.a(configurationException);
                                    }
                                }
                                string2 = H[47];
                                break block15;
                            }
                            catch (MessageSinkSupport.ConfigurationException configurationException) {
                                throw SinkManagerImpl.a(configurationException);
                            }
                        }
                        string2 = string;
                    }
                    logRecord2(level, string2);
                    LogRecord logRecord4 = logRecord;
                    Level level2 = sinkConfiguration.getSeverity().toLoggingLevel();
                    try {
                        if (level2.intValue() > Level.INFO.intValue()) {
                            logRecord4.setLevel(level2);
                        }
                    }
                    catch (MessageSinkSupport.ConfigurationException configurationException) {
                        throw SinkManagerImpl.a(configurationException);
                    }
                    e10.message(messageCategory, logRecord4);
                    arrayList.add(e10);
                    for (int i2 = 1; i2 < sinkConfiguration.syslogHostList().size(); ++i2) {
                        testingSyslogManager.setTestingHost(i2);
                        e10 = new e(this.A, sinkConfiguration, testingSyslogManager, true);
                        e10.message(messageCategory, logRecord4);
                        arrayList.add(e10);
                    }
                    break;
                }
            }
            catch (MessageSinkSupport.ConfigurationException configurationException) {
                bl2 = false;
            }
            finally {
                this.a(arrayList.toArray(new Closeable[arrayList.size()]), 60000L);
            }
        }
        return bl2;
    }

    public void createRoles(SinkConfiguration sinkConfiguration) throws SaveException {
        String[] stringArray = H;
        if (this.A.getBooleanProperty(stringArray[16], true)) {
            for (Role role : SinkManagerImpl.createRolesForSink(sinkConfiguration)) {
                p.info(H[85] + role.getName());
                this.F.save((PersistentEntity)role);
            }
        }
    }

    public static Collection<Role> createRolesForSink(SinkConfiguration sinkConfiguration) {
        String string = TextUtils.truncStringMiddle((String)sinkConfiguration.getName(), (int)50);
        String[] stringArray = H;
        String string2 = MessageFormat.format(stringArray[17], string, sinkConfiguration.getGoid());
        Role role = new Role();
        role.setName(string2);
        role.addEntityPermission(OperationType.READ, EntityType.LOG_SINK, sinkConfiguration.getId());
        role.addEntityPermission(OperationType.READ, EntityType.CLUSTER_INFO, null);
        role.addEntityOtherPermission(EntityType.LOG_SINK, sinkConfiguration.getId(), OtherOperationName.LOG_VIEWER.getOperationName());
        role.setEntityType(EntityType.LOG_SINK);
        role.setEntityGoid(sinkConfiguration.getGoid());
        role.setDescription(stringArray[94]);
        return Collections.singletonList(role);
    }

    public void updateRoles(SinkConfiguration sinkConfiguration) throws UpdateException {
    }

    @Override
    public Goid save(SinkConfiguration sinkConfiguration) throws SaveException {
        Goid goid = super.save(sinkConfiguration);
        sinkConfiguration.setGoid(goid);
        return goid;
    }

    @Override
    public Collection<LogFileInfo> findAllFilesForSinkByNode(@NotNull String string, Goid goid) throws FindException {
        try {
            if (string == null) {
                SinkManagerImpl.b(0);
            }
        }
        catch (IOException iOException) {
            throw SinkManagerImpl.a(iOException);
        }
        ArrayList<LogFileInfo> arrayList = new ArrayList<LogFileInfo>();
        if (this.a(string)) {
            block17: {
                SinkConfiguration sinkConfiguration = (SinkConfiguration)this.findByPrimaryKey(goid);
                try {
                    if (sinkConfiguration == null || !sinkConfiguration.getType().equals((Object)SinkConfiguration.SinkType.FILE)) break block17;
                }
                catch (IOException iOException) {
                    throw SinkManagerImpl.a(iOException);
                }
                try {
                    String string2 = this.getSinkFilePattern(sinkConfiguration);
                    try {
                        if (string2 == null) {
                            throw new FindException(sinkConfiguration.getName());
                        }
                    }
                    catch (IOException iOException) {
                        throw SinkManagerImpl.a(iOException);
                    }
                    String string3 = string2.substring(0, string2.lastIndexOf("/"));
                    Object object = string2.substring(string2.lastIndexOf("/") + 1);
                    if (sinkConfiguration.isRollingEnabled()) {
                        String[] stringArray = H;
                        object = sinkConfiguration.getName() + "." + sinkConfiguration.getRollingInterval().getPattern().replaceAll(stringArray[75], stringArray[4]) + stringArray[91];
                    } else {
                        String[] stringArray = H;
                        object = ((String)object).replace(stringArray[90], stringArray[13]);
                        object = ((String)object).replace(stringArray[20], stringArray[93]);
                        object = ((String)object).replace(stringArray[56], "%");
                    }
                    Pattern pattern = Pattern.compile((String)object);
                    File file = new File(string3);
                    if (file.isDirectory()) {
                        File[] fileArray = file.listFiles(new h(this, pattern));
                        arrayList.addAll(Functions.map(Arrays.asList(fileArray), (Functions.Unary)new i(this)));
                    }
                }
                catch (IOException iOException) {
                    p.warning(H[7] + sinkConfiguration.getName());
                }
            }
            return arrayList;
        }
        Option<Collection<LogFileInfo>> option = this.a(string, new j(this, string, goid));
        try {
            if (option.isSome()) {
                arrayList.addAll((Collection)option.some());
            }
        }
        catch (IOException iOException) {
            throw SinkManagerImpl.a(iOException);
        }
        return arrayList;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Loose catch block
     */
    @Override
    public LogSinkData getSinkLogs(String string, Goid goid, String string2, LogSinkQuery logSinkQuery) throws FindException {
        LogSinkData logSinkData;
        block34: {
            block29: {
                t t2;
                PoolByteArrayOutputStream poolByteArrayOutputStream;
                TruncatingInputStream truncatingInputStream;
                InputStream inputStream;
                block23: {
                    String string3;
                    SinkConfiguration sinkConfiguration;
                    block24: {
                        logSinkData = null;
                        if (!this.a(string)) break block29;
                        inputStream = null;
                        truncatingInputStream = null;
                        poolByteArrayOutputStream = null;
                        t2 = null;
                        sinkConfiguration = (SinkConfiguration)this.findByPrimaryKey(goid);
                        try {
                            if (sinkConfiguration == null || !SinkConfiguration.SinkType.FILE.equals((Object)sinkConfiguration.getType())) break block23;
                        }
                        catch (FileNotFoundException fileNotFoundException) {
                            throw SinkManagerImpl.a(fileNotFoundException);
                        }
                        string3 = this.getSinkFilePattern(sinkConfiguration);
                        if (string3 != null) break block24;
                        LogSinkData logSinkData2 = null;
                        ResourceUtils.closeQuietly((Closeable[])new Closeable[]{inputStream, truncatingInputStream, poolByteArrayOutputStream, t2});
                        return logSinkData2;
                    }
                    try {
                        Object object;
                        String[] stringArray;
                        block30: {
                            long l2;
                            boolean bl2;
                            File file;
                            block28: {
                                boolean bl3;
                                long l3;
                                block33: {
                                    block25: {
                                        long l4;
                                        block27: {
                                            block26: {
                                                block31: {
                                                    File file2 = new File(string3);
                                                    String string4 = file2.getParent();
                                                    stringArray = H;
                                                    object = file2.getName().replace(stringArray[11], stringArray[93]).replace(stringArray[49], stringArray[93]);
                                                    if (sinkConfiguration.isRollingEnabled()) {
                                                        object = sinkConfiguration.getName() + "." + sinkConfiguration.getRollingInterval().getPattern().replaceAll(stringArray[26], stringArray[34]) + stringArray[70];
                                                    }
                                                    if (!string2.matches((String)object)) break block30;
                                                    file = new File(string4, string2);
                                                    bl2 = this.a(logSinkQuery.getLastRead(), string2, string4, file2.getName());
                                                    try {
                                                        long l5 = l3 = bl2 ? 0L : logSinkQuery.getStartPosition();
                                                    }
                                                    catch (FileNotFoundException fileNotFoundException) {
                                                        throw SinkManagerImpl.a(fileNotFoundException);
                                                    }
                                                    if (logSinkQuery.isFromEnd()) {
                                                        l3 = Math.max(0L, file.length() - l3 - 16384L);
                                                    }
                                                    String string5 = sinkConfiguration.getCategories();
                                                    bl3 = false;
                                                    if (string5 == null) break block25;
                                                    if (!string5.equals(SinkConfiguration.CATEGORY_SSPC_LOGS)) break block25;
                                                    break block31;
                                                    catch (FileNotFoundException fileNotFoundException) {
                                                        throw SinkManagerImpl.a(fileNotFoundException);
                                                    }
                                                }
                                                try {
                                                    block32: {
                                                        if (!logSinkQuery.isFromEnd()) break block26;
                                                        break block32;
                                                        catch (FileNotFoundException fileNotFoundException) {
                                                            throw SinkManagerImpl.a(fileNotFoundException);
                                                        }
                                                    }
                                                    l4 = file.length() - l3;
                                                    break block27;
                                                }
                                                catch (FileNotFoundException fileNotFoundException) {
                                                    throw SinkManagerImpl.a(fileNotFoundException);
                                                }
                                            }
                                            l4 = 131072L;
                                        }
                                        l2 = l4;
                                        String[] stringArray2 = new String[5];
                                        stringArray = H;
                                        stringArray2[0] = stringArray[1];
                                        stringArray2[1] = stringArray[6];
                                        stringArray2[2] = file.getAbsolutePath();
                                        stringArray2[3] = String.valueOf(l3);
                                        stringArray2[4] = String.valueOf(l2);
                                        String[] stringArray3 = stringArray2;
                                        ProcResult procResult = ProcUtils.exec((String[])stringArray3);
                                        inputStream = new ByteArrayInputStream(procResult.getOutput());
                                        bl3 = true;
                                        break block33;
                                    }
                                    inputStream = new FileInputStream(file);
                                }
                                l2 = 0L;
                                if (!bl3) {
                                    l2 = ((InputStream)inputStream).skip(l3);
                                }
                                try {
                                    if (bl3 || l2 >= l3) break block28;
                                }
                                catch (FileNotFoundException fileNotFoundException) {
                                    throw SinkManagerImpl.a(fileNotFoundException);
                                }
                                logSinkData = new LogSinkData(new byte[0], -1L, false, 0L, 0L);
                                break block23;
                            }
                            truncatingInputStream = new TruncatingInputStream(inputStream);
                            poolByteArrayOutputStream = new PoolByteArrayOutputStream(131072);
                            t2 = new t(this, (OutputStream)poolByteArrayOutputStream, 16384);
                            IOUtils.copyStream((InputStream)truncatingInputStream, (OutputStream)t2);
                            long l6 = System.currentTimeMillis();
                            long l7 = truncatingInputStream.getPosition();
                            if (l7 >= 0L) {
                                l7 += l2;
                            }
                            t2.finish();
                            logSinkData = new LogSinkData(poolByteArrayOutputStream.toByteArray(), l7, bl2, l6, file.length());
                            break block23;
                        }
                        stringArray = H;
                        p.warning(stringArray[44] + string2 + stringArray[21] + (String)object);
                    }
                    catch (FileNotFoundException fileNotFoundException) {
                        String[] stringArray = H;
                        p.info(stringArray[31] + fileNotFoundException.getMessage());
                        ResourceUtils.closeQuietly((Closeable[])new Closeable[]{inputStream, truncatingInputStream, poolByteArrayOutputStream, t2});
                    }
                    catch (IOException iOException) {
                        p.log(Level.WARNING, H[28] + iOException.getMessage(), ExceptionUtils.getDebugException((Throwable)iOException));
                        {
                            catch (Throwable throwable) {
                                ResourceUtils.closeQuietly((Closeable[])new Closeable[]{inputStream, truncatingInputStream, poolByteArrayOutputStream, t2});
                                throw throwable;
                            }
                        }
                        ResourceUtils.closeQuietly((Closeable[])new Closeable[]{inputStream, truncatingInputStream, poolByteArrayOutputStream, t2});
                    }
                }
                ResourceUtils.closeQuietly((Closeable[])new Closeable[]{inputStream, truncatingInputStream, poolByteArrayOutputStream, t2});
                break block34;
            }
            logSinkData = (LogSinkData)this.a(string, new k(this, string, goid, string2, logSinkQuery)).toNull();
        }
        return logSinkData;
    }

    /*
     * Loose catch block
     */
    private boolean a(long l2, String string, String string2, String string3) {
        block10: {
            try {
                if (l2 == 0L) {
                    return false;
                }
            }
            catch (NumberFormatException numberFormatException) {
                throw SinkManagerImpl.a(numberFormatException);
            }
            try {
                boolean bl2;
                block12: {
                    block11: {
                        String[] stringArray = H;
                        int n2 = string3.indexOf(stringArray[49]);
                        if (n2 < 0) {
                            return false;
                        }
                        Pattern pattern = Pattern.compile(H[61]);
                        Matcher matcher = pattern.matcher(string);
                        if (!matcher.find(n2)) break block10;
                        String string4 = matcher.group();
                        int n3 = Integer.parseInt(string4);
                        String string5 = string.replaceFirst(string4, Integer.toString(n3 + 1));
                        File file = new File(string2, string5);
                        if (file == null) break block10;
                        try {
                            block13: {
                                if (file.lastModified() <= l2) break block11;
                                break block13;
                                catch (NumberFormatException numberFormatException) {
                                    throw SinkManagerImpl.a(numberFormatException);
                                }
                            }
                            bl2 = true;
                            break block12;
                        }
                        catch (NumberFormatException numberFormatException) {
                            throw SinkManagerImpl.a(numberFormatException);
                        }
                    }
                    bl2 = false;
                }
                return bl2;
            }
            catch (NumberFormatException numberFormatException) {
                return false;
            }
        }
        return false;
    }

    @Override
    public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
        block6: {
            block5: {
                try {
                    if (!H[5].equals(propertyChangeEvent.getPropertyName())) break block5;
                    this.a((String)propertyChangeEvent.getOldValue(), (String)propertyChangeEvent.getNewValue());
                    break block6;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw SinkManagerImpl.a(illegalArgumentException);
                }
            }
            try {
                if (H[92].equals(propertyChangeEvent.getPropertyName())) {
                    this.f();
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw SinkManagerImpl.a(illegalArgumentException);
            }
        }
    }

    @Override
    public MessageSink getPublishingSink() {
        return this.z;
    }

    public static MessageSink getPublishingSink(Object object) {
        return ((SinkManager)object).getPublishingSink();
    }

    protected void initDao() {
        try {
            p.info(H[23]);
            if (this.applicationContext.containsBean(H[0])) {
                this.E = (ClusterContextFactory)this.applicationContext.getBean(H[24], ClusterContextFactory.class);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw SinkManagerImpl.a(illegalArgumentException);
        }
        this.a();
        this.a((String)null, (String)null);
        this.d();
        this.e();
        this.b();
        this.f();
        p.info(H[8]);
    }

    private void a(ApplicationEvent applicationEvent) {
        if (applicationEvent instanceof EntityClassEvent) {
            EntityClassEvent entityClassEvent = (EntityClassEvent)applicationEvent;
            try {
                if (SinkConfiguration.class.isAssignableFrom(entityClassEvent.getEntityClass())) {
                    this.f();
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw SinkManagerImpl.a(illegalArgumentException);
            }
        }
    }

    private void a() {
        Logger logger = Logger.getLogger("");
        logger.addHandler((Handler)((Object)new SinkHandler(this.y, MessageCategory.LOG)));
        String[] stringArray = H;
        Logger logger2 = Logger.getLogger(stringArray[30]);
        logger2.addHandler((Handler)((Object)new SinkHandler(this.y, MessageCategory.TRAFFIC)));
        String string = LogManager.getLogManager().getProperty(stringArray[10]);
        try {
            if (string != null) {
                logger2.setUseParentHandlers(Boolean.valueOf(string));
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw SinkManagerImpl.a(illegalArgumentException);
        }
    }

    private void b() {
        this.a(Logger.getLogger(""));
        this.a(JdkLogConfig.getInitialRootLogger());
    }

    private void a(Logger logger) {
        if (logger != null) {
            for (Handler handler : logger.getHandlers()) {
                try {
                    if (!(handler instanceof StartupAwareHandler)) continue;
                    logger.removeHandler(handler);
                    handler.close();
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw SinkManagerImpl.a(illegalArgumentException);
                }
            }
        }
    }

    private int c() {
        return ConfigFactory.getIntProperty((String)H[79], (int)2124);
    }

    private boolean a(String string) {
        boolean bl2;
        block5: {
            block4: {
                try {
                    try {
                        if (this.D != null && !string.equals(this.D.thisNodeId())) break block4;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                    bl2 = true;
                    break block5;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw SinkManagerImpl.a(illegalArgumentException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    private void a(String string, String string2) {
        Collection<Logger> collection = this.G;
        synchronized (collection) {
            String[] stringArray;
            String string3 = string2;
            if (string3 == null) {
                stringArray = H;
                string3 = this.A.getProperty(stringArray[87]);
            }
            try {
                Object object;
                String string4;
                String string5;
                Object object2;
                Properties properties = new Properties();
                properties.load(new StringReader(string3));
                Properties properties2 = new Properties();
                try {
                    if (string != null) {
                        properties2.load(new StringReader(string));
                    }
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw SinkManagerImpl.a(illegalArgumentException);
                }
                Properties properties3 = JdkLoggerConfigurator.getNonDefaultProperties();
                this.G.clear();
                for (Map.Entry<Object, Object> entry : properties.entrySet()) {
                    object2 = (String)entry.getKey();
                    string5 = (String)entry.getValue();
                    try {
                        if (!((String)object2).endsWith(H[14]) || properties3.getProperty((String)object2) != null) continue;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                    string4 = ((String)object2).substring(0, ((String)object2).length() - 6);
                    try {
                        object = Level.parse(string5);
                        Logger logger = Logger.getLogger(string4);
                        logger.setLevel((Level)object);
                        this.G.add(logger);
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        stringArray = H;
                        p.log(Level.CONFIG, stringArray[43], new Object[]{string5, string4});
                    }
                }
                LogManager logManager = LogManager.getLogManager();
                Iterator<Object> iterator = properties2.keySet().iterator();
                while (iterator.hasNext()) {
                    object2 = iterator.next();
                    string5 = (String)object2;
                    try {
                        if (!string5.endsWith(H[42]) || properties.getProperty(string5) != null) continue;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                    string4 = string5.substring(0, string5.length() - 6);
                    object = Logger.getLogger(string4);
                    boolean bl2 = false;
                    String string6 = logManager.getProperty(string5);
                    if (string6 != null) {
                        try {
                            ((Logger)object).setLevel(Level.parse(string6));
                            bl2 = true;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            // empty catch block
                        }
                    }
                    try {
                        if (bl2) continue;
                        ((Logger)object).setLevel(null);
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                }
                return;
            }
            catch (IOException iOException) {
                p.log(Level.WARNING, H[66], iOException);
            }
            return;
        }
    }

    private void d() {
        LogManager.getLogManager().addConfigurationListener(() -> {
            this.a();
            this.a((String)null, (String)null);
        });
    }

    private void e() {
        this.B.setConnectionListener(new o(this, this.applicationContext));
    }

    private void f() {
        ArrayList<MessageSink> arrayList = new ArrayList<MessageSink>();
        this.y.setMessageSinks(Collections.emptySet());
        Collection<SinkConfiguration> collection = this.h();
        for (SinkConfiguration sinkConfiguration : collection) {
            block21: {
                MessageSinkSupport messageSinkSupport;
                block25: {
                    block24: {
                        block23: {
                            block22: {
                                try {
                                    try {
                                        if (!sinkConfiguration.isEnabled()) break block21;
                                        if (!p.isLoggable(Level.CONFIG)) break block22;
                                    }
                                    catch (IllegalArgumentException illegalArgumentException) {
                                        throw SinkManagerImpl.a(illegalArgumentException);
                                    }
                                    p.log(Level.CONFIG, H[72], sinkConfiguration.getName());
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw SinkManagerImpl.a(illegalArgumentException);
                                }
                            }
                            try {
                                try {
                                    if (this.a(sinkConfiguration)) break block23;
                                    if (!p.isLoggable(Level.CONFIG)) continue;
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw SinkManagerImpl.a(illegalArgumentException);
                                }
                                p.log(Level.CONFIG, H[25], sinkConfiguration.getName());
                                continue;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw SinkManagerImpl.a(illegalArgumentException);
                            }
                        }
                        try {
                            try {
                                try {
                                    if (!sinkConfiguration.getType().equals((Object)SinkConfiguration.SinkType.FILE) || !this.A.getBooleanProperty(H[41], false)) break block24;
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw SinkManagerImpl.a(illegalArgumentException);
                                }
                                if (!p.isLoggable(Level.CONFIG)) continue;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw SinkManagerImpl.a(illegalArgumentException);
                            }
                            p.log(Level.CONFIG, H[18], sinkConfiguration.getName());
                            continue;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw SinkManagerImpl.a(illegalArgumentException);
                        }
                    }
                    messageSinkSupport = this.b(sinkConfiguration);
                    try {
                        try {
                            if (messageSinkSupport == null) continue;
                            if (!p.isLoggable(Level.CONFIG)) break block25;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw SinkManagerImpl.a(illegalArgumentException);
                        }
                        p.log(Level.CONFIG, H[33], sinkConfiguration.getName());
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                }
                arrayList.add(messageSinkSupport);
                continue;
            }
            try {
                if (!p.isLoggable(Level.CONFIG)) continue;
                p.log(Level.CONFIG, H[57], sinkConfiguration.getName());
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw SinkManagerImpl.a(illegalArgumentException);
            }
        }
        this.a(arrayList);
        this.c(arrayList);
        this.d(arrayList);
        this.b(arrayList);
        this.y.setMessageSinks(arrayList);
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Unable to fully structure code
     */
    private void a(List<MessageSink> var1_1) {
        var9_2 = SinkManagerImpl.H;
        var2_3 = this.A.getLocalDirectoryProperty(var9_2[86], true);
        var3_4 = new File(var2_3, var9_2[76]);
        var4_5 = new ArrayList<FileMessageSink>();
        for (MessageSink var6_7 : var1_1) {
            if (!(var6_7 instanceof FileMessageSink)) continue;
            var7_9 = (FileMessageSink)var6_7;
            if (var7_9.a(MessageCategory.AUDIT)) ** GOTO lbl15
            try {
                block9: {
                    if (!var7_9.a(MessageCategory.LOG)) continue;
                    break block9;
                    catch (IOException v0) {
                        throw SinkManagerImpl.a(v0);
                    }
                }
                var4_5.add(var7_9);
            }
            catch (IOException v1) {
                throw SinkManagerImpl.a(v1);
            }
        }
        var5_6 = null;
        try {
            var5_6 = new ObjectOutputStream(new FileOutputStream(var3_4));
            var5_6.writeObject(var4_5);
        }
        catch (IOException var6_8) {
            try {
                var9_2 = SinkManagerImpl.H;
                SinkManagerImpl.p.log(Level.WARNING, var9_2[68] + ExceptionUtils.getMessage((Throwable)var6_8) + var9_2[83], ExceptionUtils.getDebugException((Throwable)var6_8));
            }
            catch (Throwable var8_10) {
                ResourceUtils.closeQuietly(var5_6);
                throw var8_10;
            }
            ResourceUtils.closeQuietly((Closeable)var5_6);
        }
        ResourceUtils.closeQuietly((Closeable)var5_6);
    }

    private void b(List<MessageSink> list) {
        if (this.C != null) {
            boolean bl2 = false;
            for (MessageSink messageSink : list) {
                MessageSinkSupport messageSinkSupport;
                if (!(messageSink instanceof MessageSinkSupport) || !(messageSinkSupport = (MessageSinkSupport)messageSink).a(MessageCategory.TRAFFIC)) continue;
                bl2 = true;
                break;
            }
            try {
                if (p.isLoggable(Level.CONFIG)) {
                    p.log(Level.CONFIG, H[9] + bl2 + ".");
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw SinkManagerImpl.a(illegalArgumentException);
            }
            this.C.setEnabled(bl2);
        }
    }

    void c(List<MessageSink> list) {
        Object object;
        Handler handler;
        SinkConfiguration sinkConfiguration;
        block7: {
            SinkConfiguration.SeverityThreshold severityThreshold;
            block9: {
                block8: {
                    severityThreshold = SinkConfiguration.SeverityThreshold.INFO;
                    String[] stringArray = H;
                    String string = this.A.getProperty(stringArray[62]);
                    if (string != null) {
                        severityThreshold = this.a(string, severityThreshold);
                    }
                    sinkConfiguration = new SinkConfiguration();
                    stringArray = H;
                    sinkConfiguration.setName(stringArray[69]);
                    sinkConfiguration.setSeverity(severityThreshold);
                    sinkConfiguration.setCategories(SinkConfiguration.CATEGORY_AUDITS);
                    sinkConfiguration.setType(SinkConfiguration.SinkType.FILE);
                    boolean bl2 = SyspropUtil.getBoolean((String)stringArray[71], (boolean)false);
                    handler = ConsoleMessageSink.b();
                    try {
                        if (!bl2) break block7;
                        if (handler != null) break block8;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                    handler = new ConsoleMessageSink.L7ConsoleHandler();
                }
                object = SyspropUtil.getString((String)H[36], (String)"");
                try {
                    try {
                        if (object == null || ((String)object).isEmpty()) break block9;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                    sinkConfiguration.setCategories((String)object);
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw SinkManagerImpl.a(illegalArgumentException);
                }
            }
            handler.setLevel(severityThreshold.toLoggingLevel());
        }
        object = new ConsoleMessageSink(sinkConfiguration, handler);
        list.add((MessageSink)object);
    }

    private void d(List<MessageSink> list) {
        block6: {
            boolean bl2 = false;
            for (MessageSink messageSink : list) {
                MessageSinkSupport messageSinkSupport;
                if (!(messageSink instanceof MessageSinkSupport) || !(messageSinkSupport = (MessageSinkSupport)messageSink).a(MessageCategory.TRAFFIC)) continue;
                bl2 = true;
                break;
            }
            if (!bl2) {
                FileMessageSink fileMessageSink;
                block7: {
                    fileMessageSink = this.g();
                    try {
                        try {
                            if (fileMessageSink == null) break block6;
                            if (!p.isLoggable(Level.CONFIG)) break block7;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw SinkManagerImpl.a(illegalArgumentException);
                        }
                        p.log(Level.CONFIG, H[77]);
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw SinkManagerImpl.a(illegalArgumentException);
                    }
                }
                list.add(fileMessageSink);
            }
        }
    }

    private FileMessageSink g() {
        FileMessageSink fileMessageSink = null;
        String[] stringArray = H;
        boolean bl2 = this.A.getBooleanProperty(stringArray[45], false);
        String string = this.A.getProperty(stringArray[54]);
        String string2 = this.A.getProperty(stringArray[15]);
        String string3 = this.A.getProperty(stringArray[2]);
        if (bl2) {
            try {
                String string4 = new File(string).getName();
                if (string4.endsWith(stringArray[35])) {
                    string4 = string4.substring(0, string4.length() - stringArray[48].length());
                }
                string4 = string4.replace('%', '_');
                SinkConfiguration sinkConfiguration = new SinkConfiguration();
                sinkConfiguration.setName(string4);
                sinkConfiguration.setType(SinkConfiguration.SinkType.FILE);
                sinkConfiguration.setSeverity(SinkConfiguration.SeverityThreshold.INFO);
                sinkConfiguration.setCategories(SinkConfiguration.CATEGORY_TRAFFIC_LOGS);
                sinkConfiguration.setProperty(SinkConfiguration.PROP_FILE_MAX_SIZE, string2);
                sinkConfiguration.setProperty(SinkConfiguration.PROP_FILE_LOG_COUNT, string3);
                sinkConfiguration.setProperty(SinkConfiguration.PROP_FILE_FORMAT, SinkConfiguration.FILE_FORMAT_RAW);
                fileMessageSink = new FileMessageSink(this.A, sinkConfiguration);
            }
            catch (MessageSinkSupport.ConfigurationException configurationException) {
                p.log(Level.WARNING, H[51], configurationException);
            }
        }
        return fileMessageSink;
    }

    private Collection<SinkConfiguration> h() {
        List<SinkConfiguration> list = Collections.emptyList();
        try {
            list = this.findAll();
        }
        catch (FindException findException) {
            p.log(Level.WARNING, H[73], findException);
        }
        return list;
    }

    /*
     * Unable to fully structure code
     */
    private boolean a(SinkConfiguration var1_1) {
        block44: {
            block43: {
                block42: {
                    var3_2 = var1_1.getName();
                    var4_3 = var1_1.getType();
                    var5_4 = var1_1.getSeverity();
                    try {
                        try {
                            try {
                                try {
                                    if (var3_2 == null || var4_3 == null) break block42;
                                }
                                catch (IllegalArgumentException v0) {
                                    throw SinkManagerImpl.a(v0);
                                }
                                if (var5_4 == null) break block42;
                            }
                            catch (IllegalArgumentException v1) {
                                throw SinkManagerImpl.a(v1);
                            }
                            if (!ValidationUtils.isValidCharacters((CharSequence)var3_2, (String)(ValidationUtils.ALPHA_NUMERIC + SinkManagerImpl.H[52]))) break block42;
                        }
                        catch (IllegalArgumentException v2) {
                            throw SinkManagerImpl.a(v2);
                        }
                        v3 = true;
                        break block43;
                    }
                    catch (IllegalArgumentException v4) {
                        throw SinkManagerImpl.a(v4);
                    }
                }
                v3 = false;
            }
            var2_5 = v3;
            try {
                if (!var2_5) break block44;
            }
            catch (IllegalArgumentException v5) {
                throw SinkManagerImpl.a(v5);
            }
            {
                ** switch (com.l7tech.server.log.n.a[var4_3.ordinal()])
            }
lbl-1000:
            // 1 sources

            {
                case 1: {
                    var6_6 = var1_1.getProperty(SinkConfiguration.PROP_FILE_FORMAT);
                    var7_7 = var1_1.getProperty(SinkConfiguration.PROP_FILE_LOG_COUNT);
                    var8_8 = var1_1.getProperty(SinkConfiguration.PROP_FILE_MAX_SIZE);
                    try {
                        try {
                            try {
                                try {
                                    try {
                                        if (var6_6 != null && var7_7 != null) {
                                        }
                                        ** GOTO lbl67
                                    }
                                    catch (IllegalArgumentException v6) {
                                        throw SinkManagerImpl.a(v6);
                                    }
                                    if (var8_8 != null) {
                                    }
                                    ** GOTO lbl67
                                }
                                catch (IllegalArgumentException v7) {
                                    throw SinkManagerImpl.a(v7);
                                }
                                if (ValidationUtils.isValidLong((String)var7_7, (boolean)false, (long)1L, (long)1000L)) {
                                }
                                ** GOTO lbl67
                            }
                            catch (IllegalArgumentException v8) {
                                throw SinkManagerImpl.a(v8);
                            }
                            if (ValidationUtils.isValidLong((String)var8_8, (boolean)false, (long)1L, (long)0x80000000L)) {
                            }
                            ** GOTO lbl67
                        }
                        catch (IllegalArgumentException v9) {
                            throw SinkManagerImpl.a(v9);
                        }
                        v10 = true;
                        ** GOTO lbl68
                    }
                    catch (IllegalArgumentException v11) {
                        throw SinkManagerImpl.a(v11);
                    }
lbl67:
                    // 4 sources

                    v10 = false;
lbl68:
                    // 2 sources

                    var2_5 = v10;
                    break;
                }
lbl70:
                // 1 sources

                case 2: {
                    var9_9 = var1_1.syslogHostList();
                    var10_10 = var1_1.getProperty(SinkConfiguration.PROP_SYSLOG_PROTOCOL);
                    var11_11 = var1_1.getProperty(SinkConfiguration.PROP_SYSLOG_FACILITY);
                    try {
                        try {
                            try {
                                try {
                                    try {
                                        if (var10_10 != null && var11_11 != null) {
                                        }
                                        ** GOTO lbl103
                                    }
                                    catch (IllegalArgumentException v12) {
                                        throw SinkManagerImpl.a(v12);
                                    }
                                    if (ValidationUtils.isValidInteger((String)var11_11, (boolean)false, (int)0, (int)124)) {
                                    }
                                    ** GOTO lbl103
                                }
                                catch (IllegalArgumentException v13) {
                                    throw SinkManagerImpl.a(v13);
                                }
                                if (this.b(var10_10)) {
                                }
                                ** GOTO lbl103
                            }
                            catch (IllegalArgumentException v14) {
                                throw SinkManagerImpl.a(v14);
                            }
                            if (this.e(var9_9)) {
                            }
                            ** GOTO lbl103
                        }
                        catch (IllegalArgumentException v15) {
                            throw SinkManagerImpl.a(v15);
                        }
                        v16 = true;
                        ** GOTO lbl104
                    }
                    catch (IllegalArgumentException v17) {
                        throw SinkManagerImpl.a(v17);
                    }
lbl103:
                    // 4 sources

                    v16 = var2_5 = false;
lbl104:
                    // 2 sources

                    if (!var2_5) break;
                    var13_13 = SinkManagerImpl.H;
                    var12_12 = var1_1.getProperty(SinkConfiguration.PROP_SYSLOG_CHAR_SET);
                    var2_5 = var13_13[60].equals(var12_12) != false ? Charset.isSupported(var13_13[22]) : Charset.isSupported(var12_12);
                }
            }
        }
        return var2_5;
    }

    private MessageSinkSupport b(SinkConfiguration sinkConfiguration) {
        MessageSinkSupport messageSinkSupport = null;
        SinkConfiguration.SinkType sinkType = sinkConfiguration.getType();
        try {
            switch (com.l7tech.server.log.n.a[sinkType.ordinal()]) {
                case 1: {
                    String string = sinkConfiguration.getCategories();
                    try {
                        if (string == null || string.equals(SinkConfiguration.CATEGORY_SSPC_LOGS)) break;
                    }
                    catch (MessageSinkSupport.ConfigurationException configurationException) {
                        throw SinkManagerImpl.a(configurationException);
                    }
                    messageSinkSupport = new FileMessageSink(this.A, sinkConfiguration);
                    break;
                }
                case 2: {
                    messageSinkSupport = new e(this.A, sinkConfiguration, this.B);
                    break;
                }
                default: {
                    String[] stringArray = H;
                    p.log(Level.WARNING, stringArray[89], sinkType);
                    break;
                }
            }
        }
        catch (MessageSinkSupport.ConfigurationException configurationException) {
            String[] stringArray = H;
            p.log(Level.WARNING, stringArray[46] + sinkConfiguration.getName() + stringArray[80], configurationException);
        }
        return messageSinkSupport;
    }

    /*
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    private long c(SinkConfiguration sinkConfiguration) {
        long l2 = 0L;
        SinkConfiguration.SinkType sinkType = sinkConfiguration.getType();
        try {
            if (sinkType == null) return l2;
            switch (com.l7tech.server.log.n.a[sinkType.ordinal()]) {
                case 1: {
                    long l3 = Long.parseLong(sinkConfiguration.getProperty(SinkConfiguration.PROP_FILE_LOG_COUNT));
                    long l4 = Long.parseLong(sinkConfiguration.getProperty(SinkConfiguration.PROP_FILE_MAX_SIZE));
                    l2 += l3 * l4 * 1024L;
                    return l2;
                }
                default: {
                    return l2;
                }
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw SinkManagerImpl.a(illegalArgumentException);
        }
    }

    private boolean b(String string) {
        boolean bl2;
        try {
            SyslogProtocol.valueOf(string);
            bl2 = true;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            bl2 = false;
        }
        return bl2;
    }

    private boolean e(List<String> list) {
        boolean bl2;
        block6: {
            block5: {
                bl2 = true;
                try {
                    if (list != null && !list.isEmpty()) break block5;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw SinkManagerImpl.a(illegalArgumentException);
                }
                bl2 = false;
                break block6;
            }
            for (String string : list) {
                Pair pair = InetAddressUtil.getHostAndPort((String)string, null);
                try {
                    if (ValidationUtils.isValidDomain((String)InetAddressUtil.stripIpv6Brackets((String)((String)pair.left))) && ValidationUtils.isValidInteger((String)((String)pair.right), (boolean)false, (int)1, (int)65535)) continue;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw SinkManagerImpl.a(illegalArgumentException);
                }
                bl2 = false;
                break;
            }
        }
        return bl2;
    }

    private SinkConfiguration.SeverityThreshold a(String string, SinkConfiguration.SeverityThreshold severityThreshold) {
        SinkConfiguration.SeverityThreshold severityThreshold2 = severityThreshold;
        try {
            severityThreshold2 = SinkConfiguration.SeverityThreshold.valueOf((String)string);
        }
        catch (IllegalArgumentException illegalArgumentException) {
            // empty catch block
        }
        return severityThreshold2;
    }

    private void a(Closeable[] closeableArray, long l2) {
        Thread thread = new Thread((Runnable)new l(this, l2, closeableArray), H[95]);
        thread.setDaemon(true);
        thread.start();
    }

    protected String getSinkFilePattern(SinkConfiguration sinkConfiguration) throws IOException {
        String string;
        block7: {
            Object object;
            block6: {
                String string2;
                block5: {
                    string = null;
                    string2 = sinkConfiguration.getCategories();
                    try {
                        if (!sinkConfiguration.isEnabled() || string2.equals(SinkConfiguration.CATEGORY_SSPC_LOGS)) break block5;
                    }
                    catch (IOException iOException) {
                        throw SinkManagerImpl.a(iOException);
                    }
                    MessageSinkSupport messageSinkSupport = this.y.getMessageSink(sinkConfiguration);
                    FileMessageSink fileMessageSink = (FileMessageSink)messageSinkSupport;
                    if (fileMessageSink != null) {
                        string = fileMessageSink.getFilePattern();
                    }
                    break block7;
                }
                String[] stringArray = H;
                object = sinkConfiguration.getProperty(stringArray[50]);
                try {
                    if (string2 == null || !string2.equals(SinkConfiguration.CATEGORY_SSPC_LOGS)) break block6;
                }
                catch (IOException iOException) {
                    throw SinkManagerImpl.a(iOException);
                }
                stringArray = H;
                object = ConfigFactory.getProperty((String)stringArray[64]) + stringArray[63];
            }
            string = d.a(this.A, sinkConfiguration.getName(), (String)object, false);
        }
        return string;
    }

    private <R> Option<R> a(String string, Functions.UnaryThrows<R, LogAccessAdmin, FindException> unaryThrows) throws FindException {
        long l2;
        Option option;
        block15: {
            ClusterNodeInfo clusterNodeInfo;
            option = Option.none();
            l2 = System.currentTimeMillis();
            try {
                clusterNodeInfo = this.D != null ? (ClusterNodeInfo)Functions.grepFirst(this.D.retrieveClusterStatus(), (Functions.Unary)new m(this, string)) : null;
            }
            catch (CompletionException completionException) {
                throw SinkManagerImpl.a(completionException);
            }
            ClusterNodeInfo clusterNodeInfo2 = clusterNodeInfo;
            try {
                if (this.E == null || clusterNodeInfo2 == null) break block15;
            }
            catch (CompletionException completionException) {
                throw SinkManagerImpl.a(completionException);
            }
            try {
                option = Option.optional((Object)Subject.callAs(null, () -> {
                    ClusterContext clusterContext = this.E.buildClusterContext(clusterNodeInfo2.getAddress(), this.c());
                    LogAccessAdmin logAccessAdmin = clusterContext.getLogAccessAdmin();
                    return unaryThrows.call((Object)logAccessAdmin);
                }));
            }
            catch (CompletionException completionException) {
                Throwable throwable;
                block16: {
                    throwable = completionException.getCause();
                    try {
                        if (throwable instanceof FindException) {
                            throw (FindException)throwable;
                        }
                    }
                    catch (CompletionException completionException2) {
                        throw SinkManagerImpl.a(completionException2);
                    }
                    try {
                        if (!ExceptionUtils.causedBy((Throwable)throwable, ConnectException.class)) break block16;
                        p.log(Level.INFO, H[81] + string + H[55]);
                    }
                    catch (CompletionException completionException3) {
                        throw SinkManagerImpl.a(completionException3);
                    }
                }
                String[] stringArray = H;
                p.log(Level.WARNING, stringArray[27] + string + "'", throwable);
            }
            catch (Exception exception) {
                String[] stringArray = H;
                p.log(Level.WARNING, stringArray[19] + string + stringArray[32] + ExceptionUtils.getMessage((Throwable)exception), ExceptionUtils.getDebugException((Throwable)exception));
            }
        }
        try {
            if (p.isLoggable(Level.FINEST)) {
                p.finest(H[29] + (System.currentTimeMillis() - l2) + H[78]);
            }
        }
        catch (CompletionException completionException) {
            throw SinkManagerImpl.a(completionException);
        }
        return option;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[96];
                var3_1 = 0;
                var2_2 = "iV\u000bp6\u0005\fIU\u0010w'\u0018\nL[\u001dw-\u0012\u0007\u0004yO\u001al\u0012~H\u001fe$\t\u001dFU\u0019d'\u0012=eO\u0010w!xX\u001f`l\u0001\u000b~U,l.\u0005P|S\u001bt\u0011\t\u0010a\u0014\u001fv6\u000f=x_\u001fw'\bVf\u001axpLJw\tfU\u0019O'\u0016\u001bfI0%U\u000ewm3\u001biO\ff\u0011\u0010\u001fd\u0015?s2\f\u0017kT\u001dfm\f\u0017h_\u0006f!O\ry]Su+\u0005\tfU\u0019-1\b\"FU\u0019#1\t\u0010a\u001a\u0018j.\u0005\r*T\u0011wb\u0006\u0011\u007fT\u001a#$\u000f\f*I\u0017m)Z+X_\u001aj0\u0005\u001d~_\u001a#.\u000f\u0019mS\u0010db\u0014\u0011*Y\u0011m$\t\u0019\u007fH\u001bgb\f\u0011m\u001a\rj,\u000b\r$5_J\u001ab6\t\u0010m\u001a\nq#\u0006\u0018cY^o-\u0007\u0019cT\u0019#'\u000e\u001fhV\u001bgb\u0013\nkN\u001b/b\u000e\u001b}\u001a\bb.\u0015\u001b*S\r#$iU\u0013-.W\noY\u0016-6\u0012\u001fl\\\u0017`l\u0015\roj\u001fq'\u000e\nB[\u0010g.\u0005\fy\u0002/O=OH\fl0@\u000ekH\rj,\u0007^zH\u0011s'\u0012\ns\u001aY$9P\u0003-\u001dR#5\t\nb\u001a\bb.\u0015\u001b*\u001dYxs\u001dY-\u001a\u001fpb\u000e\u000bgX\u001bql\u0006Q\nS:\u001fK\u0006$V\u001bu'\f\u0012~H\u001fe$\t\u001dFU\u0019d'\u00122cW\u0017w!xX\u001f`l\u0001\u000b~U,l.\u0005P|S\u001bt\u0011\t\u0010a\u0014\u001fv6\u000f=x_\u001fw'\u0018\\S\u001btb\u001bNw\u001a2l%@-cT\u0015#jC\u0005;GWFKV\u0012#$\t\u0012o\u001a\u0012l%\u0013^yS\u0010h1@\u001acI\u001fa.\u0005\u001a$\u001a7d,\u000f\fcT\u0019#.\u000f\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,@Y-AN~eGP8_T\u001b{2\u0005\u001d~_\u001a#'\u0012\feH^g7\u0012\u0017d]^o-\u0007^fS\rwm\u0012\u001bk^^e0\u000f\u0013*H\u001bn-\u0014\u001b*T\u0011g'@Y\u0002/]!&\u001a\u0010l6@\u0013kN\u001dk+\u000e\u0019*I\u0017m)@\u0018cV\u001b#2\u0001\n~_\fmb\nCi1.zXK3\u0017O,X_\u001aj0\u0005\u001d~S\u0010db\f\u0011m]\u0017m%@\ne\u001a\u001dl,\u0006\u0017mO\ff&@\u0012e]^p+\u000e\u0015y\u0014\u0015iV\u000bp6\u0005\fIU\u0010w'\u0018\nL[\u001dw-\u0012\u00070C]\u0010l0\t\u0010m\u001a\u0017m4\u0001\u0012c^^o-\u0007^yS\u0010hb\u0003\u0011d\\\u0017d7\u0012\u001f~S\u0011mbGYq\n\u0003$eN\u0007VM\u00051nT\u0003-OH\fl0@\u001a\u007fH\u0017m%@\u0012e]^o+\u0013\n%H\u001bb&@\u0018xU\u0013#0\u0005\u0013eN\u001b#,\u000f\u001ao\u001aY\u001dOH\fl0@\fo[\u001aj,\u0007^lH\u0011nb\f\u0011m\u001a\u0018j.\u0005D*+M_\nw+\u000e\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,\u0013^lH\u0011nb.1N\u007f^w-\u000f\u0015*\u0012iU\u0013-.W\noY\u0016-6\u0012\u001fl\\\u0017`\u0014FU\u0019#$\t\u0012o\u001a\u0010l6@\u0018eO\u0010gx@\u0002-\u0000\u001cCT\rw#\f\u0012cT\u0019#.\u000f\u0019*I\u0017m)@Y-AN~eGP\bVf\u001axpLJw\nU\u001f\u0019\\g\u0015PfU\u0019'iU\u0013-.W\noY\u0016-1\u0005\f|_\f-.\u000f\u0019$Y\u0011m1\u000f\u0012o\u0014\u001b{6\u0012\u001fI[\np\u000byS\u0010h\u001d\u0003\u0011d\\\u0017d>KH\u0019v/\u0005\u0010~\u001a\u0018l0@>DU\nM7\f\u0012*J\u001fq#\r\u001b~_\f#eE\r-\u001a\u0011ebE\r$\u001f\r#/\u0015\r~\u001a\u0010l6@\u001co\u001a\u0010v.\f\u0019lS\u0010g\u0003\f\u0012LS\u0012f1&\u0011xi\u0017m)\"\u0007DU\u001af\u0018\\S\u001btb\u001bNw\u001a2l%@-cT\u0015#jC\u0005;GW%iU\u0013-.W\noY\u0016-1\u0005\f|_\f-&\t\rkX\u0012f\u0004\t\u0012ov\u0011d1\t\u0010aI\u0006$V\u001bu'\f3C]\u0010l0\t\u0010m\u001a\u0017m4\u0001\u0012c^^o'\u0016\u001bf\u001aY$9P\u0003-\u001dR#$\u000f\f*V\u0011d%\u0005\f*\u001dYxs\u001dY-\u0014\u0019KN\nf/\u0010\n*N\u0011#0\u0005\u001fn\u001a\u0012l%@\u0018cV\u001b#\u0014~H\u001fe$\t\u001dFU\u0019d'\u0012;d[\u001co'\u0004\u0019OH\fl0@\u001dx_\u001fw+\u000e\u0019*V\u0011db\u0013\u0017dQ^$\r^_\rwb\r\u001byI\u001fd'N\nU\u001f\u0019\\g\u0015PfU\u0019\u0002/]\flS\u0012fl\f\u0011mj\u001fw*2OH\fl0@\u001dx_\u001fw+\u000e\u0019*N\fb$\u0006\u0017i\u001a\u0012l%@\u0018eH^`.\u0015\r~_\f#2\u0012\u0011z_\fw+\u0005\r$\u0002'e\u001dy_\fu'\u0012=eT\u0018j%@\u0013\u007fI\n#,\u000f\n*X\u001b#,\u0015\u0012f\u0014~H\u001fe$\t\u001dFU\u0019d'\u0012.kN\nf0\u000e\u0015-\u0016^w-@\u0012cI\n,0\u0005\u001fn\u001a\u0012l%\u0013P\u0002/\u001f1C]\u0010l0\t\u0010m\u001a\u001aj1\u0001\u001cf_\u001a#.\u000f\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,@Y-AN~eGP\u0006dU\u001af\u000b\u0004%iU\u0013,.W\noY\u0016,1\u0005\f|_\f,.\u000f\u0019%i\u0017m)-\u001fd[\u0019f0)\u0013zV\u0007F{*J\fMO\u0005Q\nS:\u001f\u0013iU\u0010p-\f\u001bFU\u0019W*\u0012\u001byR\u0011o&\u0014%y\u0011m6\u0012\u0011fV\u001bqm\u0016\u001fx\u0015\u0012l%\u0013\u0016iU\u0013-.W\noY\u0016-1\u0005\f|_\f- \u0001\ro\u001eyC\ro-\u00073kT\u001fd'\u0012^gO\rwb\u000e\u0011~\u001a\u001cfb\u000e\u000bfV+_T\u001b{2\u0005\u001d~_\u001a#'\u0012\feH^s0\u000f\u001doI\rj,\u0007^fU\u0019d+\u000e\u0019*V\u001bu'\f\r$\u000ffU\u0019E+\f\u001bYJ\u001f`'-\u001fr!OH\fl0@\r~U\fj,\u0007^fU\u0019#!\u000f\u0010lS\u0019v0\u0001\ncU\u0010#e\u0007iU\u0010p-\f\u001b\u0004$V\u0011d\u001diU\u0013-.W\noY\u0016-1\u0005\f|_\f-.\u000f\u0019$Y\u0011m1\u000f\u0012o*ZH\u0011`'\u0013\rcT\u0019#.\u000f\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,@Y-AN~eGP5_T\u001b{2\u0005\u001d~_\u001a#'\u0012\feH^o-\u0001\u001acT\u0019#/\u0005\ry[\u0019f1@\rcT\u0015#!\u000f\u0010lS\u0019v0\u0001\ncU\u0010-\u0012iU\u0013-.W\noY\u0016-6\u0012\u001fl\\\u0017`\u0007VM\u00051nT\u0003\u000efU\u0019p\u001d\f\u0011i[\u0012-&\u0001\n<CT\rw#\f\u0012cT\u0019#6\u0012\u001fl\\\u0017`b\f\u0011m\u001a\rj,\u000b^lU\f#!\f\u000byN\u001bqb\u0010\feJ\u001bq6\t\u001by\u001a\rf6\u0014\u0017d]\r-\u0003gIP\u000fiV\u000bp6\u0005\fDU\u001af\u0012\u000f\f~\u0002-\u0014\"_T\u001fa.\u0005^~U^`-\u000e\u0010oY\n#6\u000f^x_\u0013l6\u0005^dU\u001afbG\bFU\u0019#\u0011\t\u0010a\u0002-\u0014%iU\u0013-.W\noY\u0016-1\u0005\f|_\f-&\t\rkX\u0012f\u0004\t\u0012ov\u0011d1\t\u0010aI\u0013IH\u001bb6\t\u0010m\u001a\u0010f5@,eV\u001b9b\f|[\fG+\u0012\u001biN\u0011q;\tfU\u0019O'\u0016\u001bfI\u000ffU\u0019E+\f\u001bYJ\u001f`'-\u001fr&C]\u0010l0\t\u0010m\u001a\u000bm)\u000e\u0011}T^w;\u0010\u001b*U\u0018#1\t\u0010a\u001aY$9P\u0003-\u001dP\u0002/O\u0004$V\u0011d\u0013iU\u0010p-\f\u001bFU\u0019W*\u0012\u001byR\u0011o&\u0006Q\nS:\u001fK";
                var4_3 = "iV\u000bp6\u0005\fIU\u0010w'\u0018\nL[\u001dw-\u0012\u0007\u0004yO\u001al\u0012~H\u001fe$\t\u001dFU\u0019d'\u0012=eO\u0010w!xX\u001f`l\u0001\u000b~U,l.\u0005P|S\u001bt\u0011\t\u0010a\u0014\u001fv6\u000f=x_\u001fw'\bVf\u001axpLJw\tfU\u0019O'\u0016\u001bfI0%U\u000ewm3\u001biO\ff\u0011\u0010\u001fd\u0015?s2\f\u0017kT\u001dfm\f\u0017h_\u0006f!O\ry]Su+\u0005\tfU\u0019-1\b\"FU\u0019#1\t\u0010a\u001a\u0018j.\u0005\r*T\u0011wb\u0006\u0011\u007fT\u001a#$\u000f\f*I\u0017m)Z+X_\u001aj0\u0005\u001d~_\u001a#.\u000f\u0019mS\u0010db\u0014\u0011*Y\u0011m$\t\u0019\u007fH\u001bgb\f\u0011m\u001a\rj,\u000b\r$5_J\u001ab6\t\u0010m\u001a\nq#\u0006\u0018cY^o-\u0007\u0019cT\u0019#'\u000e\u001fhV\u001bgb\u0013\nkN\u001b/b\u000e\u001b}\u001a\bb.\u0015\u001b*S\r#$iU\u0013-.W\noY\u0016-6\u0012\u001fl\\\u0017`l\u0015\roj\u001fq'\u000e\nB[\u0010g.\u0005\fy\u0002/O=OH\fl0@\u000ekH\rj,\u0007^zH\u0011s'\u0012\ns\u001aY$9P\u0003-\u001dR#5\t\nb\u001a\bb.\u0015\u001b*\u001dYxs\u001dY-\u001a\u001fpb\u000e\u000bgX\u001bql\u0006Q\nS:\u001fK\u0006$V\u001bu'\f\u0012~H\u001fe$\t\u001dFU\u0019d'\u00122cW\u0017w!xX\u001f`l\u0001\u000b~U,l.\u0005P|S\u001bt\u0011\t\u0010a\u0014\u001fv6\u000f=x_\u001fw'\u0018\\S\u001btb\u001bNw\u001a2l%@-cT\u0015#jC\u0005;GWFKV\u0012#$\t\u0012o\u001a\u0012l%\u0013^yS\u0010h1@\u001acI\u001fa.\u0005\u001a$\u001a7d,\u000f\fcT\u0019#.\u000f\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,@Y-AN~eGP8_T\u001b{2\u0005\u001d~_\u001a#'\u0012\feH^g7\u0012\u0017d]^o-\u0007^fS\rwm\u0012\u001bk^^e0\u000f\u0013*H\u001bn-\u0014\u001b*T\u0011g'@Y\u0002/]!&\u001a\u0010l6@\u0013kN\u001dk+\u000e\u0019*I\u0017m)@\u0018cV\u001b#2\u0001\n~_\fmb\nCi1.zXK3\u0017O,X_\u001aj0\u0005\u001d~S\u0010db\f\u0011m]\u0017m%@\ne\u001a\u001dl,\u0006\u0017mO\ff&@\u0012e]^p+\u000e\u0015y\u0014\u0015iV\u000bp6\u0005\fIU\u0010w'\u0018\nL[\u001dw-\u0012\u00070C]\u0010l0\t\u0010m\u001a\u0017m4\u0001\u0012c^^o-\u0007^yS\u0010hb\u0003\u0011d\\\u0017d7\u0012\u001f~S\u0011mbGYq\n\u0003$eN\u0007VM\u00051nT\u0003-OH\fl0@\u001a\u007fH\u0017m%@\u0012e]^o+\u0013\n%H\u001bb&@\u0018xU\u0013#0\u0005\u0013eN\u001b#,\u000f\u001ao\u001aY\u001dOH\fl0@\fo[\u001aj,\u0007^lH\u0011nb\f\u0011m\u001a\u0018j.\u0005D*+M_\nw+\u000e\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,\u0013^lH\u0011nb.1N\u007f^w-\u000f\u0015*\u0012iU\u0013-.W\noY\u0016-6\u0012\u001fl\\\u0017`\u0014FU\u0019#$\t\u0012o\u001a\u0010l6@\u0018eO\u0010gx@\u0002-\u0000\u001cCT\rw#\f\u0012cT\u0019#.\u000f\u0019*I\u0017m)@Y-AN~eGP\bVf\u001axpLJw\nU\u001f\u0019\\g\u0015PfU\u0019'iU\u0013-.W\noY\u0016-1\u0005\f|_\f-.\u000f\u0019$Y\u0011m1\u000f\u0012o\u0014\u001b{6\u0012\u001fI[\np\u000byS\u0010h\u001d\u0003\u0011d\\\u0017d>KH\u0019v/\u0005\u0010~\u001a\u0018l0@>DU\nM7\f\u0012*J\u001fq#\r\u001b~_\f#eE\r-\u001a\u0011ebE\r$\u001f\r#/\u0015\r~\u001a\u0010l6@\u001co\u001a\u0010v.\f\u0019lS\u0010g\u0003\f\u0012LS\u0012f1&\u0011xi\u0017m)\"\u0007DU\u001af\u0018\\S\u001btb\u001bNw\u001a2l%@-cT\u0015#jC\u0005;GW%iU\u0013-.W\noY\u0016-1\u0005\f|_\f-&\t\rkX\u0012f\u0004\t\u0012ov\u0011d1\t\u0010aI\u0006$V\u001bu'\f3C]\u0010l0\t\u0010m\u001a\u0017m4\u0001\u0012c^^o'\u0016\u001bf\u001aY$9P\u0003-\u001dR#$\u000f\f*V\u0011d%\u0005\f*\u001dYxs\u001dY-\u0014\u0019KN\nf/\u0010\n*N\u0011#0\u0005\u001fn\u001a\u0012l%@\u0018cV\u001b#\u0014~H\u001fe$\t\u001dFU\u0019d'\u0012;d[\u001co'\u0004\u0019OH\fl0@\u001dx_\u001fw+\u000e\u0019*V\u0011db\u0013\u0017dQ^$\r^_\rwb\r\u001byI\u001fd'N\nU\u001f\u0019\\g\u0015PfU\u0019\u0002/]\flS\u0012fl\f\u0011mj\u001fw*2OH\fl0@\u001dx_\u001fw+\u000e\u0019*N\fb$\u0006\u0017i\u001a\u0012l%@\u0018eH^`.\u0015\r~_\f#2\u0012\u0011z_\fw+\u0005\r$\u0002'e\u001dy_\fu'\u0012=eT\u0018j%@\u0013\u007fI\n#,\u000f\n*X\u001b#,\u0015\u0012f\u0014~H\u001fe$\t\u001dFU\u0019d'\u0012.kN\nf0\u000e\u0015-\u0016^w-@\u0012cI\n,0\u0005\u001fn\u001a\u0012l%\u0013P\u0002/\u001f1C]\u0010l0\t\u0010m\u001a\u001aj1\u0001\u001cf_\u001a#.\u000f\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,@Y-AN~eGP\u0006dU\u001af\u000b\u0004%iU\u0013,.W\noY\u0016,1\u0005\f|_\f,.\u000f\u0019%i\u0017m)-\u001fd[\u0019f0)\u0013zV\u0007F{*J\fMO\u0005Q\nS:\u001f\u0013iU\u0010p-\f\u001bFU\u0019W*\u0012\u001byR\u0011o&\u0014%y\u0011m6\u0012\u0011fV\u001bqm\u0016\u001fx\u0015\u0012l%\u0013\u0016iU\u0013-.W\noY\u0016-1\u0005\f|_\f- \u0001\ro\u001eyC\ro-\u00073kT\u001fd'\u0012^gO\rwb\u000e\u0011~\u001a\u001cfb\u000e\u000bfV+_T\u001b{2\u0005\u001d~_\u001a#'\u0012\feH^s0\u000f\u001doI\rj,\u0007^fU\u0019d+\u000e\u0019*V\u001bu'\f\r$\u000ffU\u0019E+\f\u001bYJ\u001f`'-\u001fr!OH\fl0@\r~U\fj,\u0007^fU\u0019#!\u000f\u0010lS\u0019v0\u0001\ncU\u0010#e\u0007iU\u0010p-\f\u001b\u0004$V\u0011d\u001diU\u0013-.W\noY\u0016-1\u0005\f|_\f-.\u000f\u0019$Y\u0011m1\u000f\u0012o*ZH\u0011`'\u0013\rcT\u0019#.\u000f\u0019*I\u0017m)@\u001deT\u0018j%\u0015\fkN\u0017l,@Y-AN~eGP5_T\u001b{2\u0005\u001d~_\u001a#'\u0012\feH^o-\u0001\u001acT\u0019#/\u0005\ry[\u0019f1@\rcT\u0015#!\u000f\u0010lS\u0019v0\u0001\ncU\u0010-\u0012iU\u0013-.W\noY\u0016-6\u0012\u001fl\\\u0017`\u0007VM\u00051nT\u0003\u000efU\u0019p\u001d\f\u0011i[\u0012-&\u0001\n<CT\rw#\f\u0012cT\u0019#6\u0012\u001fl\\\u0017`b\f\u0011m\u001a\rj,\u000b^lU\f#!\f\u000byN\u001bqb\u0010\feJ\u001bq6\t\u001by\u001a\rf6\u0014\u0017d]\r-\u0003gIP\u000fiV\u000bp6\u0005\fDU\u001af\u0012\u000f\f~\u0002-\u0014\"_T\u001fa.\u0005^~U^`-\u000e\u0010oY\n#6\u000f^x_\u0013l6\u0005^dU\u001afbG\bFU\u0019#\u0011\t\u0010a\u0002-\u0014%iU\u0013-.W\noY\u0016-1\u0005\f|_\f-&\t\rkX\u0012f\u0004\t\u0012ov\u0011d1\t\u0010aI\u0013IH\u001bb6\t\u0010m\u001a\u0010f5@,eV\u001b9b\f|[\fG+\u0012\u001biN\u0011q;\tfU\u0019O'\u0016\u001bfI\u000ffU\u0019E+\f\u001bYJ\u001f`'-\u001fr&C]\u0010l0\t\u0010m\u001a\u000bm)\u000e\u0011}T^w;\u0010\u001b*U\u0018#1\t\u0010a\u001aY$9P\u0003-\u001dP\u0002/O\u0004$V\u0011d\u0013iU\u0010p-\f\u001bFU\u0019W*\u0012\u001byR\u0011o&\u0006Q\nS:\u001fK".length();
                var1_4 = 21;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = SinkManagerImpl.b(v0, SinkManagerImpl.d(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "es!K\u000bz%Cs-^\u0016? \u0010t+\u0019\f2!\u0010{tDX(+\\edQ\u0019,!\u0010t,\\X;&Yl-M\u0001z0_ 6\\\u0019>dDh!\u0019\u00145#\u0010s-W\u0013z%^ddX\u0016#dQs7V\u001b3%De \u0019\u00145#\u0010f-U\u001d)j\u0010ci*R,?7D-\u0007U\u001d;*Ep";
                    var4_3 = "es!K\u000bz%Cs-^\u0016? \u0010t+\u0019\f2!\u0010{tDX(+\\edQ\u0019,!\u0010t,\\X;&Yl-M\u0001z0_ 6\\\u0019>dDh!\u0019\u00145#\u0010s-W\u0013z%^ddX\u0016#dQs7V\u001b3%De \u0019\u00145#\u0010f-U\u001d)j\u0010ci*R,?7D-\u0007U\u001d;*Ep".length();
                    var1_4 = 98;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 60;
                        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++] = SinkManagerImpl.b(v0, SinkManagerImpl.d(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;
            }
        }
        SinkManagerImpl.H = var5;
        SinkManagerImpl.w = SinkManagerImpl.H[82];
        SinkManagerImpl.s = SinkManagerImpl.H[88];
        SinkManagerImpl.r = SinkManagerImpl.H[92];
        SinkManagerImpl.m = SinkManagerImpl.H[74];
        SinkManagerImpl.t = SinkManagerImpl.H[48];
        SinkManagerImpl.n = SinkManagerImpl.H[3];
        SinkManagerImpl.q = SinkManagerImpl.H[5];
        SinkManagerImpl.x = SinkManagerImpl.H[40];
        SinkManagerImpl.o = SinkManagerImpl.H[84];
        SinkManagerImpl.p = Logger.getLogger(SinkManager.class.getName());
    }

    private static /* synthetic */ void b(int n2) {
        String[] stringArray = H;
        throw new IllegalArgumentException(String.format(stringArray[38], stringArray[58], stringArray[59], stringArray[39]));
    }

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

    private static char[] d(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x78);
        }
        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 -> 12;
                    case 1 -> 60;
                    case 2 -> 120;
                    case 3 -> 5;
                    case 4 -> 68;
                    case 5 -> 102;
                    default -> 120;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

