2            " "      5    ! " # $ % & ' "( ) *+ ", - . /0  12 3 14 55 6 7 5 18 19 :; <=>?@ABCD = E =FGH =: /IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   5 5 LATIN1_EXCLUDEDLjava/lang/String;N_GRAMI ConstantValuecjk_mapLjava/util/HashMap; Signature?Ljava/util/HashMap;grams_Ljava/lang/StringBuffer; capitalword_ZNORMALIZED_VI_CHARS[Ljava/lang/String;TO_NORMALIZE_VI_CHARS DMARK_CLASSALPHABET_WITH_DMARKLjava/util/regex/Pattern; CJK_CLASS()VCodeLineNumberTableLocalVariableTablethis'Lcom/cybozu/labs/langdetect/util/NGram;addChar(C)VchClastchar StackMapTableget(I)Ljava/lang/String;nlen normalize(C)Cblock UnicodeBlock InnerClasses"Ljava/lang/Character$UnicodeBlock; normalize_vi&(Ljava/lang/String;)Ljava/lang/String;alphabetdmarktextmLjava/util/regex/Matcher;buf irepresentativecjk_list> SourceFile NGram.java java/lang/StringBuffer   %com/cybozu/labs/langdetect/util/NGram                     java/lang/Character          NGram.LATIN1_EXCLUDE java/lang/StringNORMALIZED_VI_CHARS_0300NORMALIZED_VI_CHARS_0301NORMALIZED_VI_CHARS_0303NORMALIZED_VI_CHARS_0309NORMALIZED_VI_CHARS_0323java/lang/StringBuilder([ ])([]) NGram.KANJI_1_0NGram.KANJI_1_2NGram.KANJI_1_4NGram.KANJI_1_8NGram.KANJI_1_11NGram.KANJI_1_12NGram.KANJI_1_13NGram.KANJI_1_14NGram.KANJI_1_16NGram.KANJI_1_18NGram.KANJI_1_22NGram.KANJI_1_27NGram.KANJI_1_29NGram.KANJI_1_31NGram.KANJI_1_35NGram.KANJI_2_0NGram.KANJI_2_1NGram.KANJI_2_4NGram.KANJI_2_9NGram.KANJI_2_10NGram.KANJI_2_11NGram.KANJI_2_12NGram.KANJI_2_13NGram.KANJI_2_15NGram.KANJI_2_16NGram.KANJI_2_18NGram.KANJI_2_21NGram.KANJI_2_22NGram.KANJI_2_23NGram.KANJI_2_28NGram.KANJI_2_29NGram.KANJI_2_30NGram.KANJI_2_31NGram.KANJI_2_32NGram.KANJI_2_35NGram.KANJI_2_36NGram.KANJI_2_37NGram.KANJI_2_38NGram.KANJI_3_1NGram.KANJI_3_2NGram.KANJI_3_3NGram.KANJI_3_4NGram.KANJI_3_5NGram.KANJI_3_8NGram.KANJI_3_9NGram.KANJI_3_11NGram.KANJI_3_12NGram.KANJI_3_13NGram.KANJI_3_15NGram.KANJI_3_16NGram.KANJI_3_18NGram.KANJI_3_19NGram.KANJI_3_22NGram.KANJI_3_23NGram.KANJI_3_27NGram.KANJI_3_29NGram.KANJI_3_30NGram.KANJI_3_31NGram.KANJI_3_32NGram.KANJI_3_35NGram.KANJI_3_36NGram.KANJI_3_37NGram.KANJI_3_38NGram.KANJI_4_0NGram.KANJI_4_9NGram.KANJI_4_10NGram.KANJI_4_16NGram.KANJI_4_17NGram.KANJI_4_18NGram.KANJI_4_22NGram.KANJI_4_24NGram.KANJI_4_28NGram.KANJI_4_34NGram.KANJI_4_39NGram.KANJI_5_10NGram.KANJI_5_11NGram.KANJI_5_12NGram.KANJI_5_13NGram.KANJI_5_14NGram.KANJI_5_18NGram.KANJI_5_26NGram.KANJI_5_29NGram.KANJI_5_34NGram.KANJI_5_39NGram.KANJI_6_0NGram.KANJI_6_3NGram.KANJI_6_9NGram.KANJI_6_10NGram.KANJI_6_11NGram.KANJI_6_12NGram.KANJI_6_16NGram.KANJI_6_18NGram.KANJI_6_20NGram.KANJI_6_21NGram.KANJI_6_22NGram.KANJI_6_23NGram.KANJI_6_25NGram.KANJI_6_28NGram.KANJI_6_29NGram.KANJI_6_30NGram.KANJI_6_32NGram.KANJI_6_34NGram.KANJI_6_35NGram.KANJI_6_37NGram.KANJI_6_39NGram.KANJI_7_0NGram.KANJI_7_3NGram.KANJI_7_6NGram.KANJI_7_7NGram.KANJI_7_9NGram.KANJI_7_11NGram.KANJI_7_12NGram.KANJI_7_13NGram.KANJI_7_16NGram.KANJI_7_18NGram.KANJI_7_19NGram.KANJI_7_20NGram.KANJI_7_21NGram.KANJI_7_23NGram.KANJI_7_25NGram.KANJI_7_28NGram.KANJI_7_29NGram.KANJI_7_32NGram.KANJI_7_33NGram.KANJI_7_35NGram.KANJI_7_37 java/util/HashMap java/lang/Object java/lang/Character$UnicodeBlockjava/util/regex/Matcher(Ljava/lang/String;)Vlength()IcharAt(I)C deleteCharAt(I)Ljava/lang/StringBuffer;append(C)Ljava/lang/StringBuffer; isUpperCase(C)ZtoString(C)Ljava/lang/String; substring(II)Ljava/lang/String;of%(C)Ljava/lang/Character$UnicodeBlock; BASIC_LATINLATIN_1_SUPPLEMENTindexOf(I)ILATIN_EXTENDED_BGENERAL_PUNCTUATIONARABICLATIN_EXTENDED_ADDITIONALHIRAGANAKATAKANABOPOMOFOBOPOMOFO_EXTENDEDCJK_UNIFIED_IDEOGRAPHSvalueOf(C)Ljava/lang/Character; containsKey(Ljava/lang/Object;)Z&(Ljava/lang/Object;)Ljava/lang/Object; charValue()CHANGUL_SYLLABLESjava/util/regex/Patternmatcher3(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;find()Zgroup(Ljava/lang/String;)IappendReplacementE(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher; appendTail2(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;()Ljava/lang/String;(com/cybozu/labs/langdetect/util/Messages getString-(Ljava/lang/String;)Ljava/lang/StringBuilder;compile-(Ljava/lang/String;)Ljava/util/regex/Pattern;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;!  M**Y* n<**d = *Y* * * W* W  **6 "#$%)&.'5(@)I+R-Y.h0m2 nnX 5K**= *d > *d": ;<"='>2?:@?B*2 KK:  L+!Aa Z z ;+ ;+_;c;+  ;+̠J;{+m;f+ 0B;X+ 0;J+ + 1;5+$ !!"#; +$%;fLM N*O1PAQHSSTaUhVnWuXYZ[\]^_`abcdf  ' Z&*'LY(M+)2*++,>-++,6+,.2`/0W,*+,1W,2. pqrs#t0uCvFwMxOyUz4# 0ZRJ 53345Y64SY74SY84SY94SY:4S.;4*<4-=Y>?@*@A@-@B@CD&~5YE4SYF4SYG4SYH4SYI4SYJ4SYK4SYL4SYM4SY N4SY O4SY P4SY Q4SY R4SYS4SYT4SYU4SYV4SYW4SYX4SYY4SYZ4SY[4SY\4SY]4SY^4SY_4SY`4SYa4SYb4SYc4SYd4SY e4SY!f4SY"g4SY#h4SY$i4SY%j4SY&k4SY'l4SY(m4SY)n4SY*o4SY+p4SY,q4SY-r4SY.s4SY/t4SY0u4SY1v4SY2w4SY3x4SY4y4SY5z4SY6{4SY7|4SY8}4SY9~4SY:4SY;4SY<4SY=4SY>4SY?4SY@4SYA4SYB4SYC4SYD4SYE4SYF4SYG4SYH4SYI4SYJ4SYK4SYL4SYM4SYN4SYO4SYP4SYQ4SYR4SYS4SYT4SYU4SYV4SYW4SYX4SYY4SYZ4SY[4SY\4SY]4SY^4SY_4SY`4SYa4SYb4SYc4SYd4SYe4SYf4SYg4SYh4SYi4SYj4SYk4SYl4SYm4SYn4SYo4SYp4SYq4SYr4SYs4SYt4SYu4SYv4SYw4SYx4SYy4SYz4SY{4SY|4SY}¸4SûYųK*<=;*2N-66-Ǣ-ƸW߄ƱF}~ (07?Gr{!*3<ENW`ir{ &/8AJS\enw"+4=FOXajs| '09BKT]fox   &, 2 $'.# "