/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.module.ServerModuleFile
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.gateway.common.security.rbac.Role
 *  com.l7tech.identity.Identity
 *  com.l7tech.objectmodel.Alias
 *  com.l7tech.objectmodel.Entity
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.util.CollectionUtils$MapBuilder
 *  com.l7tech.util.Either
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.Option
 *  com.l7tech.util.PathUtils
 *  org.apache.commons.lang3.StringUtils
 *  org.springframework.transaction.TransactionStatus
 *  org.springframework.transaction.support.TransactionCallback
 */
package com.l7tech.server.bundling;

import com.l7tech.gateway.common.module.ServerModuleFile;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.security.rbac.Role;
import com.l7tech.identity.Identity;
import com.l7tech.objectmodel.Alias;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.server.bundling.EntityBundle;
import com.l7tech.server.bundling.EntityBundleImporterImpl;
import com.l7tech.server.bundling.EntityMappingInstructions;
import com.l7tech.server.bundling.exceptions.BundleImportException;
import com.l7tech.server.bundling.exceptions.IncorrectMappingInstructionsException;
import com.l7tech.server.bundling.exceptions.TargetNotFoundException;
import com.l7tech.server.bundling.i;
import com.l7tech.util.CollectionUtils;
import com.l7tech.util.Either;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Option;
import com.l7tech.util.PathUtils;
import java.io.Serializable;
import java.security.KeyStoreException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;

