numbers_and_words 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -3
- data/README.rdoc +12 -2
- data/lib/numbers_and_words/i18n/locales/numbers.nl.yml +45 -0
- data/lib/numbers_and_words/strategies/array_joiner/languages/nl.rb +12 -0
- data/lib/numbers_and_words/strategies/array_joiner/languages.rb +1 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/nl/base.rb +14 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/nl/fractional.rb +40 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/nl/integral.rb +19 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/nl.rb +5 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators.rb +1 -0
- data/lib/numbers_and_words/strategies/figures_converter/languages/fr.rb +5 -1
- data/lib/numbers_and_words/strategies/figures_converter/languages/nl.rb +21 -3
- data/lib/numbers_and_words/strategies/figures_converter/languages/vi.rb +7 -7
- data/lib/numbers_and_words/translations/fr.rb +15 -4
- data/lib/numbers_and_words/translations/nl.rb +12 -2
- data/lib/numbers_and_words/version.rb +1 -1
- metadata +22 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d612787bffd49001ca0a53639182c25282a62d6bce6ed64102e404a01bb0a42a
|
4
|
+
data.tar.gz: 7f66649bed55c361ff6ea98ea230601e2304302a5a23cbca3003419fdadbb83a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32e0e1aff9acaba88b7f073ef25850e4cec84f872ee28f420ad2370c3b0d90d12e2190a30c88cee81f697729f38d9c3ca18bdfe05ff1ce6a8844e96efa1c7cd5
|
7
|
+
data.tar.gz: 2fee47dcc8cf1e9863f3061c20fa4112dcff5782b397c161e9a76f7a46b55da5e669a2772206e4aaa2f0e2e7c936bb9201ea130261a364c5514718f826d304fc
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,21 @@
|
|
1
|
-
## 1.
|
1
|
+
## 1.0.3 (Next)
|
2
2
|
|
3
3
|
### Features
|
4
4
|
* Your contribution here.
|
5
5
|
|
6
|
+
## 1.0.2 (Next)
|
7
|
+
|
8
|
+
### Features
|
9
|
+
* Add support for Dutch floating-point numbers. \[[#207](https://github.com/kslazarev/numbers_and_words/pull/207)\]
|
10
|
+
|
11
|
+
## 1.0.1 (March 7, 2025)
|
12
|
+
|
13
|
+
### Features
|
14
|
+
* Add support for Ruby 3.4. \[[#204](https://github.com/kslazarev/numbers_and_words/pull/204)\]
|
15
|
+
|
16
|
+
### Bugs
|
17
|
+
* Fix a few cases in French concerning plurals and union word (mainly 71 and 81). \[[#203](https://github.com/kslazarev/numbers_and_words/pull/203)\]
|
18
|
+
|
6
19
|
## 1.0.0 (October 17, 2024)
|
7
20
|
|
8
21
|
### Features
|
@@ -146,7 +159,7 @@
|
|
146
159
|
* Add Lithuanian language. \[[#77](https://github.com/kslazarev/numbers_and_words/pull/77)\] \([@miks](https://github.com/miks)\) \(assignee: [@miks](https://github.com/miks)\)
|
147
160
|
|
148
161
|
### Bugs
|
149
|
-
* Fix
|
162
|
+
* Fix Latvian one hundred cases. \[[#81](https://github.com/kslazarev/numbers_and_words/pull/81)\] \([@miks](https://github.com/miks)\) \(assignee: [@miks](https://github.com/miks)\)
|
150
163
|
|
151
164
|
### Supports
|
152
165
|
* Added @miks contacts to contributors list in README. \[[#79](https://github.com/kslazarev/numbers_and_words/issues/79)\] \([@kslazarev](https://github.com/kslazarev)\) \(assignee: [@miks](https://github.com/miks)\)
|
@@ -188,7 +201,7 @@
|
|
188
201
|
## 0.6.0 (March 25, 2013)
|
189
202
|
|
190
203
|
### Features
|
191
|
-
* Support fractional form for
|
204
|
+
* Support fractional form for Ukrainian. \[[#54](https://github.com/kslazarev/numbers_and_words/issues/54)\] \([@kslazarev](https://github.com/kslazarev)\) \(assignee: [@Shk-Serji](https://github.com/Shk-Serji)\)
|
192
205
|
* Support fractional form for Russian. \[[#53](https://github.com/kslazarev/numbers_and_words/issues/53)\] \([@kslazarev](https://github.com/kslazarev)\) \(assignee: [@kslazarev](https://github.com/kslazarev)\)
|
193
206
|
* Added functionality for spanish . \[[#51](https://github.com/kslazarev/numbers_and_words/pull/51)\] \([@jaambros](https://github.com/jaambros)\) \(assignee: [@jaambros](https://github.com/jaambros)\)
|
194
207
|
* Support ordinal form for English and Hungarian. \[[#50](https://github.com/kslazarev/numbers_and_words/issues/50)\] \([@eLod](https://github.com/eLod)\) \(assignee: [@eLod](https://github.com/eLod)\)
|
data/README.rdoc
CHANGED
@@ -9,7 +9,7 @@ Spell out numbers in several languages using the I18n gem.
|
|
9
9
|
|
10
10
|
Перевод чисел в слова при помощи библиотеки I18n.
|
11
11
|
|
12
|
-
|
12
|
+
Convertit les nombres en lettres en utilisant la librairie I18n.
|
13
13
|
|
14
14
|
Számok betűvel írva az I18n könyvtár segítségével.
|
15
15
|
|
@@ -285,7 +285,7 @@ Deletrea números en varios idiomas utilizando la gema I18n.
|
|
285
285
|
I18n.with_locale(:ru) { 1001.to_words gender: :neuter }
|
286
286
|
=> "одна тысяча одно"
|
287
287
|
|
288
|
-
*
|
288
|
+
* Ukrainian
|
289
289
|
|
290
290
|
Change gender form: (gender: [:female || :male || :neuter])
|
291
291
|
|
@@ -373,6 +373,16 @@ Deletrea números en varios idiomas utilizando la gema I18n.
|
|
373
373
|
I18n.with_locale(:da) { 1.to_words gender: :neuter }
|
374
374
|
=> "et"
|
375
375
|
|
376
|
+
* Dutch
|
377
|
+
|
378
|
+
Remove 'zero' from integral part of float: (remove_zero: [true || false])
|
379
|
+
|
380
|
+
I18n.with_locale(:nl) { 0.7.to_words remove_zero: true }
|
381
|
+
=> "zeven tienden"
|
382
|
+
|
383
|
+
I18n.with_locale(:nl) { 0.7.to_words remove_zero: false }
|
384
|
+
=> "nul komma zeven tienden"
|
385
|
+
|
376
386
|
== Other options / Другие опции
|
377
387
|
|
378
388
|
* Precision
|
@@ -8,3 +8,48 @@ nl:
|
|
8
8
|
mega: [_, duizend, miljoen, miljard, biljoen, biljard, triljoen, triljard, septiljoen, octillion, noniljoen, decillion]
|
9
9
|
union: en
|
10
10
|
union2or3: ën
|
11
|
+
micro: [_, tienden, honderdsten, duizendsten, miljoensten, miljardsten, biljoensten, biljardsten, triljoensten, triljardsten, septiljoensten, octillionsten, noniljoensten, decillionsten]
|
12
|
+
tienden:
|
13
|
+
one: tiende
|
14
|
+
other: tienden
|
15
|
+
honderdsten:
|
16
|
+
one: honderdste
|
17
|
+
other: honderdsten
|
18
|
+
duizendsten:
|
19
|
+
one: duizendste
|
20
|
+
other: duizendsten
|
21
|
+
miljoensten:
|
22
|
+
one: miljoenste
|
23
|
+
other: miljoensten
|
24
|
+
miljardsten:
|
25
|
+
one: miljardste
|
26
|
+
other: miljardsten
|
27
|
+
biljoensten:
|
28
|
+
one: biljoenste
|
29
|
+
other: biljoensten
|
30
|
+
biljardsten:
|
31
|
+
one: biljardste
|
32
|
+
other: biljardsten
|
33
|
+
triljoensten:
|
34
|
+
one: triljoenste
|
35
|
+
other: triljoensten
|
36
|
+
triljardsten:
|
37
|
+
one: triljardste
|
38
|
+
other: triljardsten
|
39
|
+
septiljoensten:
|
40
|
+
one: septiljoenste
|
41
|
+
other: septiljoensten
|
42
|
+
octillionsten:
|
43
|
+
one: octillionste
|
44
|
+
other: octillionsten
|
45
|
+
noniljoensten:
|
46
|
+
one: noniljoenste
|
47
|
+
other: noniljoensten
|
48
|
+
decillionsten:
|
49
|
+
one: decillionste
|
50
|
+
other: decillionsten
|
51
|
+
micro_separator: komma
|
52
|
+
micro_prefix:
|
53
|
+
tens: tien
|
54
|
+
hundreds: honderd
|
55
|
+
union: ''
|
@@ -14,6 +14,7 @@ require 'numbers_and_words/strategies/array_joiner/languages/ua'
|
|
14
14
|
require 'numbers_and_words/strategies/array_joiner/languages/pt-BR'
|
15
15
|
require 'numbers_and_words/strategies/array_joiner/languages/cs'
|
16
16
|
require 'numbers_and_words/strategies/array_joiner/languages/vi'
|
17
|
+
require 'numbers_and_words/strategies/array_joiner/languages/nl'
|
17
18
|
|
18
19
|
module NumbersAndWords
|
19
20
|
module Strategies
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module NumbersAndWords
|
4
|
+
module Strategies
|
5
|
+
module FiguresConverter
|
6
|
+
module Decorators
|
7
|
+
module Nl
|
8
|
+
class Fractional < Base
|
9
|
+
def run
|
10
|
+
@strategy.options.options[:fractional_numeral] = true
|
11
|
+
"#{super} #{fraction_significance}"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def fraction_significance
|
17
|
+
@strategy.translations.micros full_fraction.fraction_capacity, figures.join.to_i
|
18
|
+
end
|
19
|
+
|
20
|
+
def full_fraction
|
21
|
+
(0..zero_length).inject(figures.clone) { |result, _el| result.unshift 0 }.to_figures
|
22
|
+
end
|
23
|
+
|
24
|
+
def figures
|
25
|
+
@strategy.figures.reverse
|
26
|
+
end
|
27
|
+
|
28
|
+
def zero_length
|
29
|
+
fraction_length - figures.length
|
30
|
+
end
|
31
|
+
|
32
|
+
def fraction_length
|
33
|
+
@options[:fractional][:length].to_i
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module NumbersAndWords
|
4
|
+
module Strategies
|
5
|
+
module FiguresConverter
|
6
|
+
module Decorators
|
7
|
+
module Nl
|
8
|
+
class Integral < Base
|
9
|
+
def run
|
10
|
+
return '' if @options[:remove_zero] && @strategy.figures.all?(&:zero?)
|
11
|
+
|
12
|
+
super
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'numbers_and_words/strategies/figures_converter/decorators/nl/base'
|
4
|
+
require 'numbers_and_words/strategies/figures_converter/decorators/nl/fractional'
|
5
|
+
require 'numbers_and_words/strategies/figures_converter/decorators/nl/integral'
|
@@ -11,6 +11,7 @@ require 'numbers_and_words/strategies/figures_converter/decorators/hu'
|
|
11
11
|
require 'numbers_and_words/strategies/figures_converter/decorators/ua'
|
12
12
|
require 'numbers_and_words/strategies/figures_converter/decorators/cs'
|
13
13
|
require 'numbers_and_words/strategies/figures_converter/decorators/vi'
|
14
|
+
require 'numbers_and_words/strategies/figures_converter/decorators/nl'
|
14
15
|
|
15
16
|
module NumbersAndWords
|
16
17
|
module Strategies
|
@@ -14,7 +14,11 @@ module NumbersAndWords
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def hundreds
|
17
|
-
super({ pluralize: simple_number_to_words.empty? })
|
17
|
+
super({ pluralize: simple_number_to_words.empty? && (@parent_figures.nil? || @parent_figures.size == 3) })
|
18
|
+
end
|
19
|
+
|
20
|
+
def tens
|
21
|
+
super({ alone: @current_capacity&.positive? ? false : nil })
|
18
22
|
end
|
19
23
|
|
20
24
|
def megs
|
@@ -18,14 +18,34 @@ module NumbersAndWords
|
|
18
18
|
capacity_words.empty? ? [] : [capacity_words, megs].join
|
19
19
|
end
|
20
20
|
|
21
|
+
def ones(*args)
|
22
|
+
super({ fractional_numeral: @options.options[:fractional_numeral] }.merge(args.first || {}))
|
23
|
+
end
|
24
|
+
|
25
|
+
def tens_with_ones(*args)
|
26
|
+
super({ fractional_numeral: @options.options[:fractional_numeral] }.merge(args.first || {}))
|
27
|
+
end
|
28
|
+
|
21
29
|
def simple_number_to_words
|
22
|
-
if @figures.only_ones && @figures.ones == 1
|
30
|
+
if @figures.only_ones && @figures.ones == 1 && !@options.options[:fractional_numeral]
|
23
31
|
[@translations.t(:loose_one)]
|
24
32
|
else
|
25
33
|
super
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
37
|
+
def zero
|
38
|
+
return nil if maybe_remove_zero
|
39
|
+
|
40
|
+
super
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def maybe_remove_zero
|
46
|
+
@options.remove_zero&.result
|
47
|
+
end
|
48
|
+
|
29
49
|
def number_without_capacity_to_words
|
30
50
|
return super unless apply_tens_of_hundreds?
|
31
51
|
|
@@ -36,8 +56,6 @@ module NumbersAndWords
|
|
36
56
|
[([base, translate(:hundreds, 1)] + simple_number_to_words).join]
|
37
57
|
end
|
38
58
|
|
39
|
-
private
|
40
|
-
|
41
59
|
def apply_tens_of_hundreds?
|
42
60
|
@options.tens_of_hundreds.result &&
|
43
61
|
(1..9).cover?(figures.number_in_capacity(FiguresArray::THOUSAND_CAPACITY)) &&
|
@@ -7,19 +7,19 @@ module NumbersAndWords
|
|
7
7
|
class Vi < Base
|
8
8
|
def print_words
|
9
9
|
value = super
|
10
|
-
|
10
|
+
remove_billion_noise(value)
|
11
11
|
end
|
12
12
|
|
13
13
|
def strings_logic
|
14
14
|
if fractional?
|
15
15
|
if fraction_number_zeros_leading.zero?
|
16
|
-
@options.options[:
|
17
|
-
|
16
|
+
@options.options[:integral] = true
|
17
|
+
integral_string_logic
|
18
18
|
else
|
19
19
|
fractional_with_zero_leading_string_logic
|
20
20
|
end
|
21
21
|
else
|
22
|
-
|
22
|
+
integral_string_logic
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -28,7 +28,7 @@ module NumbersAndWords
|
|
28
28
|
(@figures + leading_zeros).map(&:to_words)
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
31
|
+
def integral_string_logic
|
32
32
|
if @figures.capacity_count
|
33
33
|
number_without_capacity_to_words + complex_number_to_words
|
34
34
|
elsif hundreds?
|
@@ -66,7 +66,7 @@ module NumbersAndWords
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def fractional?
|
69
|
-
!@options.options[:fractional].nil? && !@options.options[:
|
69
|
+
!@options.options[:fractional].nil? && !@options.options[:integral]
|
70
70
|
end
|
71
71
|
|
72
72
|
def fraction_length
|
@@ -79,7 +79,7 @@ module NumbersAndWords
|
|
79
79
|
fraction_length - @figures.length
|
80
80
|
end
|
81
81
|
|
82
|
-
def
|
82
|
+
def remove_billion_noise(value)
|
83
83
|
parts = value.split(billion_unit).map(&:strip)
|
84
84
|
if value.end_with?(billion_unit)
|
85
85
|
parts.insert(-1, billion_unit).join(' ')
|
@@ -14,11 +14,22 @@ module NumbersAndWords
|
|
14
14
|
super
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
|
17
|
+
def tens_with_teens(numbers)
|
18
|
+
number_ones, number_tens = numbers.first(2)
|
19
|
+
separator = number_tens == 7 && number_ones == 1 ? "-#{union}-" : '-'
|
20
|
+
[tens(number_tens - 1, alone: false), teens(numbers)].join(separator)
|
21
|
+
end
|
19
22
|
|
20
|
-
|
21
|
-
|
23
|
+
def tens_with_ones(numbers, options = {})
|
24
|
+
number_ones, number_tens = numbers
|
25
|
+
return tens_with_teens(numbers) if [7, 9].include?(number_tens)
|
26
|
+
|
27
|
+
separator = number_ones == 1 && number_tens != 8 ? " #{union} " : '-'
|
28
|
+
if number_tens == 8
|
29
|
+
[tens(number_tens, alone: false), ones(number_ones, options)].join(separator)
|
30
|
+
else
|
31
|
+
super(numbers, options.merge(separator:))
|
32
|
+
end
|
22
33
|
end
|
23
34
|
|
24
35
|
def hundreds(number, options = {})
|
@@ -4,9 +4,19 @@ module NumbersAndWords
|
|
4
4
|
module Translations
|
5
5
|
class Nl < Base
|
6
6
|
include NumbersAndWords::Translations::Families::Latin
|
7
|
+
include NumbersAndWords::Translations::Extensions::FractionSignificance
|
7
8
|
|
8
|
-
def
|
9
|
-
|
9
|
+
def ones(number, options = {})
|
10
|
+
# In fractional context, use "een" instead of "één" for number 1
|
11
|
+
if number == 1 && options[:fractional_numeral]
|
12
|
+
t(:ones)[1] # "een" is at index 1 in the ones array
|
13
|
+
else
|
14
|
+
super
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def tens_with_ones(numbers, options = {})
|
19
|
+
[ones(numbers[0], options), tens(numbers[1])].join(union(numbers[0]))
|
10
20
|
end
|
11
21
|
|
12
22
|
def hundreds(number, _options = {})
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numbers_and_words
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kirill Lazarev
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: i18n
|
@@ -38,6 +37,20 @@ dependencies:
|
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '2'
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: ostruct
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
type: :development
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
41
54
|
- !ruby/object:Gem::Dependency
|
42
55
|
name: rake
|
43
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,6 +129,7 @@ files:
|
|
116
129
|
- lib/numbers_and_words/strategies/array_joiner/languages/families/base.rb
|
117
130
|
- lib/numbers_and_words/strategies/array_joiner/languages/fr.rb
|
118
131
|
- lib/numbers_and_words/strategies/array_joiner/languages/hu.rb
|
132
|
+
- lib/numbers_and_words/strategies/array_joiner/languages/nl.rb
|
119
133
|
- lib/numbers_and_words/strategies/array_joiner/languages/pt-BR.rb
|
120
134
|
- lib/numbers_and_words/strategies/array_joiner/languages/ru.rb
|
121
135
|
- lib/numbers_and_words/strategies/array_joiner/languages/ua.rb
|
@@ -147,6 +161,10 @@ files:
|
|
147
161
|
- lib/numbers_and_words/strategies/figures_converter/decorators/hu/base.rb
|
148
162
|
- lib/numbers_and_words/strategies/figures_converter/decorators/hu/fractional.rb
|
149
163
|
- lib/numbers_and_words/strategies/figures_converter/decorators/hu/integral.rb
|
164
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/nl.rb
|
165
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/nl/base.rb
|
166
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/nl/fractional.rb
|
167
|
+
- lib/numbers_and_words/strategies/figures_converter/decorators/nl/integral.rb
|
150
168
|
- lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR.rb
|
151
169
|
- lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/base.rb
|
152
170
|
- lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/fractional.rb
|
@@ -267,7 +285,6 @@ homepage: http://github.com/kslazarev/numbers_and_words
|
|
267
285
|
licenses:
|
268
286
|
- MIT
|
269
287
|
metadata: {}
|
270
|
-
post_install_message:
|
271
288
|
rdoc_options: []
|
272
289
|
require_paths:
|
273
290
|
- lib
|
@@ -282,8 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
282
299
|
- !ruby/object:Gem::Version
|
283
300
|
version: '0'
|
284
301
|
requirements: []
|
285
|
-
rubygems_version: 3.
|
286
|
-
signing_key:
|
302
|
+
rubygems_version: 3.6.9
|
287
303
|
specification_version: 4
|
288
304
|
summary: Spell out numbers in several languages
|
289
305
|
test_files: []
|