public abstract class com.google.common.escape.ArrayBasedCharEscaper extends com.google.common.escape.CharEscaper
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.common.escape.ArrayBasedCharEscaper
  super_class: com.google.common.escape.CharEscaper
{
  private final char[][] replacements;
    descriptor: [[C
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int replacementsLength;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final char safeMin;
    descriptor: C
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final char safeMax;
    descriptor: C
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(java.util.Map<java.lang.Character, java.lang.String>, char, );
    descriptor: (Ljava/util/Map;CC)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.google.common.escape.ArrayBasedCharEscaper this
        start local 1 // java.util.Map replacementMap
        start local 2 // char safeMin
        start local 3 // char safeMax
         0: .line 69
            aload 0 /* this */
            aload 1 /* replacementMap */
            invokestatic com.google.common.escape.ArrayBasedEscaperMap.create:(Ljava/util/Map;)Lcom/google/common/escape/ArrayBasedEscaperMap;
            iload 2 /* safeMin */
            iload 3 /* safeMax */
            invokespecial com.google.common.escape.ArrayBasedCharEscaper.<init>:(Lcom/google/common/escape/ArrayBasedEscaperMap;CC)V
         1: .line 70
            return
        end local 3 // char safeMax
        end local 2 // char safeMin
        end local 1 // java.util.Map replacementMap
        end local 0 // com.google.common.escape.ArrayBasedCharEscaper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/google/common/escape/ArrayBasedCharEscaper;
            0    2     1  replacementMap  Ljava/util/Map<Ljava/lang/Character;Ljava/lang/String;>;
            0    2     2         safeMin  C
            0    2     3         safeMax  C
    Signature: (Ljava/util/Map<Ljava/lang/Character;Ljava/lang/String;>;CC)V
    MethodParameters:
                Name  Flags
      replacementMap  
      safeMin         
      safeMax         

  protected void <init>(com.google.common.escape.ArrayBasedEscaperMap, char, char);
    descriptor: (Lcom/google/common/escape/ArrayBasedEscaperMap;CC)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.google.common.escape.ArrayBasedCharEscaper this
        start local 1 // com.google.common.escape.ArrayBasedEscaperMap escaperMap
        start local 2 // char safeMin
        start local 3 // char safeMax
         0: .line 85
            aload 0 /* this */
            invokespecial com.google.common.escape.CharEscaper.<init>:()V
         1: .line 87
            aload 1 /* escaperMap */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 88
            aload 0 /* this */
            aload 1 /* escaperMap */
            invokevirtual com.google.common.escape.ArrayBasedEscaperMap.getReplacementArray:()[[C
            putfield com.google.common.escape.ArrayBasedCharEscaper.replacements:[[C
         3: .line 89
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.replacements:[[C
            arraylength
            putfield com.google.common.escape.ArrayBasedCharEscaper.replacementsLength:I
         4: .line 90
            iload 3 /* safeMax */
            iload 2 /* safeMin */
            if_icmpge 7
         5: .line 93
            iconst_0
            istore 3 /* safeMax */
         6: .line 94
            ldc 65535
            istore 2 /* safeMin */
         7: .line 96
      StackMap locals: com.google.common.escape.ArrayBasedCharEscaper com.google.common.escape.ArrayBasedEscaperMap int int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* safeMin */
            putfield com.google.common.escape.ArrayBasedCharEscaper.safeMin:C
         8: .line 97
            aload 0 /* this */
            iload 3 /* safeMax */
            putfield com.google.common.escape.ArrayBasedCharEscaper.safeMax:C
         9: .line 98
            return
        end local 3 // char safeMax
        end local 2 // char safeMin
        end local 1 // com.google.common.escape.ArrayBasedEscaperMap escaperMap
        end local 0 // com.google.common.escape.ArrayBasedCharEscaper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/google/common/escape/ArrayBasedCharEscaper;
            0   10     1  escaperMap  Lcom/google/common/escape/ArrayBasedEscaperMap;
            0   10     2     safeMin  C
            0   10     3     safeMax  C
    MethodParameters:
            Name  Flags
      escaperMap  
      safeMin     
      safeMax     

  public final java.lang.String escape(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.google.common.escape.ArrayBasedCharEscaper this
        start local 1 // java.lang.String s
         0: .line 106
            aload 1 /* s */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 107
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 8
         3: .line 108
      StackMap locals: int
      StackMap stack:
            aload 1 /* s */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         4: .line 109
            iload 3 /* c */
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.replacementsLength:I
            if_icmpge 5
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.replacements:[[C
            iload 3 /* c */
            aaload
            ifnonnull 6
      StackMap locals: int
      StackMap stack:
         5: iload 3 /* c */
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.safeMax:C
            if_icmpgt 6
            iload 3 /* c */
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.safeMin:C
            if_icmpge 7
         6: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* s */
            iload 2 /* i */
            invokevirtual com.google.common.escape.ArrayBasedCharEscaper.escapeSlow:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // char c
         7: .line 107
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 2 // int i
         9: .line 113
            aload 1 /* s */
            areturn
        end local 1 // java.lang.String s
        end local 0 // com.google.common.escape.ArrayBasedCharEscaper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/google/common/escape/ArrayBasedCharEscaper;
            0   10     1     s  Ljava/lang/String;
            2    9     2     i  I
            4    7     3     c  C
    MethodParameters:
      Name  Flags
      s     

  protected final char[] escape(char);
    descriptor: (C)[C
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.google.common.escape.ArrayBasedCharEscaper this
        start local 1 // char c
         0: .line 123
            iload 1 /* c */
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.replacementsLength:I
            if_icmpge 4
         1: .line 124
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.replacements:[[C
            iload 1 /* c */
            aaload
            astore 2 /* chars */
        start local 2 // char[] chars
         2: .line 125
            aload 2 /* chars */
            ifnull 4
         3: .line 126
            aload 2 /* chars */
            areturn
        end local 2 // char[] chars
         4: .line 129
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.safeMin:C
            if_icmplt 6
            iload 1 /* c */
            aload 0 /* this */
            getfield com.google.common.escape.ArrayBasedCharEscaper.safeMax:C
            if_icmpgt 6
         5: .line 130
            aconst_null
            areturn
         6: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual com.google.common.escape.ArrayBasedCharEscaper.escapeUnsafe:(C)[C
            areturn
        end local 1 // char c
        end local 0 // com.google.common.escape.ArrayBasedCharEscaper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/google/common/escape/ArrayBasedCharEscaper;
            0    7     1      c  C
            2    4     2  chars  [C
    MethodParameters:
      Name  Flags
      c     

  protected abstract char[] escapeUnsafe(char);
    descriptor: (C)[C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "ArrayBasedCharEscaper.java"
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtCompatible()