knapsack 1.20.0 → 1.21.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/CHANGELOG.md +77 -69
- data/knapsack.gemspec +1 -1
- data/lib/knapsack/adapters/rspec_adapter.rb +5 -2
- data/lib/knapsack/version.rb +1 -1
- data/spec/knapsack/adapters/rspec_adapter_spec.rb +5 -5
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 620ac5f634996f21d32b1c65ac8609a61c47ac6f07b773fe1fa2bf6487f41d88
|
4
|
+
data.tar.gz: e5851433f161642429b11bea40e28ad37a0bd5f7008f34b641750afc7168e8e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edf2dbf2877aa04107e8a62e6ea91426df85288a87954d28068d3bb49dc31006bf61094bff3b564eb7d9b302b5966d2656e418bd83cd5a7ab751f9e2d33763b5
|
7
|
+
data.tar.gz: 14d9e941b65ffad0d5ec9d5120d56a77be8dc30ba4e2bb463a8621fe04947c804e1db41e7b10ae5a9ff87439acda309e1accb0076683e62ab1e25ca86f33718d
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,29 +2,37 @@
|
|
2
2
|
|
3
3
|
* TODO
|
4
4
|
|
5
|
+
### 1.21.0
|
6
|
+
|
7
|
+
* Track time in before and after `:context` hooks
|
8
|
+
|
9
|
+
https://github.com/KnapsackPro/knapsack/pull/107
|
10
|
+
|
11
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.20.0...v1.21.0
|
12
|
+
|
5
13
|
### 1.20.0
|
6
14
|
|
7
15
|
* Use `Process.clock_gettime` to measure track execution time
|
8
16
|
|
9
|
-
https://github.com/
|
17
|
+
https://github.com/KnapsackPro/knapsack/pull/100
|
10
18
|
|
11
|
-
https://github.com/
|
19
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.19.0...v1.20.0
|
12
20
|
|
13
21
|
### 1.19.0
|
14
22
|
|
15
23
|
* Add support for Bitbucket Pipelines
|
16
24
|
|
17
|
-
https://github.com/
|
25
|
+
https://github.com/KnapsackPro/knapsack/pull/97
|
18
26
|
|
19
|
-
https://github.com/
|
27
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.18.0...v1.19.0
|
20
28
|
|
21
29
|
### 1.18.0
|
22
30
|
|
23
31
|
* Add support for Semaphore 2.0
|
24
32
|
|
25
|
-
https://github.com/
|
33
|
+
https://github.com/KnapsackPro/knapsack/pull/92
|
26
34
|
|
27
|
-
https://github.com/
|
35
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.17.2...v1.18.0
|
28
36
|
|
29
37
|
### 1.17.2
|
30
38
|
|
@@ -33,65 +41,65 @@ https://github.com/ArturT/knapsack/compare/v1.17.2...v1.18.0
|
|
33
41
|
* Add info about Knapsack Pro Queue Mode in knapsack output
|
34
42
|
* Update URL to FAQ in knapsack output
|
35
43
|
|
36
|
-
https://github.com/
|
44
|
+
https://github.com/KnapsackPro/knapsack/pull/90
|
37
45
|
|
38
|
-
https://github.com/
|
46
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.17.1...v1.17.2
|
39
47
|
|
40
48
|
### 1.17.1
|
41
49
|
|
42
50
|
* Fix RSpec signal handling by replacing process
|
43
51
|
|
44
|
-
https://github.com/
|
52
|
+
https://github.com/KnapsackPro/knapsack/pull/86
|
45
53
|
|
46
|
-
https://github.com/
|
54
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.17.0...v1.17.1
|
47
55
|
|
48
56
|
### 1.17.0
|
49
57
|
|
50
58
|
* Add support for GitLab CI ENV variable `CI_NODE_INDEX` starting from 1.
|
51
59
|
|
52
|
-
https://github.com/
|
60
|
+
https://github.com/KnapsackPro/knapsack/pull/83
|
53
61
|
|
54
|
-
https://github.com/
|
62
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.16.0...v1.17.0
|
55
63
|
|
56
64
|
### 1.16.0
|
57
65
|
|
58
66
|
* Add support for Ruby >= 1.9.3.
|
59
67
|
|
60
|
-
https://github.com/
|
68
|
+
https://github.com/KnapsackPro/knapsack/pull/77
|
61
69
|
|
62
|
-
https://github.com/
|
70
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.15.0...v1.16.0
|
63
71
|
|
64
72
|
### 1.15.0
|
65
73
|
|
66
74
|
* Add support for Cucumber 3.
|
67
75
|
|
68
|
-
https://github.com/
|
76
|
+
https://github.com/KnapsackPro/knapsack/pull/68
|
69
77
|
|
70
|
-
https://github.com/
|
78
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.14.1...v1.15.0
|
71
79
|
|
72
80
|
### 1.14.1
|
73
81
|
|
74
82
|
* Update RSpec timing adapter to be more resilient.
|
75
83
|
|
76
|
-
https://github.com/
|
84
|
+
https://github.com/KnapsackPro/knapsack/pull/64
|
77
85
|
|
78
|
-
https://github.com/
|
86
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.14.0...v1.14.1
|
79
87
|
|
80
88
|
### 1.14.0
|
81
89
|
|
82
90
|
* Moves Timecop to development dependency.
|
83
91
|
|
84
|
-
https://github.com/
|
92
|
+
https://github.com/KnapsackPro/knapsack/pull/61
|
85
93
|
|
86
|
-
https://github.com/
|
94
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.13.3...v1.14.0
|
87
95
|
|
88
96
|
### 1.13.3
|
89
97
|
|
90
98
|
* Fix: Trailing slash should be removed from allocator test_dir.
|
91
99
|
|
92
|
-
https://github.com/
|
100
|
+
https://github.com/KnapsackPro/knapsack/issues/57
|
93
101
|
|
94
|
-
https://github.com/
|
102
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.13.2...v1.13.3
|
95
103
|
|
96
104
|
### 1.13.2
|
97
105
|
|
@@ -100,78 +108,78 @@ https://github.com/ArturT/knapsack/compare/v1.13.2...v1.13.3
|
|
100
108
|
Related:
|
101
109
|
https://github.com/KnapsackPro/knapsack_pro-ruby/issues/27
|
102
110
|
|
103
|
-
https://github.com/
|
111
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.13.1...v1.13.2
|
104
112
|
|
105
113
|
### 1.13.1
|
106
114
|
|
107
115
|
* Fix: Get rid of call #zero? method on $?.exitstatus in test runners tasks
|
108
116
|
|
109
|
-
https://github.com/
|
117
|
+
https://github.com/KnapsackPro/knapsack/pull/52
|
110
118
|
|
111
|
-
https://github.com/
|
119
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.13.0...v1.13.1
|
112
120
|
|
113
121
|
### 1.13.0
|
114
122
|
|
115
123
|
* Add KNAPSACK_LOG_LEVEL option
|
116
124
|
|
117
|
-
https://github.com/
|
125
|
+
https://github.com/KnapsackPro/knapsack/pull/49
|
118
126
|
|
119
|
-
https://github.com/
|
127
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.12.2...v1.13.0
|
120
128
|
|
121
129
|
### 1.12.2
|
122
130
|
|
123
131
|
* Fix support for turnip >= 2.x
|
124
132
|
|
125
|
-
https://github.com/
|
133
|
+
https://github.com/KnapsackPro/knapsack/pull/47
|
126
134
|
|
127
|
-
https://github.com/
|
135
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.12.1...v1.12.2
|
128
136
|
|
129
137
|
### 1.12.1
|
130
138
|
|
131
139
|
* Cucumber and Spinach should load files from proper folder in case when you use custom test directory.
|
132
140
|
|
133
|
-
https://github.com/
|
141
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.12.0...v1.12.1
|
134
142
|
|
135
143
|
### 1.12.0
|
136
144
|
|
137
145
|
* Add support for Minitest::SharedExamples
|
138
146
|
|
139
|
-
https://github.com/
|
147
|
+
https://github.com/KnapsackPro/knapsack/pull/46
|
140
148
|
|
141
|
-
https://github.com/
|
149
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.11.1...v1.12.0
|
142
150
|
|
143
151
|
### 1.11.1
|
144
152
|
|
145
153
|
* Require spinach in spec helper so tests will pass but don't require it in spinach adapter because it breaks for users who don't use spinach and they don't want to add it to their Gemfile
|
146
154
|
|
147
155
|
Related PR:
|
148
|
-
https://github.com/
|
156
|
+
https://github.com/KnapsackPro/knapsack/pull/41
|
149
157
|
|
150
|
-
https://github.com/
|
158
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.11.0...v1.11.1
|
151
159
|
|
152
160
|
### 1.11.0
|
153
161
|
|
154
162
|
* Add support for Spinach
|
155
163
|
|
156
|
-
https://github.com/
|
164
|
+
https://github.com/KnapsackPro/knapsack/pull/41
|
157
165
|
|
158
|
-
https://github.com/
|
166
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.10.0...v1.11.0
|
159
167
|
|
160
168
|
### 1.10.0
|
161
169
|
|
162
170
|
* Log the time offset warning at INFO if time not exceeded
|
163
171
|
|
164
|
-
https://github.com/
|
172
|
+
https://github.com/KnapsackPro/knapsack/pull/40
|
165
173
|
|
166
|
-
https://github.com/
|
174
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.9.0...v1.10.0
|
167
175
|
|
168
176
|
### 1.9.0
|
169
177
|
|
170
178
|
* Use Knapsack.logger for runner output
|
171
179
|
|
172
|
-
https://github.com/
|
180
|
+
https://github.com/KnapsackPro/knapsack/pull/39
|
173
181
|
|
174
|
-
https://github.com/
|
182
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.8.0...v1.9.0
|
175
183
|
|
176
184
|
### 1.8.0
|
177
185
|
|
@@ -179,15 +187,15 @@ https://github.com/ArturT/knapsack/compare/v1.8.0...v1.9.0
|
|
179
187
|
|
180
188
|
https://github.com/KnapsackPro/knapsack_pro-ruby/issues/5
|
181
189
|
|
182
|
-
https://github.com/
|
190
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.7.0...v1.8.0
|
183
191
|
|
184
192
|
### 1.7.0
|
185
193
|
|
186
194
|
* Add ability to run tests from multiple directories
|
187
195
|
|
188
|
-
https://github.com/
|
196
|
+
https://github.com/KnapsackPro/knapsack/pull/35
|
189
197
|
|
190
|
-
https://github.com/
|
198
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.6.1...v1.7.0
|
191
199
|
|
192
200
|
### 1.6.1
|
193
201
|
|
@@ -195,106 +203,106 @@ https://github.com/ArturT/knapsack/compare/v1.6.1...v1.7.0
|
|
195
203
|
|
196
204
|
https://github.com/KnapsackPro/knapsack_pro-ruby/pull/4
|
197
205
|
|
198
|
-
https://github.com/
|
206
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.6.0...v1.6.1
|
199
207
|
|
200
208
|
### 1.6.0
|
201
209
|
|
202
210
|
* Add support for Cucumber 2
|
203
211
|
|
204
|
-
https://github.com/
|
212
|
+
https://github.com/KnapsackPro/knapsack/issues/30
|
205
213
|
|
206
|
-
https://github.com/
|
214
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.5.1...v1.6.0
|
207
215
|
|
208
216
|
### 1.5.1
|
209
217
|
|
210
218
|
* Add link to FAQ at the end of time offset warning
|
211
219
|
|
212
|
-
https://github.com/
|
220
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.5.0...v1.5.1
|
213
221
|
|
214
222
|
### 1.5.0
|
215
223
|
|
216
224
|
* Add support for snap-ci.com
|
217
225
|
|
218
|
-
https://github.com/
|
226
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.4.1...v1.5.0
|
219
227
|
|
220
228
|
### 1.4.1
|
221
229
|
|
222
|
-
* Update test file pattern in tests also. Related PR https://github.com/
|
230
|
+
* Update test file pattern in tests also. Related PR https://github.com/KnapsackPro/knapsack/pull/27
|
223
231
|
* Ensure there are no duplicates in leftover tests because of new test file pattern
|
224
232
|
|
225
|
-
https://github.com/
|
233
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.4.0...v1.4.1
|
226
234
|
|
227
235
|
### 1.4.0
|
228
236
|
|
229
237
|
* Rename RspecAdapter to RSpecAdapter so that it is consistent
|
230
238
|
|
231
|
-
https://github.com/
|
239
|
+
https://github.com/KnapsackPro/knapsack/pull/28
|
232
240
|
|
233
241
|
* Change file path patterns to support 1-level symlinks by default
|
234
242
|
|
235
|
-
https://github.com/
|
243
|
+
https://github.com/KnapsackPro/knapsack/pull/27
|
236
244
|
|
237
|
-
https://github.com/
|
245
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.3.4...v1.4.0
|
238
246
|
|
239
247
|
### 1.3.4
|
240
248
|
|
241
249
|
* Make knapsack backwards compatible with earlier version of minitest
|
242
250
|
|
243
|
-
https://github.com/
|
251
|
+
https://github.com/KnapsackPro/knapsack/pull/26
|
244
252
|
|
245
|
-
https://github.com/
|
253
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.3.3...v1.3.4
|
246
254
|
|
247
255
|
### 1.3.3
|
248
256
|
|
249
257
|
* Fix wrong dependency for timecop
|
250
258
|
|
251
|
-
https://github.com/
|
259
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.3.2...v1.3.3
|
252
260
|
|
253
261
|
### 1.3.2
|
254
262
|
|
255
263
|
* Use Timecop as dependency and always use Time.now_without_mock_time to avoid problem when someone did stub on Time without using Timecop.
|
256
264
|
* Don't exit on successful RSpec and Cucumber runs
|
257
265
|
|
258
|
-
https://github.com/
|
266
|
+
https://github.com/KnapsackPro/knapsack/pull/25
|
259
267
|
|
260
|
-
https://github.com/
|
268
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.3.1...v1.3.2
|
261
269
|
|
262
270
|
### 1.3.1
|
263
271
|
|
264
272
|
* Treat KNAPSACK_GENERATE_REPORT=false as generate_report -> false
|
265
273
|
|
266
|
-
https://github.com/
|
274
|
+
https://github.com/KnapsackPro/knapsack/pull/22
|
267
275
|
|
268
|
-
https://github.com/
|
276
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.3.0...v1.3.1
|
269
277
|
|
270
278
|
### 1.3.0
|
271
279
|
|
272
280
|
* Add knapsack binary
|
273
281
|
|
274
|
-
https://github.com/
|
282
|
+
https://github.com/KnapsackPro/knapsack/pull/21
|
275
283
|
|
276
|
-
https://github.com/
|
284
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.2.1...v1.3.0
|
277
285
|
|
278
286
|
### 1.2.1
|
279
287
|
|
280
288
|
* Add support for Turnip features
|
281
289
|
|
282
|
-
https://github.com/
|
290
|
+
https://github.com/KnapsackPro/knapsack/pull/19
|
283
291
|
|
284
|
-
https://github.com/
|
292
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.2.0...v1.2.1
|
285
293
|
|
286
294
|
### 1.2.0
|
287
295
|
|
288
296
|
* Add minitest adapter.
|
289
297
|
* Fix bug with missing global time execution when tests took less than second.
|
290
298
|
|
291
|
-
https://github.com/
|
299
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.1.1...v1.2.0
|
292
300
|
|
293
301
|
### 1.1.1
|
294
302
|
|
295
303
|
* Use `system` instead of `exec` in rake tasks so we can return exit code from command.
|
296
304
|
|
297
|
-
https://github.com/
|
305
|
+
https://github.com/KnapsackPro/knapsack/compare/v1.1.0...v1.1.1
|
298
306
|
|
299
307
|
### 1.1.0
|
300
308
|
|
@@ -304,15 +312,15 @@ https://github.com/ArturT/knapsack/compare/v1.1.0...v1.1.1
|
|
304
312
|
|
305
313
|
* Pull request #12 - Raise error when CI_NODE_INDEX >= CI_NODE_TOTAL
|
306
314
|
|
307
|
-
https://github.com/
|
315
|
+
https://github.com/KnapsackPro/knapsack/pull/12
|
308
316
|
|
309
317
|
### 1.0.3
|
310
318
|
|
311
319
|
* Fix bug #11 - Track properly time when using Timecop gem in tests.
|
312
320
|
|
313
|
-
https://github.com/
|
321
|
+
https://github.com/KnapsackPro/knapsack/issues/11
|
314
322
|
|
315
|
-
https://github.com/
|
323
|
+
https://github.com/KnapsackPro/knapsack/issues/9
|
316
324
|
|
317
325
|
### 1.0.2
|
318
326
|
|
data/knapsack.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["arturtrzop@gmail.com"]
|
11
11
|
spec.summary = %q{Knapsack splits tests across CI nodes and makes sure that tests will run comparable time on each node.}
|
12
12
|
spec.description = %q{Parallel tests across CI server nodes based on each test file's time execution. It generates a test time execution report and uses it for future test runs.}
|
13
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.homepage = "https://github.com/KnapsackPro/knapsack"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -6,6 +6,10 @@ module Knapsack
|
|
6
6
|
|
7
7
|
def bind_time_tracker
|
8
8
|
::RSpec.configure do |config|
|
9
|
+
config.prepend_before(:context) do
|
10
|
+
Knapsack.tracker.start_timer
|
11
|
+
end
|
12
|
+
|
9
13
|
config.prepend_before(:each) do
|
10
14
|
current_example_group =
|
11
15
|
if ::RSpec.respond_to?(:current_example)
|
@@ -14,10 +18,9 @@ module Knapsack
|
|
14
18
|
example.metadata
|
15
19
|
end
|
16
20
|
Knapsack.tracker.test_path = RSpecAdapter.test_path(current_example_group)
|
17
|
-
Knapsack.tracker.start_timer
|
18
21
|
end
|
19
22
|
|
20
|
-
config.append_after(:
|
23
|
+
config.append_after(:context) do
|
21
24
|
Knapsack.tracker.stop_timer
|
22
25
|
end
|
23
26
|
|
data/lib/knapsack/version.rb
CHANGED
@@ -24,8 +24,9 @@ describe Knapsack::Adapters::RSpecAdapter do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it do
|
27
|
+
expect(config).to receive(:prepend_before).with(:context).and_yield
|
27
28
|
expect(config).to receive(:prepend_before).with(:each).and_yield
|
28
|
-
expect(config).to receive(:append_after).with(:
|
29
|
+
expect(config).to receive(:append_after).with(:context).and_yield
|
29
30
|
expect(config).to receive(:after).with(:suite).and_yield
|
30
31
|
expect(::RSpec).to receive(:configure).and_yield(config)
|
31
32
|
|
@@ -33,10 +34,9 @@ describe Knapsack::Adapters::RSpecAdapter do
|
|
33
34
|
expect(described_class).to receive(:test_path).with(example_group).and_return(test_path)
|
34
35
|
|
35
36
|
allow(Knapsack).to receive(:tracker).and_return(tracker)
|
36
|
-
expect(tracker).to receive(:
|
37
|
-
expect(tracker).to receive(:
|
38
|
-
|
39
|
-
expect(tracker).to receive(:stop_timer)
|
37
|
+
expect(tracker).to receive(:start_timer).ordered
|
38
|
+
expect(tracker).to receive(:test_path=).with(test_path).ordered
|
39
|
+
expect(tracker).to receive(:stop_timer).ordered
|
40
40
|
|
41
41
|
expect(Knapsack::Presenter).to receive(:global_time).and_return(global_time)
|
42
42
|
expect(logger).to receive(:info).with(global_time)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knapsack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ArturT
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -266,11 +266,11 @@ files:
|
|
266
266
|
- test_examples/fast/unit_test.rb
|
267
267
|
- test_examples/slow/slow_test.rb
|
268
268
|
- test_examples/test_helper.rb
|
269
|
-
homepage: https://github.com/
|
269
|
+
homepage: https://github.com/KnapsackPro/knapsack
|
270
270
|
licenses:
|
271
271
|
- MIT
|
272
272
|
metadata: {}
|
273
|
-
post_install_message:
|
273
|
+
post_install_message:
|
274
274
|
rdoc_options: []
|
275
275
|
require_paths:
|
276
276
|
- lib
|
@@ -286,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
286
286
|
version: '0'
|
287
287
|
requirements: []
|
288
288
|
rubygems_version: 3.0.6
|
289
|
-
signing_key:
|
289
|
+
signing_key:
|
290
290
|
specification_version: 4
|
291
291
|
summary: Knapsack splits tests across CI nodes and makes sure that tests will run
|
292
292
|
comparable time on each node.
|