package com.l7tech.server.cluster;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.AuditFactory;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.TimeUnit;
import com.l7tech.util.ValidatedConfig;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Timer;
import java.util.concurrent.atomic.AtomicLong;
import java.util.logging.Logger;
import javax.sql.DataSource;
import org.springframework.context.ApplicationEventPublisher;

public class DatabaseReplicationMonitor implements PropertyChangeListener {
   private static final Logger a;
   private static final String b;
   private static final String c;
   private static final String d;
   private static final String e;
   private static final String f;
   private static final String g;
   private static final String h;
   private static final String i;
   private static final String j;
   private static final String k;
   private static final String l;
   private static final long m;
   private final Config n;
   private final ClusterMaster o;
   private final String p;
   private final String q;
   private final DataSource r;
   private final DataSource s;
   private final DataSource t;
   private final ApplicationEventPublisher u;
   private final Audit v;
   private final Timer w;
   private final String x;
   private final String y;
   private final Object z = new Object();
   private z A;
   private final AtomicLong B = new AtomicLong(0L);
   private static final String[] C;

   public DatabaseReplicationMonitor(
      Config var1,
      ClusterMaster var2,
      String var3,
      DataSource var4,
      String var5,
      DataSource var6,
      DataSource var7,
      AuditFactory var8,
      ApplicationEventPublisher var9,
      String var10,
      String var11,
      Timer var12
   ) {
      this.n = a(var1);
      this.o = var2;
      this.p = var3;
      this.q = var5;
      this.r = var4;
      this.s = var6;
      this.t = var7;
      this.u = var9;
      this.v = var8.newInstance(this, a);
      this.x = var10;
      this.y = var11;
      this.w = var12;
   }

   public void init() {
      this.a();
   }

   public long getReplicationDelay() {
      return this.B.get();
   }

   @Override
   public void propertyChange(PropertyChangeEvent var1) {
      a.config(C[5]);
      this.a();
   }

   private void a() {
      synchronized (this.z) {
         long var2 = 0L;
         if (this.A != null) {
            this.A.cancel();
            var2 = this.A.g;
            this.A = null;
         }

         String[] var7 = C;
         long var4 = this.n.getTimeUnitProperty(var7[8], 10000L);
         if (var7[13].equals(this.y) && var4 > 0L) {
            a.info(var7[6]);
            this.A = new z(
               this,
               var4,
               this.n.getTimeUnitProperty(var7[0], TimeUnit.SECONDS.toMillis(60L)) / TimeUnit.SECONDS.toMillis(1L),
               this.n.getTimeUnitProperty(var7[20], TimeUnit.HOURS.toMillis(1L)),
               var2
            );
            this.w.schedule(this.A, m, var4);
         }
      }
   }

   private static Config a(Config var0) {
      ValidatedConfig var1 = new ValidatedConfig(var0, a);
      String[] var2 = C;
      var1.setMinimumValue(var2[1], 0);
      var1.setMinimumValue(var2[15], 0);
      var1.setMinimumValue(var2[4], 0);
      return var1;
   }

