package com.l7tech.common.io;

import com.l7tech.util.BufferPool;
import com.l7tech.util.Charsets;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;

public class ByteOrderMarkInputStream extends FilterInputStream {
   public static final Charset ASCII;
   public static final Charset UNICODE_BIG_UNMARKED;
   public static final Charset UNICODE_LITTLE_UNMARKED;
   public static final Charset UTF8;
   public static final Charset UTF32;
   public static final int MAX_BOM_LENGTH = 4;
   private byte[] a;
   private int b;
   private int c;
   private boolean d;
   private boolean e;
   private final Charset f;
   private static final String[] h;

   public ByteOrderMarkInputStream(InputStream param1) throws IOException {
      // $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 0
      // 01: aload 1
      // 02: invokespecial java/io/FilterInputStream.<init> (Ljava/io/InputStream;)V
      // 05: aload 0
      // 06: bipush 4
      // 07: invokestatic com/l7tech/util/BufferPool.getBuffer (I)[B
      // 0a: putfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 0d: aload 0
      // 0e: bipush 0
      // 0f: putfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 12: aload 0
      // 13: bipush 0
      // 14: putfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 17: aload 0
      // 18: bipush 0
      // 19: putfield com/l7tech/common/io/ByteOrderMarkInputStream.d Z
      // 1c: aload 0
      // 1d: bipush 0
      // 1e: putfield com/l7tech/common/io/ByteOrderMarkInputStream.e Z
      // 21: aload 1
      // 22: ifnonnull 2d
      // 25: new java/lang/NullPointerException
      // 28: dup
      // 29: invokespecial java/lang/NullPointerException.<init> ()V
      // 2c: athrow
      // 2d: aload 0
      // 2e: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 31: arraylength
      // 32: bipush 4
      // 33: if_icmpge 42
      // 36: new java/lang/IllegalStateException
      // 39: dup
      // 3a: invokespecial java/lang/IllegalStateException.<init> ()V
      // 3d: athrow
      // 3e: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 41: athrow
      // 42: aload 0
      // 43: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 46: arraylength
      // 47: istore 2
      // 48: bipush 0
      // 49: istore 3
      // 4a: iload 2
      // 4b: ifle c0
      // 4e: aload 0
      // 4f: aload 0
      // 50: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 53: iload 3
      // 54: iload 2
      // 55: invokespecial java/io/FilterInputStream.read ([BII)I
      // 58: istore 4
      // 5a: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.g Z
      // 5d: ifne 78
      // 60: iload 4
      // 62: ifne 78
      // 65: goto 6c
      // 68: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6b: athrow
      // 6c: new java/lang/AssertionError
      // 6f: dup
      // 70: invokespecial java/lang/AssertionError.<init> ()V
      // 73: athrow
      // 74: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 77: athrow
      // 78: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.g Z
      // 7b: ifne 97
      // 7e: iload 4
      // 80: iload 2
      // 81: if_icmple 97
      // 84: goto 8b
      // 87: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8a: athrow
      // 8b: new java/lang/AssertionError
      // 8e: dup
      // 8f: invokespecial java/lang/AssertionError.<init> ()V
      // 92: athrow
      // 93: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 96: athrow
      // 97: iload 4
      // 99: ifge a8
      // 9c: aload 0
      // 9d: bipush 1
      // 9e: putfield com/l7tech/common/io/ByteOrderMarkInputStream.d Z
      // a1: goto c0
      // a4: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a7: athrow
      // a8: iload 3
      // a9: iload 4
      // ab: iadd
      // ac: istore 3
      // ad: iload 2
      // ae: iload 4
      // b0: isub
      // b1: istore 2
      // b2: aload 0
      // b3: dup
      // b4: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // b7: iload 4
      // b9: iadd
      // ba: putfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // bd: goto 4a
      // c0: aload 0
      // c1: aload 0
      // c2: invokevirtual com/l7tech/common/io/ByteOrderMarkInputStream.a ()Ljava/nio/charset/Charset;
      // c5: putfield com/l7tech/common/io/ByteOrderMarkInputStream.f Ljava/nio/charset/Charset;
      // c8: return
      // try (25 -> 34): 34 java/io/IOException
      // try (51 -> 55): 56 java/io/IOException
      // try (53 -> 62): 62 java/io/IOException
      // try (64 -> 69): 70 java/io/IOException
      // try (66 -> 76): 76 java/io/IOException
      // try (78 -> 84): 84 java/io/IOException
   }

   public Charset getEncoding() {
      return this.f;
   }

   public boolean isSrippingBom() {
      return this.e;
   }