class h
implements TransactionCallback<Either<BundleImportException, Option<Entity>>> {
    final EntityMappingInstructions val$mapping;
    final Map val$resourceMapping;
    final EntityBundle val$bundle;
    final Entity val$entity;
    final EntityBundleImporterImpl this$0;
    private static final String[] a;

    /*
     * Ignored method signature, as it can't be verified against descriptor
     */
    h(EntityBundleImporterImpl entityBundleImporterImpl, EntityMappingInstructions entityMappingInstructions, Map map, EntityBundle entityBundle, Entity entity) {
        this.this$0 = entityBundleImporterImpl;
        this.val$mapping = entityMappingInstructions;
        this.val$resourceMapping = map;
        this.val$bundle = entityBundle;
        this.val$entity = entity;
    }

    /*
     * Unable to fully structure code
     * Could not resolve type clashes
     */
    public Either<BundleImportException, Option<Entity>> doInTransaction(TransactionStatus var1_1) {
        block104: {
            block103: {
                block114: {
                    block102: {
                        block112: {
                            block97: {
                                block100: {
                                    block111: {
                                        block101: {
                                            block99: {
                                                try {
                                                    var2_2 = this.this$0.a(this.val$mapping, this.val$resourceMapping, this.val$bundle);
                                                }
                                                catch (IncorrectMappingInstructionsException var3_4) {
                                                    return Either.left((Object)var3_4);
                                                }
                                                if (EntityType.USER.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) ** GOTO lbl14
                                                try {
                                                    block109: {
                                                        if (!EntityType.GROUP.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) break block97;
                                                        break block109;
                                                        catch (IncorrectMappingInstructionsException v0) {
                                                            throw h.a(v0);
                                                        }
                                                    }
                                                    if (!(this.val$entity instanceof Identity)) break block97;
                                                }
                                                catch (IncorrectMappingInstructionsException v1) {
                                                    throw h.a(v1);
                                                }
                                                var4_6 = this.this$0.a(((Identity)this.val$entity).getProviderId(), (Map<EntityHeader, EntityHeader>)this.val$resourceMapping);
                                                try {
                                                    var5_14 = this.this$0.identityProviderFactory.getProvider(var4_6);
                                                }
                                                catch (FindException var6_17) {
                                                    var5_14 = null;
                                                }
                                                if (var5_14 == null) {
                                                    var15_19 = h.a;
                                                    return Either.left((Object)new TargetNotFoundException(this.val$mapping, var15_19[16] + String.valueOf(var4_6)));
                                                }
                                                if (this.val$mapping.getTargetMapping() == null) ** GOTO lbl35
                                                try {
                                                    block110: {
                                                        if (!EntityMappingInstructions.TargetMapping.Type.ID.equals((Object)this.val$mapping.getTargetMapping().getType())) break block98;
                                                        break block110;
                                                        catch (IncorrectMappingInstructionsException v2) {
                                                            throw h.a(v2);
                                                        }
                                                    }
                                                    if (!EntityType.USER.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) break block99;
                                                }
                                                catch (IncorrectMappingInstructionsException v3) {
                                                    throw h.a(v3);
                                                }
                                                var3_5 /* !! */  = var5_14.getUserManager().findByPrimaryKey(var2_2);
                                                ** GOTO lbl318
                                            }
                                            if (EntityType.GROUP.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) {
                                                var3_5 /* !! */  = var5_14.getGroupManager().findByPrimaryKey(var2_2);
                                            } else {
                                                block98: {
                                                    var15_20 = h.a;
                                                    return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_20[14] + String.valueOf(this.val$mapping.getSourceEntityHeader().getType())));
                                                }
                                                try {
                                                    if (!EntityMappingInstructions.TargetMapping.Type.NAME.equals((Object)this.val$mapping.getTargetMapping().getType())) break block100;
                                                    if (!EntityType.USER.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) break block101;
                                                }
                                                catch (IncorrectMappingInstructionsException v4) {
                                                    throw h.a(v4);
                                                }
                                                var3_5 /* !! */  = var5_14.getUserManager().findByLogin(var2_2);
                                            }
                                            ** GOTO lbl318
                                        }
                                        if (!EntityType.GROUP.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) break block111;
                                        var3_5 /* !! */  = var5_14.getGroupManager().findByName(var2_2);
                                        ** GOTO lbl318
                                    }
                                    var15_21 = h.a;
                                    return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_21[15] + String.valueOf(this.val$mapping.getSourceEntityHeader().getType())));
                                }
                                var15_22 = h.a;
                                return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_22[35] + String.valueOf((Object)this.val$mapping.getTargetMapping().getType()) + var15_22[4]));
                            }
                            if (EntityType.USER.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) ** GOTO lbl75
                            if (!EntityType.GROUP.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) break block102;
                            break block112;
                            catch (IncorrectMappingInstructionsException v5) {
                                throw h.a(v5);
                            }
                        }
                        try {
                            block113: {
                                if (this.val$entity != null) break block102;
                                break block113;
                                catch (IncorrectMappingInstructionsException v6) {
                                    throw h.a(v6);
                                }
                            }
                            if (EntityMappingInstructions.MappingAction.Ignore.equals((Object)this.val$mapping.getMappingAction())) break block102;
                        }
                        catch (IncorrectMappingInstructionsException v7) {
                            throw h.a(v7);
                        }
                        var15_23 = h.a;
                        return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_23[18]));
                    }
                    if (!EntityType.RBAC_ROLE.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) ** GOTO lbl132
                    if (this.val$mapping.getTargetMapping() == null) ** GOTO lbl132
                    break block114;
                    catch (IncorrectMappingInstructionsException v8) {
                        throw h.a(v8);
                    }
                }
                try {
                    block115: {
                        if (!EntityMappingInstructions.TargetMapping.Type.MAP_BY_ROLE_ENTITY.equals((Object)this.val$mapping.getTargetMapping().getType())) ** GOTO lbl132
                        break block115;
                        catch (IncorrectMappingInstructionsException v9) {
                            throw h.a(v9);
                        }
                    }
                    if (this.val$entity != null) break block103;
                }
                catch (IncorrectMappingInstructionsException v10) {
                    throw h.a(v10);
                }
                var15_24 = h.a;
                return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_24[28]));
            }
            try {
                if (((Role)this.val$entity).isUserCreated().booleanValue()) {
                    return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, h.a[11]));
                }
            }
            catch (IncorrectMappingInstructionsException v11) {
                throw h.a(v11);
            }
            try {
                if (((Role)this.val$entity).getEntityGoid() != null && ((Role)this.val$entity).getEntityType() != null) break block104;
            }
            catch (IncorrectMappingInstructionsException v12) {
                throw h.a(v12);
            }
            var15_25 = h.a;
            return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_25[9]));
        }
        try {
            var3_5 /* !! */  = this.this$0.a((Role)this.val$entity, (Map<EntityHeader, EntityHeader>)this.val$resourceMapping);
            ** GOTO lbl318
        }
        catch (Exception var4_7) {
            var15_26 = h.a;
            return Either.left((Object)new TargetNotFoundException(this.val$mapping, var15_26[31] + ExceptionUtils.getMessage((Throwable)var4_7)));
        }
