@speleotica/frcsdata 4.0.2 → 4.0.4

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.
Files changed (43) hide show
  1. package/FrcsPlotFile.d.ts +1 -1
  2. package/FrcsPlotShot.d.ts +1 -1
  3. package/FrcsShot.d.ts +1 -1
  4. package/FrcsShot.js +2 -3
  5. package/FrcsSurveyFile.d.ts +1 -1
  6. package/FrcsTrip.d.ts +2 -2
  7. package/FrcsTripSummary.d.ts +1 -1
  8. package/FrcsTripSummaryFile.d.ts +1 -1
  9. package/formatFrcsShot.js +7 -6
  10. package/index.js +11 -11
  11. package/node/index.js +6 -9
  12. package/package.json +26 -124
  13. package/parseFrcsPlotFile.js +4 -3
  14. package/parseFrcsSurveyFile.js +126 -107
  15. package/parseFrcsTripSummaryFile.js +5 -4
  16. package/string/index.js +8 -11
  17. package/es/FrcsPlotFile.js +0 -6
  18. package/es/FrcsPlotShot.js +0 -6
  19. package/es/FrcsShot.js +0 -14
  20. package/es/FrcsSurveyFile.js +0 -6
  21. package/es/FrcsTrip.js +0 -6
  22. package/es/FrcsTripSummary.js +0 -6
  23. package/es/FrcsTripSummaryFile.js +0 -6
  24. package/es/formatFrcsShot.js +0 -75
  25. package/es/formatFrcsShot.spec.js +0 -141
  26. package/es/index.js +0 -96
  27. package/es/node/index.js +0 -20
  28. package/es/node/parseFrcsPlotFile.spec.js +0 -167
  29. package/es/node/parseFrcsSurveyFile.spec.js +0 -314
  30. package/es/node/parseFrcsTripSummaryFile.spec.js +0 -78
  31. package/es/parseFrcsPlotFile.js +0 -135
  32. package/es/parseFrcsSurveyFile.js +0 -485
  33. package/es/parseFrcsTripSummaryFile.js +0 -73
  34. package/es/string/index.js +0 -21
  35. package/es/string/parseFrcsPlotFile.spec.js +0 -179
  36. package/es/string/parseFrcsSurveyFile.spec.js +0 -644
  37. package/formatFrcsShot.spec.js +0 -139
  38. package/node/parseFrcsPlotFile.spec.js +0 -181
  39. package/node/parseFrcsSurveyFile.spec.js +0 -328
  40. package/node/parseFrcsTripSummaryFile.spec.js +0 -104
  41. package/string/parseFrcsPlotFile.spec.js +0 -182
  42. package/string/parseFrcsSurveyFile.spec.js +0 -673
  43. package/yarn.lock +0 -9542
