twitter_cldr 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. data/Gemfile +32 -0
  2. data/History.txt +78 -0
  3. data/README.md +72 -62
  4. data/Rakefile +22 -0
  5. data/js/lib/compiler.rb +40 -0
  6. data/js/lib/mustache/bundle.coffee +14 -0
  7. data/js/lib/mustache/calendars/datetime.coffee +240 -0
  8. data/js/lib/mustache/calendars/timespan.coffee +52 -0
  9. data/js/lib/mustache/plurals/rules.coffee +14 -0
  10. data/js/lib/renderers/base.rb +18 -0
  11. data/js/lib/renderers/bundle.rb +18 -0
  12. data/js/lib/renderers/calendars/datetime_renderer.rb +34 -0
  13. data/js/lib/renderers/calendars/timespan_renderer.rb +39 -0
  14. data/js/lib/renderers/plurals/rules/plural_rules_compiler.rb +89 -0
  15. data/js/lib/renderers/plurals/rules/plural_rules_renderer.rb +26 -0
  16. data/js/lib/twitter_cldr_js.rb +85 -0
  17. data/js/spec/js/calendars/datetime_spec.js +418 -0
  18. data/js/spec/js/calendars/timespan_spec.js +91 -0
  19. data/js/spec/js/plurals/plural_rules_spec.js +28 -0
  20. data/js/spec/js/support/jasmine.yml +8 -0
  21. data/js/spec/rb/renderers/plurals/plural_rules_compiler_spec.rb +52 -0
  22. data/js/spec/rb/spec_helper.rb +13 -0
  23. data/lib/twitter_cldr.rb +2 -1
  24. data/lib/twitter_cldr/collation.rb +2 -1
  25. data/lib/twitter_cldr/collation/collator.rb +49 -31
  26. data/lib/twitter_cldr/collation/{sort_key.rb → sort_key_builder.rb} +31 -8
  27. data/lib/twitter_cldr/collation/trie.rb +116 -24
  28. data/lib/twitter_cldr/collation/trie_builder.rb +54 -28
  29. data/lib/twitter_cldr/collation/trie_with_fallback.rb +55 -0
  30. data/lib/twitter_cldr/core_ext/array.rb +14 -1
  31. data/lib/twitter_cldr/core_ext/calendars/datetime.rb +8 -2
  32. data/lib/twitter_cldr/core_ext/calendars/timespan.rb +5 -5
  33. data/lib/twitter_cldr/formatters/calendars/timespan_formatter.rb +10 -10
  34. data/lib/twitter_cldr/formatters/plurals/rules.rb +3 -5
  35. data/lib/twitter_cldr/resources.rb +11 -0
  36. data/lib/twitter_cldr/resources/import.rb +12 -0
  37. data/lib/twitter_cldr/resources/import/tailoring.rb +193 -0
  38. data/lib/twitter_cldr/{shared/resources.rb → resources/loader.rb} +17 -4
  39. data/lib/twitter_cldr/shared.rb +0 -1
  40. data/lib/twitter_cldr/tokenizers/base.rb +9 -9
  41. data/lib/twitter_cldr/tokenizers/calendars/datetime_tokenizer.rb +0 -4
  42. data/lib/twitter_cldr/tokenizers/calendars/timespan_tokenizer.rb +21 -7
  43. data/lib/twitter_cldr/utils.rb +11 -0
  44. data/lib/twitter_cldr/version.rb +1 -1
  45. data/resources/collation/tailoring/af.yml +3 -0
  46. data/resources/collation/tailoring/ar.yml +21 -0
  47. data/resources/collation/tailoring/ca.yml +9 -0
  48. data/resources/collation/tailoring/cs.yml +25 -0
  49. data/resources/collation/tailoring/da.yml +59 -0
  50. data/resources/collation/tailoring/de.yml +3 -0
  51. data/resources/collation/tailoring/el.yml +3 -0
  52. data/resources/collation/tailoring/en.yml +3 -0
  53. data/resources/collation/tailoring/es.yml +5 -0
  54. data/resources/collation/tailoring/eu.yml +3 -0
  55. data/resources/collation/tailoring/fa.yml +73 -0
  56. data/resources/collation/tailoring/fi.yml +61 -0
  57. data/resources/collation/tailoring/fil.yml +11 -0
  58. data/resources/collation/tailoring/fr.yml +3 -0
  59. data/resources/collation/tailoring/he.yml +3 -0
  60. data/resources/collation/tailoring/hi.yml +7 -0
  61. data/resources/collation/tailoring/hu.yml +125 -0
  62. data/resources/collation/tailoring/id.yml +3 -0
  63. data/resources/collation/tailoring/it.yml +3 -0
  64. data/resources/collation/tailoring/ja.yml +14647 -0
  65. data/resources/collation/tailoring/ko.yml +14953 -0
  66. data/resources/collation/tailoring/ms.yml +3 -0
  67. data/resources/collation/tailoring/nb.yml +59 -0
  68. data/resources/collation/tailoring/nl.yml +3 -0
  69. data/resources/collation/tailoring/pl.yml +37 -0
  70. data/resources/collation/tailoring/pt.yml +3 -0
  71. data/resources/collation/tailoring/ru.yml +3 -0
  72. data/resources/collation/tailoring/sv.yml +63 -0
  73. data/resources/collation/tailoring/th.yml +19 -0
  74. data/resources/collation/tailoring/tr.yml +27 -0
  75. data/resources/collation/tailoring/uk.yml +5 -0
  76. data/resources/collation/tailoring/ur.yml +163 -0
  77. data/resources/collation/tailoring/zh-Hant.yml +3 -0
  78. data/resources/collation/tailoring/zh.yml +149 -0
  79. data/resources/custom/locales/af/units.yml +19 -0
  80. data/resources/custom/locales/ar/units.yml +35 -0
  81. data/resources/custom/locales/ca/units.yml +19 -0
  82. data/resources/custom/locales/cs/units.yml +23 -0
  83. data/resources/custom/locales/da/units.yml +19 -0
  84. data/resources/custom/locales/de/units.yml +19 -0
  85. data/resources/custom/locales/el/units.yml +19 -0
  86. data/resources/custom/locales/en/units.yml +18 -0
  87. data/resources/custom/locales/es/units.yml +19 -0
  88. data/resources/custom/locales/eu/units.yml +19 -0
  89. data/resources/custom/locales/fa/units.yml +15 -0
  90. data/resources/custom/locales/fi/units.yml +19 -0
  91. data/resources/custom/locales/fil/units.yml +19 -0
  92. data/resources/custom/locales/fr/units.yml +19 -0
  93. data/resources/custom/locales/he/units.yml +19 -0
  94. data/resources/custom/locales/hi/units.yml +19 -0
  95. data/resources/custom/locales/hu/units.yml +15 -0
  96. data/resources/custom/locales/id/units.yml +15 -0
  97. data/resources/custom/locales/it/units.yml +19 -0
  98. data/resources/custom/locales/ja/units.yml +15 -0
  99. data/resources/custom/locales/ko/units.yml +15 -0
  100. data/resources/custom/locales/ms/units.yml +15 -0
  101. data/resources/custom/locales/nb/units.yml +19 -0
  102. data/resources/custom/locales/nl/units.yml +19 -0
  103. data/resources/custom/locales/pl/units.yml +23 -0
  104. data/resources/custom/locales/pt/units.yml +19 -0
  105. data/resources/custom/locales/ru/units.yml +27 -0
  106. data/resources/custom/locales/sv/units.yml +19 -0
  107. data/resources/custom/locales/th/units.yml +15 -0
  108. data/resources/custom/locales/tr/units.yml +15 -0
  109. data/resources/custom/locales/uk/units.yml +27 -0
  110. data/resources/custom/locales/ur/units.yml +19 -0
  111. data/resources/custom/locales/zh-Hant/units.yml +15 -0
  112. data/resources/custom/locales/zh/units.yml +15 -0
  113. data/resources/locales/af/units.yml +112 -65
  114. data/resources/locales/ar/units.yml +196 -126
  115. data/resources/locales/ca/units.yml +112 -70
  116. data/resources/locales/cs/units.yml +140 -91
  117. data/resources/locales/da/units.yml +98 -56
  118. data/resources/locales/de/units.yml +112 -70
  119. data/resources/locales/el/units.yml +119 -84
  120. data/resources/locales/en/units.yml +84 -42
  121. data/resources/locales/es/units.yml +112 -70
  122. data/resources/locales/eu/units.yml +105 -68
  123. data/resources/locales/fa/units.yml +98 -63
  124. data/resources/locales/fi/units.yml +112 -70
  125. data/resources/locales/fil/units.yml +98 -56
  126. data/resources/locales/fr/units.yml +112 -70
  127. data/resources/locales/he/units.yml +98 -56
  128. data/resources/locales/hi/units.yml +98 -56
  129. data/resources/locales/hu/units.yml +84 -49
  130. data/resources/locales/id/units.yml +84 -49
  131. data/resources/locales/it/units.yml +98 -56
  132. data/resources/locales/ja/units.yml +84 -49
  133. data/resources/locales/ko/units.yml +84 -49
  134. data/resources/locales/ms/units.yml +112 -63
  135. data/resources/locales/nb/units.yml +106 -64
  136. data/resources/locales/nl/units.yml +98 -56
  137. data/resources/locales/pl/units.yml +181 -112
  138. data/resources/locales/pt/units.yml +112 -70
  139. data/resources/locales/ru/units.yml +168 -112
  140. data/resources/locales/sv/units.yml +112 -70
  141. data/resources/locales/th/units.yml +84 -49
  142. data/resources/locales/tr/units.yml +84 -49
  143. data/resources/locales/uk/units.yml +168 -112
  144. data/resources/locales/ur/units.yml +112 -63
  145. data/resources/locales/zh-Hant/units.yml +84 -49
  146. data/resources/locales/zh/units.yml +84 -49
  147. data/spec/collation/collation_spec.rb +1 -1
  148. data/spec/collation/collator_spec.rb +120 -48
  149. data/spec/collation/sort_key_builder_spec.rb +80 -0
  150. data/spec/collation/tailoring_spec.rb +137 -0
  151. data/spec/collation/tailoring_tests/af.txt +321 -0
  152. data/spec/collation/tailoring_tests/ar.txt +188 -0
  153. data/spec/collation/tailoring_tests/ca.txt +446 -0
  154. data/spec/collation/tailoring_tests/cs.txt +273 -0
  155. data/spec/collation/tailoring_tests/da.txt +293 -0
  156. data/spec/collation/tailoring_tests/de.txt +414 -0
  157. data/spec/collation/tailoring_tests/el.txt +228 -0
  158. data/spec/collation/tailoring_tests/en.txt +399 -0
  159. data/spec/collation/tailoring_tests/es.txt +402 -0
  160. data/spec/collation/tailoring_tests/eu.txt +183 -0
  161. data/spec/collation/tailoring_tests/fa.txt +263 -0
  162. data/spec/collation/tailoring_tests/fi.txt +389 -0
  163. data/spec/collation/tailoring_tests/fil.txt +279 -0
  164. data/spec/collation/tailoring_tests/fr.txt +363 -0
  165. data/spec/collation/tailoring_tests/he.txt +167 -0
  166. data/spec/collation/tailoring_tests/hi.txt +230 -0
  167. data/spec/collation/tailoring_tests/hu.txt +773 -0
  168. data/spec/collation/tailoring_tests/id.txt +171 -0
  169. data/spec/collation/tailoring_tests/it.txt +231 -0
  170. data/spec/collation/tailoring_tests/ja.txt +4287 -0
  171. data/spec/collation/tailoring_tests/ko.txt +1761 -0
  172. data/spec/collation/tailoring_tests/ms.txt +531 -0
  173. data/spec/collation/tailoring_tests/nb.txt +375 -0
  174. data/spec/collation/tailoring_tests/nl.txt +273 -0
  175. data/spec/collation/tailoring_tests/pl.txt +225 -0
  176. data/spec/collation/tailoring_tests/pt.txt +405 -0
  177. data/spec/collation/tailoring_tests/ru.txt +213 -0
  178. data/spec/collation/tailoring_tests/sv.txt +353 -0
  179. data/spec/collation/tailoring_tests/th.txt +239 -0
  180. data/spec/collation/tailoring_tests/tr.txt +414 -0
  181. data/spec/collation/tailoring_tests/uk.txt +218 -0
  182. data/spec/collation/tailoring_tests/ur.txt +284 -0
  183. data/spec/collation/tailoring_tests/zh-Hant.txt +626 -0
  184. data/spec/collation/tailoring_tests/zh.txt +717 -0
  185. data/spec/collation/trie_builder_spec.rb +131 -51
  186. data/spec/collation/trie_spec.rb +301 -26
  187. data/spec/collation/trie_with_fallback_spec.rb +41 -0
  188. data/spec/core_ext/array_spec.rb +46 -3
  189. data/spec/core_ext/calendars/date_spec.rb +24 -24
  190. data/spec/core_ext/calendars/datetime_spec.rb +7 -0
  191. data/spec/core_ext/calendars/time_spec.rb +2 -2
  192. data/spec/formatters/calendars/timespan_formatter_spec.rb +47 -18
  193. data/spec/formatters/plurals/rules_spec.rb +3 -11
  194. data/spec/readme_spec.rb +15 -15
  195. data/spec/resources/loader_spec.rb +94 -0
  196. data/spec/spec_helper.rb +6 -0
  197. data/spec/tokenizers/calendars/timespan_tokenizer_spec.rb +1 -1
  198. data/spec/twitter_cldr_spec.rb +3 -3
  199. data/spec/utils_spec.rb +38 -0
  200. data/twitter_cldr.gemspec +25 -0
  201. metadata +156 -110
  202. data/spec/collation/sort_key_spec.rb +0 -56
  203. data/spec/shared/resources_spec.rb +0 -75