lbl132:
        // 4 sources

        if (!EntityType.SERVER_MODULE_FILE.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) ** GOTO lbl162
        try {
            block116: {
                if (this.val$mapping.getTargetMapping() == null) ** GOTO lbl162
                break block116;
                catch (IncorrectMappingInstructionsException v13) {
                    throw h.a(v13);
                }
            }
            if (EntityMappingInstructions.TargetMapping.Type.MODULE_SHA265.equals((Object)this.val$mapping.getTargetMapping().getType())) {
            }
            ** GOTO lbl162
        }
        catch (IncorrectMappingInstructionsException v14) {
            throw h.a(v14);
        }
        var4_8 = (ServerModuleFile)this.val$entity;
        if (var4_8 == null) {
            var15_27 = h.a;
            return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_27[21]));
        }
        try {
            if (StringUtils.isBlank((CharSequence)var4_8.getModuleSha256())) {
                return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, h.a[22]));
            }
        }
        catch (IncorrectMappingInstructionsException v15) {
            throw h.a(v15);
        }
        try {
            block108: {
                block107: {
                    block105: {
                        block106: {
                            block117: {
                                try {
                                    var3_5 /* !! */  = this.this$0.serverModuleFileManager.findModuleWithSha256(var4_8.getModuleSha256());
                                }
                                catch (Exception var5_15) {
                                    var15_28 = h.a;
                                    return Either.left((Object)new TargetNotFoundException(this.val$mapping, var15_28[32] + ExceptionUtils.getMessage((Throwable)var5_15)));
                                }
lbl162:
                                // 4 sources

                                if (!EntityType.SSG_KEY_ENTRY.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) break block105;
                                if (this.val$mapping.getTargetMapping() == null) break block105;
                                break block117;
                                catch (IncorrectMappingInstructionsException v16) {
                                    throw h.a(v16);
                                }
                            }
                            try {
                                block118: {
                                    if (!EntityMappingInstructions.TargetMapping.Type.NAME.equals((Object)this.val$mapping.getTargetMapping().getType())) break block105;
                                    break block118;
                                    catch (IncorrectMappingInstructionsException v17) {
                                        throw h.a(v17);
                                    }
                                }
                                if (this.val$entity != null) break block106;
                            }
                            catch (IncorrectMappingInstructionsException v18) {
                                throw h.a(v18);
                            }
                            var15_29 = h.a;
                            return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_29[24]));
                        }
                        try {
                            var3_5 /* !! */  = this.this$0.keyStoreManager.lookupKeyByKeyAlias(var2_2, ((SsgKeyEntry)this.val$entity).getKeystoreId());
                        }
                        catch (KeyStoreException var4_9) {
                            var15_30 = h.a;
                            return Either.left((Object)new TargetNotFoundException(this.val$mapping, var15_30[3] + ExceptionUtils.getMessageWithCause((Throwable)var4_9)));
                        }
                    }
                    try {
                        if (this.val$mapping.getTargetMapping() == null) break block107;
                    }
                    catch (IncorrectMappingInstructionsException v19) {
                        throw h.a(v19);
                    }
                    {
                        ** switch (i.b[this.val$mapping.getTargetMapping().getType().ordinal()])
                    }
lbl-1000:
                    // 1 sources

                    {
                        case 5: {
                            var3_5 /* !! */  = this.this$0.entityCrud.find(this.val$mapping.getSourceEntityHeader().getType().getEntityClass(), (Serializable)var2_2);
                            break block108;
                        }
lbl198:
                        // 1 sources

                        case 1: {
                            var15_31 = h.a;
                            var4_10 = this.this$0.entityCrud.findAll(this.val$mapping.getSourceEntityHeader().getType().getEntityClass(), CollectionUtils.MapBuilder.builder().put((Object)var15_31[0], Arrays.asList(new Object[]{var2_2})).map(), 0, -1, null, null);
                            if (var4_10.isEmpty()) {
                                var3_5 /* !! */  = null;
                            } else {
                                if (var4_10.size() > 1) {
                                    var15_31 = h.a;
                                    return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_31[25] + var2_2));
                                }
                                var3_5 /* !! */  = (Entity)var4_10.get(0);
                            }
                            break block108;
                        }
lbl209:
                        // 1 sources

                        case 2: {
                            var15_32 = h.a;
                            var4_11 = this.this$0.entityCrud.findAll(this.val$mapping.getSourceEntityHeader().getType().getEntityClass(), CollectionUtils.MapBuilder.builder().put((Object)var15_32[6], Arrays.asList(new Object[]{var2_2})).map(), 0, -1, null, null);
                            if (var4_11.isEmpty()) {
                                var3_5 /* !! */  = null;
                            } else {
                                if (var4_11.size() > 1) {
                                    var15_32 = h.a;
                                    return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_32[17] + var2_2));
                                }
                                var3_5 /* !! */  = (Entity)var4_11.get(0);
                            }
                            break block108;
                        }
