package com.l7tech.server.logon;

import com.l7tech.gateway.common.Component;
import com.l7tech.gateway.common.security.rbac.Role;
import com.l7tech.gateway.common.security.rbac.Role.Tag;
import com.l7tech.identity.AuthenticationException;
import com.l7tech.identity.IdentityProviderConfigManager;
import com.l7tech.identity.LogonInfo;
import com.l7tech.identity.User;
import com.l7tech.identity.LogonInfo.State;
import com.l7tech.identity.internal.InternalUser;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.server.audit.Auditor;
import com.l7tech.server.event.system.SystemEvent;
import com.l7tech.server.identity.AuthenticationResult;
import com.l7tech.server.identity.IdentityProviderFactory;
import com.l7tech.server.identity.internal.InternalIdentityProvider;
import com.l7tech.server.identity.internal.InternalUserManager;
import com.l7tech.server.security.rbac.RoleManager;
import com.l7tech.util.Config;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Pair;
import com.l7tech.util.ValidatedConfig;
import com.l7tech.util.Functions.UnaryVoid;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Collections;
import java.util.HashSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.security.auth.Subject;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionTemplate;

public class SSMLogonService implements LogonService, PropertyChangeListener, ApplicationContextAware {
   private ApplicationContext a;
   private static final Logger b;
   private PlatformTransactionManager c;
   private LogonInfoManager d;
   private Config e;
   private Auditor f;
   private final RoleManager g;
   private InternalUserManager h;
   private final IdentityProviderFactory i;
   private int j;
   private int k;
   private int l;
   private static final int m = 1200;
   private static final int n = 5;
   private static final int o = 35;
   private static final String p;
   private static final String[] q;

   public SSMLogonService(PlatformTransactionManager var1, LogonInfoManager var2, Config var3, RoleManager var4, IdentityProviderFactory var5) {
      if (var1 == null) {
         String[] var9 = q;
         throw new IllegalArgumentException(var9[23]);
      }

      try {
         if (var2 == null) {
            throw new IllegalArgumentException(q[18]);
         }
      } catch (IllegalArgumentException var7) {
         throw a(var7);
      }

      try {
         if (var3 == null) {
            throw new IllegalArgumentException(q[15]);
         }
      } catch (IllegalArgumentException var8) {
         throw a(var8);
      }

      this.c = var1;
      this.d = var2;
      this.setConfig(var3);
      this.g = var4;
      this.i = var5;
      String[] var6 = q;
      this.j = this.e.getIntProperty(var6[20], 5);
      this.k = this.e.getIntProperty(var6[3], 1200);
      this.l = this.e.getIntProperty(var6[25], 35);
   }

   public PlatformTransactionManager getTransactionManager() {
      return this.c;
   }

   public void setTransactionManager(PlatformTransactionManager var1) {
      this.c = var1;
   }

   public LogonInfoManager getLogonManager() {
      return this.d;
   }

   public void setLogonManager(LogonInfoManager var1) {
      this.d = var1;
   }

   public void setConfig(Config var1) {
      ValidatedConfig var2 = new ValidatedConfig(var1, b);
      String[] var3 = q;
      var2.setMinimumValue(var3[12], 1);
      var2.setMaximumValue(var3[20], 20);
      var2.setMinimumValue(var3[2], 1);
      var2.setMaximumValue(var3[3], 86400);
      var2.setMinimumValue(var3[7], 1);
      var2.setMaximumValue(var3[25], 365);
      this.e = var2;
   }

   @Override
   public void propertyChange(PropertyChangeEvent param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: invokevirtual java/beans/PropertyChangeEvent.getPropertyName ()Ljava/lang/String;
      // 04: astore 2
      // 05: aload 2
      // 06: ifnull 38
      // 09: aload 2
      // 0a: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 0d: bipush 20
      // 0f: aaload
      // 10: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 13: ifeq 38
      // 16: goto 1d
      // 19: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c: athrow
      // 1d: aload 0
      // 1e: aload 0
      // 1f: getfield com/l7tech/server/logon/SSMLogonService.e Lcom/l7tech/util/Config;
      // 22: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 25: bipush 20
      // 27: aaload
      // 28: bipush 5
      // 29: invokeinterface com/l7tech/util/Config.getIntProperty (Ljava/lang/String;I)I 3
      // 2e: putfield com/l7tech/server/logon/SSMLogonService.j I
      // 31: goto 38
      // 34: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: aload 2
      // 39: ifnull 6b
      // 3c: aload 2
      // 3d: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 40: bipush 3
      // 41: aaload
      // 42: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 45: ifeq 6b
      // 48: goto 4f
      // 4b: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4e: athrow
      // 4f: aload 0
      // 50: aload 0
      // 51: getfield com/l7tech/server/logon/SSMLogonService.e Lcom/l7tech/util/Config;
      // 54: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 57: bipush 3
      // 58: aaload
      // 59: sipush 1200
      // 5c: invokeinterface com/l7tech/util/Config.getIntProperty (Ljava/lang/String;I)I 3
      // 61: putfield com/l7tech/server/logon/SSMLogonService.k I
      // 64: goto 6b
      // 67: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6a: athrow
      // 6b: aload 2
      // 6c: ifnull 9f
      // 6f: aload 2
      // 70: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 73: bipush 25
      // 75: aaload
      // 76: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 79: ifeq 9f
      // 7c: goto 83
      // 7f: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 82: athrow
      // 83: aload 0
      // 84: aload 0
      // 85: getfield com/l7tech/server/logon/SSMLogonService.e Lcom/l7tech/util/Config;
      // 88: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 8b: bipush 25
      // 8d: aaload
      // 8e: bipush 35
      // 90: invokeinterface com/l7tech/util/Config.getIntProperty (Ljava/lang/String;I)I 3
      // 95: putfield com/l7tech/server/logon/SSMLogonService.l I
      // 98: goto 9f
      // 9b: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 9e: athrow
      // 9f: return
      // try (3 -> 11): 12 java/lang/IllegalArgumentException
      // try (5 -> 23): 24 java/lang/IllegalArgumentException
      // try (26 -> 34): 35 java/lang/IllegalArgumentException
      // try (28 -> 46): 47 java/lang/IllegalArgumentException
      // try (49 -> 57): 58 java/lang/IllegalArgumentException
      // try (51 -> 69): 70 java/lang/IllegalArgumentException
   }