@@ -1,314 +0,0 @@
1
- "use strict";
2
-
3
- var _mocha = require("mocha");
4
- var _index = require("./index");
5
- var _unitized = require("@speleotica/unitized");
6
- var _chai = require("chai");
7
- var _FrcsShot = require("../FrcsShot");
8
- /* eslint-env node */
9
-
10
- (0, _mocha.describe)('parseFrcsSurveyFile', () => {
11
- (0, _mocha.it)('basic test', async function () {
12
- const parsed = await (0, _index.parseFrcsSurveyFile)(require.resolve('./cdata.fr'));
13
- (0, _chai.expect)(parsed).to.deep.equal({
14
- cave: 'Fisher Ridge Cave System',
15
- errors: [],
16
- location: 'Hart Co., KY',
17
- trips: [{
18
- header: {
19
- name: 'ENTRANCE DROPS, JOE\'S "I LOVE MY WIFE TRAVERSE", TRICKY TRAVERSE',
20
- comment: 'This File has Crumps test connected. 11/20/12',
21
- section: undefined,
22
- date: undefined,
23
- team: undefined,
24
- distanceUnit: _unitized.Length.feet,
25
- azimuthUnit: _unitized.Angle.degrees,
26
- inclinationUnit: _unitized.Angle.degrees,
27
- backsightAzimuthCorrected: true,
28
- backsightInclinationCorrected: false,
29
- hasBacksightAzimuth: true,
30
- hasBacksightInclination: false
31
- },
32
- shots: [{
33
- backsightAzimuth: null,
34
- backsightInclination: null,
35
- comment: null,
36
- distance: _unitized.Unitize.feet(0),
37
- excludeDistance: true,
38
- from: 'AE20',
39
- frontsightAzimuth: null,
40
- frontsightInclination: null,
41
- kind: _FrcsShot.FrcsShotKind.Normal,
42
- to: null,
43
- fromLruds: {
44
- left: _unitized.Unitize.feet(1),
45
- right: _unitized.Unitize.feet(3),
46
- up: _unitized.Unitize.feet(0),
47
- down: _unitized.Unitize.feet(2)
48
- }
49
- }, {
50
- from: 'AE20',
51
- to: 'AE19',
52
- kind: _FrcsShot.FrcsShotKind.Normal,
53
- distance: _unitized.Unitize.feet(9.3),
54
- frontsightAzimuth: _unitized.Unitize.degrees(60),
55
- backsightAzimuth: _unitized.Unitize.degrees(60),
56
- frontsightInclination: _unitized.Unitize.degrees(-36),
57
- backsightInclination: null,
58
- excludeDistance: false,
59
- comment: "AE20 0 0 0 Bug-can't put before so put after-so can't make 2 fixed 10/28/12",
60
- toLruds: {
61
- left: _unitized.Unitize.feet(2),
62
- right: _unitized.Unitize.feet(12),
63
- up: _unitized.Unitize.feet(0),
64
- down: _unitized.Unitize.feet(20)
65
- }
66
- }, {
67
- from: 'AE19',
68
- to: 'AE18',
69
- kind: _FrcsShot.FrcsShotKind.Normal,
70
- distance: _unitized.Unitize.feet(24.5),
71
- frontsightAzimuth: _unitized.Unitize.degrees(0),
72
- backsightAzimuth: _unitized.Unitize.degrees(0),
73
- frontsightInclination: _unitized.Unitize.degrees(-90),
74
- backsightInclination: null,
75
- excludeDistance: false,
76
- comment: null,
77
- toLruds: {
78
- left: _unitized.Unitize.feet(6),
79
- right: _unitized.Unitize.feet(10),
80
- up: _unitized.Unitize.feet(25),
81
- down: _unitized.Unitize.feet(0)
82
- }
83
- }, {
84
- from: 'AE18',
85
- to: 'AE17',
86
- kind: _FrcsShot.FrcsShotKind.Normal,
87
- distance: _unitized.Unitize.feet(8),
88
- frontsightAzimuth: _unitized.Unitize.degrees(350.5),
89
- backsightAzimuth: _unitized.Unitize.degrees(350.5),
90
- frontsightInclination: _unitized.Unitize.degrees(17),
91
- backsightInclination: null,
92
- excludeDistance: false,
93
- comment: null,
94
- toLruds: {
95
- left: _unitized.Unitize.feet(3),
96
- right: _unitized.Unitize.feet(5),
97
- up: _unitized.Unitize.feet(0),
98
- down: _unitized.Unitize.feet(0)
99
- }
100
- }, {
101
- from: 'AE17',
102
- to: 'AE16',
103
- kind: _FrcsShot.FrcsShotKind.Normal,
104
- distance: _unitized.Unitize.feet(6.7),
105
- frontsightAzimuth: _unitized.Unitize.degrees(0),
106
- backsightAzimuth: _unitized.Unitize.degrees(0),
107
- frontsightInclination: _unitized.Unitize.degrees(-90),
108
- backsightInclination: null,
109
- excludeDistance: false,
110
- comment: null,
111
- toLruds: {
112
- left: _unitized.Unitize.feet(3),
113
- right: _unitized.Unitize.feet(5),
114
- up: _unitized.Unitize.feet(6),
115
- down: _unitized.Unitize.feet(1)
116
- }
117
- }, {
118
- from: 'AE16',
119
- to: 'AE15',
120
- kind: _FrcsShot.FrcsShotKind.Normal,
121
- distance: _unitized.Unitize.feet(12.6),
122
- frontsightAzimuth: _unitized.Unitize.degrees(70.5),
123
- backsightAzimuth: _unitized.Unitize.degrees(71),
124
- frontsightInclination: _unitized.Unitize.degrees(-18),
125
- backsightInclination: null,
126
- excludeDistance: false,
127
- comment: null,
128
- toLruds: {
129
- left: _unitized.Unitize.feet(4),
130
- right: _unitized.Unitize.feet(0),
131
- up: _unitized.Unitize.feet(2),
132
- down: _unitized.Unitize.feet(1)
133
- }
134
- }, {
135
- from: 'AE15',
136
- to: 'AE14',
137
- kind: _FrcsShot.FrcsShotKind.Normal,
138
- distance: _unitized.Unitize.feet(10),
139
- frontsightAzimuth: _unitized.Unitize.degrees(21.5),
140
- backsightAzimuth: _unitized.Unitize.degrees(20),
141
- frontsightInclination: _unitized.Unitize.degrees(6),
142
- backsightInclination: null,
143
- excludeDistance: false,
144
- comment: null,
145
- toLruds: {
146
- left: _unitized.Unitize.feet(5),
147
- right: _unitized.Unitize.feet(5),
148
- up: _unitized.Unitize.feet(0),
149
- down: _unitized.Unitize.feet(3)
150
- }
151
- }, {
152
- from: 'AE14',
153
- to: 'AE13',
154
- kind: _FrcsShot.FrcsShotKind.Normal,
155
- distance: _unitized.Unitize.feet(26.8),
156
- frontsightAzimuth: _unitized.Unitize.degrees(288),
157
- backsightAzimuth: _unitized.Unitize.degrees(286),
158
- frontsightInclination: _unitized.Unitize.degrees(-50),
159
- backsightInclination: null,
160
- excludeDistance: false,
161
- comment: null,
162
- toLruds: {
163
- left: _unitized.Unitize.feet(0),
164
- right: _unitized.Unitize.feet(7),
165
- up: _unitized.Unitize.feet(20),
166
- down: _unitized.Unitize.feet(5)
167
- }
168
- }, {
169
- from: 'AE13',
170
- to: 'AE12',
171
- kind: _FrcsShot.FrcsShotKind.Normal,
172
- distance: _unitized.Unitize.feet(20.7),
173
- frontsightAzimuth: _unitized.Unitize.degrees(236),
174
- backsightAzimuth: _unitized.Unitize.degrees(236),
175
- frontsightInclination: _unitized.Unitize.degrees(34),
176
- backsightInclination: null,
177
- excludeDistance: false,
178
- comment: 'SHORT CANYON AT THE BASE OF THE SECOND DROP',
179
- toLruds: {
180
- left: _unitized.Unitize.feet(3),
181
- right: _unitized.Unitize.feet(5),
182
- up: _unitized.Unitize.feet(4),
183
- down: _unitized.Unitize.feet(4)
184
- }
185
- }]
186
- }, {
187
- header: {
188
- name: 'TRICKY TRAVERSE AND THEN FIRST SURVEY IN UPPER CROWLWAY',
189
- comment: null,
190
- section: undefined,
191
- date: undefined,
192
- team: undefined,
193
- distanceUnit: _unitized.Length.inches,
194
- azimuthUnit: _unitized.Angle.degrees,
195
- inclinationUnit: _unitized.Angle.degrees,
196
- backsightAzimuthCorrected: false,
197
- backsightInclinationCorrected: false,
198
- hasBacksightAzimuth: true,
199
- hasBacksightInclination: false
200
- },
201
- shots: [{
202
- from: 'A1',
203
- to: 'A2',
204
- kind: _FrcsShot.FrcsShotKind.Normal,
205
- distance: _unitized.Unitize.inches(48 * 12 + 10),
206
- frontsightAzimuth: _unitized.Unitize.degrees(292),
207
- backsightAzimuth: _unitized.Unitize.degrees(110),
208
- frontsightInclination: _unitized.Unitize.degrees(-42),
209
- backsightInclination: null,
210
- excludeDistance: false,
211
- comment: null,
212
- fromLruds: {
213
- left: _unitized.Unitize.feet(2),
214
- right: _unitized.Unitize.feet(7),
215
- up: _unitized.Unitize.feet(3),
216
- down: _unitized.Unitize.feet(4.5)
217
- },
218
- toLruds: {
219
- left: _unitized.Unitize.feet(5),
220
- right: _unitized.Unitize.feet(10),
221
- up: _unitized.Unitize.feet(35),
222
- down: _unitized.Unitize.feet(5)
223
- }
224
- }, {
225
- from: 'A2',
226
- to: 'A3',
227
- kind: _FrcsShot.FrcsShotKind.Normal,
228
- distance: _unitized.Unitize.inches(12 * 12 + 5),
229
- frontsightAzimuth: _unitized.Unitize.degrees(333.5),
230
- backsightAzimuth: _unitized.Unitize.degrees(153.5),
231
- frontsightInclination: _unitized.Unitize.degrees(35),
232
- backsightInclination: null,
233
- excludeDistance: false,
234
- comment: null,
235
- toLruds: {
236
- left: _unitized.Unitize.feet(3),
237
- right: _unitized.Unitize.feet(1),
238
- up: _unitized.Unitize.feet(15),
239
- down: _unitized.Unitize.feet(5)
240
- }
241
- }, {
242
- from: 'A3',
243
- to: 'A4',
244
- kind: _FrcsShot.FrcsShotKind.Normal,
245
- distance: _unitized.Unitize.inches(4 * 12 + 2),
246
- frontsightAzimuth: _unitized.Unitize.degrees(0),
247
- backsightAzimuth: _unitized.Unitize.degrees(0),
248
- frontsightInclination: _unitized.Unitize.degrees(90),
249
- backsightInclination: null,
250
- excludeDistance: false,
251
- comment: null,
252
- toLruds: {
253
- left: _unitized.Unitize.feet(3),
254
- right: _unitized.Unitize.feet(1),
255
- up: _unitized.Unitize.feet(10),
256
- down: _unitized.Unitize.feet(10)
257
- }
258
- }]
259
- }, {
260
- header: {
261
- azimuthUnit: _unitized.Angle.degrees,
262
- backsightAzimuthCorrected: true,
263
- backsightInclinationCorrected: false,
264
- comment: null,
265
- date: undefined,
266
- distanceUnit: _unitized.Length.feet,
267
- hasBacksightAzimuth: true,
268
- hasBacksightInclination: false,
269
- inclinationUnit: _unitized.Angle.degrees,
270
- name: "DOUG'S DEMISE (50 FT DROP), CHRIS CROSS, CRAWL ABOVE DROP",
271
- section: undefined,
272
- team: undefined
273
- },
274
- shots: [{
275
- backsightAzimuth: _unitized.Unitize.degrees(0),
276
- backsightInclination: null,
277
- comment: null,
278
- distance: _unitized.Unitize.feet(13.7),
279
- excludeDistance: false,
280
- from: 'B30',
281
- frontsightAzimuth: _unitized.Unitize.degrees(0),
282
- frontsightInclination: _unitized.Unitize.degrees(40),
283
- kind: ' ',
284
- to: 'B31',
285
- toLruds: {
286
- left: _unitized.Unitize.feet(2),
287
- right: _unitized.Unitize.feet(4),
288
- up: _unitized.Unitize.feet(6),
289
- down: null
290
- }
291
- }, {
292
- backsightAzimuth: _unitized.Unitize.degrees(0),
293
- backsightInclination: null,
294
- comment: null,
295
- distance: _unitized.Unitize.feet(13.7),
296
- excludeDistance: true,
297
- isSplay: true,
298
- from: 'B30',
299
- frontsightAzimuth: _unitized.Unitize.degrees(0),
300
- frontsightInclination: _unitized.Unitize.degrees(40),
301
- kind: ' ',
302
- to: 'B30sp',
303
- toLruds: {
304
- left: _unitized.Unitize.feet(2),
305
- right: _unitized.Unitize.feet(4),
306
- up: _unitized.Unitize.feet(6),
307
- down: null
308
- }
309
- }]
310
- }]
311
- });
312
- });
313
- });
314
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9jaGEiLCJyZXF1aXJlIiwiX2luZGV4IiwiX3VuaXRpemVkIiwiX2NoYWkiLCJfRnJjc1Nob3QiLCJkZXNjcmliZSIsIml0IiwicGFyc2VkIiwicGFyc2VGcmNzU3VydmV5RmlsZSIsInJlc29sdmUiLCJleHBlY3QiLCJ0byIsImRlZXAiLCJlcXVhbCIsImNhdmUiLCJlcnJvcnMiLCJsb2NhdGlvbiIsInRyaXBzIiwiaGVhZGVyIiwibmFtZSIsImNvbW1lbnQiLCJzZWN0aW9uIiwidW5kZWZpbmVkIiwiZGF0ZSIsInRlYW0iLCJkaXN0YW5jZVVuaXQiLCJMZW5ndGgiLCJmZWV0IiwiYXppbXV0aFVuaXQiLCJBbmdsZSIsImRlZ3JlZXMiLCJpbmNsaW5hdGlvblVuaXQiLCJiYWNrc2lnaHRBemltdXRoQ29ycmVjdGVkIiwiYmFja3NpZ2h0SW5jbGluYXRpb25Db3JyZWN0ZWQiLCJoYXNCYWNrc2lnaHRBemltdXRoIiwiaGFzQmFja3NpZ2h0SW5jbGluYXRpb24iLCJzaG90cyIsImJhY2tzaWdodEF6aW11dGgiLCJiYWNrc2lnaHRJbmNsaW5hdGlvbiIsImRpc3RhbmNlIiwiVW5pdGl6ZSIsImV4Y2x1ZGVEaXN0YW5jZSIsImZyb20iLCJmcm9udHNpZ2h0QXppbXV0aCIsImZyb250c2lnaHRJbmNsaW5hdGlvbiIsImtpbmQiLCJGcmNzU2hvdEtpbmQiLCJOb3JtYWwiLCJmcm9tTHJ1ZHMiLCJsZWZ0IiwicmlnaHQiLCJ1cCIsImRvd24iLCJ0b0xydWRzIiwiaW5jaGVzIiwiaXNTcGxheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3BhcnNlRnJjc1N1cnZleUZpbGUuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZW52IG5vZGUgKi9cblxuaW1wb3J0IHsgZGVzY3JpYmUsIGl0IH0gZnJvbSAnbW9jaGEnXG5pbXBvcnQgeyBwYXJzZUZyY3NTdXJ2ZXlGaWxlIH0gZnJvbSAnLi9pbmRleCdcbmltcG9ydCB7IExlbmd0aCwgQW5nbGUsIFVuaXRpemUgfSBmcm9tICdAc3BlbGVvdGljYS91bml0aXplZCdcbmltcG9ydCB7IGV4cGVjdCB9IGZyb20gJ2NoYWknXG5pbXBvcnQgeyBGcmNzU2hvdEtpbmQgfSBmcm9tICcuLi9GcmNzU2hvdCdcblxuZGVzY3JpYmUoJ3BhcnNlRnJjc1N1cnZleUZpbGUnLCAoKSA9PiB7XG4gIGl0KCdiYXNpYyB0ZXN0JywgYXN5bmMgZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgcGFyc2VkID0gYXdhaXQgcGFyc2VGcmNzU3VydmV5RmlsZShyZXF1aXJlLnJlc29sdmUoJy4vY2RhdGEuZnInKSlcbiAgICBleHBlY3QocGFyc2VkKS50by5kZWVwLmVxdWFsKHtcbiAgICAgIGNhdmU6ICdGaXNoZXIgUmlkZ2UgQ2F2ZSBTeXN0ZW0nLFxuICAgICAgZXJyb3JzOiBbXSxcbiAgICAgIGxvY2F0aW9uOiAnSGFydCBDby4sIEtZJyxcbiAgICAgIHRyaXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICAgIG5hbWU6XG4gICAgICAgICAgICAgICdFTlRSQU5DRSBEUk9QUywgSk9FXFwnUyBcIkkgTE9WRSBNWSBXSUZFIFRSQVZFUlNFXCIsIFRSSUNLWSBUUkFWRVJTRScsXG4gICAgICAgICAgICBjb21tZW50OiAnVGhpcyBGaWxlIGhhcyBDcnVtcHMgdGVzdCBjb25uZWN0ZWQuICAxMS8yMC8xMicsXG4gICAgICAgICAgICBzZWN0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkYXRlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0ZWFtOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkaXN0YW5jZVVuaXQ6IExlbmd0aC5mZWV0LFxuICAgICAgICAgICAgYXppbXV0aFVuaXQ6IEFuZ2xlLmRlZ3JlZXMsXG4gICAgICAgICAgICBpbmNsaW5hdGlvblVuaXQ6IEFuZ2xlLmRlZ3JlZXMsXG4gICAgICAgICAgICBiYWNrc2lnaHRBemltdXRoQ29ycmVjdGVkOiB0cnVlLFxuICAgICAgICAgICAgYmFja3NpZ2h0SW5jbGluYXRpb25Db3JyZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgaGFzQmFja3NpZ2h0QXppbXV0aDogdHJ1ZSxcbiAgICAgICAgICAgIGhhc0JhY2tzaWdodEluY2xpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNob3RzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJhY2tzaWdodEF6aW11dGg6IG51bGwsXG4gICAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uOiBudWxsLFxuICAgICAgICAgICAgICBjb21tZW50OiBudWxsLFxuICAgICAgICAgICAgICBkaXN0YW5jZTogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgICAgICBleGNsdWRlRGlzdGFuY2U6IHRydWUsXG4gICAgICAgICAgICAgIGZyb206ICdBRTIwJyxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEF6aW11dGg6IG51bGwsXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogbnVsbCxcbiAgICAgICAgICAgICAga2luZDogRnJjc1Nob3RLaW5kLk5vcm1hbCxcbiAgICAgICAgICAgICAgdG86IG51bGwsXG5cbiAgICAgICAgICAgICAgZnJvbUxydWRzOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogVW5pdGl6ZS5mZWV0KDEpLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBVbml0aXplLmZlZXQoMyksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMiksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmcm9tOiAnQUUyMCcsXG4gICAgICAgICAgICAgIHRvOiAnQUUxOScsXG4gICAgICAgICAgICAgIGtpbmQ6IEZyY3NTaG90S2luZC5Ob3JtYWwsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiBVbml0aXplLmZlZXQoOS4zKSxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcyg2MCksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcyg2MCksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogVW5pdGl6ZS5kZWdyZWVzKC0zNiksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uOiBudWxsLFxuICAgICAgICAgICAgICBleGNsdWRlRGlzdGFuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICBjb21tZW50OlxuICAgICAgICAgICAgICAgIFwiQUUyMCAgICAgMCAgICAgICAgMCAgICAgICAgMCAgICAgICAgQnVnLWNhbid0IHB1dCBiZWZvcmUgc28gcHV0IGFmdGVyLXNvIGNhbid0IG1ha2UgMiBmaXhlZCAxMC8yOC8xMlwiLFxuXG4gICAgICAgICAgICAgIHRvTHJ1ZHM6IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBVbml0aXplLmZlZXQoMiksXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFVuaXRpemUuZmVldCgxMiksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMjApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZnJvbTogJ0FFMTknLFxuICAgICAgICAgICAgICB0bzogJ0FFMTgnLFxuICAgICAgICAgICAgICBraW5kOiBGcmNzU2hvdEtpbmQuTm9ybWFsLFxuICAgICAgICAgICAgICBkaXN0YW5jZTogVW5pdGl6ZS5mZWV0KDI0LjUpLFxuICAgICAgICAgICAgICBmcm9udHNpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDApLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMCksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogVW5pdGl6ZS5kZWdyZWVzKC05MCksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uOiBudWxsLFxuICAgICAgICAgICAgICBleGNsdWRlRGlzdGFuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICBjb21tZW50OiBudWxsLFxuXG4gICAgICAgICAgICAgIHRvTHJ1ZHM6IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBVbml0aXplLmZlZXQoNiksXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFVuaXRpemUuZmVldCgxMCksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgyNSksXG4gICAgICAgICAgICAgICAgZG93bjogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZnJvbTogJ0FFMTgnLFxuICAgICAgICAgICAgICB0bzogJ0FFMTcnLFxuICAgICAgICAgICAgICBraW5kOiBGcmNzU2hvdEtpbmQuTm9ybWFsLFxuICAgICAgICAgICAgICBkaXN0YW5jZTogVW5pdGl6ZS5mZWV0KDgpLFxuICAgICAgICAgICAgICBmcm9udHNpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDM1MC41KSxcbiAgICAgICAgICAgICAgYmFja3NpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDM1MC41KSxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEluY2xpbmF0aW9uOiBVbml0aXplLmRlZ3JlZXMoMTcpLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRJbmNsaW5hdGlvbjogbnVsbCxcbiAgICAgICAgICAgICAgZXhjbHVkZURpc3RhbmNlOiBmYWxzZSxcbiAgICAgICAgICAgICAgY29tbWVudDogbnVsbCxcblxuICAgICAgICAgICAgICB0b0xydWRzOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogVW5pdGl6ZS5mZWV0KDMpLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBVbml0aXplLmZlZXQoNSksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmcm9tOiAnQUUxNycsXG4gICAgICAgICAgICAgIHRvOiAnQUUxNicsXG4gICAgICAgICAgICAgIGtpbmQ6IEZyY3NTaG90S2luZC5Ob3JtYWwsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiBVbml0aXplLmZlZXQoNi43KSxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcygwKSxcbiAgICAgICAgICAgICAgYmFja3NpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDApLFxuICAgICAgICAgICAgICBmcm9udHNpZ2h0SW5jbGluYXRpb246IFVuaXRpemUuZGVncmVlcygtOTApLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRJbmNsaW5hdGlvbjogbnVsbCxcbiAgICAgICAgICAgICAgZXhjbHVkZURpc3RhbmNlOiBmYWxzZSxcbiAgICAgICAgICAgICAgY29tbWVudDogbnVsbCxcblxuICAgICAgICAgICAgICB0b0xydWRzOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogVW5pdGl6ZS5mZWV0KDMpLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBVbml0aXplLmZlZXQoNSksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg2KSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmcm9tOiAnQUUxNicsXG4gICAgICAgICAgICAgIHRvOiAnQUUxNScsXG4gICAgICAgICAgICAgIGtpbmQ6IEZyY3NTaG90S2luZC5Ob3JtYWwsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiBVbml0aXplLmZlZXQoMTIuNiksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoNzAuNSksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcyg3MSksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogVW5pdGl6ZS5kZWdyZWVzKC0xOCksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uOiBudWxsLFxuICAgICAgICAgICAgICBleGNsdWRlRGlzdGFuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICBjb21tZW50OiBudWxsLFxuXG4gICAgICAgICAgICAgIHRvTHJ1ZHM6IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBVbml0aXplLmZlZXQoNCksXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICAgICAgICB1cDogVW5pdGl6ZS5mZWV0KDIpLFxuICAgICAgICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgxKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZyb206ICdBRTE1JyxcbiAgICAgICAgICAgICAgdG86ICdBRTE0JyxcbiAgICAgICAgICAgICAga2luZDogRnJjc1Nob3RLaW5kLk5vcm1hbCxcbiAgICAgICAgICAgICAgZGlzdGFuY2U6IFVuaXRpemUuZmVldCgxMCksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMjEuNSksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcygyMCksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogVW5pdGl6ZS5kZWdyZWVzKDYpLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRJbmNsaW5hdGlvbjogbnVsbCxcbiAgICAgICAgICAgICAgZXhjbHVkZURpc3RhbmNlOiBmYWxzZSxcbiAgICAgICAgICAgICAgY29tbWVudDogbnVsbCxcblxuICAgICAgICAgICAgICB0b0xydWRzOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogVW5pdGl6ZS5mZWV0KDUpLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBVbml0aXplLmZlZXQoNSksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmcm9tOiAnQUUxNCcsXG4gICAgICAgICAgICAgIHRvOiAnQUUxMycsXG4gICAgICAgICAgICAgIGtpbmQ6IEZyY3NTaG90S2luZC5Ob3JtYWwsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiBVbml0aXplLmZlZXQoMjYuOCksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMjg4KSxcbiAgICAgICAgICAgICAgYmFja3NpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDI4NiksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogVW5pdGl6ZS5kZWdyZWVzKC01MCksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uOiBudWxsLFxuICAgICAgICAgICAgICBleGNsdWRlRGlzdGFuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICBjb21tZW50OiBudWxsLFxuXG4gICAgICAgICAgICAgIHRvTHJ1ZHM6IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFVuaXRpemUuZmVldCg3KSxcbiAgICAgICAgICAgICAgICB1cDogVW5pdGl6ZS5mZWV0KDIwKSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoNSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmcm9tOiAnQUUxMycsXG4gICAgICAgICAgICAgIHRvOiAnQUUxMicsXG4gICAgICAgICAgICAgIGtpbmQ6IEZyY3NTaG90S2luZC5Ob3JtYWwsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiBVbml0aXplLmZlZXQoMjAuNyksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMjM2KSxcbiAgICAgICAgICAgICAgYmFja3NpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDIzNiksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogVW5pdGl6ZS5kZWdyZWVzKDM0KSxcbiAgICAgICAgICAgICAgYmFja3NpZ2h0SW5jbGluYXRpb246IG51bGwsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVEaXN0YW5jZTogZmFsc2UsXG4gICAgICAgICAgICAgIGNvbW1lbnQ6ICdTSE9SVCBDQU5ZT04gQVQgVEhFIEJBU0UgT0YgVEhFIFNFQ09ORCBEUk9QJyxcblxuICAgICAgICAgICAgICB0b0xydWRzOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogVW5pdGl6ZS5mZWV0KDMpLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBVbml0aXplLmZlZXQoNSksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg0KSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoNCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICAgIG5hbWU6ICdUUklDS1kgVFJBVkVSU0UgQU5EIFRIRU4gRklSU1QgU1VSVkVZIElOIFVQUEVSIENST1dMV0FZJyxcbiAgICAgICAgICAgIGNvbW1lbnQ6IG51bGwsXG4gICAgICAgICAgICBzZWN0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkYXRlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0ZWFtOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkaXN0YW5jZVVuaXQ6IExlbmd0aC5pbmNoZXMsXG4gICAgICAgICAgICBhemltdXRoVW5pdDogQW5nbGUuZGVncmVlcyxcbiAgICAgICAgICAgIGluY2xpbmF0aW9uVW5pdDogQW5nbGUuZGVncmVlcyxcbiAgICAgICAgICAgIGJhY2tzaWdodEF6aW11dGhDb3JyZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgYmFja3NpZ2h0SW5jbGluYXRpb25Db3JyZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgaGFzQmFja3NpZ2h0QXppbXV0aDogdHJ1ZSxcbiAgICAgICAgICAgIGhhc0JhY2tzaWdodEluY2xpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNob3RzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZyb206ICdBMScsXG4gICAgICAgICAgICAgIHRvOiAnQTInLFxuICAgICAgICAgICAgICBraW5kOiBGcmNzU2hvdEtpbmQuTm9ybWFsLFxuICAgICAgICAgICAgICBkaXN0YW5jZTogVW5pdGl6ZS5pbmNoZXMoNDggKiAxMiArIDEwKSxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcygyOTIpLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMTEwKSxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEluY2xpbmF0aW9uOiBVbml0aXplLmRlZ3JlZXMoLTQyKSxcbiAgICAgICAgICAgICAgYmFja3NpZ2h0SW5jbGluYXRpb246IG51bGwsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVEaXN0YW5jZTogZmFsc2UsXG4gICAgICAgICAgICAgIGNvbW1lbnQ6IG51bGwsXG4gICAgICAgICAgICAgIGZyb21McnVkczoge1xuICAgICAgICAgICAgICAgIGxlZnQ6IFVuaXRpemUuZmVldCgyKSxcbiAgICAgICAgICAgICAgICByaWdodDogVW5pdGl6ZS5mZWV0KDcpLFxuICAgICAgICAgICAgICAgIHVwOiBVbml0aXplLmZlZXQoMyksXG4gICAgICAgICAgICAgICAgZG93bjogVW5pdGl6ZS5mZWV0KDQuNSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRvTHJ1ZHM6IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBVbml0aXplLmZlZXQoNSksXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFVuaXRpemUuZmVldCgxMCksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgzNSksXG4gICAgICAgICAgICAgICAgZG93bjogVW5pdGl6ZS5mZWV0KDUpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZnJvbTogJ0EyJyxcbiAgICAgICAgICAgICAgdG86ICdBMycsXG4gICAgICAgICAgICAgIGtpbmQ6IEZyY3NTaG90S2luZC5Ob3JtYWwsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiBVbml0aXplLmluY2hlcygxMiAqIDEyICsgNSksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMzMzLjUpLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMTUzLjUpLFxuICAgICAgICAgICAgICBmcm9udHNpZ2h0SW5jbGluYXRpb246IFVuaXRpemUuZGVncmVlcygzNSksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uOiBudWxsLFxuICAgICAgICAgICAgICBleGNsdWRlRGlzdGFuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICBjb21tZW50OiBudWxsLFxuXG4gICAgICAgICAgICAgIHRvTHJ1ZHM6IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBVbml0aXplLmZlZXQoMyksXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFVuaXRpemUuZmVldCgxKSxcbiAgICAgICAgICAgICAgICB1cDogVW5pdGl6ZS5mZWV0KDE1KSxcbiAgICAgICAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoNSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmcm9tOiAnQTMnLFxuICAgICAgICAgICAgICB0bzogJ0E0JyxcbiAgICAgICAgICAgICAga2luZDogRnJjc1Nob3RLaW5kLk5vcm1hbCxcbiAgICAgICAgICAgICAgZGlzdGFuY2U6IFVuaXRpemUuaW5jaGVzKDQgKiAxMiArIDIpLFxuICAgICAgICAgICAgICBmcm9udHNpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDApLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMCksXG4gICAgICAgICAgICAgIGZyb250c2lnaHRJbmNsaW5hdGlvbjogVW5pdGl6ZS5kZWdyZWVzKDkwKSxcbiAgICAgICAgICAgICAgYmFja3NpZ2h0SW5jbGluYXRpb246IG51bGwsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVEaXN0YW5jZTogZmFsc2UsXG4gICAgICAgICAgICAgIGNvbW1lbnQ6IG51bGwsXG5cbiAgICAgICAgICAgICAgdG9McnVkczoge1xuICAgICAgICAgICAgICAgIGxlZnQ6IFVuaXRpemUuZmVldCgzKSxcbiAgICAgICAgICAgICAgICByaWdodDogVW5pdGl6ZS5mZWV0KDEpLFxuICAgICAgICAgICAgICAgIHVwOiBVbml0aXplLmZlZXQoMTApLFxuICAgICAgICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgxMCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICAgIGF6aW11dGhVbml0OiBBbmdsZS5kZWdyZWVzLFxuICAgICAgICAgICAgYmFja3NpZ2h0QXppbXV0aENvcnJlY3RlZDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uQ29ycmVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbW1lbnQ6IG51bGwsXG4gICAgICAgICAgICBkYXRlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkaXN0YW5jZVVuaXQ6IExlbmd0aC5mZWV0LFxuICAgICAgICAgICAgaGFzQmFja3NpZ2h0QXppbXV0aDogdHJ1ZSxcbiAgICAgICAgICAgIGhhc0JhY2tzaWdodEluY2xpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIGluY2xpbmF0aW9uVW5pdDogQW5nbGUuZGVncmVlcyxcbiAgICAgICAgICAgIG5hbWU6IFwiRE9VRydTIERFTUlTRSAoNTAgRlQgRFJPUCksIENIUklTIENST1NTLCBDUkFXTCBBQk9WRSBEUk9QXCIsXG4gICAgICAgICAgICBzZWN0aW9uOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0ZWFtOiB1bmRlZmluZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaG90czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiYWNrc2lnaHRBemltdXRoOiBVbml0aXplLmRlZ3JlZXMoMCksXG4gICAgICAgICAgICAgIGJhY2tzaWdodEluY2xpbmF0aW9uOiBudWxsLFxuICAgICAgICAgICAgICBjb21tZW50OiBudWxsLFxuICAgICAgICAgICAgICBkaXN0YW5jZTogVW5pdGl6ZS5mZWV0KDEzLjcpLFxuICAgICAgICAgICAgICBleGNsdWRlRGlzdGFuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICBmcm9tOiAnQjMwJyxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcygwKSxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEluY2xpbmF0aW9uOiBVbml0aXplLmRlZ3JlZXMoNDApLFxuICAgICAgICAgICAgICBraW5kOiAnICcsXG4gICAgICAgICAgICAgIHRvOiAnQjMxJyxcblxuICAgICAgICAgICAgICB0b0xydWRzOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogVW5pdGl6ZS5mZWV0KDIpLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBVbml0aXplLmZlZXQoNCksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg2KSxcbiAgICAgICAgICAgICAgICBkb3duOiBudWxsLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmFja3NpZ2h0QXppbXV0aDogVW5pdGl6ZS5kZWdyZWVzKDApLFxuICAgICAgICAgICAgICBiYWNrc2lnaHRJbmNsaW5hdGlvbjogbnVsbCxcbiAgICAgICAgICAgICAgY29tbWVudDogbnVsbCxcbiAgICAgICAgICAgICAgZGlzdGFuY2U6IFVuaXRpemUuZmVldCgxMy43KSxcbiAgICAgICAgICAgICAgZXhjbHVkZURpc3RhbmNlOiB0cnVlLFxuICAgICAgICAgICAgICBpc1NwbGF5OiB0cnVlLFxuICAgICAgICAgICAgICBmcm9tOiAnQjMwJyxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEF6aW11dGg6IFVuaXRpemUuZGVncmVlcygwKSxcbiAgICAgICAgICAgICAgZnJvbnRzaWdodEluY2xpbmF0aW9uOiBVbml0aXplLmRlZ3JlZXMoNDApLFxuICAgICAgICAgICAgICBraW5kOiAnICcsXG4gICAgICAgICAgICAgIHRvOiAnQjMwc3AnLFxuICAgICAgICAgICAgICB0b0xydWRzOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogVW5pdGl6ZS5mZWV0KDIpLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBVbml0aXplLmZlZXQoNCksXG4gICAgICAgICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg2KSxcbiAgICAgICAgICAgICAgICBkb3duOiBudWxsLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFOQTs7QUFRQSxJQUFBSyxlQUFRLEVBQUMscUJBQXFCLEVBQUUsTUFBTTtFQUNwQyxJQUFBQyxTQUFFLEVBQUMsWUFBWSxFQUFFLGtCQUFpQjtJQUNoQyxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQywwQkFBbUIsRUFBQ1IsT0FBTyxDQUFDUyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkUsSUFBQUMsWUFBTSxFQUFDSCxNQUFNLENBQUMsQ0FBQ0ksRUFBRSxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQztNQUMzQkMsSUFBSSxFQUFFLDBCQUEwQjtNQUNoQ0MsTUFBTSxFQUFFLEVBQUU7TUFDVkMsUUFBUSxFQUFFLGNBQWM7TUFDeEJDLEtBQUssRUFBRSxDQUNMO1FBQ0VDLE1BQU0sRUFBRTtVQUNOQyxJQUFJLEVBQ0YsbUVBQW1FO1VBQ3JFQyxPQUFPLEVBQUUsZ0RBQWdEO1VBQ3pEQyxPQUFPLEVBQUVDLFNBQVM7VUFDbEJDLElBQUksRUFBRUQsU0FBUztVQUNmRSxJQUFJLEVBQUVGLFNBQVM7VUFDZkcsWUFBWSxFQUFFQyxnQkFBTSxDQUFDQyxJQUFJO1VBQ3pCQyxXQUFXLEVBQUVDLGVBQUssQ0FBQ0MsT0FBTztVQUMxQkMsZUFBZSxFQUFFRixlQUFLLENBQUNDLE9BQU87VUFDOUJFLHlCQUF5QixFQUFF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
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- var _mocha = require("mocha");
4
- var _chai = require("chai");
5
- var _index = require("./index");
6
- var _unitized = require("@speleotica/unitized");
7
- (0, _mocha.describe)('parseFrcsTripSummaryFile', function () {
8
- (0, _mocha.it)('basic test', async function () {
9
- const parsed = await (0, _index.parseFrcsTripSummaryFile)(require.resolve('./STAT_sum.txt'));
10
- (0, _chai.expect)(parsed).to.deep.equal({
11
- errors: [],
12
- tripSummaries: [{
13
- tripNumber: 1,
14
- tripIndex: 0,
15
- date: new Date(81, 1, 15),
16
- totalLength: _unitized.Unitize.feet(258.6),
17
- numShots: 17,
18
- name: 'ENTRANCE DROPS, JOE\'S "I LOVE MY WIFE TRAVERSE", TRICKY TRAVERSE',
19
- excludedLength: _unitized.Unitize.feet(0),
20
- numExcludedShots: 0,
21
- team: ['Peter Quick', 'Keith Ortiz'],
22
- shots: ['A1', 'AD1-AD3', 'AE1', 'AE1 SIDE', 'AE9 SIDE', 'AE10-AE9', 'AE13 SIDE', 'AE15 SIDE', 'AE20-AE11']
23
- }, {
24
- tripNumber: 2,
25
- tripIndex: 1,
26
- date: new Date(81, 1, 14),
27
- totalLength: _unitized.Unitize.feet(1133.75),
28
- numShots: 55,
29
- name: 'TRICKY TRAVERSE AND THEN FIRST SURVEY IN UPPER CROWLWAY',
30
- excludedLength: _unitized.Unitize.feet(0),
31
- numExcludedShots: 0,
32
- team: ['Dan Crowl', 'Keith Ortiz', 'Chip Hopper', 'Peter Quick', 'Larry Bean'],
33
- shots: ['A1-A56']
34
- }, {
35
- tripNumber: 3,
36
- tripIndex: 2,
37
- date: new Date(81, 2, 6),
38
- totalLength: _unitized.Unitize.feet(2371.2),
39
- numShots: 61,
40
- name: "DOUG'S DEMISE (50 FT DROP), CHRIS CROSS, CRAWL ABOVE DROP",
41
- excludedLength: _unitized.Unitize.feet(0),
42
- numExcludedShots: 0,
43
- team: ['Peter Quick', 'Chris Gerace', 'Phil Oden', 'Chip Hopper'],
44
- shots: ['A13 SIDE', 'B1-B5', 'B2 SIDE', 'B3 SIDE', 'B6-B18', 'B17 SIDE', 'B19-B38', 'B32 SIDE', 'BS1-BS5', 'C1-C18']
45
- }]
46
- });
47
- });
48
- (0, _mocha.it)('old format', async function () {
49
- const parsed = await (0, _index.parseFrcsTripSummaryFile)(require.resolve('./STAT_sum_old.txt'));
50
- (0, _chai.expect)(parsed).to.deep.equal({
51
- errors: [],
52
- tripSummaries: [{
53
- tripNumber: 1,
54
- tripIndex: 0,
55
- date: new Date(81, 1, 15),
56
- totalLength: _unitized.Unitize.feet(258.6),
57
- numShots: 17,
58
- name: 'ENTRANCE DROPS, JOE\'S "I LOVE MY WIFE TRAVERSE", TRICKY TRAVERSE',
59
- excludedLength: _unitized.Unitize.feet(0),
60
- numExcludedShots: 0,
61
- team: ['Peter Quick', 'Keith Ortiz'],
62
- shots: ['A1', 'AD1-AD3', 'AE1', 'AE1 SIDE', 'AE9 SIDE', 'AE10-AE9', 'AE13 SIDE', 'AE15 SIDE', 'AE20-AE11']
63
- }, undefined, {
64
- tripNumber: 3,
65
- tripIndex: 2,
66
- date: new Date(81, 2, 6),
67
- totalLength: _unitized.Unitize.feet(2371.2),
68
- numShots: 61,
69
- name: "DOUG'S DEMISE (50 FT DROP), CHRIS CROSS, CRAWL ABOVE DROP",
70
- excludedLength: _unitized.Unitize.feet(0),
71
- numExcludedShots: 0,
72
- team: ['Peter Quick', 'Chris Gerace', 'Phil Oden', 'Chip Hopper'],
73
- shots: ['A13 SIDE', 'B1-B5', 'B2 SIDE', 'B3 SIDE', 'B6-B18', 'B17 SIDE', 'B19-B38', 'B32 SIDE', 'BS1-BS5', 'C1-C18']
74
- }]
75
- });
76
- });
77
- });
78
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9jaGEiLCJyZXF1aXJlIiwiX2NoYWkiLCJfaW5kZXgiLCJfdW5pdGl6ZWQiLCJkZXNjcmliZSIsIml0IiwicGFyc2VkIiwicGFyc2VGcmNzVHJpcFN1bW1hcnlGaWxlIiwicmVzb2x2ZSIsImV4cGVjdCIsInRvIiwiZGVlcCIsImVxdWFsIiwiZXJyb3JzIiwidHJpcFN1bW1hcmllcyIsInRyaXBOdW1iZXIiLCJ0cmlwSW5kZXgiLCJkYXRlIiwiRGF0ZSIsInRvdGFsTGVuZ3RoIiwiVW5pdGl6ZSIsImZlZXQiLCJudW1TaG90cyIsIm5hbWUiLCJleGNsdWRlZExlbmd0aCIsIm51bUV4Y2x1ZGVkU2hvdHMiLCJ0ZWFtIiwic2hvdHMiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbm9kZS9wYXJzZUZyY3NUcmlwU3VtbWFyeUZpbGUuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgaXQgfSBmcm9tICdtb2NoYSdcbmltcG9ydCB7IGV4cGVjdCB9IGZyb20gJ2NoYWknXG5pbXBvcnQgeyBwYXJzZUZyY3NUcmlwU3VtbWFyeUZpbGUgfSBmcm9tICcuL2luZGV4J1xuaW1wb3J0IHsgVW5pdGl6ZSB9IGZyb20gJ0BzcGVsZW90aWNhL3VuaXRpemVkJ1xuXG5kZXNjcmliZSgncGFyc2VGcmNzVHJpcFN1bW1hcnlGaWxlJywgZnVuY3Rpb24oKSB7XG4gIGl0KCdiYXNpYyB0ZXN0JywgYXN5bmMgZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgcGFyc2VkID0gYXdhaXQgcGFyc2VGcmNzVHJpcFN1bW1hcnlGaWxlKFxuICAgICAgcmVxdWlyZS5yZXNvbHZlKCcuL1NUQVRfc3VtLnR4dCcpXG4gICAgKVxuICAgIGV4cGVjdChwYXJzZWQpLnRvLmRlZXAuZXF1YWwoe1xuICAgICAgZXJyb3JzOiBbXSxcbiAgICAgIHRyaXBTdW1tYXJpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgICAgdHJpcEluZGV4OiAwLFxuICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKDgxLCAxLCAxNSksXG4gICAgICAgICAgdG90YWxMZW5ndGg6IFVuaXRpemUuZmVldCgyNTguNiksXG4gICAgICAgICAgbnVtU2hvdHM6IDE3LFxuICAgICAgICAgIG5hbWU6XG4gICAgICAgICAgICAnRU5UUkFOQ0UgRFJPUFMsIEpPRVxcJ1MgXCJJIExPVkUgTVkgV0lGRSBUUkFWRVJTRVwiLCBUUklDS1kgVFJBVkVSU0UnLFxuICAgICAgICAgIGV4Y2x1ZGVkTGVuZ3RoOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgbnVtRXhjbHVkZWRTaG90czogMCxcbiAgICAgICAgICB0ZWFtOiBbJ1BldGVyIFF1aWNrJywgJ0tlaXRoIE9ydGl6J10sXG4gICAgICAgICAgc2hvdHM6IFtcbiAgICAgICAgICAgICdBMScsXG4gICAgICAgICAgICAnQUQxLUFEMycsXG4gICAgICAgICAgICAnQUUxJyxcbiAgICAgICAgICAgICdBRTEgU0lERScsXG4gICAgICAgICAgICAnQUU5IFNJREUnLFxuICAgICAgICAgICAgJ0FFMTAtQUU5JyxcbiAgICAgICAgICAgICdBRTEzIFNJREUnLFxuICAgICAgICAgICAgJ0FFMTUgU0lERScsXG4gICAgICAgICAgICAnQUUyMC1BRTExJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHJpcE51bWJlcjogMixcbiAgICAgICAgICB0cmlwSW5kZXg6IDEsXG4gICAgICAgICAgZGF0ZTogbmV3IERhdGUoODEsIDEsIDE0KSxcbiAgICAgICAgICB0b3RhbExlbmd0aDogVW5pdGl6ZS5mZWV0KDExMzMuNzUpLFxuICAgICAgICAgIG51bVNob3RzOiA1NSxcbiAgICAgICAgICBuYW1lOiAnVFJJQ0tZIFRSQVZFUlNFIEFORCBUSEVOIEZJUlNUIFNVUlZFWSBJTiBVUFBFUiBDUk9XTFdBWScsXG4gICAgICAgICAgZXhjbHVkZWRMZW5ndGg6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBudW1FeGNsdWRlZFNob3RzOiAwLFxuICAgICAgICAgIHRlYW06IFtcbiAgICAgICAgICAgICdEYW4gQ3Jvd2wnLFxuICAgICAgICAgICAgJ0tlaXRoIE9ydGl6JyxcbiAgICAgICAgICAgICdDaGlwIEhvcHBlcicsXG4gICAgICAgICAgICAnUGV0ZXIgUXVpY2snLFxuICAgICAgICAgICAgJ0xhcnJ5IEJlYW4nLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc2hvdHM6IFsnQTEtQTU2J10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0cmlwTnVtYmVyOiAzLFxuICAgICAgICAgIHRyaXBJbmRleDogMixcbiAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSg4MSwgMiwgNiksXG4gICAgICAgICAgdG90YWxMZW5ndGg6IFVuaXRpemUuZmVldCgyMzcxLjIpLFxuICAgICAgICAgIG51bVNob3RzOiA2MSxcbiAgICAgICAgICBuYW1lOiBcIkRPVUcnUyBERU1JU0UgKDUwIEZUIERST1ApLCBDSFJJUyBDUk9TUywgQ1JBV0wgQUJPVkUgRFJPUFwiLFxuICAgICAgICAgIGV4Y2x1ZGVkTGVuZ3RoOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgbnVtRXhjbHVkZWRTaG90czogMCxcbiAgICAgICAgICB0ZWFtOiBbJ1BldGVyIFF1aWNrJywgJ0NocmlzIEdlcmFjZScsICdQaGlsIE9kZW4nLCAnQ2hpcCBIb3BwZXInXSxcbiAgICAgICAgICBzaG90czogW1xuICAgICAgICAgICAgJ0ExMyBTSURFJyxcbiAgICAgICAgICAgICdCMS1CNScsXG4gICAgICAgICAgICAnQjIgU0lERScsXG4gICAgICAgICAgICAnQjMgU0lERScsXG4gICAgICAgICAgICAnQjYtQjE4JyxcbiAgICAgICAgICAgICdCMTcgU0lERScsXG4gICAgICAgICAgICAnQjE5LUIzOCcsXG4gICAgICAgICAgICAnQjMyIFNJREUnLFxuICAgICAgICAgICAgJ0JTMS1CUzUnLFxuICAgICAgICAgICAgJ0MxLUMxOCcsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfSlcbiAgaXQoJ29sZCBmb3JtYXQnLCBhc3luYyBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCBwYXJzZUZyY3NUcmlwU3VtbWFyeUZpbGUoXG4gICAgICByZXF1aXJlLnJlc29sdmUoJy4vU1RBVF9zdW1fb2xkLnR4dCcpXG4gICAgKVxuICAgIGV4cGVjdChwYXJzZWQpLnRvLmRlZXAuZXF1YWwoe1xuICAgICAgZXJyb3JzOiBbXSxcbiAgICAgIHRyaXBTdW1tYXJpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgICAgdHJpcEluZGV4OiAwLFxuICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKDgxLCAxLCAxNSksXG4gICAgICAgICAgdG90YWxMZW5ndGg6IFVuaXRpemUuZmVldCgyNTguNiksXG4gICAgICAgICAgbnVtU2hvdHM6IDE3LFxuICAgICAgICAgIG5hbWU6XG4gICAgICAgICAgICAnRU5UUkFOQ0UgRFJPUFMsIEpPRVxcJ1MgXCJJIExPVkUgTVkgV0lGRSBUUkFWRVJTRVwiLCBUUklDS1kgVFJBVkVSU0UnLFxuICAgICAgICAgIGV4Y2x1ZGVkTGVuZ3RoOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgbnVtRXhjbHVkZWRTaG90czogMCxcbiAgICAgICAgICB0ZWFtOiBbJ1BldGVyIFF1aWNrJywgJ0tlaXRoIE9ydGl6J10sXG4gICAgICAgICAgc2hvdHM6IFtcbiAgICAgICAgICAgICdBMScsXG4gICAgICAgICAgICAnQUQxLUFEMycsXG4gICAgICAgICAgICAnQUUxJyxcbiAgICAgICAgICAgICdBRTEgU0lERScsXG4gICAgICAgICAgICAnQUU5IFNJREUnLFxuICAgICAgICAgICAgJ0FFMTAtQUU5JyxcbiAgICAgICAgICAgICdBRTEzIFNJREUnLFxuICAgICAgICAgICAgJ0FFMTUgU0lERScsXG4gICAgICAgICAgICAnQUUyMC1BRTExJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHtcbiAgICAgICAgICB0cmlwTnVtYmVyOiAzLFxuICAgICAgICAgIHRyaXBJbmRleDogMixcbiAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSg4MSwgMiwgNiksXG4gICAgICAgICAgdG90YWxMZW5ndGg6IFVuaXRpemUuZmVldCgyMzcxLjIpLFxuICAgICAgICAgIG51bVNob3RzOiA2MSxcbiAgICAgICAgICBuYW1lOiBcIkRPVUcnUyBERU1JU0UgKDUwIEZUIERST1ApLCBDSFJJUyBDUk9TUywgQ1JBV0wgQUJPVkUgRFJPUFwiLFxuICAgICAgICAgIGV4Y2x1ZGVkTGVuZ3RoOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgbnVtRXhjbHVkZWRTaG90czogMCxcbiAgICAgICAgICB0ZWFtOiBbJ1BldGVyIFF1aWNrJywgJ0NocmlzIEdlcmFjZScsICdQaGlsIE9kZW4nLCAnQ2hpcCBIb3BwZXInXSxcbiAgICAgICAgICBzaG90czogW1xuICAgICAgICAgICAgJ0ExMyBTSURFJyxcbiAgICAgICAgICAgICdCMS1CNScsXG4gICAgICAgICAgICAnQjIgU0lERScsXG4gICAgICAgICAgICAnQjMgU0lERScsXG4gICAgICAgICAgICAnQjYtQjE4JyxcbiAgICAgICAgICAgICdCMTcgU0lERScsXG4gICAgICAgICAgICAnQjE5LUIzOCcsXG4gICAgICAgICAgICAnQjMyIFNJREUnLFxuICAgICAgICAgICAgJ0JTMS1CUzUnLFxuICAgICAgICAgICAgJ0MxLUMxOCcsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxH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
@@ -1,135 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = parseFrcsPlotFile;
7
- var _unitized = require("@speleotica/unitized");
8
- var _parseSegment = require("parse-segment");
9
- /**
10
- * Parses data from a calculated survey file. These look like so:
11
- <pre> 123.182259
12
- AE20 1 1 0 0 0 153 -257 -51 85 0 20 1
13
- AE19 1 2 653 402 -548 1046 -587 -174 97 0 200 1
14
- AE18 2 3 669 449 -3002 995 94 -597 -56 250 0 1
15
- AE17 3 4 539 1217 -2770 497 47 -298 -28 0 0 1
16
- AE16 4 5 544 1230 -3441 411 -284 -246 170 60 10 1
17
- AE15 5 6 1679 1663 -3833 0 0 -282 283 20 10 1
18
- AE14 6 7 2026 2617 -3730 446 225 -446 -225 0 30 1
19
- AE13 7 8 391 3152 -5788 -111 691 0 0 200 50 1
20
- AE12 8 9 -1019 2175 -4630 -369 336 221 -201 40 40 1
21
- AE11 9 10 -1516 1289 -3919 -348 195 610 -342 50 10 1</pre>
22
- */
23
- async function parseFrcsPlotFile(file, lines) {
24
- let totalLength = _unitized.Unitize.feet(NaN);
25
- const shots = [];
26
- const errors = [];
27
- let lineNumber = 0;
28
- const error = (message, line, startColumn, endColumn) => {
29
- errors.push(new _parseSegment.SegmentParseError(message, new _parseSegment.Segment({
30
- value: line,
31
- source: file,
32
- startLine: lineNumber - 1,
33
- startCol: 0
34
- }).substring(startColumn, endColumn)));
35
- };
36
- function parseUint(line, startColumn, endColumn, fieldName) {
37
- const str = line.substring(startColumn, endColumn);
38
- if (!/\S/.test(str)) {
39
- error(`Missing ${fieldName}`, line, startColumn, endColumn);
40
- return null;
41
- }
42
- if (!/^\s*\d+\s*$/.test(str)) {
43
- error(`Invalid ${fieldName}`, line, startColumn, endColumn);
44
- return null;
45
- }
46
- return parseInt(str);
47
- }
48
- function parseOptionalUint(line, startColumn, endColumn, fieldName) {
49
- const str = line.substring(startColumn, endColumn);
50
- if (!/\S/.test(str)) {
51
- return null;
52
- }
53
- if (!/^\s*\d+\s*$/.test(str)) {
54
- error(`Invalid ${fieldName}`, line, startColumn, endColumn);
55
- return null;
56
- }
57
- return parseInt(str);
58
- }
59
- function parseLength(line, startColumn, endColumn, fieldName, divisor) {
60
- const str = line.substring(startColumn, endColumn);
61
- if (!/^\s*-?\d+\s*$/.test(str)) {
62
- error(`Invalid ${fieldName}`, line, startColumn, endColumn);
63
- return null;
64
- }
65
- const value = parseFloat(str);
66
- if (isNaN(value)) {
67
- error(`Missing ${fieldName}`, line, startColumn, endColumn);
68
- return null;
69
- }
70
- return _unitized.Unitize.feet(value / divisor);
71
- }
72
- for await (const line of lines) {
73
- lineNumber++;
74
- if (lineNumber === 1) {
75
- totalLength = _unitized.Unitize.feet(parseFloat(line));
76
- continue;
77
- }
78
- if (!/\S/.test(line)) continue;
79
- const toName = line.substring(0, 6).trim();
80
- if (!toName) {
81
- error('Invalid to station name', line, 0, 6);
82
- continue;
83
- }
84
- if (/[^ S]/.test(line[6])) {
85
- error('Invalid flag', line, 6, 7);
86
- continue;
87
- }
88
- const isSurface = line[6] === 'S';
89
- const fromNumber = parseUint(line, 7, 12, 'from station number');
90
- if (fromNumber == null) continue;
91
- const toNumber = parseUint(line, 12, 17, 'to station number');
92
- if (toNumber == null) continue;
93
- const easting = parseLength(line, 17, 25, 'easting', 100);
94
- if (!easting) continue;
95
- const northing = parseLength(line, 25, 33, 'northing', 100);
96
- if (!northing) continue;
97
- const elevation = parseLength(line, 33, 40, 'elevation', 100);
98
- if (!elevation) continue;
99
- const leftEasting = parseLength(line, 40, 46, 'left wall easting', 100);
100
- if (!leftEasting) continue;
101
- const leftNorthing = parseLength(line, 46, 52, 'left wall northing', 100);
102
- if (!leftNorthing) continue;
103
- const rightEasting = parseLength(line, 52, 58, 'right wall easting', 100);
104
- if (!rightEasting) continue;
105
- const rightNorthing = parseLength(line, 58, 64, 'right wall northing', 100);
106
- if (!rightNorthing) continue;
107
- const up = parseLength(line, 64, 68, 'up', 10);
108
- if (!up) continue;
109
- const down = parseLength(line, 68, 72, 'down', 10);
110
- if (!down) continue;
111
- const tripNumber = parseOptionalUint(line, 72, 78, 'trip number');
112
- shots.push({
113
- toName,
114
- isSurface,
115
- fromNumber,
116
- toNumber,
117
- easting,
118
- northing,
119
- elevation,
120
- leftEasting,
121
- leftNorthing,
122
- rightEasting,
123
- rightNorthing,
124
- up,
125
- down,
126
- tripNumber
127
- });
128
- }
129
- return {
130
- totalLength,
131
- shots,
132
- errors
133
- };
134
- }
135
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdW5pdGl6ZWQiLCJyZXF1aXJlIiwiX3BhcnNlU2VnbWVudCIsInBhcnNlRnJjc1Bsb3RGaWxlIiwiZmlsZSIsImxpbmVzIiwidG90YWxMZW5ndGgiLCJVbml0aXplIiwiZmVldCIsIk5hTiIsInNob3RzIiwiZXJyb3JzIiwibGluZU51bWJlciIsImVycm9yIiwibWVzc2FnZSIsImxpbmUiLCJzdGFydENvbHVtbiIsImVuZENvbHVtbiIsInB1c2giLCJTZWdtZW50UGFyc2VFcnJvciIsIlNlZ21lbnQiLCJ2YWx1ZSIsInNvdXJjZSIsInN0YXJ0TGluZSIsInN0YXJ0Q29sIiwic3Vic3RyaW5nIiwicGFyc2VVaW50IiwiZmllbGROYW1lIiwic3RyIiwidGVzdCIsInBhcnNlSW50IiwicGFyc2VPcHRpb25hbFVpbnQiLCJwYXJzZUxlbmd0aCIsImRpdmlzb3IiLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJ0b05hbWUiLCJ0cmltIiwiaXNTdXJmYWNlIiwiZnJvbU51bWJlciIsInRvTnVtYmVyIiwiZWFzdGluZyIsIm5vcnRoaW5nIiwiZWxldmF0aW9uIiwibGVmdEVhc3RpbmciLCJsZWZ0Tm9ydGhpbmciLCJyaWdodEVhc3RpbmciLCJyaWdodE5vcnRoaW5nIiwidXAiLCJkb3duIiwidHJpcE51bWJlciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZUZyY3NQbG90RmlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGcmNzUGxvdFNob3QgfSBmcm9tICcuL0ZyY3NQbG90U2hvdCdcbmltcG9ydCB7IEZyY3NQbG90RmlsZSB9IGZyb20gJy4vRnJjc1Bsb3RGaWxlJ1xuaW1wb3J0IHsgTGVuZ3RoLCBVbml0aXplZE51bWJlciwgVW5pdGl6ZSB9IGZyb20gJ0BzcGVsZW90aWNhL3VuaXRpemVkJ1xuaW1wb3J0IHsgU2VnbWVudCwgU2VnbWVudFBhcnNlRXJyb3IgfSBmcm9tICdwYXJzZS1zZWdtZW50J1xuXG4vKipcbiAqIFBhcnNlcyBkYXRhIGZyb20gYSBjYWxjdWxhdGVkIHN1cnZleSBmaWxlLiAgVGhlc2UgbG9vayBsaWtlIHNvOlxuPHByZT4gIDEyMy4xODIyNTlcbiAgQUUyMCAgICAgMSAgICAxICAgICAgIDAgICAgICAgMCAgICAgIDAgICAxNTMgIC0yNTcgICAtNTEgICAgODUgICAwICAyMCAgICAgMVxuICBBRTE5ICAgICAxICAgIDIgICAgIDY1MyAgICAgNDAyICAgLTU0OCAgMTA0NiAgLTU4NyAgLTE3NCAgICA5NyAgIDAgMjAwICAgICAxXG4gIEFFMTggICAgIDIgICAgMyAgICAgNjY5ICAgICA0NDkgIC0zMDAyICAgOTk1ICAgIDk0ICAtNTk3ICAgLTU2IDI1MCAgIDAgICAgIDFcbiAgQUUxNyAgICAgMyAgICA0ICAgICA1MzkgICAgMTIxNyAgLTI3NzAgICA0OTcgICAgNDcgIC0yOTggICAtMjggICAwICAgMCAgICAgMVxuICBBRTE2ICAgICA0ICAgIDUgICAgIDU0NCAgICAxMjMwICAtMzQ0MSAgIDQxMSAgLTI4NCAgLTI0NiAgIDE3MCAgNjAgIDEwICAgICAxXG4gIEFFMTUgICAgIDUgICAgNiAgICAxNjc5ICAgIDE2NjMgIC0zODMzICAgICAwICAgICAwICAtMjgyICAgMjgzICAyMCAgMTAgICAgIDFcbiAgQUUxNCAgICAgNiAgICA3ICAgIDIwMjYgICAgMjYxNyAgLTM3MzAgICA0NDYgICAyMjUgIC00NDYgIC0yMjUgICAwICAzMCAgICAgMVxuICBBRTEzICAgICA3ICAgIDggICAgIDM5MSAgICAzMTUyICAtNTc4OCAgLTExMSAgIDY5MSAgICAgMCAgICAgMCAyMDAgIDUwICAgICAxXG4gIEFFMTIgICAgIDggICAgOSAgIC0xMDE5ICAgIDIxNzUgIC00NjMwICAtMzY5ICAgMzM2ICAgMjIxICAtMjAxICA0MCAgNDAgICAgIDFcbiAgQUUxMSAgICAgOSAgIDEwICAgLTE1MTYgICAgMTI4OSAgLTM5MTkgIC0zNDggICAxOTUgICA2MTAgIC0zNDIgIDUwICAxMCAgICAgMTwvcHJlPlxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBwYXJzZUZyY3NQbG90RmlsZShcbiAgZmlsZTogc3RyaW5nLFxuICBsaW5lczogQXN5bmNJdGVyYWJsZTxzdHJpbmc+XG4pOiBQcm9taXNlPEZyY3NQbG90RmlsZT4ge1xuICBsZXQgdG90YWxMZW5ndGg6IFVuaXRpemVkTnVtYmVyPExlbmd0aD4gPSBVbml0aXplLmZlZXQoTmFOKVxuICBjb25zdCBzaG90czogQXJyYXk8RnJjc1Bsb3RTaG90PiA9IFtdXG4gIGNvbnN0IGVycm9yczogQXJyYXk8U2VnbWVudFBhcnNlRXJyb3I+ID0gW11cblxuICBsZXQgbGluZU51bWJlciA9IDBcblxuICBjb25zdCBlcnJvciA9IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgbGluZTogc3RyaW5nLFxuICAgIHN0YXJ0Q29sdW1uOiBudW1iZXIsXG4gICAgZW5kQ29sdW1uOiBudW1iZXJcbiAgKTogdm9pZCA9PiB7XG4gICAgZXJyb3JzLnB1c2goXG4gICAgICBuZXcgU2VnbWVudFBhcnNlRXJyb3IoXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIG5ldyBTZWdtZW50KHtcbiAgICAgICAgICB2YWx1ZTogbGluZSxcbiAgICAgICAgICBzb3VyY2U6IGZpbGUsXG4gICAgICAgICAgc3RhcnRMaW5lOiBsaW5lTnVtYmVyIC0gMSxcbiAgICAgICAgICBzdGFydENvbDogMCxcbiAgICAgICAgfSkuc3Vic3RyaW5nKHN0YXJ0Q29sdW1uLCBlbmRDb2x1bW4pXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgZnVuY3Rpb24gcGFyc2VVaW50KFxuICAgIGxpbmU6IHN0cmluZyxcbiAgICBzdGFydENvbHVtbjogbnVtYmVyLFxuICAgIGVuZENvbHVtbjogbnVtYmVyLFxuICAgIGZpZWxkTmFtZTogc3RyaW5nXG4gICk6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IHN0ciA9IGxpbmUuc3Vic3RyaW5nKHN0YXJ0Q29sdW1uLCBlbmRDb2x1bW4pXG4gICAgaWYgKCEvXFxTLy50ZXN0KHN0cikpIHtcbiAgICAgIGVycm9yKGBNaXNzaW5nICR7ZmllbGROYW1lfWAsIGxpbmUsIHN0YXJ0Q29sdW1uLCBlbmRDb2x1bW4pXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBpZiAoIS9eXFxzKlxcZCtcXHMqJC8udGVzdChzdHIpKSB7XG4gICAgICBlcnJvcihgSW52YWxpZCAke2ZpZWxkTmFtZX1gLCBsaW5lLCBzdGFydENvbHVtbiwgZW5kQ29sdW1uKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlSW50KHN0cilcbiAgfVxuXG4gIGZ1bmN0aW9uIHBhcnNlT3B0aW9uYWxVaW50KFxuICAgIGxpbmU6IHN0cmluZyxcbiAgICBzdGFydENvbHVtbjogbnVtYmVyLFxuICAgIGVuZENvbHVtbjogbnVtYmVyLFxuICAgIGZpZWxkTmFtZTogc3RyaW5nXG4gICk6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IHN0ciA9IGxpbmUuc3Vic3RyaW5nKHN0YXJ0Q29sdW1uLCBlbmRDb2x1bW4pXG4gICAgaWYgKCEvXFxTLy50ZXN0KHN0cikpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGlmICghL15cXHMqXFxkK1xccyokLy50ZXN0KHN0cikpIHtcbiAgICAgIGVycm9yKGBJbnZhbGlkICR7ZmllbGROYW1lfWAsIGxpbmUsIHN0YXJ0Q29sdW1uLCBlbmRDb2x1bW4pXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gcGFyc2VJbnQoc3RyKVxuICB9XG5cbiAgZnVuY3Rpb24gcGFyc2VMZW5ndGgoXG4gICAgbGluZTogc3RyaW5nLFxuICAgIHN0YXJ0Q29sdW1uOiBudW1iZXIsXG4gICAgZW5kQ29sdW1uOiBudW1iZXIsXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgZGl2aXNvcjogbnVtYmVyXG4gICk6IFVuaXRpemVkTnVtYmVyPExlbmd0aD4gfCBudWxsIHtcbiAgICBjb25zdCBzdHIgPSBsaW5lLnN1YnN0cmluZyhzdGFydENvbHVtbiwgZW5kQ29sdW1uKVxuICAgIGlmICghL15cXHMqLT9cXGQrXFxzKiQvLnRlc3Qoc3RyKSkge1xuICAgICAgZXJyb3IoYEludmFsaWQgJHtmaWVsZE5hbWV9YCwgbGluZSwgc3RhcnRDb2x1bW4sIGVuZENvbHVtbilcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gcGFyc2VGbG9hdChzdHIpXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgZXJyb3IoYE1pc3NpbmcgJHtmaWVsZE5hbWV9YCwgbGluZSwgc3RhcnRDb2x1bW4sIGVuZENvbHVtbilcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiBVbml0aXplLmZlZXQodmFsdWUgLyBkaXZpc29yKVxuICB9XG5cbiAgZm9yIGF3YWl0IChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgbGluZU51bWJlcisrXG4gICAgaWYgKGxpbmVOdW1iZXIgPT09IDEpIHtcbiAgICAgIHRvdGFsTGVuZ3RoID0gVW5pdGl6ZS5mZWV0KHBhcnNlRmxvYXQobGluZSkpXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoIS9cXFMvLnRlc3QobGluZSkpIGNvbnRpbnVlXG4gICAgY29uc3QgdG9OYW1lID0gbGluZS5zdWJzdHJpbmcoMCwgNikudHJpbSgpXG4gICAgaWYgKCF0b05hbWUpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIHRvIHN0YXRpb24gbmFtZScsIGxpbmUsIDAsIDYpXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoL1teIFNdLy50ZXN0KGxpbmVbNl0pKSB7XG4gICAgICBlcnJvcignSW52YWxpZCBmbGFnJywgbGluZSwgNiwgNylcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGlzU3VyZmFjZSA9IGxpbmVbNl0gPT09ICdTJ1xuICAgIGNvbnN0IGZyb21OdW1iZXIgPSBwYXJzZVVpbnQobGluZSwgNywgMTIsICdmcm9tIHN0YXRpb24gbnVtYmVyJylcbiAgICBpZiAoZnJvbU51bWJlciA9PSBudWxsKSBjb250aW51ZVxuICAgIGNvbnN0IHRvTnVtYmVyID0gcGFyc2VVaW50KGxpbmUsIDEyLCAxNywgJ3RvIHN0YXRpb24gbnVtYmVyJylcbiAgICBpZiAodG9OdW1iZXIgPT0gbnVsbCkgY29udGludWVcbiAgICBjb25zdCBlYXN0aW5nID0gcGFyc2VMZW5ndGgobGluZSwgMTcsIDI1LCAnZWFzdGluZycsIDEwMClcbiAgICBpZiAoIWVhc3RpbmcpIGNvbnRpbnVlXG4gICAgY29uc3Qgbm9ydGhpbmcgPSBwYXJzZUxlbmd0aChsaW5lLCAyNSwgMzMsICdub3J0aGluZycsIDEwMClcbiAgICBpZiAoIW5vcnRoaW5nKSBjb250aW51ZVxuICAgIGNvbnN0IGVsZXZhdGlvbiA9IHBhcnNlTGVuZ3RoKGxpbmUsIDMzLCA0MCwgJ2VsZXZhdGlvbicsIDEwMClcbiAgICBpZiAoIWVsZXZhdGlvbikgY29udGludWVcbiAgICBjb25zdCBsZWZ0RWFzdGluZyA9IHBhcnNlTGVuZ3RoKGxpbmUsIDQwLCA0NiwgJ2xlZnQgd2FsbCBlYXN0aW5nJywgMTAwKVxuICAgIGlmICghbGVmdEVhc3RpbmcpIGNvbnRpbnVlXG4gICAgY29uc3QgbGVmdE5vcnRoaW5nID0gcGFyc2VMZW5ndGgobGluZSwgNDYsIDUyLCAnbGVmdCB3YWxsIG5vcnRoaW5nJywgMTAwKVxuICAgIGlmICghbGVmdE5vcnRoaW5nKSBjb250aW51ZVxuICAgIGNvbnN0IHJpZ2h0RWFzdGluZyA9IHBhcnNlTGVuZ3RoKGxpbmUsIDUyLCA1OCwgJ3JpZ2h0IHdhbGwgZWFzdGluZycsIDEwMClcbiAgICBpZiAoIXJpZ2h0RWFzdGluZykgY29udGludWVcbiAgICBjb25zdCByaWdodE5vcnRoaW5nID0gcGFyc2VMZW5ndGgobGluZSwgNTgsIDY0LCAncmlnaHQgd2FsbCBub3J0aGluZycsIDEwMClcbiAgICBpZiAoIXJpZ2h0Tm9ydGhpbmcpIGNvbnRpbnVlXG4gICAgY29uc3QgdXAgPSBwYXJzZUxlbmd0aChsaW5lLCA2NCwgNjgsICd1cCcsIDEwKVxuICAgIGlmICghdXApIGNvbnRpbnVlXG4gICAgY29uc3QgZG93biA9IHBhcnNlTGVuZ3RoKGxpbmUsIDY4LCA3MiwgJ2Rvd24nLCAxMClcbiAgICBpZiAoIWRvd24pIGNvbnRpbnVlXG4gICAgY29uc3QgdHJpcE51bWJlciA9IHBhcnNlT3B0aW9uYWxVaW50KGxpbmUsIDcyLCA3OCwgJ3RyaXAgbnVtYmVyJylcblxuICAgIHNob3RzLnB1c2goe1xuICAgICAgdG9OYW1lLFxuICAgICAgaXNTdXJmYWNlLFxuICAgICAgZnJvbU51bWJlcixcbiAgICAgIHRvTnVtYmVyLFxuICAgICAgZWFzdGluZyxcbiAgICAgIG5vcnRoaW5nLFxuICAgICAgZWxldmF0aW9uLFxuICAgICAgbGVmdEVhc3RpbmcsXG4gICAgICBsZWZ0Tm9ydGhpbmcsXG4gICAgICByaWdodEVhc3RpbmcsXG4gICAgICByaWdodE5vcnRoaW5nLFxuICAgICAgdXAsXG4gICAgICBkb3duLFxuICAgICAgdHJpcE51bWJlcixcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3RhbExlbmd0aCxcbiAgICBzaG90cyxcbiAgICBlcnJvcnMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLGVBQWVFLGlCQUFpQkEsQ0FDN0NDLElBQVksRUFDWkMsS0FBNEIsRUFDTDtFQUN2QixJQUFJQyxXQUFtQyxHQUFHQyxpQkFBTyxDQUFDQyxJQUFJLENBQUNDLEdBQUcsQ0FBQztFQUMzRCxNQUFNQyxLQUEwQixHQUFHLEVBQUU7RUFDckMsTUFBTUMsTUFBZ0MsR0FBRyxFQUFFO0VBRTNDLElBQUlDLFVBQVUsR0FBRyxDQUFDO0VBRWxCLE1BQU1DLEtBQUssR0FBR0EsQ0FDWkMs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