lbl220:
                        // 1 sources

                        case 3: {
                            var4_12 = this.this$0.serviceManager.findByRoutingUri(var2_2);
                            if (var4_12.isEmpty()) {
                                var3_5 /* !! */  = null;
                            } else {
                                if (var4_12.size() > 1) {
                                    var15_33 = h.a;
                                    return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_33[7] + var2_2));
                                }
                                var3_5 /* !! */  = (Entity)var4_12.iterator().next();
                            }
                            break block108;
                        }
lbl230:
                        // 1 sources

                        case 4: {
                            if (!EntityType.FOLDER.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) ** GOTO lbl234
                            var3_5 /* !! */  = this.this$0.folderManager.findByPath(var2_2);
                            break block108;
lbl234:
                            // 1 sources

                            var4_13 = PathUtils.parseEntityPathIntoFolderPathAndEntityName((String)var2_2);
                            var5_16 = (String)var4_13.left;
                            var6_18 = (String)var4_13.right;
                            try {
                                if (var5_16 == null || var6_18 == null) {
                                }
                                ** GOTO lbl247
                            }
                            catch (IncorrectMappingInstructionsException v20) {
                                throw h.a(v20);
                            }
                            var3_5 /* !! */  = null;
                            var15_34 = h.a;
                            EntityBundleImporterImpl.a.fine(var15_34[8]);
                            break block108;
lbl247:
                            // 1 sources

                            try {
                                var7_41 = this.this$0.folderManager.findByPath(var5_16);
                            }
                            catch (FindException var8_42) {
                                var3_5 /* !! */  = null;
                                var15_35 = h.a;
                                EntityBundleImporterImpl.a.fine(var15_35[12] + var6_18 + var15_35[20] + var5_16 + var15_35[34]);
                                break block108;
                            }
                            if (var7_41 != null) ** GOTO lbl262
                            var3_5 /* !! */  = null;
                            var15_36 = h.a;
                            EntityBundleImporterImpl.a.fine(var15_36[1] + var6_18 + var15_36[30] + var5_16 + var15_36[2]);
                            break block108;
lbl262:
                            // 1 sources

                            var8_43 = new ArrayList<Object>();
                            try {
                                if (!EntityType.POLICY_ALIAS.equals((Object)this.val$mapping.getSourceEntityHeader().getType()) && !EntityType.SERVICE_ALIAS.equals((Object)this.val$mapping.getSourceEntityHeader().getType())) {
                                }
                                ** GOTO lbl274
                            }
                            catch (IncorrectMappingInstructionsException v21) {
                                throw h.a(v21);
                            }
                            var15_37 = h.a;
                            var9_44 = this.this$0.entityCrud.findAll(this.val$mapping.getSourceEntityHeader().getType().getEntityClass(), CollectionUtils.MapBuilder.builder().put((Object)var15_37[19], Arrays.asList(new Object[]{var7_41})).put((Object)var15_37[13], Arrays.asList(new Object[]{var6_18})).map(), 0, -1, null, null);
                            var8_43.addAll(var9_44);
                            ** GOTO lbl299
lbl274:
                            // 1 sources

                            var15_37 = h.a;
                            var9_45 = this.this$0.entityCrud.findAll(this.val$mapping.getSourceEntityHeader().getType().getEntityClass(), CollectionUtils.MapBuilder.builder().put((Object)var15_37[26], Arrays.asList(new Object[]{var7_41})).map(), 0, -1, null, null);
                            for (Entity var11_47 : var9_45) {
                                if (!(var11_47 instanceof Alias)) continue;
                                var12_48 = (Alias)var11_47;
                                try {
                                    if (var12_48.getEntityGoid() == null || var12_48.getEntityType() == null) continue;
                                }
                                catch (IncorrectMappingInstructionsException v22) {
                                    throw h.a(v22);
                                }
                                var15_37 = h.a;
                                var13_49 = var6_18.replaceAll(var15_37[27], "");
                                var14_50 = this.this$0.entityCrud.findHeader(var12_48.getEntityType(), (Serializable)var12_48.getEntityGoid());
                                if (var14_50 == null) continue;
                                try {
                                    if (!var14_50.getName().equals(var13_49)) continue;
                                    ** GOTO lbl294
                                    catch (IncorrectMappingInstructionsException v23) {
                                        throw h.a(v23);
                                    }
lbl294:
                                    // 1 sources

                                    var8_43.add(var11_47);
                                    break;
                                }
                                catch (IncorrectMappingInstructionsException v24) {
                                    throw h.a(v24);
                                }
                            }
lbl299:
                            // 3 sources

                            if (var8_43.isEmpty()) {
                                var3_5 /* !! */  = null;
                            } else {
                                if (var8_43.size() > 1) {
                                    var15_37 = h.a;
                                    return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_37[23] + var2_2));
                                }
                                var3_5 /* !! */  = (Entity)var8_43.iterator().next();
                            }
                            break block108;
                        }