   public void setApplicationContext(ApplicationContext var1) throws BeansException {
      this.a = var1;
      this.f = new Auditor(this, this.a, b);
   }

   @Override
   public void hookPreLoginCheck(User param1) throws AuthenticationException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: instanceof com/l7tech/identity/internal/InternalUser
      // 004: ifeq 05a
      // 007: aload 1
      // 008: checkcast com/l7tech/identity/internal/InternalUser
      // 00b: invokevirtual com/l7tech/identity/internal/InternalUser.isEnabled ()Z
      // 00e: ifne 05a
      // 011: goto 018
      // 014: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 017: athrow
      // 018: aload 0
      // 019: getfield com/l7tech/server/logon/SSMLogonService.f Lcom/l7tech/server/audit/Auditor;
      // 01c: getstatic com/l7tech/gateway/common/audit/SystemMessages.AUTH_USER_DISABLED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 01f: bipush 1
      // 020: anewarray 17
      // 023: dup
      // 024: bipush 0
      // 025: aload 1
      // 026: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 02b: aastore
      // 02c: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 02f: aload 1
      // 030: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 035: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 038: astore 9
      // 03a: aload 9
      // 03c: bipush 0
      // 03d: aaload
      // 03e: swap
      // 03f: aload 9
      // 041: bipush 9
      // 043: aaload
      // 044: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 049: astore 2
      // 04a: getstatic com/l7tech/server/logon/SSMLogonService.b Ljava/util/logging/Logger;
      // 04d: aload 2
      // 04e: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 051: new com/l7tech/identity/UserDisabledException
      // 054: dup
      // 055: aload 2
      // 056: invokespecial com/l7tech/identity/UserDisabledException.<init> (Ljava/lang/String;)V
      // 059: athrow
      // 05a: invokestatic java/lang/System.currentTimeMillis ()J
      // 05d: lstore 2
      // 05e: aload 0
      // 05f: getfield com/l7tech/server/logon/SSMLogonService.d Lcom/l7tech/server/logon/LogonInfoManager;
      // 062: aload 1
      // 063: invokeinterface com/l7tech/identity/User.getProviderId ()Lcom/l7tech/objectmodel/Goid; 1
      // 068: aload 1
      // 069: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 06e: bipush 1
      // 06f: invokeinterface com/l7tech/server/logon/LogonInfoManager.findByCompositeKey (Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;Z)Lcom/l7tech/identity/LogonInfo; 4
      // 074: astore 4
      // 076: aload 4
      // 078: ifnonnull 09b
      // 07b: new com/l7tech/objectmodel/FindException
      // 07e: dup
      // 07f: aload 1
      // 080: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 085: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 088: bipush 11
      // 08a: aaload
      // 08b: swap
      // 08c: ldc "'"
      // 08e: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 093: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 096: athrow
      // 097: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09a: athrow
      // 09b: aload 4
      // 09d: invokevirtual com/l7tech/identity/LogonInfo.getState ()Lcom/l7tech/identity/LogonInfo$State;
      // 0a0: getstatic com/l7tech/identity/LogonInfo$State.INACTIVE Lcom/l7tech/identity/LogonInfo$State;
      // 0a3: if_acmpne 0d2
      // 0a6: aload 0
      // 0a7: aload 1
      // 0a8: invokevirtual com/l7tech/server/logon/SSMLogonService.b (Lcom/l7tech/identity/User;)Z
      // 0ab: ifne 0d2
      // 0ae: goto 0b5
      // 0b1: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b4: athrow
      // 0b5: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 0b8: astore 9
      // 0ba: aload 9
      // 0bc: bipush 1
      // 0bd: aaload
      // 0be: astore 5
      // 0c0: getstatic com/l7tech/server/logon/SSMLogonService.b Ljava/util/logging/Logger;
      // 0c3: aload 5
      // 0c5: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 0c8: new com/l7tech/identity/FailInactivityPeriodExceededException
      // 0cb: dup
      // 0cc: aload 5
      // 0ce: invokespecial com/l7tech/identity/FailInactivityPeriodExceededException.<init> (Ljava/lang/String;)V
      // 0d1: athrow
      // 0d2: aload 4
      // 0d4: invokevirtual com/l7tech/identity/LogonInfo.getState ()Lcom/l7tech/identity/LogonInfo$State;
      // 0d7: getstatic com/l7tech/identity/LogonInfo$State.EXCEED_ATTEMPT Lcom/l7tech/identity/LogonInfo$State;
      // 0da: if_acmpeq 0f0
      // 0dd: aload 4
      // 0df: invokevirtual com/l7tech/identity/LogonInfo.getFailCount ()I
      // 0e2: aload 0
      // 0e3: getfield com/l7tech/server/logon/SSMLogonService.j I
      // 0e6: if_icmplt 183
      // 0e9: goto 0f0
      // 0ec: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ef: athrow
      // 0f0: invokestatic java/util/Calendar.getInstance ()Ljava/util/Calendar;
      // 0f3: astore 5
      // 0f5: aload 5
      // 0f7: aload 4
      // 0f9: invokevirtual com/l7tech/identity/LogonInfo.getLastAttempted ()J
      // 0fc: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 0ff: aload 5
      // 101: bipush 13
      // 103: aload 0
      // 104: getfield com/l7tech/server/logon/SSMLogonService.k I
      // 107: invokevirtual java/util/Calendar.add (II)V
      // 10a: aload 5
      // 10c: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // 10f: lload 2
      // 110: lcmp
      // 111: iflt 17d
      // 114: aload 0
      // 115: getfield com/l7tech/server/logon/SSMLogonService.f Lcom/l7tech/server/audit/Auditor;
      // 118: getstatic com/l7tech/gateway/common/audit/SystemMessages.AUTH_USER_EXCEED_ATTEMPT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 11b: bipush 3
      // 11c: anewarray 17
      // 11f: dup
      // 120: bipush 0
      // 121: aload 1
      // 122: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 127: aastore
      // 128: dup
      // 129: bipush 1
      // 12a: aload 4
      // 12c: invokevirtual com/l7tech/identity/LogonInfo.getFailCount ()I
      // 12f: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 132: aastore
      // 133: dup
      // 134: bipush 2
      // 135: aload 0
      // 136: getfield com/l7tech/server/logon/SSMLogonService.j I
      // 139: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 13c: aastore
      // 13d: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 140: aload 1
      // 141: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 146: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 149: astore 9
      // 14b: aload 9
      // 14d: bipush 26
      // 14f: aaload
      // 150: swap
      // 151: aload 9
      // 153: bipush 13
      // 155: aaload
      // 156: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 15b: astore 6
      // 15d: getstatic com/l7tech/server/logon/SSMLogonService.b Ljava/util/logging/Logger;
      // 160: aload 6
      // 162: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 165: aload 0
      // 166: aload 1
      // 167: aconst_null
      // 168: invokevirtual com/l7tech/server/logon/SSMLogonService.a (Lcom/l7tech/identity/User;Lcom/l7tech/server/identity/AuthenticationResult;)V
      // 16b: aload 0
      // 16c: aload 1
      // 16d: getstatic com/l7tech/identity/LogonInfo$State.EXCEED_ATTEMPT Lcom/l7tech/identity/LogonInfo$State;
      // 170: invokevirtual com/l7tech/server/logon/SSMLogonService.a (Lcom/l7tech/identity/User;Lcom/l7tech/identity/LogonInfo$State;)V
      // 173: new com/l7tech/identity/FailAttemptsExceededException
      // 176: dup
      // 177: aload 6
      // 179: invokespecial com/l7tech/identity/FailAttemptsExceededException.<init> (Ljava/lang/String;)V
      // 17c: athrow
      // 17d: aload 0
      // 17e: aload 1
      // 17f: lload 2
      // 180: invokevirtual com/l7tech/server/logon/SSMLogonService.a (Lcom/l7tech/identity/User;J)V
      // 183: invokestatic java/util/Calendar.getInstance ()Ljava/util/Calendar;
      // 186: astore 5
      // 188: aload 5
      // 18a: aload 4
      // 18c: invokevirtual com/l7tech/identity/LogonInfo.getLastActivity ()J
      // 18f: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 192: aload 5
      // 194: bipush 10
      // 196: aload 0
      // 197: getfield com/l7tech/server/logon/SSMLogonService.l I
      // 19a: bipush 24
      // 19c: imul
      // 19d: invokevirtual java/util/Calendar.add (II)V
      // 1a0: aload 0
      // 1a1: aload 1
      // 1a2: invokevirtual com/l7tech/server/logon/SSMLogonService.b (Lcom/l7tech/identity/User;)Z
      // 1a5: ifne 251
      // 1a8: aload 0
      // 1a9: getfield com/l7tech/server/logon/SSMLogonService.l I
      // 1ac: ifeq 251
      // 1af: goto 1b6
      // 1b2: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b5: athrow
      // 1b6: aload 4
      // 1b8: invokevirtual com/l7tech/identity/LogonInfo.getLastActivity ()J
      // 1bb: lconst_0
      // 1bc: lcmp
      // 1bd: ifle 251
      // 1c0: goto 1c7
      // 1c3: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c6: athrow
      // 1c7: aload 5
      // 1c9: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // 1cc: lload 2
      // 1cd: lcmp
      // 1ce: ifgt 251
      // 1d1: goto 1d8
      // 1d4: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d7: athrow
      // 1d8: lload 2
      // 1d9: aload 4
      // 1db: invokevirtual com/l7tech/identity/LogonInfo.getLastActivity ()J
      // 1de: lsub
      // 1df: ldc2_w 1000
      // 1e2: ldiv
      // 1e3: ldc2_w 60
      // 1e6: ldiv
      // 1e7: ldc2_w 60
      // 1ea: ldiv
      // 1eb: ldc2_w 24
      // 1ee: ldiv
      // 1ef: lstore 6
      // 1f1: aload 0
      // 1f2: getfield com/l7tech/server/logon/SSMLogonService.f Lcom/l7tech/server/audit/Auditor;
      // 1f5: getstatic com/l7tech/gateway/common/audit/SystemMessages.AUTH_USER_EXCEED_INACTIVITY Lcom/l7tech/gateway/common/audit/Messages$M;
      // 1f8: bipush 3
      // 1f9: anewarray 17
      // 1fc: dup
      // 1fd: bipush 0
      // 1fe: aload 1
      // 1ff: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 204: aastore
      // 205: dup
      // 206: bipush 1
      // 207: lload 6
      // 209: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 20c: aastore
      // 20d: dup
      // 20e: bipush 2
      // 20f: aload 0
      // 210: getfield com/l7tech/server/logon/SSMLogonService.l I
      // 213: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 216: aastore
      // 217: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 21a: aload 1
      // 21b: invokeinterface com/l7tech/identity/User.getLogin ()Ljava/lang/String; 1
      // 220: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 223: astore 9
      // 225: aload 9
      // 227: bipush 26
      // 229: aaload
      // 22a: swap
      // 22b: aload 9
      // 22d: bipush 14
      // 22f: aaload
      // 230: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 235: astore 8
      // 237: getstatic com/l7tech/server/logon/SSMLogonService.b Ljava/util/logging/Logger;
      // 23a: aload 8
      // 23c: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 23f: aload 0
      // 240: aload 1
      // 241: getstatic com/l7tech/identity/LogonInfo$State.INACTIVE Lcom/l7tech/identity/LogonInfo$State;
      // 244: invokevirtual com/l7tech/server/logon/SSMLogonService.a (Lcom/l7tech/identity/User;Lcom/l7tech/identity/LogonInfo$State;)V
      // 247: new com/l7tech/identity/FailInactivityPeriodExceededException
      // 24a: dup
      // 24b: aload 8
      // 24d: invokespecial com/l7tech/identity/FailInactivityPeriodExceededException.<init> (Ljava/lang/String;)V
      // 250: athrow
      // 251: aload 0
      // 252: aload 1
      // 253: invokevirtual com/l7tech/server/logon/SSMLogonService.a (Lcom/l7tech/identity/User;)V
      // 256: goto 25a
      // 259: astore 2
      // 25a: return
      // try (201 -> 214): 215 com/l7tech/objectmodel/FindException
      // try (195 -> 206): 207 com/l7tech/objectmodel/FindException
      // try (180 -> 198): 199 com/l7tech/objectmodel/FindException
      // try (94 -> 103): 104 com/l7tech/objectmodel/FindException
      // try (69 -> 77): 78 com/l7tech/objectmodel/FindException
      // try (53 -> 67): 67 com/l7tech/objectmodel/FindException
      // try (0 -> 7): 8 com/l7tech/objectmodel/FindException
      // try (0 -> 280): 281 com/l7tech/objectmodel/FindException
   }

   @Override
   public void updateLogonAttempt(User var1, AuthenticationResult var2) {
      this.a(var1, var2);
   }

   @Transactional(propagation = Propagation.REQUIRES_NEW)
   @Override
   public void updateInactivityInfo() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aconst_null
      // 001: astore 1
      // 002: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 005: astore 12
      // 007: aload 12
      // 009: bipush 10
      // 00b: aaload
      // 00c: astore 2
      // 00d: invokestatic java/lang/System.currentTimeMillis ()J
      // 010: lstore 3
      // 011: invokestatic java/util/Calendar.getInstance ()Ljava/util/Calendar;
      // 014: astore 5
      // 016: aload 0
      // 017: getfield com/l7tech/server/logon/SSMLogonService.d Lcom/l7tech/server/logon/LogonInfoManager;
      // 01a: invokeinterface com/l7tech/server/logon/LogonInfoManager.findAll ()Ljava/util/Collection; 1
      // 01f: astore 6
      // 021: aload 6
      // 023: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 028: astore 7
      // 02a: aload 7
      // 02c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 031: ifeq 136
      // 034: aload 7
      // 036: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 03b: checkcast com/l7tech/identity/LogonInfo
      // 03e: astore 8
      // 040: aload 8
      // 042: invokevirtual com/l7tech/identity/LogonInfo.getState ()Lcom/l7tech/identity/LogonInfo$State;
      // 045: getstatic com/l7tech/identity/LogonInfo$State.ACTIVE Lcom/l7tech/identity/LogonInfo$State;
      // 048: if_acmpeq 052
      // 04b: goto 02a
      // 04e: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 051: athrow
      // 052: aload 5
      // 054: lload 3
      // 055: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 058: aload 5
      // 05a: aload 8
      // 05c: invokevirtual com/l7tech/identity/LogonInfo.getLastActivity ()J
      // 05f: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 062: aload 5
      // 064: bipush 10
      // 066: aload 0
      // 067: getfield com/l7tech/server/logon/SSMLogonService.l I
      // 06a: bipush 24
      // 06c: imul
      // 06d: invokevirtual java/util/Calendar.add (II)V
      // 070: aload 0
      // 071: getfield com/l7tech/server/logon/SSMLogonService.l I
      // 074: ifeq 133
      // 077: aload 8
      // 079: invokevirtual com/l7tech/identity/LogonInfo.getLastActivity ()J
      // 07c: lconst_0
      // 07d: lcmp
      // 07e: ifle 133
      // 081: goto 088
      // 084: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 087: athrow
      // 088: aload 5
      // 08a: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // 08d: lload 3
      // 08e: lcmp
      // 08f: ifgt 133
      // 092: goto 099
      // 095: invokestatic com/l7tech/server/logon/SSMLogonService.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 098: athrow
      // 099: aload 0
      // 09a: getfield com/l7tech/server/logon/SSMLogonService.d Lcom/l7tech/server/logon/LogonInfoManager;
      // 09d: aload 8
      // 09f: invokeinterface com/l7tech/server/logon/LogonInfoManager.update (Lcom/l7tech/identity/LogonInfo;)V 2
      // 0a4: lload 3
      // 0a5: aload 8
      // 0a7: invokevirtual com/l7tech/identity/LogonInfo.getLastActivity ()J
      // 0aa: lsub
      // 0ab: ldc2_w 1000
      // 0ae: ldiv
      // 0af: ldc2_w 60
      // 0b2: ldiv
      // 0b3: ldc2_w 60
      // 0b6: ldiv
      // 0b7: ldc2_w 24
      // 0ba: ldiv
      // 0bb: lstore 9
      // 0bd: getstatic com/l7tech/gateway/common/audit/SystemMessages.AUTH_USER_EXCEED_INACTIVITY Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0c0: invokevirtual com/l7tech/gateway/common/audit/Messages$M.getMessage ()Ljava/lang/String;
      // 0c3: bipush 3
      // 0c4: anewarray 84
      // 0c7: dup
      // 0c8: bipush 0
      // 0c9: aload 8
      // 0cb: invokevirtual com/l7tech/identity/LogonInfo.getLogin ()Ljava/lang/String;
      // 0ce: aastore
      // 0cf: dup
      // 0d0: bipush 1
      // 0d1: lload 9
      // 0d3: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 0d6: aastore
      // 0d7: dup
      // 0d8: bipush 2
      // 0d9: aload 0
      // 0da: getfield com/l7tech/server/logon/SSMLogonService.l I
      // 0dd: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 0e0: aastore
      // 0e1: invokestatic java/text/MessageFormat.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
      // 0e4: astore 11
      // 0e6: aload 0
      // 0e7: getfield com/l7tech/server/logon/SSMLogonService.a Lorg/springframework/context/ApplicationContext;
      // 0ea: new com/l7tech/server/logon/SSMLogonService$1
      // 0ed: dup
      // 0ee: aload 0
      // 0ef: aload 0
      // 0f0: getstatic com/l7tech/gateway/common/Component.GW_ACCOUNT_MANAGER Lcom/l7tech/gateway/common/Component;
      // 0f3: aconst_null
      // 0f4: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 0f7: aload 11
      // 0f9: invokespecial com/l7tech/server/logon/SSMLogonService$1.<init> (Lcom/l7tech/server/logon/SSMLogonService;Ljava/lang/Object;Lcom/l7tech/gateway/common/Component;Ljava/lang/String;Ljava/util/logging/Level;Ljava/lang/String;)V
      // 0fc: invokeinterface org/springframework/context/ApplicationContext.publishEvent (Lorg/springframework/context/ApplicationEvent;)V 2
      // 101: aload 8
      // 103: getstatic com/l7tech/identity/LogonInfo$State.INACTIVE Lcom/l7tech/identity/LogonInfo$State;
      // 106: invokevirtual com/l7tech/identity/LogonInfo.setState (Lcom/l7tech/identity/LogonInfo$State;)V
      // 109: goto 133
      // 10c: astore 9
      // 10e: aload 8
      // 110: invokevirtual com/l7tech/identity/LogonInfo.getLogin ()Ljava/lang/String;
      // 113: aload 9
      // 115: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 118: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 11b: astore 12
      // 11d: aload 12
      // 11f: bipush 16
      // 121: aaload
      // 122: dup_x2
      // 123: pop
      // 124: aload 12
      // 126: bipush 19
      // 128: aaload
      // 129: swap
      // 12a: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 12f: astore 1
      // 130: goto 136
      // 133: goto 02a
      // 136: goto 14f
      // 139: astore 3
      // 13a: aload 3
      // 13b: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 13e: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 141: astore 12
      // 143: aload 12
      // 145: bipush 6
      // 147: aaload
      // 148: swap
      // 149: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 14e: astore 1
      // 14f: aload 1
      // 150: ifnull 17a
      // 153: aload 1
      // 154: getstatic com/l7tech/server/logon/SSMLogonService.q [Ljava/lang/String;
      // 157: bipush 4
      // 158: aaload
      // 159: swap
      // 15a: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 15f: astore 3
      // 160: aload 0
      // 161: getfield com/l7tech/server/logon/SSMLogonService.a Lorg/springframework/context/ApplicationContext;
      // 164: new com/l7tech/server/logon/SSMLogonService$2
      // 167: dup
      // 168: aload 0
      // 169: aload 0
      // 16a: getstatic com/l7tech/gateway/common/Component.GW_ACCOUNT_MANAGER Lcom/l7tech/gateway/common/Component;
      // 16d: aconst_null
      // 16e: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 171: aload 3
      // 172: invokespecial com/l7tech/server/logon/SSMLogonService$2.<init> (Lcom/l7tech/server/logon/SSMLogonService;Ljava/lang/Object;Lcom/l7tech/gateway/common/Component;Ljava/lang/String;Ljava/util/logging/Level;Ljava/lang/String;)V
      // 175: invokeinterface org/springframework/context/ApplicationContext.publishEvent (Lorg/springframework/context/ApplicationEvent;)V 2
      // 17a: return
      // try (50 -> 63): 64 com/l7tech/objectmodel/UpdateException
      // try (33 -> 55): 56 com/l7tech/objectmodel/UpdateException
      // try (26 -> 31): 31 com/l7tech/objectmodel/UpdateException
      // try (66 -> 120): 121 com/l7tech/objectmodel/UpdateException
      // try (8 -> 141): 142 com/l7tech/objectmodel/FindException
   }

   // $VF: Could not verify finally blocks. A semaphore variable has been added to preserve control flow.
   // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
   @Transactional(propagation = Propagation.REQUIRES_NEW)
   @Override
   public void checkLogonInfos() {
      String var1 = null;
      boolean var15 = false /* VF: Semaphore variable */;

      label107: {
         label108: {
            try {
               var15 = true;

               for (Pair var4 : this.g.getExplicitRoleAssignments()) {
                  Goid var5 = (Goid)var4.left;
                  String var6 = null;
                  if (IdentityProviderConfigManager.INTERNALPROVIDER_SPECIAL_GOID.equals(var5)) {
                     InternalUserManager var7 = this.a();
                     InternalUser var8 = (InternalUser)var7.findByPrimaryKey((String)var4.right);
                     if (var8 != null) {
                        var6 = var8.getLogin();
                     } else {
                        Logger var10000 = b;
                        String var10001 = String.valueOf(var4.right);
                        String[] var25 = q;
                        var10000.info(var25[24] + var10001);
                     }
                  } else {
                     var6 = (String)var4.right;
                  }

                  if (var6 != null) {
                     LogonInfo var22 = this.d.findByCompositeKey(var5, var6, false);
                     if (var22 == null) {
                        LogonInfo var23 = new LogonInfo(var5, var6);
                        this.d.save(var23);
                     }
                  }
               }

               var15 = false;
               break label107;
            } catch (FindException var16) {
               var1 = ExceptionUtils.getMessage(var16);
               var15 = false;
            } catch (SaveException var17) {
               var1 = ExceptionUtils.getMessage(var17);
               var15 = false;
               break label108;
            } finally {
               if (var15) {
                  if (var1 != null) {
                     String var10 = q[22] + var1;
                     this.a.publishEvent(new SystemEvent(this, Component.GW_ACCOUNT_MANAGER, null, Level.INFO, var10) {
                        static final long serialVersionUID = 7354690038689273495L;
                        private static final String b;

                        @Override
                        public String getAction() {
                           return b;
                        }

                        static {
                           String var10002 = b(69, b("i\u0007V\"\u001f\u0007\u000eN\fHq*\u0011\u0002S\rS\"\u001f\u0000\u0000H\u0017Ov~.\fI\u000bUm,"));
                           byte var10001 = -1;
                           b = var10002;
                        }

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

                           return var10000;
                        }

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

                           for (int var2 = 0; var10000 > var2; var2++) {
                              var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
                                 case 0 -> 98;
                                 case 1 -> 39;
                                 case 2 -> 100;
                                 case 3 -> 71;
                                 case 4 -> 27;
                                 case 5 -> 38;
                                 default -> 38;
                              });
                           }

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

            if (var1 != null) {
               String[] var24 = q;
               String var19 = var24[22] + var1;
               this.a.publishEvent(new SystemEvent(this, Component.GW_ACCOUNT_MANAGER, null, Level.INFO, var19) {
                  static final long serialVersionUID = 7354690038689273495L;
                  private static final String b;

                  @Override
                  public String getAction() {
                     return b;
                  }

                  static {
                     String var10002 = b(69, b("i\u0007V\"\u001f\u0007\u000eN\fHq*\u0011\u0002S\rS\"\u001f\u0000\u0000H\u0017Ov~.\fI\u000bUm,"));
                     byte var10001 = -1;
                     b = var10002;
                  }

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

                     return var10000;
                  }

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

                     for (int var2 = 0; var10000 > var2; var2++) {
                        var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
                           case 0 -> 98;
                           case 1 -> 39;
                           case 2 -> 100;
                           case 3 -> 71;
                           case 4 -> 27;
                           case 5 -> 38;
                           default -> 38;
                        });
                     }

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

            return;
         }

         if (var1 != null) {
            String[] var11 = q;
            String var2 = var11[22] + var1;
            this.a.publishEvent(new SystemEvent(this, Component.GW_ACCOUNT_MANAGER, null, Level.INFO, var2) {
               static final long serialVersionUID = 7354690038689273495L;
               private static final String b;

               @Override
               public String getAction() {
                  return b;
               }

               static {
                  String var10002 = b(69, b("i\u0007V\"\u001f\u0007\u000eN\fHq*\u0011\u0002S\rS\"\u001f\u0000\u0000H\u0017Ov~.\fI\u000bUm,"));
                  byte var10001 = -1;
                  b = var10002;
               }

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

                  return var10000;
               }

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

                  for (int var2 = 0; var10000 > var2; var2++) {
                     var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
                        case 0 -> 98;
                        case 1 -> 39;
                        case 2 -> 100;
                        case 3 -> 71;
                        case 4 -> 27;
                        case 5 -> 38;
                        default -> 38;
                     });
                  }

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

         return;
      }

      if (var1 != null) {
         String[] var26 = q;
         String var21 = var26[5] + var1;
         this.a.publishEvent(new SystemEvent(this, Component.GW_ACCOUNT_MANAGER, null, Level.INFO, var21) {
            static final long serialVersionUID = 7354690038689273495L;
            private static final String b;

            @Override
            public String getAction() {
               return b;
            }

            static {
               String var10002 = b(69, b("i\u0007V\"\u001f\u0007\u000eN\fHq*\u0011\u0002S\rS\"\u001f\u0000\u0000H\u0017Ov~.\fI\u000bUm,"));
               byte var10001 = -1;
               b = var10002;
            }

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

               return var10000;
            }

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

               for (int var2 = 0; var10000 > var2; var2++) {
                  var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
                     case 0 -> 98;
                     case 1 -> 39;
                     case 2 -> 100;
                     case 3 -> 71;
                     case 4 -> 27;
                     case 5 -> 38;
                     default -> 38;
                  });
               }

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

   private void a(User var1, State var2) {
      this.a(var1, new a(this, var2));
   }

   private void a(User var1) {
      this.a(var1, new b(this));
   }

   private void a(User var1, AuthenticationResult var2) {
      this.a(var1, new c(this, var2));
   }

   private void a(User var1, long var2) {
      this.a(var1, new d(this, var2));
   }

   private void a(User var1, UnaryVoid<LogonInfo> var2) {
      HashSet var3 = new HashSet();
      var3.add(var1);
      Subject var4 = new Subject(true, var3, Collections.emptySet(), Collections.emptySet());
      String var5 = var1.getLogin();
      Subject.callAs(var4, () -> {
         try {
            TransactionTemplate var4x = new TransactionTemplate(this.c);
            var4x.setPropagationBehavior(3);
            var4x.execute(new e(this, var1, var2, var5));
         } catch (Exception var5x) {
            b.log(Level.INFO, q[8] + var5 + "'", var5x);
         }

         return null;
      });
   }

   private boolean b(User var1) throws FindException {
      for (Role var3 : this.g.getAssignedRoles(var1)) {
         try {
            if (var3.getTag() == Tag.ADMIN) {
               return true;
            }
         } catch (FindException var4) {
            throw a(var4);
         }
      }

      return false;
   }

   private InternalUserManager a() throws FindException {
      if (this.h == null) {
         InternalIdentityProvider var1 = (InternalIdentityProvider)this.i.getProvider(IdentityProviderConfigManager.INTERNALPROVIDER_SPECIAL_GOID);

         try {
            if (var1 == null) {
               throw new FindException(q[17]);
            }
         } catch (FindException var2) {
            throw a(var2);
         }

         this.h = (InternalUserManager)var1.getUserManager();
      }

      return this.h;
   }

   static {
      String[] var5 = new String[27];
      int var3 = 0;
      String var2 = "B!X,\nz\u0019h2Q;Ox\u0002f:Sh\u0002u\u0019b;X;Ou\u0003!:S<\nf\u0003`?\u001d=\u001cq\u001f!&@0^-\u001cgMh \u001d,\nz\u0004d7\u001d*\nw\ft Xh\u0000rMh=\\+\u001b}\u001bh'D\u0011m<Z'\u0001:\u0001n0V'\u001a`9h>X\u0011m<Z'\u0001:\u0001n0V'\u001a`9h>X!@0^'\u001az\u0019!2^<\u0006b\u0004u*\u001d%\u0000z\u0004u<Oh\tu\u0004m6YfO.O6Jh\u000ep\u0000h=T;\u001bf\fu<Oh\u000ew\u000en&S<Oy\fh=I-\u0001u\u0003b6\u001d.\u000e}\u0001d7\u0013h#G2T$\npMu<\u001d=\u001fp\fu6\u001d=\u001cq\u001frsT&\u000ew\u0019h%T<\u0016:M\u0016m<Z'\u0001:\u0004o2^<\u0006b\u0004u*m-\u001d}\u0002e$G2T$\npMu<\u001d=\u001fp\fu6\u001d$\u0000s\u0002os\\<\u001bq\u0000q'\u001d.\u0000fM&0-s_=\u001b4\fb0X;\u001c4\u0004rsY-\u0001}\bes_-\fu\u0018r6\u001d=\u001cq\u001f!:Nh\u000b}\u001e`1Q-\u000b:\u001a@0^'\u001az\u0019!\u001aS)\f`\u0004w:I1OY\u0002o:I'\u001d\u000eO<\u001d-\u0001`\u001fxs['\u001d4J\u001am<Z'\u0001:\u0000`+|$\u0003{\u001a`1Q-.`\u0019d>M<\u001c<-s_=\u001b4\fb0X;\u001c4\u0004rsY-\u0001}\bes_-\fu\u0018r6\u001d'\t4\u0003t>_-\u001d4\u0002gs[)\u0006x\bes\\<\u001bq\u0000q'Nf5-s_=\u001b4\fb0X;\u001c4\u0004rsY-\u0001}\bes_-\fu\u0018r6\u001d'\t4\fb0R=\u0001`Mh=\\+\u001b}\u001bh'Df\u001cR6O>\nf.n=[!\b4\u000e`=S'\u001b4\u000fdsS=\u0003xC!G2T$\npMu<\u001d=\u001fp\fu6\u001d!\u0001u\u000eu:K!\u001bmMg<OhH#H7X&\u001b}\u0019x\u0003O'\u0019}\td!\u001d+\u0000a\u0001esS'\u001b4\u000fds['\u001az\t M<Z'\u0001]\u0003g<p)\u0001u\nd!\u001d+\u000ez\u0003n'\u001d*\n4\u0003t?Qf\u0003&}\u001d\u001am<Z'\u0001:\u0000`+|$\u0003{\u001a`1Q-.`\u0019d>M<\u001c$G2T$\npMu<\u001d=\u001fp\fu6\u001d$\u0000s\u0002os\\<\u001bq\u0000q'\u001d.\u0000fM&.O6Jh\u000ep\u0000h=T;\u001bf\fu<Oh\u000ew\u000en&S<Oy\fh=I-\u0001u\u0003b6\u001d.\u000e}\u0001d7\u0013h+Q?\\<\nr\u0002s>i:\u000ez\u001e`0I!\u0000z `=\\/\nfMb2S&\u0000`Mc6\u001d&\u001ax\u0001/\u0019H=I-\u001dz\fmsH;\nfMo<Ih\t{\u0018o7\u0007h";
      int var4 = "B!X,\nz\u0019h2Q;Ox\u0002f:Sh\u0002u\u0019b;X;Ou\u0003!:S<\nf\u0003`?\u001d=\u001cq\u001f!&@0^-\u001cgMh \u001d,\nz\u0004d7\u001d*\nw\ft Xh\u0000rMh=\\+\u001b}\u001bh'D\u0011m<Z'\u0001:\u0001n0V'\u001a`9h>X\u0011m<Z'\u0001:\u0001n0V'\u001a`9h>X!@0^'\u001az\u0019!2^<\u0006b\u0004u*\u001d%\u0000z\u0004u<Oh\tu\u0004m6YfO.O6Jh\u000ep\u0000h=T;\u001bf\fu<Oh\u000ew\u000en&S<Oy\fh=I-\u0001u\u0003b6\u001d.\u000e}\u0001d7\u0013h#G2T$\npMu<\u001d=\u001fp\fu6\u001d=\u001cq\u001frsT&\u000ew\u0019h%T<\u0016:M\u0016m<Z'\u0001:\u0004o2^<\u0006b\u0004u*m-\u001d}\u0002e$G2T$\npMu<\u001d=\u001fp\fu6\u001d$\u0000s\u0002os\\<\u001bq\u0000q'\u001d.\u0000fM&0-s_=\u001b4\fb0X;\u001c4\u0004rsY-\u0001}\bes_-\fu\u0018r6\u001d=\u001cq\u001f!:Nh\u000b}\u001e`1Q-\u000b:\u001a@0^'\u001az\u0019!\u001aS)\f`\u0004w:I1OY\u0002o:I'\u001d\u000eO<\u001d-\u0001`\u001fxs['\u001d4J\u001am<Z'\u0001:\u0000`+|$\u0003{\u001a`1Q-.`\u0019d>M<\u001c<-s_=\u001b4\fb0X;\u001c4\u0004rsY-\u0001}\bes_-\fu\u0018r6\u001d'\t4\u0003t>_-\u001d4\u0002gs[)\u0006x\bes\\<\u001bq\u0000q'Nf5-s_=\u001b4\fb0X;\u001c4\u0004rsY-\u0001}\bes_-\fu\u0018r6\u001d'\t4\fb0R=\u0001`Mh=\\+\u001b}\u001bh'Df\u001cR6O>\nf.n=[!\b4\u000e`=S'\u001b4\u000fdsS=\u0003xC!G2T$\npMu<\u001d=\u001fp\fu6\u001d!\u0001u\u000eu:K!\u001bmMg<OhH#H7X&\u001b}\u0019x\u0003O'\u0019}\td!\u001d+\u0000a\u0001esS'\u001b4\u000fds['\u001az\t M<Z'\u0001]\u0003g<p)\u0001u\nd!\u001d+\u000ez\u0003n'\u001d*\n4\u0003t?Qf\u0003&}\u001d\u001am<Z'\u0001:\u0000`+|$\u0003{\u001a`1Q-.`\u0019d>M<\u001c$G2T$\npMu<\u001d=\u001fp\fu6\u001d$\u0000s\u0002os\\<\u001bq\u0000q'\u001d.\u0000fM&.O6Jh\u000ep\u0000h=T;\u001bf\fu<Oh\u000ew\u000en&S<Oy\fh=I-\u0001u\u0003b6\u001d.\u000e}\u0001d7\u0013h+Q?\\<\nr\u0002s>i:\u000ez\u001e`0I!\u0000z `=\\/\nfMb2S&\u0000`Mc6\u001d&\u001ax\u0001/\u0019H=I-\u001dz\fmsH;\nfMo<Ih\t{\u0018o7\u0007h"
         .length();
      char var1 = '+';
      int var7 = -1;

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

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

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

                  var2 = "<m\u000bvPkU>c\u000fmW3U${<|L,S4+\u0013p\t}[+H9c\u0000j\u001e)S7k\u00029S$H3j\tj\u001e$Rpk\u0002m[7R1nLlM Np";
                  var4 = "<m\u000bvPkU>c\u000fmW3U${<|L,S4+\u0013p\t}[+H9c\u0000j\u001e)S7k\u00029S$H3j\tj\u001e$Rpk\u0002m[7R1nLlM Np".length();
                  var1 = 22;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String a(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 -> 59;
            case 1 -> 105;
            case 2 -> 7;
            case 3 -> 114;
            case 4 -> 85;
            case 5 -> 46;
            default -> 87;
         });
      }

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