@pie-lib/graphing 4.0.24-beta.13 → 4.0.24-beta.15

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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
4
5
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
6
  var _testUtils = require("@pie-lib/test-utils");
6
7
  var _react = _interopRequireDefault(require("react"));
@@ -430,5 +431,148 @@ describe('Component', function () {
430
431
  expect(container.firstChild).toBeInTheDocument();
431
432
  });
432
433
  });
434
+ describe('label focus', function () {
435
+ var labelNode;
436
+
437
+ // the label is rendered into a portal - it has to be in the document for it to take the focus
438
+ beforeEach(function () {
439
+ labelNode = document.createElement('div');
440
+ document.body.appendChild(labelNode);
441
+ });
442
+ afterEach(function () {
443
+ document.body.removeChild(labelNode);
444
+ });
445
+
446
+ // the mark is owned by the container, so the tool only sees a new label once it is handed back
447
+ var Controlled = function Controlled(_ref) {
448
+ var initialMark = _ref.initialMark,
449
+ labelModeEnabled = _ref.labelModeEnabled;
450
+ var _React$useState = _react["default"].useState(initialMark),
451
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
452
+ mark = _React$useState2[0],
453
+ setMark = _React$useState2[1];
454
+ return /*#__PURE__*/_react["default"].createElement(_component["default"], {
455
+ mark: mark,
456
+ onChange: function onChange(current, update) {
457
+ return setMark(update);
458
+ },
459
+ onClick: onClick,
460
+ graphProps: (0, _utils.graphProps)(),
461
+ labelNode: labelNode,
462
+ labelModeEnabled: labelModeEnabled
463
+ });
464
+ };
465
+ var clickPoint = function clickPoint(container) {
466
+ return _testUtils.fireEvent.click(container.querySelector('circle'));
467
+ };
468
+ it('focuses the new label when a point is clicked in label mode', function () {
469
+ var _render = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Controlled, {
470
+ initialMark: (0, _utils.xy)(1, 1),
471
+ labelModeEnabled: true
472
+ })),
473
+ container = _render.container;
474
+ expect(labelNode.querySelector('input')).toBe(null);
475
+ clickPoint(container);
476
+ var input = labelNode.querySelector('input');
477
+ expect(input).not.toBe(null);
478
+ expect(document.activeElement).toBe(input);
479
+ });
480
+ it('does not focus the label when a point is clicked outside of label mode', function () {
481
+ var _render2 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Controlled, {
482
+ initialMark: _objectSpread(_objectSpread({}, (0, _utils.xy)(1, 1)), {}, {
483
+ label: 'A'
484
+ }),
485
+ labelModeEnabled: false
486
+ })),
487
+ container = _render2.container;
488
+ clickPoint(container);
489
+ expect(onClick).toHaveBeenCalled();
490
+ expect(document.activeElement).not.toBe(labelNode.querySelector('input'));
491
+ });
492
+ it('does not focus the label of a disabled mark', function () {
493
+ var _render3 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Controlled, {
494
+ initialMark: _objectSpread(_objectSpread({}, (0, _utils.xy)(1, 1)), {}, {
495
+ label: 'A',
496
+ disabled: true
497
+ }),
498
+ labelModeEnabled: true
499
+ })),
500
+ container = _render3.container;
501
+ clickPoint(container);
502
+ expect(document.activeElement).not.toBe(labelNode.querySelector('input'));
503
+ });
504
+
505
+ // the blur that the DNA env causes by moving the focus is not the user leaving the label
506
+ it('keeps the focus on a new empty label that something else blurred', function () {
507
+ var _render4 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Controlled, {
508
+ initialMark: (0, _utils.xy)(1, 1),
509
+ labelModeEnabled: true
510
+ })),
511
+ container = _render4.container;
512
+ clickPoint(container);
513
+ var input = labelNode.querySelector('input');
514
+ expect(document.activeElement).toBe(input);
515
+ _testUtils.fireEvent.blur(input);
516
+ _testUtils.fireEvent.change(input, {
517
+ target: {
518
+ value: 'A'
519
+ }
520
+ });
521
+ expect(document.activeElement).toBe(input);
522
+ });
523
+ it('stops auto focusing the label once it has text and is blurred', function () {
524
+ var _render5 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Controlled, {
525
+ initialMark: (0, _utils.xy)(1, 1),
526
+ labelModeEnabled: true
527
+ })),
528
+ container = _render5.container;
529
+ clickPoint(container);
530
+ var input = labelNode.querySelector('input');
531
+ _testUtils.fireEvent.change(input, {
532
+ target: {
533
+ value: 'A'
534
+ }
535
+ });
536
+ _testUtils.fireEvent.blur(input);
537
+ input.blur();
538
+
539
+ // a re-render must not pull the focus back into the label the user just left
540
+ _testUtils.fireEvent.change(input, {
541
+ target: {
542
+ value: 'AB'
543
+ }
544
+ });
545
+ expect(document.activeElement).not.toBe(input);
546
+ });
547
+ it('closes the label that is being edited when label mode is left', function () {
548
+ var ref = /*#__PURE__*/_react["default"].createRef();
549
+ var _render6 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], {
550
+ ref: ref,
551
+ mark: (0, _utils.xy)(1, 1),
552
+ onChange: onChange,
553
+ onClick: onClick,
554
+ graphProps: (0, _utils.graphProps)(),
555
+ labelNode: labelNode,
556
+ labelModeEnabled: true
557
+ })),
558
+ container = _render6.container,
559
+ rerender = _render6.rerender;
560
+ clickPoint(container);
561
+ expect(ref.current.state.editingLabel).toBe('label');
562
+ rerender(/*#__PURE__*/_react["default"].createElement(_component["default"], {
563
+ ref: ref,
564
+ mark: (0, _utils.xy)(1, 1),
565
+ onChange: onChange,
566
+ onClick: onClick,
567
+ graphProps: (0, _utils.graphProps)(),
568
+ labelNode: labelNode,
569
+ labelModeEnabled: false
570
+ }));
571
+
572
+ // there is no user visible path for this one: a real blur resets it through onBlur, this is
573
+ // the safety net for a label that is still marked as edited when label mode goes away
574
+ expect(ref.current.state.editingLabel).toBe(null);
575
+ });
576
+ });
433
577
  });