@@ -4,8 +4,9 @@
4
4
  # http://www.apache.org/licenses/LICENSE-2.0
5
5
 
6
6
  module TwitterCldr
7
- module Shared
8
- class Resources
7
+ module Resources
8
+
9
+ class Loader
9
10
 
10
11
  def get_resource(*path)
11
12
  resources_cache[resource_file_path(path)]
@@ -25,8 +26,19 @@ module TwitterCldr
25
26
  "#{File.join(*path.map(&:to_s))}.yml"
26
27
  end
27
28
 
28
- def load_resource(path)
29
- TwitterCldr::Utils.deep_symbolize_keys(YAML.load(read_resource_file(path)))
29
+ def load_resource(path, merge_custom = true)
30
+ base = TwitterCldr::Utils.deep_symbolize_keys(YAML.load(read_resource_file(path)))
31
+ custom_path = File.join("custom", path)
32
+
33
+ if merge_custom && resource_exists?(custom_path)
34
+ TwitterCldr::Utils.deep_merge!(base, load_resource(custom_path, false))
35
+ end
36
+
37
+ base
38
+ end
39
+
40
+ def resource_exists?(path)
41
+ File.exist?(File.join(TwitterCldr::RESOURCES_DIR, path))
30
42
  end
31
43
 
32
44
  def read_resource_file(path)