   private Charset a() {
      // $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/common/io/ByteOrderMarkInputStream.c I
      // 004: bipush 2
      // 005: if_icmpge 00e
      // 008: aconst_null
      // 009: areturn
      // 00a: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 00d: athrow
      // 00e: sipush 255
      // 011: aload 0
      // 012: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 015: bipush 0
      // 016: baload
      // 017: iand
      // 018: istore 1
      // 019: sipush 255
      // 01c: aload 0
      // 01d: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 020: bipush 1
      // 021: baload
      // 022: iand
      // 023: istore 2
      // 024: iload 1
      // 025: lookupswitch 387 8 0 247 14 328 43 381 221 383 239 75 251 385 254 143 255 166
      // 070: iload 2
      // 071: sipush 187
      // 074: if_icmpne 0a4
      // 077: goto 07e
      // 07a: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07d: athrow
      // 07e: aload 0
      // 07f: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 082: bipush 3
      // 083: if_icmplt 0a4
      // 086: goto 08d
      // 089: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08c: athrow
      // 08d: sipush 255
      // 090: aload 0
      // 091: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 094: bipush 2
      // 095: baload
      // 096: iand
      // 097: sipush 191
      // 09a: if_icmpeq 0aa
      // 09d: goto 0a4
      // 0a0: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a3: athrow
      // 0a4: aconst_null
      // 0a5: areturn
      // 0a6: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a9: athrow
      // 0aa: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.UTF8 Ljava/nio/charset/Charset;
      // 0ad: astore 4
      // 0af: bipush 3
      // 0b0: istore 3
      // 0b1: goto 1aa
      // 0b4: iload 2
      // 0b5: sipush 255
      // 0b8: if_icmpeq 0c1
      // 0bb: aconst_null
      // 0bc: areturn
      // 0bd: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c0: athrow
      // 0c1: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.UNICODE_BIG_UNMARKED Ljava/nio/charset/Charset;
      // 0c4: astore 4
      // 0c6: bipush 2
      // 0c7: istore 3
      // 0c8: goto 1aa
      // 0cb: iload 2
      // 0cc: sipush 254
      // 0cf: if_icmpeq 0d8
      // 0d2: aconst_null
      // 0d3: areturn
      // 0d4: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d7: athrow
      // 0d8: aload 0
      // 0d9: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 0dc: bipush 4
      // 0dd: if_icmplt 108
      // 0e0: sipush 255
      // 0e3: aload 0
      // 0e4: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 0e7: bipush 2
      // 0e8: baload
      // 0e9: iand
      // 0ea: ifne 108
      // 0ed: goto 0f4
      // 0f0: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f3: athrow
      // 0f4: sipush 255
      // 0f7: aload 0
      // 0f8: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 0fb: bipush 3
      // 0fc: baload
      // 0fd: iand
      // 0fe: ifeq 112
      // 101: goto 108
      // 104: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 107: athrow
      // 108: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.UNICODE_LITTLE_UNMARKED Ljava/nio/charset/Charset;
      // 10b: astore 4
      // 10d: bipush 2
      // 10e: istore 3
      // 10f: goto 1aa
      // 112: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.UTF32 Ljava/nio/charset/Charset;
      // 115: astore 4
      // 117: bipush 0
      // 118: istore 3
      // 119: goto 1aa
      // 11c: iload 2
      // 11d: ifne 15d
      // 120: aload 0
      // 121: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 124: bipush 4
      // 125: if_icmplt 15d
      // 128: goto 12f
      // 12b: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12e: athrow
      // 12f: sipush 255
      // 132: aload 0
      // 133: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 136: bipush 2
      // 137: baload
      // 138: iand
      // 139: sipush 254
      // 13c: if_icmpne 15d
      // 13f: goto 146
      // 142: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 145: athrow
      // 146: sipush 255
      // 149: aload 0
      // 14a: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 14d: bipush 3
      // 14e: baload
      // 14f: iand
      // 150: sipush 255
      // 153: if_icmpeq 163
      // 156: goto 15d
      // 159: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 15c: athrow
      // 15d: aconst_null
      // 15e: areturn
      // 15f: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 162: athrow
      // 163: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.UTF32 Ljava/nio/charset/Charset;
      // 166: astore 4
      // 168: bipush 0
      // 169: istore 3
      // 16a: goto 1aa
      // 16d: iload 2
      // 16e: sipush 254
      // 171: if_icmpne 19a
      // 174: aload 0
      // 175: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 178: bipush 3
      // 179: if_icmplt 19a
      // 17c: goto 183
      // 17f: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 182: athrow
      // 183: sipush 255
      // 186: aload 0
      // 187: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 18a: bipush 2
      // 18b: baload
      // 18c: iand
      // 18d: sipush 255
      // 190: if_icmpeq 1a0
      // 193: goto 19a
      // 196: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 199: athrow
      // 19a: aconst_null
      // 19b: areturn
      // 19c: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19f: athrow
      // 1a0: aconst_null
      // 1a1: areturn
      // 1a2: aconst_null
      // 1a3: areturn
      // 1a4: aconst_null
      // 1a5: areturn
      // 1a6: aconst_null
      // 1a7: areturn
      // 1a8: aconst_null
      // 1a9: areturn
      // 1aa: aload 0
      // 1ab: dup
      // 1ac: getfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 1af: iload 3
      // 1b0: iadd
      // 1b1: putfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 1b4: aload 0
      // 1b5: dup
      // 1b6: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 1b9: iload 3
      // 1ba: isub
      // 1bb: putfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 1be: aload 0
      // 1bf: iload 3
      // 1c0: ifle 1cb
      // 1c3: bipush 1
      // 1c4: goto 1cc
      // 1c7: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1ca: athrow
      // 1cb: bipush 0
      // 1cc: putfield com/l7tech/common/io/ByteOrderMarkInputStream.e Z
      // 1cf: aload 4
      // 1d1: areturn
      // try (0 -> 6): 6 java/lang/NullPointerException
      // try (22 -> 27): 28 java/lang/NullPointerException
      // try (24 -> 34): 35 java/lang/NullPointerException
      // try (30 -> 45): 46 java/lang/NullPointerException
      // try (37 -> 50): 50 java/lang/NullPointerException
      // try (57 -> 62): 62 java/lang/NullPointerException
      // try (69 -> 74): 74 java/lang/NullPointerException
      // try (76 -> 87): 88 java/lang/NullPointerException
      // try (80 -> 97): 98 java/lang/NullPointerException
      // try (110 -> 116): 117 java/lang/NullPointerException
      // try (112 -> 127): 128 java/lang/NullPointerException
      // try (119 -> 138): 139 java/lang/NullPointerException
      // try (130 -> 143): 143 java/lang/NullPointerException
      // try (150 -> 157): 158 java/lang/NullPointerException
      // try (153 -> 168): 169 java/lang/NullPointerException
      // try (160 -> 173): 173 java/lang/NullPointerException
      // try (185 -> 202): 202 java/lang/NullPointerException
   }

