@rushstack/rush-http-build-cache-plugin 5.97.1 → 5.98.0

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 (53) hide show
  1. package/.heft/build-cache/jest-cache/haste-map-bae913f9b9aa720eb4deeae0a60a4b27-22ae7f4ce9de4306889d8c05e5cc39b9-f6b1af01a3130057bdfe3d86807211f9 +0 -0
  2. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{9d/commons_9d513d1d600f9112f73547da918dcbb7 → 2e/commons_2e52897dfe4222d991674613f5b35882} +356 -314
  3. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/34/PrefixProxyTerminalProvider_34b4603b9c4455de1c3cc05820149fdd +65 -0
  4. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{53/index_53d9d5a344c3984994c801733764f503 → 46/index_46761981528d09d1a0e438f06cd2c548} +6 -2
  5. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{06/ConfigurationFile_06d7f35feb0bd944d9b9a2a4d9e112c8 → 57/ConfigurationFile_57c950e8ef4673e11bff94304a50823c} +10 -4
  6. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{68/rushlib_68c59fa059ba441c9c6883bcfed4a8d2 → 69/rushlib_695f6e29167e91482e2906a8d09b3a5a} +17 -6
  7. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/HttpBuildCacheProvidertest_8a1598e1f1b42d6933964acfb7612893 +116 -0
  8. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/HttpBuildCacheProvidertest_8a1598e1f1b42d6933964acfb7612893.map +1 -0
  9. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a3/RushHttpBuildCachePlugin_a3e8a9bb172ff361907e770dcf3268be +1551 -0
  10. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a3/RushHttpBuildCachePlugin_a3e8a9bb172ff361907e770dcf3268be.map +1 -0
  11. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ba/TerminalWritable_ba71b4b7bfe6a26c85f4fd0245057a0a +54 -0
  12. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{5d/Text_5da85b5db9a2f06bbe29cdcd91e6fbca → df/Text_df57ddd200e4237e617fc183dcb5fe67} +7 -1
  13. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ec/HttpBuildCacheProvider_ecceab34e8340fa24dde11b618ffa8a4 +4668 -0
  14. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ec/HttpBuildCacheProvider_ecceab34e8340fa24dde11b618ffa8a4.map +1 -0
  15. package/.heft/build-cache/jest-cache/perf-cache-bae913f9b9aa720eb4deeae0a60a4b27-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
  16. package/.rush/temp/operation/_phase_build/state.json +1 -1
  17. package/.rush/temp/operation/_phase_test/all.log +14 -14
  18. package/.rush/temp/operation/_phase_test/state.json +1 -1
  19. package/.rush/temp/package-deps__phase_build.json +3 -3
  20. package/.rush/temp/package-deps__phase_test.json +3 -3
  21. package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_build-646439b80a2010050f5b4b8a916e50afae04c3ab.log → rushstack+rush-http-build-cache-plugin-_phase_build-08118e08afc6d454e5623f20498fd64b5e3e9051.log} +2 -2
  22. package/lib/HttpBuildCacheProvider.d.ts +2 -0
  23. package/lib/HttpBuildCacheProvider.d.ts.map +1 -1
  24. package/lib/HttpBuildCacheProvider.js +26 -7
  25. package/lib/HttpBuildCacheProvider.js.map +1 -1
  26. package/lib/RushHttpBuildCachePlugin.d.ts.map +1 -1
  27. package/lib/RushHttpBuildCachePlugin.js +28 -4
  28. package/lib/RushHttpBuildCachePlugin.js.map +1 -1
  29. package/lib/test/HttpBuildCacheProvider.test.d.ts.map +1 -0
  30. package/lib/{HttpBuildCacheProvider.test.js → test/HttpBuildCacheProvider.test.js} +46 -3
  31. package/lib/test/HttpBuildCacheProvider.test.js.map +1 -0
  32. package/package.json +6 -6
  33. package/rush-logs/rush-http-build-cache-plugin._phase_test.log +14 -14
  34. package/src/HttpBuildCacheProvider.ts +36 -7
  35. package/src/RushHttpBuildCachePlugin.ts +23 -28
  36. package/src/test/HttpBuildCacheProvider.test.ts +115 -0
  37. package/temp/coverage/clover.xml +117 -109
  38. package/temp/coverage/coverage-final.json +2 -2
  39. package/temp/coverage/lcov-report/HttpBuildCacheProvider.ts.html +166 -79
  40. package/temp/coverage/lcov-report/RushHttpBuildCachePlugin.ts.html +29 -44
  41. package/temp/coverage/lcov-report/index.html +24 -24
  42. package/temp/coverage/lcov-report/index.ts.html +1 -1
  43. package/temp/coverage/lcov.info +236 -218
  44. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941 +0 -4367
  45. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941.map +0 -1
  46. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247 +0 -362
  47. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247.map +0 -1
  48. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa +0 -73
  49. package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa.map +0 -1
  50. package/lib/HttpBuildCacheProvider.test.d.ts.map +0 -1
  51. package/lib/HttpBuildCacheProvider.test.js.map +0 -1
  52. package/src/HttpBuildCacheProvider.test.ts +0 -58
  53. /package/lib/{HttpBuildCacheProvider.test.d.ts → test/HttpBuildCacheProvider.test.d.ts} +0 -0
