/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.resources.HttpConfiguration
 *  com.l7tech.gateway.common.resources.HttpProxyConfiguration
 *  com.l7tech.gateway.common.security.password.SecurePassword
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.util.Functions
 *  com.l7tech.util.Functions$Binary
 *  com.l7tech.util.Pair
 */
package com.l7tech.server.globalresources;

import com.l7tech.gateway.common.resources.HttpConfiguration;
import com.l7tech.gateway.common.resources.HttpProxyConfiguration;
import com.l7tech.gateway.common.security.password.SecurePassword;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.globalresources.j;
import com.l7tech.server.globalresources.k;
import com.l7tech.server.globalresources.l;
import com.l7tech.util.Functions;
import com.l7tech.util.Pair;
import java.net.URI;
import java.net.URL;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

final class i {
    private final HttpProxyConfiguration a;
    private final Map<String, Collection<HttpConfiguration>> b;
    private final Map<Goid, char[]> c;
    private static final String d = i.a(10, i.a("\u000bW\u000e2"));

    i(HttpProxyConfiguration httpProxyConfiguration, Collection<HttpConfiguration> collection, Collection<SecurePassword> collection2, Functions.Binary<char[], String, String> binary) {
        this.a = httpProxyConfiguration == null || httpProxyConfiguration.getHost() == null ? null : new HttpProxyConfiguration(httpProxyConfiguration, true);
        this.b = Collections.unmodifiableMap((Map)Functions.reduce(collection, new HashMap(), (Functions.Binary)new j(this)));
        this.c = Collections.unmodifiableMap((Map)Functions.reduce(collection2, new HashMap(), (Functions.Binary)new k(this, binary)));
    }

    public HttpProxyConfiguration getHttpProxyConfiguration(URI uRI) {
        if (!uRI.isAbsolute()) {
            return null;
        }
        return this.getHttpProxyConfiguration(uRI.getScheme().toLowerCase(), uRI.getHost(), uRI.getPort(), uRI.getRawPath());
    }

    public HttpProxyConfiguration getHttpProxyConfiguration(URL uRL) {
        return this.getHttpProxyConfiguration(uRL.getProtocol().toLowerCase(), uRL.getHost(), uRL.getPort(), uRL.getPath());
    }

    public HttpProxyConfiguration getHttpProxyConfiguration(String string, String string2, int n2, String string3) {
        HttpProxyConfiguration httpProxyConfiguration = null;
        HttpConfiguration httpConfiguration = this.getHttpConfiguration(string, string2, n2, string3);
        boolean bl2 = false;
        if (httpConfiguration != null && httpConfiguration != null) {
            switch (httpConfiguration.getProxyUse()) {
                case NONE: {
                    bl2 = true;
                    break;
                }
                case CUSTOM: {
                    HttpProxyConfiguration httpProxyConfiguration2 = httpConfiguration.getProxyConfiguration();
                    if (httpProxyConfiguration2.getHost() == null) break;
                    httpProxyConfiguration = httpProxyConfiguration2;
                }
            }
        }
        if (httpProxyConfiguration == null && !bl2) {
            httpProxyConfiguration = this.a;
        }
        return httpProxyConfiguration;
    }

    public HttpConfiguration getHttpConfiguration(URI uRI) {
        if (!uRI.isAbsolute()) {
            return null;
        }
        return this.getHttpConfiguration(uRI.getScheme().toLowerCase(), uRI.getHost(), uRI.getPort(), uRI.getRawPath());
    }

    public HttpConfiguration getHttpConfiguration(URL uRL) {
        return this.getHttpConfiguration(uRL.getProtocol().toLowerCase(), uRL.getHost(), uRL.getPort(), uRL.getPath());
    }

    public HttpConfiguration getHttpConfiguration(String string, String string2, int n2, String string3) {
        Collection<HttpConfiguration> collection;
        HttpConfiguration httpConfiguration = null;
        if (string2 != null && (collection = this.b.get(string2.toLowerCase())) != null) {
            int n3 = n2 == -1 ? (d.equals(string) ? 80 : 443) : n2;
            Pair pair = (Pair)Functions.reduce(collection, null, (Functions.Binary)new l(this, string, n3, string3));
            if (pair != null) {
                httpConfiguration = (HttpConfiguration)pair.left;
            }
        }
        return httpConfiguration;
    }

    public synchronized char[] getPassword(Goid goid) {
        char[] cArray = this.c.get(goid);
        if (cArray == null) {
            cArray = new char[]{};
        }
        return cArray;
    }

    private static long a(HttpConfiguration httpConfiguration, String string, int n2, String string2) {
        long l2 = 0L;
        if ((httpConfiguration.getProtocol() == null || httpConfiguration.getProtocol().matches(string)) && (httpConfiguration.getPort() == 0 || httpConfiguration.getPort() == n2) && (httpConfiguration.getPath() == null || string2 != null && string2.startsWith(httpConfiguration.getPath()))) {
            l2 = 1L;
            l2 <<= 1;
            l2 += httpConfiguration.getPort() != 0 ? 1L : 0L;
            l2 <<= 1;
            l2 += httpConfiguration.getProtocol() != null ? 1L : 0L;
            l2 <<= 16;
            l2 += httpConfiguration.getPath() != null ? (long)httpConfiguration.getPath().length() : 0L;
        }
        return l2;
    }

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

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