   @Override
   public int read() throws IOException {
      // $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 0
      // 01: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 04: ifnonnull 18
      // 07: new java/lang/IllegalStateException
      // 0a: dup
      // 0b: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.h [Ljava/lang/String;
      // 0e: bipush 0
      // 0f: aaload
      // 10: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 13: athrow
      // 14: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: aload 0
      // 19: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 1c: bipush 1
      // 1d: if_icmpge 39
      // 20: aload 0
      // 21: getfield com/l7tech/common/io/ByteOrderMarkInputStream.d Z
      // 24: ifeq 34
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: bipush -1
      // 2f: ireturn
      // 30: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 33: athrow
      // 34: aload 0
      // 35: invokespecial java/io/FilterInputStream.read ()I
      // 38: ireturn
      // 39: aload 0
      // 3a: dup
      // 3b: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 3e: bipush 1
      // 3f: isub
      // 40: putfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 43: aload 0
      // 44: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 47: aload 0
      // 48: dup
      // 49: getfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 4c: dup_x1
      // 4d: bipush 1
      // 4e: iadd
      // 4f: putfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 52: baload
      // 53: ireturn
      // try (0 -> 10): 10 java/io/IOException
      // try (12 -> 19): 20 java/io/IOException
      // try (16 -> 24): 24 java/io/IOException
   }

