package com.l7tech.server.tomcat;

import com.l7tech.common.io.HexLogger;
import java.nio.ByteBuffer;
import java.util.logging.Logger;

public class TraceChannel {
   private static final Logger a;
   private static final Logger b;
   private final HexLogger c;

   public TraceChannel(String var1, boolean var2) {
      this.c = var2 ? new HexLogger(a, var1) : new HexLogger(b, var1);
   }

   public void close() {
      this.c.close();
   }

   public int[] positions(ByteBuffer[] var1) {
      int[] var2 = new int[var1.length];

      for (int var3 = 0; var3 < var2.length; var3++) {
         var2[var3] = var1[var3].position();
      }

      return var2;
   }

   public boolean traceEnabled() {
      return this.c.traceEnabled();
   }

   public int trace(ByteBuffer var1, int var2, int var3) {
      if (this.c.traceEnabled() && var3 > 0 && var1.hasArray()) {
         this.c.trace(var1.array(), var1.arrayOffset() + var2, var3);
      }

      return var3;
   }

   public long trace(ByteBuffer[] var1, int[] var2, long var3) {
      return this.trace(var1, 0, var1.length, var2, var3);
   }

   public long trace(ByteBuffer[] var1, int var2, int var3, int[] var4, long var5) {
      if (this.c.traceEnabled() && var5 > 0L) {
         for (int var7 = var2; var7 < var3; var7++) {
            ByteBuffer var8 = var1[var7];
            int var9 = var4[var7];
            if (var8.hasArray() && var9 < var8.position()) {
               this.c.trace(var8.array(), var8.arrayOffset() + var9, var8.position() - var9);
            }
         }
      }

      return var5;
   }

   static {
      String[] var0 = new String[2];
      int var4 = 0;
      String var3 = "e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u00030\\0t\u000fY\u0016&e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u0003m\u00066g\r_";
      int var5 = "e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u00030\\0t\u000fY\u0016&e\u0001W]/E0c\rR]0\u00176p\u000bH]7\u0000%h\u001dJ\u001c1\u0006jn\u001aN\u0003m\u00066g\r_"
         .length();
      char var2 = '\'';
      int var1 = -1;

      while (true) {
         String var10002 = a(66, a(var3.substring(++var1, var1 + var2)));
         byte var10001 = -1;
         var0[var4++] = var10002;
         if ((var1 += var2) >= var5) {
            a = Logger.getLogger(var0[0]);
            b = Logger.getLogger(var0[1]);
            return;
         }

         var2 = var3.charAt(var1);
      }
   }

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

      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 -> 68;
            case 1 -> 44;
            case 2 -> 120;
            case 3 -> 49;
            case 4 -> 1;
            case 5 -> 48;
            default -> 6;
         });
      }

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