@@ -1,4367 +0,0 @@
1
- 63b3387b13c32b9461b83c75e22b0d01
2
- "use strict";
3
-
4
- /* istanbul ignore next */
5
- function cov_ms2xfswbr() {
6
- var path = "/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts";
7
- var hash = "68fed68ed90a11f7ae56ba4631d6e8c44c5b590c";
8
- var global = new Function("return this")();
9
- var gcv = "__coverage__";
10
- var coverageData = {
11
- path: "/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts",
12
- statementMap: {
13
- "0": {
14
- start: {
15
- line: 2,
16
- column: 22
17
- },
18
- end: {
19
- line: 4,
20
- column: 1
21
- }
22
- },
23
- "1": {
24
- start: {
25
- line: 3,
26
- column: 4
27
- },
28
- end: {
29
- line: 3,
30
- column: 62
31
- }
32
- },
33
- "2": {
34
- start: {
35
- line: 5,
36
- column: 0
37
- },
38
- end: {
39
- line: 5,
40
- column: 62
41
- }
42
- },
43
- "3": {
44
- start: {
45
- line: 6,
46
- column: 0
47
- },
48
- end: {
49
- line: 6,
50
- column: 40
51
- }
52
- },
53
- "4": {
54
- start: {
55
- line: 7,
56
- column: 28
57
- },
58
- end: {
59
- line: 7,
60
- column: 67
61
- }
62
- },
63
- "5": {
64
- start: {
65
- line: 8,
66
- column: 19
67
- },
68
- end: {
69
- line: 8,
70
- column: 49
71
- }
72
- },
73
- "6": {
74
- start: {
75
- line: 9,
76
- column: 21
77
- },
78
- end: {
79
- line: 9,
80
- column: 59
81
- }
82
- },
83
- "7": {
84
- start: {
85
- line: 11,
86
- column: 0
87
- },
88
- end: {
89
- line: 15,
90
- column: 52
91
- }
92
- },
93
- "8": {
94
- start: {
95
- line: 12,
96
- column: 4
97
- },
98
- end: {
99
- line: 12,
100
- column: 72
101
- }
102
- },
103
- "9": {
104
- start: {
105
- line: 13,
106
- column: 4
107
- },
108
- end: {
109
- line: 13,
110
- column: 72
111
- }
112
- },
113
- "10": {
114
- start: {
115
- line: 14,
116
- column: 4
117
- },
118
- end: {
119
- line: 14,
120
- column: 64
121
- }
122
- },
123
- "11": {
124
- start: {
125
- line: 17,
126
- column: 0
127
- },
128
- end: {
129
- line: 23,
130
- column: 38
131
- }
132
- },
133
- "12": {
134
- start: {
135
- line: 18,
136
- column: 4
137
- },
138
- end: {
139
- line: 18,
140
- column: 50
141
- }
142
- },
143
- "13": {
144
- start: {
145
- line: 19,
146
- column: 4
147
- },
148
- end: {
149
- line: 19,
150
- column: 68
151
- }
152
- },
153
- "14": {
154
- start: {
155
- line: 20,
156
- column: 4
157
- },
158
- end: {
159
- line: 20,
160
- column: 56
161
- }
162
- },
163
- "15": {
164
- start: {
165
- line: 21,
166
- column: 4
167
- },
168
- end: {
169
- line: 21,
170
- column: 52
171
- }
172
- },
173
- "16": {
174
- start: {
175
- line: 22,
176
- column: 4
177
- },
178
- end: {
179
- line: 22,
180
- column: 70
181
- }
182
- },
183
- "17": {
184
- start: {
185
- line: 27,
186
- column: 8
187
- },
188
- end: {
189
- line: 27,
190
- column: 46
191
- }
192
- },
193
- "18": {
194
- start: {
195
- line: 28,
196
- column: 8
197
- },
198
- end: {
199
- line: 28,
200
- column: 40
201
- }
202
- },
203
- "19": {
204
- start: {
205
- line: 29,
206
- column: 8
207
- },
208
- end: {
209
- line: 29,
210
- column: 56
211
- }
212
- },
213
- "20": {
214
- start: {
215
- line: 30,
216
- column: 8
217
- },
218
- end: {
219
- line: 30,
220
- column: 95
221
- }
222
- },
223
- "21": {
224
- start: {
225
- line: 31,
226
- column: 8
227
- },
228
- end: {
229
- line: 31,
230
- column: 79
231
- }
232
- },
233
- "22": {
234
- start: {
235
- line: 32,
236
- column: 8
237
- },
238
- end: {
239
- line: 32,
240
- column: 89
241
- }
242
- },
243
- "23": {
244
- start: {
245
- line: 33,
246
- column: 8
247
- },
248
- end: {
249
- line: 33,
250
- column: 96
251
- }
252
- },
253
- "24": {
254
- start: {
255
- line: 34,
256
- column: 8
257
- },
258
- end: {
259
- line: 34,
260
- column: 83
261
- }
262
- },
263
- "25": {
264
- start: {
265
- line: 35,
266
- column: 8
267
- },
268
- end: {
269
- line: 35,
270
- column: 50
271
- }
272
- },
273
- "26": {
274
- start: {
275
- line: 36,
276
- column: 8
277
- },
278
- end: {
279
- line: 36,
280
- column: 97
281
- }
282
- },
283
- "27": {
284
- start: {
285
- line: 40,
286
- column: 8
287
- },
288
- end: {
289
- line: 40,
290
- column: 155
291
- }
292
- },
293
- "28": {
294
- start: {
295
- line: 43,
296
- column: 8
297
- },
298
- end: {
299
- line: 57,
300
- column: 9
301
- }
302
- },
303
- "29": {
304
- start: {
305
- line: 44,
306
- column: 27
307
- },
308
- end: {
309
- line: 51,
310
- column: 14
311
- }
312
- },
313
- "30": {
314
- start: {
315
- line: 52,
316
- column: 12
317
- },
318
- end: {
319
- line: 52,
320
- column: 64
321
- }
322
- },
323
- "31": {
324
- start: {
325
- line: 55,
326
- column: 12
327
- },
328
- end: {
329
- line: 55,
330
- column: 73
331
- }
332
- },
333
- "32": {
334
- start: {
335
- line: 56,
336
- column: 12
337
- },
338
- end: {
339
- line: 56,
340
- column: 29
341
- }
342
- },
343
- "33": {
344
- start: {
345
- line: 60,
346
- column: 8
347
- },
348
- end: {
349
- line: 63,
350
- column: 9
351
- }
352
- },
353
- "34": {
354
- start: {
355
- line: 61,
356
- column: 12
357
- },
358
- end: {
359
- line: 61,
360
- column: 101
361
- }
362
- },
363
- "35": {
364
- start: {
365
- line: 62,
366
- column: 12
367
- },
368
- end: {
369
- line: 62,
370
- column: 25
371
- }
372
- },
373
- "36": {
374
- start: {
375
- line: 64,
376
- column: 8
377
- },
378
- end: {
379
- line: 64,
380
- column: 76
381
- }
382
- },
383
- "37": {
384
- start: {
385
- line: 65,
386
- column: 8
387
- },
388
- end: {
389
- line: 79,
390
- column: 9
391
- }
392
- },
393
- "38": {
394
- start: {
395
- line: 66,
396
- column: 27
397
- },
398
- end: {
399
- line: 73,
400
- column: 14
401
- }
402
- },
403
- "39": {
404
- start: {
405
- line: 74,
406
- column: 12
407
- },
408
- end: {
409
- line: 74,
410
- column: 36
411
- }
412
- },
413
- "40": {
414
- start: {
415
- line: 77,
416
- column: 12
417
- },
418
- end: {
419
- line: 77,
420
- column: 75
421
- }
422
- },
423
- "41": {
424
- start: {
425
- line: 78,
426
- column: 12
427
- },
428
- end: {
429
- line: 78,
430
- column: 25
431
- }
432
- },
433
- "42": {
434
- start: {
435
- line: 82,
436
- column: 8
437
- },
438
- end: {
439
- line: 89,
440
- column: 11
441
- }
442
- },
443
- "43": {
444
- start: {
445
- line: 85,
446
- column: 12
447
- },
448
- end: {
449
- line: 87,
450
- column: 15
451
- }
452
- },
453
- "44": {
454
- start: {
455
- line: 88,
456
- column: 12
457
- },
458
- end: {
459
- line: 88,
460
- column: 57
461
- }
462
- },
463
- "45": {
464
- start: {
465
- line: 92,
466
- column: 8
467
- },
468
- end: {
469
- line: 97,
470
- column: 9
471
- }
472
- },
473
- "46": {
474
- start: {
475
- line: 93,
476
- column: 12
477
- },
478
- end: {
479
- line: 96,
480
- column: 72
481
- }
482
- },
483
- "47": {
484
- start: {
485
- line: 98,
486
- column: 20
487
- },
488
- end: {
489
- line: 98,
490
- column: 93
491
- }
492
- },
493
- "48": {
494
- start: {
495
- line: 99,
496
- column: 8
497
- },
498
- end: {
499
- line: 99,
500
- column: 73
501
- }
502
- },
503
- "49": {
504
- start: {
505
- line: 100,
506
- column: 23
507
- },
508
- end: {
509
- line: 100,
510
- column: 119
511
- }
512
- },
513
- "50": {
514
- start: {
515
- line: 101,
516
- column: 8
517
- },
518
- end: {
519
- line: 101,
520
- column: 47
521
- }
522
- },
523
- "51": {
524
- start: {
525
- line: 102,
526
- column: 8
527
- },
528
- end: {
529
- line: 104,
530
- column: 9
531
- }
532
- },
533
- "52": {
534
- start: {
535
- line: 103,
536
- column: 12
537
- },
538
- end: {
539
- line: 103,
540
- column: 90
541
- }
542
- },
543
- "53": {
544
- start: {
545
- line: 105,
546
- column: 27
547
- },
548
- end: {
549
- line: 105,
550
- column: 47
551
- }
552
- },
553
- "54": {
554
- start: {
555
- line: 106,
556
- column: 8
557
- },
558
- end: {
559
- line: 106,
560
- column: 53
561
- }
562
- },
563
- "55": {
564
- start: {
565
- line: 107,
566
- column: 8
567
- },
568
- end: {
569
- line: 107,
570
- column: 69
571
- }
572
- },
573
- "56": {
574
- start: {
575
- line: 108,
576
- column: 8
577
- },
578
- end: {
579
- line: 108,
580
- column: 56
581
- }
582
- },
583
- "57": {
584
- start: {
585
- line: 111,
586
- column: 8
587
- },
588
- end: {
589
- line: 116,
590
- column: 11
591
- }
592
- },
593
- "58": {
594
- start: {
595
- line: 114,
596
- column: 12
597
- },
598
- end: {
599
- line: 114,
600
- column: 71
601
- }
602
- },
603
- "59": {
604
- start: {
605
- line: 115,
606
- column: 12
607
- },
608
- end: {
609
- line: 115,
610
- column: 57
611
- }
612
- },
613
- "60": {
614
- start: {
615
- line: 119,
616
- column: 8
617
- },
618
- end: {
619
- line: 125,
620
- column: 9
621
- }
622
- },
623
- "61": {
624
- start: {
625
- line: 120,
626
- column: 33
627
- },
628
- end: {
629
- line: 120,
630
- column: 49
631
- }
632
- },
633
- "62": {
634
- start: {
635
- line: 121,
636
- column: 12
637
- },
638
- end: {
639
- line: 123,
640
- column: 13
641
- }
642
- },
643
- "63": {
644
- start: {
645
- line: 122,
646
- column: 16
647
- },
648
- end: {
649
- line: 122,
650
- column: 55
651
- }
652
- },
653
- "64": {
654
- start: {
655
- line: 124,
656
- column: 12
657
- },
658
- end: {
659
- line: 124,
660
- column: 62
661
- }
662
- },
663
- "65": {
664
- start: {
665
- line: 126,
666
- column: 8
667
- },
668
- end: {
669
- line: 126,
670
- column: 40
671
- }
672
- },
673
- "66": {
674
- start: {
675
- line: 129,
676
- column: 93
677
- },
678
- end: {
679
- line: 129,
680
- column: 100
681
- }
682
- },
683
- "67": {
684
- start: {
685
- line: 130,
686
- column: 38
687
- },
688
- end: {
689
- line: 130,
690
- column: 146
691
- }
692
- },
693
- "68": {
694
- start: {
695
- line: 131,
696
- column: 28
697
- },
698
- end: {
699
- line: 131,
700
- column: 80
701
- }
702
- },
703
- "69": {
704
- start: {
705
- line: 132,
706
- column: 20
707
- },
708
- end: {
709
- line: 132,
710
- column: 51
711
- }
712
- },
713
- "70": {
714
- start: {
715
- line: 133,
716
- column: 24
717
- },
718
- end: {
719
- line: 133,
720
- column: 26
721
- }
722
- },
723
- "71": {
724
- start: {
725
- line: 134,
726
- column: 8
727
- },
728
- end: {
729
- line: 136,
730
- column: 9
731
- }
732
- },
733
- "72": {
734
- start: {
735
- line: 135,
736
- column: 12
737
- },
738
- end: {
739
- line: 135,
740
- column: 48
741
- }
742
- },
743
- "73": {
744
- start: {
745
- line: 137,
746
- column: 8
747
- },
748
- end: {
749
- line: 141,
750
- column: 9
751
- }
752
- },
753
- "74": {
754
- start: {
755
- line: 138,
756
- column: 12
757
- },
758
- end: {
759
- line: 140,
760
- column: 13
761
- }
762
- },
763
- "75": {
764
- start: {
765
- line: 139,
766
- column: 16
767
- },
768
- end: {
769
- line: 139,
770
- column: 37
771
- }
772
- },
773
- "76": {
774
- start: {
775
- line: 142,
776
- column: 27
777
- },
778
- end: {
779
- line: 142,
780
- column: 97
781
- }
782
- },
783
- "77": {
784
- start: {
785
- line: 143,
786
- column: 8
787
- },
788
- end: {
789
- line: 143,
790
- column: 100
791
- }
792
- },
793
- "78": {
794
- start: {
795
- line: 144,
796
- column: 25
797
- },
798
- end: {
799
- line: 149,
800
- column: 10
801
- }
802
- },
803
- "79": {
804
- start: {
805
- line: 150,
806
- column: 8
807
- },
808
- end: {
809
- line: 159,
810
- column: 9
811
- }
812
- },
813
- "80": {
814
- start: {
815
- line: 151,
816
- column: 12
817
- },
818
- end: {
819
- line: 156,
820
- column: 13
821
- }
822
- },
823
- "81": {
824
- start: {
825
- line: 155,
826
- column: 16
827
- },
828
- end: {
829
- line: 155,
830
- column: 135
831
- }
832
- },
833
- "82": {
834
- start: {
835
- line: 157,
836
- column: 12
837
- },
838
- end: {
839
- line: 157,
840
- column: 80
841
- }
842
- },
843
- "83": {
844
- start: {
845
- line: 158,
846
- column: 12
847
- },
848
- end: {
849
- line: 158,
850
- column: 25
851
- }
852
- },
853
- "84": {
854
- start: {
855
- line: 160,
856
- column: 23
857
- },
858
- end: {
859
- line: 160,
860
- column: 82
861
- }
862
- },
863
- "85": {
864
- start: {
865
- line: 161,
866
- column: 8
867
- },
868
- end: {
869
- line: 161,
870
- column: 147
871
- }
872
- },
873
- "86": {
874
- start: {
875
- line: 162,
876
- column: 8
877
- },
878
- end: {
879
- line: 162,
880
- column: 22
881
- }
882
- },
883
- "87": {
884
- start: {
885
- line: 165,
886
- column: 8
887
- },
888
- end: {
889
- line: 167,
890
- column: 9
891
- }
892
- },
893
- "88": {
894
- start: {
895
- line: 166,
896
- column: 12
897
- },
898
- end: {
899
- line: 166,
900
- column: 19
901
- }
902
- },
903
- "89": {
904
- start: {
905
- line: 168,
906
- column: 26
907
- },
908
- end: {
909
- line: 168,
910
- column: 53
911
- }
912
- },
913
- "90": {
914
- start: {
915
- line: 169,
916
- column: 8
917
- },
918
- end: {
919
- line: 171,
920
- column: 9
921
- }
922
- },
923
- "91": {
924
- start: {
925
- line: 170,
926
- column: 12
927
- },
928
- end: {
929
- line: 170,
930
- column: 67
931
- }
932
- },
933
- "92": {
934
- start: {
935
- line: 172,
936
- column: 8
937
- },
938
- end: {
939
- line: 182,
940
- column: 9
941
- }
942
- },
943
- "93": {
944
- start: {
945
- line: 173,
946
- column: 12
947
- },
948
- end: {
949
- line: 181,
950
- column: 26
951
- }
952
- },
953
- "94": {
954
- start: {
955
- line: 183,
956
- column: 8
957
- },
958
- end: {
959
- line: 183,
960
- column: 27
961
- }
962
- },
963
- "95": {
964
- start: {
965
- line: 188,
966
- column: 8
967
- },
968
- end: {
969
- line: 192,
970
- column: 11
971
- }
972
- },
973
- "96": {
974
- start: {
975
- line: 191,
976
- column: 12
977
- },
978
- end: {
979
- line: 191,
980
- column: 84
981
- }
982
- },
983
- "97": {
984
- start: {
985
- line: 193,
986
- column: 8
987
- },
988
- end: {
989
- line: 198,
990
- column: 9
991
- }
992
- },
993
- "98": {
994
- start: {
995
- line: 194,
996
- column: 35
997
- },
998
- end: {
999
- line: 194,
1000
- column: 110
1001
- }
1002
- },
1003
- "99": {
1004
- start: {
1005
- line: 195,
1006
- column: 12
1007
- },
1008
- end: {
1009
- line: 197,
1010
- column: 13
1011
- }
1012
- },
1013
- "100": {
1014
- start: {
1015
- line: 196,
1016
- column: 16
1017
- },
1018
- end: {
1019
- line: 196,
1020
- column: 45
1021
- }
1022
- },
1023
- "101": {
1024
- start: {
1025
- line: 201,
1026
- column: 8
1027
- },
1028
- end: {
1029
- line: 203,
1030
- column: 9
1031
- }
1032
- },
1033
- "102": {
1034
- start: {
1035
- line: 202,
1036
- column: 12
1037
- },
1038
- end: {
1039
- line: 202,
1040
- column: 36
1041
- }
1042
- },
1043
- "103": {
1044
- start: {
1045
- line: 204,
1046
- column: 8
1047
- },
1048
- end: {
1049
- line: 236,
1050
- column: 9
1051
- }
1052
- },
1053
- "104": {
1054
- start: {
1055
- line: 213,
1056
- column: 16
1057
- },
1058
- end: {
1059
- line: 213,
1060
- column: 49
1061
- }
1062
- },
1063
- "105": {
1064
- start: {
1065
- line: 218,
1066
- column: 16
1067
- },
1068
- end: {
1069
- line: 227,
1070
- column: 17
1071
- }
1072
- },
1073
- "106": {
1074
- start: {
1075
- line: 226,
1076
- column: 20
1077
- },
1078
- end: {
1079
- line: 226,
1080
- column: 44
1081
- }
1082
- },
1083
- "107": {
1084
- start: {
1085
- line: 228,
1086
- column: 16
1087
- },
1088
- end: {
1089
- line: 228,
1090
- column: 50
1091
- }
1092
- },
1093
- "108": {
1094
- start: {
1095
- line: 231,
1096
- column: 16
1097
- },
1098
- end: {
1099
- line: 234,
1100
- column: 17
1101
- }
1102
- },
1103
- "109": {
1104
- start: {
1105
- line: 233,
1106
- column: 20
1107
- },
1108
- end: {
1109
- line: 233,
1110
- column: 44
1111
- }
1112
- },
1113
- "110": {
1114
- start: {
1115
- line: 238,
1116
- column: 8
1117
- },
1118
- end: {
1119
- line: 238,
1120
- column: 35
1121
- }
1122
- },
1123
- "111": {
1124
- start: {
1125
- line: 241,
1126
- column: 8
1127
- },
1128
- end: {
1129
- line: 270,
1130
- column: 9
1131
- }
1132
- },
1133
- "112": {
1134
- start: {
1135
- line: 243,
1136
- column: 16
1137
- },
1138
- end: {
1139
- line: 243,
1140
- column: 103
1141
- }
1142
- },
1143
- "113": {
1144
- start: {
1145
- line: 244,
1146
- column: 16
1147
- },
1148
- end: {
1149
- line: 244,
1150
- column: 22
1151
- }
1152
- },
1153
- "114": {
1154
- start: {
1155
- line: 247,
1156
- column: 16
1157
- },
1158
- end: {
1159
- line: 247,
1160
- column: 105
1161
- }
1162
- },
1163
- "115": {
1164
- start: {
1165
- line: 248,
1166
- column: 16
1167
- },
1168
- end: {
1169
- line: 248,
1170
- column: 22
1171
- }
1172
- },
1173
- "116": {
1174
- start: {
1175
- line: 251,
1176
- column: 16
1177
- },
1178
- end: {
1179
- line: 251,
1180
- column: 98
1181
- }
1182
- },
1183
- "117": {
1184
- start: {
1185
- line: 252,
1186
- column: 16
1187
- },
1188
- end: {
1189
- line: 252,
1190
- column: 22
1191
- }
1192
- },
1193
- "118": {
1194
- start: {
1195
- line: 255,
1196
- column: 16
1197
- },
1198
- end: {
1199
- line: 255,
1200
- column: 103
1201
- }
1202
- },
1203
- "119": {
1204
- start: {
1205
- line: 256,
1206
- column: 16
1207
- },
1208
- end: {
1209
- line: 256,
1210
- column: 22
1211
- }
1212
- },
1213
- "120": {
1214
- start: {
1215
- line: 259,
1216
- column: 16
1217
- },
1218
- end: {
1219
- line: 268,
1220
- column: 30
1221
- }
1222
- },
1223
- "121": {
1224
- start: {
1225
- line: 273,
1226
- column: 0
1227
- },
1228
- end: {
1229
- line: 273,
1230
- column: 56
1231
- }
1232
- }
1233
- },
1234
- fnMap: {
1235
- "0": {
1236
- name: "(anonymous_0)",
1237
- decl: {
1238
- start: {
1239
- line: 2,
1240
- column: 56
1241
- },
1242
- end: {
1243
- line: 2,
1244
- column: 57
1245
- }
1246
- },
1247
- loc: {
1248
- start: {
1249
- line: 2,
1250
- column: 71
1251
- },
1252
- end: {
1253
- line: 4,
1254
- column: 1
1255
- }
1256
- },
1257
- line: 2
1258
- },
1259
- "1": {
1260
- name: "(anonymous_1)",
1261
- decl: {
1262
- start: {
1263
- line: 11,
1264
- column: 1
1265
- },
1266
- end: {
1267
- line: 11,
1268
- column: 2
1269
- }
1270
- },
1271
- loc: {
1272
- start: {
1273
- line: 11,
1274
- column: 31
1275
- },
1276
- end: {
1277
- line: 15,
1278
- column: 1
1279
- }
1280
- },
1281
- line: 11
1282
- },
1283
- "2": {
1284
- name: "(anonymous_2)",
1285
- decl: {
1286
- start: {
1287
- line: 17,
1288
- column: 1
1289
- },
1290
- end: {
1291
- line: 17,
1292
- column: 2
1293
- }
1294
- },
1295
- loc: {
1296
- start: {
1297
- line: 17,
1298
- column: 24
1299
- },
1300
- end: {
1301
- line: 23,
1302
- column: 1
1303
- }
1304
- },
1305
- line: 17
1306
- },
1307
- "3": {
1308
- name: "(anonymous_3)",
1309
- decl: {
1310
- start: {
1311
- line: 25,
1312
- column: 4
1313
- },
1314
- end: {
1315
- line: 25,
1316
- column: 5
1317
- }
1318
- },
1319
- loc: {
1320
- start: {
1321
- line: 25,
1322
- column: 38
1323
- },
1324
- end: {
1325
- line: 37,
1326
- column: 5
1327
- }
1328
- },
1329
- line: 25
1330
- },
1331
- "4": {
1332
- name: "(anonymous_4)",
1333
- decl: {
1334
- start: {
1335
- line: 38,
1336
- column: 4
1337
- },
1338
- end: {
1339
- line: 38,
1340
- column: 5
1341
- }
1342
- },
1343
- loc: {
1344
- start: {
1345
- line: 38,
1346
- column: 30
1347
- },
1348
- end: {
1349
- line: 41,
1350
- column: 5
1351
- }
1352
- },
1353
- line: 38
1354
- },
1355
- "5": {
1356
- name: "(anonymous_5)",
1357
- decl: {
1358
- start: {
1359
- line: 42,
1360
- column: 4
1361
- },
1362
- end: {
1363
- line: 42,
1364
- column: 5
1365
- }
1366
- },
1367
- loc: {
1368
- start: {
1369
- line: 42,
1370
- column: 61
1371
- },
1372
- end: {
1373
- line: 58,
1374
- column: 5
1375
- }
1376
- },
1377
- line: 42
1378
- },
1379
- "6": {
1380
- name: "(anonymous_6)",
1381
- decl: {
1382
- start: {
1383
- line: 59,
1384
- column: 4
1385
- },
1386
- end: {
1387
- line: 59,
1388
- column: 5
1389
- }
1390
- },
1391
- loc: {
1392
- start: {
1393
- line: 59,
1394
- column: 71
1395
- },
1396
- end: {
1397
- line: 80,
1398
- column: 5
1399
- }
1400
- },
1401
- line: 59
1402
- },
1403
- "7": {
1404
- name: "(anonymous_7)",
1405
- decl: {
1406
- start: {
1407
- line: 81,
1408
- column: 4
1409
- },
1410
- end: {
1411
- line: 81,
1412
- column: 5
1413
- }
1414
- },
1415
- loc: {
1416
- start: {
1417
- line: 81,
1418
- column: 60
1419
- },
1420
- end: {
1421
- line: 90,
1422
- column: 5
1423
- }
1424
- },
1425
- line: 81
1426
- },
1427
- "8": {
1428
- name: "(anonymous_8)",
1429
- decl: {
1430
- start: {
1431
- line: 84,
1432
- column: 11
1433
- },
1434
- end: {
1435
- line: 84,
1436
- column: 12
1437
- }
1438
- },
1439
- loc: {
1440
- start: {
1441
- line: 84,
1442
- column: 39
1443
- },
1444
- end: {
1445
- line: 89,
1446
- column: 9
1447
- }
1448
- },
1449
- line: 84
1450
- },
1451
- "9": {
1452
- name: "(anonymous_9)",
1453
- decl: {
1454
- start: {
1455
- line: 91,
1456
- column: 4
1457
- },
1458
- end: {
1459
- line: 91,
1460
- column: 5
1461
- }
1462
- },
1463
- loc: {
1464
- start: {
1465
- line: 91,
1466
- column: 59
1467
- },
1468
- end: {
1469
- line: 109,
1470
- column: 5
1471
- }
1472
- },
1473
- line: 91
1474
- },
1475
- "10": {
1476
- name: "(anonymous_10)",
1477
- decl: {
1478
- start: {
1479
- line: 110,
1480
- column: 4
1481
- },
1482
- end: {
1483
- line: 110,
1484
- column: 5
1485
- }
1486
- },
1487
- loc: {
1488
- start: {
1489
- line: 110,
1490
- column: 49
1491
- },
1492
- end: {
1493
- line: 117,
1494
- column: 5
1495
- }
1496
- },
1497
- line: 110
1498
- },
1499
- "11": {
1500
- name: "(anonymous_11)",
1501
- decl: {
1502
- start: {
1503
- line: 113,
1504
- column: 11
1505
- },
1506
- end: {
1507
- line: 113,
1508
- column: 12
1509
- }
1510
- },
1511
- loc: {
1512
- start: {
1513
- line: 113,
1514
- column: 39
1515
- },
1516
- end: {
1517
- line: 116,
1518
- column: 9
1519
- }
1520
- },
1521
- line: 113
1522
- },
1523
- "12": {
1524
- name: "(anonymous_12)",
1525
- decl: {
1526
- start: {
1527
- line: 118,
1528
- column: 4
1529
- },
1530
- end: {
1531
- line: 118,
1532
- column: 5
1533
- }
1534
- },
1535
- loc: {
1536
- start: {
1537
- line: 118,
1538
- column: 29
1539
- },
1540
- end: {
1541
- line: 127,
1542
- column: 5
1543
- }
1544
- },
1545
- line: 118
1546
- },
1547
- "13": {
1548
- name: "(anonymous_13)",
1549
- decl: {
1550
- start: {
1551
- line: 128,
1552
- column: 4
1553
- },
1554
- end: {
1555
- line: 128,
1556
- column: 5
1557
- }
1558
- },
1559
- loc: {
1560
- start: {
1561
- line: 128,
1562
- column: 25
1563
- },
1564
- end: {
1565
- line: 163,
1566
- column: 5
1567
- }
1568
- },
1569
- line: 128
1570
- },
1571
- "14": {
1572
- name: "(anonymous_14)",
1573
- decl: {
1574
- start: {
1575
- line: 164,
1576
- column: 4
1577
- },
1578
- end: {
1579
- line: 164,
1580
- column: 5
1581
- }
1582
- },
1583
- loc: {
1584
- start: {
1585
- line: 164,
1586
- column: 38
1587
- },
1588
- end: {
1589
- line: 184,
1590
- column: 5
1591
- }
1592
- },
1593
- line: 164
1594
- },
1595
- "15": {
1596
- name: "(anonymous_15)",
1597
- decl: {
1598
- start: {
1599
- line: 185,
1600
- column: 4
1601
- },
1602
- end: {
1603
- line: 185,
1604
- column: 5
1605
- }
1606
- },
1607
- loc: {
1608
- start: {
1609
- line: 185,
1610
- column: 40
1611
- },
1612
- end: {
1613
- line: 199,
1614
- column: 5
1615
- }
1616
- },
1617
- line: 185
1618
- },
1619
- "16": {
1620
- name: "(anonymous_16)",
1621
- decl: {
1622
- start: {
1623
- line: 190,
1624
- column: 11
1625
- },
1626
- end: {
1627
- line: 190,
1628
- column: 12
1629
- }
1630
- },
1631
- loc: {
1632
- start: {
1633
- line: 190,
1634
- column: 33
1635
- },
1636
- end: {
1637
- line: 192,
1638
- column: 9
1639
- }
1640
- },
1641
- line: 190
1642
- },
1643
- "17": {
1644
- name: "(anonymous_17)",
1645
- decl: {
1646
- start: {
1647
- line: 200,
1648
- column: 4
1649
- },
1650
- end: {
1651
- line: 200,
1652
- column: 5
1653
- }
1654
- },
1655
- loc: {
1656
- start: {
1657
- line: 200,
1658
- column: 57
1659
- },
1660
- end: {
1661
- line: 239,
1662
- column: 5
1663
- }
1664
- },
1665
- line: 200
1666
- },
1667
- "18": {
1668
- name: "(anonymous_18)",
1669
- decl: {
1670
- start: {
1671
- line: 240,
1672
- column: 4
1673
- },
1674
- end: {
1675
- line: 240,
1676
- column: 5
1677
- }
1678
- },
1679
- loc: {
1680
- start: {
1681
- line: 240,
1682
- column: 75
1683
- },
1684
- end: {
1685
- line: 271,
1686
- column: 5
1687
- }
1688
- },
1689
- line: 240
1690
- }
1691
- },
1692
- branchMap: {
1693
- "0": {
1694
- loc: {
1695
- start: {
1696
- line: 2,
1697
- column: 22
1698
- },
1699
- end: {
1700
- line: 4,
1701
- column: 1
1702
- }
1703
- },
1704
- type: "binary-expr",
1705
- locations: [{
1706
- start: {
1707
- line: 2,
1708
- column: 23
1709
- },
1710
- end: {
1711
- line: 2,
1712
- column: 27
1713
- }
1714
- }, {
1715
- start: {
1716
- line: 2,
1717
- column: 31
1718
- },
1719
- end: {
1720
- line: 2,
1721
- column: 51
1722
- }
1723
- }, {
1724
- start: {
1725
- line: 2,
1726
- column: 56
1727
- },
1728
- end: {
1729
- line: 4,
1730
- column: 1
1731
- }
1732
- }],
1733
- line: 2
1734
- },
1735
- "1": {
1736
- loc: {
1737
- start: {
1738
- line: 3,
1739
- column: 11
1740
- },
1741
- end: {
1742
- line: 3,
1743
- column: 61
1744
- }
1745
- },
1746
- type: "cond-expr",
1747
- locations: [{
1748
- start: {
1749
- line: 3,
1750
- column: 37
1751
- },
1752
- end: {
1753
- line: 3,
1754
- column: 40
1755
- }
1756
- }, {
1757
- start: {
1758
- line: 3,
1759
- column: 43
1760
- },
1761
- end: {
1762
- line: 3,
1763
- column: 61
1764
- }
1765
- }],
1766
- line: 3
1767
- },
1768
- "2": {
1769
- loc: {
1770
- start: {
1771
- line: 3,
1772
- column: 12
1773
- },
1774
- end: {
1775
- line: 3,
1776
- column: 33
1777
- }
1778
- },
1779
- type: "binary-expr",
1780
- locations: [{
1781
- start: {
1782
- line: 3,
1783
- column: 12
1784
- },
1785
- end: {
1786
- line: 3,
1787
- column: 15
1788
- }
1789
- }, {
1790
- start: {
1791
- line: 3,
1792
- column: 19
1793
- },
1794
- end: {
1795
- line: 3,
1796
- column: 33
1797
- }
1798
- }],
1799
- line: 3
1800
- },
1801
- "3": {
1802
- loc: {
1803
- start: {
1804
- line: 15,
1805
- column: 3
1806
- },
1807
- end: {
1808
- line: 15,
1809
- column: 50
1810
- }
1811
- },
1812
- type: "binary-expr",
1813
- locations: [{
1814
- start: {
1815
- line: 15,
1816
- column: 3
1817
- },
1818
- end: {
1819
- line: 15,
1820
- column: 21
1821
- }
1822
- }, {
1823
- start: {
1824
- line: 15,
1825
- column: 26
1826
- },
1827
- end: {
1828
- line: 15,
1829
- column: 49
1830
- }
1831
- }],
1832
- line: 15
1833
- },
1834
- "4": {
1835
- loc: {
1836
- start: {
1837
- line: 23,
1838
- column: 3
1839
- },
1840
- end: {
1841
- line: 23,
1842
- column: 36
1843
- }
1844
- },
1845
- type: "binary-expr",
1846
- locations: [{
1847
- start: {
1848
- line: 23,
1849
- column: 3
1850
- },
1851
- end: {
1852
- line: 23,
1853
- column: 14
1854
- }
1855
- }, {
1856
- start: {
1857
- line: 23,
1858
- column: 19
1859
- },
1860
- end: {
1861
- line: 23,
1862
- column: 35
1863
- }
1864
- }],
1865
- line: 23
1866
- },
1867
- "5": {
1868
- loc: {
1869
- start: {
1870
- line: 32,
1871
- column: 28
1872
- },
1873
- end: {
1874
- line: 32,
1875
- column: 87
1876
- }
1877
- },
1878
- type: "cond-expr",
1879
- locations: [{
1880
- start: {
1881
- line: 32,
1882
- column: 56
1883
- },
1884
- end: {
1885
- line: 32,
1886
- column: 67
1887
- }
1888
- }, {
1889
- start: {
1890
- line: 32,
1891
- column: 70
1892
- },
1893
- end: {
1894
- line: 32,
1895
- column: 87
1896
- }
1897
- }],
1898
- line: 32
1899
- },
1900
- "6": {
1901
- loc: {
1902
- start: {
1903
- line: 33,
1904
- column: 29
1905
- },
1906
- end: {
1907
- line: 33,
1908
- column: 95
1909
- }
1910
- },
1911
- type: "cond-expr",
1912
- locations: [{
1913
- start: {
1914
- line: 33,
1915
- column: 85
1916
- },
1917
- end: {
1918
- line: 33,
1919
- column: 87
1920
- }
1921
- }, {
1922
- start: {
1923
- line: 33,
1924
- column: 90
1925
- },
1926
- end: {
1927
- line: 33,
1928
- column: 95
1929
- }
1930
- }],
1931
- line: 33
1932
- },
1933
- "7": {
1934
- loc: {
1935
- start: {
1936
- line: 33,
1937
- column: 29
1938
- },
1939
- end: {
1940
- line: 33,
1941
- column: 82
1942
- }
1943
- },
1944
- type: "binary-expr",
1945
- locations: [{
1946
- start: {
1947
- line: 33,
1948
- column: 29
1949
- },
1950
- end: {
1951
- line: 33,
1952
- column: 65
1953
- }
1954
- }, {
1955
- start: {
1956
- line: 33,
1957
- column: 69
1958
- },
1959
- end: {
1960
- line: 33,
1961
- column: 82
1962
- }
1963
- }],
1964
- line: 33
1965
- },
1966
- "8": {
1967
- loc: {
1968
- start: {
1969
- line: 34,
1970
- column: 24
1971
- },
1972
- end: {
1973
- line: 34,
1974
- column: 82
1975
- }
1976
- },
1977
- type: "cond-expr",
1978
- locations: [{
1979
- start: {
1980
- line: 34,
1981
- column: 75
1982
- },
1983
- end: {
1984
- line: 34,
1985
- column: 77
1986
- }
1987
- }, {
1988
- start: {
1989
- line: 34,
1990
- column: 80
1991
- },
1992
- end: {
1993
- line: 34,
1994
- column: 82
1995
- }
1996
- }],
1997
- line: 34
1998
- },
1999
- "9": {
2000
- loc: {
2001
- start: {
2002
- line: 34,
2003
- column: 24
2004
- },
2005
- end: {
2006
- line: 34,
2007
- column: 72
2008
- }
2009
- },
2010
- type: "binary-expr",
2011
- locations: [{
2012
- start: {
2013
- line: 34,
2014
- column: 24
2015
- },
2016
- end: {
2017
- line: 34,
2018
- column: 55
2019
- }
2020
- }, {
2021
- start: {
2022
- line: 34,
2023
- column: 59
2024
- },
2025
- end: {
2026
- line: 34,
2027
- column: 72
2028
- }
2029
- }],
2030
- line: 34
2031
- },
2032
- "10": {
2033
- loc: {
2034
- start: {
2035
- line: 36,
2036
- column: 31
2037
- },
2038
- end: {
2039
- line: 36,
2040
- column: 96
2041
- }
2042
- },
2043
- type: "cond-expr",
2044
- locations: [{
2045
- start: {
2046
- line: 36,
2047
- column: 89
2048
- },
2049
- end: {
2050
- line: 36,
2051
- column: 91
2052
- }
2053
- }, {
2054
- start: {
2055
- line: 36,
2056
- column: 94
2057
- },
2058
- end: {
2059
- line: 36,
2060
- column: 96
2061
- }
2062
- }],
2063
- line: 36
2064
- },
2065
- "11": {
2066
- loc: {
2067
- start: {
2068
- line: 36,
2069
- column: 31
2070
- },
2071
- end: {
2072
- line: 36,
2073
- column: 86
2074
- }
2075
- },
2076
- type: "binary-expr",
2077
- locations: [{
2078
- start: {
2079
- line: 36,
2080
- column: 31
2081
- },
2082
- end: {
2083
- line: 36,
2084
- column: 69
2085
- }
2086
- }, {
2087
- start: {
2088
- line: 36,
2089
- column: 73
2090
- },
2091
- end: {
2092
- line: 36,
2093
- column: 86
2094
- }
2095
- }],
2096
- line: 36
2097
- },
2098
- "12": {
2099
- loc: {
2100
- start: {
2101
- line: 40,
2102
- column: 15
2103
- },
2104
- end: {
2105
- line: 40,
2106
- column: 154
2107
- }
2108
- },
2109
- type: "cond-expr",
2110
- locations: [{
2111
- start: {
2112
- line: 40,
2113
- column: 109
2114
- },
2115
- end: {
2116
- line: 40,
2117
- column: 111
2118
- }
2119
- }, {
2120
- start: {
2121
- line: 40,
2122
- column: 114
2123
- },
2124
- end: {
2125
- line: 40,
2126
- column: 154
2127
- }
2128
- }],
2129
- line: 40
2130
- },
2131
- "13": {
2132
- loc: {
2133
- start: {
2134
- line: 40,
2135
- column: 15
2136
- },
2137
- end: {
2138
- line: 40,
2139
- column: 106
2140
- }
2141
- },
2142
- type: "binary-expr",
2143
- locations: [{
2144
- start: {
2145
- line: 40,
2146
- column: 15
2147
- },
2148
- end: {
2149
- line: 40,
2150
- column: 89
2151
- }
2152
- }, {
2153
- start: {
2154
- line: 40,
2155
- column: 93
2156
- },
2157
- end: {
2158
- line: 40,
2159
- column: 106
2160
- }
2161
- }],
2162
- line: 40
2163
- },
2164
- "14": {
2165
- loc: {
2166
- start: {
2167
- line: 52,
2168
- column: 19
2169
- },
2170
- end: {
2171
- line: 52,
2172
- column: 63
2173
- }
2174
- },
2175
- type: "cond-expr",
2176
- locations: [{
2177
- start: {
2178
- line: 52,
2179
- column: 45
2180
- },
2181
- end: {
2182
- line: 52,
2183
- column: 51
2184
- }
2185
- }, {
2186
- start: {
2187
- line: 52,
2188
- column: 54
2189
- },
2190
- end: {
2191
- line: 52,
2192
- column: 63
2193
- }
2194
- }],
2195
- line: 52
2196
- },
2197
- "15": {
2198
- loc: {
2199
- start: {
2200
- line: 60,
2201
- column: 8
2202
- },
2203
- end: {
2204
- line: 63,
2205
- column: 9
2206
- }
2207
- },
2208
- type: "if",
2209
- locations: [{
2210
- start: {
2211
- line: 60,
2212
- column: 8
2213
- },
2214
- end: {
2215
- line: 63,
2216
- column: 9
2217
- }
2218
- }, {
2219
- start: {
2220
- line: undefined,
2221
- column: undefined
2222
- },
2223
- end: {
2224
- line: undefined,
2225
- column: undefined
2226
- }
2227
- }],
2228
- line: 60
2229
- },
2230
- "16": {
2231
- loc: {
2232
- start: {
2233
- line: 92,
2234
- column: 8
2235
- },
2236
- end: {
2237
- line: 97,
2238
- column: 9
2239
- }
2240
- },
2241
- type: "if",
2242
- locations: [{
2243
- start: {
2244
- line: 92,
2245
- column: 8
2246
- },
2247
- end: {
2248
- line: 97,
2249
- column: 9
2250
- }
2251
- }, {
2252
- start: {
2253
- line: undefined,
2254
- column: undefined
2255
- },
2256
- end: {
2257
- line: undefined,
2258
- column: undefined
2259
- }
2260
- }],
2261
- line: 92
2262
- },
2263
- "17": {
2264
- loc: {
2265
- start: {
2266
- line: 98,
2267
- column: 51
2268
- },
2269
- end: {
2270
- line: 98,
2271
- column: 80
2272
- }
2273
- },
2274
- type: "binary-expr",
2275
- locations: [{
2276
- start: {
2277
- line: 98,
2278
- column: 51
2279
- },
2280
- end: {
2281
- line: 98,
2282
- column: 74
2283
- }
2284
- }, {
2285
- start: {
2286
- line: 98,
2287
- column: 78
2288
- },
2289
- end: {
2290
- line: 98,
2291
- column: 80
2292
- }
2293
- }],
2294
- line: 98
2295
- },
2296
- "18": {
2297
- loc: {
2298
- start: {
2299
- line: 100,
2300
- column: 89
2301
- },
2302
- end: {
2303
- line: 100,
2304
- column: 118
2305
- }
2306
- },
2307
- type: "binary-expr",
2308
- locations: [{
2309
- start: {
2310
- line: 100,
2311
- column: 89
2312
- },
2313
- end: {
2314
- line: 100,
2315
- column: 112
2316
- }
2317
- }, {
2318
- start: {
2319
- line: 100,
2320
- column: 116
2321
- },
2322
- end: {
2323
- line: 100,
2324
- column: 118
2325
- }
2326
- }],
2327
- line: 100
2328
- },
2329
- "19": {
2330
- loc: {
2331
- start: {
2332
- line: 102,
2333
- column: 8
2334
- },
2335
- end: {
2336
- line: 104,
2337
- column: 9
2338
- }
2339
- },
2340
- type: "if",
2341
- locations: [{
2342
- start: {
2343
- line: 102,
2344
- column: 8
2345
- },
2346
- end: {
2347
- line: 104,
2348
- column: 9
2349
- }
2350
- }, {
2351
- start: {
2352
- line: undefined,
2353
- column: undefined
2354
- },
2355
- end: {
2356
- line: undefined,
2357
- column: undefined
2358
- }
2359
- }],
2360
- line: 102
2361
- },
2362
- "20": {
2363
- loc: {
2364
- start: {
2365
- line: 119,
2366
- column: 8
2367
- },
2368
- end: {
2369
- line: 125,
2370
- column: 9
2371
- }
2372
- },
2373
- type: "if",
2374
- locations: [{
2375
- start: {
2376
- line: 119,
2377
- column: 8
2378
- },
2379
- end: {
2380
- line: 125,
2381
- column: 9
2382
- }
2383
- }, {
2384
- start: {
2385
- line: undefined,
2386
- column: undefined
2387
- },
2388
- end: {
2389
- line: undefined,
2390
- column: undefined
2391
- }
2392
- }],
2393
- line: 119
2394
- },
2395
- "21": {
2396
- loc: {
2397
- start: {
2398
- line: 121,
2399
- column: 12
2400
- },
2401
- end: {
2402
- line: 123,
2403
- column: 13
2404
- }
2405
- },
2406
- type: "if",
2407
- locations: [{
2408
- start: {
2409
- line: 121,
2410
- column: 12
2411
- },
2412
- end: {
2413
- line: 123,
2414
- column: 13
2415
- }
2416
- }, {
2417
- start: {
2418
- line: undefined,
2419
- column: undefined
2420
- },
2421
- end: {
2422
- line: undefined,
2423
- column: undefined
2424
- }
2425
- }],
2426
- line: 121
2427
- },
2428
- "22": {
2429
- loc: {
2430
- start: {
2431
- line: 130,
2432
- column: 38
2433
- },
2434
- end: {
2435
- line: 130,
2436
- column: 146
2437
- }
2438
- },
2439
- type: "cond-expr",
2440
- locations: [{
2441
- start: {
2442
- line: 130,
2443
- column: 99
2444
- },
2445
- end: {
2446
- line: 130,
2447
- column: 116
2448
- }
2449
- }, {
2450
- start: {
2451
- line: 130,
2452
- column: 119
2453
- },
2454
- end: {
2455
- line: 130,
2456
- column: 146
2457
- }
2458
- }],
2459
- line: 130
2460
- },
2461
- "23": {
2462
- loc: {
2463
- start: {
2464
- line: 130,
2465
- column: 38
2466
- },
2467
- end: {
2468
- line: 130,
2469
- column: 96
2470
- }
2471
- },
2472
- type: "binary-expr",
2473
- locations: [{
2474
- start: {
2475
- line: 130,
2476
- column: 38
2477
- },
2478
- end: {
2479
- line: 130,
2480
- column: 64
2481
- }
2482
- }, {
2483
- start: {
2484
- line: 130,
2485
- column: 68
2486
- },
2487
- end: {
2488
- line: 130,
2489
- column: 96
2490
- }
2491
- }],
2492
- line: 130
2493
- },
2494
- "24": {
2495
- loc: {
2496
- start: {
2497
- line: 134,
2498
- column: 8
2499
- },
2500
- end: {
2501
- line: 136,
2502
- column: 9
2503
- }
2504
- },
2505
- type: "if",
2506
- locations: [{
2507
- start: {
2508
- line: 134,
2509
- column: 8
2510
- },
2511
- end: {
2512
- line: 136,
2513
- column: 9
2514
- }
2515
- }, {
2516
- start: {
2517
- line: undefined,
2518
- column: undefined
2519
- },
2520
- end: {
2521
- line: undefined,
2522
- column: undefined
2523
- }
2524
- }],
2525
- line: 134
2526
- },
2527
- "25": {
2528
- loc: {
2529
- start: {
2530
- line: 138,
2531
- column: 12
2532
- },
2533
- end: {
2534
- line: 140,
2535
- column: 13
2536
- }
2537
- },
2538
- type: "if",
2539
- locations: [{
2540
- start: {
2541
- line: 138,
2542
- column: 12
2543
- },
2544
- end: {
2545
- line: 140,
2546
- column: 13
2547
- }
2548
- }, {
2549
- start: {
2550
- line: undefined,
2551
- column: undefined
2552
- },
2553
- end: {
2554
- line: undefined,
2555
- column: undefined
2556
- }
2557
- }],
2558
- line: 138
2559
- },
2560
- "26": {
2561
- loc: {
2562
- start: {
2563
- line: 142,
2564
- column: 27
2565
- },
2566
- end: {
2567
- line: 142,
2568
- column: 97
2569
- }
2570
- },
2571
- type: "binary-expr",
2572
- locations: [{
2573
- start: {
2574
- line: 142,
2575
- column: 28
2576
- },
2577
- end: {
2578
- line: 142,
2579
- column: 83
2580
- }
2581
- }, {
2582
- start: {
2583
- line: 142,
2584
- column: 88
2585
- },
2586
- end: {
2587
- line: 142,
2588
- column: 97
2589
- }
2590
- }],
2591
- line: 142
2592
- },
2593
- "27": {
2594
- loc: {
2595
- start: {
2596
- line: 142,
2597
- column: 28
2598
- },
2599
- end: {
2600
- line: 142,
2601
- column: 83
2602
- }
2603
- },
2604
- type: "cond-expr",
2605
- locations: [{
2606
- start: {
2607
- line: 142,
2608
- column: 63
2609
- },
2610
- end: {
2611
- line: 142,
2612
- column: 69
2613
- }
2614
- }, {
2615
- start: {
2616
- line: 142,
2617
- column: 72
2618
- },
2619
- end: {
2620
- line: 142,
2621
- column: 83
2622
- }
2623
- }],
2624
- line: 142
2625
- },
2626
- "28": {
2627
- loc: {
2628
- start: {
2629
- line: 142,
2630
- column: 28
2631
- },
2632
- end: {
2633
- line: 142,
2634
- column: 60
2635
- }
2636
- },
2637
- type: "binary-expr",
2638
- locations: [{
2639
- start: {
2640
- line: 142,
2641
- column: 28
2642
- },
2643
- end: {
2644
- line: 142,
2645
- column: 41
2646
- }
2647
- }, {
2648
- start: {
2649
- line: 142,
2650
- column: 45
2651
- },
2652
- end: {
2653
- line: 142,
2654
- column: 60
2655
- }
2656
- }],
2657
- line: 142
2658
- },
2659
- "29": {
2660
- loc: {
2661
- start: {
2662
- line: 150,
2663
- column: 8
2664
- },
2665
- end: {
2666
- line: 159,
2667
- column: 9
2668
- }
2669
- },
2670
- type: "if",
2671
- locations: [{
2672
- start: {
2673
- line: 150,
2674
- column: 8
2675
- },
2676
- end: {
2677
- line: 159,
2678
- column: 9
2679
- }
2680
- }, {
2681
- start: {
2682
- line: undefined,
2683
- column: undefined
2684
- },
2685
- end: {
2686
- line: undefined,
2687
- column: undefined
2688
- }
2689
- }],
2690
- line: 150
2691
- },
2692
- "30": {
2693
- loc: {
2694
- start: {
2695
- line: 151,
2696
- column: 12
2697
- },
2698
- end: {
2699
- line: 156,
2700
- column: 13
2701
- }
2702
- },
2703
- type: "if",
2704
- locations: [{
2705
- start: {
2706
- line: 151,
2707
- column: 12
2708
- },
2709
- end: {
2710
- line: 156,
2711
- column: 13
2712
- }
2713
- }, {
2714
- start: {
2715
- line: undefined,
2716
- column: undefined
2717
- },
2718
- end: {
2719
- line: undefined,
2720
- column: undefined
2721
- }
2722
- }],
2723
- line: 151
2724
- },
2725
- "31": {
2726
- loc: {
2727
- start: {
2728
- line: 151,
2729
- column: 16
2730
- },
2731
- end: {
2732
- line: 151,
2733
- column: 104
2734
- }
2735
- },
2736
- type: "binary-expr",
2737
- locations: [{
2738
- start: {
2739
- line: 151,
2740
- column: 16
2741
- },
2742
- end: {
2743
- line: 151,
2744
- column: 47
2745
- }
2746
- }, {
2747
- start: {
2748
- line: 151,
2749
- column: 51
2750
- },
2751
- end: {
2752
- line: 151,
2753
- column: 104
2754
- }
2755
- }],
2756
- line: 151
2757
- },
2758
- "32": {
2759
- loc: {
2760
- start: {
2761
- line: 160,
2762
- column: 23
2763
- },
2764
- end: {
2765
- line: 160,
2766
- column: 82
2767
- }
2768
- },
2769
- type: "cond-expr",
2770
- locations: [{
2771
- start: {
2772
- line: 160,
2773
- column: 34
2774
- },
2775
- end: {
2776
- line: 160,
2777
- column: 75
2778
- }
2779
- }, {
2780
- start: {
2781
- line: 160,
2782
- column: 78
2783
- },
2784
- end: {
2785
- line: 160,
2786
- column: 82
2787
- }
2788
- }],
2789
- line: 160
2790
- },
2791
- "33": {
2792
- loc: {
2793
- start: {
2794
- line: 161,
2795
- column: 97
2796
- },
2797
- end: {
2798
- line: 161,
2799
- column: 137
2800
- }
2801
- },
2802
- type: "cond-expr",
2803
- locations: [{
2804
- start: {
2805
- line: 161,
2806
- column: 115
2807
- },
2808
- end: {
2809
- line: 161,
2810
- column: 121
2811
- }
2812
- }, {
2813
- start: {
2814
- line: 161,
2815
- column: 124
2816
- },
2817
- end: {
2818
- line: 161,
2819
- column: 137
2820
- }
2821
- }],
2822
- line: 161
2823
- },
2824
- "34": {
2825
- loc: {
2826
- start: {
2827
- line: 165,
2828
- column: 8
2829
- },
2830
- end: {
2831
- line: 167,
2832
- column: 9
2833
- }
2834
- },
2835
- type: "if",
2836
- locations: [{
2837
- start: {
2838
- line: 165,
2839
- column: 8
2840
- },
2841
- end: {
2842
- line: 167,
2843
- column: 9
2844
- }
2845
- }, {
2846
- start: {
2847
- line: undefined,
2848
- column: undefined
2849
- },
2850
- end: {
2851
- line: undefined,
2852
- column: undefined
2853
- }
2854
- }],
2855
- line: 165
2856
- },
2857
- "35": {
2858
- loc: {
2859
- start: {
2860
- line: 169,
2861
- column: 8
2862
- },
2863
- end: {
2864
- line: 171,
2865
- column: 9
2866
- }
2867
- },
2868
- type: "if",
2869
- locations: [{
2870
- start: {
2871
- line: 169,
2872
- column: 8
2873
- },
2874
- end: {
2875
- line: 171,
2876
- column: 9
2877
- }
2878
- }, {
2879
- start: {
2880
- line: undefined,
2881
- column: undefined
2882
- },
2883
- end: {
2884
- line: undefined,
2885
- column: undefined
2886
- }
2887
- }],
2888
- line: 169
2889
- },
2890
- "36": {
2891
- loc: {
2892
- start: {
2893
- line: 172,
2894
- column: 8
2895
- },
2896
- end: {
2897
- line: 182,
2898
- column: 9
2899
- }
2900
- },
2901
- type: "if",
2902
- locations: [{
2903
- start: {
2904
- line: 172,
2905
- column: 8
2906
- },
2907
- end: {
2908
- line: 182,
2909
- column: 9
2910
- }
2911
- }, {
2912
- start: {
2913
- line: undefined,
2914
- column: undefined
2915
- },
2916
- end: {
2917
- line: undefined,
2918
- column: undefined
2919
- }
2920
- }],
2921
- line: 172
2922
- },
2923
- "37": {
2924
- loc: {
2925
- start: {
2926
- line: 172,
2927
- column: 12
2928
- },
2929
- end: {
2930
- line: 172,
2931
- column: 86
2932
- }
2933
- },
2934
- type: "binary-expr",
2935
- locations: [{
2936
- start: {
2937
- line: 172,
2938
- column: 12
2939
- },
2940
- end: {
2941
- line: 172,
2942
- column: 43
2943
- }
2944
- }, {
2945
- start: {
2946
- line: 172,
2947
- column: 47
2948
- },
2949
- end: {
2950
- line: 172,
2951
- column: 86
2952
- }
2953
- }],
2954
- line: 172
2955
- },
2956
- "38": {
2957
- loc: {
2958
- start: {
2959
- line: 193,
2960
- column: 8
2961
- },
2962
- end: {
2963
- line: 198,
2964
- column: 9
2965
- }
2966
- },
2967
- type: "if",
2968
- locations: [{
2969
- start: {
2970
- line: 193,
2971
- column: 8
2972
- },
2973
- end: {
2974
- line: 198,
2975
- column: 9
2976
- }
2977
- }, {
2978
- start: {
2979
- line: undefined,
2980
- column: undefined
2981
- },
2982
- end: {
2983
- line: undefined,
2984
- column: undefined
2985
- }
2986
- }],
2987
- line: 193
2988
- },
2989
- "39": {
2990
- loc: {
2991
- start: {
2992
- line: 194,
2993
- column: 35
2994
- },
2995
- end: {
2996
- line: 194,
2997
- column: 110
2998
- }
2999
- },
3000
- type: "cond-expr",
3001
- locations: [{
3002
- start: {
3003
- line: 194,
3004
- column: 89
3005
- },
3006
- end: {
3007
- line: 194,
3008
- column: 95
3009
- }
3010
- }, {
3011
- start: {
3012
- line: 194,
3013
- column: 98
3014
- },
3015
- end: {
3016
- line: 194,
3017
- column: 110
3018
- }
3019
- }],
3020
- line: 194
3021
- },
3022
- "40": {
3023
- loc: {
3024
- start: {
3025
- line: 194,
3026
- column: 35
3027
- },
3028
- end: {
3029
- line: 194,
3030
- column: 86
3031
- }
3032
- },
3033
- type: "binary-expr",
3034
- locations: [{
3035
- start: {
3036
- line: 194,
3037
- column: 35
3038
- },
3039
- end: {
3040
- line: 194,
3041
- column: 69
3042
- }
3043
- }, {
3044
- start: {
3045
- line: 194,
3046
- column: 73
3047
- },
3048
- end: {
3049
- line: 194,
3050
- column: 86
3051
- }
3052
- }],
3053
- line: 194
3054
- },
3055
- "41": {
3056
- loc: {
3057
- start: {
3058
- line: 195,
3059
- column: 12
3060
- },
3061
- end: {
3062
- line: 197,
3063
- column: 13
3064
- }
3065
- },
3066
- type: "if",
3067
- locations: [{
3068
- start: {
3069
- line: 195,
3070
- column: 12
3071
- },
3072
- end: {
3073
- line: 197,
3074
- column: 13
3075
- }
3076
- }, {
3077
- start: {
3078
- line: undefined,
3079
- column: undefined
3080
- },
3081
- end: {
3082
- line: undefined,
3083
- column: undefined
3084
- }
3085
- }],
3086
- line: 195
3087
- },
3088
- "42": {
3089
- loc: {
3090
- start: {
3091
- line: 195,
3092
- column: 16
3093
- },
3094
- end: {
3095
- line: 195,
3096
- column: 63
3097
- }
3098
- },
3099
- type: "binary-expr",
3100
- locations: [{
3101
- start: {
3102
- line: 195,
3103
- column: 16
3104
- },
3105
- end: {
3106
- line: 195,
3107
- column: 31
3108
- }
3109
- }, {
3110
- start: {
3111
- line: 195,
3112
- column: 35
3113
- },
3114
- end: {
3115
- line: 195,
3116
- column: 63
3117
- }
3118
- }],
3119
- line: 195
3120
- },
3121
- "43": {
3122
- loc: {
3123
- start: {
3124
- line: 201,
3125
- column: 8
3126
- },
3127
- end: {
3128
- line: 203,
3129
- column: 9
3130
- }
3131
- },
3132
- type: "if",
3133
- locations: [{
3134
- start: {
3135
- line: 201,
3136
- column: 8
3137
- },
3138
- end: {
3139
- line: 203,
3140
- column: 9
3141
- }
3142
- }, {
3143
- start: {
3144
- line: undefined,
3145
- column: undefined
3146
- },
3147
- end: {
3148
- line: undefined,
3149
- column: undefined
3150
- }
3151
- }],
3152
- line: 201
3153
- },
3154
- "44": {
3155
- loc: {
3156
- start: {
3157
- line: 204,
3158
- column: 8
3159
- },
3160
- end: {
3161
- line: 236,
3162
- column: 9
3163
- }
3164
- },
3165
- type: "switch",
3166
- locations: [{
3167
- start: {
3168
- line: 205,
3169
- column: 12
3170
- },
3171
- end: {
3172
- line: 214,
3173
- column: 13
3174
- }
3175
- }, {
3176
- start: {
3177
- line: 215,
3178
- column: 12
3179
- },
3180
- end: {
3181
- line: 215,
3182
- column: 21
3183
- }
3184
- }, {
3185
- start: {
3186
- line: 216,
3187
- column: 12
3188
- },
3189
- end: {
3190
- line: 216,
3191
- column: 21
3192
- }
3193
- }, {
3194
- start: {
3195
- line: 217,
3196
- column: 12
3197
- },
3198
- end: {
3199
- line: 229,
3200
- column: 13
3201
- }
3202
- }, {
3203
- start: {
3204
- line: 230,
3205
- column: 12
3206
- },
3207
- end: {
3208
- line: 235,
3209
- column: 13
3210
- }
3211
- }],
3212
- line: 204
3213
- },
3214
- "45": {
3215
- loc: {
3216
- start: {
3217
- line: 218,
3218
- column: 16
3219
- },
3220
- end: {
3221
- line: 227,
3222
- column: 17
3223
- }
3224
- },
3225
- type: "if",
3226
- locations: [{
3227
- start: {
3228
- line: 218,
3229
- column: 16
3230
- },
3231
- end: {
3232
- line: 227,
3233
- column: 17
3234
- }
3235
- }, {
3236
- start: {
3237
- line: undefined,
3238
- column: undefined
3239
- },
3240
- end: {
3241
- line: undefined,
3242
- column: undefined
3243
- }
3244
- }],
3245
- line: 218
3246
- },
3247
- "46": {
3248
- loc: {
3249
- start: {
3250
- line: 218,
3251
- column: 20
3252
- },
3253
- end: {
3254
- line: 218,
3255
- column: 82
3256
- }
3257
- },
3258
- type: "binary-expr",
3259
- locations: [{
3260
- start: {
3261
- line: 218,
3262
- column: 20
3263
- },
3264
- end: {
3265
- line: 218,
3266
- column: 43
3267
- }
3268
- }, {
3269
- start: {
3270
- line: 218,
3271
- column: 48
3272
- },
3273
- end: {
3274
- line: 218,
3275
- column: 58
3276
- }
3277
- }, {
3278
- start: {
3279
- line: 218,
3280
- column: 62
3281
- },
3282
- end: {
3283
- line: 218,
3284
- column: 81
3285
- }
3286
- }],
3287
- line: 218
3288
- },
3289
- "47": {
3290
- loc: {
3291
- start: {
3292
- line: 231,
3293
- column: 16
3294
- },
3295
- end: {
3296
- line: 234,
3297
- column: 17
3298
- }
3299
- },
3300
- type: "if",
3301
- locations: [{
3302
- start: {
3303
- line: 231,
3304
- column: 16
3305
- },
3306
- end: {
3307
- line: 234,
3308
- column: 17
3309
- }
3310
- }, {
3311
- start: {
3312
- line: undefined,
3313
- column: undefined
3314
- },
3315
- end: {
3316
- line: undefined,
3317
- column: undefined
3318
- }
3319
- }],
3320
- line: 231
3321
- },
3322
- "48": {
3323
- loc: {
3324
- start: {
3325
- line: 241,
3326
- column: 8
3327
- },
3328
- end: {
3329
- line: 270,
3330
- column: 9
3331
- }
3332
- },
3333
- type: "switch",
3334
- locations: [{
3335
- start: {
3336
- line: 242,
3337
- column: 12
3338
- },
3339
- end: {
3340
- line: 245,
3341
- column: 13
3342
- }
3343
- }, {
3344
- start: {
3345
- line: 246,
3346
- column: 12
3347
- },
3348
- end: {
3349
- line: 249,
3350
- column: 13
3351
- }
3352
- }, {
3353
- start: {
3354
- line: 250,
3355
- column: 12
3356
- },
3357
- end: {
3358
- line: 253,
3359
- column: 13
3360
- }
3361
- }, {
3362
- start: {
3363
- line: 254,
3364
- column: 12
3365
- },
3366
- end: {
3367
- line: 257,
3368
- column: 13
3369
- }
3370
- }, {
3371
- start: {
3372
- line: 258,
3373
- column: 12
3374
- },
3375
- end: {
3376
- line: 269,
3377
- column: 13
3378
- }
3379
- }],
3380
- line: 241
3381
- }
3382
- },
3383
- s: {
3384
- "0": 0,
3385
- "1": 0,
3386
- "2": 0,
3387
- "3": 0,
3388
- "4": 0,
3389
- "5": 0,
3390
- "6": 0,
3391
- "7": 0,
3392
- "8": 0,
3393
- "9": 0,
3394
- "10": 0,
3395
- "11": 0,
3396
- "12": 0,
3397
- "13": 0,
3398
- "14": 0,
3399
- "15": 0,
3400
- "16": 0,
3401
- "17": 0,
3402
- "18": 0,
3403
- "19": 0,
3404
- "20": 0,
3405
- "21": 0,
3406
- "22": 0,
3407
- "23": 0,
3408
- "24": 0,
3409
- "25": 0,
3410
- "26": 0,
3411
- "27": 0,
3412
- "28": 0,
3413
- "29": 0,
3414
- "30": 0,
3415
- "31": 0,
3416
- "32": 0,
3417
- "33": 0,
3418
- "34": 0,
3419
- "35": 0,
3420
- "36": 0,
3421
- "37": 0,
3422
- "38": 0,
3423
- "39": 0,
3424
- "40": 0,
3425
- "41": 0,
3426
- "42": 0,
3427
- "43": 0,
3428
- "44": 0,
3429
- "45": 0,
3430
- "46": 0,
3431
- "47": 0,
3432
- "48": 0,
3433
- "49": 0,
3434
- "50": 0,
3435
- "51": 0,
3436
- "52": 0,
3437
- "53": 0,
3438
- "54": 0,
3439
- "55": 0,
3440
- "56": 0,
3441
- "57": 0,
3442
- "58": 0,
3443
- "59": 0,
3444
- "60": 0,
3445
- "61": 0,
3446
- "62": 0,
3447
- "63": 0,
3448
- "64": 0,
3449
- "65": 0,
3450
- "66": 0,
3451
- "67": 0,
3452
- "68": 0,
3453
- "69": 0,
3454
- "70": 0,
3455
- "71": 0,
3456
- "72": 0,
3457
- "73": 0,
3458
- "74": 0,
3459
- "75": 0,
3460
- "76": 0,
3461
- "77": 0,
3462
- "78": 0,
3463
- "79": 0,
3464
- "80": 0,
3465
- "81": 0,
3466
- "82": 0,
3467
- "83": 0,
3468
- "84": 0,
3469
- "85": 0,
3470
- "86": 0,
3471
- "87": 0,
3472
- "88": 0,
3473
- "89": 0,
3474
- "90": 0,
3475
- "91": 0,
3476
- "92": 0,
3477
- "93": 0,
3478
- "94": 0,
3479
- "95": 0,
3480
- "96": 0,
3481
- "97": 0,
3482
- "98": 0,
3483
- "99": 0,
3484
- "100": 0,
3485
- "101": 0,
3486
- "102": 0,
3487
- "103": 0,
3488
- "104": 0,
3489
- "105": 0,
3490
- "106": 0,
3491
- "107": 0,
3492
- "108": 0,
3493
- "109": 0,
3494
- "110": 0,
3495
- "111": 0,
3496
- "112": 0,
3497
- "113": 0,
3498
- "114": 0,
3499
- "115": 0,
3500
- "116": 0,
3501
- "117": 0,
3502
- "118": 0,
3503
- "119": 0,
3504
- "120": 0,
3505
- "121": 0
3506
- },
3507
- f: {
3508
- "0": 0,
3509
- "1": 0,
3510
- "2": 0,
3511
- "3": 0,
3512
- "4": 0,
3513
- "5": 0,
3514
- "6": 0,
3515
- "7": 0,
3516
- "8": 0,
3517
- "9": 0,
3518
- "10": 0,
3519
- "11": 0,
3520
- "12": 0,
3521
- "13": 0,
3522
- "14": 0,
3523
- "15": 0,
3524
- "16": 0,
3525
- "17": 0,
3526
- "18": 0
3527
- },
3528
- b: {
3529
- "0": [0, 0, 0],
3530
- "1": [0, 0],
3531
- "2": [0, 0],
3532
- "3": [0, 0],
3533
- "4": [0, 0],
3534
- "5": [0, 0],
3535
- "6": [0, 0],
3536
- "7": [0, 0],
3537
- "8": [0, 0],
3538
- "9": [0, 0],
3539
- "10": [0, 0],
3540
- "11": [0, 0],
3541
- "12": [0, 0],
3542
- "13": [0, 0],
3543
- "14": [0, 0],
3544
- "15": [0, 0],
3545
- "16": [0, 0],
3546
- "17": [0, 0],
3547
- "18": [0, 0],
3548
- "19": [0, 0],
3549
- "20": [0, 0],
3550
- "21": [0, 0],
3551
- "22": [0, 0],
3552
- "23": [0, 0],
3553
- "24": [0, 0],
3554
- "25": [0, 0],
3555
- "26": [0, 0],
3556
- "27": [0, 0],
3557
- "28": [0, 0],
3558
- "29": [0, 0],
3559
- "30": [0, 0],
3560
- "31": [0, 0],
3561
- "32": [0, 0],
3562
- "33": [0, 0],
3563
- "34": [0, 0],
3564
- "35": [0, 0],
3565
- "36": [0, 0],
3566
- "37": [0, 0],
3567
- "38": [0, 0],
3568
- "39": [0, 0],
3569
- "40": [0, 0],
3570
- "41": [0, 0],
3571
- "42": [0, 0],
3572
- "43": [0, 0],
3573
- "44": [0, 0, 0, 0, 0],
3574
- "45": [0, 0],
3575
- "46": [0, 0, 0],
3576
- "47": [0, 0],
3577
- "48": [0, 0, 0, 0, 0]
3578
- },
3579
- inputSourceMap: {
3580
- version: 3,
3581
- file: "/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts",
3582
- sources: ["/home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/src/HttpBuildCacheProvider.ts"],
3583
- names: [],
3584
- mappings: "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",
3585
- sourcesContent: ["import { ITerminal, Executable } from '@rushstack/node-core-library';\nimport {\n ICloudBuildCacheProvider,\n ICredentialCacheEntry,\n CredentialCache,\n RushSession,\n EnvironmentConfiguration\n} from '@rushstack/rush-sdk';\nimport fetch, { BodyInit, Response } from 'node-fetch';\n\nenum CredentialsOptions {\n Optional,\n Required,\n Omit\n}\n\nenum FailureType {\n None,\n Informational,\n Warning,\n Error,\n Authentication\n}\n\nexport interface IHttpBuildCacheTokenHandler {\n exec: string;\n args?: string[];\n}\n\n/**\n * @public\n */\nexport interface IHttpBuildCacheProviderOptions {\n url: string;\n tokenHandler?: IHttpBuildCacheTokenHandler;\n uploadMethod?: string;\n headers?: Record<string, string>;\n cacheKeyPrefix?: string;\n isCacheWriteAllowed: boolean;\n pluginName: string;\n rushProjectRoot: string;\n}\n\nexport class HttpBuildCacheProvider implements ICloudBuildCacheProvider {\n private readonly _pluginName: string;\n private readonly _rushSession: RushSession;\n private readonly _rushProjectRoot: string;\n private readonly _environmentCredential: string | undefined;\n private readonly _isCacheWriteAllowedByConfiguration: boolean;\n private readonly _url: URL;\n private readonly _uploadMethod: string;\n private readonly _headers: Record<string, string>;\n private readonly _cacheKeyPrefix: string;\n private readonly _tokenHandler: IHttpBuildCacheTokenHandler | undefined;\n private __credentialCacheId: string | undefined;\n\n public get isCacheWriteAllowed(): boolean {\n return EnvironmentConfiguration.buildCacheWriteAllowed ?? this._isCacheWriteAllowedByConfiguration;\n }\n\n public constructor(options: IHttpBuildCacheProviderOptions, rushSession: RushSession) {\n this._pluginName = options.pluginName;\n this._rushSession = rushSession;\n this._rushProjectRoot = options.rushProjectRoot;\n\n this._environmentCredential = EnvironmentConfiguration.buildCacheCredential;\n this._isCacheWriteAllowedByConfiguration = options.isCacheWriteAllowed;\n this._url = new URL(options.url.endsWith('/') ? options.url : options.url + '/');\n this._uploadMethod = options.uploadMethod ?? 'PUT';\n this._headers = options.headers ?? {};\n this._tokenHandler = options.tokenHandler;\n this._cacheKeyPrefix = options.cacheKeyPrefix ?? '';\n }\n\n public async tryGetCacheEntryBufferByIdAsync(\n terminal: ITerminal,\n cacheId: string\n ): Promise<Buffer | undefined> {\n try {\n const result = await this._http({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: 'GET',\n body: undefined,\n warningText: 'Could not get cache entry',\n readBody: true\n });\n\n return Buffer.isBuffer(result) ? result : undefined;\n } catch (e) {\n terminal.writeWarningLine(`Error getting cache entry: ${e}`);\n return undefined;\n }\n }\n\n public async trySetCacheEntryBufferAsync(\n terminal: ITerminal,\n cacheId: string,\n objectBuffer: Buffer\n ): Promise<boolean> {\n if (!this.isCacheWriteAllowed) {\n terminal.writeErrorLine('Writing to cache is not allowed in the current configuration.');\n return false;\n }\n\n terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);\n\n try {\n const result = await this._http({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: this._uploadMethod,\n body: objectBuffer,\n warningText: 'Could not write cache entry',\n readBody: false\n });\n\n return result !== false;\n } catch (e) {\n terminal.writeWarningLine(`Error uploading cache entry: ${e}`);\n return false;\n }\n }\n\n public async updateCachedCredentialAsync(terminal: ITerminal, credential: string): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.setCacheEntry(this._credentialCacheId, {\n credential: credential\n });\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n public async updateCachedCredentialInteractiveAsync(terminal: ITerminal): Promise<void> {\n if (!this._tokenHandler) {\n throw new Error(\n `The interactive cloud credentials flow is not configured.\\n` +\n `Set the 'tokenHandler' setting in 'common/config/rush-plugins/${this._pluginName}.json' to a command that writes your credentials to standard output and exits with code 0 ` +\n `or provide your credentials to rush using the --credential flag instead. Credentials must be the ` +\n `'Authorization' header expected by ${this._url.href}`\n );\n }\n\n const cmd: string = `${this._tokenHandler.exec} ${(this._tokenHandler.args || []).join(' ')}`;\n terminal.writeVerboseLine(`Running '${cmd}' to get credentials`);\n const result = Executable.spawnSync(this._tokenHandler.exec, this._tokenHandler.args || []);\n\n terminal.writeErrorLine(result.stderr);\n\n if (result.error) {\n throw new Error(`Could not obtain credentials. The command '${cmd}' failed.`);\n }\n\n const credential = result.stdout.trim();\n terminal.writeVerboseLine('Got credentials');\n\n await this.updateCachedCredentialAsync(terminal, credential);\n\n terminal.writeLine('Updated credentials cache');\n }\n\n public async deleteCachedCredentialsAsync(terminal: ITerminal): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.deleteCacheEntry(this._credentialCacheId);\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n private get _credentialCacheId(): string {\n if (!this.__credentialCacheId) {\n const cacheIdParts: string[] = [this._url.href];\n\n if (this._isCacheWriteAllowedByConfiguration) {\n cacheIdParts.push('cacheWriteAllowed');\n }\n\n this.__credentialCacheId = cacheIdParts.join('|');\n }\n\n return this.__credentialCacheId;\n }\n\n private async _http(options: {\n terminal: ITerminal;\n relUrl: string;\n method: string;\n body: BodyInit | undefined;\n warningText: string;\n readBody: boolean;\n credentialOptions?: CredentialsOptions;\n }): Promise<Buffer | boolean> {\n const { terminal, relUrl, method, body, warningText, readBody, credentialOptions } = options;\n const safeCredentialOptions = credentialOptions ?? CredentialsOptions.Optional;\n const credentials = await this._tryGetCredentials(safeCredentialOptions);\n const url = new URL(relUrl, this._url).href;\n\n const headers: Record<string, string> = {};\n if (typeof credentials === 'string') {\n headers.Authorization = credentials;\n }\n\n for (const [key, value] of Object.entries(this._headers)) {\n if (typeof value === 'string') {\n headers[key] = value;\n }\n }\n\n const bodyLength = (body as { length: number })?.length || 'unknown';\n\n terminal.writeDebugLine(`[http-build-cache] request: ${method} ${url} ${bodyLength} bytes`);\n\n const response = await fetch(url, {\n method: method,\n headers: headers,\n body: body,\n redirect: 'follow'\n });\n\n if (!response.ok) {\n if (typeof credentials !== 'string' && safeCredentialOptions === CredentialsOptions.Optional) {\n // We tried fetching the resource without credentials and that did not work out\n // Try again but require credentials this time\n // This will trigger the provider to request credentials\n return await this._http({ ...options, credentialOptions: CredentialsOptions.Required });\n }\n\n this._reportFailure(terminal, method, response, false, warningText);\n return false;\n }\n\n const result: Buffer | boolean = readBody ? Buffer.from(await response.arrayBuffer()) : true;\n\n terminal.writeDebugLine(\n `[http-build-cache] actual response: ${response.status} ${url} ${\n result === true ? 'true' : result.length\n } bytes`\n );\n\n return result;\n }\n\n private async _tryGetCredentials(options: CredentialsOptions.Required): Promise<string>;\n private async _tryGetCredentials(options: CredentialsOptions.Optional): Promise<string | undefined>;\n private async _tryGetCredentials(options: CredentialsOptions.Omit): Promise<undefined>;\n private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined>;\n private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined> {\n if (options === CredentialsOptions.Omit) {\n return;\n }\n\n let credentials: string | undefined = this._environmentCredential;\n\n if (credentials === undefined) {\n credentials = await this._tryGetCredentialsFromCache();\n }\n\n if (typeof credentials !== 'string' && options === CredentialsOptions.Required) {\n throw new Error(\n [\n `Credentials for ${this._url.href} have not been provided.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n\n return credentials;\n }\n\n private async _tryGetCredentialsFromCache(): Promise<string | undefined> {\n let cacheEntry: ICredentialCacheEntry | undefined;\n\n await CredentialCache.usingAsync(\n {\n supportEditing: false\n },\n (credentialsCache: CredentialCache) => {\n cacheEntry = credentialsCache.tryGetCacheEntry(this._credentialCacheId);\n }\n );\n\n if (cacheEntry) {\n const expirationTime: number | undefined = cacheEntry.expires?.getTime();\n if (!expirationTime || expirationTime >= Date.now()) {\n return cacheEntry.credential;\n }\n }\n }\n\n private _getFailureType(requestMethod: string, response: Response, isRedirect: boolean): FailureType {\n if (response.ok) {\n return FailureType.None;\n }\n\n switch (response.status) {\n case 503: {\n // We select 503 specifically because this represents \"service unavailable\" and\n // \"rate limit throttle\" errors, which are transient issues.\n //\n // There are other 5xx errors, such as 501, that can occur if the request is\n // malformed, so as a general rule we want to let through other 5xx errors\n // so the user can troubleshoot.\n\n // Don't fail production builds with warnings for transient issues\n return FailureType.Informational;\n }\n\n case 401:\n case 403:\n case 407: {\n if (requestMethod === 'GET' && (isRedirect || response.redirected)) {\n // Cache misses for GET requests are not errors\n // This is a workaround behavior where a server can issue a redirect and we fail to authenticate at the new location.\n // We do not want to signal this as an authentication failure because the authorization header is not passed on to redirects.\n // i.e The authentication header was accepted for the first request and therefore subsequent failures\n // where it was not present should not be attributed to the header.\n // This scenario usually comes up with services that redirect to pre-signed URLS that don't actually exist.\n // Those services then usually treat the 404 as a 403 to prevent leaking information.\n return FailureType.None;\n }\n\n return FailureType.Authentication;\n }\n\n case 404: {\n if (requestMethod === 'GET') {\n // Cache misses for GET requests are not errors\n return FailureType.None;\n }\n }\n }\n\n // Let dev builds succeed, let Prod builds fail\n return FailureType.Warning;\n }\n\n private _reportFailure(\n terminal: ITerminal,\n requestMethod: string,\n response: Response,\n isRedirect: boolean,\n message: string\n ): void {\n switch (this._getFailureType(requestMethod, response, isRedirect)) {\n default: {\n terminal.writeErrorLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Warning: {\n terminal.writeWarningLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Informational: {\n terminal.writeLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.None: {\n terminal.writeDebugLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Authentication: {\n throw new Error(\n [\n `${this._url.href} responded with ${response.status}: ${response.statusText}.`,\n `Credentials may be misconfigured or have expired.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n }\n }\n}\n"]
3586
- },
3587
- _coverageSchema: "1a1c01bbd47fc00a2c39e90264f33305004495a9",
3588
- hash: "68fed68ed90a11f7ae56ba4631d6e8c44c5b590c"
3589
- };
3590
- var coverage = global[gcv] || (global[gcv] = {});
3591
- if (!coverage[path] || coverage[path].hash !== hash) {
3592
- coverage[path] = coverageData;
3593
- }
3594
- var actualCoverage = coverage[path];
3595
- {
3596
- // @ts-ignore
3597
- cov_ms2xfswbr = function () {
3598
- return actualCoverage;
3599
- };
3600
- }
3601
- return actualCoverage;
3602
- }
3603
- cov_ms2xfswbr();
3604
- var __importDefault =
3605
- /* istanbul ignore next */
3606
- (cov_ms2xfswbr().s[0]++,
3607
- /* istanbul ignore next */
3608
- (cov_ms2xfswbr().b[0][0]++, this) &&
3609
- /* istanbul ignore next */
3610
- (cov_ms2xfswbr().b[0][1]++, this.__importDefault) ||
3611
- /* istanbul ignore next */
3612
- (cov_ms2xfswbr().b[0][2]++, function (mod) {
3613
- /* istanbul ignore next */
3614
- cov_ms2xfswbr().f[0]++;
3615
- cov_ms2xfswbr().s[1]++;
3616
- return (
3617
- /* istanbul ignore next */
3618
- (cov_ms2xfswbr().b[2][0]++, mod) &&
3619
- /* istanbul ignore next */
3620
- (cov_ms2xfswbr().b[2][1]++, mod.__esModule) ?
3621
- /* istanbul ignore next */
3622
- (cov_ms2xfswbr().b[1][0]++, mod) :
3623
- /* istanbul ignore next */
3624
- (cov_ms2xfswbr().b[1][1]++, {
3625
- "default": mod
3626
- })
3627
- );
3628
- }));
3629
- /* istanbul ignore next */
3630
- cov_ms2xfswbr().s[2]++;
3631
- Object.defineProperty(exports, "__esModule", {
3632
- value: true
3633
- });
3634
- /* istanbul ignore next */
3635
- cov_ms2xfswbr().s[3]++;
3636
- exports.HttpBuildCacheProvider = void 0;
3637
- const node_core_library_1 =
3638
- /* istanbul ignore next */
3639
- (cov_ms2xfswbr().s[4]++, require("@rushstack/node-core-library"));
3640
- const rush_sdk_1 =
3641
- /* istanbul ignore next */
3642
- (cov_ms2xfswbr().s[5]++, require("@rushstack/rush-sdk"));
3643
- const node_fetch_1 =
3644
- /* istanbul ignore next */
3645
- (cov_ms2xfswbr().s[6]++, __importDefault(require("node-fetch")));
3646
- var CredentialsOptions;
3647
- /* istanbul ignore next */
3648
- cov_ms2xfswbr().s[7]++;
3649
- (function (CredentialsOptions) {
3650
- /* istanbul ignore next */
3651
- cov_ms2xfswbr().f[1]++;
3652
- cov_ms2xfswbr().s[8]++;
3653
- CredentialsOptions[CredentialsOptions["Optional"] = 0] = "Optional";
3654
- /* istanbul ignore next */
3655
- cov_ms2xfswbr().s[9]++;
3656
- CredentialsOptions[CredentialsOptions["Required"] = 1] = "Required";
3657
- /* istanbul ignore next */
3658
- cov_ms2xfswbr().s[10]++;
3659
- CredentialsOptions[CredentialsOptions["Omit"] = 2] = "Omit";
3660
- })(
3661
- /* istanbul ignore next */
3662
- (cov_ms2xfswbr().b[3][0]++, CredentialsOptions) ||
3663
- /* istanbul ignore next */
3664
- (cov_ms2xfswbr().b[3][1]++, CredentialsOptions = {}));
3665
- var FailureType;
3666
- /* istanbul ignore next */
3667
- cov_ms2xfswbr().s[11]++;
3668
- (function (FailureType) {
3669
- /* istanbul ignore next */
3670
- cov_ms2xfswbr().f[2]++;
3671
- cov_ms2xfswbr().s[12]++;
3672
- FailureType[FailureType["None"] = 0] = "None";
3673
- /* istanbul ignore next */
3674
- cov_ms2xfswbr().s[13]++;
3675
- FailureType[FailureType["Informational"] = 1] = "Informational";
3676
- /* istanbul ignore next */
3677
- cov_ms2xfswbr().s[14]++;
3678
- FailureType[FailureType["Warning"] = 2] = "Warning";
3679
- /* istanbul ignore next */
3680
- cov_ms2xfswbr().s[15]++;
3681
- FailureType[FailureType["Error"] = 3] = "Error";
3682
- /* istanbul ignore next */
3683
- cov_ms2xfswbr().s[16]++;
3684
- FailureType[FailureType["Authentication"] = 4] = "Authentication";
3685
- })(
3686
- /* istanbul ignore next */
3687
- (cov_ms2xfswbr().b[4][0]++, FailureType) ||
3688
- /* istanbul ignore next */
3689
- (cov_ms2xfswbr().b[4][1]++, FailureType = {}));
3690
- class HttpBuildCacheProvider {
3691
- constructor(options, rushSession) {
3692
- /* istanbul ignore next */
3693
- cov_ms2xfswbr().f[3]++;
3694
- var _a, _b, _c;
3695
- /* istanbul ignore next */
3696
- cov_ms2xfswbr().s[17]++;
3697
- this._pluginName = options.pluginName;
3698
- /* istanbul ignore next */
3699
- cov_ms2xfswbr().s[18]++;
3700
- this._rushSession = rushSession;
3701
- /* istanbul ignore next */
3702
- cov_ms2xfswbr().s[19]++;
3703
- this._rushProjectRoot = options.rushProjectRoot;
3704
- /* istanbul ignore next */
3705
- cov_ms2xfswbr().s[20]++;
3706
- this._environmentCredential = rush_sdk_1.EnvironmentConfiguration.buildCacheCredential;
3707
- /* istanbul ignore next */
3708
- cov_ms2xfswbr().s[21]++;
3709
- this._isCacheWriteAllowedByConfiguration = options.isCacheWriteAllowed;
3710
- /* istanbul ignore next */
3711
- cov_ms2xfswbr().s[22]++;
3712
- this._url = new URL(options.url.endsWith('/') ?
3713
- /* istanbul ignore next */
3714
- (cov_ms2xfswbr().b[5][0]++, options.url) :
3715
- /* istanbul ignore next */
3716
- (cov_ms2xfswbr().b[5][1]++, options.url + '/'));
3717
- /* istanbul ignore next */
3718
- cov_ms2xfswbr().s[23]++;
3719
- this._uploadMethod =
3720
- /* istanbul ignore next */
3721
- (cov_ms2xfswbr().b[7][0]++, (_a = options.uploadMethod) !== null) &&
3722
- /* istanbul ignore next */
3723
- (cov_ms2xfswbr().b[7][1]++, _a !== void 0) ?
3724
- /* istanbul ignore next */
3725
- (cov_ms2xfswbr().b[6][0]++, _a) :
3726
- /* istanbul ignore next */
3727
- (cov_ms2xfswbr().b[6][1]++, 'PUT');
3728
- /* istanbul ignore next */
3729
- cov_ms2xfswbr().s[24]++;
3730
- this._headers =
3731
- /* istanbul ignore next */
3732
- (cov_ms2xfswbr().b[9][0]++, (_b = options.headers) !== null) &&
3733
- /* istanbul ignore next */
3734
- (cov_ms2xfswbr().b[9][1]++, _b !== void 0) ?
3735
- /* istanbul ignore next */
3736
- (cov_ms2xfswbr().b[8][0]++, _b) :
3737
- /* istanbul ignore next */
3738
- (cov_ms2xfswbr().b[8][1]++, {});
3739
- /* istanbul ignore next */
3740
- cov_ms2xfswbr().s[25]++;
3741
- this._tokenHandler = options.tokenHandler;
3742
- /* istanbul ignore next */
3743
- cov_ms2xfswbr().s[26]++;
3744
- this._cacheKeyPrefix =
3745
- /* istanbul ignore next */
3746
- (cov_ms2xfswbr().b[11][0]++, (_c = options.cacheKeyPrefix) !== null) &&
3747
- /* istanbul ignore next */
3748
- (cov_ms2xfswbr().b[11][1]++, _c !== void 0) ?
3749
- /* istanbul ignore next */
3750
- (cov_ms2xfswbr().b[10][0]++, _c) :
3751
- /* istanbul ignore next */
3752
- (cov_ms2xfswbr().b[10][1]++, '');
3753
- }
3754
- get isCacheWriteAllowed() {
3755
- /* istanbul ignore next */
3756
- cov_ms2xfswbr().f[4]++;
3757
- var _a;
3758
- /* istanbul ignore next */
3759
- cov_ms2xfswbr().s[27]++;
3760
- return (
3761
- /* istanbul ignore next */
3762
- (cov_ms2xfswbr().b[13][0]++, (_a = rush_sdk_1.EnvironmentConfiguration.buildCacheWriteAllowed) !== null) &&
3763
- /* istanbul ignore next */
3764
- (cov_ms2xfswbr().b[13][1]++, _a !== void 0) ?
3765
- /* istanbul ignore next */
3766
- (cov_ms2xfswbr().b[12][0]++, _a) :
3767
- /* istanbul ignore next */
3768
- (cov_ms2xfswbr().b[12][1]++, this._isCacheWriteAllowedByConfiguration)
3769
- );
3770
- }
3771
- async tryGetCacheEntryBufferByIdAsync(terminal, cacheId) {
3772
- /* istanbul ignore next */
3773
- cov_ms2xfswbr().f[5]++;
3774
- cov_ms2xfswbr().s[28]++;
3775
- try {
3776
- const result =
3777
- /* istanbul ignore next */
3778
- (cov_ms2xfswbr().s[29]++, await this._http({
3779
- terminal: terminal,
3780
- relUrl: `${this._cacheKeyPrefix}${cacheId}`,
3781
- method: 'GET',
3782
- body: undefined,
3783
- warningText: 'Could not get cache entry',
3784
- readBody: true
3785
- }));
3786
- /* istanbul ignore next */
3787
- cov_ms2xfswbr().s[30]++;
3788
- return Buffer.isBuffer(result) ?
3789
- /* istanbul ignore next */
3790
- (cov_ms2xfswbr().b[14][0]++, result) :
3791
- /* istanbul ignore next */
3792
- (cov_ms2xfswbr().b[14][1]++, undefined);
3793
- } catch (e) {
3794
- /* istanbul ignore next */
3795
- cov_ms2xfswbr().s[31]++;
3796
- terminal.writeWarningLine(`Error getting cache entry: ${e}`);
3797
- /* istanbul ignore next */
3798
- cov_ms2xfswbr().s[32]++;
3799
- return undefined;
3800
- }
3801
- }
3802
- async trySetCacheEntryBufferAsync(terminal, cacheId, objectBuffer) {
3803
- /* istanbul ignore next */
3804
- cov_ms2xfswbr().f[6]++;
3805
- cov_ms2xfswbr().s[33]++;
3806
- if (!this.isCacheWriteAllowed) {
3807
- /* istanbul ignore next */
3808
- cov_ms2xfswbr().b[15][0]++;
3809
- cov_ms2xfswbr().s[34]++;
3810
- terminal.writeErrorLine('Writing to cache is not allowed in the current configuration.');
3811
- /* istanbul ignore next */
3812
- cov_ms2xfswbr().s[35]++;
3813
- return false;
3814
- } else
3815
- /* istanbul ignore next */
3816
- {
3817
- cov_ms2xfswbr().b[15][1]++;
3818
- }
3819
- cov_ms2xfswbr().s[36]++;
3820
- terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);
3821
- /* istanbul ignore next */
3822
- cov_ms2xfswbr().s[37]++;
3823
- try {
3824
- const result =
3825
- /* istanbul ignore next */
3826
- (cov_ms2xfswbr().s[38]++, await this._http({
3827
- terminal: terminal,
3828
- relUrl: `${this._cacheKeyPrefix}${cacheId}`,
3829
- method: this._uploadMethod,
3830
- body: objectBuffer,
3831
- warningText: 'Could not write cache entry',
3832
- readBody: false
3833
- }));
3834
- /* istanbul ignore next */
3835
- cov_ms2xfswbr().s[39]++;
3836
- return result !== false;
3837
- } catch (e) {
3838
- /* istanbul ignore next */
3839
- cov_ms2xfswbr().s[40]++;
3840
- terminal.writeWarningLine(`Error uploading cache entry: ${e}`);
3841
- /* istanbul ignore next */
3842
- cov_ms2xfswbr().s[41]++;
3843
- return false;
3844
- }
3845
- }
3846
- async updateCachedCredentialAsync(terminal, credential) {
3847
- /* istanbul ignore next */
3848
- cov_ms2xfswbr().f[7]++;
3849
- cov_ms2xfswbr().s[42]++;
3850
- await rush_sdk_1.CredentialCache.usingAsync({
3851
- supportEditing: true
3852
- }, async credentialsCache => {
3853
- /* istanbul ignore next */
3854
- cov_ms2xfswbr().f[8]++;
3855
- cov_ms2xfswbr().s[43]++;
3856
- credentialsCache.setCacheEntry(this._credentialCacheId, {
3857
- credential: credential
3858
- });
3859
- /* istanbul ignore next */
3860
- cov_ms2xfswbr().s[44]++;
3861
- await credentialsCache.saveIfModifiedAsync();
3862
- });
3863
- }
3864
- async updateCachedCredentialInteractiveAsync(terminal) {
3865
- /* istanbul ignore next */
3866
- cov_ms2xfswbr().f[9]++;
3867
- cov_ms2xfswbr().s[45]++;
3868
- if (!this._tokenHandler) {
3869
- /* istanbul ignore next */
3870
- cov_ms2xfswbr().b[16][0]++;
3871
- cov_ms2xfswbr().s[46]++;
3872
- throw new Error(`The interactive cloud credentials flow is not configured.\n` + `Set the 'tokenHandler' setting in 'common/config/rush-plugins/${this._pluginName}.json' to a command that writes your credentials to standard output and exits with code 0 ` + `or provide your credentials to rush using the --credential flag instead. Credentials must be the ` + `'Authorization' header expected by ${this._url.href}`);
3873
- } else
3874
- /* istanbul ignore next */
3875
- {
3876
- cov_ms2xfswbr().b[16][1]++;
3877
- }
3878
- const cmd =
3879
- /* istanbul ignore next */
3880
- (cov_ms2xfswbr().s[47]++, `${this._tokenHandler.exec} ${(
3881
- /* istanbul ignore next */
3882
- (cov_ms2xfswbr().b[17][0]++, this._tokenHandler.args) ||
3883
- /* istanbul ignore next */
3884
- (cov_ms2xfswbr().b[17][1]++, [])).join(' ')}`);
3885
- /* istanbul ignore next */
3886
- cov_ms2xfswbr().s[48]++;
3887
- terminal.writeVerboseLine(`Running '${cmd}' to get credentials`);
3888
- const result =
3889
- /* istanbul ignore next */
3890
- (cov_ms2xfswbr().s[49]++, node_core_library_1.Executable.spawnSync(this._tokenHandler.exec,
3891
- /* istanbul ignore next */
3892
- (cov_ms2xfswbr().b[18][0]++, this._tokenHandler.args) ||
3893
- /* istanbul ignore next */
3894
- (cov_ms2xfswbr().b[18][1]++, [])));
3895
- /* istanbul ignore next */
3896
- cov_ms2xfswbr().s[50]++;
3897
- terminal.writeErrorLine(result.stderr);
3898
- /* istanbul ignore next */
3899
- cov_ms2xfswbr().s[51]++;
3900
- if (result.error) {
3901
- /* istanbul ignore next */
3902
- cov_ms2xfswbr().b[19][0]++;
3903
- cov_ms2xfswbr().s[52]++;
3904
- throw new Error(`Could not obtain credentials. The command '${cmd}' failed.`);
3905
- } else
3906
- /* istanbul ignore next */
3907
- {
3908
- cov_ms2xfswbr().b[19][1]++;
3909
- }
3910
- const credential =
3911
- /* istanbul ignore next */
3912
- (cov_ms2xfswbr().s[53]++, result.stdout.trim());
3913
- /* istanbul ignore next */
3914
- cov_ms2xfswbr().s[54]++;
3915
- terminal.writeVerboseLine('Got credentials');
3916
- /* istanbul ignore next */
3917
- cov_ms2xfswbr().s[55]++;
3918
- await this.updateCachedCredentialAsync(terminal, credential);
3919
- /* istanbul ignore next */
3920
- cov_ms2xfswbr().s[56]++;
3921
- terminal.writeLine('Updated credentials cache');
3922
- }
3923
- async deleteCachedCredentialsAsync(terminal) {
3924
- /* istanbul ignore next */
3925
- cov_ms2xfswbr().f[10]++;
3926
- cov_ms2xfswbr().s[57]++;
3927
- await rush_sdk_1.CredentialCache.usingAsync({
3928
- supportEditing: true
3929
- }, async credentialsCache => {
3930
- /* istanbul ignore next */
3931
- cov_ms2xfswbr().f[11]++;
3932
- cov_ms2xfswbr().s[58]++;
3933
- credentialsCache.deleteCacheEntry(this._credentialCacheId);
3934
- /* istanbul ignore next */
3935
- cov_ms2xfswbr().s[59]++;
3936
- await credentialsCache.saveIfModifiedAsync();
3937
- });
3938
- }
3939
- get _credentialCacheId() {
3940
- /* istanbul ignore next */
3941
- cov_ms2xfswbr().f[12]++;
3942
- cov_ms2xfswbr().s[60]++;
3943
- if (!this.__credentialCacheId) {
3944
- /* istanbul ignore next */
3945
- cov_ms2xfswbr().b[20][0]++;
3946
- const cacheIdParts =
3947
- /* istanbul ignore next */
3948
- (cov_ms2xfswbr().s[61]++, [this._url.href]);
3949
- /* istanbul ignore next */
3950
- cov_ms2xfswbr().s[62]++;
3951
- if (this._isCacheWriteAllowedByConfiguration) {
3952
- /* istanbul ignore next */
3953
- cov_ms2xfswbr().b[21][0]++;
3954
- cov_ms2xfswbr().s[63]++;
3955
- cacheIdParts.push('cacheWriteAllowed');
3956
- } else
3957
- /* istanbul ignore next */
3958
- {
3959
- cov_ms2xfswbr().b[21][1]++;
3960
- }
3961
- cov_ms2xfswbr().s[64]++;
3962
- this.__credentialCacheId = cacheIdParts.join('|');
3963
- } else
3964
- /* istanbul ignore next */
3965
- {
3966
- cov_ms2xfswbr().b[20][1]++;
3967
- }
3968
- cov_ms2xfswbr().s[65]++;
3969
- return this.__credentialCacheId;
3970
- }
3971
- async _http(options) {
3972
- /* istanbul ignore next */
3973
- cov_ms2xfswbr().f[13]++;
3974
- const {
3975
- terminal,
3976
- relUrl,
3977
- method,
3978
- body,
3979
- warningText,
3980
- readBody,
3981
- credentialOptions
3982
- } =
3983
- /* istanbul ignore next */
3984
- (cov_ms2xfswbr().s[66]++, options);
3985
- const safeCredentialOptions =
3986
- /* istanbul ignore next */
3987
- (cov_ms2xfswbr().s[67]++,
3988
- /* istanbul ignore next */
3989
- (cov_ms2xfswbr().b[23][0]++, credentialOptions !== null) &&
3990
- /* istanbul ignore next */
3991
- (cov_ms2xfswbr().b[23][1]++, credentialOptions !== void 0) ?
3992
- /* istanbul ignore next */
3993
- (cov_ms2xfswbr().b[22][0]++, credentialOptions) :
3994
- /* istanbul ignore next */
3995
- (cov_ms2xfswbr().b[22][1]++, CredentialsOptions.Optional));
3996
- const credentials =
3997
- /* istanbul ignore next */
3998
- (cov_ms2xfswbr().s[68]++, await this._tryGetCredentials(safeCredentialOptions));
3999
- const url =
4000
- /* istanbul ignore next */
4001
- (cov_ms2xfswbr().s[69]++, new URL(relUrl, this._url).href);
4002
- const headers =
4003
- /* istanbul ignore next */
4004
- (cov_ms2xfswbr().s[70]++, {});
4005
- /* istanbul ignore next */
4006
- cov_ms2xfswbr().s[71]++;
4007
- if (typeof credentials === 'string') {
4008
- /* istanbul ignore next */
4009
- cov_ms2xfswbr().b[24][0]++;
4010
- cov_ms2xfswbr().s[72]++;
4011
- headers.Authorization = credentials;
4012
- } else
4013
- /* istanbul ignore next */
4014
- {
4015
- cov_ms2xfswbr().b[24][1]++;
4016
- }
4017
- cov_ms2xfswbr().s[73]++;
4018
- for (const [key, value] of Object.entries(this._headers)) {
4019
- /* istanbul ignore next */
4020
- cov_ms2xfswbr().s[74]++;
4021
- if (typeof value === 'string') {
4022
- /* istanbul ignore next */
4023
- cov_ms2xfswbr().b[25][0]++;
4024
- cov_ms2xfswbr().s[75]++;
4025
- headers[key] = value;
4026
- } else
4027
- /* istanbul ignore next */
4028
- {
4029
- cov_ms2xfswbr().b[25][1]++;
4030
- }
4031
- }
4032
- const bodyLength =
4033
- /* istanbul ignore next */
4034
- (cov_ms2xfswbr().s[76]++,
4035
- /* istanbul ignore next */
4036
- (cov_ms2xfswbr().b[26][0]++,
4037
- /* istanbul ignore next */
4038
- (cov_ms2xfswbr().b[28][0]++, body === null) ||
4039
- /* istanbul ignore next */
4040
- (cov_ms2xfswbr().b[28][1]++, body === void 0) ?
4041
- /* istanbul ignore next */
4042
- (cov_ms2xfswbr().b[27][0]++, void 0) :
4043
- /* istanbul ignore next */
4044
- (cov_ms2xfswbr().b[27][1]++, body.length)) ||
4045
- /* istanbul ignore next */
4046
- (cov_ms2xfswbr().b[26][1]++, 'unknown'));
4047
- /* istanbul ignore next */
4048
- cov_ms2xfswbr().s[77]++;
4049
- terminal.writeDebugLine(`[http-build-cache] request: ${method} ${url} ${bodyLength} bytes`);
4050
- const response =
4051
- /* istanbul ignore next */
4052
- (cov_ms2xfswbr().s[78]++, await (0, node_fetch_1.default)(url, {
4053
- method: method,
4054
- headers: headers,
4055
- body: body,
4056
- redirect: 'follow'
4057
- }));
4058
- /* istanbul ignore next */
4059
- cov_ms2xfswbr().s[79]++;
4060
- if (!response.ok) {
4061
- /* istanbul ignore next */
4062
- cov_ms2xfswbr().b[29][0]++;
4063
- cov_ms2xfswbr().s[80]++;
4064
- if (
4065
- /* istanbul ignore next */
4066
- (cov_ms2xfswbr().b[31][0]++, typeof credentials !== 'string') &&
4067
- /* istanbul ignore next */
4068
- (cov_ms2xfswbr().b[31][1]++, safeCredentialOptions === CredentialsOptions.Optional)) {
4069
- /* istanbul ignore next */
4070
- cov_ms2xfswbr().b[30][0]++;
4071
- cov_ms2xfswbr().s[81]++;
4072
- // We tried fetching the resource without credentials and that did not work out
4073
- // Try again but require credentials this time
4074
- // This will trigger the provider to request credentials
4075
- return await this._http(Object.assign(Object.assign({}, options), {
4076
- credentialOptions: CredentialsOptions.Required
4077
- }));
4078
- } else
4079
- /* istanbul ignore next */
4080
- {
4081
- cov_ms2xfswbr().b[30][1]++;
4082
- }
4083
- cov_ms2xfswbr().s[82]++;
4084
- this._reportFailure(terminal, method, response, false, warningText);
4085
- /* istanbul ignore next */
4086
- cov_ms2xfswbr().s[83]++;
4087
- return false;
4088
- } else
4089
- /* istanbul ignore next */
4090
- {
4091
- cov_ms2xfswbr().b[29][1]++;
4092
- }
4093
- const result =
4094
- /* istanbul ignore next */
4095
- (cov_ms2xfswbr().s[84]++, readBody ?
4096
- /* istanbul ignore next */
4097
- (cov_ms2xfswbr().b[32][0]++, Buffer.from(await response.arrayBuffer())) :
4098
- /* istanbul ignore next */
4099
- (cov_ms2xfswbr().b[32][1]++, true));
4100
- /* istanbul ignore next */
4101
- cov_ms2xfswbr().s[85]++;
4102
- terminal.writeDebugLine(`[http-build-cache] actual response: ${response.status} ${url} ${result === true ?
4103
- /* istanbul ignore next */
4104
- (cov_ms2xfswbr().b[33][0]++, 'true') :
4105
- /* istanbul ignore next */
4106
- (cov_ms2xfswbr().b[33][1]++, result.length)} bytes`);
4107
- /* istanbul ignore next */
4108
- cov_ms2xfswbr().s[86]++;
4109
- return result;
4110
- }
4111
- async _tryGetCredentials(options) {
4112
- /* istanbul ignore next */
4113
- cov_ms2xfswbr().f[14]++;
4114
- cov_ms2xfswbr().s[87]++;
4115
- if (options === CredentialsOptions.Omit) {
4116
- /* istanbul ignore next */
4117
- cov_ms2xfswbr().b[34][0]++;
4118
- cov_ms2xfswbr().s[88]++;
4119
- return;
4120
- } else
4121
- /* istanbul ignore next */
4122
- {
4123
- cov_ms2xfswbr().b[34][1]++;
4124
- }
4125
- let credentials =
4126
- /* istanbul ignore next */
4127
- (cov_ms2xfswbr().s[89]++, this._environmentCredential);
4128
- /* istanbul ignore next */
4129
- cov_ms2xfswbr().s[90]++;
4130
- if (credentials === undefined) {
4131
- /* istanbul ignore next */
4132
- cov_ms2xfswbr().b[35][0]++;
4133
- cov_ms2xfswbr().s[91]++;
4134
- credentials = await this._tryGetCredentialsFromCache();
4135
- } else
4136
- /* istanbul ignore next */
4137
- {
4138
- cov_ms2xfswbr().b[35][1]++;
4139
- }
4140
- cov_ms2xfswbr().s[92]++;
4141
- if (
4142
- /* istanbul ignore next */
4143
- (cov_ms2xfswbr().b[37][0]++, typeof credentials !== 'string') &&
4144
- /* istanbul ignore next */
4145
- (cov_ms2xfswbr().b[37][1]++, options === CredentialsOptions.Required)) {
4146
- /* istanbul ignore next */
4147
- cov_ms2xfswbr().b[36][0]++;
4148
- cov_ms2xfswbr().s[93]++;
4149
- throw new Error([`Credentials for ${this._url.href} have not been provided.`, `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`, ``, `For local developers, run:`, ``, ` rush update-cloud-credentials --interactive`, ``].join('\n'));
4150
- } else
4151
- /* istanbul ignore next */
4152
- {
4153
- cov_ms2xfswbr().b[36][1]++;
4154
- }
4155
- cov_ms2xfswbr().s[94]++;
4156
- return credentials;
4157
- }
4158
- async _tryGetCredentialsFromCache() {
4159
- /* istanbul ignore next */
4160
- cov_ms2xfswbr().f[15]++;
4161
- var _a;
4162
- let cacheEntry;
4163
- /* istanbul ignore next */
4164
- cov_ms2xfswbr().s[95]++;
4165
- await rush_sdk_1.CredentialCache.usingAsync({
4166
- supportEditing: false
4167
- }, credentialsCache => {
4168
- /* istanbul ignore next */
4169
- cov_ms2xfswbr().f[16]++;
4170
- cov_ms2xfswbr().s[96]++;
4171
- cacheEntry = credentialsCache.tryGetCacheEntry(this._credentialCacheId);
4172
- });
4173
- /* istanbul ignore next */
4174
- cov_ms2xfswbr().s[97]++;
4175
- if (cacheEntry) {
4176
- /* istanbul ignore next */
4177
- cov_ms2xfswbr().b[38][0]++;
4178
- const expirationTime =
4179
- /* istanbul ignore next */
4180
- (cov_ms2xfswbr().s[98]++,
4181
- /* istanbul ignore next */
4182
- (cov_ms2xfswbr().b[40][0]++, (_a = cacheEntry.expires) === null) ||
4183
- /* istanbul ignore next */
4184
- (cov_ms2xfswbr().b[40][1]++, _a === void 0) ?
4185
- /* istanbul ignore next */
4186
- (cov_ms2xfswbr().b[39][0]++, void 0) :
4187
- /* istanbul ignore next */
4188
- (cov_ms2xfswbr().b[39][1]++, _a.getTime()));
4189
- /* istanbul ignore next */
4190
- cov_ms2xfswbr().s[99]++;
4191
- if (
4192
- /* istanbul ignore next */
4193
- (cov_ms2xfswbr().b[42][0]++, !expirationTime) ||
4194
- /* istanbul ignore next */
4195
- (cov_ms2xfswbr().b[42][1]++, expirationTime >= Date.now())) {
4196
- /* istanbul ignore next */
4197
- cov_ms2xfswbr().b[41][0]++;
4198
- cov_ms2xfswbr().s[100]++;
4199
- return cacheEntry.credential;
4200
- } else
4201
- /* istanbul ignore next */
4202
- {
4203
- cov_ms2xfswbr().b[41][1]++;
4204
- }
4205
- } else
4206
- /* istanbul ignore next */
4207
- {
4208
- cov_ms2xfswbr().b[38][1]++;
4209
- }
4210
- }
4211
- _getFailureType(requestMethod, response, isRedirect) {
4212
- /* istanbul ignore next */
4213
- cov_ms2xfswbr().f[17]++;
4214
- cov_ms2xfswbr().s[101]++;
4215
- if (response.ok) {
4216
- /* istanbul ignore next */
4217
- cov_ms2xfswbr().b[43][0]++;
4218
- cov_ms2xfswbr().s[102]++;
4219
- return FailureType.None;
4220
- } else
4221
- /* istanbul ignore next */
4222
- {
4223
- cov_ms2xfswbr().b[43][1]++;
4224
- }
4225
- cov_ms2xfswbr().s[103]++;
4226
- switch (response.status) {
4227
- case 503:
4228
- /* istanbul ignore next */
4229
- cov_ms2xfswbr().b[44][0]++;
4230
- {
4231
- /* istanbul ignore next */
4232
- cov_ms2xfswbr().s[104]++;
4233
- // We select 503 specifically because this represents "service unavailable" and
4234
- // "rate limit throttle" errors, which are transient issues.
4235
- //
4236
- // There are other 5xx errors, such as 501, that can occur if the request is
4237
- // malformed, so as a general rule we want to let through other 5xx errors
4238
- // so the user can troubleshoot.
4239
- // Don't fail production builds with warnings for transient issues
4240
- return FailureType.Informational;
4241
- }
4242
- case 401:
4243
- /* istanbul ignore next */
4244
- cov_ms2xfswbr().b[44][1]++;
4245
- case 403:
4246
- /* istanbul ignore next */
4247
- cov_ms2xfswbr().b[44][2]++;
4248
- case 407:
4249
- /* istanbul ignore next */
4250
- cov_ms2xfswbr().b[44][3]++;
4251
- {
4252
- /* istanbul ignore next */
4253
- cov_ms2xfswbr().s[105]++;
4254
- if (
4255
- /* istanbul ignore next */
4256
- (cov_ms2xfswbr().b[46][0]++, requestMethod === 'GET') && (
4257
- /* istanbul ignore next */
4258
- (cov_ms2xfswbr().b[46][1]++, isRedirect) ||
4259
- /* istanbul ignore next */
4260
- (cov_ms2xfswbr().b[46][2]++, response.redirected))) {
4261
- /* istanbul ignore next */
4262
- cov_ms2xfswbr().b[45][0]++;
4263
- cov_ms2xfswbr().s[106]++;
4264
- // Cache misses for GET requests are not errors
4265
- // This is a workaround behavior where a server can issue a redirect and we fail to authenticate at the new location.
4266
- // We do not want to signal this as an authentication failure because the authorization header is not passed on to redirects.
4267
- // i.e The authentication header was accepted for the first request and therefore subsequent failures
4268
- // where it was not present should not be attributed to the header.
4269
- // This scenario usually comes up with services that redirect to pre-signed URLS that don't actually exist.
4270
- // Those services then usually treat the 404 as a 403 to prevent leaking information.
4271
- return FailureType.None;
4272
- } else
4273
- /* istanbul ignore next */
4274
- {
4275
- cov_ms2xfswbr().b[45][1]++;
4276
- }
4277
- cov_ms2xfswbr().s[107]++;
4278
- return FailureType.Authentication;
4279
- }
4280
- case 404:
4281
- /* istanbul ignore next */
4282
- cov_ms2xfswbr().b[44][4]++;
4283
- {
4284
- /* istanbul ignore next */
4285
- cov_ms2xfswbr().s[108]++;
4286
- if (requestMethod === 'GET') {
4287
- /* istanbul ignore next */
4288
- cov_ms2xfswbr().b[47][0]++;
4289
- cov_ms2xfswbr().s[109]++;
4290
- // Cache misses for GET requests are not errors
4291
- return FailureType.None;
4292
- } else
4293
- /* istanbul ignore next */
4294
- {
4295
- cov_ms2xfswbr().b[47][1]++;
4296
- }
4297
- }
4298
- }
4299
- // Let dev builds succeed, let Prod builds fail
4300
- /* istanbul ignore next */
4301
- cov_ms2xfswbr().s[110]++;
4302
- return FailureType.Warning;
4303
- }
4304
- _reportFailure(terminal, requestMethod, response, isRedirect, message) {
4305
- /* istanbul ignore next */
4306
- cov_ms2xfswbr().f[18]++;
4307
- cov_ms2xfswbr().s[111]++;
4308
- switch (this._getFailureType(requestMethod, response, isRedirect)) {
4309
- default:
4310
- /* istanbul ignore next */
4311
- cov_ms2xfswbr().b[48][0]++;
4312
- {
4313
- /* istanbul ignore next */
4314
- cov_ms2xfswbr().s[112]++;
4315
- terminal.writeErrorLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
4316
- /* istanbul ignore next */
4317
- cov_ms2xfswbr().s[113]++;
4318
- break;
4319
- }
4320
- case FailureType.Warning:
4321
- /* istanbul ignore next */
4322
- cov_ms2xfswbr().b[48][1]++;
4323
- {
4324
- /* istanbul ignore next */
4325
- cov_ms2xfswbr().s[114]++;
4326
- terminal.writeWarningLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
4327
- /* istanbul ignore next */
4328
- cov_ms2xfswbr().s[115]++;
4329
- break;
4330
- }
4331
- case FailureType.Informational:
4332
- /* istanbul ignore next */
4333
- cov_ms2xfswbr().b[48][2]++;
4334
- {
4335
- /* istanbul ignore next */
4336
- cov_ms2xfswbr().s[116]++;
4337
- terminal.writeLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
4338
- /* istanbul ignore next */
4339
- cov_ms2xfswbr().s[117]++;
4340
- break;
4341
- }
4342
- case FailureType.None:
4343
- /* istanbul ignore next */
4344
- cov_ms2xfswbr().b[48][3]++;
4345
- {
4346
- /* istanbul ignore next */
4347
- cov_ms2xfswbr().s[118]++;
4348
- terminal.writeDebugLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
4349
- /* istanbul ignore next */
4350
- cov_ms2xfswbr().s[119]++;
4351
- break;
4352
- }
4353
- case FailureType.Authentication:
4354
- /* istanbul ignore next */
4355
- cov_ms2xfswbr().b[48][4]++;
4356
- {
4357
- /* istanbul ignore next */
4358
- cov_ms2xfswbr().s[120]++;
4359
- throw new Error([`${this._url.href} responded with ${response.status}: ${response.statusText}.`, `Credentials may be misconfigured or have expired.`, `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`, ``, `For local developers, run:`, ``, ` rush update-cloud-credentials --interactive`, ``].join('\n'));
4360
- }
4361
- }
4362
- }
4363
- }
4364
- /* istanbul ignore next */
4365
- cov_ms2xfswbr().s[121]++;
4366
- exports.HttpBuildCacheProvider = HttpBuildCacheProvider;
4367
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0JLO0lBQUE7TUFBQTtJQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFoQkw7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBRUEsSUFBS0Esa0JBSUo7QUFBQTtBQUFBO0FBSkQsV0FBS0Esa0JBQWtCO0VBQUE7RUFBQTtFQUFBO0VBQ3JCQSxtRUFBUTtFQUFBO0VBQUE7RUFDUkEsbUVBQVE7RUFBQTtFQUFBO0VBQ1JBLDJEQUFJO0FBQ04sQ0FBQztBQUpJO0FBQUEsOENBQWtCO0FBQUE7QUFBQSw0QkFBbEJBLGtCQUFrQjtBQU12QixJQUFLQyxXQU1KO0FBQUE7QUFBQTtBQU5ELFdBQUtBLFdBQVc7RUFBQTtFQUFBO0VBQUE7RUFDZEEsNkNBQUk7RUFBQTtFQUFBO0VBQ0pBLCtEQUFhO0VBQUE7RUFBQTtFQUNiQSxtREFBTztFQUFBO0VBQUE7RUFDUEEsK0NBQUs7RUFBQTtFQUFBO0VBQ0xBLGlFQUFjO0FBQ2hCLENBQUM7QUFOSTtBQUFBLHVDQUFXO0FBQUE7QUFBQSw0QkFBWEEsV0FBVztBQTJCaEIsTUFBYUMsc0JBQXNCO0VBaUJqQ0MsWUFBbUJDLE9BQXVDLEVBQUVDLFdBQXdCO0lBQUE7SUFBQTs7OztJQUNsRixJQUFJLENBQUNDLFdBQVcsR0FBR0YsT0FBTyxDQUFDRyxVQUFVO0lBQUM7SUFBQTtJQUN0QyxJQUFJLENBQUNDLFlBQVksR0FBR0gsV0FBVztJQUFDO0lBQUE7SUFDaEMsSUFBSSxDQUFDSSxnQkFBZ0IsR0FBR0wsT0FBTyxDQUFDTSxlQUFlO0lBQUM7SUFBQTtJQUVoRCxJQUFJLENBQUNDLHNCQUFzQixHQUFHQyxtQ0FBd0IsQ0FBQ0Msb0JBQW9CO0lBQUM7SUFBQTtJQUM1RSxJQUFJLENBQUNDLG1DQUFtQyxHQUFHVixPQUFPLENBQUNXLG1CQUFtQjtJQUFDO0lBQUE7SUFDdkUsSUFBSSxDQUFDQyxJQUFJLEdBQUcsSUFBSUMsR0FBRyxDQUFDYixPQUFPLENBQUNjLEdBQUcsQ0FBQ0MsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUFBO0lBQUEsNEJBQUdmLE9BQU8sQ0FBQ2MsR0FBRztJQUFBO0lBQUEsNEJBQUdkLE9BQU8sQ0FBQ2MsR0FBRyxHQUFHLEdBQUcsRUFBQztJQUFDO0lBQUE7SUFDakYsSUFBSSxDQUFDRSxhQUFhO0lBQUc7SUFBQSx5Q0FBTyxDQUFDQyxZQUFZO0lBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBLDRCQUFJLEtBQUs7SUFBQztJQUFBO0lBQ25ELElBQUksQ0FBQ0MsUUFBUTtJQUFHO0lBQUEseUNBQU8sQ0FBQ0MsT0FBTztJQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQSw0QkFBSSxFQUFFO0lBQUM7SUFBQTtJQUN0QyxJQUFJLENBQUNDLGFBQWEsR0FBR3BCLE9BQU8sQ0FBQ3FCLFlBQVk7SUFBQztJQUFBO0lBQzFDLElBQUksQ0FBQ0MsZUFBZTtJQUFHO0lBQUEsMENBQU8sQ0FBQ0MsY0FBYztJQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQSw2QkFBSSxFQUFFO0VBQ3JEO0VBaEJBLElBQVdaLG1CQUFtQjtJQUFBO0lBQUE7Ozs7SUFDNUIsT0FBTztNQUFBO01BQUEsc0VBQXdCLENBQUNhLHNCQUFzQjtNQUFBO01BQUE7TUFBQTtNQUFBO01BQUE7TUFBQSw2QkFBSSxJQUFJLENBQUNkLG1DQUFtQztJQUFBO0VBQ3BHO0VBZ0JPLE1BQU1lLCtCQUErQixDQUMxQ0MsUUFBbUIsRUFDbkJDLE9BQWU7SUFBQTtJQUFBO0lBQUE7SUFFZixJQUFJO01BQ0YsTUFBTUMsTUFBTTtNQUFBO01BQUEsMEJBQUcsTUFBTSxJQUFJLENBQUNDLEtBQUssQ0FBQztRQUM5QkgsUUFBUSxFQUFFQSxRQUFRO1FBQ2xCSSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUNSLGVBQWUsR0FBR0ssT0FBTyxFQUFFO1FBQzNDSSxNQUFNLEVBQUUsS0FBSztRQUNiQyxJQUFJLEVBQUVDLFNBQVM7UUFDZkMsV0FBVyxFQUFFLDJCQUEyQjtRQUN4Q0MsUUFBUSxFQUFFO09BQ1gsQ0FBQztNQUFDO01BQUE7TUFFSCxPQUFPQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ1QsTUFBTSxDQUFDO01BQUE7TUFBQSw2QkFBR0EsTUFBTTtNQUFBO01BQUEsNkJBQUdLLFNBQVM7S0FDcEQsQ0FBQyxPQUFPSyxDQUFDLEVBQUU7TUFBQTtNQUFBO01BQ1ZaLFFBQVEsQ0FBQ2EsZ0JBQWdCLENBQUMsOEJBQThCRCxDQUFDLEVBQUUsQ0FBQztNQUFDO01BQUE7TUFDN0QsT0FBT0wsU0FBUzs7RUFFcEI7RUFFTyxNQUFNTywyQkFBMkIsQ0FDdENkLFFBQW1CLEVBQ25CQyxPQUFlLEVBQ2ZjLFlBQW9CO0lBQUE7SUFBQTtJQUFBO0lBRXBCLElBQUksQ0FBQyxJQUFJLENBQUM5QixtQkFBbUIsRUFBRTtNQUFBO01BQUE7TUFBQTtNQUM3QmUsUUFBUSxDQUFDZ0IsY0FBYyxDQUFDLCtEQUErRCxDQUFDO01BQUM7TUFBQTtNQUN6RixPQUFPLEtBQUs7S0FDYjtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFFRGhCLFFBQVEsQ0FBQ2lCLGNBQWMsQ0FBQyxpQ0FBaUMsRUFBRWhCLE9BQU8sQ0FBQztJQUFDO0lBQUE7SUFFcEUsSUFBSTtNQUNGLE1BQU1DLE1BQU07TUFBQTtNQUFBLDBCQUFHLE1BQU0sSUFBSSxDQUFDQyxLQUFLLENBQUM7UUFDOUJILFFBQVEsRUFBRUEsUUFBUTtRQUNsQkksTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDUixlQUFlLEdBQUdLLE9BQU8sRUFBRTtRQUMzQ0ksTUFBTSxFQUFFLElBQUksQ0FBQ2YsYUFBYTtRQUMxQmdCLElBQUksRUFBRVMsWUFBWTtRQUNsQlAsV0FBVyxFQUFFLDZCQUE2QjtRQUMxQ0MsUUFBUSxFQUFFO09BQ1gsQ0FBQztNQUFDO01BQUE7TUFFSCxPQUFPUCxNQUFNLEtBQUssS0FBSztLQUN4QixDQUFDLE9BQU9VLENBQUMsRUFBRTtNQUFBO01BQUE7TUFDVlosUUFBUSxDQUFDYSxnQkFBZ0IsQ0FBQyxnQ0FBZ0NELENBQUMsRUFBRSxDQUFDO01BQUM7TUFBQTtNQUMvRCxPQUFPLEtBQUs7O0VBRWhCO0VBRU8sTUFBTU0sMkJBQTJCLENBQUNsQixRQUFtQixFQUFFbUIsVUFBa0I7SUFBQTtJQUFBO0lBQUE7SUFDOUUsTUFBTXJDLDBCQUFlLENBQUNzQyxVQUFVLENBQzlCO01BQ0VDLGNBQWMsRUFBRTtLQUNqQixFQUNELE1BQU9DLGdCQUFpQyxJQUFJO01BQUE7TUFBQTtNQUFBO01BQzFDQSxnQkFBZ0IsQ0FBQ0MsYUFBYSxDQUFDLElBQUksQ0FBQ0Msa0JBQWtCLEVBQUU7UUFDdERMLFVBQVUsRUFBRUE7T0FDYixDQUFDO01BQUM7TUFBQTtNQUNILE1BQU1HLGdCQUFnQixDQUFDRyxtQkFBbUIsRUFBRTtJQUM5QyxDQUFDLENBQ0Y7RUFDSDtFQUVPLE1BQU1DLHNDQUFzQyxDQUFDMUIsUUFBbUI7SUFBQTtJQUFBO0lBQUE7SUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQ04sYUFBYSxFQUFFO01BQUE7TUFBQTtNQUFBO01BQ3ZCLE1BQU0sSUFBSWlDLEtBQUssQ0FDYiw2REFBNkQsR0FDM0QsaUVBQWlFLElBQUksQ0FBQ25ELFdBQVcsNEZBQTRGLEdBQzdLLG1HQUFtRyxHQUNuRyxzQ0FBc0MsSUFBSSxDQUFDVSxJQUFJLENBQUMwQyxJQUFJLEVBQUUsQ0FDekQ7S0FDRjtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBRUQsTUFBTUMsR0FBRztJQUFBO0lBQUEsMEJBQVcsR0FBRyxJQUFJLENBQUNuQyxhQUFhLENBQUNvQyxJQUFJLElBQUk7SUFBQztJQUFBLGlDQUFJLENBQUNwQyxhQUFhLENBQUNxQyxJQUFJO0lBQUE7SUFBQSw2QkFBSSxFQUFFLEdBQUVDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUFDO0lBQUE7SUFDOUZoQyxRQUFRLENBQUNpQyxnQkFBZ0IsQ0FBQyxZQUFZSixHQUFHLHNCQUFzQixDQUFDO0lBQ2hFLE1BQU0zQixNQUFNO0lBQUE7SUFBQSwwQkFBR2dDLDhCQUFVLENBQUNDLFNBQVMsQ0FBQyxJQUFJLENBQUN6QyxhQUFhLENBQUNvQyxJQUFJO0lBQUU7SUFBQSxpQ0FBSSxDQUFDcEMsYUFBYSxDQUFDcUMsSUFBSTtJQUFBO0lBQUEsNkJBQUksRUFBRSxFQUFDO0lBQUM7SUFBQTtJQUU1Ri9CLFFBQVEsQ0FBQ2dCLGNBQWMsQ0FBQ2QsTUFBTSxDQUFDa0MsTUFBTSxDQUFDO0lBQUM7SUFBQTtJQUV2QyxJQUFJbEMsTUFBTSxDQUFDbUMsS0FBSyxFQUFFO01BQUE7TUFBQTtNQUFBO01BQ2hCLE1BQU0sSUFBSVYsS0FBSyxDQUFDLDhDQUE4Q0UsR0FBRyxXQUFXLENBQUM7S0FDOUU7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUVELE1BQU1WLFVBQVU7SUFBQTtJQUFBLDBCQUFHakIsTUFBTSxDQUFDb0MsTUFBTSxDQUFDQyxJQUFJLEVBQUU7SUFBQztJQUFBO0lBQ3hDdkMsUUFBUSxDQUFDaUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUM7SUFBQztJQUFBO0lBRTdDLE1BQU0sSUFBSSxDQUFDZiwyQkFBMkIsQ0FBQ2xCLFFBQVEsRUFBRW1CLFVBQVUsQ0FBQztJQUFDO0lBQUE7SUFFN0RuQixRQUFRLENBQUN3QyxTQUFTLENBQUMsMkJBQTJCLENBQUM7RUFDakQ7RUFFTyxNQUFNQyw0QkFBNEIsQ0FBQ3pDLFFBQW1CO0lBQUE7SUFBQTtJQUFBO0lBQzNELE1BQU1sQiwwQkFBZSxDQUFDc0MsVUFBVSxDQUM5QjtNQUNFQyxjQUFjLEVBQUU7S0FDakIsRUFDRCxNQUFPQyxnQkFBaUMsSUFBSTtNQUFBO01BQUE7TUFBQTtNQUMxQ0EsZ0JBQWdCLENBQUNvQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUNsQixrQkFBa0IsQ0FBQztNQUFDO01BQUE7TUFDM0QsTUFBTUYsZ0JBQWdCLENBQUNHLG1CQUFtQixFQUFFO0lBQzlDLENBQUMsQ0FDRjtFQUNIO0VBRUEsSUFBWUQsa0JBQWtCO0lBQUE7SUFBQTtJQUFBO0lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUNtQixtQkFBbUIsRUFBRTtNQUFBO01BQUE7TUFDN0IsTUFBTUMsWUFBWTtNQUFBO01BQUEsMEJBQWEsQ0FBQyxJQUFJLENBQUMxRCxJQUFJLENBQUMwQyxJQUFJLENBQUM7TUFBQztNQUFBO01BRWhELElBQUksSUFBSSxDQUFDNUMsbUNBQW1DLEVBQUU7UUFBQTtRQUFBO1FBQUE7UUFDNUM0RCxZQUFZLENBQUNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztPQUN2QztNQUFBO01BQUE7UUFBQTtNQUFBO01BQUE7TUFFRCxJQUFJLENBQUNGLG1CQUFtQixHQUFHQyxZQUFZLENBQUNaLElBQUksQ0FBQyxHQUFHLENBQUM7S0FDbEQ7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBRUQsT0FBTyxJQUFJLENBQUNXLG1CQUFtQjtFQUNqQztFQUVRLE1BQU14QyxLQUFLLENBQUM3QixPQVFuQjtJQUFBO0lBQUE7SUFDQyxNQUFNO01BQUUwQixRQUFRO01BQUVJLE1BQU07TUFBRUMsTUFBTTtNQUFFQyxJQUFJO01BQUVFLFdBQVc7TUFBRUMsUUFBUTtNQUFFcUM7SUFBaUIsQ0FBRTtJQUFBO0lBQUEsMEJBQUd4RSxPQUFPO0lBQzVGLE1BQU15RSxxQkFBcUI7SUFBQTtJQUFBO0lBQUc7SUFBQSw4Q0FBaUI7SUFBQTtJQUFBLDZCQUFqQkQsaUJBQWlCO0lBQUE7SUFBQSw2QkFBakJBLGlCQUFpQjtJQUFBO0lBQUEsNkJBQUk1RSxrQkFBa0IsQ0FBQzhFLFFBQVE7SUFDOUUsTUFBTUMsV0FBVztJQUFBO0lBQUEsMEJBQUcsTUFBTSxJQUFJLENBQUNDLGtCQUFrQixDQUFDSCxxQkFBcUIsQ0FBQztJQUN4RSxNQUFNM0QsR0FBRztJQUFBO0lBQUEsMEJBQUcsSUFBSUQsR0FBRyxDQUFDaUIsTUFBTSxFQUFFLElBQUksQ0FBQ2xCLElBQUksQ0FBQyxDQUFDMEMsSUFBSTtJQUUzQyxNQUFNbkMsT0FBTztJQUFBO0lBQUEsMEJBQTJCLEVBQUU7SUFBQztJQUFBO0lBQzNDLElBQUksT0FBT3dELFdBQVcsS0FBSyxRQUFRLEVBQUU7TUFBQTtNQUFBO01BQUE7TUFDbkN4RCxPQUFPLENBQUMwRCxhQUFhLEdBQUdGLFdBQVc7S0FDcEM7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBRUQsS0FBSyxNQUFNLENBQUNHLEdBQUcsRUFBRUMsS0FBSyxDQUFDLElBQUlDLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQy9ELFFBQVEsQ0FBQyxFQUFFO01BQUE7TUFBQTtNQUN4RCxJQUFJLE9BQU82RCxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQUE7UUFBQTtRQUFBO1FBQzdCNUQsT0FBTyxDQUFDMkQsR0FBRyxDQUFDLEdBQUdDLEtBQUs7T0FDckI7TUFBQTtNQUFBO1FBQUE7TUFBQTs7SUFHSCxNQUFNRyxVQUFVO0lBQUE7SUFBQTtJQUFHO0lBQUE7SUFBQztJQUFBLGlDQUEyQjtJQUFBO0lBQUEsNkJBQTNCbEQsSUFBSTtJQUFBO0lBQUE7SUFBQTtJQUFBLDZCQUFKQSxJQUFJLENBQXlCbUQsTUFBTTtJQUFBO0lBQUEsNkJBQUksU0FBUztJQUFDO0lBQUE7SUFFckV6RCxRQUFRLENBQUNpQixjQUFjLENBQUMsK0JBQStCWixNQUFNLElBQUlqQixHQUFHLElBQUlvRSxVQUFVLFFBQVEsQ0FBQztJQUUzRixNQUFNRSxRQUFRO0lBQUE7SUFBQSwwQkFBRyxNQUFNLHdCQUFLLEVBQUN0RSxHQUFHLEVBQUU7TUFDaENpQixNQUFNLEVBQUVBLE1BQU07TUFDZFosT0FBTyxFQUFFQSxPQUFPO01BQ2hCYSxJQUFJLEVBQUVBLElBQUk7TUFDVnFELFFBQVEsRUFBRTtLQUNYLENBQUM7SUFBQztJQUFBO0lBRUgsSUFBSSxDQUFDRCxRQUFRLENBQUNFLEVBQUUsRUFBRTtNQUFBO01BQUE7TUFBQTtNQUNoQjtNQUFJO01BQUEsb0NBQU9YLFdBQVcsS0FBSyxRQUFRO01BQUE7TUFBQSw2QkFBSUYscUJBQXFCLEtBQUs3RSxrQkFBa0IsQ0FBQzhFLFFBQVEsR0FBRTtRQUFBO1FBQUE7UUFBQTtRQUM1RjtRQUNBO1FBQ0E7UUFDQSxPQUFPLE1BQU0sSUFBSSxDQUFDN0MsS0FBSyxpQ0FBTTdCLE9BQU87VUFBRXdFLGlCQUFpQixFQUFFNUUsa0JBQWtCLENBQUMyRjtRQUFRLEdBQUc7T0FDeEY7TUFBQTtNQUFBO1FBQUE7TUFBQTtNQUFBO01BRUQsSUFBSSxDQUFDQyxjQUFjLENBQUM5RCxRQUFRLEVBQUVLLE1BQU0sRUFBRXFELFFBQVEsRUFBRSxLQUFLLEVBQUVsRCxXQUFXLENBQUM7TUFBQztNQUFBO01BQ3BFLE9BQU8sS0FBSztLQUNiO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFFRCxNQUFNTixNQUFNO0lBQUE7SUFBQSwwQkFBcUJPLFFBQVE7SUFBQTtJQUFBLDZCQUFHQyxNQUFNLENBQUNxRCxJQUFJLENBQUMsTUFBTUwsUUFBUSxDQUFDTSxXQUFXLEVBQUUsQ0FBQztJQUFBO0lBQUEsNkJBQUcsSUFBSTtJQUFDO0lBQUE7SUFFN0ZoRSxRQUFRLENBQUNpQixjQUFjLENBQ3JCLHVDQUF1Q3lDLFFBQVEsQ0FBQ08sTUFBTSxJQUFJN0UsR0FBRyxJQUMzRGMsTUFBTSxLQUFLLElBQUk7SUFBQTtJQUFBLDZCQUFHLE1BQU07SUFBQTtJQUFBLDZCQUFHQSxNQUFNLENBQUN1RCxNQUNwQyxTQUFRLENBQ1Q7SUFBQztJQUFBO0lBRUYsT0FBT3ZELE1BQU07RUFDZjtFQU1RLE1BQU1nRCxrQkFBa0IsQ0FBQzVFLE9BQTJCO0lBQUE7SUFBQTtJQUFBO0lBQzFELElBQUlBLE9BQU8sS0FBS0osa0JBQWtCLENBQUNnRyxJQUFJLEVBQUU7TUFBQTtNQUFBO01BQUE7TUFDdkM7S0FDRDtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBRUQsSUFBSWpCLFdBQVc7SUFBQTtJQUFBLDBCQUF1QixJQUFJLENBQUNwRSxzQkFBc0I7SUFBQztJQUFBO0lBRWxFLElBQUlvRSxXQUFXLEtBQUsxQyxTQUFTLEVBQUU7TUFBQTtNQUFBO01BQUE7TUFDN0IwQyxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUNrQiwyQkFBMkIsRUFBRTtLQUN2RDtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFFRDtJQUFJO0lBQUEsb0NBQU9sQixXQUFXLEtBQUssUUFBUTtJQUFBO0lBQUEsNkJBQUkzRSxPQUFPLEtBQUtKLGtCQUFrQixDQUFDMkYsUUFBUSxHQUFFO01BQUE7TUFBQTtNQUFBO01BQzlFLE1BQU0sSUFBSWxDLEtBQUssQ0FDYixDQUNFLG1CQUFtQixJQUFJLENBQUN6QyxJQUFJLENBQUMwQyxJQUFJLDBCQUEwQixFQUMzRCw2RkFBNkYsRUFDN0YsRUFBRSxFQUNGLDRCQUE0QixFQUM1QixFQUFFLEVBQ0YsaURBQWlELEVBQ2pELEVBQUUsQ0FDSCxDQUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2I7S0FDRjtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFFRCxPQUFPaUIsV0FBVztFQUNwQjtFQUVRLE1BQU1rQiwyQkFBMkI7SUFBQTtJQUFBOztJQUN2QyxJQUFJQyxVQUE2QztJQUFDO0lBQUE7SUFFbEQsTUFBTXRGLDBCQUFlLENBQUNzQyxVQUFVLENBQzlCO01BQ0VDLGNBQWMsRUFBRTtLQUNqQixFQUNBQyxnQkFBaUMsSUFBSTtNQUFBO01BQUE7TUFBQTtNQUNwQzhDLFVBQVUsR0FBRzlDLGdCQUFnQixDQUFDK0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDN0Msa0JBQWtCLENBQUM7SUFDekUsQ0FBQyxDQUNGO0lBQUM7SUFBQTtJQUVGLElBQUk0QyxVQUFVLEVBQUU7TUFBQTtNQUFBO01BQ2QsTUFBTUUsY0FBYztNQUFBO01BQUE7TUFBdUI7TUFBQSw2Q0FBVSxDQUFDQyxPQUFPO01BQUE7TUFBQTtNQUFBO01BQUE7TUFBQTtNQUFBLGdDQUFFQyxPQUFPLEVBQUU7TUFBQztNQUFBO01BQ3pFO01BQUk7TUFBQSw4QkFBQ0YsY0FBYztNQUFBO01BQUEsNkJBQUlBLGNBQWMsSUFBSUcsSUFBSSxDQUFDQyxHQUFHLEVBQUUsR0FBRTtRQUFBO1FBQUE7UUFBQTtRQUNuRCxPQUFPTixVQUFVLENBQUNqRCxVQUFVO09BQzdCO01BQUE7TUFBQTtRQUFBO01BQUE7S0FDRjtJQUFBO0lBQUE7TUFBQTtJQUFBO0VBQ0g7RUFFUXdELGVBQWUsQ0FBQ0MsYUFBcUIsRUFBRWxCLFFBQWtCLEVBQUVtQixVQUFtQjtJQUFBO0lBQUE7SUFBQTtJQUNwRixJQUFJbkIsUUFBUSxDQUFDRSxFQUFFLEVBQUU7TUFBQTtNQUFBO01BQUE7TUFDZixPQUFPekYsV0FBVyxDQUFDMkcsSUFBSTtLQUN4QjtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFFRCxRQUFRcEIsUUFBUSxDQUFDTyxNQUFNO01BQ3JCLEtBQUssR0FBRztRQUFBO1FBQUE7UUFBRTtVQUFBO1VBQUE7VUFDUjtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFFQTtVQUNBLE9BQU85RixXQUFXLENBQUM0RyxhQUFhOztNQUdsQyxLQUFLLEdBQUc7UUFBQTtRQUFBO01BQ1IsS0FBSyxHQUFHO1FBQUE7UUFBQTtNQUNSLEtBQUssR0FBRztRQUFBO1FBQUE7UUFBRTtVQUFBO1VBQUE7VUFDUjtVQUFJO1VBQUEsMENBQWEsS0FBSyxLQUFLO1VBQUs7VUFBQSx1Q0FBVTtVQUFBO1VBQUEsNkJBQUlyQixRQUFRLENBQUNzQixVQUFVLEVBQUMsRUFBRTtZQUFBO1lBQUE7WUFBQTtZQUNsRTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBLE9BQU83RyxXQUFXLENBQUMyRyxJQUFJO1dBQ3hCO1VBQUE7VUFBQTtZQUFBO1VBQUE7VUFBQTtVQUVELE9BQU8zRyxXQUFXLENBQUM4RyxjQUFjOztNQUduQyxLQUFLLEdBQUc7UUFBQTtRQUFBO1FBQUU7VUFBQTtVQUFBO1VBQ1IsSUFBSUwsYUFBYSxLQUFLLEtBQUssRUFBRTtZQUFBO1lBQUE7WUFBQTtZQUMzQjtZQUNBLE9BQU96RyxXQUFXLENBQUMyRyxJQUFJO1dBQ3hCO1VBQUE7VUFBQTtZQUFBO1VBQUE7O0lBQ0Y7SUFHSDtJQUFBO0lBQUE7SUFDQSxPQUFPM0csV0FBVyxDQUFDK0csT0FBTztFQUM1QjtFQUVRcEIsY0FBYyxDQUNwQjlELFFBQW1CLEVBQ25CNEUsYUFBcUIsRUFDckJsQixRQUFrQixFQUNsQm1CLFVBQW1CLEVBQ25CTSxPQUFlO0lBQUE7SUFBQTtJQUFBO0lBRWYsUUFBUSxJQUFJLENBQUNSLGVBQWUsQ0FBQ0MsYUFBYSxFQUFFbEIsUUFBUSxFQUFFbUIsVUFBVSxDQUFDO01BQy9EO1FBQUE7UUFBQTtRQUFTO1VBQUE7VUFBQTtVQUNQN0UsUUFBUSxDQUFDZ0IsY0FBYyxDQUFDLEdBQUdtRSxPQUFPLFVBQVV6QixRQUFRLENBQUNPLE1BQU0sS0FBS1AsUUFBUSxDQUFDMEIsVUFBVSxFQUFFLENBQUM7VUFBQztVQUFBO1VBQ3ZGOztNQUdGLEtBQUtqSCxXQUFXLENBQUMrRyxPQUFPO1FBQUE7UUFBQTtRQUFFO1VBQUE7VUFBQTtVQUN4QmxGLFFBQVEsQ0FBQ2EsZ0JBQWdCLENBQUMsR0FBR3NFLE9BQU8sVUFBVXpCLFFBQVEsQ0FBQ08sTUFBTSxLQUFLUCxRQUFRLENBQUMwQixVQUFVLEVBQUUsQ0FBQztVQUFDO1VBQUE7VUFDekY7O01BR0YsS0FBS2pILFdBQVcsQ0FBQzRHLGFBQWE7UUFBQTtRQUFBO1FBQUU7VUFBQTtVQUFBO1VBQzlCL0UsUUFBUSxDQUFDd0MsU0FBUyxDQUFDLEdBQUcyQyxPQUFPLFVBQVV6QixRQUFRLENBQUNPLE1BQU0sS0FBS1AsUUFBUSxDQUFDMEIsVUFBVSxFQUFFLENBQUM7VUFBQztVQUFBO1VBQ2xGOztNQUdGLEtBQUtqSCxXQUFXLENBQUMyRyxJQUFJO1FBQUE7UUFBQTtRQUFFO1VBQUE7VUFBQTtVQUNyQjlFLFFBQVEsQ0FBQ2lCLGNBQWMsQ0FBQyxHQUFHa0UsT0FBTyxVQUFVekIsUUFBUSxDQUFDTyxNQUFNLEtBQUtQLFFBQVEsQ0FBQzBCLFVBQVUsRUFBRSxDQUFDO1VBQUM7VUFBQTtVQUN2Rjs7TUFHRixLQUFLakgsV0FBVyxDQUFDOEcsY0FBYztRQUFBO1FBQUE7UUFBRTtVQUFBO1VBQUE7VUFDL0IsTUFBTSxJQUFJdEQsS0FBSyxDQUNiLENBQ0UsR0FBRyxJQUFJLENBQUN6QyxJQUFJLENBQUMwQyxJQUFJLG1CQUFtQjhCLFFBQVEsQ0FBQ08sTUFBTSxLQUFLUCxRQUFRLENBQUMwQixVQUFVLEdBQUcsRUFDOUUsbURBQW1ELEVBQ25ELDZGQUE2RixFQUM3RixFQUFFLEVBQ0YsNEJBQTRCLEVBQzVCLEVBQUUsRUFDRixpREFBaUQsRUFDakQsRUFBRSxDQUNILENBQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2I7O0lBQ0Y7RUFFTDs7QUFDRDtBQUFBO0FBL1ZEcUQiLCJuYW1lcyI6WyJDcmVkZW50aWFsc09wdGlvbnMiLCJGYWlsdXJlVHlwZSIsIkh0dHBCdWlsZENhY2hlUHJvdmlkZXIiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJydXNoU2Vzc2lvbiIsIl9wbHVnaW5OYW1lIiwicGx1Z2luTmFtZSIsIl9ydXNoU2Vzc2lvbiIsIl9ydXNoUHJvamVjdFJvb3QiLCJydXNoUHJvamVjdFJvb3QiLCJfZW52aXJvbm1lbnRDcmVkZW50aWFsIiwicnVzaF9zZGtfMSIsImJ1aWxkQ2FjaGVDcmVkZW50aWFsIiwiX2lzQ2FjaGVXcml0ZUFsbG93ZWRCeUNvbmZpZ3VyYXRpb24iLCJpc0NhY2hlV3JpdGVBbGxvd2VkIiwiX3VybCIsIlVSTCIsInVybCIsImVuZHNXaXRoIiwiX3VwbG9hZE1ldGhvZCIsInVwbG9hZE1ldGhvZCIsIl9oZWFkZXJzIiwiaGVhZGVycyIsIl90b2tlbkhhbmRsZXIiLCJ0b2tlbkhhbmRsZXIiLCJfY2FjaGVLZXlQcmVmaXgiLCJjYWNoZUtleVByZWZpeCIsImJ1aWxkQ2FjaGVXcml0ZUFsbG93ZWQiLCJ0cnlHZXRDYWNoZUVudHJ5QnVmZmVyQnlJZEFzeW5jIiwidGVybWluYWwiLCJjYWNoZUlkIiwicmVzdWx0IiwiX2h0dHAiLCJyZWxVcmwiLCJtZXRob2QiLCJib2R5IiwidW5kZWZpbmVkIiwid2FybmluZ1RleHQiLCJyZWFkQm9keSIsIkJ1ZmZlciIsImlzQnVmZmVyIiwiZSIsIndyaXRlV2FybmluZ0xpbmUiLCJ0cnlTZXRDYWNoZUVudHJ5QnVmZmVyQXN5bmMiLCJvYmplY3RCdWZmZXIiLCJ3cml0ZUVycm9yTGluZSIsIndyaXRlRGVidWdMaW5lIiwidXBkYXRlQ2FjaGVkQ3JlZGVudGlhbEFzeW5jIiwiY3JlZGVudGlhbCIsInVzaW5nQXN5bmMiLCJzdXBwb3J0RWRpdGluZyIsImNyZWRlbnRpYWxzQ2FjaGUiLCJzZXRDYWNoZUVudHJ5IiwiX2NyZWRlbnRpYWxDYWNoZUlkIiwic2F2ZUlmTW9kaWZpZWRBc3luYyIsInVwZGF0ZUNhY2hlZENyZWRlbnRpYWxJbnRlcmFjdGl2ZUFzeW5jIiwiRXJyb3IiLCJocmVmIiwiY21kIiwiZXhlYyIsImFyZ3MiLCJqb2luIiwid3JpdGVWZXJib3NlTGluZSIsIm5vZGVfY29yZV9saWJyYXJ5XzEiLCJzcGF3blN5bmMiLCJzdGRlcnIiLCJlcnJvciIsInN0ZG91dCIsInRyaW0iLCJ3cml0ZUxpbmUiLCJkZWxldGVDYWNoZWRDcmVkZW50aWFsc0FzeW5jIiwiZGVsZXRlQ2FjaGVFbnRyeSIsIl9fY3JlZGVudGlhbENhY2hlSWQiLCJjYWNoZUlkUGFydHMiLCJwdXNoIiwiY3JlZGVudGlhbE9wdGlvbnMiLCJzYWZlQ3JlZGVudGlhbE9wdGlvbnMiLCJPcHRpb25hbCIsImNyZWRlbnRpYWxzIiwiX3RyeUdldENyZWRlbnRpYWxzIiwiQXV0aG9yaXphdGlvbiIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsImJvZHlMZW5ndGgiLCJsZW5ndGgiLCJyZXNwb25zZSIsInJlZGlyZWN0Iiwib2siLCJSZXF1aXJlZCIsIl9yZXBvcnRGYWlsdXJlIiwiZnJvbSIsImFycmF5QnVmZmVyIiwic3RhdHVzIiwiT21pdCIsIl90cnlHZXRDcmVkZW50aWFsc0Zyb21DYWNoZSIsImNhY2hlRW50cnkiLCJ0cnlHZXRDYWNoZUVudHJ5IiwiZXhwaXJhdGlvblRpbWUiLCJleHBpcmVzIiwiZ2V0VGltZSIsIkRhdGUiLCJub3ciLCJfZ2V0RmFpbHVyZVR5cGUiLCJyZXF1ZXN0TWV0aG9kIiwiaXNSZWRpcmVjdCIsIk5vbmUiLCJJbmZvcm1hdGlvbmFsIiwicmVkaXJlY3RlZCIsIkF1dGhlbnRpY2F0aW9uIiwiV2FybmluZyIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvcnVzaC1wbHVnaW5zL3J1c2gtaHR0cC1idWlsZC1jYWNoZS1wbHVnaW4vc3JjL0h0dHBCdWlsZENhY2hlUHJvdmlkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRlcm1pbmFsLCBFeGVjdXRhYmxlIH0gZnJvbSAnQHJ1c2hzdGFjay9ub2RlLWNvcmUtbGlicmFyeSc7XG5pbXBvcnQge1xuICBJQ2xvdWRCdWlsZENhY2hlUHJvdmlkZXIsXG4gIElDcmVkZW50aWFsQ2FjaGVFbnRyeSxcbiAgQ3JlZGVudGlhbENhY2hlLFxuICBSdXNoU2Vzc2lvbixcbiAgRW52aXJvbm1lbnRDb25maWd1cmF0aW9uXG59IGZyb20gJ0BydXNoc3RhY2svcnVzaC1zZGsnO1xuaW1wb3J0IGZldGNoLCB7IEJvZHlJbml0LCBSZXNwb25zZSB9IGZyb20gJ25vZGUtZmV0Y2gnO1xuXG5lbnVtIENyZWRlbnRpYWxzT3B0aW9ucyB7XG4gIE9wdGlvbmFsLFxuICBSZXF1aXJlZCxcbiAgT21pdFxufVxuXG5lbnVtIEZhaWx1cmVUeXBlIHtcbiAgTm9uZSxcbiAgSW5mb3JtYXRpb25hbCxcbiAgV2FybmluZyxcbiAgRXJyb3IsXG4gIEF1dGhlbnRpY2F0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUh0dHBCdWlsZENhY2hlVG9rZW5IYW5kbGVyIHtcbiAgZXhlYzogc3RyaW5nO1xuICBhcmdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwQnVpbGRDYWNoZVByb3ZpZGVyT3B0aW9ucyB7XG4gIHVybDogc3RyaW5nO1xuICB0b2tlbkhhbmRsZXI/OiBJSHR0cEJ1aWxkQ2FjaGVUb2tlbkhhbmRsZXI7XG4gIHVwbG9hZE1ldGhvZD86IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGNhY2hlS2V5UHJlZml4Pzogc3RyaW5nO1xuICBpc0NhY2hlV3JpdGVBbGxvd2VkOiBib29sZWFuO1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIHJ1c2hQcm9qZWN0Um9vdDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSHR0cEJ1aWxkQ2FjaGVQcm92aWRlciBpbXBsZW1lbnRzIElDbG91ZEJ1aWxkQ2FjaGVQcm92aWRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BsdWdpbk5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVzaFNlc3Npb246IFJ1c2hTZXNzaW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ydXNoUHJvamVjdFJvb3Q6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfZW52aXJvbm1lbnRDcmVkZW50aWFsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzQ2FjaGVXcml0ZUFsbG93ZWRCeUNvbmZpZ3VyYXRpb246IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3VybDogVVJMO1xuICBwcml2YXRlIHJlYWRvbmx5IF91cGxvYWRNZXRob2Q6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGVLZXlQcmVmaXg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfdG9rZW5IYW5kbGVyOiBJSHR0cEJ1aWxkQ2FjaGVUb2tlbkhhbmRsZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX19jcmVkZW50aWFsQ2FjaGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBnZXQgaXNDYWNoZVdyaXRlQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW52aXJvbm1lbnRDb25maWd1cmF0aW9uLmJ1aWxkQ2FjaGVXcml0ZUFsbG93ZWQgPz8gdGhpcy5faXNDYWNoZVdyaXRlQWxsb3dlZEJ5Q29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBJSHR0cEJ1aWxkQ2FjaGVQcm92aWRlck9wdGlvbnMsIHJ1c2hTZXNzaW9uOiBSdXNoU2Vzc2lvbikge1xuICAgIHRoaXMuX3BsdWdpbk5hbWUgPSBvcHRpb25zLnBsdWdpbk5hbWU7XG4gICAgdGhpcy5fcnVzaFNlc3Npb24gPSBydXNoU2Vzc2lvbjtcbiAgICB0aGlzLl9ydXNoUHJvamVjdFJvb3QgPSBvcHRpb25zLnJ1c2hQcm9qZWN0Um9vdDtcblxuICAgIHRoaXMuX2Vudmlyb25tZW50Q3JlZGVudGlhbCA9IEVudmlyb25tZW50Q29uZmlndXJhdGlvbi5idWlsZENhY2hlQ3JlZGVudGlhbDtcbiAgICB0aGlzLl9pc0NhY2hlV3JpdGVBbGxvd2VkQnlDb25maWd1cmF0aW9uID0gb3B0aW9ucy5pc0NhY2hlV3JpdGVBbGxvd2VkO1xuICAgIHRoaXMuX3VybCA9IG5ldyBVUkwob3B0aW9ucy51cmwuZW5kc1dpdGgoJy8nKSA/IG9wdGlvbnMudXJsIDogb3B0aW9ucy51cmwgKyAnLycpO1xuICAgIHRoaXMuX3VwbG9hZE1ldGhvZCA9IG9wdGlvbnMudXBsb2FkTWV0aG9kID8/ICdQVVQnO1xuICAgIHRoaXMuX2hlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8ge307XG4gICAgdGhpcy5fdG9rZW5IYW5kbGVyID0gb3B0aW9ucy50b2tlbkhhbmRsZXI7XG4gICAgdGhpcy5fY2FjaGVLZXlQcmVmaXggPSBvcHRpb25zLmNhY2hlS2V5UHJlZml4ID8/ICcnO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRyeUdldENhY2hlRW50cnlCdWZmZXJCeUlkQXN5bmMoXG4gICAgdGVybWluYWw6IElUZXJtaW5hbCxcbiAgICBjYWNoZUlkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxCdWZmZXIgfCB1bmRlZmluZWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5faHR0cCh7XG4gICAgICAgIHRlcm1pbmFsOiB0ZXJtaW5hbCxcbiAgICAgICAgcmVsVXJsOiBgJHt0aGlzLl9jYWNoZUtleVByZWZpeH0ke2NhY2hlSWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgYm9keTogdW5kZWZpbmVkLFxuICAgICAgICB3YXJuaW5nVGV4dDogJ0NvdWxkIG5vdCBnZXQgY2FjaGUgZW50cnknLFxuICAgICAgICByZWFkQm9keTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBCdWZmZXIuaXNCdWZmZXIocmVzdWx0KSA/IHJlc3VsdCA6IHVuZGVmaW5lZDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0ZXJtaW5hbC53cml0ZVdhcm5pbmdMaW5lKGBFcnJvciBnZXR0aW5nIGNhY2hlIGVudHJ5OiAke2V9YCk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0cnlTZXRDYWNoZUVudHJ5QnVmZmVyQXN5bmMoXG4gICAgdGVybWluYWw6IElUZXJtaW5hbCxcbiAgICBjYWNoZUlkOiBzdHJpbmcsXG4gICAgb2JqZWN0QnVmZmVyOiBCdWZmZXJcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCF0aGlzLmlzQ2FjaGVXcml0ZUFsbG93ZWQpIHtcbiAgICAgIHRlcm1pbmFsLndyaXRlRXJyb3JMaW5lKCdXcml0aW5nIHRvIGNhY2hlIGlzIG5vdCBhbGxvd2VkIGluIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdGVybWluYWwud3JpdGVEZWJ1Z0xpbmUoJ1VwbG9hZGluZyBvYmplY3Qgd2l0aCBjYWNoZUlkOiAnLCBjYWNoZUlkKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9odHRwKHtcbiAgICAgICAgdGVybWluYWw6IHRlcm1pbmFsLFxuICAgICAgICByZWxVcmw6IGAke3RoaXMuX2NhY2hlS2V5UHJlZml4fSR7Y2FjaGVJZH1gLFxuICAgICAgICBtZXRob2Q6IHRoaXMuX3VwbG9hZE1ldGhvZCxcbiAgICAgICAgYm9keTogb2JqZWN0QnVmZmVyLFxuICAgICAgICB3YXJuaW5nVGV4dDogJ0NvdWxkIG5vdCB3cml0ZSBjYWNoZSBlbnRyeScsXG4gICAgICAgIHJlYWRCb2R5OiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQgIT09IGZhbHNlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRlcm1pbmFsLndyaXRlV2FybmluZ0xpbmUoYEVycm9yIHVwbG9hZGluZyBjYWNoZSBlbnRyeTogJHtlfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDYWNoZWRDcmVkZW50aWFsQXN5bmModGVybWluYWw6IElUZXJtaW5hbCwgY3JlZGVudGlhbDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgQ3JlZGVudGlhbENhY2hlLnVzaW5nQXN5bmMoXG4gICAgICB7XG4gICAgICAgIHN1cHBvcnRFZGl0aW5nOiB0cnVlXG4gICAgICB9LFxuICAgICAgYXN5bmMgKGNyZWRlbnRpYWxzQ2FjaGU6IENyZWRlbnRpYWxDYWNoZSkgPT4ge1xuICAgICAgICBjcmVkZW50aWFsc0NhY2hlLnNldENhY2hlRW50cnkodGhpcy5fY3JlZGVudGlhbENhY2hlSWQsIHtcbiAgICAgICAgICBjcmVkZW50aWFsOiBjcmVkZW50aWFsXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBjcmVkZW50aWFsc0NhY2hlLnNhdmVJZk1vZGlmaWVkQXN5bmMoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUNhY2hlZENyZWRlbnRpYWxJbnRlcmFjdGl2ZUFzeW5jKHRlcm1pbmFsOiBJVGVybWluYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuX3Rva2VuSGFuZGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIGludGVyYWN0aXZlIGNsb3VkIGNyZWRlbnRpYWxzIGZsb3cgaXMgbm90IGNvbmZpZ3VyZWQuXFxuYCArXG4gICAgICAgICAgYFNldCB0aGUgJ3Rva2VuSGFuZGxlcicgc2V0dGluZyBpbiAnY29tbW9uL2NvbmZpZy9ydXNoLXBsdWdpbnMvJHt0aGlzLl9wbHVnaW5OYW1lfS5qc29uJyB0byBhIGNvbW1hbmQgdGhhdCB3cml0ZXMgeW91ciBjcmVkZW50aWFscyB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXRzIHdpdGggY29kZSAwIGAgK1xuICAgICAgICAgIGBvciBwcm92aWRlIHlvdXIgY3JlZGVudGlhbHMgdG8gcnVzaCB1c2luZyB0aGUgLS1jcmVkZW50aWFsIGZsYWcgaW5zdGVhZC4gQ3JlZGVudGlhbHMgbXVzdCBiZSB0aGUgYCArXG4gICAgICAgICAgYCdBdXRob3JpemF0aW9uJyBoZWFkZXIgZXhwZWN0ZWQgYnkgJHt0aGlzLl91cmwuaHJlZn1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGNtZDogc3RyaW5nID0gYCR7dGhpcy5fdG9rZW5IYW5kbGVyLmV4ZWN9ICR7KHRoaXMuX3Rva2VuSGFuZGxlci5hcmdzIHx8IFtdKS5qb2luKCcgJyl9YDtcbiAgICB0ZXJtaW5hbC53cml0ZVZlcmJvc2VMaW5lKGBSdW5uaW5nICcke2NtZH0nIHRvIGdldCBjcmVkZW50aWFsc2ApO1xuICAgIGNvbnN0IHJlc3VsdCA9IEV4ZWN1dGFibGUuc3Bhd25TeW5jKHRoaXMuX3Rva2VuSGFuZGxlci5leGVjLCB0aGlzLl90b2tlbkhhbmRsZXIuYXJncyB8fCBbXSk7XG5cbiAgICB0ZXJtaW5hbC53cml0ZUVycm9yTGluZShyZXN1bHQuc3RkZXJyKTtcblxuICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IG9idGFpbiBjcmVkZW50aWFscy4gVGhlIGNvbW1hbmQgJyR7Y21kfScgZmFpbGVkLmApO1xuICAgIH1cblxuICAgIGNvbnN0IGNyZWRlbnRpYWwgPSByZXN1bHQuc3Rkb3V0LnRyaW0oKTtcbiAgICB0ZXJtaW5hbC53cml0ZVZlcmJvc2VMaW5lKCdHb3QgY3JlZGVudGlhbHMnKTtcblxuICAgIGF3YWl0IHRoaXMudXBkYXRlQ2FjaGVkQ3JlZGVudGlhbEFzeW5jKHRlcm1pbmFsLCBjcmVkZW50aWFsKTtcblxuICAgIHRlcm1pbmFsLndyaXRlTGluZSgnVXBkYXRlZCBjcmVkZW50aWFscyBjYWNoZScpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUNhY2hlZENyZWRlbnRpYWxzQXN5bmModGVybWluYWw6IElUZXJtaW5hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IENyZWRlbnRpYWxDYWNoZS51c2luZ0FzeW5jKFxuICAgICAge1xuICAgICAgICBzdXBwb3J0RWRpdGluZzogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGFzeW5jIChjcmVkZW50aWFsc0NhY2hlOiBDcmVkZW50aWFsQ2FjaGUpID0+IHtcbiAgICAgICAgY3JlZGVudGlhbHNDYWNoZS5kZWxldGVDYWNoZUVudHJ5KHRoaXMuX2NyZWRlbnRpYWxDYWNoZUlkKTtcbiAgICAgICAgYXdhaXQgY3JlZGVudGlhbHNDYWNoZS5zYXZlSWZNb2RpZmllZEFzeW5jKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9jcmVkZW50aWFsQ2FjaGVJZCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fX2NyZWRlbnRpYWxDYWNoZUlkKSB7XG4gICAgICBjb25zdCBjYWNoZUlkUGFydHM6IHN0cmluZ1tdID0gW3RoaXMuX3VybC5ocmVmXTtcblxuICAgICAgaWYgKHRoaXMuX2lzQ2FjaGVXcml0ZUFsbG93ZWRCeUNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgY2FjaGVJZFBhcnRzLnB1c2goJ2NhY2hlV3JpdGVBbGxvd2VkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX19jcmVkZW50aWFsQ2FjaGVJZCA9IGNhY2hlSWRQYXJ0cy5qb2luKCd8Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX19jcmVkZW50aWFsQ2FjaGVJZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2h0dHAob3B0aW9uczoge1xuICAgIHRlcm1pbmFsOiBJVGVybWluYWw7XG4gICAgcmVsVXJsOiBzdHJpbmc7XG4gICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgYm9keTogQm9keUluaXQgfCB1bmRlZmluZWQ7XG4gICAgd2FybmluZ1RleHQ6IHN0cmluZztcbiAgICByZWFkQm9keTogYm9vbGVhbjtcbiAgICBjcmVkZW50aWFsT3B0aW9ucz86IENyZWRlbnRpYWxzT3B0aW9ucztcbiAgfSk6IFByb21pc2U8QnVmZmVyIHwgYm9vbGVhbj4ge1xuICAgIGNvbnN0IHsgdGVybWluYWwsIHJlbFVybCwgbWV0aG9kLCBib2R5LCB3YXJuaW5nVGV4dCwgcmVhZEJvZHksIGNyZWRlbnRpYWxPcHRpb25zIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHNhZmVDcmVkZW50aWFsT3B0aW9ucyA9IGNyZWRlbnRpYWxPcHRpb25zID8/IENyZWRlbnRpYWxzT3B0aW9ucy5PcHRpb25hbDtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuX3RyeUdldENyZWRlbnRpYWxzKHNhZmVDcmVkZW50aWFsT3B0aW9ucyk7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChyZWxVcmwsIHRoaXMuX3VybCkuaHJlZjtcblxuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSAnc3RyaW5nJykge1xuICAgICAgaGVhZGVycy5BdXRob3JpemF0aW9uID0gY3JlZGVudGlhbHM7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5faGVhZGVycykpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGJvZHlMZW5ndGggPSAoYm9keSBhcyB7IGxlbmd0aDogbnVtYmVyIH0pPy5sZW5ndGggfHwgJ3Vua25vd24nO1xuXG4gICAgdGVybWluYWwud3JpdGVEZWJ1Z0xpbmUoYFtodHRwLWJ1aWxkLWNhY2hlXSByZXF1ZXN0OiAke21ldGhvZH0gJHt1cmx9ICR7Ym9keUxlbmd0aH0gYnl0ZXNgKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IG1ldGhvZCxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgcmVkaXJlY3Q6ICdmb2xsb3cnXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzICE9PSAnc3RyaW5nJyAmJiBzYWZlQ3JlZGVudGlhbE9wdGlvbnMgPT09IENyZWRlbnRpYWxzT3B0aW9ucy5PcHRpb25hbCkge1xuICAgICAgICAvLyBXZSB0cmllZCBmZXRjaGluZyB0aGUgcmVzb3VyY2Ugd2l0aG91dCBjcmVkZW50aWFscyBhbmQgdGhhdCBkaWQgbm90IHdvcmsgb3V0XG4gICAgICAgIC8vIFRyeSBhZ2FpbiBidXQgcmVxdWlyZSBjcmVkZW50aWFscyB0aGlzIHRpbWVcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgdGhlIHByb3ZpZGVyIHRvIHJlcXVlc3QgY3JlZGVudGlhbHNcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2h0dHAoeyAuLi5vcHRpb25zLCBjcmVkZW50aWFsT3B0aW9uczogQ3JlZGVudGlhbHNPcHRpb25zLlJlcXVpcmVkIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZXBvcnRGYWlsdXJlKHRlcm1pbmFsLCBtZXRob2QsIHJlc3BvbnNlLCBmYWxzZSwgd2FybmluZ1RleHQpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogQnVmZmVyIHwgYm9vbGVhbiA9IHJlYWRCb2R5ID8gQnVmZmVyLmZyb20oYXdhaXQgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSkgOiB0cnVlO1xuXG4gICAgdGVybWluYWwud3JpdGVEZWJ1Z0xpbmUoXG4gICAgICBgW2h0dHAtYnVpbGQtY2FjaGVdIGFjdHVhbCByZXNwb25zZTogJHtyZXNwb25zZS5zdGF0dXN9ICR7dXJsfSAke1xuICAgICAgICByZXN1bHQgPT09IHRydWUgPyAndHJ1ZScgOiByZXN1bHQubGVuZ3RoXG4gICAgICB9IGJ5dGVzYFxuICAgICk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdHJ5R2V0Q3JlZGVudGlhbHMob3B0aW9uczogQ3JlZGVudGlhbHNPcHRpb25zLlJlcXVpcmVkKTogUHJvbWlzZTxzdHJpbmc+O1xuICBwcml2YXRlIGFzeW5jIF90cnlHZXRDcmVkZW50aWFscyhvcHRpb25zOiBDcmVkZW50aWFsc09wdGlvbnMuT3B0aW9uYWwpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIHByaXZhdGUgYXN5bmMgX3RyeUdldENyZWRlbnRpYWxzKG9wdGlvbnM6IENyZWRlbnRpYWxzT3B0aW9ucy5PbWl0KTogUHJvbWlzZTx1bmRlZmluZWQ+O1xuICBwcml2YXRlIGFzeW5jIF90cnlHZXRDcmVkZW50aWFscyhvcHRpb25zOiBDcmVkZW50aWFsc09wdGlvbnMpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIHByaXZhdGUgYXN5bmMgX3RyeUdldENyZWRlbnRpYWxzKG9wdGlvbnM6IENyZWRlbnRpYWxzT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKG9wdGlvbnMgPT09IENyZWRlbnRpYWxzT3B0aW9ucy5PbWl0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNyZWRlbnRpYWxzOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLl9lbnZpcm9ubWVudENyZWRlbnRpYWw7XG5cbiAgICBpZiAoY3JlZGVudGlhbHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLl90cnlHZXRDcmVkZW50aWFsc0Zyb21DYWNoZSgpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY3JlZGVudGlhbHMgIT09ICdzdHJpbmcnICYmIG9wdGlvbnMgPT09IENyZWRlbnRpYWxzT3B0aW9ucy5SZXF1aXJlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBbXG4gICAgICAgICAgYENyZWRlbnRpYWxzIGZvciAke3RoaXMuX3VybC5ocmVmfSBoYXZlIG5vdCBiZWVuIHByb3ZpZGVkLmAsXG4gICAgICAgICAgYEluIENJLCB2ZXJpZnkgdGhhdCBSVVNIX0JVSUxEX0NBQ0hFX0NSRURFTlRJQUwgY29udGFpbnMgYSB2YWxpZCBBdXRob3JpemF0aW9uIGhlYWRlciB2YWx1ZS5gLFxuICAgICAgICAgIGBgLFxuICAgICAgICAgIGBGb3IgbG9jYWwgZGV2ZWxvcGVycywgcnVuOmAsXG4gICAgICAgICAgYGAsXG4gICAgICAgICAgYCAgICBydXNoIHVwZGF0ZS1jbG91ZC1jcmVkZW50aWFscyAtLWludGVyYWN0aXZlYCxcbiAgICAgICAgICBgYFxuICAgICAgICBdLmpvaW4oJ1xcbicpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3RyeUdldENyZWRlbnRpYWxzRnJvbUNhY2hlKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IGNhY2hlRW50cnk6IElDcmVkZW50aWFsQ2FjaGVFbnRyeSB8IHVuZGVmaW5lZDtcblxuICAgIGF3YWl0IENyZWRlbnRpYWxDYWNoZS51c2luZ0FzeW5jKFxuICAgICAge1xuICAgICAgICBzdXBwb3J0RWRpdGluZzogZmFsc2VcbiAgICAgIH0sXG4gICAgICAoY3JlZGVudGlhbHNDYWNoZTogQ3JlZGVudGlhbENhY2hlKSA9PiB7XG4gICAgICAgIGNhY2hlRW50cnkgPSBjcmVkZW50aWFsc0NhY2hlLnRyeUdldENhY2hlRW50cnkodGhpcy5fY3JlZGVudGlhbENhY2hlSWQpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAoY2FjaGVFbnRyeSkge1xuICAgICAgY29uc3QgZXhwaXJhdGlvblRpbWU6IG51bWJlciB8IHVuZGVmaW5lZCA9IGNhY2hlRW50cnkuZXhwaXJlcz8uZ2V0VGltZSgpO1xuICAgICAgaWYgKCFleHBpcmF0aW9uVGltZSB8fCBleHBpcmF0aW9uVGltZSA+PSBEYXRlLm5vdygpKSB7XG4gICAgICAgIHJldHVybiBjYWNoZUVudHJ5LmNyZWRlbnRpYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RmFpbHVyZVR5cGUocmVxdWVzdE1ldGhvZDogc3RyaW5nLCByZXNwb25zZTogUmVzcG9uc2UsIGlzUmVkaXJlY3Q6IGJvb2xlYW4pOiBGYWlsdXJlVHlwZSB7XG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICByZXR1cm4gRmFpbHVyZVR5cGUuTm9uZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHJlc3BvbnNlLnN0YXR1cykge1xuICAgICAgY2FzZSA1MDM6IHtcbiAgICAgICAgLy8gV2Ugc2VsZWN0IDUwMyBzcGVjaWZpY2FsbHkgYmVjYXVzZSB0aGlzIHJlcHJlc2VudHMgXCJzZXJ2aWNlIHVuYXZhaWxhYmxlXCIgYW5kXG4gICAgICAgIC8vIFwicmF0ZSBsaW1pdCB0aHJvdHRsZVwiIGVycm9ycywgd2hpY2ggYXJlIHRyYW5zaWVudCBpc3N1ZXMuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoZXJlIGFyZSBvdGhlciA1eHggZXJyb3JzLCBzdWNoIGFzIDUwMSwgdGhhdCBjYW4gb2NjdXIgaWYgdGhlIHJlcXVlc3QgaXNcbiAgICAgICAgLy8gbWFsZm9ybWVkLCBzbyBhcyBhIGdlbmVyYWwgcnVsZSB3ZSB3YW50IHRvIGxldCB0aHJvdWdoIG90aGVyIDV4eCBlcnJvcnNcbiAgICAgICAgLy8gc28gdGhlIHVzZXIgY2FuIHRyb3VibGVzaG9vdC5cblxuICAgICAgICAvLyBEb24ndCBmYWlsIHByb2R1Y3Rpb24gYnVpbGRzIHdpdGggd2FybmluZ3MgZm9yIHRyYW5zaWVudCBpc3N1ZXNcbiAgICAgICAgcmV0dXJuIEZhaWx1cmVUeXBlLkluZm9ybWF0aW9uYWw7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgNDAxOlxuICAgICAgY2FzZSA0MDM6XG4gICAgICBjYXNlIDQwNzoge1xuICAgICAgICBpZiAocmVxdWVzdE1ldGhvZCA9PT0gJ0dFVCcgJiYgKGlzUmVkaXJlY3QgfHwgcmVzcG9uc2UucmVkaXJlY3RlZCkpIHtcbiAgICAgICAgICAvLyBDYWNoZSBtaXNzZXMgZm9yIEdFVCByZXF1ZXN0cyBhcmUgbm90IGVycm9yc1xuICAgICAgICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGJlaGF2aW9yIHdoZXJlIGEgc2VydmVyIGNhbiBpc3N1ZSBhIHJlZGlyZWN0IGFuZCB3ZSBmYWlsIHRvIGF1dGhlbnRpY2F0ZSBhdCB0aGUgbmV3IGxvY2F0aW9uLlxuICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHNpZ25hbCB0aGlzIGFzIGFuIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUgYmVjYXVzZSB0aGUgYXV0aG9yaXphdGlvbiBoZWFkZXIgaXMgbm90IHBhc3NlZCBvbiB0byByZWRpcmVjdHMuXG4gICAgICAgICAgLy8gaS5lIFRoZSBhdXRoZW50aWNhdGlvbiBoZWFkZXIgd2FzIGFjY2VwdGVkIGZvciB0aGUgZmlyc3QgcmVxdWVzdCBhbmQgdGhlcmVmb3JlIHN1YnNlcXVlbnQgZmFpbHVyZXNcbiAgICAgICAgICAvLyB3aGVyZSBpdCB3YXMgbm90IHByZXNlbnQgc2hvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHRvIHRoZSBoZWFkZXIuXG4gICAgICAgICAgLy8gVGhpcyBzY2VuYXJpbyB1c3VhbGx5IGNvbWVzIHVwIHdpdGggc2VydmljZXMgdGhhdCByZWRpcmVjdCB0byBwcmUtc2lnbmVkIFVSTFMgdGhhdCBkb24ndCBhY3R1YWxseSBleGlzdC5cbiAgICAgICAgICAvLyBUaG9zZSBzZXJ2aWNlcyB0aGVuIHVzdWFsbHkgdHJlYXQgdGhlIDQwNCBhcyBhIDQwMyB0byBwcmV2ZW50IGxlYWtpbmcgaW5mb3JtYXRpb24uXG4gICAgICAgICAgcmV0dXJuIEZhaWx1cmVUeXBlLk5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gRmFpbHVyZVR5cGUuQXV0aGVudGljYXRpb247XG4gICAgICB9XG5cbiAgICAgIGNhc2UgNDA0OiB7XG4gICAgICAgIGlmIChyZXF1ZXN0TWV0aG9kID09PSAnR0VUJykge1xuICAgICAgICAgIC8vIENhY2hlIG1pc3NlcyBmb3IgR0VUIHJlcXVlc3RzIGFyZSBub3QgZXJyb3JzXG4gICAgICAgICAgcmV0dXJuIEZhaWx1cmVUeXBlLk5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMZXQgZGV2IGJ1aWxkcyBzdWNjZWVkLCBsZXQgUHJvZCBidWlsZHMgZmFpbFxuICAgIHJldHVybiBGYWlsdXJlVHlwZS5XYXJuaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwb3J0RmFpbHVyZShcbiAgICB0ZXJtaW5hbDogSVRlcm1pbmFsLFxuICAgIHJlcXVlc3RNZXRob2Q6IHN0cmluZyxcbiAgICByZXNwb25zZTogUmVzcG9uc2UsXG4gICAgaXNSZWRpcmVjdDogYm9vbGVhbixcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLl9nZXRGYWlsdXJlVHlwZShyZXF1ZXN0TWV0aG9kLCByZXNwb25zZSwgaXNSZWRpcmVjdCkpIHtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGVybWluYWwud3JpdGVFcnJvckxpbmUoYCR7bWVzc2FnZX06IEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEZhaWx1cmVUeXBlLldhcm5pbmc6IHtcbiAgICAgICAgdGVybWluYWwud3JpdGVXYXJuaW5nTGluZShgJHttZXNzYWdlfTogSFRUUCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgRmFpbHVyZVR5cGUuSW5mb3JtYXRpb25hbDoge1xuICAgICAgICB0ZXJtaW5hbC53cml0ZUxpbmUoYCR7bWVzc2FnZX06IEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEZhaWx1cmVUeXBlLk5vbmU6IHtcbiAgICAgICAgdGVybWluYWwud3JpdGVEZWJ1Z0xpbmUoYCR7bWVzc2FnZX06IEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEZhaWx1cmVUeXBlLkF1dGhlbnRpY2F0aW9uOiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBbXG4gICAgICAgICAgICBgJHt0aGlzLl91cmwuaHJlZn0gcmVzcG9uZGVkIHdpdGggJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmAsXG4gICAgICAgICAgICBgQ3JlZGVudGlhbHMgbWF5IGJlIG1pc2NvbmZpZ3VyZWQgb3IgaGF2ZSBleHBpcmVkLmAsXG4gICAgICAgICAgICBgSW4gQ0ksIHZlcmlmeSB0aGF0IFJVU0hfQlVJTERfQ0FDSEVfQ1JFREVOVElBTCBjb250YWlucyBhIHZhbGlkIEF1dGhvcml6YXRpb24gaGVhZGVyIHZhbHVlLmAsXG4gICAgICAgICAgICBgYCxcbiAgICAgICAgICAgIGBGb3IgbG9jYWwgZGV2ZWxvcGVycywgcnVuOmAsXG4gICAgICAgICAgICBgYCxcbiAgICAgICAgICAgIGAgICAgcnVzaCB1cGRhdGUtY2xvdWQtY3JlZGVudGlhbHMgLS1pbnRlcmFjdGl2ZWAsXG4gICAgICAgICAgICBgYFxuICAgICAgICAgIF0uam9pbignXFxuJylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==