   @Override
   public int read(byte[] param1, int param2, int param3) throws IOException {
      // $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 0
      // 01: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 04: ifnonnull 18
      // 07: new java/lang/IllegalStateException
      // 0a: dup
      // 0b: getstatic com/l7tech/common/io/ByteOrderMarkInputStream.h [Ljava/lang/String;
      // 0e: bipush 1
      // 0f: aaload
      // 10: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 13: athrow
      // 14: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: aload 0
      // 19: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 1c: bipush 1
      // 1d: if_icmpge 3c
      // 20: aload 0
      // 21: getfield com/l7tech/common/io/ByteOrderMarkInputStream.d Z
      // 24: ifeq 34
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: bipush -1
      // 2f: ireturn
      // 30: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 33: athrow
      // 34: aload 0
      // 35: aload 1
      // 36: iload 2
      // 37: iload 3
      // 38: invokespecial java/io/FilterInputStream.read ([BII)I
      // 3b: ireturn
      // 3c: iload 3
      // 3d: aload 0
      // 3e: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 41: if_icmple 49
      // 44: aload 0
      // 45: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 48: istore 3
      // 49: aload 0
      // 4a: getfield com/l7tech/common/io/ByteOrderMarkInputStream.a [B
      // 4d: aload 0
      // 4e: getfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 51: aload 1
      // 52: iload 2
      // 53: iload 3
      // 54: invokestatic java/lang/System.arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V
      // 57: aload 0
      // 58: dup
      // 59: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 5c: iload 3
      // 5d: isub
      // 5e: putfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 61: aload 0
      // 62: dup
      // 63: getfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 66: iload 3
      // 67: iadd
      // 68: putfield com/l7tech/common/io/ByteOrderMarkInputStream.b I
      // 6b: iload 3
      // 6c: ireturn
      // try (0 -> 10): 10 java/io/IOException
      // try (12 -> 19): 20 java/io/IOException
      // try (16 -> 24): 24 java/io/IOException
   }

   @Override
   public int available() throws IOException {
      // $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 0
      // 01: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 04: bipush 1
      // 05: if_icmpge 21
      // 08: aload 0
      // 09: getfield com/l7tech/common/io/ByteOrderMarkInputStream.d Z
      // 0c: ifeq 1c
      // 0f: goto 16
      // 12: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 15: athrow
      // 16: bipush 0
      // 17: ireturn
      // 18: invokestatic com/l7tech/common/io/ByteOrderMarkInputStream.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b: athrow
      // 1c: aload 0
      // 1d: invokespecial java/io/FilterInputStream.available ()I
      // 20: ireturn
      // 21: aload 0
      // 22: getfield com/l7tech/common/io/ByteOrderMarkInputStream.c I
      // 25: aload 0
      // 26: invokespecial java/io/FilterInputStream.available ()I
      // 29: iadd
      // 2a: ireturn
      // try (0 -> 7): 8 java/io/IOException
      // try (4 -> 12): 12 java/io/IOException
   }

   @Override
   public synchronized void mark(int var1) {
   }

   @Override
   public boolean markSupported() {
      return false;
   }

   @Override
   public void close() throws IOException {
      try {
         if (this.a != null) {
            BufferPool.returnBuffer(this.a);
            this.a = null;
         }
      } catch (IOException var1) {
         throw a(var1);
      }

      super.close();
   }

   static {
      String[] var5 = new String[2];
      int var3 = 0;
      String var2 = "+\nXe\u0006a\u001f\f\u0001aa;x2\u0007\u0003Yt\u001ag\t\f\u0012A !r\bI\u0012@r,r\u001f\u0010SNe,}[\n\u001fCs,w0+\nXe\u0006a\u001f\f\u0001aa;x2\u0007\u0003Yt\u001ag\t\f\u0012A !r\bI\u0012@r,r\u001f\u0010SNe,}[\n\u001fCs,w";
      int var4 = "+\nXe\u0006a\u001f\f\u0001aa;x2\u0007\u0003Yt\u001ag\t\f\u0012A !r\bI\u0012@r,r\u001f\u0010SNe,}[\n\u001fCs,w0+\nXe\u0006a\u001f\f\u0001aa;x2\u0007\u0003Yt\u001ag\t\f\u0012A !r\bI\u0012@r,r\u001f\u0010SNe,}[\n\u001fCs,w"
         .length();
      char var1 = '0';
      int var0 = -1;

      while (true) {
         String var10002 = a(46, a(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            h = var5;

            boolean var10000;
            label22: {
               try {
                  if (!ByteOrderMarkInputStream.class.desiredAssertionStatus()) {
                     var10000 = true;
                     break label22;
                  }
               } catch (NullPointerException var6) {
                  throw a(var6);
               }

               var10000 = false;
            }

            g = var10000;
            ASCII = Charsets.ASCII;
            UNICODE_BIG_UNMARKED = Charsets.UTF16BE;
            UNICODE_LITTLE_UNMARKED = Charsets.UTF16LE;
            UTF8 = Charsets.UTF8;
            UTF32 = Charsets.UTF32;
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

   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] ^ 85);
      }

      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 -> 71;
            case 1 -> 93;
            case 2 -> 2;
            case 3 -> 46;
            case 4 -> 103;
            case 5 -> 61;
            default -> 85;
         });
      }

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