@@ -40,5 +52,6 @@ module TwitterCldr
40
52
  end
41
53
 
42
54
  end
55
+
43
56
  end
44
57
  end
@@ -9,7 +9,6 @@ module TwitterCldr
9
9
  autoload :Currencies, 'twitter_cldr/shared/currencies'
10
10
  autoload :Languages, 'twitter_cldr/shared/languages'
11
11
  autoload :Numbers, 'twitter_cldr/shared/numbers'
12
- autoload :Resources, 'twitter_cldr/shared/resources'
13
12
  autoload :CodePoint, 'twitter_cldr/shared/code_point'
14
13
  end
15
14
  end
@@ -12,8 +12,8 @@ module TwitterCldr
12
12
 
13
13
  def initialize(options = {})
14
14
  @locale = TwitterCldr.convert_locale(options[:locale] || TwitterCldr::DEFAULT_LOCALE)
15
- self.init_resources
16
- self.init_placeholders
15
+ init_resources
16
+ init_placeholders
17
17
  end
18
18
 
19
19
  protected
@@ -22,9 +22,9 @@ module TwitterCldr
22
22
  # expanded format string into whatever parts are defined by the subclass's token type and token splitter regexes.
23
23
  def tokenize_format(text)
24
24
  final = []
25
- text.split(self.token_splitter_regex).each_with_index do |token, index|
25
+ text.split(token_splitter_regex).each_with_index do |token, index|
26
26
  unless index == 0 && token == ""
