diff options
-rw-r--r-- | Master/texmf/xindy/modules/lang/persian/utf8-lang.xdy | 10 | ||||
-rw-r--r-- | Master/texmf/xindy/modules/lang/persian/utf8-test.xdy | 92 | ||||
-rw-r--r-- | Master/texmf/xindy/modules/lang/persian/utf8.pl.in | 79 | ||||
-rw-r--r-- | Master/texmf/xindy/modules/lang/persian/utf8.xdy | 589 |
4 files changed, 770 insertions, 0 deletions
diff --git a/Master/texmf/xindy/modules/lang/persian/utf8-lang.xdy b/Master/texmf/xindy/modules/lang/persian/utf8-lang.xdy new file mode 100644 index 00000000000..7c508f1dbb8 --- /dev/null +++ b/Master/texmf/xindy/modules/lang/persian/utf8-lang.xdy @@ -0,0 +1,10 @@ +(require "lang/persian/utf8.xdy") +(define-sort-rule-orientations (forward backward forward forward)) +(use-rule-set :run 0 + :rule-set ("pe-alphabetize" "pe-ignore-special")) +(use-rule-set :run 1 + :rule-set ("pe-resolve-diacritics" "pe-ignore-special")) +(use-rule-set :run 2 + :rule-set ("pe-resolve-case" "pe-ignore-special")) +(use-rule-set :run 3 + :rule-set ("pe-resolve-special")) diff --git a/Master/texmf/xindy/modules/lang/persian/utf8-test.xdy b/Master/texmf/xindy/modules/lang/persian/utf8-test.xdy new file mode 100644 index 00000000000..108dc90393f --- /dev/null +++ b/Master/texmf/xindy/modules/lang/persian/utf8-test.xdy @@ -0,0 +1,92 @@ +(require "lang/persian/utf8.xdy") +(define-sort-rule-orientations (forward backward forward forward)) +(use-rule-set :run 0 + :rule-set ("pe-alphabetize" "pe-ignore-special")) +(use-rule-set :run 1 + :rule-set ("pe-resolve-diacritics" "pe-ignore-special")) +(use-rule-set :run 2 + :rule-set ("pe-resolve-case" "pe-ignore-special")) +(use-rule-set :run 3 + :rule-set ("pe-resolve-special")) + +;; define other stuff +(define-attributes ("default")) + +;; The description of the location-classes. +;; Add more location classes as needed. + +(define-location-class "arabic-page-numbers" ("arabic-numbers")) +(define-location-class "roman-page-numbers" ("roman-numbers-lowercase")) +(define-location-class "Roman-page-numbers" ("roman-numbers-uppercase")) +(define-location-class "alpha-page-numbers" ("alpha")) +(define-location-class "Alpha-page-numbers" ("ALPHA")) + +;; The most frequently used cross reference class "see". Add more, if +;; necessary. + +(define-crossref-class "see") +(markup-crossref-list :open "\see{" :close "}{}" :class "see") + +;; In makeindex: page_precedence <string> "rnaRA" +;; List all location classes appearing in your document. + +(define-location-class-order ("roman-page-numbers" + "arabic-page-numbers" + "alpha-page-numbers" + "Roman-page-numbers" + "Alpha-page-numbers" + "see")) + + +;; preamble <string> "\\begin{theindex}\n" +;; postamble <string> "\n\n\\end{theindex}\n" + +(markup-index :open "\begin{theindex}~n" + :close "~n~n\end{theindex}~n" + :tree) + +;; These specifiers are not directly supported via a command-line +;; switch as in makeindex. Add the appropriate markup-commands into +;; the preamble. + +;; setpage_prefix <string> "~n \setcounter{page}{" +;; setpage_suffix <string> "}~n" + +;; group_skip <string> "~n~n \indexspace~n" + +(markup-letter-group-list :sep "~n~n \indexspace~n") + +;; even though we comment out (%) the letter-group heading, +;; the following is useful if you want to check the .ind-file +(markup-letter-group :open-head "~n % ") + +;; The indexentries (item_<..> specifiers) + +(markup-indexentry :open "~n \item " :depth 0) +(markup-indexentry :open "~n \subitem " :depth 1) +(markup-indexentry :open "~n \subsubitem " :depth 2) + +;; Location-references + +;; delim_0 <string> ", " +;; delim_1 <string> ", " +;; delim_2 <string> ", " + +(markup-locclass-list :open ", " :sep ", ") + +;; delim_n <string> ", " + +(markup-locref-list :sep ", ") + +;; delim_r <string> "--" + +(markup-range :sep "--") + +;; That's all ;-) + + +;; End + +;; Local Variables: +;; mode: lisp +;; End: diff --git a/Master/texmf/xindy/modules/lang/persian/utf8.pl.in b/Master/texmf/xindy/modules/lang/persian/utf8.pl.in new file mode 100644 index 00000000000..480de4b4ac1 --- /dev/null +++ b/Master/texmf/xindy/modules/lang/persian/utf8.pl.in @@ -0,0 +1,79 @@ +#!/usr/bin/perl + +$language = "Persian"; +$prefix = "pe"; +$script = "arabic"; + +$alphabet = [ +['ا',['أ','ا','آ']], +['ب',['ب']], +['پ',['پ']], +['ت',['ت']], +['ث',['ث']], +['ج',['ج']], +['چ',['چ']], +['ح',['ح']], +['خ',['خ']], +['د',['د']], +['ذ',['ذ']], +['ر',['ر']], +['ز',['ز']], +['ژ',['ژ']], +['س',['س']], +['ش',['ش']], +['ص',['ص']], +['ض',['ض']], +['ط',['ط']], +['ظ',['ظ']], +['ع',['ع']], +['غ',['غ']], +['ف',['ف']], +['ق',['ق']], +['ک',['ک']], +['گ',['گ']], +['ل',['ل']], +['م',['م']], +['ن',['ن']], +['و',['ؤ','و']], +['ه',['ه']], +['ی',['ئ','ی']], +['A', ['a','A'],['à','À']], +['B', ['b','B']], +['C', ['c','C'],['ç','Ç']], +['D', ['d','D'],['ð','Ð']], +['E', ['e','E'],['é','É'],['è','È'],['ë','Ë'],['ê','Ê']], +['F', ['f','F']], +['G', ['g','G']], +['H', ['h','H']], +['I', ['i','I'],['ï','Ï']], +['J', ['j','J']], +['K', ['k','K']], +['L', ['l','L']], +['M', ['m','M']], +['N', ['n','N'],['ñ','Ñ']], +['O', ['o','O'],['ö','Ö'],['ô','Ô']], +['P', ['p','P']], +['Q', ['q','Q']], +['R', ['r','R']], +['S', ['s','S']], +['T', ['t','T']], +['U', ['u','U']], +['V', ['v','V']], +['W', ['w','W']], +['X', ['x','X']], +['Y', ['y','Y']], +['Z', ['z','Z']], +['Þ', ['þ','Þ']], +]; + +$sortcase = "Aa"; +#$sortcase = "aA"; + +$ligatures = [ +[['æ','Æ'], 'after', [['a','e'], ['A','e']]], +[['œ','Œ'], 'after', [['o','e'], ['O','e']]] +]; + +@special = ('?', '!', '.', 'letters', '-', '\'', '{', '}','ّ','َ','ِ','ُ','ً','ٍ','ٌ','ْ','ٔ','ء','','«','»','ـ'); + +do 'make-rules.pl'; diff --git a/Master/texmf/xindy/modules/lang/persian/utf8.xdy b/Master/texmf/xindy/modules/lang/persian/utf8.xdy new file mode 100644 index 00000000000..27d75e7794c --- /dev/null +++ b/Master/texmf/xindy/modules/lang/persian/utf8.xdy @@ -0,0 +1,589 @@ +;; Rules for xindy; generated by make-rules.pl +;; language: Persian + +(define-letter-group "ا" :prefixes ("")) +(define-letter-group "ب" :after "ا" :prefixes ("")) +(define-letter-group "پ" :after "ب" :prefixes ("")) +(define-letter-group "ت" :after "پ" :prefixes ("")) +(define-letter-group "ث" :after "ت" :prefixes ("")) +(define-letter-group "ج" :after "ث" :prefixes ("")) +(define-letter-group "چ" :after "ج" :prefixes ("")) +(define-letter-group "ح" :after "چ" :prefixes ("")) +(define-letter-group "خ" :after "ح" :prefixes ("")) +(define-letter-group "د" :after "خ" :prefixes ("")) +(define-letter-group "ذ" :after "د" :prefixes ("")) +(define-letter-group "ر" :after "ذ" :prefixes ("")) +(define-letter-group "ز" :after "ر" :prefixes ("")) +(define-letter-group "ژ" :after "ز" :prefixes ("")) +(define-letter-group "س" :after "ژ" :prefixes ("")) +(define-letter-group "ش" :after "س" :prefixes ("")) +(define-letter-group "ص" :after "ش" :prefixes ("")) +(define-letter-group "ض" :after "ص" :prefixes ("")) +(define-letter-group "ط" :after "ض" :prefixes ("")) +(define-letter-group "ظ" :after "ط" :prefixes ("")) +(define-letter-group "ع" :after "ظ" :prefixes ("")) +(define-letter-group "غ" :after "ع" :prefixes ("")) +(define-letter-group "ف" :after "غ" :prefixes ("")) +(define-letter-group "ق" :after "ف" :prefixes ("")) +(define-letter-group "ک" :after "ق" :prefixes ("")) +(define-letter-group "گ" :after "ک" :prefixes ("")) +(define-letter-group "ل" :after "گ" :prefixes ("")) +(define-letter-group "م" :after "ل" :prefixes ("")) +(define-letter-group "ن" :after "م" :prefixes ("")) +(define-letter-group "و" :after "ن" :prefixes ("")) +(define-letter-group "ه" :after "و" :prefixes ("")) +(define-letter-group "ی" :after "ه" :prefixes ("")) +(define-letter-group "A" :after "ی" :prefixes ("")) +(define-letter-group "B" :after "A" :prefixes ("")) +(define-letter-group "C" :after "B" :prefixes ("")) +(define-letter-group "D" :after "C" :prefixes ("")) +(define-letter-group "E" :after "D" :prefixes ("")) +(define-letter-group "F" :after "E" :prefixes ("")) +(define-letter-group "G" :after "F" :prefixes ("")) +(define-letter-group "H" :after "G" :prefixes ("")) +(define-letter-group "I" :after "H" :prefixes ("")) +(define-letter-group "J" :after "I" :prefixes ("")) +(define-letter-group "K" :after "J" :prefixes ("")) +(define-letter-group "L" :after "K" :prefixes ("")) +(define-letter-group "M" :after "L" :prefixes ("")) +(define-letter-group "N" :after "M" :prefixes ("")) +(define-letter-group "O" :after "N" :prefixes ("")) +(define-letter-group "P" :after "O" :prefixes ("")) +(define-letter-group "Q" :after "P" :prefixes ("")) +(define-letter-group "R" :after "Q" :prefixes ("")) +(define-letter-group "S" :after "R" :prefixes ("")) +(define-letter-group "T" :after "S" :prefixes ("")) +(define-letter-group "U" :after "T" :prefixes ("")) +(define-letter-group "V" :after "U" :prefixes ("")) +(define-letter-group "W" :after "V" :prefixes ("")) +(define-letter-group "X" :after "W" :prefixes ("")) +(define-letter-group "Y" :after "X" :prefixes ("")) +(define-letter-group "Z" :after "Y" :prefixes ("")) +(define-letter-group "Þ" :after "Z" :prefixes ("")) + +(define-rule-set "pe-alphabetize" + + :rules (("أ" "" :string) + ("ا" "" :string) + ("آ" "" :string) + ("ب" "" :string) + ("پ" "" :string) + ("ت" "" :string) + ("ث" "" :string) + ("ج" "" :string) + ("چ" "" :string) + ("ح" "" :string) + ("خ" "" :string) + ("د" "" :string) + ("ذ" "" :string) + ("ر" "" :string) + ("ز" "" :string) + ("ژ" "" :string) + ("س" "" :string) + ("ش" "" :string) + ("ص" "" :string) + ("ض" "" :string) + ("ط" "" :string) + ("ظ" "" :string) + ("ع" "" :string) + ("غ" "" :string) + ("ف" "" :string) + ("ق" "" :string) + ("ک" "" :string) + ("گ" "" :string) + ("ل" "" :string) + ("م" "" :string) + ("ن" "" :string) + ("و" "" :string) + ("ؤ" "" :string) + ("ه" "" :string) + ("ی" "" :string) + ("ئ" "" :string) + ("à" "" :string) + ("À" "" :string) + ("Æ" "" :string) + ("æ" "" :string) + ("Ç" "" :string) + ("ç" "" :string) + ("ð" "" :string) + ("Ð" "" :string) + ("É" "" :string) + ("Ê" "" :string) + ("È" "" :string) + ("Ë" "" :string) + ("è" "" :string) + ("ë" "" :string) + ("ê" "" :string) + ("é" "" :string) + ("Ï" "" :string) + ("ï" "" :string) + ("Ñ" "" :string) + ("ñ" "" :string) + ("Ö" "" :string) + ("Ô" "" :string) + ("ô" "" :string) + ("ö" "" :string) + ("œ" "" :string) + ("Œ" "" :string) + ("þ" "" :string) + ("Þ" "" :string) + ("a" "" :string) + ("A" "" :string) + ("b" "" :string) + ("B" "" :string) + ("C" "" :string) + ("c" "" :string) + ("d" "" :string) + ("D" "" :string) + ("E" "" :string) + ("e" "" :string) + ("F" "" :string) + ("f" "" :string) + ("g" "" :string) + ("G" "" :string) + ("H" "" :string) + ("h" "" :string) + ("I" "" :string) + ("i" "" :string) + ("J" "" :string) + ("j" "" :string) + ("K" "" :string) + ("k" "" :string) + ("L" "" :string) + ("l" "" :string) + ("M" "" :string) + ("m" "" :string) + ("N" "" :string) + ("n" "" :string) + ("O" "" :string) + ("o" "" :string) + ("P" "" :string) + ("p" "" :string) + ("q" "" :string) + ("Q" "" :string) + ("r" "" :string) + ("R" "" :string) + ("S" "" :string) + ("s" "" :string) + ("T" "" :string) + ("t" "" :string) + ("u" "" :string) + ("U" "" :string) + ("v" "" :string) + ("V" "" :string) + ("w" "" :string) + ("W" "" :string) + ("X" "" :string) + ("x" "" :string) + ("Y" "" :string) + ("y" "" :string) + ("z" "" :string) + ("Z" "" :string) + )) + +(define-rule-set "pe-resolve-diacritics" + + :rules (("ص" "" :string) + ("أ" "" :string) + ("م" "" :string) + ("ب" "" :string) + ("ر" "" :string) + ("ی" "" :string) + ("چ" "" :string) + ("ط" "" :string) + ("ث" "" :string) + ("ل" "" :string) + ("ه" "" :string) + ("و" "" :string) + ("ض" "" :string) + ("ؤ" "" :string) + ("ن" "" :string) + ("ظ" "" :string) + ("ش" "" :string) + ("ع" "" :string) + ("س" "" :string) + ("ج" "" :string) + ("ق" "" :string) + ("ف" "" :string) + ("ح" "" :string) + ("ئ" "" :string) + ("د" "" :string) + ("غ" "" :string) + ("ذ" "" :string) + ("þ" "" :string) + ("ک" "" :string) + ("ز" "" :string) + ("خ" "" :string) + ("ا" "" :string) + ("پ" "" :string) + ("Þ" "" :string) + ("ت" "" :string) + ("گ" "" :string) + ("آ" "" :string) + ("ژ" "" :string) + ("Ö" "" :string) + ("Ñ" "" :string) + ("ð" "" :string) + ("Ç" "" :string) + ("É" "" :string) + ("Ï" "" :string) + ("ï" "" :string) + ("ö" "" :string) + ("ñ" "" :string) + ("ç" "" :string) + ("à" "" :string) + ("À" "" :string) + ("é" "" :string) + ("Ð" "" :string) + ("Ô" "" :string) + ("ô" "" :string) + ("È" "" :string) + ("è" "" :string) + ("Ë" "" :string) + ("ë" "" :string) + ("Ê" "" :string) + ("ê" "" :string) + ("œ" "" :string) + ("Æ" "" :string) + ("Œ" "" :string) + ("æ" "" :string) + ("S" "" :string) + ("K" "" :string) + ("d" "" :string) + ("Y" "" :string) + ("E" "" :string) + ("y" "" :string) + ("g" "" :string) + ("e" "" :string) + ("J" "" :string) + ("q" "" :string) + ("D" "" :string) + ("b" "" :string) + ("z" "" :string) + ("w" "" :string) + ("Q" "" :string) + ("M" "" :string) + ("C" "" :string) + ("L" "" :string) + ("X" "" :string) + ("P" "" :string) + ("T" "" :string) + ("a" "" :string) + ("N" "" :string) + ("j" "" :string) + ("Z" "" :string) + ("u" "" :string) + ("k" "" :string) + ("t" "" :string) + ("W" "" :string) + ("v" "" :string) + ("s" "" :string) + ("B" "" :string) + ("H" "" :string) + ("c" "" :string) + ("I" "" :string) + ("G" "" :string) + ("U" "" :string) + ("F" "" :string) + ("r" "" :string) + ("x" "" :string) + ("V" "" :string) + ("h" "" :string) + ("f" "" :string) + ("i" "" :string) + ("A" "" :string) + ("O" "" :string) + ("n" "" :string) + ("m" "" :string) + ("l" "" :string) + ("p" "" :string) + ("R" "" :string) + ("o" "" :string) + )) + +(define-rule-set "pe-resolve-case" + + :rules (("آ" "7" :string) + ("Ö" "8" :string) + ("Ñ" "8" :string) + ("ی" "8" :string) + ("Ô" "8" :string) + ("Ç" "8" :string) + ("É" "8" :string) + ("Ï" "8" :string) + ("و" "8" :string) + ("Ê" "8" :string) + ("È" "8" :string) + ("Ë" "8" :string) + ("À" "8" :string) + ("ا" "8" :string) + ("Þ" "8" :string) + ("Ð" "8" :string) + ("Æ" "89" :string) + ("Œ" "89" :string) + ("ص" "9" :string) + ("أ" "9" :string) + ("م" "9" :string) + ("ب" "9" :string) + ("ð" "9" :string) + ("ر" "9" :string) + ("چ" "9" :string) + ("ط" "9" :string) + ("ث" "9" :string) + ("ô" "9" :string) + ("ل" "9" :string) + ("ه" "9" :string) + ("ض" "9" :string) + ("ؤ" "9" :string) + ("ن" "9" :string) + ("ظ" "9" :string) + ("ï" "9" :string) + ("ش" "9" :string) + ("ö" "9" :string) + ("ñ" "9" :string) + ("ع" "9" :string) + ("س" "9" :string) + ("ج" "9" :string) + ("ق" "9" :string) + ("ف" "9" :string) + ("ح" "9" :string) + ("ئ" "9" :string) + ("د" "9" :string) + ("ç" "9" :string) + ("à" "9" :string) + ("غ" "9" :string) + ("ذ" "9" :string) + ("þ" "9" :string) + ("ک" "9" :string) + ("ز" "9" :string) + ("è" "9" :string) + ("خ" "9" :string) + ("ë" "9" :string) + ("پ" "9" :string) + ("ê" "9" :string) + ("ت" "9" :string) + ("é" "9" :string) + ("گ" "9" :string) + ("ژ" "9" :string) + ("œ" "99" :string) + ("æ" "99" :string) + ("S" "8" :string) + ("K" "8" :string) + ("Y" "8" :string) + ("E" "8" :string) + ("J" "8" :string) + ("D" "8" :string) + ("Q" "8" :string) + ("M" "8" :string) + ("C" "8" :string) + ("L" "8" :string) + ("X" "8" :string) + ("P" "8" :string) + ("T" "8" :string) + ("N" "8" :string) + ("Z" "8" :string) + ("W" "8" :string) + ("B" "8" :string) + ("H" "8" :string) + ("I" "8" :string) + ("G" "8" :string) + ("U" "8" :string) + ("F" "8" :string) + ("V" "8" :string) + ("A" "8" :string) + ("O" "8" :string) + ("R" "8" :string) + ("d" "9" :string) + ("y" "9" :string) + ("g" "9" :string) + ("e" "9" :string) + ("q" "9" :string) + ("b" "9" :string) + ("z" "9" :string) + ("w" "9" :string) + ("a" "9" :string) + ("j" "9" :string) + ("u" "9" :string) + ("k" "9" :string) + ("t" "9" :string) + ("v" "9" :string) + ("s" "9" :string) + ("c" "9" :string) + ("r" "9" :string) + ("x" "9" :string) + ("h" "9" :string) + ("f" "9" :string) + ("i" "9" :string) + ("n" "9" :string) + ("m" "9" :string) + ("l" "9" :string) + ("p" "9" :string) + ("o" "9" :string) + )) + +(define-rule-set "pe-ignore-special" + + :rules (("" "" :string) + ("ء" "" :string) + ("ِ" "" :string) + ("ْ" "" :string) + ("َ" "" :string) + ("ٌ" "" :string) + ("»" "" :string) + ("ً" "" :string) + ("ُ" "" :string) + ("ـ" "" :string) + ("ٍ" "" :string) + ("«" "" :string) + ("ّ" "" :string) + ("ٔ" "" :string) + ("-" "" :string) + ("!" "" :string) + ("{" "" :string) + ("'" "" :string) + ("}" "" :string) + ("?" "" :string) + ("." "" :string) + )) + +(define-rule-set "pe-resolve-special" + + :rules (("" "" :string) + ("ص" "" :string) + ("ب" "" :string) + ("Ñ" "" :string) + ("ð" "" :string) + ("ر" "" :string) + ("ی" "" :string) + ("Ç" "" :string) + ("ط" "" :string) + ("ث" "" :string) + ("ô" "" :string) + ("ل" "" :string) + ("ه" "" :string) + ("Ï" "" :string) + ("و" "" :string) + ("ؤ" "" :string) + ("ظ" "" :string) + ("ï" "" :string) + ("ش" "" :string) + ("Ê" "" :string) + ("ö" "" :string) + ("È" "" :string) + ("ئ" "" :string) + ("ç" "" :string) + ("ذ" "" :string) + ("þ" "" :string) + ("ک" "" :string) + ("ز" "" :string) + ("è" "" :string) + ("خ" "" :string) + ("ê" "" :string) + ("ت" "" :string) + ("گ" "" :string) + ("آ" "" :string) + ("Ö" "" :string) + ("أ" "" :string) + ("م" "" :string) + ("Ô" "" :string) + ("É" "" :string) + ("چ" "" :string) + ("ض" "" :string) + ("ن" "" :string) + ("ج" "" :string) + ("س" "" :string) + ("ع" "" :string) + ("ñ" "" :string) + ("ق" "" :string) + ("ف" "" :string) + ("ح" "" :string) + ("د" "" :string) + ("Ë" "" :string) + ("غ" "" :string) + ("à" "" :string) + ("À" "" :string) + ("ë" "" :string) + ("ا" "" :string) + ("پ" "" :string) + ("Þ" "" :string) + ("é" "" :string) + ("ژ" "" :string) + ("Ð" "" :string) + ("œ" "" :string) + ("Æ" "" :string) + ("Œ" "" :string) + ("æ" "" :string) + ("ّ" "" :string) + ("َ" "" :string) + ("ِ" "" :string) + ("ُ" "" :string) + ("ً" "" :string) + ("ٍ" "" :string) + ("ٌ" "" :string) + ("ْ" "" :string) + ("ٔ" "" :string) + ("ء" "" :string) + ("«" "" :string) + ("»" "" :string) + ("ـ" "" :string) + ("?" "" :string) + ("!" "" :string) + ("." "" :string) + ("S" "" :string) + ("y" "" :string) + ("g" "" :string) + ("e" "" :string) + ("J" "" :string) + ("D" "" :string) + ("w" "" :string) + ("Q" "" :string) + ("M" "" :string) + ("C" "" :string) + ("X" "" :string) + ("a" "" :string) + ("N" "" :string) + ("Z" "" :string) + ("u" "" :string) + ("k" "" :string) + ("s" "" :string) + ("B" "" :string) + ("H" "" :string) + ("c" "" :string) + ("U" "" :string) + ("F" "" :string) + ("V" "" :string) + ("i" "" :string) + ("m" "" :string) + ("R" "" :string) + ("o" "" :string) + ("K" "" :string) + ("d" "" :string) + ("E" "" :string) + ("Y" "" :string) + ("b" "" :string) + ("q" "" :string) + ("z" "" :string) + ("L" "" :string) + ("P" "" :string) + ("T" "" :string) + ("j" "" :string) + ("t" "" :string) + ("W" "" :string) + ("v" "" :string) + ("I" "" :string) + ("G" "" :string) + ("r" "" :string) + ("x" "" :string) + ("h" "" :string) + ("f" "" :string) + ("A" "" :string) + ("n" "" :string) + ("O" "" :string) + ("l" "" :string) + ("p" "" :string) + ("-" "" :string) + ("'" "" :string) + ("{" "" :string) + ("}" "" :string) + )) + |