   static {
      String[] var5 = new String[21];
      int var3 = 0;
      String var2 = "8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E} 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTkU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u0015|1Fb2Fw8xG~qOx5uZq4[0 8{\u001bu4Yu5zTs8Fw\u0019kGh#hl8pAN?]|.oTk8\u000e|Yh0Mp2~\u0015c0]x>xFbq[|,u\\d0]p3w\u0015j>Gp(vGn?N9?v[a8Nl.xAn>G7/tKP.\u0002Jq9}@k8G~|}Ts0Kx/|\u0015u4Yu5zTs8Fw|tZi8]v.p[`\u007f?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014( 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTkÒ\u0015WfB\u0003}9\u0015WaHq[|,u\\d0]p3wjt%Hm)j\u0015/>Ks9zAn5\u00059/|Dr4Gz95\u0015r!Mx(|Q+qGv8|\\c}\t}9uT~x\tO\u001dU`B\u0002\t1m5\n+n\u0005&p&\u001c'\u001eg9\u0018LeK\u0018jX\b\\\u0015L\u0014p9\tIqF\u0005l9/|Dr4Gz9$cF\u001d|\\\u000f1Fb \\|2zP.}\\i8xAb5\u0014O\u001dU`B\u0002\u0001l,}Ts4M0pwZc4@}aOtK\u0004lJtwZc4@}u5Qb=H`aOtK\u0004lJt}Pk0P0\n.|Ek8Jx(|Q/?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wqb=H`\rlPu(6?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w|i8]p=uvo4Jr\u0018|Yf(\n.|Ek8Jx(|QU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u001c8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E}*?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wdr4[`?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(+?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w`w5Hm9";
      int var4 = "8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E} 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTkU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u0015|1Fb2Fw8xG~qOx5uZq4[0 8{\u001bu4Yu5zTs8Fw\u0019kGh#hl8pAN?]|.oTk8\u000e|Yh0Mp2~\u0015c0]x>xFbq[|,u\\d0]p3w\u0015j>Gp(vGn?N9?v[a8Nl.xAn>G7/tKP.\u0002Jq9}@k8G~|}Ts0Kx/|\u0015u4Yu5zTs8Fw|tZi8]v.p[`\u007f?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014( 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTkÒ\u0015WfB\u0003}9\u0015WaHq[|,u\\d0]p3wjt%Hm)j\u0015/>Ks9zAn5\u00059/|Dr4Gz95\u0015r!Mx(|Q+qGv8|\\c}\t}9uT~x\tO\u001dU`B\u0002\t1m5\n+n\u0005&p&\u001c'\u001eg9\u0018LeK\u0018jX\b\\\u0015L\u0014p9\tIqF\u0005l9/|Dr4Gz9$cF\u001d|\\\u000f1Fb \\|2zP.}\\i8xAb5\u0014O\u001dU`B\u0002\u0001l,}Ts4M0pwZc4@}aOtK\u0004lJtwZc4@}u5Qb=H`aOtK\u0004lJt}Pk0P0\n.|Ek8Jx(|Q/?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wqb=H`\rlPu(6?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w|i8]p=uvo4Jr\u0018|Yf(\n.|Ek8Jx(|QU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u001c8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E}*?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wdr4[`?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(+?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w`w5Hm9"
         .length();
      char var1 = 28;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     C = var5;
                     String[] var10 = C;
                     g = C[2];
                     c = var10[8];
                     d = var10[0];
                     f = var10[9];
                     h = var10[7];
                     l = var10[3];
                     e = var10[20];
                     b = var10[10];
                     a = Logger.getLogger(DatabaseReplicationMonitor.class.getName());
                     String[] var8 = C;
                     i = ConfigFactory.getProperty(var8[18], var8[19]);
                     j = ConfigFactory.getProperty(var8[16], var8[14]);
                     k = ConfigFactory.getProperty(var8[11], var8[17]);
                     m = ConfigFactory.getLongProperty(var8[12], TimeUnit.MINUTES.toMillis(1L));
                     return;
                  }

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

                  var2 = "H\n;\u001f^ dH\n<\u0015,\u0006!q(\u00019m\u0000-n*7)x\u00150t7Hrc\u0016.d'\u001c3hXdr!\u0019/i\u001a'dhH/|\u0010%u!\fv,\u001a+e!\u0001> T d(\t#%T\u0012@\b=\u001f_Tl0hWv3X{-{AzC:dE\u00118\u0016E7\u0005U\u0001H\u0011I-dT\u0014,\u001bX1dr!\u0019/i\u001a'dy>\u001b@!\u0001Rl\u001b?}\u0001!o'\rs \u00014e%\u001c?hI\u0012@\b=\u001f_\\1q \t.i\u0010m-*\u0007>i\u001d <\u0012)\u0016Y1\u0017)*\u0007>i\u001d (h\f?`\u0015=<\u0012)\u0016Y1\u0017) \r6m\rm e&F(i\u0004(h'\t.e\u001b*D6\u001a5~51e-\u001c\u0013b\u0000!s2\t6";
                  var4 = "H\n;\u001f^ dH\n<\u0015,\u0006!q(\u00019m\u0000-n*7)x\u00150t7Hrc\u0016.d'\u001c3hXdr!\u0019/i\u001a'dhH/|\u0010%u!\fv,\u001a+e!\u0001> T d(\t#%T\u0012@\b=\u001f_Tl0hWv3X{-{AzC:dE\u00118\u0016E7\u0005U\u0001H\u0011I-dT\u0014,\u001bX1dr!\u0019/i\u001a'dy>\u001b@!\u0001Rl\u001b?}\u0001!o'\rs \u00014e%\u001c?hI\u0012@\b=\u001f_\\1q \t.i\u0010m-*\u0007>i\u001d <\u0012)\u0016Y1\u0017)*\u0007>i\u001d (h\f?`\u0015=<\u0012)\u0016Y1\u0017) \r6m\rm e&F(i\u0004(h'\t.e\u001b*D6\u001a5~51e-\u001c\u0013b\u0000!s2\t6"
                     .length();
                  var1 = 210;
                  var7 = -1;
            }

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

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

      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 -> 64;
            case 1 -> 5;
            case 2 -> 41;
            case 3 -> 27;
            case 4 -> 77;
            case 5 -> 53;
            default -> 5;
         });
      }

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