27
- self.token_type_regexes.each do |token_type|
27
+ token_type_regexes.each do |token_type|
28
28
  if token =~ token_type[:regex]
29
29
  if token_type[:type] == :composite
30
30
  content = token.match(token_type[:content])[1]
@@ -65,11 +65,11 @@ module TwitterCldr
65
65
 
66
66
  def tokens_with_placeholders_for(key)
67
67
  @@token_cache ||= {}
68
- cache_key = self.compute_cache_key(@locale, key, type)
68
+ cache_key = compute_cache_key(@locale, key, type)
69
69
 
70
70
  unless @@token_cache.include?(cache_key)
71
71
  result = []
72
- tokens = self.tokenize_pattern(self.pattern_for(self.traverse(key)))
72
+ tokens = tokenize_pattern(pattern_for(traverse(key)))
73
73
  tokens.each do |token|
74
74
  result << token
75
75
  end
@@ -117,15 +117,15 @@ module TwitterCldr
117
117
  def expand_pattern(format_str, type)
118
118
  if format_str.is_a?(Symbol)
119
119
  # symbols mean another path was given
120
- self.expand_pattern(self.pattern_for(self.traverse(format_str.to_s.split('.').map(&:to_sym))), type)
120
+ expand_pattern(pattern_for(traverse(format_str.to_s.split('.').map(&:to_sym))), type)
121
121
  else
