package com.l7tech.server.upgrade;

import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.security.rbac.OtherOperationName;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.policy.PolicyType;
import com.l7tech.util.Triple;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;

public class Upgrade8102To8200UpdateRoles extends AbstractDynamicRolePermissionsUpgradeTask {
   private static final Logger c;
   private static final String[] e;

   @Override
   protected List<Triple<OperationType, String, EntityType>> permissionsToAdd() {
      return Arrays.asList(new Triple(OperationType.OTHER, OtherOperationName.DEBUGGER.getOperationName(), EntityType.POLICY));
   }

   @Override
   protected String getScopeId(EntityType var1, Goid var2) throws ObjectModelException {
      String var3 = null;
      if (EntityType.POLICY.equals(var1)) {
         var3 = var2.toString();
      } else {
         try {
            if (!EntityType.SERVICE.equals(var1) || var2 == null) {
               return var3;
            }
         } catch (ObjectModelException var6) {
            throw b(var6);
         }

         PublishedService var4 = (PublishedService)this.serviceManager.findByPrimaryKey(var2);
         if (var4 != null) {
            var3 = var4.getPolicy().getId();
         } else {
            Logger var10000 = c;
            String var10001 = String.valueOf(var2);
            String[] var5 = e;
            var10000.warning(var5[3] + var10001 + var5[0]);
         }
      }

      return var3;
   }

   @Override
   protected boolean shouldCreateMissingRoles() {
      return false;
   }

   @Override
   protected boolean shouldIgnorePolicyType(PolicyType var1) {
      try {
         if (!PolicyType.GLOBAL_FRAGMENT.equals(var1)) {
            return true;
         }
      } catch (IllegalStateException var2) {
         throw b(var2);
      }

      return false;
   }

   @NotNull
   @Override
   protected Collection<EntityType> getEntityTypesToUpgrade() {
      try {
         List var10000 = Arrays.asList(EntityType.SERVICE, EntityType.POLICY);
         if (var10000 == null) {
            a(0);
         }

         return var10000;
      } catch (IllegalStateException var1) {
         throw b(var1);
      }
   }

   static {
      String[] var5 = new String[5];
      int var3 = 0;
      String var2 = ".\u0017`\">\u0001th_$%?\u0012tm^\"96\u00121{\u001b0)#\u0018=zH)#?[6jT-c=B lX(c\"\u0010&\u007f^2c$\u00053{Z$)~ $nI!(4Me9\t\u0014#iGd9n0(0\u00011[T,)\"\u0017n^4\t?\u0001=}B\u00145!\u0010']T\u0015<6\u00075m^";
      int var4 = ".\u0017`\">\u0001th_$%?\u0012tm^\"96\u00121{\u001b0)#\u0018=zH)#?[6jT-c=B lX(c\"\u0010&\u007f^2c$\u00053{Z$)~ $nI!(4Me9\t\u0014#iGd9n0(0\u00011[T,)\"\u0017n^4\t?\u0001=}B\u00145!\u0010']T\u0015<6\u00075m^"
         .length();
      char var1 = '"';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 119;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     e = var5;
                     c = Logger.getLogger(Upgrade8102To8200UpdateRoles.class.getName());
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "W^*%6\u001b\u007fv_k&9\u001d:qCk4?\f)kS.g}*B~$3\u0014\u000b3n\u0010&\".\u00160f\u0010n4t[,\"]>4.^1mDk5?\n*p^k)/\u00123";
                  var4 = "W^*%6\u001b\u007fv_k&9\u001d:qCk4?\f)kS.g}*B~$3\u0014\u000b3n\u0010&\".\u00160f\u0010n4t[,\"]>4.^1mDk5?\n*p^k)/\u00123".length();
                  var1 = 26;
                  var7 = -1;
            }

            var10000 = 124;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static Exception b(Exception var0) {
      return var0;
   }

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 35);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 126;
            case 1 -> 76;
            case 2 -> 55;
            case 3 -> 59;
            case 4 -> 38;
            case 5 -> 2;
            default -> 35;
         });
      }

      return new String(var10001).intern();
   }
}
