package com.l7tech.message;

import com.l7tech.common.http.CookieUtils;
import com.l7tech.common.http.HttpConstants;
import com.l7tech.common.http.HttpCookie;
import com.l7tech.common.http.HttpCookie.IllegalFormatException;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;

public class HttpCookiesKnobImpl implements HttpCookiesKnob {
   private static final Logger a;
   private final HeadersKnob b;
   private final String c;
   private static final String[] d;

   public HttpCookiesKnobImpl(@NotNull HeadersKnob var1, @NotNull String var2) {
      if (var1 == null) {
         a(0);
      }

      if (var2 == null) {
         a(1);
      }

      super();
      if (!HttpConstants.HEADER_COOKIE.equalsIgnoreCase(var2)) {
         try {
            if (!HttpConstants.HEADER_SET_COOKIE.equalsIgnoreCase(var2)) {
               throw new IllegalArgumentException(d[18] + HttpConstants.HEADER_COOKIE + d[5] + HttpConstants.HEADER_SET_COOKIE);
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }
      }

      this.b = var1;
      this.c = var2;
   }

   @NotNull
   public String getCookieHeaderName() {
      try {
         if (this.c == null) {
            a(2);
         }

         return this.c;
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   @Override
   public Set<HttpCookie> getCookies() {
      LinkedHashSet var1 = new LinkedHashSet();
      String[] var10 = d;

      for (String var5 : this.b.getHeaderValues(this.c, var10[14])) {
         for (String var8 : CookieUtils.splitCookieHeader(var5)) {
            try {
               var1.add(new HttpCookie(var8));
            } catch (IllegalFormatException var11) {
               a.log(Level.WARNING, d[16] + var5);
            }
         }
      }

      return var1;
   }

   @Override
   public Set<String> getCookiesAsHeaders() {
      LinkedHashSet var1 = new LinkedHashSet();

      for (String var5 : this.b.getHeaderValues(this.c, d[1])) {
         try {
            if (this.c.equalsIgnoreCase(HttpConstants.HEADER_COOKIE)) {
               var1.addAll(CookieUtils.splitCookieHeader(var5));
               continue;
            }
         } catch (IllegalArgumentException var6) {
            throw a(var6);
         }

         var1.add(var5);
      }

      return var1;
   }

   @Override
   public void addCookie(@NotNull HttpCookie var1) {
      try {
         if (var1 == null) {
            a(3);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      try {
         if (this.getCookies().contains(var1)) {
            this.deleteCookie(var1);
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      this.b.addHeader(this.c, CookieUtils.getSetCookieHeader(var1), d[14]);
   }

   @Override
   public void deleteCookie(@NotNull HttpCookie var1) {
      try {
         if (var1 == null) {
            a(4);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.a(this.c, var1);
   }

   private void a(String param1, HttpCookie param2) {
      // $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 0
      // 001: getfield com/l7tech/message/HttpCookiesKnobImpl.b Lcom/l7tech/message/HeadersKnob;
      // 004: aload 1
      // 005: getstatic com/l7tech/message/HttpCookiesKnobImpl.d [Ljava/lang/String;
      // 008: astore 12
      // 00a: aload 12
      // 00c: bipush 14
      // 00e: aaload
      // 00f: invokeinterface com/l7tech/message/HeadersKnob.getHeaderValues (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; 3
      // 014: astore 3
      // 015: aload 3
      // 016: arraylength
      // 017: istore 4
      // 019: bipush 0
      // 01a: istore 5
      // 01c: iload 5
      // 01e: iload 4
      // 020: if_icmpge 126
      // 023: aload 3
      // 024: iload 5
      // 026: aaload
      // 027: astore 6
      // 029: aload 6
      // 02b: invokestatic com/l7tech/common/http/CookieUtils.splitCookieHeader (Ljava/lang/String;)Ljava/util/List;
      // 02e: astore 7
      // 030: new java/util/ArrayList
      // 033: dup
      // 034: invokespecial java/util/ArrayList.<init> ()V
      // 037: astore 8
      // 039: aload 7
      // 03b: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 040: astore 9
      // 042: aload 9
      // 044: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 049: ifeq 0ae
      // 04c: aload 9
      // 04e: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 053: checkcast java/lang/String
      // 056: astore 10
      // 058: new com/l7tech/common/http/HttpCookie
      // 05b: dup
      // 05c: aload 10
      // 05e: invokespecial com/l7tech/common/http/HttpCookie.<init> (Ljava/lang/String;)V
      // 061: astore 11
      // 063: aload 2
      // 064: invokevirtual com/l7tech/common/http/HttpCookie.getId ()Ljava/lang/String;
      // 067: aload 11
      // 069: invokevirtual com/l7tech/common/http/HttpCookie.getId ()Ljava/lang/String;
      // 06c: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 06f: ifeq 083
      // 072: aload 8
      // 074: aload 10
      // 076: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 07b: pop
      // 07c: goto 083
      // 07f: invokestatic com/l7tech/message/HttpCookiesKnobImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 082: athrow
      // 083: goto 0ab
      // 086: astore 11
      // 088: getstatic com/l7tech/message/HttpCookiesKnobImpl.a Ljava/util/logging/Logger;
      // 08b: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 08e: aload 1
      // 08f: aload 6
      // 091: getstatic com/l7tech/message/HttpCookiesKnobImpl.d [Ljava/lang/String;
      // 094: astore 12
      // 096: aload 12
      // 098: bipush 7
      // 09a: aaload
      // 09b: dup_x2
      // 09c: pop
      // 09d: aload 12
      // 09f: bipush 6
      // 0a1: aaload
      // 0a2: swap
      // 0a3: 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" ]
      // 0a8: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 0ab: goto 042
      // 0ae: aload 8
      // 0b0: invokeinterface java/util/List.isEmpty ()Z 1
      // 0b5: ifne 120
      // 0b8: getstatic com/l7tech/message/HttpCookiesKnobImpl.a Ljava/util/logging/Logger;
      // 0bb: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 0be: aload 8
      // 0c0: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0c3: getstatic com/l7tech/message/HttpCookiesKnobImpl.d [Ljava/lang/String;
      // 0c6: bipush 15
      // 0c8: aaload
      // 0c9: swap
      // 0ca: 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" ]
      // 0cf: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 0d2: aload 7
      // 0d4: aload 8
      // 0d6: invokeinterface java/util/List.removeAll (Ljava/util/Collection;)Z 2
      // 0db: pop
      // 0dc: aload 0
      // 0dd: getfield com/l7tech/message/HttpCookiesKnobImpl.b Lcom/l7tech/message/HeadersKnob;
      // 0e0: aload 1
      // 0e1: aload 6
      // 0e3: getstatic com/l7tech/message/HttpCookiesKnobImpl.d [Ljava/lang/String;
      // 0e6: bipush 14
      // 0e8: aaload
      // 0e9: invokeinterface com/l7tech/message/HeadersKnob.removeHeader (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)V 4
      // 0ee: aload 7
      // 0f0: invokeinterface java/util/List.isEmpty ()Z 1
      // 0f5: ifne 120
      // 0f8: goto 0ff
      // 0fb: invokestatic com/l7tech/message/HttpCookiesKnobImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fe: athrow
      // 0ff: aload 0
      // 100: getfield com/l7tech/message/HttpCookiesKnobImpl.b Lcom/l7tech/message/HeadersKnob;
      // 103: aload 1
      // 104: aload 7
      // 106: getstatic com/l7tech/message/HttpCookiesKnobImpl.d [Ljava/lang/String;
      // 109: bipush 4
      // 10a: aaload
      // 10b: invokestatic org/apache/commons/lang3/StringUtils.join (Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
      // 10e: getstatic com/l7tech/message/HttpCookiesKnobImpl.d [Ljava/lang/String;
      // 111: bipush 14
      // 113: aaload
      // 114: invokeinterface com/l7tech/message/HeadersKnob.addHeader (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)V 4
      // 119: goto 120
      // 11c: invokestatic com/l7tech/message/HttpCookiesKnobImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11f: athrow
      // 120: iinc 5 1
      // 123: goto 01c
      // 126: return
      // try (44 -> 54): 55 com/l7tech/common/http/HttpCookie$IllegalFormatException
      // try (39 -> 57): 58 com/l7tech/common/http/HttpCookie$IllegalFormatException
      // try (77 -> 105): 106 com/l7tech/common/http/HttpCookie$IllegalFormatException
      // try (80 -> 120): 121 com/l7tech/common/http/HttpCookie$IllegalFormatException
   }

   static {
      String[] var5 = new String[20];
      int var3 = 0;
      String var2 = "|6\u0018\u0013$Q\u000b\b\u000b\"*p'Q!;\u0013\b*\u0000\u0011\u0019\u000e\u001e\u001aX,\u007f\u001b\u001f$\u0007[$\u007fS\t~JG`2\u0003\t$OZ/+V\b5\u001bA21V\u0014%\u0003X\u0006#0\u0019\u00119\n\u0002{\u007f\u0004`0\u0004Z\t`7\u0013\u001b4\nFz\u007f\u0011\u00134\u001f\n \u0006Z'\u007f\u001f\u0014&\u000eX);V\u0013':\u00029?\u0000_):>\u001f1\u000bQ2\u0011\u0017\u00175&#0\u001bU<X@%<\u001eU=\nG3>\u0011\u001f\u007f'@4/5\u0015?\u0004]%,=\u0014?\r}-/\u001a>\u0001-\u0011\u000f=\nZ4\u007f\u0010\u0015\"Ot\u000e0\u00024%\u0003X`/\u0017\b1\u0002Q4:\u0004ZwJGg\u007f\u0019\u001cpJGnz\u0005Z=\u001aG4\u007f\u0018\u0015$OV%\u007f\u0018\u000f<\u0003\u0010#0\u0019\u00119\n|%>\u0012\u001f\"!U-:\f$:\u001a\u001f$\nw/0\u001d\u00135\b$:\u001a\u001f7\u000e@%\u000b\b\u000b\"*p'Q!;\u0013\b\u0012\u0012:\u001b\u0015&\u0006Z'\u007f\u0015\u0015?\u0004]%,LZ \u00030\u0003\u00164OZ/+V\n\"\u0000W%,\u0005Z3\u0000[+6\u0013Z&\u000eX5:LZ&#0\u001bU<X@%<\u001eU=\nG3>\u0011\u001f\u007f'@4/5\u0015?\u0004]%,=\u0014?\r}-/\u001a";
      int var4 = "|6\u0018\u0013$Q\u000b\b\u000b\"*p'Q!;\u0013\b*\u0000\u0011\u0019\u000e\u001e\u001aX,\u007f\u001b\u001f$\u0007[$\u007fS\t~JG`2\u0003\t$OZ/+V\b5\u001bA21V\u0014%\u0003X\u0006#0\u0019\u00119\n\u0002{\u007f\u0004`0\u0004Z\t`7\u0013\u001b4\nFz\u007f\u0011\u00134\u001f\n \u0006Z'\u007f\u001f\u0014&\u000eX);V\u0013':\u00029?\u0000_):>\u001f1\u000bQ2\u0011\u0017\u00175&#0\u001bU<X@%<\u001eU=\nG3>\u0011\u001f\u007f'@4/5\u0015?\u0004]%,=\u0014?\r}-/\u001a>\u0001-\u0011\u000f=\nZ4\u007f\u0010\u0015\"Ot\u000e0\u00024%\u0003X`/\u0017\b1\u0002Q4:\u0004ZwJGg\u007f\u0019\u001cpJGnz\u0005Z=\u001aG4\u007f\u0018\u0015$OV%\u007f\u0018\u000f<\u0003\u0010#0\u0019\u00119\n|%>\u0012\u001f\"!U-:\f$:\u001a\u001f$\nw/0\u001d\u00135\b$:\u001a\u001f7\u000e@%\u000b\b\u000b\"*p'Q!;\u0013\b\u0012\u0012:\u001b\u0015&\u0006Z'\u007f\u0015\u0015?\u0004]%,LZ \u00030\u0003\u00164OZ/+V\n\"\u0000W%,\u0005Z3\u0000[+6\u0013Z&\u000eX5:LZ&#0\u001bU<X@%<\u001eU=\nG3>\u0011\u001f\u007f'@4/5\u0015?\u0004]%,=\u0014?\r}-/\u001a"
         .length();
      char var1 = 6;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 104;
         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) {
                     d = var5;
                     a = Logger.getLogger(HttpCookiesKnobImpl.class.getName());
                     return;
                  }

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

                  var2 = "\u0010#\n\u0002*\u0019\u0007;)\u0004\r&\u000e\u0007=-\b\fc\u000fO<9\t\rc\u001eBs)\f\u001d+\u0019Us\t2(\u0001*,\u0013L:)";
                  var4 = "\u0010#\n\u0002*\u0019\u0007;)\u0004\r&\u000e\u0007=-\b\fc\u000fO<9\t\rc\u001eBs)\f\u001d+\u0019Us\t2(\u0001*,\u0013L:)".length();
                  var1 = '$';
                  var7 = -1;
            }

            var10000 = 123;
            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] ^ 92);
      }

      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 -> 40;
            case 1 -> 55;
            case 2 -> 30;
            case 3 -> 18;
            case 4 -> 56;
            case 5 -> 7;
            default -> 92;
         });
      }

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