122
122
  parts = tokenize_pattern(format_str)
123
123
  final = []
124
124
 
125
125
  parts.each do |part|
126
126
  case part[:type]
127
- when :placeholder then
128
- placeholder = self.choose_placeholder(part[:value], @placeholders)
127
+ when :placeholder
128
+ placeholder = choose_placeholder(part[:value], @placeholders)
129
129
  final += placeholder ? placeholder.tokens(:type => type) : []
130
130
  else
131
131
  final << part
@@ -79,10 +79,6 @@ module TwitterCldr
79
79
  def pattern_for(resource)
80
80
  resource.is_a?(Hash) ? resource[:pattern] : resource
81
81
  end
82
-
83
- def path_map
84
- PATH_MAP
85
- end
86
82
  end
87
83
  end
88
84
  end
@@ -6,11 +6,11 @@
6
6
  module TwitterCldr
7
7
  module Tokenizers
8
8
  class TimespanTokenizer < Base
9
+ VALID_UNITS = [:second, :minute, :hour, :day, :week, :month, :year]
10
+
9
11
  def initialize(options = {})
10
12
  super(options)
11
13
 
12
- @type = options[:type] || :decimal
13
-
14
14
  @token_splitter_regex = /([^0*#,\.]*)([0#,\.]+)([^0*#,\.]*)$/ # creates spaces
15
15
  @token_type_regexes = [
16
16
  { :type => :pattern, :regex => /[0?#,\.]*/ }, # splits token at right places
@@ -37,13 +37,23 @@ module TwitterCldr
37
37
  :week => :'week-future',
38
38
  :month => :'month-future',
39
39
  :year => :'year-future'
40
+ },
41
+ :none => {
42
+ :default => :second,
43
+ :second => :second,
44
+ :minute => :minute,
45
+ :hour => :hour,
46
+ :day => :day,
47
+ :week => :week,
48
+ :month => :month,
49
+ :year => :year
40
50
  }
41
51
  }
42
52
  end
43
53
 
44
54
  def tokens(options = {})
45
- path = full_path(options[:direction], options[:unit] || :default)
46
- pluralization = TwitterCldr::Formatters::Plurals::Rules.rule_for(options[:number], @locale)
55
+ path = full_path(options[:direction], options[:unit], options[:type])
56
+ pluralization = options[:rule] || TwitterCldr::Formatters::Plurals::Rules.rule_for(options[:number], @locale)
47
57
 
48
58
  case pluralization # sometimes the plural rule will return ":one" when the resource only contains a path with "1"
49
59
  when :zero
@@ -53,7 +63,7 @@ module TwitterCldr
53
63
  when :two
54
64
  pluralization = 2 if token_exists(path + [2])
55
65
  end
56
- path += [pluralization]
66
+ path << pluralization
57
67
  tokens_with_placeholders_for(path) if token_exists(path)
58
68
  end
59
69
 
@@ -63,10 +73,14 @@ module TwitterCldr
63
73
  true if @@token_cache.include?(cache_key) || traverse(path)
64
74
  end
65
75
 
76
+ def all_types_for(unit, direction)
77
+ traverse(@base_path + [@paths[direction][unit]]).keys
78
+ end
79
+
66
80
  protected
67
81
 
68
- def full_path(direction, unit)
69
- @base_path + [@paths[direction][unit]]
82
+ def full_path(direction, unit, type)
83
+ @base_path + [@paths[direction][unit], type]
70
84
  end
71
85
 
72
86
  def init_resources
@@ -22,6 +22,17 @@ module TwitterCldr
22
22
  end
23
23
  end
24
24
 
25
+ def deep_merge!(first, second)
26
+ if first.is_a?(Hash) && second.is_a?(Hash)
27
+ second.each { |key, val| first[key] = deep_merge!(first[key], val) }
28
+ elsif first.is_a?(Array) && second.is_a?(Array)
29
+ second.each_with_index { |elem, index| first[index] = deep_merge!(first[index], elem) }
30
+ else
31
+ return second
32
+ end
33
+ first
34
+ end
35
+
25
36
  def compute_cache_key(*pieces)
26
37
  if pieces && pieces.size > 0
27
38
  pieces.join("|").hash
@@ -4,5 +4,5 @@
4
4
  # http://www.apache.org/licenses/LICENSE-2.0
5
5
 
6
6
  module TwitterCldr
7
- VERSION = "1.5.0"
7
+ VERSION = "1.6.0"
8
8
  end
@@ -0,0 +1,3 @@
1
+ ---
2
+ tailored_table: 0149; [41, 5, 10]
3
+ suppressed_contractions: ''
@@ -0,0 +1,21 @@
1
+ ---
2
+ tailored_table: 0629; [6144, 87, 5]
3
+
4
+ FE94; [6144, 87, 6]
5
+
6
+ FE93; [6144, 87, 7]
7
+
8
+ 0649; [6287, 87, 5]
9
+
10
+ FBE8; [6287, 87, 6]
11
+
12
+ FBE9; [6287, 87, 7]
13
+
14
+ FEF0; [6287, 87, 8]
15
+
16
+ FEEF; [6287, 87, 9]
17
+
18
+ FC90; [6287, 87, A]
19
+
20
+ FC5D; [6287, 87, B]
21
+ suppressed_contractions: ''
@@ -0,0 +1,9 @@
1
+ ---
2
+ tailored_table: 0140; [3D, 87, 5]
3
+
4
+ 006C 00B7; [3D, 87, 5]
5
+
6
+ 013F; [3D, 87, 86]
7
+
8
+ 004C 00B7; [3D, 87, 86]
9
+ suppressed_contractions: ''
@@ -0,0 +1,25 @@
1
+ ---
2
+ tailored_table: 0063 030C; [2C04, 5, 5]
3
+
4
+ 0043 030C; [2C04, 5, 86]
5
+
6
+ 0063 0068; [3604, 5, 5]
7
+
8
+ 0063 0048; [3604, 5, 46]
9
+
10
+ 0043 0068; [3604, 5, 47]
11
+
12
+ 0043 0048; [3604, 5, 88]
13
+
14
+ 0072 030C; [4A04, 5, 5]
15
+
16
+ 0052 030C; [4A04, 5, 86]
17
+
18
+ 0073 030C; [4C04, 5, 5]
19
+
20
+ 0053 030C; [4C04, 5, 86]
21
+
22
+ 007A 030C; [5A04, 5, 5]
23
+
24
+ 005A 030C; [5A04, 5, 86]
25
+ suppressed_contractions: ''
@@ -0,0 +1,59 @@
1
+ ---
2
+ tailored_table: 0111; [2D, 87, 5]
3
+
4
+ 0110; [2D, 87, 86]
5
+
6
+ 00F0; [2D, 88, 5]
7
+
8
+ 00D0; [2D, 88, 86]
9
+
10
+ 00FE; [4D, 5, 6][35, 5, 5]
11
+
12
+ 00DE; [4D, 5, 90][35, 5, 8F]
13
+
14
+ 0075 0308; [57, 87, 5]
15
+
16
+ 0055 0308; [57, 87, 86]
17
+
18
+ 0075 030B; [57, 88, 5]
19
+
20
+ 0055 030B; [57, 88, 86]
21
+
22
+ 00E6; [5AA1, 5, 5][4, 0, C0]
23
+
24
+ 00C6; [5AA1, 5, 86][4, 0, C0]
25
+
26
+ 0061 0308; [5AA1, 87, 5][4, 0, C0]
27
+
28
+ 0041 0308; [5AA1, 87, 86][4, 0, C0]
29
+
30
+ 0065 0328; [5AA1, 88, 5][4, 0, C0]
31
+
32
+ 0045 0328; [5AA1, 88, 86][4, 0, C0]
33
+
34
+ 00F8; [5AA1, 5, 5][5, 0, C0]
35
+
36
+ 00D8; [5AA1, 5, 86][5, 0, C0]
37
+
38
+ 006F 0308; [5AA1, 87, 5][5, 0, C0]
39
+
40
+ 004F 0308; [5AA1, 87, 86][5, 0, C0]
41
+
42
+ 006F 030B; [5AA1, 88, 5][5, 0, C0]
43
+
44
+ 004F 030B; [5AA1, 88, 86][5, 0, C0]
45
+
46
+ 0153; [5AA1, 89, 5][5, 0, C0]
47
+
48
+ 0152; [5AA1, 89, 86][5, 0, C0]
49
+
50
+ 0061 030A; [5AA1, 5, 5][6, 0, C0]
51
+
52
+ 0041 030A; [5AA1, 5, 86][6, 0, C0]
53
+
54
+ 0061 0061; [5AA1, 5, 7][6, 0, C0]
55
+
56
+ 0041 0061; [5AA1, 5, 48][6, 0, C0]
57
+
58
+ 0041 0041; [5AA1, 5, 89][6, 0, C0]
59
+ suppressed_contractions: ''
@@ -0,0 +1,3 @@
1
+ ---
2
+ tailored_table: ''
3
+ suppressed_contractions: ''
@@ -0,0 +1,3 @@
1
+ ---
2
+ tailored_table: ''
3
+ suppressed_contractions: ''
@@ -0,0 +1,3 @@
1
+ ---
2
+ tailored_table: ''
3
+ suppressed_contractions: ''
@@ -0,0 +1,5 @@
1
+ ---
2
+ tailored_table: 006E 0303; [4204, 5, 5]
3
+
4
+ 004E 0303; [4204, 5, 86]
5
+ suppressed_contractions: ''
@@ -0,0 +1,3 @@
1
+ ---
2
+ tailored_table: ''
3
+ suppressed_contractions: ''
@@ -0,0 +1,73 @@
1
+ ---
2
+ tailored_table: 0650; [0, D3, 5][0, A, C0]
3
+
4
+ 064F; [0, D3, 5][0, B, C0]
5
+
6
+ 064B; [0, D3, 5][0, C, C0]
7
+
8
+ 064D; [0, D3, 5][0, D, C0]
9
+
10
+ 064C; [0, D3, 5][0, E, C0]
11
+
12
+ 0627 0653; [6125, 5, 5]
13
+
14
+ 0671; [6126, 87, 5]
15
+
16
+ 0621; [6127, 5, 5]
17
+
18
+ 0627 0654; [6127, 87, 5]
19
+
20
+ 0672; [6127, 88, 5]
21
+
22
+ 0627 0655; [6127, 89, 5]
23
+
24
+ 0673; [6127, 8A, 5]
25
+
26
+ 0648 0654; [6127, 8B, 5]
27
+
28
+ 06CC 0654; [6127, 8C, 5]
29
+
30
+ 0649 0654; [6127, 8C, 6]
31
+
32
+ 064A 0654; [6127, 8C, 7]
33
+
34
+ 06AA; [6213, 87, 5]
35
+
36
+ 06AB; [6213, 88, 5]
37
+
38
+ 0643; [6213, 89, 5]
39
+
40
+ 06AC; [6213, 8A, 5]
41
+
42
+ 06AD; [6213, 8B, 5]
43
+
44
+ 06AE; [6213, 8C, 5]
45
+
46
+ 0647; [627E, 5, 5]
47
+
48
+ 06D5; [627E, 87, 5]
49
+
50
+ 06C1; [627E, 88, 5]
51
+
52
+ 0629; [627E, 89, 5]
53
+
54
+ 06C3; [627E, 8A, 5]
55
+
56
+ 06D5 0654; [627E, 8B, 5]
57
+
58
+ 06BE; [627E, 8C, 5]
59
+
60
+ 0649; [6289, 87, 5]
61
+
62
+ 06D2; [6289, 88, 5]
63
+
64
+ 064A; [6289, 89, 5]
65
+
66
+ 06D0; [6289, 8A, 5]
67
+
68
+ 06D1; [6289, 8B, 5]
69
+
70
+ 06CD; [6289, 8C, 5]
71
+
72
+ 06CE; [6289, 8D, 5]
73
+ suppressed_contractions: ''
@@ -0,0 +1,61 @@
1
+ ---
2
+ tailored_table: 00F0; [2D, 5, 9][0, DB, 9][0, A9, C0]
3
+
4
+ 00D0; [2D, 5, 93][0, DB, 9][0, A9, C0]
5
+
6
+ 0111; [2D, 87, 5][4, 5, 5][0, D0, 5][0, 3D, C0]
7
+
8
+ 0110; [2D, 87, 86][4, 5, 5][0, D0, 5][0, 3D, C0]
9
+
10
+ 014B; [41, 87, 5][4, 5, 5][0, D0, 5][0, 3D, C0]
11
+
12
+ 014A; [41, 87, 86][4, 5, 5][0, D0, 5][0, 3D, C0]
13
+
14
+ 00FE; [5A60, 5, 5]
15
+
16
+ 00DE; [5A60, 5, 8F]
17
+
18
+ 0077; [53, 5, 5]
19
+
20
+ 0057; [53, 5, 8F]
21
+
22
+ 0075 0308; [57, 87, 5]
23
+
24
+ 0055 0308; [57, 87, 86]
25
+
26
+ 0075 030B; [4F, 5, 5][0, 9F, 5]
27
+
28
+ 0055 030B; [4F, 5, 8F][0, 9F, 5]
29
+
30
+ 0061 030A; [5AA1, 5, 5][4, 0, C0]
31
+
32
+ 0041 030A; [5AA1, 5, 86][4, 0, C0]
33
+
34
+ 0061 0308; [5AA1, 5, 5][5, 0, C0]
35
+
36
+ 0041 0308; [5AA1, 5, 86][5, 0, C0]
37
+
38
+ 00E6; [5AA1, 87, 5][5, 0, C0]
39
+
40
+ 00C6; [5AA1, 87, 86][5, 0, C0]
41
+
42
+ 006F 0308; [5AA1, 5, 5][6, 0, C0]
43
+
44
+ 004F 0308; [5AA1, 5, 86][6, 0, C0]
45
+
46
+ 00F8; [5AA1, 87, 5][6, 0, C0]
47
+
48
+ 00D8; [5AA1, 87, 86][6, 0, C0]
49
+
50
+ 006F 030B; [43, 5, 5][0, 9F, 5]
51
+
52
+ 004F 030B; [43, 5, 8F][0, 9F, 5]
53
+
54
+ 006F 0303; [43, 5, 5][0, A1, 5]
55
+
56
+ 004F 0303; [43, 5, 8F][0, A1, 5]
57
+
58
+ 0153; [43, 5, 9][0, DB, 9][0, A9, C0][2F, 5, 3D]
59
+
60
+ 0152; [43, 5, 93][0, DB, 9][0, A9, C0][2F, 5, 3D]
61
+ suppressed_contractions: ''