lbl307:
                        // 1 sources

                        case 6: {
                            var15_38 = h.a;
                            return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_38[10]));
                        }
lbl310:
                        // 1 sources

                        case 7: {
                            var15_39 = h.a;
                            return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_39[5]));
                        }
lbl313:
                        // 1 sources

                        default: {
                            var15_40 = h.a;
                            return Either.left((Object)new IncorrectMappingInstructionsException(this.val$mapping, var15_40[33] + String.valueOf((Object)this.val$mapping.getTargetMapping().getType()) + var15_40[29]));
                        }
                    }
                }
                var3_5 /* !! */  = this.this$0.entityCrud.find(this.val$mapping.getSourceEntityHeader().getType().getEntityClass(), (Serializable)var2_2);
            }
            return Either.rightOption((Object)var3_5 /* !! */ );
        }
        catch (FindException var2_3) {
            return Either.rightOption(null);
        }
    }

    private static IncorrectMappingInstructionsException a(IncorrectMappingInstructionsException incorrectMappingInstructionsException) {
        return incorrectMappingInstructionsException;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[36];
                var3_1 = 0;
                var2_2 = "\u007f\u0002r\u0016\fE\u000bzS7\u000fvx\u0017fSu\f6Cq\u001c&Ad~\u0016q\u0017|'T\u0011m\u001c An~\ft\u001a<\u0006\"d\u0013?\u0003 \btp\u0017zS9\u0004{?CR\u0016!\u0012cv\u0006%S ?CP\u001d>\u0018\"x\u0007?\u0012<\u0005\"\u007f\u0002r\u0016r\u0000ptCl\u0006\"\u0011mc\u0017z\u0017wB\u0013z\u0010;\u0007kt\u0007?\u001e3\u0011rx\rxS?\u000efd\u000fz :\u00000$U?\u0011'\u0015\"e\u000bzS!\u000ewc\u0000zS7\u000fvx\u0017fS;\u0012\"\u007f\fkS3\u0011rc\fo\u0001;\u0000vtM?':\u0004\"b\fj\u00011\u0004\"t\rk\u001a&\u0018\"b\u000bp\u0006>\u0005\"s\u0006?\u0012r2gc\u0015z\u0001\u001f\u000efd\u000fz5;\rg\u0004v\u0016v\u0017@W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S%\bvyCm\u001c'\u0015k\u007f\u0004?&\u0000(81=E\u000bzS7\u000fvx\u0017fS1\u0000l\u007f\fkS0\u0004\"w\fj\u001d6M\"b\nq\u00107Ake\u0010?\u0016<\u0015ke\u001a?\u00033\u0015j1\nlS;\u000ftp\u000fv\u0017|aP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Ap~\u000fzS0\u0018\"x\u00178\u0000r\u0004le\nk\nr\u0003weCk\u001b7Ap~\u000fzS6\u000egbCq\u001c&Aqa\u0006|\u001a4\u0018\"s\fk\u001br\u0015jtCz\u001d&\bvhCk\n\"\u0004\"p\r{S;\u0005\u00b3B\u0013z\u0010;\u0007kt\u0007?\u001e3\u0011rx\rxS0\u0018\"c\fs\u0016r\u0004le\nk\nr\u0003weCk\u001b7Aq~\u0016m\u00107Ag\u007f\u0017v\u0007+AkbCq\u001c&Aca\u0013m\u001c\"\u0013kp\u0017z]r5jtCl\u001c'\u0013atCz\u001d&\bvhCl\u001b=\u0014nuC}\u0016r\u0000\"c\fs\u0016r\u0015jp\u0017?\u001a!Al~\u0017?\u0006!\u0004p1\u0000m\u00163\u0015guC~\u001d6Aqa\u0006|\u001a4\bgbC}\u001c&\t\"t\rk\u001a&\u0018\"x\u0007?\u0012<\u0005\"t\rk\u001a&\u0018\"e\u001ao\u0016uP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Ap~\u000fzS0\u0018\"x\u00178\u0000r\u0004le\nk\nr\u0003weCk\u001b7Ap~\u000fzS;\u0012\"pCj\u00007\u0013\"r\u0011z\u0012&\u0004f1\u0011p\u001f7O\"R\u0002qS=\u000fnhCr\u0012\"Acd\u0017pS1\u0013gp\u0017z\u0017r\u0013m}\u0006lS&\tkbCh\u0012+\fE\u000bzS7\u000fvx\u0017fSu\u0004\u007f\u0002r\u0016=D\rt\u001d=\u0016l1\n{\u0016<\u0015ke\u001a?\u0007+\u0011g=Cz\u000b\"\u0004ae\u0006{S7\bvy\u0006mS'\u0012gcCp\u0001r\u0006p~\u0016o]r'md\r{Ir=D\rt\u001d=\u0016l1\n{\u0016<\u0015ke\u001a?\u0007+\u0011g=Cz\u000b\"\u0004ae\u0006{S7\bvy\u0006mS'\u0012gcCp\u0001r\u0006p~\u0016o]r'md\r{IrBT\u0011m\u001c An~\ft\u001a<\u0006\"d\u0013?\u001a6\u0004le\nk\n|AAp\rq\u001c&Adx\r{S\u001b\u0005g\u007f\u0017v\u0007+Arc\fi\u001a6\u0004p1\u0014v\u0007:AkuY?9W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S%\bvyCx\u0006;\u000581QV\ni\u0016<Ac1\u0016l\u0016 AmcCx\u0001=\u0014r1\u000e~\u0003\"\blvCh\u001a&\tmd\u0017?\u0007:\u0004\"p\u0010l\u001c1\bce\u0006{S'\u0012gcCp\u0001r\u0006p~\u0016oS;\u0015g|Cm\u00164\u0004pt\r|\u0016\u0006w\fs\u00177\u0013\u001f6C|\u0012<\u000fmeC}\u0016r\u0007md\r{S0\u0018\"x\u0017lS\"\u0000vyC8gP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3AQt\u0011i\u0016 ,mu\u0016s\u0016\u0014\bntC}\nr\bv6\u0010?\u001e=\u0005w}\u0006L\u001b3S7'C}\u0006&Avy\u0006? 7\u0013tt\u0011R\u001c6\u0014nt%v\u001f7AkbCq\u001c&Ak\u007fCk\u001b7A`d\r{\u001f7hP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3AQt\u0011i\u0016 ,mu\u0016s\u0016\u0014\bntC}\nr\bv6\u0010?\u001e=\u0005w}\u0006L\u001b3S7'C}\u0006&Avy\u0006? 7\u0013tt\u0011R\u001c6\u0014nt%v\u001f7Ao~\u0007j\u001f72jpQ*Er\bq1\u0006r\u0003&\u00187W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S0\u0018\"a\u0002k\u001bhAUP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Arc\ni\u0012&\u0004\"z\u0006fS0\u0018\"x\u00178\u0000r\u000fc|\u0006?\u0011'\u0015\"e\u000bzS\"\u0013kg\u0002k\u0016r\nghCv\u0000r\u000fmeCv\u001dr\u0015jtC}\u0006<\u0005nt9W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S%\bvyCq\u0012?\u000481\u0006w\fs\u00177\u0013\u00061\u0002s\u001a3\u0012IP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Ap~\u000fzS0\u0018\"x\u00178\u0000r\u0004le\nk\nr\u0003weCk\u001b7Ap~\u000fzS;\u0012\"\u007f\fkS;\u000f\"e\u000bzS0\u0014lu\u000fz'?CP\u001d>\u0018\"x\u00073S<\u0000otO?\u0012<\u0005\"v\u0016v\u0017r\u0000ptCl\u0006\"\u0011mc\u0017z\u0017*6C|\u0012<\u000fmeC}\u0016r\u0007md\r{S6\u0014g1\u0017pS;\u0015q1\u0005p\u001f6\u0004p1\u0013~\u0007:A%-T\u0011m\u001c Adx\r{\u001a<\u0006\"p\u0016k\u001cr\u0006g\u007f\u0006m\u0012&\u0004f1\u0011p\u001f7Av~Cr\u0012\"Av~Y?5T\u0011m\u001c Adx\r{\u001a<\u0006\"B\u0006m\u00057\u0013O~\u0007j\u001f7'k}\u0006?\u0011+AkeDlS?\u000efd\u000fz :\u00000$U%S\u001cD\rl\u0006\"\u0011mc\u0017z\u0017r5cc\u0004z\u0007r,ca\u0013v\u001d5[\"";
                var4_3 = "\u007f\u0002r\u0016\fE\u000bzS7\u000fvx\u0017fSu\f6Cq\u001c&Ad~\u0016q\u0017|'T\u0011m\u001c An~\ft\u001a<\u0006\"d\u0013?\u0003 \btp\u0017zS9\u0004{?CR\u0016!\u0012cv\u0006%S ?CP\u001d>\u0018\"x\u0007?\u0012<\u0005\"\u007f\u0002r\u0016r\u0000ptCl\u0006\"\u0011mc\u0017z\u0017wB\u0013z\u0010;\u0007kt\u0007?\u001e3\u0011rx\rxS?\u000efd\u000fz :\u00000$U?\u0011'\u0015\"e\u000bzS!\u000ewc\u0000zS7\u000fvx\u0017fS;\u0012\"\u007f\fkS3\u0011rc\fo\u0001;\u0000vtM?':\u0004\"b\fj\u00011\u0004\"t\rk\u001a&\u0018\"b\u000bp\u0006>\u0005\"s\u0006?\u0012r2gc\u0015z\u0001\u001f\u000efd\u000fz5;\rg\u0004v\u0016v\u0017@W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S%\bvyCm\u001c'\u0015k\u007f\u0004?&\u0000(81=E\u000bzS7\u000fvx\u0017fS1\u0000l\u007f\fkS0\u0004\"w\fj\u001d6M\"b\nq\u00107Ake\u0010?\u0016<\u0015ke\u001a?\u00033\u0015j1\nlS;\u000ftp\u000fv\u0017|aP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Ap~\u000fzS0\u0018\"x\u00178\u0000r\u0004le\nk\nr\u0003weCk\u001b7Ap~\u000fzS6\u000egbCq\u001c&Aqa\u0006|\u001a4\u0018\"s\fk\u001br\u0015jtCz\u001d&\bvhCk\n\"\u0004\"p\r{S;\u0005\u00b3B\u0013z\u0010;\u0007kt\u0007?\u001e3\u0011rx\rxS0\u0018\"c\fs\u0016r\u0004le\nk\nr\u0003weCk\u001b7Aq~\u0016m\u00107Ag\u007f\u0017v\u0007+AkbCq\u001c&Aca\u0013m\u001c\"\u0013kp\u0017z]r5jtCl\u001c'\u0013atCz\u001d&\bvhCl\u001b=\u0014nuC}\u0016r\u0000\"c\fs\u0016r\u0015jp\u0017?\u001a!Al~\u0017?\u0006!\u0004p1\u0000m\u00163\u0015guC~\u001d6Aqa\u0006|\u001a4\bgbC}\u001c&\t\"t\rk\u001a&\u0018\"x\u0007?\u0012<\u0005\"t\rk\u001a&\u0018\"e\u001ao\u0016uP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Ap~\u000fzS0\u0018\"x\u00178\u0000r\u0004le\nk\nr\u0003weCk\u001b7Ap~\u000fzS;\u0012\"pCj\u00007\u0013\"r\u0011z\u0012&\u0004f1\u0011p\u001f7O\"R\u0002qS=\u000fnhCr\u0012\"Acd\u0017pS1\u0013gp\u0017z\u0017r\u0013m}\u0006lS&\tkbCh\u0012+\fE\u000bzS7\u000fvx\u0017fSu\u0004\u007f\u0002r\u0016=D\rt\u001d=\u0016l1\n{\u0016<\u0015ke\u001a?\u0007+\u0011g=Cz\u000b\"\u0004ae\u0006{S7\bvy\u0006mS'\u0012gcCp\u0001r\u0006p~\u0016o]r'md\r{Ir=D\rt\u001d=\u0016l1\n{\u0016<\u0015ke\u001a?\u0007+\u0011g=Cz\u000b\"\u0004ae\u0006{S7\bvy\u0006mS'\u0012gcCp\u0001r\u0006p~\u0016o]r'md\r{IrBT\u0011m\u001c An~\ft\u001a<\u0006\"d\u0013?\u001a6\u0004le\nk\n|AAp\rq\u001c&Adx\r{S\u001b\u0005g\u007f\u0017v\u0007+Arc\fi\u001a6\u0004p1\u0014v\u0007:AkuY?9W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S%\bvyCx\u0006;\u000581QV\ni\u0016<Ac1\u0016l\u0016 AmcCx\u0001=\u0014r1\u000e~\u0003\"\blvCh\u001a&\tmd\u0017?\u0007:\u0004\"p\u0010l\u001c1\bce\u0006{S'\u0012gcCp\u0001r\u0006p~\u0016oS;\u0015g|Cm\u00164\u0004pt\r|\u0016\u0006w\fs\u00177\u0013\u001f6C|\u0012<\u000fmeC}\u0016r\u0007md\r{S0\u0018\"x\u0017lS\"\u0000vyC8gP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3AQt\u0011i\u0016 ,mu\u0016s\u0016\u0014\bntC}\nr\bv6\u0010?\u001e=\u0005w}\u0006L\u001b3S7'C}\u0006&Avy\u0006? 7\u0013tt\u0011R\u001c6\u0014nt%v\u001f7AkbCq\u001c&Ak\u007fCk\u001b7A`d\r{\u001f7hP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3AQt\u0011i\u0016 ,mu\u0016s\u0016\u0014\bntC}\nr\bv6\u0010?\u001e=\u0005w}\u0006L\u001b3S7'C}\u0006&Avy\u0006? 7\u0013tt\u0011R\u001c6\u0014nt%v\u001f7Ao~\u0007j\u001f72jpQ*Er\bq1\u0006r\u0003&\u00187W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S0\u0018\"a\u0002k\u001bhAUP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Arc\ni\u0012&\u0004\"z\u0006fS0\u0018\"x\u00178\u0000r\u000fc|\u0006?\u0011'\u0015\"e\u000bzS\"\u0013kg\u0002k\u0016r\nghCv\u0000r\u000fmeCv\u001dr\u0015jtC}\u0006<\u0005nt9W\fj\u001d6Aod\u000fk\u001a\"\rg1\u0013p\u0000!\b`}\u0006?\u00073\u0013et\u0017?\u0016<\u0015ke\nz\u0000r\u0007md\r{S%\bvyCq\u0012?\u000481\u0006w\fs\u00177\u0013\u00061\u0002s\u001a3\u0012IP\u0017k\u0016?\u0011vx\rxS&\u000e\"|\u0002oS3Ap~\u000fzS0\u0018\"x\u00178\u0000r\u0004le\nk\nr\u0003weCk\u001b7Ap~\u000fzS;\u0012\"\u007f\fkS;\u000f\"e\u000bzS0\u0014lu\u000fz'?CP\u001d>\u0018\"x\u00073S<\u0000otO?\u0012<\u0005\"v\u0016v\u0017r\u0000ptCl\u0006\"\u0011mc\u0017z\u0017*6C|\u0012<\u000fmeC}\u0016r\u0007md\r{S6\u0014g1\u0017pS;\u0015q1\u0005p\u001f6\u0004p1\u0013~\u0007:A%-T\u0011m\u001c Adx\r{\u001a<\u0006\"p\u0016k\u001cr\u0006g\u007f\u0006m\u0012&\u0004f1\u0011p\u001f7Av~Cr\u0012\"Av~Y?5T\u0011m\u001c Adx\r{\u001a<\u0006\"B\u0006m\u00057\u0013O~\u0007j\u001f7'k}\u0006?\u0011+AkeDlS?\u000efd\u000fz :\u00000$U%S\u001cD\rl\u0006\"\u0011mc\u0017z\u0017r5cc\u0004z\u0007r,ca\u0013v\u001d5[\"".length();
                var1_4 = 4;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = h.a(v0, h.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "P+,\"k\n`Dw\u000b\u0005q\u001cq\u0014S\u0005\u0005b\u001ca\u0014J\u0005\u0007u\u0010{S'\u0002\u0018wYtZ'-\u0013`\u0017a]s\u001dM%";
                    var4_3 = "P+,\"k\n`Dw\u000b\u0005q\u001cq\u0014S\u0005\u0005b\u001ca\u0014J\u0005\u0007u\u0010{S'\u0002\u0018wYtZ'-\u0013`\u0017a]s\u001dM%".length();
                    var1_4 = 2;
                    var0_5 = -1;
lbl22:
                    // 2 sources

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

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

                ** continue;
            }
        }
        h.a = var5;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x7F);
        }
        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 -> 108;
                    case 1 -> 30;
                    case 2 -> 98;
                    case 3 -> 14;
                    case 4 -> 47;
                    case 5 -> 28;
                    default -> 127;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

