@1money/component-ui 0.0.48 → 0.0.50

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 (127) hide show
  1. package/es/components/Accordion/style/Accordion.css +94 -1
  2. package/es/components/Alert/style/Alert.css +101 -1
  3. package/es/components/Button/style/Button.css +178 -1
  4. package/es/components/Calendar/style/Calendar.css +400 -1
  5. package/es/components/Carousel/style/Carousel.css +57 -1
  6. package/es/components/Cell/style/Cell.css +80 -1
  7. package/es/components/Checkbox/style/Checkbox.css +191 -1
  8. package/es/components/CoachMark/style/CoachMark.css +156 -1
  9. package/es/components/Copy/style/Clipboard.css +45 -1
  10. package/es/components/Copy/style/Copy.css +48 -1
  11. package/es/components/Dialog/style/Dialog.css +204 -1
  12. package/es/components/Divider/style/Divider.css +128 -1
  13. package/es/components/Drawer/style/Drawer.css +145 -1
  14. package/es/components/Dropdown/style/Dropdown.css +48 -1
  15. package/es/components/Empty/style/Empty.css +58 -1
  16. package/es/components/Flex/style/Flex.css +71 -1
  17. package/es/components/Grid/style/Grid.css +952 -1
  18. package/es/components/Icons/style/Icons.css +81 -1
  19. package/es/components/Input/Amount/style/Amount.css +103 -1
  20. package/es/components/Input/FieldShell/FieldShell.css +76 -1
  21. package/es/components/Input/Input/Input.css +124 -1
  22. package/es/components/Input/OTP/OTP.css +79 -1
  23. package/es/components/Input/TextArea/TextArea.css +93 -1
  24. package/es/components/Input/Trade/Trade.css +192 -1
  25. package/es/components/Link/style/Link.css +70 -1
  26. package/es/components/Navigation/style/Nav.css +158 -1
  27. package/es/components/Navigation/style/Navigation.css +373 -1
  28. package/es/components/Navigation/style/NavigationStepper.css +97 -1
  29. package/es/components/Notification/NotificationStatic.js +22 -22
  30. package/es/components/Notification/style/Notification.css +170 -1
  31. package/es/components/Pagination/style/Pagination.css +89 -1
  32. package/es/components/Popconfirm/style/Popconfirm.css +137 -1
  33. package/es/components/ProForm/ProForm.js +38 -38
  34. package/es/components/ProForm/ProFormDependency.js +5 -5
  35. package/es/components/ProForm/Submitter.js +4 -4
  36. package/es/components/ProForm/core/hooks/useForm.js +101 -101
  37. package/es/components/ProForm/core/useFormItem.js +5 -5
  38. package/es/components/ProForm/hooks/useFieldRequest.js +12 -12
  39. package/es/components/ProForm/layouts/useOverlayForm.js +5 -5
  40. package/es/components/ProForm/style/ProForm.css +168 -1
  41. package/es/components/Progress/style/Progress.css +103 -1
  42. package/es/components/Radio/style/Radio.css +362 -1
  43. package/es/components/Segment/style/Segment.css +79 -1
  44. package/es/components/Select/style/Select.css +468 -1
  45. package/es/components/Skeleton/style/Skeleton.css +54 -1
  46. package/es/components/Slider/style/Slider.css +161 -1
  47. package/es/components/Space/style/Space.css +47 -1
  48. package/es/components/Spinner/Spinner.js +7 -7
  49. package/es/components/Spinner/style/Spinner.css +99 -1
  50. package/es/components/Step/style/Step.css +107 -1
  51. package/es/components/Switch/style/Switch.css +102 -1
  52. package/es/components/Table/style/Table.css +370 -1
  53. package/es/components/Tabs/style/Tabs.css +118 -1
  54. package/es/components/Tag/style/Tag.css +87 -1
  55. package/es/components/Tooltip/style/Tooltip.css +98 -1
  56. package/es/components/Trigger/style/Trigger.css +35 -1
  57. package/es/components/Typography/style/Typography.css +444 -1
  58. package/es/components/Upload/style/Upload.css +55 -1
  59. package/es/components/Upload/style/UploadFileBar.css +88 -1
  60. package/es/components/VirtualList/style/VirtualList.css +25 -1
  61. package/es/index.css +1 -1
  62. package/es/stories/docs/storybook-docs.css +323 -1
  63. package/es/styles/index.css +5328 -1
  64. package/lib/components/Accordion/style/Accordion.css +94 -1
  65. package/lib/components/Alert/style/Alert.css +101 -1
  66. package/lib/components/Button/style/Button.css +178 -1
  67. package/lib/components/Calendar/style/Calendar.css +400 -1
  68. package/lib/components/Carousel/style/Carousel.css +57 -1
  69. package/lib/components/Cell/style/Cell.css +80 -1
  70. package/lib/components/Checkbox/style/Checkbox.css +191 -1
  71. package/lib/components/CoachMark/style/CoachMark.css +156 -1
  72. package/lib/components/Copy/style/Clipboard.css +45 -1
  73. package/lib/components/Copy/style/Copy.css +48 -1
  74. package/lib/components/Dialog/style/Dialog.css +204 -1
  75. package/lib/components/Divider/style/Divider.css +128 -1
  76. package/lib/components/Drawer/style/Drawer.css +145 -1
  77. package/lib/components/Dropdown/style/Dropdown.css +48 -1
  78. package/lib/components/Empty/style/Empty.css +58 -1
  79. package/lib/components/Flex/style/Flex.css +71 -1
  80. package/lib/components/Grid/style/Grid.css +952 -1
  81. package/lib/components/Icons/style/Icons.css +81 -1
  82. package/lib/components/Input/Amount/style/Amount.css +103 -1
  83. package/lib/components/Input/FieldShell/FieldShell.css +76 -1
  84. package/lib/components/Input/Input/Input.css +124 -1
  85. package/lib/components/Input/OTP/OTP.css +79 -1
  86. package/lib/components/Input/TextArea/TextArea.css +93 -1
  87. package/lib/components/Input/Trade/Trade.css +192 -1
  88. package/lib/components/Link/style/Link.css +70 -1
  89. package/lib/components/Navigation/style/Nav.css +158 -1
  90. package/lib/components/Navigation/style/Navigation.css +373 -1
  91. package/lib/components/Navigation/style/NavigationStepper.css +97 -1
  92. package/lib/components/Notification/NotificationStatic.js +22 -22
  93. package/lib/components/Notification/style/Notification.css +170 -1
  94. package/lib/components/Pagination/style/Pagination.css +89 -1
  95. package/lib/components/Popconfirm/style/Popconfirm.css +137 -1
  96. package/lib/components/ProForm/ProForm.js +38 -38
  97. package/lib/components/ProForm/ProFormDependency.js +5 -5
  98. package/lib/components/ProForm/Submitter.js +4 -4
  99. package/lib/components/ProForm/core/hooks/useForm.js +101 -101
  100. package/lib/components/ProForm/core/useFormItem.js +5 -5
  101. package/lib/components/ProForm/hooks/useFieldRequest.js +12 -12
  102. package/lib/components/ProForm/layouts/useOverlayForm.js +5 -5
  103. package/lib/components/ProForm/style/ProForm.css +168 -1
  104. package/lib/components/Progress/style/Progress.css +103 -1
  105. package/lib/components/Radio/style/Radio.css +362 -1
  106. package/lib/components/Segment/style/Segment.css +79 -1
  107. package/lib/components/Select/style/Select.css +468 -1
  108. package/lib/components/Skeleton/style/Skeleton.css +54 -1
  109. package/lib/components/Slider/style/Slider.css +161 -1
  110. package/lib/components/Space/style/Space.css +47 -1
  111. package/lib/components/Spinner/Spinner.js +7 -7
  112. package/lib/components/Spinner/style/Spinner.css +99 -1
  113. package/lib/components/Step/style/Step.css +107 -1
  114. package/lib/components/Switch/style/Switch.css +102 -1
  115. package/lib/components/Table/style/Table.css +370 -1
  116. package/lib/components/Tabs/style/Tabs.css +118 -1
  117. package/lib/components/Tag/style/Tag.css +87 -1
  118. package/lib/components/Tooltip/style/Tooltip.css +98 -1
  119. package/lib/components/Trigger/style/Trigger.css +35 -1
  120. package/lib/components/Typography/style/Typography.css +444 -1
  121. package/lib/components/Upload/style/Upload.css +55 -1
  122. package/lib/components/Upload/style/UploadFileBar.css +88 -1
  123. package/lib/components/VirtualList/style/VirtualList.css +25 -1
  124. package/lib/index.css +1 -1
  125. package/lib/stories/docs/storybook-docs.css +323 -1
  126. package/lib/styles/index.css +5328 -1
  127. package/package.json +65 -34
@@ -89,14 +89,14 @@ var getNotificationRoot = function getNotificationRoot() {
89
89
  };