434
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXRpbHMiLCJfY29tcG9uZW50Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwib25DbGljayIsImJlZm9yZUVhY2giLCJqZXN0IiwiZm4iLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJncmFwaFByb3BzIiwibWFyayIsInh5IiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlckNvbXBvbmVudDIiLCJfcmVuZGVyQ29tcG9uZW50MyIsImxhYmVsIiwiX3JlbmRlckNvbXBvbmVudDQiLCJfcmVuZGVyQ29tcG9uZW50NSIsIl9yZW5kZXJDb21wb25lbnQ2IiwiX3JlbmRlckNvbXBvbmVudDciLCJfcmVuZGVyQ29tcG9uZW50OCIsIl9yZW5kZXJDb21wb25lbnQ5IiwiX3JlbmRlckNvbXBvbmVudDAiLCJkaXNhYmxlZCIsIl9yZW5kZXJDb21wb25lbnQxIiwiY29ycmVjdG5lc3MiLCJfcmVuZGVyQ29tcG9uZW50MTAiLCJfcmVuZGVyQ29tcG9uZW50MTEiLCJfcmVuZGVyQ29tcG9uZW50MTIiLCJmaWxsIiwibGFiZWxOb2RlIiwiZG9jdW1lbnQiLCJfcmVuZGVyQ29tcG9uZW50MTMiLCJfcmVuZGVyQ29tcG9uZW50MTQiLCJfcmVuZGVyQ29tcG9uZW50MTUiLCJfcmVuZGVyQ29tcG9uZW50MTYiLCJsYWJlbE1vZGVFbmFibGVkIiwiX3JlbmRlckNvbXBvbmVudDE3IiwiX3JlbmRlckNvbXBvbmVudDE4IiwiX3JlbmRlckNvbXBvbmVudDE5IiwiX3JlbmRlckNvbXBvbmVudDIwIiwiX3JlbmRlckNvbXBvbmVudDIxIiwiY29vcmRpbmF0ZXNPbkhvdmVyIiwiX3JlbmRlckNvbXBvbmVudDIyIiwiX3JlbmRlckNvbXBvbmVudDIzIiwiX3JlbmRlckNvbXBvbmVudDI0IiwiX3JlbmRlckNvbXBvbmVudDI1IiwiX3JlbmRlckNvbXBvbmVudDI2IiwicmVyZW5kZXIiLCJfcmVuZGVyQ29tcG9uZW50MjciLCJfcmVuZGVyQ29tcG9uZW50MjgiLCJfcmVuZGVyQ29tcG9uZW50MjkiLCJpIiwiX3JlbmRlckNvbXBvbmVudDMwIiwiX3JlbmRlckNvbXBvbmVudDMxIiwiX3JlbmRlckNvbXBvbmVudDMyIiwiX3JlbmRlckNvbXBvbmVudDMzIiwiY3VzdG9tR3JhcGhQcm9wcyIsIl9yZW5kZXJDb21wb25lbnQzNCIsIl9yZW5kZXJDb21wb25lbnQzNSIsIl9yZW5kZXJDb21wb25lbnQzNiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wb2ludC9fX3Rlc3RzX18vY29tcG9uZW50LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdyYXBoUHJvcHMsIHh5IH0gZnJvbSAnLi4vLi4vLi4vX190ZXN0c19fL3V0aWxzJztcblxuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuLi9jb21wb25lbnQnO1xuXG5kZXNjcmliZSgnQ29tcG9uZW50JywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2U7XG4gIGxldCBvbkNsaWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgIG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25DbGljayxcbiAgICAgIGdyYXBoUHJvcHM6IGdyYXBoUHJvcHMoKSxcbiAgICAgIG1hcms6IHh5KDAsIDApLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxDb21wb25lbnQgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBtYXJrJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgLi4ueHkoMCwgMCkgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbGFiZWwnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyBsYWJlbDogJ2ZvbycsIC4uLnh5KDAsIDApIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGRpZmZlcmVudCBjb29yZGluYXRlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDUsIC0zKSB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBlbXB0eSBsYWJlbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IGxhYmVsOiAnJywgLi4ueHkoMSwgMSkgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbmVnYXRpdmUgY29vcmRpbmF0ZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSgtNSwgLTUpIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGRlY2ltYWwgY29vcmRpbmF0ZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSgxLjUsIDIuNSkgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggemVybyBjb29yZGluYXRlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDAsIDApIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGxhcmdlIGNvb3JkaW5hdGUgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgLi4ueHkoMTAwMCwgMTAwMCkgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3N0YXRlIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkaXNhYmxlZCBzdGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDEsIDEpLCBkaXNhYmxlZDogdHJ1ZSB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBjb3JyZWN0bmVzcyBzdGF0ZSAtIGNvcnJlY3QnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSgxLCAxKSwgY29ycmVjdG5lc3M6ICdjb3JyZWN0JyB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBjb3JyZWN0bmVzcyBzdGF0ZSAtIGluY29ycmVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDEsIDEpLCBjb3JyZWN0bmVzczogJ2luY29ycmVjdCcgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggY29ycmVjdG5lc3Mgc3RhdGUgLSBtaXNzaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgLi4ueHkoMSwgMSksIGNvcnJlY3RuZXNzOiAnbWlzc2luZycgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggZmlsbCBjb2xvcicsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDEsIDEpLCBmaWxsOiAnI2ZmMDAwMCcgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xhYmVsIGZ1bmN0aW9uYWxpdHknLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgbGFiZWwgcG9ydGFsIHdoZW4gbGFiZWxOb2RlIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnVGVzdCcgfSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGxhYmVsIHBvcnRhbCB3aGVuIGxhYmVsTm9kZSBpcyBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdUZXN0JyB9LFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgcmVuZGVyIGxhYmVsIHBvcnRhbCB3aGVuIG1hcmsgaGFzIG5vIGxhYmVsIHByb3BlcnR5JywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSkgfSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGxhYmVsTW9kZUVuYWJsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdUZXN0JyB9LFxuICAgICAgICBsYWJlbE5vZGUsXG4gICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbGFiZWxNb2RlRW5hYmxlZCBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZvcmVpZ25PYmplY3QnKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB7IC4uLnh5KDEsIDEpLCBsYWJlbDogJ1Rlc3QnIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgICAgbGFiZWxNb2RlRW5hYmxlZDogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIGVtcHR5IHN0cmluZyBsYWJlbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZvcmVpZ25PYmplY3QnKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB7IC4uLnh5KDEsIDEpLCBsYWJlbDogJycgfSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgICBsYWJlbE1vZGVFbmFibGVkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBsb25nIGxhYmVsIHRleHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdUaGlzIGlzIGEgdmVyeSBsb25nIGxhYmVsIHRleHQgZm9yIHRlc3RpbmcnIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbGFiZWwgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdUZXN0QCMkJScgfSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb29yZGluYXRlcyBvbiBob3ZlcicsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRoIGNvb3JkaW5hdGVzT25Ib3ZlciBlbmFibGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSkgfSxcbiAgICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGNvb3JkaW5hdGVzT25Ib3ZlciBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB7IC4uLnh5KDEsIDEpIH0sXG4gICAgICAgIGNvb3JkaW5hdGVzT25Ib3ZlcjogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ludGVyYWN0aW9uIG1vZGVzJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIGluIGxhYmVsIG1vZGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdBJyB9LFxuICAgICAgICBsYWJlbE1vZGVFbmFibGVkOiB0cnVlLFxuICAgICAgICBsYWJlbE5vZGUsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGluIG5vcm1hbCBtb2RlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSkgfSxcbiAgICAgICAgbGFiZWxNb2RlRW5hYmxlZDogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIGRpc2FibGVkIHBvaW50IGluIGxhYmVsIG1vZGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdBJywgZGlzYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgbGFiZWxNb2RlRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdlZGdlIGNhc2VzJywgKCkgPT4ge1xuICAgIGl0KCdoYW5kbGVzIG1hcmsgdXBkYXRlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVyZW5kZXIsIGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeHkoMSwgMSkgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG5cbiAgICAgIHJlcmVuZGVyKDxDb21wb25lbnQgbWFyaz17eHkoMiwgMil9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gb25DbGljaz17b25DbGlja30gZ3JhcGhQcm9wcz17Z3JhcGhQcm9wcygpfSAvPik7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBtYXJrIHdpdGggYWxsIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazoge1xuICAgICAgICAgIC4uLnh5KDMsIDQpLFxuICAgICAgICAgIGxhYmVsOiAnQ29tcGxldGUnLFxuICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICBjb3JyZWN0bmVzczogJ2NvcnJlY3QnLFxuICAgICAgICAgIGZpbGw6ICcjMDBmZjAwJyxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgICBsYWJlbE1vZGVFbmFibGVkOiB0cnVlLFxuICAgICAgICBjb29yZGluYXRlc09uSG92ZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIG1hcmsgd2l0aG91dCBhbnkgb3B0aW9uYWwgcHJvcGVydGllcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB4eSgxLCAxKSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIHJhcGlkIG1hcmsgcG9zaXRpb24gY2hhbmdlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVyZW5kZXIsIGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeHkoMCwgMCkgfSk7XG5cbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDU7IGkrKykge1xuICAgICAgICByZXJlbmRlcig8Q29tcG9uZW50IG1hcms9e3h5KGksIGkpfSBvbkNoYW5nZT17b25DaGFuZ2V9IG9uQ2xpY2s9e29uQ2xpY2t9IGdyYXBoUHJvcHM9e2dyYXBoUHJvcHMoKX0gLz4pO1xuICAgICAgfVxuXG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb21wb25lbnQgbGlmZWN5Y2xlJywgKCkgPT4ge1xuICAgIGl0KCdpbml0aWFsaXplcyB3aXRoIGVtcHR5IHN0YXRlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHh5KDEsIDEpIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3VwZGF0ZXMgd2hlbiBtYXJrIHByb3AgY2hhbmdlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyLCByZXJlbmRlciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeHkoMSwgMSkgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG5cbiAgICAgIHJlcmVuZGVyKDxDb21wb25lbnQgbWFyaz17eHkoNSwgNSl9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gb25DbGljaz17b25DbGlja30gZ3JhcGhQcm9wcz17Z3JhcGhQcm9wcygpfSAvPik7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBsYWJlbCBhZGRpdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZvcmVpZ25PYmplY3QnKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyLCByZXJlbmRlciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeHkoMSwgMSksXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgIH0pO1xuXG4gICAgICByZXJlbmRlcihcbiAgICAgICAgPENvbXBvbmVudFxuICAgICAgICAgIG1hcms9e3sgLi4ueHkoMSwgMSksIGxhYmVsOiAnTmV3JyB9fVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgIGdyYXBoUHJvcHM9e2dyYXBoUHJvcHMoKX1cbiAgICAgICAgICBsYWJlbE5vZGU9e2xhYmVsTm9kZX1cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbGFiZWwgcmVtb3ZhbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZvcmVpZ25PYmplY3QnKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyLCByZXJlbmRlciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdSZW1vdmUnIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgIH0pO1xuXG4gICAgICByZXJlbmRlcihcbiAgICAgICAgPENvbXBvbmVudFxuICAgICAgICAgIG1hcms9e3h5KDEsIDEpfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgIGdyYXBoUHJvcHM9e2dyYXBoUHJvcHMoKX1cbiAgICAgICAgICBsYWJlbE5vZGU9e2xhYmVsTm9kZX1cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ3JhcGhQcm9wcyB2YXJpYXRpb25zJywgKCkgPT4ge1xuICAgIGl0KCdoYW5kbGVzIGRpZmZlcmVudCBkb21haW4gYW5kIHJhbmdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tR3JhcGhQcm9wcyA9IGdyYXBoUHJvcHMoMCwgMTAsIDAsIDEwKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB4eSg1LCA1KSxcbiAgICAgICAgZ3JhcGhQcm9wczogY3VzdG9tR3JhcGhQcm9wcyxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbmVnYXRpdmUgZG9tYWluIGFuZCByYW5nZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUdyYXBoUHJvcHMgPSBncmFwaFByb3BzKC0xMCwgMCwgLTEwLCAwKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB4eSgtNSwgLTUpLFxuICAgICAgICBncmFwaFByb3BzOiBjdXN0b21HcmFwaFByb3BzLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBsYXJnZSBkb21haW4gYW5kIHJhbmdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tR3JhcGhQcm9wcyA9IGdyYXBoUHJvcHMoLTEwMCwgMTAwLCAtMTAwLCAxMDApO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHh5KDUwLCA1MCksXG4gICAgICAgIGdyYXBoUHJvcHM6IGN1c3RvbUdyYXBoUHJvcHMsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FB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RSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztNQUNqRCxJQUFBeUQsa0JBQUEsR0FBc0I5RCxlQUFlLENBQUM7VUFDcENNLElBQUksRUFBRSxJQUFBQyxTQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztVQUNkRixVQUFVLEVBQUV3RDtRQUNkLENBQUMsQ0FBQztRQUhNaEQsU0FBUyxHQUFBaUQsa0JBQUEsQ0FBVGpELFNBQVM7TUFJakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLFlBQU07TUFDNUMsSUFBTWtELGdCQUFnQixHQUFHLElBQUF4RCxpQkFBVSxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7TUFDbkQsSUFBQTBELGtCQUFBLEdBQXNCL0QsZUFBZSxDQUFDO1VBQ3BDTSxJQUFJLEVBQUUsSUFBQUMsU0FBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1VBQ2hCRixVQUFVLEVBQUV3RDtRQUNkLENBQUMsQ0FBQztRQUhNaEQsU0FBUyxHQUFBa0Qsa0JBQUEsQ0FBVGxELFNBQVM7TUFJakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLFlBQU07TUFDekMsSUFBTWtELGdCQUFnQixHQUFHLElBQUF4RCxpQkFBVSxFQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDekQsSUFBQTJELGtCQUFBLEdBQXNCaEUsZUFBZSxDQUFDO1VBQ3BDTSxJQUFJLEVBQUUsSUFBQUMsU0FBRSxFQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7VUFDaEJGLFVBQVUsRUFBRXdEO1FBQ2QsQ0FBQyxDQUFDO1FBSE1oRCxTQUFTLEdBQUFtRCxrQkFBQSxDQUFUbkQsU0FBUztNQUlqQkMsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
578
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXRpbHMiLCJfY29tcG9uZW50Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwib25DbGljayIsImJlZm9yZUVhY2giLCJqZXN0IiwiZm4iLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJncmFwaFByb3BzIiwibWFyayIsInh5IiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlckNvbXBvbmVudDIiLCJfcmVuZGVyQ29tcG9uZW50MyIsImxhYmVsIiwiX3JlbmRlckNvbXBvbmVudDQiLCJfcmVuZGVyQ29tcG9uZW50NSIsIl9yZW5kZXJDb21wb25lbnQ2IiwiX3JlbmRlckNvbXBvbmVudDciLCJfcmVuZGVyQ29tcG9uZW50OCIsIl9yZW5kZXJDb21wb25lbnQ5IiwiX3JlbmRlckNvbXBvbmVudDAiLCJkaXNhYmxlZCIsIl9yZW5kZXJDb21wb25lbnQxIiwiY29ycmVjdG5lc3MiLCJfcmVuZGVyQ29tcG9uZW50MTAiLCJfcmVuZGVyQ29tcG9uZW50MTEiLCJfcmVuZGVyQ29tcG9uZW50MTIiLCJmaWxsIiwibGFiZWxOb2RlIiwiZG9jdW1lbnQiLCJfcmVuZGVyQ29tcG9uZW50MTMiLCJfcmVuZGVyQ29tcG9uZW50MTQiLCJfcmVuZGVyQ29tcG9uZW50MTUiLCJfcmVuZGVyQ29tcG9uZW50MTYiLCJsYWJlbE1vZGVFbmFibGVkIiwiX3JlbmRlckNvbXBvbmVudDE3IiwiX3JlbmRlckNvbXBvbmVudDE4IiwiX3JlbmRlckNvbXBvbmVudDE5IiwiX3JlbmRlckNvbXBvbmVudDIwIiwiX3JlbmRlckNvbXBvbmVudDIxIiwiY29vcmRpbmF0ZXNPbkhvdmVyIiwiX3JlbmRlckNvbXBvbmVudDIyIiwiX3JlbmRlckNvbXBvbmVudDIzIiwiX3JlbmRlckNvbXBvbmVudDI0IiwiX3JlbmRlckNvbXBvbmVudDI1IiwiX3JlbmRlckNvbXBvbmVudDI2IiwicmVyZW5kZXIiLCJfcmVuZGVyQ29tcG9uZW50MjciLCJfcmVuZGVyQ29tcG9uZW50MjgiLCJfcmVuZGVyQ29tcG9uZW50MjkiLCJpIiwiX3JlbmRlckNvbXBvbmVudDMwIiwiX3JlbmRlckNvbXBvbmVudDMxIiwiX3JlbmRlckNvbXBvbmVudDMyIiwiX3JlbmRlckNvbXBvbmVudDMzIiwiY3VzdG9tR3JhcGhQcm9wcyIsIl9yZW5kZXJDb21wb25lbnQzNCIsIl9yZW5kZXJDb21wb25lbnQzNSIsIl9yZW5kZXJDb21wb25lbnQzNiIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImFmdGVyRWFjaCIsInJlbW92ZUNoaWxkIiwiQ29udHJvbGxlZCIsIl9yZWYiLCJpbml0aWFsTWFyayIsIl9SZWFjdCR1c2VTdGF0ZSIsIlJlYWN0IiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0TWFyayIsImN1cnJlbnQiLCJ1cGRhdGUiLCJjbGlja1BvaW50IiwiZmlyZUV2ZW50IiwiY2xpY2siLCJxdWVyeVNlbGVjdG9yIiwiX3JlbmRlciIsInRvQmUiLCJpbnB1dCIsIm5vdCIsImFjdGl2ZUVsZW1lbnQiLCJfcmVuZGVyMiIsInRvSGF2ZUJlZW5DYWxsZWQiLCJfcmVuZGVyMyIsIl9yZW5kZXI0IiwiYmx1ciIsImNoYW5nZSIsInRhcmdldCIsInZhbHVlIiwiX3JlbmRlcjUiLCJyZWYiLCJjcmVhdGVSZWYiLCJfcmVuZGVyNiIsInN0YXRlIiwiZWRpdGluZ0xhYmVsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BvaW50L19fdGVzdHNfXy9jb21wb25lbnQudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBncmFwaFByb3BzLCB4eSB9IGZyb20gJy4uLy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5cbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vY29tcG9uZW50JztcblxuZGVzY3JpYmUoJ0NvbXBvbmVudCcsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlO1xuICBsZXQgb25DbGljaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICBvbkNsaWNrID0gamVzdC5mbigpO1xuICB9KTtcblxuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBncmFwaFByb3BzOiBncmFwaFByb3BzKCksXG4gICAgICBtYXJrOiB4eSgwLCAwKSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8Q29tcG9uZW50IHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbWFyaycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDAsIDApIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGxhYmVsJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgbGFiZWw6ICdmb28nLCAuLi54eSgwLCAwKSB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkaWZmZXJlbnQgY29vcmRpbmF0ZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSg1LCAtMykgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggZW1wdHkgbGFiZWwnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyBsYWJlbDogJycsIC4uLnh5KDEsIDEpIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIG5lZ2F0aXZlIGNvb3JkaW5hdGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgLi4ueHkoLTUsIC01KSB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkZWNpbWFsIGNvb3JkaW5hdGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgLi4ueHkoMS41LCAyLjUpIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIHplcm8gY29vcmRpbmF0ZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSgwLCAwKSB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBsYXJnZSBjb29yZGluYXRlIHZhbHVlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDEwMDAsIDEwMDApIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzdGF0ZSBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGggZGlzYWJsZWQgc3RhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSgxLCAxKSwgZGlzYWJsZWQ6IHRydWUgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggY29ycmVjdG5lc3Mgc3RhdGUgLSBjb3JyZWN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgLi4ueHkoMSwgMSksIGNvcnJlY3RuZXNzOiAnY29ycmVjdCcgfSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggY29ycmVjdG5lc3Mgc3RhdGUgLSBpbmNvcnJlY3QnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSgxLCAxKSwgY29ycmVjdG5lc3M6ICdpbmNvcnJlY3QnIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGNvcnJlY3RuZXNzIHN0YXRlIC0gbWlzc2luZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IC4uLnh5KDEsIDEpLCBjb3JyZWN0bmVzczogJ21pc3NpbmcnIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGZpbGwgY29sb3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeyAuLi54eSgxLCAxKSwgZmlsbDogJyNmZjAwMDAnIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsYWJlbCBmdW5jdGlvbmFsaXR5JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIGxhYmVsIHBvcnRhbCB3aGVuIGxhYmVsTm9kZSBpcyBwcm92aWRlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZvcmVpZ25PYmplY3QnKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB7IC4uLnh5KDEsIDEpLCBsYWJlbDogJ1Rlc3QnIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBsYWJlbCBwb3J0YWwgd2hlbiBsYWJlbE5vZGUgaXMgbm90IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnVGVzdCcgfSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IHJlbmRlciBsYWJlbCBwb3J0YWwgd2hlbiBtYXJrIGhhcyBubyBsYWJlbCBwcm9wZXJ0eScsICgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZvcmVpZ25PYmplY3QnKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB7IC4uLnh5KDEsIDEpIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBsYWJlbE1vZGVFbmFibGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnVGVzdCcgfSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgICBsYWJlbE1vZGVFbmFibGVkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGxhYmVsTW9kZUVuYWJsZWQgZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICdUZXN0JyB9LFxuICAgICAgICBsYWJlbE5vZGUsXG4gICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBlbXB0eSBzdHJpbmcgbGFiZWwnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSwgbGFiZWw6ICcnIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgICAgbGFiZWxNb2RlRW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbG9uZyBsYWJlbCB0ZXh0JywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnVGhpcyBpcyBhIHZlcnkgbG9uZyBsYWJlbCB0ZXh0IGZvciB0ZXN0aW5nJyB9LFxuICAgICAgICBsYWJlbE5vZGUsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIGxhYmVsIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnVGVzdEAjJCUnIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29vcmRpbmF0ZXMgb24gaG92ZXInLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBjb29yZGluYXRlc09uSG92ZXIgZW5hYmxlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB7IC4uLnh5KDEsIDEpIH0sXG4gICAgICAgIGNvb3JkaW5hdGVzT25Ib3ZlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBjb29yZGluYXRlc09uSG92ZXIgZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeyAuLi54eSgxLCAxKSB9LFxuICAgICAgICBjb29yZGluYXRlc09uSG92ZXI6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpbnRlcmFjdGlvbiBtb2RlcycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBpbiBsYWJlbCBtb2RlJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnQScgfSxcbiAgICAgICAgbGFiZWxNb2RlRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBpbiBub3JtYWwgbW9kZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB7IC4uLnh5KDEsIDEpIH0sXG4gICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBkaXNhYmxlZCBwb2ludCBpbiBsYWJlbCBtb2RlJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnQScsIGRpc2FibGVkOiB0cnVlIH0sXG4gICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ6IHRydWUsXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZWRnZSBjYXNlcycsICgpID0+IHtcbiAgICBpdCgnaGFuZGxlcyBtYXJrIHVwZGF0ZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHJlcmVuZGVyLCBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHh5KDEsIDEpIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuXG4gICAgICByZXJlbmRlcig8Q29tcG9uZW50IG1hcms9e3h5KDIsIDIpfSBvbkNoYW5nZT17b25DaGFuZ2V9IG9uQ2xpY2s9e29uQ2xpY2t9IGdyYXBoUHJvcHM9e2dyYXBoUHJvcHMoKX0gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbWFyayB3aXRoIGFsbCBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9yZWlnbk9iamVjdCcpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHtcbiAgICAgICAgICAuLi54eSgzLCA0KSxcbiAgICAgICAgICBsYWJlbDogJ0NvbXBsZXRlJyxcbiAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgY29ycmVjdG5lc3M6ICdjb3JyZWN0JyxcbiAgICAgICAgICBmaWxsOiAnIzAwZmYwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsTm9kZSxcbiAgICAgICAgbGFiZWxNb2RlRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBtYXJrIHdpdGhvdXQgYW55IG9wdGlvbmFsIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbWFyazogeHkoMSwgMSkgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyByYXBpZCBtYXJrIHBvc2l0aW9uIGNoYW5nZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHJlcmVuZGVyLCBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHh5KDAsIDApIH0pO1xuXG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA1OyBpKyspIHtcbiAgICAgICAgcmVyZW5kZXIoPENvbXBvbmVudCBtYXJrPXt4eShpLCBpKX0gb25DaGFuZ2U9e29uQ2hhbmdlfSBvbkNsaWNrPXtvbkNsaWNrfSBncmFwaFByb3BzPXtncmFwaFByb3BzKCl9IC8+KTtcbiAgICAgIH1cblxuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29tcG9uZW50IGxpZmVjeWNsZScsICgpID0+IHtcbiAgICBpdCgnaW5pdGlhbGl6ZXMgd2l0aCBlbXB0eSBzdGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB4eSgxLCAxKSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCd1cGRhdGVzIHdoZW4gbWFyayBwcm9wIGNoYW5nZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciwgcmVyZW5kZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHh5KDEsIDEpIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuXG4gICAgICByZXJlbmRlcig8Q29tcG9uZW50IG1hcms9e3h5KDUsIDUpfSBvbkNoYW5nZT17b25DaGFuZ2V9IG9uQ2xpY2s9e29uQ2xpY2t9IGdyYXBoUHJvcHM9e2dyYXBoUHJvcHMoKX0gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbGFiZWwgYWRkaXRpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciwgcmVyZW5kZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHh5KDEsIDEpLFxuICAgICAgICBsYWJlbE5vZGUsXG4gICAgICB9KTtcblxuICAgICAgcmVyZW5kZXIoXG4gICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICBtYXJrPXt7IC4uLnh5KDEsIDEpLCBsYWJlbDogJ05ldycgfX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgICBncmFwaFByb3BzPXtncmFwaFByb3BzKCl9XG4gICAgICAgICAgbGFiZWxOb2RlPXtsYWJlbE5vZGV9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIGxhYmVsIHJlbW92YWwnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JlaWduT2JqZWN0Jyk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciwgcmVyZW5kZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7XG4gICAgICAgIG1hcms6IHsgLi4ueHkoMSwgMSksIGxhYmVsOiAnUmVtb3ZlJyB9LFxuICAgICAgICBsYWJlbE5vZGUsXG4gICAgICB9KTtcblxuICAgICAgcmVyZW5kZXIoXG4gICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICBtYXJrPXt4eSgxLCAxKX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgICBncmFwaFByb3BzPXtncmFwaFByb3BzKCl9XG4gICAgICAgICAgbGFiZWxOb2RlPXtsYWJlbE5vZGV9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dyYXBoUHJvcHMgdmFyaWF0aW9ucycsICgpID0+IHtcbiAgICBpdCgnaGFuZGxlcyBkaWZmZXJlbnQgZG9tYWluIGFuZCByYW5nZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUdyYXBoUHJvcHMgPSBncmFwaFByb3BzKDAsIDEwLCAwLCAxMCk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeHkoNSwgNSksXG4gICAgICAgIGdyYXBoUHJvcHM6IGN1c3RvbUdyYXBoUHJvcHMsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIG5lZ2F0aXZlIGRvbWFpbiBhbmQgcmFuZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21HcmFwaFByb3BzID0gZ3JhcGhQcm9wcygtMTAsIDAsIC0xMCwgMCk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHtcbiAgICAgICAgbWFyazogeHkoLTUsIC01KSxcbiAgICAgICAgZ3JhcGhQcm9wczogY3VzdG9tR3JhcGhQcm9wcyxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbGFyZ2UgZG9tYWluIGFuZCByYW5nZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUdyYXBoUHJvcHMgPSBncmFwaFByb3BzKC0xMDAsIDEwMCwgLTEwMCwgMTAwKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoe1xuICAgICAgICBtYXJrOiB4eSg1MCwgNTApLFxuICAgICAgICBncmFwaFByb3BzOiBjdXN0b21HcmFwaFByb3BzLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsYWJlbCBmb2N1cycsICgpID0+IHtcbiAgICBsZXQgbGFiZWxOb2RlO1xuXG4gICAgLy8gdGhlIGxhYmVsIGlzIHJlbmRlcmVkIGludG8gYSBwb3J0YWwgLSBpdCBoYXMgdG8gYmUgaW4gdGhlIGRvY3VtZW50IGZvciBpdCB0byB0YWtlIHRoZSBmb2N1c1xuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgbGFiZWxOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxhYmVsTm9kZSk7XG4gICAgfSk7XG5cbiAgICBhZnRlckVhY2goKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsYWJlbE5vZGUpO1xuICAgIH0pO1xuXG4gICAgLy8gdGhlIG1hcmsgaXMgb3duZWQgYnkgdGhlIGNvbnRhaW5lciwgc28gdGhlIHRvb2wgb25seSBzZWVzIGEgbmV3IGxhYmVsIG9uY2UgaXQgaXMgaGFuZGVkIGJhY2tcbiAgICBjb25zdCBDb250cm9sbGVkID0gKHsgaW5pdGlhbE1hcmssIGxhYmVsTW9kZUVuYWJsZWQgfSkgPT4ge1xuICAgICAgY29uc3QgW21hcmssIHNldE1hcmtdID0gUmVhY3QudXNlU3RhdGUoaW5pdGlhbE1hcmspO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Q29tcG9uZW50XG4gICAgICAgICAgbWFyaz17bWFya31cbiAgICAgICAgICBvbkNoYW5nZT17KGN1cnJlbnQsIHVwZGF0ZSkgPT4gc2V0TWFyayh1cGRhdGUpfVxuICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wcygpfVxuICAgICAgICAgIGxhYmVsTm9kZT17bGFiZWxOb2RlfVxuICAgICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ9e2xhYmVsTW9kZUVuYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICBjb25zdCBjbGlja1BvaW50ID0gKGNvbnRhaW5lcikgPT4gZmlyZUV2ZW50LmNsaWNrKGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdjaXJjbGUnKSk7XG5cbiAgICBpdCgnZm9jdXNlcyB0aGUgbmV3IGxhYmVsIHdoZW4gYSBwb2ludCBpcyBjbGlja2VkIGluIGxhYmVsIG1vZGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxDb250cm9sbGVkIGluaXRpYWxNYXJrPXt4eSgxLCAxKX0gbGFiZWxNb2RlRW5hYmxlZD17dHJ1ZX0gLz4pO1xuXG4gICAgICBleHBlY3QobGFiZWxOb2RlLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykpLnRvQmUobnVsbCk7XG5cbiAgICAgIGNsaWNrUG9pbnQoY29udGFpbmVyKTtcblxuICAgICAgY29uc3QgaW5wdXQgPSBsYWJlbE5vZGUucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICAgIGV4cGVjdChpbnB1dCkubm90LnRvQmUobnVsbCk7XG4gICAgICBleHBlY3QoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkudG9CZShpbnB1dCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgZm9jdXMgdGhlIGxhYmVsIHdoZW4gYSBwb2ludCBpcyBjbGlja2VkIG91dHNpZGUgb2YgbGFiZWwgbW9kZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPENvbnRyb2xsZWQgaW5pdGlhbE1hcms9e3sgLi4ueHkoMSwgMSksIGxhYmVsOiAnQScgfX0gbGFiZWxNb2RlRW5hYmxlZD17ZmFsc2V9IC8+KTtcblxuICAgICAgY2xpY2tQb2ludChjb250YWluZXIpO1xuXG4gICAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLm5vdC50b0JlKGxhYmVsTm9kZS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCBmb2N1cyB0aGUgbGFiZWwgb2YgYSBkaXNhYmxlZCBtYXJrJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPENvbnRyb2xsZWQgaW5pdGlhbE1hcms9e3sgLi4ueHkoMSwgMSksIGxhYmVsOiAnQScsIGRpc2FibGVkOiB0cnVlIH19IGxhYmVsTW9kZUVuYWJsZWQ9e3RydWV9IC8+LFxuICAgICAgKTtcblxuICAgICAgY2xpY2tQb2ludChjb250YWluZXIpO1xuXG4gICAgICBleHBlY3QoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkubm90LnRvQmUobGFiZWxOb2RlLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykpO1xuICAgIH0pO1xuXG4gICAgLy8gdGhlIGJsdXIgdGhhdCB0aGUgRE5BIGVudiBjYXVzZXMgYnkgbW92aW5nIHRoZSBmb2N1cyBpcyBub3QgdGhlIHVzZXIgbGVhdmluZyB0aGUgbGFiZWxcbiAgICBpdCgna2VlcHMgdGhlIGZvY3VzIG9uIGEgbmV3IGVtcHR5IGxhYmVsIHRoYXQgc29tZXRoaW5nIGVsc2UgYmx1cnJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPENvbnRyb2xsZWQgaW5pdGlhbE1hcms9e3h5KDEsIDEpfSBsYWJlbE1vZGVFbmFibGVkPXt0cnVlfSAvPik7XG5cbiAgICAgIGNsaWNrUG9pbnQoY29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGlucHV0ID0gbGFiZWxOb2RlLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgICBleHBlY3QoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkudG9CZShpbnB1dCk7XG5cbiAgICAgIGZpcmVFdmVudC5ibHVyKGlucHV0KTtcbiAgICAgIGZpcmVFdmVudC5jaGFuZ2UoaW5wdXQsIHsgdGFyZ2V0OiB7IHZhbHVlOiAnQScgfSB9KTtcblxuICAgICAgZXhwZWN0KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLnRvQmUoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3N0b3BzIGF1dG8gZm9jdXNpbmcgdGhlIGxhYmVsIG9uY2UgaXQgaGFzIHRleHQgYW5kIGlzIGJsdXJyZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxDb250cm9sbGVkIGluaXRpYWxNYXJrPXt4eSgxLCAxKX0gbGFiZWxNb2RlRW5hYmxlZD17dHJ1ZX0gLz4pO1xuXG4gICAgICBjbGlja1BvaW50KGNvbnRhaW5lcik7XG4gICAgICBjb25zdCBpbnB1dCA9IGxhYmVsTm9kZS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuXG4gICAgICBmaXJlRXZlbnQuY2hhbmdlKGlucHV0LCB7IHRhcmdldDogeyB2YWx1ZTogJ0EnIH0gfSk7XG4gICAgICBmaXJlRXZlbnQuYmx1cihpbnB1dCk7XG4gICAgICBpbnB1dC5ibHVyKCk7XG5cbiAgICAgIC8vIGEgcmUtcmVuZGVyIG11c3Qgbm90IHB1bGwgdGhlIGZvY3VzIGJhY2sgaW50byB0aGUgbGFiZWwgdGhlIHVzZXIganVzdCBsZWZ0XG4gICAgICBmaXJlRXZlbnQuY2hhbmdlKGlucHV0LCB7IHRhcmdldDogeyB2YWx1ZTogJ0FCJyB9IH0pO1xuICAgICAgZXhwZWN0KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLm5vdC50b0JlKGlucHV0KTtcbiAgICB9KTtcblxuICAgIGl0KCdjbG9zZXMgdGhlIGxhYmVsIHRoYXQgaXMgYmVpbmcgZWRpdGVkIHdoZW4gbGFiZWwgbW9kZSBpcyBsZWZ0JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciwgcmVyZW5kZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPENvbXBvbmVudFxuICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgIG1hcms9e3h5KDEsIDEpfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgIGdyYXBoUHJvcHM9e2dyYXBoUHJvcHMoKX1cbiAgICAgICAgICBsYWJlbE5vZGU9e2xhYmVsTm9kZX1cbiAgICAgICAgICBsYWJlbE1vZGVFbmFibGVkPXt0cnVlfVxuICAgICAgICAvPixcbiAgICAgICk7XG5cbiAgICAgIGNsaWNrUG9pbnQoY29udGFpbmVyKTtcbiAgICAgIGV4cGVjdChyZWYuY3VycmVudC5zdGF0ZS5lZGl0aW5nTGFiZWwpLnRvQmUoJ2xhYmVsJyk7XG5cbiAgICAgIHJlcmVuZGVyKFxuICAgICAgICA8Q29tcG9uZW50XG4gICAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgICAgbWFyaz17eHkoMSwgMSl9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wcygpfVxuICAgICAgICAgIGxhYmVsTm9kZT17bGFiZWxOb2RlfVxuICAgICAgICAgIGxhYmVsTW9kZUVuYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAvPixcbiAgICAgICk7XG5cbiAgICAgIC8vIHRoZXJlIGlzIG5vIHVzZXIgdmlzaWJsZSBwYXRoIGZvciB0aGlzIG9uZTogYSByZWFsIGJsdXIgcmVzZXRzIGl0IHRocm91Z2ggb25CbHVyLCB0aGlzIGlzXG4gICAgICAvLyB0aGUgc2FmZXR5IG5ldCBmb3IgYSBsYWJlbCB0aGF0IGlzIHN0aWxsIG1hcmtlZCBhcyBlZGl0ZWQgd2hlbiBsYWJlbCBtb2RlIGdvZXMgYXdheVxuICAgICAgZXhwZWN0KHJlZi5jdXJyZW50LnN0YXRlLmVkaXRpbmdMYWJlbCkudG9CZShudWxsKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxVQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBcUMsU0FBQUssUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxD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
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "4.0.24-beta.13",
6
+ "version": "4.0.24-beta.15",
7
7
  "description": "Graphing components",
8
8
  "keywords": [
9
9
  "react",
@@ -23,9 +23,9 @@
23
23
  "@mui/icons-material": "^7.3.4",
24
24
  "@mui/material": "^7.3.4",
25
25
  "@pie-lib/drag": "^4.0.2",
26
- "@pie-lib/editable-html-tip-tap": "^2.1.20-beta.13",
26
+ "@pie-lib/editable-html-tip-tap": "^2.1.20-beta.15",
27
27
  "@pie-lib/graphing-utils": "^3.0.2",
28
- "@pie-lib/plot": "^4.0.22-beta.13",
28
+ "@pie-lib/plot": "^4.0.22-beta.15",
29
29
  "@pie-lib/render-ui": "^6.1.0",
30
30
  "@pie-lib/translator": "^4.0.2",
31
31
  "@visx/axis": "^3.0.0",