90
90
  var createNotificationRenderer = function createNotificationRenderer(container) {
91
91
  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
92
- var reactDomClient, root, reactDom;
93
- return _regeneratorRuntime.wrap(function _callee$(_context) {
92
+ var reactDomClient, root, reactDom, _t;
93
+ return _regeneratorRuntime.wrap(function (_context) {
94
94
  while (1) switch (_context.prev = _context.next) {
95
95
  case 0:
96
96
  _context.prev = 0;
97
- _context.next = 3;
97
+ _context.next = 1;
98
98
  return import('react-dom/client');
99
- case 3:
99
+ case 1:
100
100
  reactDomClient = _context.sent;
101
101
  root = reactDomClient.createRoot(container);
102
102
  return _context.abrupt("return", {
@@ -107,19 +107,19 @@ var createNotificationRenderer = function createNotificationRenderer(container)
107
107
  root.unmount();
108
108
  }
109
109
  });
110
- case 8:
111
- _context.prev = 8;
112
- _context.t0 = _context["catch"](0);
113
- _context.next = 12;
110
+ case 2:
111
+ _context.prev = 2;
112
+ _t = _context["catch"](0);
113
+ _context.next = 3;
114
114
  return import('react-dom');
115
- case 12:
115
+ case 3:
116
116
  reactDom = _context.sent;
117
117
  if (!(typeof reactDom.render !== 'function' || typeof reactDom.unmountComponentAtNode !== 'function')) {
118
- _context.next = 15;
118
+ _context.next = 4;
119
119
  break;
120
120
  }
121
121
  return _context.abrupt("return", null);
122
- case 15:
122
+ case 4:
123
123
  return _context.abrupt("return", {
124
124
  render: function render(element) {
125
125
  var _a;
@@ -130,11 +130,11 @@ var createNotificationRenderer = function createNotificationRenderer(container)
130
130
  (_a = reactDom.unmountComponentAtNode) === null || _a === void 0 ? void 0 : _a.call(reactDom, container);
131
131
  }
132
132
  });
133
- case 16:
133
+ case 5:
134
134
  case "end":
135
135
  return _context.stop();
136
136
  }
137
- }, _callee, null, [[0, 8]]);
137
+ }, _callee, null, [[0, 2]]);
138
138
  }));
139
139
  };
140
140
  var NotificationMotionItem = function NotificationMotionItem(_ref) {
@@ -377,27 +377,27 @@ var NotificationManager = /*#__PURE__*/function () {
377
377
  value: function ensureRenderer() {
378
378
  return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
379
379
  var _this5 = this;
380
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
380
+ return _regeneratorRuntime.wrap(function (_context2) {
381
381
  while (1) switch (_context2.prev = _context2.next) {
382
382
  case 0:
383
383
  if (canUseDOM()) {
384
- _context2.next = 2;
384
+ _context2.next = 1;
385
385
  break;
386
386
  }
387
387
  return _context2.abrupt("return", null);
388
- case 2:
388
+ case 1:
389
389
  if (!this.renderer) {
390
- _context2.next = 4;
390
+ _context2.next = 2;
391
391
  break;
392
392
  }
393
393
  return _context2.abrupt("return", this.renderer);
394
- case 4:
394
+ case 2:
395
395
  if (!this.rendererPromise) {
396
- _context2.next = 6;
396
+ _context2.next = 3;
397
397
  break;
398
398
  }
399
399
  return _context2.abrupt("return", this.rendererPromise);
400
- case 6:
400
+ case 3:
401
401
  this.container = getNotificationRoot();
402
402
  this.rendererPromise = createNotificationRenderer(this.container).then(function (renderer) {
403
403
  _this5.renderer = renderer;
@@ -412,7 +412,7 @@ var NotificationManager = /*#__PURE__*/function () {
412
412
  return null;
413
413
  });
414
414
  return _context2.abrupt("return", this.rendererPromise);
415
- case 9:
415
+ case 4:
416
416
  case "end":
417
417
  return _context2.stop();
418
418
  }
@@ -498,4 +498,4 @@ export var notification = {
498
498
  }
499
499
  };
500
500
  export default notification;
501
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19yZXN0IiwicyIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIk1lbW9pemVkTm90aWZpY2F0aW9uIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMiLCJOT1RJRklDQVRJT05fUk9PVF9JRCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1BMQUNFTUVOVCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5UIiwiTnVtYmVyIiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHIiwicGxhY2VtZW50IiwiZHVyYXRpb24iLCJtYXhDb3VudCIsImNhblVzZURPTSIsIndpbmRvdyIsImRvY3VtZW50Iiwibm9ybWFsaXplRHVyYXRpb24iLCJmYWxsYmFjayIsImlzRmluaXRlIiwibm9ybWFsaXplTWF4Q291bnQiLCJNYXRoIiwiZmxvb3IiLCJncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudCIsIml0ZW1zIiwiZ3JvdXBlZEl0ZW1zIiwiZm9yRWFjaCIsIml0ZW0iLCJwdXNoIiwiZ2V0Tm90aWZpY2F0aW9uUm9vdCIsImV4aXN0aW5nUm9vdCIsImdldEVsZW1lbnRCeUlkIiwiSFRNTERpdkVsZW1lbnQiLCJyb290IiwiY3JlYXRlRWxlbWVudCIsImlkIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY3JlYXRlTm90aWZpY2F0aW9uUmVuZGVyZXIiLCJjb250YWluZXIiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZWFjdERvbUNsaWVudCIsInJlYWN0RG9tIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2Iiwic2VudCIsImNyZWF0ZVJvb3QiLCJhYnJ1cHQiLCJyZW5kZXIiLCJlbGVtZW50IiwidW5tb3VudCIsInQwIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsIl9hIiwic3RvcCIsIk5vdGlmaWNhdGlvbk1vdGlvbkl0ZW0iLCJfcmVmIiwiY29sbGFwc2VPbkV4aXQiLCJvbkNsb3NlIiwiY2xhc3NlcyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImVudGVyZWQiLCJzZXRFbnRlcmVkIiwiY2xvc2luZyIsInVuZGVmaW5lZCIsImZyYW1lIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJrZXkiLCJub3RpZmljYXRpb25Qcm9wcyIsIm1vdGlvbkNsYXNzTmFtZSIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiYXNzaWduIiwiTm90aWZpY2F0aW9uVmlld3BvcnQiLCJfcmVmMiIsIml0ZW1zQnlQbGFjZW1lbnQiLCJtYXAiLCJwbGFjZW1lbnRJdGVtcyIsImFjdGl2ZUNvdW50IiwiZmlsdGVyIiwiY29uY2F0IiwiU3RyaW5nIiwiTm90aWZpY2F0aW9uTWFuYWdlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwicmVuZGVyZXIiLCJyZW5kZXJlclByb21pc2UiLCJ0aW1lcnMiLCJNYXAiLCJyZW1vdmFsVGltZXJzIiwia2V5U2VlZCIsImNvbmZpZ1N0YXRlIiwib3BlbiIsImNvbmZpZyIsImNyZWF0ZUtleSIsImN1cnJlbnRJdGVtIiwiZmluZCIsIm5leHRJdGVtIiwiY3JlYXRlUmVjb3JkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2xlYXJSZW1vdmFsVGltZXIiLCJzdGFydFRpbWVyIiwidHJpbU92ZXJmbG93IiwiZGVzdHJveSIsImJlZ2luQ2xvc2UiLCJfYiIsIl9jIiwiaGFuZGxlQ2xvc2UiLCJfY3JlYXRlQ2xhc3MiLCJfZCIsIm1lcmdlZENvbmZpZyIsIl90aGlzMiIsImNsZWFyVGltZXIiLCJ0aW1lb3V0SWQiLCJzZXRUaW1lb3V0Iiwic2V0IiwiZ2V0IiwiY2xlYXJUaW1lb3V0IiwiX3RoaXMzIiwib3ZlcmZsb3dLZXlzIiwiZmxhdE1hcCIsIm92ZXJmbG93Q291bnQiLCJzbGljZSIsImtleXMiLCJfdGhpczQiLCJrZXlTZXQiLCJTZXQiLCJjbG9zaW5nS2V5cyIsImhhcyIsImZpbmFsaXplUmVtb3ZlIiwicmVtb3ZlZEl0ZW1zIiwiZW5zdXJlUmVuZGVyZXIiLCJfY2FsbGVlMiIsIl90aGlzNSIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInJlbW92ZUNvbnRhaW5lciIsInJlbW92ZSIsInRlYXJkb3duIiwiY2xlYXIiLCJyZW5kZXJOb2RlIiwiX3RoaXM2Iiwibm90aWZpY2F0aW9uTWFuYWdlciIsIm9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzIiwic3RhdHVzIiwibm90aWZpY2F0aW9uIiwiaW5mbyIsInN1Y2Nlc3MiLCJ3YXJuaW5nIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFD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QUFFLFNBQVRBLE9BQU9BLENBQUVwQyxHQUFHO0lBQUEsT0FBSTJFLG1CQUFtQixDQUFDdkMsT0FBTyxDQUFDcEMsR0FBRyxDQUFDO0VBQUE7RUFDaEQwQixNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBRUEsT0FBTTtJQUFBLE9BQUlpRCxtQkFBbUIsQ0FBQ2pELE1BQU0sQ0FBQ0EsT0FBTSxDQUFDO0VBQUE7QUQzSXRELENDNElDO0FBRUQsZUFBZW9ELFlBQVkiLCJmaWxlIjoiY29tcG9uZW50cy9Ob3RpZmljYXRpb24vTm90aWZpY2F0aW9uU3RhdGljLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1lbW9pemVkTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9Ob3RpZmljYXRpb24nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuaW1wb3J0IHsgTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5jb25zdCBOT1RJRklDQVRJT05fUk9PVF9JRCA9ICdvbS1jb21wb25lbnQtdWktbm90aWZpY2F0aW9uLXJvb3QnO1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fUExBQ0VNRU5UID0gJ3RvcFJpZ2h0JztcbmNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX0RVUkFUSU9OID0gNC41O1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5UID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuY29uc3QgTk9USUZJQ0FUSU9OX01PVElPTl9EVVJBVElPTiA9IDI0MDtcbmNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX0NPTkZJRyA9IHtcbiAgICBwbGFjZW1lbnQ6IERFRkFVTFRfTk9USUZJQ0FUSU9OX1BMQUNFTUVOVCxcbiAgICBkdXJhdGlvbjogREVGQVVMVF9OT1RJRklDQVRJT05fRFVSQVRJT04sXG4gICAgbWF4Q291bnQ6IERFRkFVTFRfTk9USUZJQ0FUSU9OX01BWF9DT1VOVCxcbn07XG5jb25zdCBjYW5Vc2VET00gPSAoKSA9PiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuY29uc3Qgbm9ybWFsaXplRHVyYXRpb24gPSAodmFsdWUsIGZhbGxiYWNrKSA9PiB7XG4gICAgaWYgKHZhbHVlIDw9IDApXG4gICAgICAgIHJldHVybiAwO1xuICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpID8gdmFsdWUgOiBmYWxsYmFjaztcbn07XG5jb25zdCBub3JtYWxpemVNYXhDb3VudCA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSB8fCB2YWx1ZSA8PSAwKSB7XG4gICAgICAgIHJldHVybiBERUZBVUxUX05PVElGSUNBVElPTl9NQVhfQ09VTlQ7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKTtcbn07XG5jb25zdCBncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudCA9IChpdGVtcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRJdGVtcyA9IHt9O1xuICAgIE5PVElGSUNBVElPTl9QTEFDRU1FTlRTLmZvckVhY2gocGxhY2VtZW50ID0+IHtcbiAgICAgICAgZ3JvdXBlZEl0ZW1zW3BsYWNlbWVudF0gPSBbXTtcbiAgICB9KTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBncm91cGVkSXRlbXNbaXRlbS5wbGFjZW1lbnRdLnB1c2goaXRlbSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwZWRJdGVtcztcbn07XG5jb25zdCBnZXROb3RpZmljYXRpb25Sb290ID0gKCkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nUm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKE5PVElGSUNBVElPTl9ST09UX0lEKTtcbiAgICBpZiAoZXhpc3RpbmdSb290IGluc3RhbmNlb2YgSFRNTERpdkVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nUm9vdDtcbiAgICB9XG4gICAgY29uc3Qgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHJvb3QuaWQgPSBOT1RJRklDQVRJT05fUk9PVF9JRDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpO1xuICAgIHJldHVybiByb290O1xufTtcbmNvbnN0IGNyZWF0ZU5vdGlmaWNhdGlvblJlbmRlcmVyID0gKGNvbnRhaW5lcikgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVhY3REb21DbGllbnQgPSB5aWVsZCBpbXBvcnQoJ3JlYWN0LWRvbS9jbGllbnQnKTtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHJlYWN0RG9tQ2xpZW50LmNyZWF0ZVJvb3QoY29udGFpbmVyKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlbmRlcjogZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgcm9vdC5yZW5kZXIoZWxlbWVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5tb3VudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJvb3QudW5tb3VudCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgIC8vIEZhbGxiYWNrIGZvciBSZWFjdCA8IDE4IHdoZXJlIHJlYWN0LWRvbS9jbGllbnQgaXMgdW5hdmFpbGFibGVcbiAgICAgICAgY29uc3QgcmVhY3REb20gPSB5aWVsZCBpbXBvcnQoJ3JlYWN0LWRvbScpO1xuICAgICAgICBpZiAodHlwZW9mIHJlYWN0RG9tLnJlbmRlciAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIHJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZW5kZXI6IGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSByZWFjdERvbS5yZW5kZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHJlYWN0RG9tLCBlbGVtZW50LCBjb250YWluZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVubW91bnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgKF9hID0gcmVhY3REb20udW5tb3VudENvbXBvbmVudEF0Tm9kZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocmVhY3REb20sIGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn0pO1xuY29uc3QgTm90aWZpY2F0aW9uTW90aW9uSXRlbSA9ICh7IGl0ZW0sIGNvbGxhcHNlT25FeGl0LCBvbkNsb3NlIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcygnbm90aWZpY2F0aW9uJyk7XG4gICAgY29uc3QgW2VudGVyZWQsIHNldEVudGVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmNsb3NpbmcgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmcmFtZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgc2V0RW50ZXJlZCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoZnJhbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtpdGVtLmNsb3NpbmcsIGl0ZW0ua2V5XSk7XG4gICAgY29uc3QgeyBrZXksIGR1cmF0aW9uLCBwbGFjZW1lbnQsIGNsb3NpbmcgfSA9IGl0ZW0sIG5vdGlmaWNhdGlvblByb3BzID0gX19yZXN0KGl0ZW0sIFtcImtleVwiLCBcImR1cmF0aW9uXCIsIFwicGxhY2VtZW50XCIsIFwiY2xvc2luZ1wiXSk7XG4gICAgY29uc3QgbW90aW9uQ2xhc3NOYW1lID0gY2xvc2luZ1xuICAgICAgICA/IGpvaW5DbHMoY2xhc3NlcygnaXRlbS1leGl0JyksIGNvbGxhcHNlT25FeGl0ID8gY2xhc3NlcygnaXRlbS1leGl0LWNvbGxhcHNlJykgOiAnJylcbiAgICAgICAgOiBlbnRlcmVkXG4gICAgICAgICAgICA/IGNsYXNzZXMoJ2l0ZW0tYWN0aXZlJylcbiAgICAgICAgICAgIDogY2xhc3NlcygnaXRlbS1lbnRlcicpO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdpdGVtJyksIG1vdGlvbkNsYXNzTmFtZSksIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWlubmVyJyksIGNoaWxkcmVuOiBfanN4KE1lbW9pemVkTm90aWZpY2F0aW9uLCBPYmplY3QuYXNzaWduKHt9LCBub3RpZmljYXRpb25Qcm9wcywgeyBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2Uoa2V5KTtcbiAgICAgICAgICAgICAgICB9IH0pKSB9KSB9KSk7XG59O1xuY29uc3QgTm90aWZpY2F0aW9uVmlld3BvcnQgPSAoeyBpdGVtcywgb25DbG9zZSB9KSA9PiB7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoJ25vdGlmaWNhdGlvbicpO1xuICAgIGNvbnN0IGl0ZW1zQnlQbGFjZW1lbnQgPSBncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudChpdGVtcyk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd2aWV3cG9ydCcpLCBcImFyaWEtbGl2ZVwiOiBcInBvbGl0ZVwiLCBcImFyaWEtYXRvbWljXCI6IFwiZmFsc2VcIiwgY2hpbGRyZW46IE5PVElGSUNBVElPTl9QTEFDRU1FTlRTLm1hcChwbGFjZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50SXRlbXMgPSBpdGVtc0J5UGxhY2VtZW50W3BsYWNlbWVudF07XG4gICAgICAgICAgICBpZiAoIXBsYWNlbWVudEl0ZW1zLmxlbmd0aClcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNvdW50ID0gcGxhY2VtZW50SXRlbXMuZmlsdGVyKGkgPT4gIWkuY2xvc2luZykubGVuZ3RoO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3N0YWNrJyksIGNsYXNzZXMoYHN0YWNrLSR7cGxhY2VtZW50fWApKSwgY2hpbGRyZW46IHBsYWNlbWVudEl0ZW1zLm1hcChpdGVtID0+IChfanN4KE5vdGlmaWNhdGlvbk1vdGlvbkl0ZW0sIHsgaXRlbTogaXRlbSwgY29sbGFwc2VPbkV4aXQ6IGl0ZW0uY2xvc2luZyAmJiBhY3RpdmVDb3VudCA+IDAsIG9uQ2xvc2U6IG9uQ2xvc2UgfSwgU3RyaW5nKGl0ZW0ua2V5KSkpKSB9LCBwbGFjZW1lbnQpKTtcbiAgICAgICAgfSkgfSkpO1xufTtcbmNsYXNzIE5vdGlmaWNhdGlvbk1hbmFnZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSBudWxsO1xuICAgICAgICB0aGlzLnJlbmRlcmVyUHJvbWlzZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50aW1lcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5rZXlTZWVkID0gMDtcbiAgICAgICAgdGhpcy5jb25maWdTdGF0ZSA9IERFRkFVTFRfTk9USUZJQ0FUSU9OX0NPTkZJRztcbiAgICAgICAgdGhpcy5vcGVuID0gKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gKF9hID0gY29uZmlnLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5jcmVhdGVLZXkoKTtcbiAgICAgICAgICAgIGlmICghY2FuVXNlRE9NKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmtleSA9PT0ga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRJdGVtID0gdGhpcy5jcmVhdGVSZWNvcmQoa2V5LCBjb25maWcsIGN1cnJlbnRJdGVtKTtcbiAgICAgICAgICAgIGlmICghY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuaXRlbXMsIG5leHRJdGVtXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnRJdGVtLnBsYWNlbWVudCA9PT0gbmV4dEl0ZW0ucGxhY2VtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMubWFwKGl0ZW0gPT4gKGl0ZW0ua2V5ID09PSBrZXkgPyBuZXh0SXRlbSA6IGl0ZW0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSAhPT0ga2V5KSwgbmV4dEl0ZW1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbGVhclJlbW92YWxUaW1lcihrZXkpO1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVyKG5leHRJdGVtKTtcbiAgICAgICAgICAgIHRoaXMudHJpbU92ZXJmbG93KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0ga2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZSh0aGlzLml0ZW1zLm1hcChpdGVtID0+IGl0ZW0ua2V5KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJlZ2luQ2xvc2UoW2tleV0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWcgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1N0YXRlID0ge1xuICAgICAgICAgICAgICAgIHBsYWNlbWVudDogKF9hID0gY29uZmlnLnBsYWNlbWVudCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5jb25maWdTdGF0ZS5wbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgZHVyYXRpb246IG5vcm1hbGl6ZUR1cmF0aW9uKChfYiA9IGNvbmZpZy5kdXJhdGlvbikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdGhpcy5jb25maWdTdGF0ZS5kdXJhdGlvbiwgdGhpcy5jb25maWdTdGF0ZS5kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgbWF4Q291bnQ6IG5vcm1hbGl6ZU1heENvdW50KChfYyA9IGNvbmZpZy5tYXhDb3VudCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogdGhpcy5jb25maWdTdGF0ZS5tYXhDb3VudCksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmltT3ZlcmZsb3coKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luQ2xvc2UoW2tleV0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY3JlYXRlS2V5KCkge1xuICAgICAgICB0aGlzLmtleVNlZWQgKz0gMTtcbiAgICAgICAgcmV0dXJuIGBub3RpZmljYXRpb24tJHt0aGlzLmtleVNlZWR9YDtcbiAgICB9XG4gICAgY3JlYXRlUmVjb3JkKGtleSwgY29uZmlnLCBjdXJyZW50SXRlbSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGNvbnN0IG1lcmdlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudEl0ZW0pLCBjb25maWcpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBtZXJnZWRDb25maWcpLCB7IGtleSwgcGxhY2VtZW50OiAoX2IgPSAoX2EgPSBjb25maWcucGxhY2VtZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjdXJyZW50SXRlbSA9PT0gbnVsbCB8fCBjdXJyZW50SXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudEl0ZW0ucGxhY2VtZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0aGlzLmNvbmZpZ1N0YXRlLnBsYWNlbWVudCwgZHVyYXRpb246IG5vcm1hbGl6ZUR1cmF0aW9uKChfZCA9IChfYyA9IGNvbmZpZy5kdXJhdGlvbikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogY3VycmVudEl0ZW0gPT09IG51bGwgfHwgY3VycmVudEl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRJdGVtLmR1cmF0aW9uKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uLCB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uKSwgY2xvc2luZzogZmFsc2UgfSk7XG4gICAgfVxuICAgIHN0YXJ0VGltZXIoaXRlbSkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZXIoaXRlbS5rZXkpO1xuICAgICAgICBpZiAoaXRlbS5kdXJhdGlvbiA8PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luQ2xvc2UoW2l0ZW0ua2V5XSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9LCBpdGVtLmR1cmF0aW9uICogMTAwMCk7XG4gICAgICAgIHRoaXMudGltZXJzLnNldChpdGVtLmtleSwgdGltZW91dElkKTtcbiAgICB9XG4gICAgY2xlYXJUaW1lcihrZXkpIHtcbiAgICAgICAgY29uc3QgdGltZW91dElkID0gdGhpcy50aW1lcnMuZ2V0KGtleSk7XG4gICAgICAgIGlmICh0aW1lb3V0SWQgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB0aGlzLnRpbWVycy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgdHJpbU92ZXJmbG93KCkge1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh0aGlzLmNvbmZpZ1N0YXRlLm1heENvdW50KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgb3ZlcmZsb3dLZXlzID0gTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMuZmxhdE1hcChwbGFjZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50SXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ucGxhY2VtZW50ID09PSBwbGFjZW1lbnQgJiYgIWl0ZW0uY2xvc2luZyk7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvd0NvdW50ID0gcGxhY2VtZW50SXRlbXMubGVuZ3RoIC0gdGhpcy5jb25maWdTdGF0ZS5tYXhDb3VudDtcbiAgICAgICAgICAgIGlmIChvdmVyZmxvd0NvdW50IDw9IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgcmV0dXJuIHBsYWNlbWVudEl0ZW1zLnNsaWNlKDAsIG92ZXJmbG93Q291bnQpLm1hcChpdGVtID0+IGl0ZW0ua2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghb3ZlcmZsb3dLZXlzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5iZWdpbkNsb3NlKG92ZXJmbG93S2V5cyk7XG4gICAgfVxuICAgIGNsZWFyUmVtb3ZhbFRpbWVyKGtleSkge1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSB0aGlzLnJlbW92YWxUaW1lcnMuZ2V0KGtleSk7XG4gICAgICAgIGlmICh0aW1lb3V0SWQgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB0aGlzLnJlbW92YWxUaW1lcnMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIGJlZ2luQ2xvc2Uoa2V5cykge1xuICAgICAgICBpZiAoIWtleXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBrZXlTZXQgPSBuZXcgU2V0KGtleXMpO1xuICAgICAgICBjb25zdCBjbG9zaW5nS2V5cyA9IFtdO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoIWtleVNldC5oYXMoaXRlbS5rZXkpIHx8IGl0ZW0uY2xvc2luZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVyKGl0ZW0ua2V5KTtcbiAgICAgICAgICAgIGNsb3NpbmdLZXlzLnB1c2goaXRlbS5rZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaXRlbSksIHsgY2xvc2luZzogdHJ1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNsb3NpbmdLZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJSZW1vdmFsVGltZXIoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsaXplUmVtb3ZlKGtleSk7XG4gICAgICAgICAgICB9LCBOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OKTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycy5zZXQoa2V5LCB0aW1lb3V0SWQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZmluYWxpemVSZW1vdmUoa2V5KSB7XG4gICAgICAgIHRoaXMuY2xlYXJSZW1vdmFsVGltZXIoa2V5KTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSA9PT0ga2V5KTtcbiAgICAgICAgaWYgKCFyZW1vdmVkSXRlbXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSAhPT0ga2V5KTtcbiAgICAgICAgcmVtb3ZlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBpdGVtLm9uQ2xvc2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG4gICAgZW5zdXJlUmVuZGVyZXIoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIWNhblVzZURPTSgpKVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyZXIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5yZW5kZXJlclByb21pc2UpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXJQcm9taXNlO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIgPSBnZXROb3RpZmljYXRpb25Sb290KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyUHJvbWlzZSA9IGNyZWF0ZU5vdGlmaWNhdGlvblJlbmRlcmVyKHRoaXMuY29udGFpbmVyKVxuICAgICAgICAgICAgICAgIC50aGVuKHJlbmRlcmVyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlclByb21pc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXJQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlclByb21pc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVDb250YWluZXIoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gdGhpcy5jb250YWluZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBudWxsO1xuICAgIH1cbiAgICB0ZWFyZG93bigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0aGlzLnRpbWVycy5mb3JFYWNoKGlkID0+IHdpbmRvdy5jbGVhclRpbWVvdXQoaWQpKTtcbiAgICAgICAgdGhpcy50aW1lcnMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5yZW1vdmFsVGltZXJzLmZvckVhY2goaWQgPT4gd2luZG93LmNsZWFyVGltZW91dChpZCkpO1xuICAgICAgICB0aGlzLnJlbW92YWxUaW1lcnMuY2xlYXIoKTtcbiAgICAgICAgKF9hID0gdGhpcy5yZW5kZXJlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnVubW91bnQoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IG51bGw7XG4gICAgICAgIHRoaXMucmVtb3ZlQ29udGFpbmVyKCk7XG4gICAgfVxuICAgIHJlbmRlck5vZGUoKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChOb3RpZmljYXRpb25WaWV3cG9ydCwgeyBpdGVtczogdGhpcy5pdGVtcywgb25DbG9zZTogdGhpcy5oYW5kbGVDbG9zZSB9KSk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKCFjYW5Vc2VET00oKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50ZWFyZG93bigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlbmRlcmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnJlbmRlck5vZGUoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aGlzLmVuc3VyZVJlbmRlcmVyKCkudGhlbihyZW5kZXJlciA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlbmRlcmVyKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmICghdGhpcy5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVuZGVyZXIucmVuZGVyKHRoaXMucmVuZGVyTm9kZSgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuY29uc3Qgbm90aWZpY2F0aW9uTWFuYWdlciA9IG5ldyBOb3RpZmljYXRpb25NYW5hZ2VyKCk7XG5jb25zdCBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cyA9IChzdGF0dXMpID0+IChjb25maWcpID0+IG5vdGlmaWNhdGlvbk1hbmFnZXIub3BlbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZyksIHsgc3RhdHVzIH0pKTtcbmV4cG9ydCBjb25zdCBub3RpZmljYXRpb24gPSB7XG4gICAgb3BlbjogY29uZmlnID0+IG5vdGlmaWNhdGlvbk1hbmFnZXIub3Blbihjb25maWcpLFxuICAgIGluZm86IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzKCdpbmZvJyksXG4gICAgc3VjY2Vzczogb3Blbk5vdGlmaWNhdGlvbldpdGhTdGF0dXMoJ3N1Y2Nlc3MnKSxcbiAgICB3YXJuaW5nOiBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cygnd2FybmluZycpLFxuICAgIGVycm9yOiBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cygnZXJyb3InKSxcbiAgICBkZXN0cm95OiBrZXkgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5kZXN0cm95KGtleSksXG4gICAgY29uZmlnOiBjb25maWcgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5jb25maWcoY29uZmlnKSxcbn07XG5leHBvcnQgZGVmYXVsdCBub3RpZmljYXRpb247IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
501
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy50c3giXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19yZXN0IiwicyIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIk1lbW9pemVkTm90aWZpY2F0aW9uIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMiLCJOT1RJRklDQVRJT05fUk9PVF9JRCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1BMQUNFTUVOVCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5UIiwiTnVtYmVyIiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHIiwicGxhY2VtZW50IiwiZHVyYXRpb24iLCJtYXhDb3VudCIsImNhblVzZURPTSIsIndpbmRvdyIsImRvY3VtZW50Iiwibm9ybWFsaXplRHVyYXRpb24iLCJmYWxsYmFjayIsImlzRmluaXRlIiwibm9ybWFsaXplTWF4Q291bnQiLCJNYXRoIiwiZmxvb3IiLCJncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudCIsIml0ZW1zIiwiZ3JvdXBlZEl0ZW1zIiwiZm9yRWFjaCIsIml0ZW0iLCJwdXNoIiwiZ2V0Tm90aWZpY2F0aW9uUm9vdCIsImV4aXN0aW5nUm9vdCIsImdldEVsZW1lbnRCeUlkIiwiSFRNTERpdkVsZW1lbnQiLCJyb290IiwiY3JlYXRlRWxlbWVudCIsImlkIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY3JlYXRlTm90aWZpY2F0aW9uUmVuZGVyZXIiLCJjb250YWluZXIiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZWFjdERvbUNsaWVudCIsInJlYWN0RG9tIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic2VudCIsImNyZWF0ZVJvb3QiLCJhYnJ1cHQiLCJyZW5kZXIiLCJlbGVtZW50IiwidW5tb3VudCIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJfYSIsInN0b3AiLCJOb3RpZmljYXRpb25Nb3Rpb25JdGVtIiwiX3JlZiIsImNvbGxhcHNlT25FeGl0Iiwib25DbG9zZSIsImNsYXNzZXMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJlbnRlcmVkIiwic2V0RW50ZXJlZCIsImNsb3NpbmciLCJ1bmRlZmluZWQiLCJmcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwia2V5Iiwibm90aWZpY2F0aW9uUHJvcHMiLCJtb3Rpb25DbGFzc05hbWUiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsImFzc2lnbiIsIk5vdGlmaWNhdGlvblZpZXdwb3J0IiwiX3JlZjIiLCJpdGVtc0J5UGxhY2VtZW50IiwibWFwIiwicGxhY2VtZW50SXRlbXMiLCJhY3RpdmVDb3VudCIsImZpbHRlciIsImNvbmNhdCIsIlN0cmluZyIsIk5vdGlmaWNhdGlvbk1hbmFnZXIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsInJlbmRlcmVyIiwicmVuZGVyZXJQcm9taXNlIiwidGltZXJzIiwiTWFwIiwicmVtb3ZhbFRpbWVycyIsImtleVNlZWQiLCJjb25maWdTdGF0ZSIsIm9wZW4iLCJjb25maWciLCJjcmVhdGVLZXkiLCJjdXJyZW50SXRlbSIsImZpbmQiLCJuZXh0SXRlbSIsImNyZWF0ZVJlY29yZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImNsZWFyUmVtb3ZhbFRpbWVyIiwic3RhcnRUaW1lciIsInRyaW1PdmVyZmxvdyIsImRlc3Ryb3kiLCJiZWdpbkNsb3NlIiwiX2IiLCJfYyIsImhhbmRsZUNsb3NlIiwiX2NyZWF0ZUNsYXNzIiwiX2QiLCJtZXJnZWRDb25maWciLCJfdGhpczIiLCJjbGVhclRpbWVyIiwidGltZW91dElkIiwic2V0VGltZW91dCIsInNldCIsImdldCIsImNsZWFyVGltZW91dCIsIl90aGlzMyIsIm92ZXJmbG93S2V5cyIsImZsYXRNYXAiLCJvdmVyZmxvd0NvdW50Iiwic2xpY2UiLCJrZXlzIiwiX3RoaXM0Iiwia2V5U2V0IiwiU2V0IiwiY2xvc2luZ0tleXMiLCJoYXMiLCJmaW5hbGl6ZVJlbW92ZSIsInJlbW92ZWRJdGVtcyIsImVuc3VyZVJlbmRlcmVyIiwiX2NhbGxlZTIiLCJfdGhpczUiLCJfY29udGV4dDIiLCJyZW1vdmVDb250YWluZXIiLCJyZW1vdmUiLCJ0ZWFyZG93biIsImNsZWFyIiwicmVuZGVyTm9kZSIsIl90aGlzNiIsIm5vdGlmaWNhdGlvbk1hbmFnZXIiLCJvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cyIsInN0YXR1cyIsIm5vdGlmaWNhdGlvbiIsImluZm8iLCJzdWNjZXNzIiwid2FybmluZyIsImVycm9yIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQUlBLFNBQVMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtB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STBFLG1CQUFtQixDQUFDdEMsT0FBTyxDQUFDcEMsR0FBRyxDQUFDO0VBQUE7RUFDaEQwQixNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBRUEsT0FBTTtJQUFBLE9BQUlnRCxtQkFBbUIsQ0FBQ2hELE1BQU0sQ0FBQ0EsT0FBTSxDQUFDO0VBQUE7QUQzSXRELENDNElDO0FBRUQsZUFBZW1ELFlBQVkiLCJmaWxlIjoiY29tcG9uZW50cy9Ob3RpZmljYXRpb24vTm90aWZpY2F0aW9uU3RhdGljLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1lbW9pemVkTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9Ob3RpZmljYXRpb24nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuaW1wb3J0IHsgTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5jb25zdCBOT1RJRklDQVRJT05fUk9PVF9JRCA9ICdvbS1jb21wb25lbnQtdWktbm90aWZpY2F0aW9uLXJvb3QnO1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fUExBQ0VNRU5UID0gJ3RvcFJpZ2h0JztcbmNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX0RVUkFUSU9OID0gNC41O1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5UID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuY29uc3QgTk9USUZJQ0FUSU9OX01PVElPTl9EVVJBVElPTiA9IDI0MDtcbmNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX0NPTkZJRyA9IHtcbiAgICBwbGFjZW1lbnQ6IERFRkFVTFRfTk9USUZJQ0FUSU9OX1BMQUNFTUVOVCxcbiAgICBkdXJhdGlvbjogREVGQVVMVF9OT1RJRklDQVRJT05fRFVSQVRJT04sXG4gICAgbWF4Q291bnQ6IERFRkFVTFRfTk9USUZJQ0FUSU9OX01BWF9DT1VOVCxcbn07XG5jb25zdCBjYW5Vc2VET00gPSAoKSA9PiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuY29uc3Qgbm9ybWFsaXplRHVyYXRpb24gPSAodmFsdWUsIGZhbGxiYWNrKSA9PiB7XG4gICAgaWYgKHZhbHVlIDw9IDApXG4gICAgICAgIHJldHVybiAwO1xuICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpID8gdmFsdWUgOiBmYWxsYmFjaztcbn07XG5jb25zdCBub3JtYWxpemVNYXhDb3VudCA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSB8fCB2YWx1ZSA8PSAwKSB7XG4gICAgICAgIHJldHVybiBERUZBVUxUX05PVElGSUNBVElPTl9NQVhfQ09VTlQ7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKTtcbn07XG5jb25zdCBncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudCA9IChpdGVtcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRJdGVtcyA9IHt9O1xuICAgIE5PVElGSUNBVElPTl9QTEFDRU1FTlRTLmZvckVhY2gocGxhY2VtZW50ID0+IHtcbiAgICAgICAgZ3JvdXBlZEl0ZW1zW3BsYWNlbWVudF0gPSBbXTtcbiAgICB9KTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBncm91cGVkSXRlbXNbaXRlbS5wbGFjZW1lbnRdLnB1c2goaXRlbSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwZWRJdGVtcztcbn07XG5jb25zdCBnZXROb3RpZmljYXRpb25Sb290ID0gKCkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nUm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKE5PVElGSUNBVElPTl9ST09UX0lEKTtcbiAgICBpZiAoZXhpc3RpbmdSb290IGluc3RhbmNlb2YgSFRNTERpdkVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nUm9vdDtcbiAgICB9XG4gICAgY29uc3Qgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHJvb3QuaWQgPSBOT1RJRklDQVRJT05fUk9PVF9JRDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpO1xuICAgIHJldHVybiByb290O1xufTtcbmNvbnN0IGNyZWF0ZU5vdGlmaWNhdGlvblJlbmRlcmVyID0gKGNvbnRhaW5lcikgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVhY3REb21DbGllbnQgPSB5aWVsZCBpbXBvcnQoJ3JlYWN0LWRvbS9jbGllbnQnKTtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHJlYWN0RG9tQ2xpZW50LmNyZWF0ZVJvb3QoY29udGFpbmVyKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlbmRlcjogZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgcm9vdC5yZW5kZXIoZWxlbWVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5tb3VudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJvb3QudW5tb3VudCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgIC8vIEZhbGxiYWNrIGZvciBSZWFjdCA8IDE4IHdoZXJlIHJlYWN0LWRvbS9jbGllbnQgaXMgdW5hdmFpbGFibGVcbiAgICAgICAgY29uc3QgcmVhY3REb20gPSB5aWVsZCBpbXBvcnQoJ3JlYWN0LWRvbScpO1xuICAgICAgICBpZiAodHlwZW9mIHJlYWN0RG9tLnJlbmRlciAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIHJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZW5kZXI6IGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSByZWFjdERvbS5yZW5kZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHJlYWN0RG9tLCBlbGVtZW50LCBjb250YWluZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVubW91bnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgKF9hID0gcmVhY3REb20udW5tb3VudENvbXBvbmVudEF0Tm9kZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocmVhY3REb20sIGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn0pO1xuY29uc3QgTm90aWZpY2F0aW9uTW90aW9uSXRlbSA9ICh7IGl0ZW0sIGNvbGxhcHNlT25FeGl0LCBvbkNsb3NlIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcygnbm90aWZpY2F0aW9uJyk7XG4gICAgY29uc3QgW2VudGVyZWQsIHNldEVudGVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmNsb3NpbmcgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmcmFtZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgc2V0RW50ZXJlZCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoZnJhbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtpdGVtLmNsb3NpbmcsIGl0ZW0ua2V5XSk7XG4gICAgY29uc3QgeyBrZXksIGR1cmF0aW9uLCBwbGFjZW1lbnQsIGNsb3NpbmcgfSA9IGl0ZW0sIG5vdGlmaWNhdGlvblByb3BzID0gX19yZXN0KGl0ZW0sIFtcImtleVwiLCBcImR1cmF0aW9uXCIsIFwicGxhY2VtZW50XCIsIFwiY2xvc2luZ1wiXSk7XG4gICAgY29uc3QgbW90aW9uQ2xhc3NOYW1lID0gY2xvc2luZ1xuICAgICAgICA/IGpvaW5DbHMoY2xhc3NlcygnaXRlbS1leGl0JyksIGNvbGxhcHNlT25FeGl0ID8gY2xhc3NlcygnaXRlbS1leGl0LWNvbGxhcHNlJykgOiAnJylcbiAgICAgICAgOiBlbnRlcmVkXG4gICAgICAgICAgICA/IGNsYXNzZXMoJ2l0ZW0tYWN0aXZlJylcbiAgICAgICAgICAgIDogY2xhc3NlcygnaXRlbS1lbnRlcicpO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdpdGVtJyksIG1vdGlvbkNsYXNzTmFtZSksIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWlubmVyJyksIGNoaWxkcmVuOiBfanN4KE1lbW9pemVkTm90aWZpY2F0aW9uLCBPYmplY3QuYXNzaWduKHt9LCBub3RpZmljYXRpb25Qcm9wcywgeyBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2Uoa2V5KTtcbiAgICAgICAgICAgICAgICB9IH0pKSB9KSB9KSk7XG59O1xuY29uc3QgTm90aWZpY2F0aW9uVmlld3BvcnQgPSAoeyBpdGVtcywgb25DbG9zZSB9KSA9PiB7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoJ25vdGlmaWNhdGlvbicpO1xuICAgIGNvbnN0IGl0ZW1zQnlQbGFjZW1lbnQgPSBncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudChpdGVtcyk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd2aWV3cG9ydCcpLCBcImFyaWEtbGl2ZVwiOiBcInBvbGl0ZVwiLCBcImFyaWEtYXRvbWljXCI6IFwiZmFsc2VcIiwgY2hpbGRyZW46IE5PVElGSUNBVElPTl9QTEFDRU1FTlRTLm1hcChwbGFjZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50SXRlbXMgPSBpdGVtc0J5UGxhY2VtZW50W3BsYWNlbWVudF07XG4gICAgICAgICAgICBpZiAoIXBsYWNlbWVudEl0ZW1zLmxlbmd0aClcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNvdW50ID0gcGxhY2VtZW50SXRlbXMuZmlsdGVyKGkgPT4gIWkuY2xvc2luZykubGVuZ3RoO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3N0YWNrJyksIGNsYXNzZXMoYHN0YWNrLSR7cGxhY2VtZW50fWApKSwgY2hpbGRyZW46IHBsYWNlbWVudEl0ZW1zLm1hcChpdGVtID0+IChfanN4KE5vdGlmaWNhdGlvbk1vdGlvbkl0ZW0sIHsgaXRlbTogaXRlbSwgY29sbGFwc2VPbkV4aXQ6IGl0ZW0uY2xvc2luZyAmJiBhY3RpdmVDb3VudCA+IDAsIG9uQ2xvc2U6IG9uQ2xvc2UgfSwgU3RyaW5nKGl0ZW0ua2V5KSkpKSB9LCBwbGFjZW1lbnQpKTtcbiAgICAgICAgfSkgfSkpO1xufTtcbmNsYXNzIE5vdGlmaWNhdGlvbk1hbmFnZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSBudWxsO1xuICAgICAgICB0aGlzLnJlbmRlcmVyUHJvbWlzZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50aW1lcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5rZXlTZWVkID0gMDtcbiAgICAgICAgdGhpcy5jb25maWdTdGF0ZSA9IERFRkFVTFRfTk9USUZJQ0FUSU9OX0NPTkZJRztcbiAgICAgICAgdGhpcy5vcGVuID0gKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gKF9hID0gY29uZmlnLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5jcmVhdGVLZXkoKTtcbiAgICAgICAgICAgIGlmICghY2FuVXNlRE9NKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmtleSA9PT0ga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRJdGVtID0gdGhpcy5jcmVhdGVSZWNvcmQoa2V5LCBjb25maWcsIGN1cnJlbnRJdGVtKTtcbiAgICAgICAgICAgIGlmICghY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuaXRlbXMsIG5leHRJdGVtXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnRJdGVtLnBsYWNlbWVudCA9PT0gbmV4dEl0ZW0ucGxhY2VtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMubWFwKGl0ZW0gPT4gKGl0ZW0ua2V5ID09PSBrZXkgPyBuZXh0SXRlbSA6IGl0ZW0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSAhPT0ga2V5KSwgbmV4dEl0ZW1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbGVhclJlbW92YWxUaW1lcihrZXkpO1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVyKG5leHRJdGVtKTtcbiAgICAgICAgICAgIHRoaXMudHJpbU92ZXJmbG93KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0ga2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZSh0aGlzLml0ZW1zLm1hcChpdGVtID0+IGl0ZW0ua2V5KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJlZ2luQ2xvc2UoW2tleV0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWcgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1N0YXRlID0ge1xuICAgICAgICAgICAgICAgIHBsYWNlbWVudDogKF9hID0gY29uZmlnLnBsYWNlbWVudCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5jb25maWdTdGF0ZS5wbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgZHVyYXRpb246IG5vcm1hbGl6ZUR1cmF0aW9uKChfYiA9IGNvbmZpZy5kdXJhdGlvbikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdGhpcy5jb25maWdTdGF0ZS5kdXJhdGlvbiwgdGhpcy5jb25maWdTdGF0ZS5kdXJhdGlvbiksXG4gICAgICAgICAgICAgICAgbWF4Q291bnQ6IG5vcm1hbGl6ZU1heENvdW50KChfYyA9IGNvbmZpZy5tYXhDb3VudCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogdGhpcy5jb25maWdTdGF0ZS5tYXhDb3VudCksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmltT3ZlcmZsb3coKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luQ2xvc2UoW2tleV0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY3JlYXRlS2V5KCkge1xuICAgICAgICB0aGlzLmtleVNlZWQgKz0gMTtcbiAgICAgICAgcmV0dXJuIGBub3RpZmljYXRpb24tJHt0aGlzLmtleVNlZWR9YDtcbiAgICB9XG4gICAgY3JlYXRlUmVjb3JkKGtleSwgY29uZmlnLCBjdXJyZW50SXRlbSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGNvbnN0IG1lcmdlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudEl0ZW0pLCBjb25maWcpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBtZXJnZWRDb25maWcpLCB7IGtleSwgcGxhY2VtZW50OiAoX2IgPSAoX2EgPSBjb25maWcucGxhY2VtZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjdXJyZW50SXRlbSA9PT0gbnVsbCB8fCBjdXJyZW50SXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudEl0ZW0ucGxhY2VtZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0aGlzLmNvbmZpZ1N0YXRlLnBsYWNlbWVudCwgZHVyYXRpb246IG5vcm1hbGl6ZUR1cmF0aW9uKChfZCA9IChfYyA9IGNvbmZpZy5kdXJhdGlvbikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogY3VycmVudEl0ZW0gPT09IG51bGwgfHwgY3VycmVudEl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRJdGVtLmR1cmF0aW9uKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uLCB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uKSwgY2xvc2luZzogZmFsc2UgfSk7XG4gICAgfVxuICAgIHN0YXJ0VGltZXIoaXRlbSkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZXIoaXRlbS5rZXkpO1xuICAgICAgICBpZiAoaXRlbS5kdXJhdGlvbiA8PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luQ2xvc2UoW2l0ZW0ua2V5XSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9LCBpdGVtLmR1cmF0aW9uICogMTAwMCk7XG4gICAgICAgIHRoaXMudGltZXJzLnNldChpdGVtLmtleSwgdGltZW91dElkKTtcbiAgICB9XG4gICAgY2xlYXJUaW1lcihrZXkpIHtcbiAgICAgICAgY29uc3QgdGltZW91dElkID0gdGhpcy50aW1lcnMuZ2V0KGtleSk7XG4gICAgICAgIGlmICh0aW1lb3V0SWQgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB0aGlzLnRpbWVycy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgdHJpbU92ZXJmbG93KCkge1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh0aGlzLmNvbmZpZ1N0YXRlLm1heENvdW50KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgb3ZlcmZsb3dLZXlzID0gTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMuZmxhdE1hcChwbGFjZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50SXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ucGxhY2VtZW50ID09PSBwbGFjZW1lbnQgJiYgIWl0ZW0uY2xvc2luZyk7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvd0NvdW50ID0gcGxhY2VtZW50SXRlbXMubGVuZ3RoIC0gdGhpcy5jb25maWdTdGF0ZS5tYXhDb3VudDtcbiAgICAgICAgICAgIGlmIChvdmVyZmxvd0NvdW50IDw9IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgcmV0dXJuIHBsYWNlbWVudEl0ZW1zLnNsaWNlKDAsIG92ZXJmbG93Q291bnQpLm1hcChpdGVtID0+IGl0ZW0ua2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghb3ZlcmZsb3dLZXlzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5iZWdpbkNsb3NlKG92ZXJmbG93S2V5cyk7XG4gICAgfVxuICAgIGNsZWFyUmVtb3ZhbFRpbWVyKGtleSkge1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSB0aGlzLnJlbW92YWxUaW1lcnMuZ2V0KGtleSk7XG4gICAgICAgIGlmICh0aW1lb3V0SWQgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB0aGlzLnJlbW92YWxUaW1lcnMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIGJlZ2luQ2xvc2Uoa2V5cykge1xuICAgICAgICBpZiAoIWtleXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBrZXlTZXQgPSBuZXcgU2V0KGtleXMpO1xuICAgICAgICBjb25zdCBjbG9zaW5nS2V5cyA9IFtdO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoIWtleVNldC5oYXMoaXRlbS5rZXkpIHx8IGl0ZW0uY2xvc2luZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVyKGl0ZW0ua2V5KTtcbiAgICAgICAgICAgIGNsb3NpbmdLZXlzLnB1c2goaXRlbS5rZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaXRlbSksIHsgY2xvc2luZzogdHJ1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNsb3NpbmdLZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJSZW1vdmFsVGltZXIoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsaXplUmVtb3ZlKGtleSk7XG4gICAgICAgICAgICB9LCBOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OKTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycy5zZXQoa2V5LCB0aW1lb3V0SWQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZmluYWxpemVSZW1vdmUoa2V5KSB7XG4gICAgICAgIHRoaXMuY2xlYXJSZW1vdmFsVGltZXIoa2V5KTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSA9PT0ga2V5KTtcbiAgICAgICAgaWYgKCFyZW1vdmVkSXRlbXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSAhPT0ga2V5KTtcbiAgICAgICAgcmVtb3ZlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBpdGVtLm9uQ2xvc2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG4gICAgZW5zdXJlUmVuZGVyZXIoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIWNhblVzZURPTSgpKVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyZXIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5yZW5kZXJlclByb21pc2UpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXJQcm9taXNlO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIgPSBnZXROb3RpZmljYXRpb25Sb290KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyUHJvbWlzZSA9IGNyZWF0ZU5vdGlmaWNhdGlvblJlbmRlcmVyKHRoaXMuY29udGFpbmVyKVxuICAgICAgICAgICAgICAgIC50aGVuKHJlbmRlcmVyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlclByb21pc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXJQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlclByb21pc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVDb250YWluZXIoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gdGhpcy5jb250YWluZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBudWxsO1xuICAgIH1cbiAgICB0ZWFyZG93bigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0aGlzLnRpbWVycy5mb3JFYWNoKGlkID0+IHdpbmRvdy5jbGVhclRpbWVvdXQoaWQpKTtcbiAgICAgICAgdGhpcy50aW1lcnMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5yZW1vdmFsVGltZXJzLmZvckVhY2goaWQgPT4gd2luZG93LmNsZWFyVGltZW91dChpZCkpO1xuICAgICAgICB0aGlzLnJlbW92YWxUaW1lcnMuY2xlYXIoKTtcbiAgICAgICAgKF9hID0gdGhpcy5yZW5kZXJlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnVubW91bnQoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IG51bGw7XG4gICAgICAgIHRoaXMucmVtb3ZlQ29udGFpbmVyKCk7XG4gICAgfVxuICAgIHJlbmRlck5vZGUoKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChOb3RpZmljYXRpb25WaWV3cG9ydCwgeyBpdGVtczogdGhpcy5pdGVtcywgb25DbG9zZTogdGhpcy5oYW5kbGVDbG9zZSB9KSk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKCFjYW5Vc2VET00oKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50ZWFyZG93bigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlbmRlcmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnJlbmRlck5vZGUoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aGlzLmVuc3VyZVJlbmRlcmVyKCkudGhlbihyZW5kZXJlciA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlbmRlcmVyKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmICghdGhpcy5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVuZGVyZXIucmVuZGVyKHRoaXMucmVuZGVyTm9kZSgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuY29uc3Qgbm90aWZpY2F0aW9uTWFuYWdlciA9IG5ldyBOb3RpZmljYXRpb25NYW5hZ2VyKCk7XG5jb25zdCBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cyA9IChzdGF0dXMpID0+IChjb25maWcpID0+IG5vdGlmaWNhdGlvbk1hbmFnZXIub3BlbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZyksIHsgc3RhdHVzIH0pKTtcbmV4cG9ydCBjb25zdCBub3RpZmljYXRpb24gPSB7XG4gICAgb3BlbjogY29uZmlnID0+IG5vdGlmaWNhdGlvbk1hbmFnZXIub3Blbihjb25maWcpLFxuICAgIGluZm86IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzKCdpbmZvJyksXG4gICAgc3VjY2Vzczogb3Blbk5vdGlmaWNhdGlvbldpdGhTdGF0dXMoJ3N1Y2Nlc3MnKSxcbiAgICB3YXJuaW5nOiBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cygnd2FybmluZycpLFxuICAgIGVycm9yOiBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cygnZXJyb3InKSxcbiAgICBkZXN0cm95OiBrZXkgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5kZXN0cm95KGtleSksXG4gICAgY29uZmlnOiBjb25maWcgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5jb25maWcoY29uZmlnKSxcbn07XG5leHBvcnQgZGVmYXVsdCBub3RpZmljYXRpb247IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1 +1,170 @@
1
- .om-component-ui-notification{display:flex;gap:var(--om-spacing-200,8px);align-items:flex-start;padding:var(--om-spacing-300,12px);background-color:var(--om-bg-default-secondary,#f8f8f8);border-radius:var(--om-radius-300,12px);box-shadow:var(--om-shadow-200,0 10px 22px rgba(0,0,0,.1))}.om-component-ui-notification-content-wrapper{display:flex;flex:1 0 0;gap:var(--om-spacing-300,12px);align-items:flex-start;min-width:0}.om-component-ui-notification-icon-wrapper{display:flex;flex-shrink:0;align-items:center}.om-component-ui-notification-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center}.om-component-ui-notification-content{display:flex;flex:1 0 0;flex-direction:column;gap:var(--om-spacing-100,4px);align-items:flex-start;min-width:0;padding-top:var(--om-spacing-200,8px)}.om-component-ui-notification-body,.om-component-ui-notification-title{display:block}.om-component-ui-notification-link{font-size:var(--om-body-md-font-size);font-family:var(--om-body-md-font-family);line-height:var(--om-body-md-line-height);letter-spacing:var(--om-body-md-letter-spacing);font-weight:var(--om-body-md-strong-font-weight);padding:0;color:var(--om-text-brand,#073387);text-decoration:underline;background:none;border:none;cursor:pointer}.om-component-ui-notification-close{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;padding:0;color:var(--om-icon-neutral-secondary,#9fa3a3);background:none;border:none;cursor:pointer}.om-component-ui-notification-close .om-component-ui-icons-wrapper{--icon-color:currentcolor}.om-component-ui-notification-close:hover{color:var(--om-icon-neutral,#404042)}.om-component-ui-notification-viewport{position:fixed;inset:0;z-index:1100;pointer-events:none}.om-component-ui-notification-stack{position:fixed;display:flex;flex-direction:column;--notification-motion-offset:calc(100% + var(--om-spacing-300, 12px));width:375px;max-width:calc(100vw - var(--om-spacing-400, 16px) * 2);pointer-events:none}.om-component-ui-notification-stack-topLeft{top:var(--om-spacing-400,16px);left:var(--om-spacing-400,16px);--notification-motion-offset:calc(-100% - var(--om-spacing-300, 12px))}.om-component-ui-notification-stack-topRight{top:var(--om-spacing-400,16px);right:var(--om-spacing-400,16px)}.om-component-ui-notification-stack-bottomLeft{bottom:var(--om-spacing-400,16px);left:var(--om-spacing-400,16px);--notification-motion-offset:calc(-100% - var(--om-spacing-300, 12px))}.om-component-ui-notification-stack-bottomRight{right:var(--om-spacing-400,16px);bottom:var(--om-spacing-400,16px)}.om-component-ui-notification-item{display:grid;grid-template-rows:1fr;transition:grid-template-rows .24s ease,margin-top .24s ease;will-change:grid-template-rows,margin-top}.om-component-ui-notification-item+.om-component-ui-notification-item{margin-top:var(--om-spacing-300,12px)}.om-component-ui-notification-item-inner{min-height:0;overflow:visible;transform:translateZ(0);opacity:1;transition:transform .24s ease,opacity .24s ease;pointer-events:auto;will-change:transform,opacity}.om-component-ui-notification-item-enter,.om-component-ui-notification-item-exit+.om-component-ui-notification-item{margin-top:0}.om-component-ui-notification-item-active{grid-template-rows:1fr}.om-component-ui-notification-item-exit .om-component-ui-notification-item-inner{pointer-events:none}.om-component-ui-notification-item-exit-collapse{grid-template-rows:0fr}.om-component-ui-notification-item-exit-collapse .om-component-ui-notification-item-inner{overflow:hidden}.om-component-ui-notification-item-enter .om-component-ui-notification-item-inner,.om-component-ui-notification-item-exit .om-component-ui-notification-item-inner{transform:translate3d(var(--notification-motion-offset),0,0);opacity:0}.om-component-ui-notification-item-active .om-component-ui-notification-item-inner{transform:translateZ(0)}
1
+ /**
2
+ * Retrieves the spacing value for a given token key.
3
+ *
4
+ * @param {string} $key - The spacing token key (e.g., '100', '200').
5
+ * @return {length|null} The computed spacing value or null if the key is invalid.
6
+ * @example
7
+ * .element {
8
+ * padding: om-spacing-token('200'); // Returns 8px if $om-sys-spacing-unit is 4px
9
+ * }
10
+ */
11
+ /**
12
+ * Computes the spacing value based on a token key or a direct length value.
13
+ *
14
+ * @param {string|length} $value - The spacing token key (e.g., '100') or a direct length value (e.g., '16px').
15
+ * @return {length} The computed spacing value.
16
+ * @example
17
+ * .element {
18
+ * margin: om-spacing-value('300'); // Returns 12px if $om-sys-spacing-unit is 4px
19
+ * padding: om-spacing-value(16px); // Returns 16px
20
+ * gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
21
+ * }
22
+ */
23
+ .om-component-ui-notification {
24
+ display: flex;
25
+ gap: var(--om-spacing-200, 8px);
26
+ align-items: flex-start;
27
+ padding: var(--om-spacing-300, 12px);
28
+ background-color: var(--om-bg-default-secondary, #f8f8f8);
29
+ border-radius: var(--om-radius-300, 12px);
30
+ box-shadow: var(--om-shadow-200, 0 10px 22px rgba(0, 0, 0, 0.1));
31
+ }
32
+ .om-component-ui-notification-content-wrapper {
33
+ display: flex;
34
+ flex: 1 0 0;
35
+ gap: var(--om-spacing-300, 12px);
36
+ align-items: flex-start;
37
+ min-width: 0;
38
+ }
39
+ .om-component-ui-notification-icon-wrapper {
40
+ display: flex;
41
+ flex-shrink: 0;
42
+ align-items: center;
43
+ }
44
+ .om-component-ui-notification-icon {
45
+ display: inline-flex;
46
+ flex-shrink: 0;
47
+ align-items: center;
48
+ justify-content: center;
49
+ }
50
+ .om-component-ui-notification-content {
51
+ display: flex;
52
+ flex: 1 0 0;
53
+ flex-direction: column;
54
+ gap: var(--om-spacing-100, 4px);
55
+ align-items: flex-start;
56
+ min-width: 0;
57
+ padding-top: var(--om-spacing-200, 8px);
58
+ }
59
+ .om-component-ui-notification-title {
60
+ display: block;
61
+ }
62
+ .om-component-ui-notification-body {
63
+ display: block;
64
+ }
65
+ .om-component-ui-notification-link {
66
+ font-size: var(--om-body-md-font-size);
67
+ font-family: var(--om-body-md-font-family);
68
+ line-height: var(--om-body-md-line-height);
69
+ letter-spacing: var(--om-body-md-letter-spacing);
70
+ font-weight: var(--om-body-md-strong-font-weight);
71
+ padding: 0;
72
+ color: var(--om-text-brand, #073387);
73
+ text-decoration: underline;
74
+ background: none;
75
+ border: none;
76
+ cursor: pointer;
77
+ }
78
+ .om-component-ui-notification-close {
79
+ display: inline-flex;
80
+ flex-shrink: 0;
81
+ align-items: center;
82
+ justify-content: center;
83
+ padding: 0;
84
+ color: var(--om-icon-neutral-secondary, #9fa3a3);
85
+ background: none;
86
+ border: none;
87
+ cursor: pointer;
88
+ }
89
+ .om-component-ui-notification-close .om-component-ui-icons-wrapper {
90
+ --icon-color: currentcolor;
91
+ }
92
+ .om-component-ui-notification-close:hover {
93
+ color: var(--om-icon-neutral, #404042);
94
+ }
95
+
96
+ .om-component-ui-notification-viewport {
97
+ position: fixed;
98
+ inset: 0;
99
+ z-index: 1100;
100
+ pointer-events: none;
101
+ }
102
+
103
+ .om-component-ui-notification-stack {
104
+ position: fixed;
105
+ display: flex;
106
+ flex-direction: column;
107
+ --notification-motion-offset: calc(100% + var(--om-spacing-300, 12px));
108
+ width: 375px;
109
+ max-width: calc(100vw - var(--om-spacing-400, 16px) * 2);
110
+ pointer-events: none;
111
+ }
112
+ .om-component-ui-notification-stack-topLeft {
113
+ top: var(--om-spacing-400, 16px);
114
+ left: var(--om-spacing-400, 16px);
115
+ --notification-motion-offset: calc(-100% - var(--om-spacing-300, 12px));
116
+ }
117
+ .om-component-ui-notification-stack-topRight {
118
+ top: var(--om-spacing-400, 16px);
119
+ right: var(--om-spacing-400, 16px);
120
+ }
121
+ .om-component-ui-notification-stack-bottomLeft {
122
+ bottom: var(--om-spacing-400, 16px);
123
+ left: var(--om-spacing-400, 16px);
124
+ --notification-motion-offset: calc(-100% - var(--om-spacing-300, 12px));
125
+ }
126
+ .om-component-ui-notification-stack-bottomRight {
127
+ right: var(--om-spacing-400, 16px);
128
+ bottom: var(--om-spacing-400, 16px);
129
+ }
130
+
131
+ .om-component-ui-notification-item {
132
+ display: grid;
133
+ grid-template-rows: 1fr;
134
+ transition: grid-template-rows 240ms ease, margin-top 240ms ease;
135
+ will-change: grid-template-rows, margin-top;
136
+ }
137
+ .om-component-ui-notification-item + .om-component-ui-notification-item {
138
+ margin-top: var(--om-spacing-300, 12px);
139
+ }
140
+ .om-component-ui-notification-item-inner {
141
+ min-height: 0;
142
+ overflow: visible;
143
+ transform: translate3d(0, 0, 0);
144
+ opacity: 1;
145
+ transition: transform 240ms ease, opacity 240ms ease;
146
+ pointer-events: auto;
147
+ will-change: transform, opacity;
148
+ }
149
+ .om-component-ui-notification-item-enter, .om-component-ui-notification-item-exit + .om-component-ui-notification-item {
150
+ margin-top: 0;
151
+ }
152
+ .om-component-ui-notification-item-active {
153
+ grid-template-rows: 1fr;
154
+ }
155
+ .om-component-ui-notification-item-exit .om-component-ui-notification-item-inner {
156
+ pointer-events: none;
157
+ }
158
+ .om-component-ui-notification-item-exit-collapse {
159
+ grid-template-rows: 0fr;
160
+ }
161
+ .om-component-ui-notification-item-exit-collapse .om-component-ui-notification-item-inner {
162
+ overflow: hidden;
163
+ }
164
+ .om-component-ui-notification-item-enter .om-component-ui-notification-item-inner, .om-component-ui-notification-item-exit .om-component-ui-notification-item-inner {
165
+ transform: translate3d(var(--notification-motion-offset), 0, 0);
166
+ opacity: 0;
167
+ }
168
+ .om-component-ui-notification-item-active .om-component-ui-notification-item-inner {
169
+ transform: translate3d(0, 0, 0);
170
+ }
@@ -1 +1,89 @@
1
- .om-component-ui-pagination,.om-component-ui-pagination-list{display:inline-flex;align-items:center}.om-component-ui-pagination-list{gap:var(--om-spacing-200,8px);margin:0;padding:0;list-style:none}.om-component-ui-pagination-item{display:inline-flex;flex-shrink:0;align-items:center}.om-component-ui-pagination-button,.om-component-ui-pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-height:calc(var(--om-spacing-400, 16px) + var(--om-spacing-500, 20px));padding:var(--om-spacing-200,8px) var(--om-spacing-300,12px);color:var(--om-text-default,#131313);white-space:nowrap;background-color:transparent;border:none;border-radius:var(--om-radius-200,8px);font-variant-numeric:tabular-nums}.om-component-ui-pagination-button{gap:var(--om-spacing-200,8px);cursor:pointer}.om-component-ui-pagination-button:hover:not(:disabled){background-color:var(--om-bg-default-hover,#f0f0f0)}.om-component-ui-pagination-button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--om-border-brand,#073387)}.om-component-ui-pagination-button-disabled,.om-component-ui-pagination-button:disabled{color:var(--om-text-disabled,#bbbdc1);cursor:default;pointer-events:none}.om-component-ui-pagination-button-page{min-width:max(calc(var(--om-spacing-400, 16px) + var(--om-spacing-500, 20px)),2ch + var(--om-spacing-300,12px) + var(--om-spacing-300,12px))}.om-component-ui-pagination-button-current{color:var(--om-text-on-neutral,#fff);background-color:var(--om-bg-brand,#073387)}.om-component-ui-pagination-button-current:hover:not(:disabled){background-color:var(--om-bg-brand-hover,#052561)}.om-component-ui-pagination-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center}.om-component-ui-pagination-ellipsis{padding-right:var(--om-spacing-400,16px);padding-left:var(--om-spacing-400,16px);cursor:default}
1
+ /**
2
+ * Retrieves the spacing value for a given token key.
3
+ *
4
+ * @param {string} $key - The spacing token key (e.g., '100', '200').
5
+ * @return {length|null} The computed spacing value or null if the key is invalid.
6
+ * @example
7
+ * .element {
8
+ * padding: om-spacing-token('200'); // Returns 8px if $om-sys-spacing-unit is 4px
9
+ * }
10
+ */
11
+ /**
12
+ * Computes the spacing value based on a token key or a direct length value.
13
+ *
14
+ * @param {string|length} $value - The spacing token key (e.g., '100') or a direct length value (e.g., '16px').
15
+ * @return {length} The computed spacing value.
16
+ * @example
17
+ * .element {
18
+ * margin: om-spacing-value('300'); // Returns 12px if $om-sys-spacing-unit is 4px
19
+ * padding: om-spacing-value(16px); // Returns 16px
20
+ * gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
21
+ * }
22
+ */
23
+ .om-component-ui-pagination {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ }
27
+ .om-component-ui-pagination-list {
28
+ display: inline-flex;
29
+ gap: var(--om-spacing-200, 8px);
30
+ align-items: center;
31
+ margin: 0;
32
+ padding: 0;
33
+ list-style: none;
34
+ }
35
+ .om-component-ui-pagination-item {
36
+ display: inline-flex;
37
+ flex-shrink: 0;
38
+ align-items: center;
39
+ }
40
+ .om-component-ui-pagination-button, .om-component-ui-pagination-ellipsis {
41
+ display: inline-flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ min-height: calc(var(--om-spacing-400, 16px) + var(--om-spacing-500, 20px));
45
+ padding: var(--om-spacing-200, 8px) var(--om-spacing-300, 12px);
46
+ color: var(--om-text-default, #131313);
47
+ white-space: nowrap;
48
+ background-color: transparent;
49
+ border: none;
50
+ border-radius: var(--om-radius-200, 8px);
51
+ font-variant-numeric: tabular-nums;
52
+ }
53
+ .om-component-ui-pagination-button {
54
+ gap: var(--om-spacing-200, 8px);
55
+ cursor: pointer;
56
+ }
57
+ .om-component-ui-pagination-button:hover:not(:disabled) {
58
+ background-color: var(--om-bg-default-hover, #f0f0f0);
59
+ }
60
+ .om-component-ui-pagination-button:focus-visible {
61
+ outline: none;
62
+ box-shadow: 0 0 0 2px var(--om-border-brand, #073387);
63
+ }
64
+ .om-component-ui-pagination-button:disabled, .om-component-ui-pagination-button-disabled {
65
+ color: var(--om-text-disabled, #bbbdc1);
66
+ cursor: default;
67
+ pointer-events: none;
68
+ }
69
+ .om-component-ui-pagination-button-page {
70
+ min-width: max(calc(var(--om-spacing-400, 16px) + var(--om-spacing-500, 20px)), 2ch + var(--om-spacing-300, 12px) + var(--om-spacing-300, 12px));
71
+ }
72
+ .om-component-ui-pagination-button-current {
73
+ color: var(--om-text-on-neutral, #fff);
74
+ background-color: var(--om-bg-brand, #073387);
75
+ }
76
+ .om-component-ui-pagination-button-current:hover:not(:disabled) {
77
+ background-color: var(--om-bg-brand-hover, #052561);
78
+ }
79
+ .om-component-ui-pagination-icon {
80
+ display: inline-flex;
81
+ flex-shrink: 0;
82
+ align-items: center;
83
+ justify-content: center;
84
+ }
85
+ .om-component-ui-pagination-ellipsis {
86
+ padding-right: var(--om-spacing-400, 16px);
87
+ padding-left: var(--om-spacing-400, 16px);
88
+ cursor: default;
89
+ }