@1money/component-ui 0.0.76 → 0.0.77

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 (145) hide show
  1. package/es/components/ProForm/ProForm.d.ts +1 -1
  2. package/es/components/ProForm/ProForm.js +2 -3
  3. package/es/components/ProForm/ProFormDependency.d.ts +2 -1
  4. package/es/components/ProForm/ProFormDependency.js +1 -1
  5. package/es/components/ProForm/ProFormItem.d.ts +7 -2
  6. package/es/components/ProForm/ProFormItem.js +1 -1
  7. package/es/components/ProForm/ProFormList.d.ts +6 -1
  8. package/es/components/ProForm/ProFormList.js +13 -5
  9. package/es/components/ProForm/SchemaForm.d.ts +1 -1
  10. package/es/components/ProForm/SchemaForm.js +8 -5
  11. package/es/components/ProForm/context.d.ts +8 -7
  12. package/es/components/ProForm/context.js +1 -1
  13. package/es/components/ProForm/core/constants.d.ts +1 -1
  14. package/es/components/ProForm/core/constants.js +2 -2
  15. package/es/components/ProForm/core/formStore.d.ts +4 -4
  16. package/es/components/ProForm/core/formStore.js +1 -1
  17. package/es/components/ProForm/core/hooks/useForm.d.ts +1 -1
  18. package/es/components/ProForm/core/hooks/useForm.js +34 -9
  19. package/es/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
  20. package/es/components/ProForm/core/hooks/useFormCore.js +17 -123
  21. package/es/components/ProForm/core/interface.d.ts +70 -91
  22. package/es/components/ProForm/core/namePathType.d.ts +25 -0
  23. package/es/components/ProForm/core/namePathType.js +2 -0
  24. package/es/components/ProForm/core/pathUtils.d.ts +5 -3
  25. package/es/components/ProForm/core/pathUtils.js +19 -1
  26. package/es/components/ProForm/core/runRules.d.ts +8 -17
  27. package/es/components/ProForm/core/runRules.js +22 -129
  28. package/es/components/ProForm/core/useFormItem.d.ts +1 -1
  29. package/es/components/ProForm/core/useFormItem.js +14 -66
  30. package/es/components/ProForm/core/validationError.d.ts +2 -2
  31. package/es/components/ProForm/core/validationError.js +1 -1
  32. package/es/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
  33. package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
  34. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
  35. package/es/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
  36. package/es/components/ProForm/fields/ProFormDatePicker.js +1 -1
  37. package/es/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
  38. package/es/components/ProForm/fields/ProFormFieldSet.js +5 -7
  39. package/es/components/ProForm/fields/ProFormPassword.d.ts +1 -1
  40. package/es/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
  41. package/es/components/ProForm/fields/ProFormRadioGroup.js +1 -1
  42. package/es/components/ProForm/fields/ProFormSelect.d.ts +1 -1
  43. package/es/components/ProForm/fields/ProFormSelect.js +1 -1
  44. package/es/components/ProForm/fields/ProFormSlider.d.ts +1 -1
  45. package/es/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
  46. package/es/components/ProForm/fields/ProFormText.d.ts +1 -1
  47. package/es/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
  48. package/es/components/ProForm/fields/ProFormUpload.d.ts +1 -1
  49. package/es/components/ProForm/fields/ProFormUpload.js +1 -1
  50. package/es/components/ProForm/fields/createProFormField.d.ts +8 -2
  51. package/es/components/ProForm/fields/createProFormField.js +3 -3
  52. package/es/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
  53. package/es/components/ProForm/hooks/useFieldRequest.js +1 -1
  54. package/es/components/ProForm/hooks/useUrlSync.d.ts +8 -7
  55. package/es/components/ProForm/hooks/useUrlSync.js +1 -1
  56. package/es/components/ProForm/index.d.ts +35 -26
  57. package/es/components/ProForm/index.js +1 -1
  58. package/es/components/ProForm/interface.d.ts +96 -91
  59. package/es/components/ProForm/layouts/DialogForm.d.ts +1 -1
  60. package/es/components/ProForm/layouts/DialogForm.js +1 -1
  61. package/es/components/ProForm/layouts/DrawerForm.d.ts +1 -1
  62. package/es/components/ProForm/layouts/DrawerForm.js +1 -1
  63. package/es/components/ProForm/layouts/QueryFilter.d.ts +1 -1
  64. package/es/components/ProForm/layouts/QueryFilter.js +1 -1
  65. package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  66. package/es/components/ProForm/layouts/useOverlayForm.js +1 -1
  67. package/es/components/ProForm/utils.d.ts +8 -8
  68. package/es/components/ProForm/utils.js +1 -1
  69. package/es/index.css +1 -1
  70. package/es/index.d.ts +1 -1
  71. package/es/index.js +1 -1
  72. package/lib/components/ProForm/ProForm.d.ts +1 -1
  73. package/lib/components/ProForm/ProForm.js +2 -3
  74. package/lib/components/ProForm/ProFormDependency.d.ts +2 -1
  75. package/lib/components/ProForm/ProFormDependency.js +1 -1
  76. package/lib/components/ProForm/ProFormItem.d.ts +7 -2
  77. package/lib/components/ProForm/ProFormItem.js +1 -1
  78. package/lib/components/ProForm/ProFormList.d.ts +6 -1
  79. package/lib/components/ProForm/ProFormList.js +13 -5
  80. package/lib/components/ProForm/SchemaForm.d.ts +1 -1
  81. package/lib/components/ProForm/SchemaForm.js +8 -5
  82. package/lib/components/ProForm/context.d.ts +8 -7
  83. package/lib/components/ProForm/context.js +1 -1
  84. package/lib/components/ProForm/core/constants.d.ts +1 -1
  85. package/lib/components/ProForm/core/constants.js +2 -2
  86. package/lib/components/ProForm/core/formStore.d.ts +4 -4
  87. package/lib/components/ProForm/core/formStore.js +1 -1
  88. package/lib/components/ProForm/core/hooks/useForm.d.ts +1 -1
  89. package/lib/components/ProForm/core/hooks/useForm.js +34 -9
  90. package/lib/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
  91. package/lib/components/ProForm/core/hooks/useFormCore.js +16 -122
  92. package/lib/components/ProForm/core/interface.d.ts +70 -91
  93. package/lib/components/ProForm/core/namePathType.d.ts +25 -0
  94. package/lib/components/ProForm/core/namePathType.js +6 -0
  95. package/lib/components/ProForm/core/pathUtils.d.ts +5 -3
  96. package/lib/components/ProForm/core/pathUtils.js +20 -1
  97. package/lib/components/ProForm/core/runRules.d.ts +8 -17
  98. package/lib/components/ProForm/core/runRules.js +22 -130
  99. package/lib/components/ProForm/core/useFormItem.d.ts +1 -1
  100. package/lib/components/ProForm/core/useFormItem.js +17 -69
  101. package/lib/components/ProForm/core/validationError.d.ts +2 -2
  102. package/lib/components/ProForm/core/validationError.js +1 -1
  103. package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
  104. package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
  105. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
  106. package/lib/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
  107. package/lib/components/ProForm/fields/ProFormDatePicker.js +1 -1
  108. package/lib/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
  109. package/lib/components/ProForm/fields/ProFormFieldSet.js +5 -7
  110. package/lib/components/ProForm/fields/ProFormPassword.d.ts +1 -1
  111. package/lib/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
  112. package/lib/components/ProForm/fields/ProFormRadioGroup.js +1 -1
  113. package/lib/components/ProForm/fields/ProFormSelect.d.ts +1 -1
  114. package/lib/components/ProForm/fields/ProFormSelect.js +1 -1
  115. package/lib/components/ProForm/fields/ProFormSlider.d.ts +1 -1
  116. package/lib/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
  117. package/lib/components/ProForm/fields/ProFormText.d.ts +1 -1
  118. package/lib/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
  119. package/lib/components/ProForm/fields/ProFormUpload.d.ts +1 -1
  120. package/lib/components/ProForm/fields/ProFormUpload.js +1 -1
  121. package/lib/components/ProForm/fields/createProFormField.d.ts +8 -2
  122. package/lib/components/ProForm/fields/createProFormField.js +3 -3
  123. package/lib/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
  124. package/lib/components/ProForm/hooks/useFieldRequest.js +1 -1
  125. package/lib/components/ProForm/hooks/useUrlSync.d.ts +8 -7
  126. package/lib/components/ProForm/hooks/useUrlSync.js +1 -1
  127. package/lib/components/ProForm/index.d.ts +35 -26
  128. package/lib/components/ProForm/index.js +1 -1
  129. package/lib/components/ProForm/interface.d.ts +96 -91
  130. package/lib/components/ProForm/layouts/DialogForm.d.ts +1 -1
  131. package/lib/components/ProForm/layouts/DialogForm.js +1 -1
  132. package/lib/components/ProForm/layouts/DrawerForm.d.ts +1 -1
  133. package/lib/components/ProForm/layouts/DrawerForm.js +1 -1
  134. package/lib/components/ProForm/layouts/QueryFilter.d.ts +1 -1
  135. package/lib/components/ProForm/layouts/QueryFilter.js +1 -1
  136. package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  137. package/lib/components/ProForm/layouts/useOverlayForm.js +1 -1
  138. package/lib/components/ProForm/utils.d.ts +8 -8
  139. package/lib/components/ProForm/utils.js +1 -1
  140. package/lib/index.css +1 -1
  141. package/lib/index.d.ts +1 -1
  142. package/lib/index.js +1 -1
  143. package/package.json +1 -1
  144. package/scripts/mcp-server/examples.generated.json +53 -17
  145. package/scripts/mcp-server/index.generated.json +1734 -160
@@ -154,7 +154,7 @@ var ProFormListBase = function ProFormListBase(props) {
154
154
  unregisterField = _useProFormStable.unregisterField,
155
155
  retainField = _useProFormStable.retainField,
156
156
  releaseField = _useProFormStable.releaseField,
157
- validateField = _useProFormStable.validateField;
157
+ validateFieldAsync = _useProFormStable.validateFieldAsync;
158
158
  var store = useProFormStore();
159
159
  var initialApplied = useRef(false);
160
160
  var keysRef = useRef([]);
@@ -212,7 +212,11 @@ var ProFormListBase = function ProFormListBase(props) {
212
212
  if (listRules.length > 0) registerField(fullName, listRules);else unregisterField(fullName);
213
213
  });
214
214
  var validateListValue = useMemoizedFn(function (nextList) {
215
- if (listRules.length > 0) validateField(fullName, listRules, nextList);
215
+ // Async path so list-level rules with a Promise-returning validator are
216
+ // honored (the sync path would silently skip them); result lands on the
217
+ // next microtask, same as ProForm.Item. Fire-and-forget — the outcome is
218
+ // read from the store's error slice, not this call.
219
+ if (listRules.length > 0) validateFieldAsync(fullName, nextList, listRules);
216
220
  });
217
221
  var add = useMemoizedFn(function (defaultValue, index) {
218
222
  if (!canAdd) return;
@@ -247,7 +251,7 @@ var ProFormListBase = function ProFormListBase(props) {
247
251
  });
248
252
  var copy = useMemoizedFn(function (index) {
249
253
  if (!canAdd) return;
250
- var value = list[index] ? Object.assign({}, list[index]) : {};
254
+ var value = list[index] && _typeof(list[index]) === 'object' ? Object.assign({}, list[index]) : list[index];
251
255
  add(value, index + 1);
252
256
  });
253
257
  var move = useMemoizedFn(function (from, to) {
@@ -271,6 +275,9 @@ var ProFormListBase = function ProFormListBase(props) {
271
275
  return i >= to && i < from ? i + 1 : i;
272
276
  });
273
277
  });
278
+ var get = useMemoizedFn(function (index) {
279
+ return list[index];
280
+ });
274
281
  var getList = useMemoizedFn(function () {
275
282
  return list;
276
283
  });
@@ -280,9 +287,10 @@ var ProFormListBase = function ProFormListBase(props) {
280
287
  remove: removeAt,
281
288
  move: move,
282
289
  copy: copy,
290
+ get: get,
283
291
  getList: getList
284
292
  };
285
- }, [add, removeAt, move, copy, getList]);
293
+ }, [add, removeAt, move, copy, get, getList]);
286
294
  // Per-key cache keeps each row's field object identity stable across list
287
295
  // commits (e.g. typing in a sibling row), so memoized row content sees
288
296
  // shallow-equal props and bails out.
@@ -374,4 +382,4 @@ var ProFormListBase = function ProFormListBase(props) {
374
382
  ProFormListBase.displayName = 'ProFormList';
375
383
  export var ProFormList = /*#__PURE__*/memo(ProFormListBase);
376
384
  export default ProFormList;
377
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJUeXBvZ3JhcGh5TGFiZWwiLCJUeXBvZ3JhcGh5Qm9keSIsIkZvcm1MaXN0Q29udGV4dCIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlBST0ZPUk1fTElTVF9MQUJFTF9TSVpFIiwiUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiZ2V0TmVzdGVkVmFsdWUiLCJjbGFzc2VzIiwiY29uY2F0IiwibGlzdEtleUNvdW50ZXIiLCJnZW5lcmF0ZUtleSIsIkVNUFRZX0xJU1QiLCJMSVNUX01FVEFfS0VZUyIsInJlbWFwTGlzdE1ldGEiLCJzdG9yZSIsImxpc3ROYW1lIiwibWFwSW5kZXgiLCJzdGF0ZSIsImdldFN0YXRlIiwicHJlZml4IiwicGF0Y2giLCJfaSIsIl9MSVNUX01FVEFfS0VZUyIsImxlbmd0aCIsIm1ldGFLZXkiLCJzb3VyY2UiLCJjaGFuZ2VkIiwibmV4dCIsIl9pMiIsIl9PYmplY3Qka2V5cyIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJzdGFydHNXaXRoIiwicmVzdCIsInNsaWNlIiwiZG90QXQiLCJpbmRleE9mIiwiaW5kZXhTdHIiLCJ0ZXN0IiwibmV3SW5kZXgiLCJOdW1iZXIiLCJzZXRTdGF0ZSIsIkxpc3RSb3dBY3Rpb25zQmFzZSIsIl9yZWYiLCJpbmRleCIsInJlY29yZCIsImNhbkFkZCIsImNhblJlbW92ZSIsImNvcHlJY29uUHJvcHMiLCJkZWxldGVJY29uUHJvcHMiLCJhY3Rpb24iLCJhY3Rpb25SZW5kZXIiLCJpdGVtUmVuZGVyIiwib25Db3B5Iiwib25SZW1vdmUiLCJjb3B5QnRuUHJvcHMiLCJkZWxldGVCdG5Qcm9wcyIsImRlZmF1bHREb20iLCJjb3B5IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwic2l6ZSIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsImNoaWxkcmVuIiwicmVuZGVyZWRBY3Rpb25zIiwiZmlsdGVyIiwiQm9vbGVhbiIsInJvd05vZGUiLCJjbGFzc05hbWUiLCJsaXN0RG9tIiwiZGlzcGxheU5hbWUiLCJMaXN0Um93QWN0aW9ucyIsIlByb0Zvcm1MaXN0QmFzZSIsInByb3BzIiwiX2EiLCJfYiIsImZ1bGxOYW1lIiwibmFtZSIsImxhYmVsIiwibWluIiwibWF4IiwicmVxdWlyZWQiLCJfcHJvcHMkcmVxdWlyZWRNZXNzYWciLCJyZXF1aXJlZE1lc3NhZ2UiLCJpbml0aWFsVmFsdWUiLCJjcmVhdG9yQnV0dG9uUHJvcHMiLCJvbkFmdGVyQWRkIiwib25BZnRlclJlbW92ZSIsIl91c2VQcm9Gb3JtU3RhYmxlIiwic2V0RmllbGRWYWx1ZSIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJyZXRhaW5GaWVsZCIsInJlbGVhc2VGaWVsZCIsInZhbGlkYXRlRmllbGQiLCJpbml0aWFsQXBwbGllZCIsImtleXNSZWYiLCJfdXNlU3RvcmVTZWxlY3RvciIsInJhdyIsImluY2x1ZGVzIiwidmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiZXJyb3JzIiwiX3VzZVN0b3JlU2VsZWN0b3IyIiwiX3NsaWNlZFRvQXJyYXkiLCJsaXN0IiwibGlzdEVycm9yIiwiY3VycmVudCIsInB1c2giLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJtYXAiLCJsaXN0UnVsZXMiLCJtZXNzYWdlIiwidmFsaWRhdGVMaXN0VmFsdWUiLCJuZXh0TGlzdCIsImFkZCIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwibmV3TGlzdCIsIm5ld0tleXMiLCJpbnNlcnRJbmRleCIsInNwbGljZSIsImkiLCJyZW1vdmVBdCIsIm1vdmUiLCJmcm9tIiwidG8iLCJfbmV3TGlzdCRzcGxpY2UiLCJfbmV3TGlzdCRzcGxpY2UyIiwibW92ZWRJdGVtIiwiX25ld0tleXMkc3BsaWNlIiwiX25ld0tleXMkc3BsaWNlMiIsIm1vdmVkS2V5IiwiZ2V0TGlzdCIsInJlbW92ZSIsImZpZWxkT2JqQ2FjaGUiLCJNYXAiLCJtYXBwZWRGaWVsZHMiLCJuZXh0Q2FjaGUiLCJmaWVsZHMiLCJfaXRlbSIsImZpZWxkTmFtZSIsImNhY2hlZCIsImdldCIsImZpZWxkIiwic2V0IiwiYWN0aW9uUm93cyIsImhhc0NyZWF0b3IiLCJjcmVhdG9yQ29uZmlnIiwiX3R5cGVvZiIsImNyZWF0b3JQb3NpdGlvbiIsInBvc2l0aW9uIiwiY3JlYXRvclRleHQiLCJ0ZXh0IiwiY3JlYXRvckJ1dHRvbiIsImZvcm1MaXN0Q29udGV4dFZhbHVlIiwiUHJvdmlkZXIiLCJhcyIsIlByb0Zvcm1MaXN0Il0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsUUFBUSxJQUFJQyxTQUFTLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0FyRixTQUFTQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUV4RCxPQUFPQyxhQUFhLE1BQU0sNkJBQTZCO0FBQ3ZELFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxRQUFRLHdCQUF3QjtBQUM5RCxTQUFTQyxNQUFNLFFBQVEsV0FBVztBQUNsQyxTQUFTQyxlQUFlLEVBQUVDLGNBQWMsUUFBUSxlQUFlO0FBQy9ELFNBQVNDLGVBQWUsRUFBRUMsZ0JBQWdCLEVBQUVDLGVBQWUsUUFBUSxXQUFXO0FBQzlFLFNBQVNDLGdCQUFnQixFQUFFQyxrQkFBa0IsUUFBUSxrQkFBa0I7QUFF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IiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IFR5cG9ncmFwaHlMYWJlbCwgVHlwb2dyYXBoeUJvZHkgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IEZvcm1MaXN0Q29udGV4dCwgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhULCBQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSwgUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdEJ1dHRvblByb3BzLCBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tbGlzdGApO1xubGV0IGxpc3RLZXlDb3VudGVyID0gMDtcbmNvbnN0IGdlbmVyYXRlS2V5ID0gKCkgPT4gYGxpc3RfJHsrK2xpc3RLZXlDb3VudGVyfWA7XG4vLyBTdGFibGUgZW1wdHkgcmVzdWx0IGZvciB0aGUgbm8tdmFsdWUgY2FzZSDigJQgYSBmcmVzaCBbXSBwZXIgc2VsZWN0b3IgcnVuXG4vLyB3b3VsZCBuZXZlciBjb21wYXJlIGVxdWFsIGFuZCBsb29wIHRoZSBzdWJzY3JpcHRpb24uXG5jb25zdCBFTVBUWV9MSVNUID0gW107XG4vLyBGaWVsZCBtZXRhIChlcnJvcnMvd2FybmluZ3MvdG91Y2hlZC92YWxpZGF0aW5nKSBpcyBzdG9yZWQgRkxBVCwga2V5ZWQgYnlcbi8vIHRoZSBwb3NpdGlvbmFsIHBhdGggKGBpdGVtcy4xLnRpdGxlYCkuIFJvdyBvcGVyYXRpb25zIHNoaWZ0IHRoZSBWQUxVRVMgYnV0XG4vLyBub3QgdGhvc2Uga2V5cyDigJQgcmVtYXAgdGhlbSBpbiB0aGUgc2FtZSBoYW5kbGVyIHNvIGV2ZXJ5IHJvdyBrZWVwcyBpdHMgb3duXG4vLyBtZXRhLiBgbWFwSW5kZXhgIHJldHVybnMgdGhlIG5ldyBpbmRleCBmb3IgYW4gb2xkIG9uZSwgb3IgbnVsbCB0byBkcm9wIGl0LlxuY29uc3QgTElTVF9NRVRBX0tFWVMgPSBbJ2Vycm9ycycsICd3YXJuaW5ncycsICd0b3VjaGVkJywgJ3ZhbGlkYXRpbmcnXTtcbmZ1bmN0aW9uIHJlbWFwTGlzdE1ldGEoc3RvcmUsIGxpc3ROYW1lLCBtYXBJbmRleCkge1xuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBwcmVmaXggPSBgJHtsaXN0TmFtZX0uYDtcbiAgICBjb25zdCBwYXRjaCA9IHt9O1xuICAgIGZvciAoY29uc3QgbWV0YUtleSBvZiBMSVNUX01FVEFfS0VZUykge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBzdGF0ZVttZXRhS2V5XTtcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgbmV4dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzb3VyY2UpKSB7XG4gICAgICAgICAgICBpZiAoIWtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgICAgICBuZXh0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3QgPSBrZXkuc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCBkb3RBdCA9IHJlc3QuaW5kZXhPZignLicpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXhTdHIgPSBkb3RBdCA9PT0gLTEgPyByZXN0IDogcmVzdC5zbGljZSgwLCBkb3RBdCk7XG4gICAgICAgICAgICBpZiAoIS9eXFxkKyQvLnRlc3QoaW5kZXhTdHIpKSB7XG4gICAgICAgICAgICAgICAgbmV4dFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IG1hcEluZGV4KE51bWJlcihpbmRleFN0cikpO1xuICAgICAgICAgICAgaWYgKG5ld0luZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7IC8vIHJvdyByZW1vdmVkIOKAlCBkcm9wIGl0cyBtZXRhXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmV3SW5kZXggPT09IE51bWJlcihpbmRleFN0cikpIHtcbiAgICAgICAgICAgICAgICBuZXh0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHRbYCR7cHJlZml4fSR7bmV3SW5kZXh9JHtkb3RBdCA9PT0gLTEgPyAnJyA6IHJlc3Quc2xpY2UoZG90QXQpfWBdID0gc291cmNlW2tleV07XG4gICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgcGF0Y2hbbWV0YUtleV0gPSBuZXh0O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChPYmplY3Qua2V5cyhwYXRjaCkubGVuZ3RoID4gMClcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUocGF0Y2gpO1xufVxuLy8gUm93LWxldmVsIG1lbW8gYm91bmRhcnk6IHNldE5lc3RlZFZhbHVlIGNsb25lcyBPTkxZIHRoZSBlZGl0ZWQgcm93LCBzb1xuLy8gdW50b3VjaGVkIHJvd3Mga2VlcCB0aGVpciByZWNvcmQgaWRlbnRpdHkgYW5kIGJhaWwgb3V0IGhlcmUgd2hpbGUgYVxuLy8gc2libGluZyByb3cgaXMgYmVpbmcgZWRpdGVkLlxuY29uc3QgTGlzdFJvd0FjdGlvbnNCYXNlID0gKHsgaW5kZXgsIHJlY29yZCwgY2FuQWRkLCBjYW5SZW1vdmUsIGNvcHlJY29uUHJvcHMsIGRlbGV0ZUljb25Qcm9wcywgYWN0aW9uLCBhY3Rpb25SZW5kZXIsIGl0ZW1SZW5kZXIsIG9uQ29weSwgb25SZW1vdmUsIH0pID0+IHtcbiAgICBjb25zdCBjb3B5QnRuUHJvcHMgPSBleHRyYWN0QnV0dG9uUHJvcHMoY29weUljb25Qcm9wcyk7XG4gICAgY29uc3QgZGVsZXRlQnRuUHJvcHMgPSBleHRyYWN0QnV0dG9uUHJvcHMoZGVsZXRlSWNvblByb3BzKTtcbiAgICBjb25zdCBkZWZhdWx0RG9tID0ge1xuICAgICAgICBjb3B5OiBjb3B5SWNvblByb3BzICE9PSBmYWxzZSA/IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBzaXplOiBcInNtYWxsXCIgfSwgY29weUJ0blByb3BzLnJlc3QsIHsgb25DbGljazogKCkgPT4gb25Db3B5KGluZGV4KSwgZGlzYWJsZWQ6ICFjYW5BZGQgfHwgY29weUJ0blByb3BzLmRpc2FibGVkLCBjaGlsZHJlbjogREVGQVVMVF9URVhULmNvcHkgfSksIGBjb3B5LSR7aW5kZXh9YCkpIDogbnVsbCxcbiAgICAgICAgZGVsZXRlOiBkZWxldGVJY29uUHJvcHMgIT09IGZhbHNlID8gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IFwic21hbGxcIiB9LCBkZWxldGVCdG5Qcm9wcy5yZXN0LCB7IG9uQ2xpY2s6ICgpID0+IG9uUmVtb3ZlKGluZGV4KSwgZGlzYWJsZWQ6ICFjYW5SZW1vdmUgfHwgZGVsZXRlQnRuUHJvcHMuZGlzYWJsZWQsIGNoaWxkcmVuOiBERUZBVUxUX1RFWFQuZGVsZXRlIH0pLCBgZGVsZXRlLSR7aW5kZXh9YCkpIDogbnVsbCxcbiAgICB9O1xuICAgIGNvbnN0IHJlbmRlcmVkQWN0aW9ucyA9IGFjdGlvblJlbmRlclxuICAgICAgICA/IGFjdGlvblJlbmRlcih7IGluZGV4LCByZWNvcmQgfSwgYWN0aW9uLCBkZWZhdWx0RG9tKVxuICAgICAgICA6IFtkZWZhdWx0RG9tLmNvcHksIGRlZmF1bHREb20uZGVsZXRlXS5maWx0ZXIoQm9vbGVhbik7XG4gICAgY29uc3Qgcm93Tm9kZSA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdyb3ctYWN0aW9ucycpLCBjaGlsZHJlbjogcmVuZGVyZWRBY3Rpb25zIH0pKTtcbiAgICBpZiAoaXRlbVJlbmRlcikge1xuICAgICAgICByZXR1cm4gX2pzeChfRnJhZ21lbnQsIHsgY2hpbGRyZW46IGl0ZW1SZW5kZXIoeyBsaXN0RG9tOiByb3dOb2RlLCBhY3Rpb24gfSkgfSk7XG4gICAgfVxuICAgIHJldHVybiByb3dOb2RlO1xufTtcbkxpc3RSb3dBY3Rpb25zQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtTGlzdFJvd0FjdGlvbnMnO1xuY29uc3QgTGlzdFJvd0FjdGlvbnMgPSBtZW1vKExpc3RSb3dBY3Rpb25zQmFzZSk7XG5jb25zdCBQcm9Gb3JtTGlzdEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgbmFtZTogZnVsbE5hbWUsIGxhYmVsLCBtaW4sIG1heCwgcmVxdWlyZWQsIHJlcXVpcmVkTWVzc2FnZSA9ICdUaGlzIGxpc3QgY2Fubm90IGJlIGVtcHR5JywgaW5pdGlhbFZhbHVlLCBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHMsIGNyZWF0b3JCdXR0b25Qcm9wcywgaXRlbVJlbmRlciwgYWN0aW9uUmVuZGVyLCBjaGlsZHJlbiwgb25BZnRlckFkZCwgb25BZnRlclJlbW92ZSwgfSA9IHByb3BzO1xuICAgIC8vIExpc3QgbmFtZXMgYXJlIEFCU09MVVRFIHBhdGhzLCBsaWtlIGV2ZXJ5IG90aGVyIGZpZWxkIG5hbWUuIEEgbmVzdGVkXG4gICAgLy8gbGlzdCBpcyB3cml0dGVuIHdpdGggdGhlIGZ1bGwgcm93IHBhdGggKGBuYW1lPXtgJHtmaWVsZC5uYW1lfS50YWdzYH1gKSxcbiAgICAvLyBleGFjdGx5IGxpa2Ugcm93IGZpZWxkcyDigJQgdGhlIGJhcmUgcGFyZW50IGxpc3QgbmFtZSBjYXJyaWVzIG5vIHJvd1xuICAgIC8vIGluZGV4LCBzbyBhdXRvLXByZWZpeGluZyB3aXRoIGl0IGNvdWxkIG5ldmVyIGFkZHJlc3MgYSByb3cncyBvd25cbiAgICAvLyBzdWItbGlzdCAoaXQgd291bGQgcmVzb2x2ZSBgcGFyZW50LnRhZ3NgIGluc3RlYWQgb2YgYHBhcmVudC4wLnRhZ3NgKS5cbiAgICBjb25zdCB7IHNldEZpZWxkVmFsdWUsIHJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZCwgcmV0YWluRmllbGQsIHJlbGVhc2VGaWVsZCwgdmFsaWRhdGVGaWVsZCB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgY29uc3QgaW5pdGlhbEFwcGxpZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGtleXNSZWYgPSB1c2VSZWYoW10pO1xuICAgIC8vIFN1YnNjcmliZSBPTkxZIHRvIHRoaXMgbGlzdCdzIG93biB2YWx1ZSBhbmQgZXJyb3I6IHR5cGluZyBlbHNld2hlcmUgaW5cbiAgICAvLyB0aGUgZm9ybSBsZWF2ZXMgYm90aCB1bnRvdWNoZWQgYW5kIHRoaXMgY29tcG9uZW50IGRvZXMgbm90IHJlbmRlci5cbiAgICBjb25zdCBbbGlzdCwgbGlzdEVycm9yXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCByYXcgPSBmdWxsTmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKHN0YXRlLnZhbHVlcywgZnVsbE5hbWUpXG4gICAgICAgICAgICA6IHN0YXRlLnZhbHVlc1tmdWxsTmFtZV07XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHJhdykgPyByYXcgOiBFTVBUWV9MSVNULFxuICAgICAgICAgICAgc3RhdGUuZXJyb3JzW2Z1bGxOYW1lXSxcbiAgICAgICAgXTtcbiAgICB9LCBzaGFsbG93RXF1YWxBcnJheXMpO1xuICAgIC8vIFN5bmMga2V5cyB3aXRoIGxpc3QgbGVuZ3RoXG4gICAgd2hpbGUgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPCBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQucHVzaChnZW5lcmF0ZUtleSgpKTtcbiAgICB9XG4gICAgaWYgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPiBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBrZXlzUmVmLmN1cnJlbnQuc2xpY2UoMCwgbGlzdC5sZW5ndGgpO1xuICAgIH1cbiAgICAvLyBpbml0aWFsVmFsdWUgaXMgTU9VTlQtT05MWSAobGlrZSBmb3JtIGluaXRpYWxWYWx1ZXMpOiB0aGUgZGVjaXNpb24gaXNcbiAgICAvLyBtYWRlIGV4YWN0bHkgb25jZS4gV2l0aG91dCB0aGUgdW5jb25kaXRpb25hbCBmbGFnLCBhIGxpc3Qgc2VlZGVkIGJ5IGZvcm1cbiAgICAvLyBpbml0aWFsVmFsdWVzIHdvdWxkIHJlLWFwcGx5IGluaXRpYWxWYWx1ZSB3aGVuIHRoZSB1c2VyIGVtcHRpZXMgaXQuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxBcHBsaWVkLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRpYWxBcHBsaWVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBpZiAobGlzdC5sZW5ndGggIT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbml0aWFsVmFsdWUpIHx8IGluaXRpYWxWYWx1ZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIFsuLi5pbml0aWFsVmFsdWVdKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gaW5pdGlhbFZhbHVlLm1hcCgoKSA9PiBnZW5lcmF0ZUtleSgpKTtcbiAgICAgICAgLy8gTW91bnQtb25seSBieSBkZXNpZ24uXG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGNhbkFkZCA9IG1heCA9PSBudWxsIHx8IGxpc3QubGVuZ3RoIDwgbWF4O1xuICAgIGNvbnN0IGNhblJlbW92ZSA9IG1pbiA9PSBudWxsIHx8IGxpc3QubGVuZ3RoID4gbWluO1xuICAgIC8vIGByZXF1aXJlZGAgcGFydGljaXBhdGVzIGluIFJFQUwgdmFsaWRhdGlvbjogdGhlIHJ1bGUgaXMgcmVnaXN0ZXJlZCB3aXRoXG4gICAgLy8gdGhlIGZvcm0gKHNvIHN1Ym1pdCBibG9ja3Mgb24gYW4gZW1wdHkgbGlzdCkgYW5kIHJlLXJ1biBhZnRlciBldmVyeVxuICAgIC8vIHN0cnVjdHVyYWwgbXV0YXRpb24gYmVsb3cuXG4gICAgY29uc3QgbGlzdFJ1bGVzID0gdXNlTWVtbygoKSA9PiAocmVxdWlyZWQgPyBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogcmVxdWlyZWRNZXNzYWdlIH1dIDogW10pLCBbcmVxdWlyZWQsIHJlcXVpcmVkTWVzc2FnZV0pO1xuICAgIC8vIE1vdW50LWNvdW50ZWQgbGlmZXRpbWUgKHNlZSB1c2VGb3JtSXRlbSk6IHRoZSBydWxlcyBhcmUgcmVtb3ZlZCBvbmx5IHdoZW5cbiAgICAvLyB0aGUgTEFTVCBzYW1lLW5hbWUgaG9sZGVyIHVubW91bnRzLiBEZWNsYXJlZCBCRUZPUkUgdGhlIHJlZ2lzdGVyIGVmZmVjdCBzb1xuICAgIC8vIHRoZSByZWdpc3RyYXRpb24gYmVsb3cgaXMgY2xhc3NpZmllZCBhcyBpbnN0YW5jZS1vd25lZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXRhaW5GaWVsZChmdWxsTmFtZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICByZWxlYXNlRmllbGQoZnVsbE5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtmdWxsTmFtZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChsaXN0UnVsZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQoZnVsbE5hbWUsIGxpc3RSdWxlcyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHVucmVnaXN0ZXJGaWVsZChmdWxsTmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgdmFsaWRhdGVMaXN0VmFsdWUgPSB1c2VNZW1vaXplZEZuKChuZXh0TGlzdCkgPT4ge1xuICAgICAgICBpZiAobGlzdFJ1bGVzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZ1bGxOYW1lLCBsaXN0UnVsZXMsIG5leHRMaXN0KTtcbiAgICB9KTtcbiAgICBjb25zdCBhZGQgPSB1c2VNZW1vaXplZEZuKChkZWZhdWx0VmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY2FuQWRkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IHt9O1xuICAgICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgICAgICBjb25zdCBuZXdLZXlzID0gWy4uLmtleXNSZWYuY3VycmVudF07XG4gICAgICAgIGNvbnN0IGluc2VydEluZGV4ID0gdHlwZW9mIGluZGV4ID09PSAnbnVtYmVyJyA/IGluZGV4IDogbmV3TGlzdC5sZW5ndGg7XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKGluc2VydEluZGV4LCAwLCB2YWx1ZSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKGluc2VydEluZGV4LCAwLCBnZW5lcmF0ZUtleSgpKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIHJlbWFwTGlzdE1ldGEoc3RvcmUsIGZ1bGxOYW1lLCAoaSkgPT4gKGkgPj0gaW5zZXJ0SW5kZXggPyBpICsgMSA6IGkpKTtcbiAgICAgICAgdmFsaWRhdGVMaXN0VmFsdWUobmV3TGlzdCk7XG4gICAgICAgIG9uQWZ0ZXJBZGQgPT09IG51bGwgfHwgb25BZnRlckFkZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BZnRlckFkZCh2YWx1ZSwgaW5zZXJ0SW5kZXgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlbW92ZUF0ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5SZW1vdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBuZXdLZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IG5ld0tleXM7XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIG5ld0xpc3QpO1xuICAgICAgICByZW1hcExpc3RNZXRhKHN0b3JlLCBmdWxsTmFtZSwgKGkpID0+IHtcbiAgICAgICAgICAgIGlmIChpID09PSBpbmRleClcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBpID4gaW5kZXggPyBpIC0gMSA6IGk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YWxpZGF0ZUxpc3RWYWx1ZShuZXdMaXN0KTtcbiAgICAgICAgb25BZnRlclJlbW92ZSA9PT0gbnVsbCB8fCBvbkFmdGVyUmVtb3ZlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFmdGVyUmVtb3ZlKGluZGV4KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb3B5ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5BZGQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbGlzdFtpbmRleF0gPyBPYmplY3QuYXNzaWduKHt9LCBsaXN0W2luZGV4XSkgOiB7fTtcbiAgICAgICAgYWRkKHZhbHVlLCBpbmRleCArIDEpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1vdmUgPSB1c2VNZW1vaXplZEZuKChmcm9tLCB0bykgPT4ge1xuICAgICAgICBpZiAoZnJvbSA9PT0gdG8pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChmcm9tIDwgMCB8fCBmcm9tID49IGxpc3QubGVuZ3RoIHx8IHRvIDwgMCB8fCB0byA+PSBsaXN0Lmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5saXN0XTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IFsuLi5rZXlzUmVmLmN1cnJlbnRdO1xuICAgICAgICBjb25zdCBbbW92ZWRJdGVtXSA9IG5ld0xpc3Quc3BsaWNlKGZyb20sIDEpO1xuICAgICAgICBjb25zdCBbbW92ZWRLZXldID0gbmV3S2V5cy5zcGxpY2UoZnJvbSwgMSk7XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKHRvLCAwLCBtb3ZlZEl0ZW0pO1xuICAgICAgICBuZXdLZXlzLnNwbGljZSh0bywgMCwgbW92ZWRLZXkpO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBuZXdLZXlzO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBuZXdMaXN0KTtcbiAgICAgICAgcmVtYXBMaXN0TWV0YShzdG9yZSwgZnVsbE5hbWUsIChpKSA9PiB7XG4gICAgICAgICAgICBpZiAoaSA9PT0gZnJvbSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdG87XG4gICAgICAgICAgICBpZiAoZnJvbSA8IHRvKVxuICAgICAgICAgICAgICAgIHJldHVybiBpID4gZnJvbSAmJiBpIDw9IHRvID8gaSAtIDEgOiBpO1xuICAgICAgICAgICAgcmV0dXJuIGkgPj0gdG8gJiYgaSA8IGZyb20gPyBpICsgMSA6IGk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldExpc3QgPSB1c2VNZW1vaXplZEZuKCgpID0+IGxpc3QpO1xuICAgIGNvbnN0IGFjdGlvbiA9IHVzZU1lbW8oKCkgPT4gKHsgYWRkLCByZW1vdmU6IHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXRMaXN0IH0pLCBbYWRkLCByZW1vdmVBdCwgbW92ZSwgY29weSwgZ2V0TGlzdF0pO1xuICAgIC8vIFBlci1rZXkgY2FjaGUga2VlcHMgZWFjaCByb3cncyBmaWVsZCBvYmplY3QgaWRlbnRpdHkgc3RhYmxlIGFjcm9zcyBsaXN0XG4gICAgLy8gY29tbWl0cyAoZS5nLiB0eXBpbmcgaW4gYSBzaWJsaW5nIHJvdyksIHNvIG1lbW9pemVkIHJvdyBjb250ZW50IHNlZXNcbiAgICAvLyBzaGFsbG93LWVxdWFsIHByb3BzIGFuZCBiYWlscyBvdXQuXG4gICAgY29uc3QgZmllbGRPYmpDYWNoZSA9IHVzZVJlZihuZXcgTWFwKCkpO1xuICAgIGNvbnN0IG1hcHBlZEZpZWxkcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0Q2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IGxpc3QubWFwKChfaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNSZWYuY3VycmVudFtpbmRleF0gfHwgYGZhbGxiYWNrXyR7aW5kZXh9YDtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGAke2Z1bGxOYW1lfS4ke2luZGV4fWA7XG4gICAgICAgICAgICBjb25zdCBjYWNoZWQgPSBmaWVsZE9iakNhY2hlLmN1cnJlbnQuZ2V0KGtleSk7XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGNhY2hlZCAmJiBjYWNoZWQubmFtZSA9PT0gZmllbGROYW1lID8gY2FjaGVkIDogeyBuYW1lOiBmaWVsZE5hbWUsIGtleSB9O1xuICAgICAgICAgICAgbmV4dENhY2hlLnNldChrZXksIGZpZWxkKTtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGZpZWxkT2JqQ2FjaGUuY3VycmVudCA9IG5leHRDYWNoZTtcbiAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICB9LCBbbGlzdCwgZnVsbE5hbWVdKTtcbiAgICAvLyBNZW1vaXplZCBzbyB0aGUgcm93IGZhY3RvcnkgaXMgcmUtaW52b2tlZCBvbmx5IHdoZW4gdGhlIGxpc3QgaXRzZWxmIChvclxuICAgIC8vIHRoZSBjb25zdW1lci1wcm92aWRlZCBjaGlsZHJlbikgY2hhbmdlcyDigJQgbmV2ZXIgZm9yIHVucmVsYXRlZCBjb21taXRzLlxuICAgIGNvbnN0IGxpc3REb20gPSB1c2VNZW1vKCgpID0+ICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihtYXBwZWRGaWVsZHMsIGFjdGlvbikgOiBjaGlsZHJlbiksIFtjaGlsZHJlbiwgbWFwcGVkRmllbGRzLCBhY3Rpb25dKTtcbiAgICAvLyBBY3Rpb24gYnV0dG9ucyBwZXIgcm93IOKAlCBMaXN0Um93QWN0aW9ucyBpcyB0aGUgbWVtbyBib3VuZGFyeVxuICAgIGNvbnN0IGFjdGlvblJvd3MgPSBsaXN0Lm1hcCgocmVjb3JkLCBpbmRleCkgPT4gKF9qc3goTGlzdFJvd0FjdGlvbnMsIHsgaW5kZXg6IGluZGV4LCByZWNvcmQ6IHJlY29yZCwgY2FuQWRkOiBjYW5BZGQsIGNhblJlbW92ZTogY2FuUmVtb3ZlLCBjb3B5SWNvblByb3BzOiBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHM6IGRlbGV0ZUljb25Qcm9wcywgYWN0aW9uOiBhY3Rpb24sIGFjdGlvblJlbmRlcjogYWN0aW9uUmVuZGVyLCBpdGVtUmVuZGVyOiBpdGVtUmVuZGVyLCBvbkNvcHk6IGNvcHksIG9uUmVtb3ZlOiByZW1vdmVBdCB9LCBrZXlzUmVmLmN1cnJlbnRbaW5kZXhdIHx8IGluZGV4KSkpO1xuICAgIC8vIENyZWF0b3IgYnV0dG9uXG4gICAgY29uc3QgaGFzQ3JlYXRvciA9IGNyZWF0b3JCdXR0b25Qcm9wcyAhPT0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRvckNvbmZpZyA9IGhhc0NyZWF0b3IgJiYgdHlwZW9mIGNyZWF0b3JCdXR0b25Qcm9wcyA9PT0gJ29iamVjdCcgPyBjcmVhdG9yQnV0dG9uUHJvcHMgOiB7fTtcbiAgICBjb25zdCBjcmVhdG9yUG9zaXRpb24gPSAoX2EgPSBjcmVhdG9yQ29uZmlnID09PSBudWxsIHx8IGNyZWF0b3JDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0b3JDb25maWcucG9zaXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdib3R0b20nO1xuICAgIGNvbnN0IGNyZWF0b3JUZXh0ID0gKF9iID0gY3JlYXRvckNvbmZpZyA9PT0gbnVsbCB8fCBjcmVhdG9yQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjcmVhdG9yQ29uZmlnLnRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5hZGQ7XG4gICAgY29uc3QgY3JlYXRvckJ1dHRvbiA9IGhhc0NyZWF0b3IgPyAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjcmVhdG9yUG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICAgICAgYWRkKHt9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFkZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBkaXNhYmxlZDogIWNhbkFkZCwgY2hpbGRyZW46IGNyZWF0b3JUZXh0IH0pKSA6IG51bGw7XG4gICAgY29uc3QgZm9ybUxpc3RDb250ZXh0VmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7IGxpc3ROYW1lOiBmdWxsTmFtZSB9KSwgW2Z1bGxOYW1lXSk7XG4gICAgcmV0dXJuIChfanN4KEZvcm1MaXN0Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogZm9ybUxpc3RDb250ZXh0VmFsdWUsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW2xhYmVsICYmIF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnKSwgc2l6ZTogUFJPRk9STV9MSVNUX0xBQkVMX1NJWkUsIGNvbG9yOiBQUk9GT1JNX0xJU1RfTEFCRUxfQ09MT1IsIGNoaWxkcmVuOiBsYWJlbCB9KSwgY3JlYXRvclBvc2l0aW9uID09PSAndG9wJyAmJiBjcmVhdG9yQnV0dG9uLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBsaXN0RG9tIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBhY3Rpb25Sb3dzIH0pLCBjcmVhdG9yUG9zaXRpb24gPT09ICdib3R0b20nICYmIGNyZWF0b3JCdXR0b24sIGxpc3RFcnJvciAmJiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBzaXplOiBcInNtXCIsIGNvbG9yOiBcImRhbmdlclwiLCBjaGlsZHJlbjogbGlzdEVycm9yIH0pXSB9KSB9KSk7XG59O1xuUHJvRm9ybUxpc3RCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1MaXN0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtTGlzdCA9IG1lbW8oUHJvRm9ybUxpc3RCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1MaXN0OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
385
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJUeXBvZ3JhcGh5TGFiZWwiLCJUeXBvZ3JhcGh5Qm9keSIsIkZvcm1MaXN0Q29udGV4dCIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlBST0ZPUk1fTElTVF9MQUJFTF9TSVpFIiwiUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiZ2V0TmVzdGVkVmFsdWUiLCJjbGFzc2VzIiwiY29uY2F0IiwibGlzdEtleUNvdW50ZXIiLCJnZW5lcmF0ZUtleSIsIkVNUFRZX0xJU1QiLCJMSVNUX01FVEFfS0VZUyIsInJlbWFwTGlzdE1ldGEiLCJzdG9yZSIsImxpc3ROYW1lIiwibWFwSW5kZXgiLCJzdGF0ZSIsImdldFN0YXRlIiwicHJlZml4IiwicGF0Y2giLCJfaSIsIl9MSVNUX01FVEFfS0VZUyIsImxlbmd0aCIsIm1ldGFLZXkiLCJzb3VyY2UiLCJjaGFuZ2VkIiwibmV4dCIsIl9pMiIsIl9PYmplY3Qka2V5cyIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJzdGFydHNXaXRoIiwicmVzdCIsInNsaWNlIiwiZG90QXQiLCJpbmRleE9mIiwiaW5kZXhTdHIiLCJ0ZXN0IiwibmV3SW5kZXgiLCJOdW1iZXIiLCJzZXRTdGF0ZSIsIkxpc3RSb3dBY3Rpb25zQmFzZSIsIl9yZWYiLCJpbmRleCIsInJlY29yZCIsImNhbkFkZCIsImNhblJlbW92ZSIsImNvcHlJY29uUHJvcHMiLCJkZWxldGVJY29uUHJvcHMiLCJhY3Rpb24iLCJhY3Rpb25SZW5kZXIiLCJpdGVtUmVuZGVyIiwib25Db3B5Iiwib25SZW1vdmUiLCJjb3B5QnRuUHJvcHMiLCJkZWxldGVCdG5Qcm9wcyIsImRlZmF1bHREb20iLCJjb3B5IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwic2l6ZSIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsImNoaWxkcmVuIiwicmVuZGVyZWRBY3Rpb25zIiwiZmlsdGVyIiwiQm9vbGVhbiIsInJvd05vZGUiLCJjbGFzc05hbWUiLCJsaXN0RG9tIiwiZGlzcGxheU5hbWUiLCJMaXN0Um93QWN0aW9ucyIsIlByb0Zvcm1MaXN0QmFzZSIsInByb3BzIiwiX2EiLCJfYiIsImZ1bGxOYW1lIiwibmFtZSIsImxhYmVsIiwibWluIiwibWF4IiwicmVxdWlyZWQiLCJfcHJvcHMkcmVxdWlyZWRNZXNzYWciLCJyZXF1aXJlZE1lc3NhZ2UiLCJpbml0aWFsVmFsdWUiLCJjcmVhdG9yQnV0dG9uUHJvcHMiLCJvbkFmdGVyQWRkIiwib25BZnRlclJlbW92ZSIsIl91c2VQcm9Gb3JtU3RhYmxlIiwic2V0RmllbGRWYWx1ZSIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJyZXRhaW5GaWVsZCIsInJlbGVhc2VGaWVsZCIsInZhbGlkYXRlRmllbGRBc3luYyIsImluaXRpYWxBcHBsaWVkIiwia2V5c1JlZiIsIl91c2VTdG9yZVNlbGVjdG9yIiwicmF3IiwiaW5jbHVkZXMiLCJ2YWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJlcnJvcnMiLCJfdXNlU3RvcmVTZWxlY3RvcjIiLCJfc2xpY2VkVG9BcnJheSIsImxpc3QiLCJsaXN0RXJyb3IiLCJjdXJyZW50IiwicHVzaCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm1hcCIsImxpc3RSdWxlcyIsIm1lc3NhZ2UiLCJ2YWxpZGF0ZUxpc3RWYWx1ZSIsIm5leHRMaXN0IiwiYWRkIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJuZXdMaXN0IiwibmV3S2V5cyIsImluc2VydEluZGV4Iiwic3BsaWNlIiwiaSIsInJlbW92ZUF0IiwiX3R5cGVvZiIsIm1vdmUiLCJmcm9tIiwidG8iLCJfbmV3TGlzdCRzcGxpY2UiLCJfbmV3TGlzdCRzcGxpY2UyIiwibW92ZWRJdGVtIiwiX25ld0tleXMkc3BsaWNlIiwiX25ld0tleXMkc3BsaWNlMiIsIm1vdmVkS2V5IiwiZ2V0IiwiZ2V0TGlzdCIsInJlbW92ZSIsImZpZWxkT2JqQ2FjaGUiLCJNYXAiLCJtYXBwZWRGaWVsZHMiLCJuZXh0Q2FjaGUiLCJmaWVsZHMiLCJfaXRlbSIsImZpZWxkTmFtZSIsImNhY2hlZCIsImZpZWxkIiwic2V0IiwiYWN0aW9uUm93cyIsImhhc0NyZWF0b3IiLCJjcmVhdG9yQ29uZmlnIiwiY3JlYXRvclBvc2l0aW9uIiwicG9zaXRpb24iLCJjcmVhdG9yVGV4dCIsInRleHQiLCJjcmVhdG9yQnV0dG9uIiwiZm9ybUxpc3RDb250ZXh0VmFsdWUiLCJQcm92aWRlciIsImFzIiwiUHJvRm9ybUxpc3QiXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQXJGLFNBQVNDLElBQUksRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBRXhELE9BQU9DLGFBQWEsTUFBTSw2QkFBNkI7QUFDdkQsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLFFBQVEsd0JBQXdCO0FBQzlELFNBQVNDLE1BQU0sUUFBUSxXQUFXO0FBQ2xDLFNBQVNDLGVBQWUsRUFBRUMsY0FBYyxRQUFRLGVBQWU7QUFDL0QsU0FBU0MsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDOUUsU0FBU0MsZ0JBQWdCLEVBQUVDLGtCQUFrQixRQUFRLGtCQUFr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QyxLQUFLO1FBQUNsRyxJQUFJLEVBQUMsSUFBSTtRQUFDRCxLQUFLLEVBQUMsUUFBUTtRQUFBSSxRQUFBLEVBQUU0QztNQUFTLENBQUEsQ0FBa0I7SUFBQSxDQUFBO0VBQ3hGLENBQUEsQ0FDbUI7QUFFL0IsQ0FBQztBQUVEbkMsZUFBZSxDQUFDRixXQUFXLEdBQUcsYUFBYTtBQVMzQyxPQUFPLElBQU15RixXQUFXLGdCQUFHaEwsSUFBSSxDQUFDeUYsZUFBZSxDQUFnQztBQUUvRSxlQUFldUYsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybUxpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5TGFiZWwsIFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBGb3JtTGlzdENvbnRleHQsIHVzZVByb0Zvcm1TdGFibGUsIHVzZVByb0Zvcm1TdG9yZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yLCBzaGFsbG93RXF1YWxBcnJheXMgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCwgUFJPRk9STV9MSVNUX0xBQkVMX1NJWkUsIFBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RCdXR0b25Qcm9wcywgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LWxpc3RgKTtcbmxldCBsaXN0S2V5Q291bnRlciA9IDA7XG5jb25zdCBnZW5lcmF0ZUtleSA9ICgpID0+IGBsaXN0XyR7KytsaXN0S2V5Q291bnRlcn1gO1xuLy8gU3RhYmxlIGVtcHR5IHJlc3VsdCBmb3IgdGhlIG5vLXZhbHVlIGNhc2Ug4oCUIGEgZnJlc2ggW10gcGVyIHNlbGVjdG9yIHJ1blxuLy8gd291bGQgbmV2ZXIgY29tcGFyZSBlcXVhbCBhbmQgbG9vcCB0aGUgc3Vic2NyaXB0aW9uLlxuY29uc3QgRU1QVFlfTElTVCA9IFtdO1xuLy8gRmllbGQgbWV0YSAoZXJyb3JzL3dhcm5pbmdzL3RvdWNoZWQvdmFsaWRhdGluZykgaXMgc3RvcmVkIEZMQVQsIGtleWVkIGJ5XG4vLyB0aGUgcG9zaXRpb25hbCBwYXRoIChgaXRlbXMuMS50aXRsZWApLiBSb3cgb3BlcmF0aW9ucyBzaGlmdCB0aGUgVkFMVUVTIGJ1dFxuLy8gbm90IHRob3NlIGtleXMg4oCUIHJlbWFwIHRoZW0gaW4gdGhlIHNhbWUgaGFuZGxlciBzbyBldmVyeSByb3cga2VlcHMgaXRzIG93blxuLy8gbWV0YS4gYG1hcEluZGV4YCByZXR1cm5zIHRoZSBuZXcgaW5kZXggZm9yIGFuIG9sZCBvbmUsIG9yIG51bGwgdG8gZHJvcCBpdC5cbmNvbnN0IExJU1RfTUVUQV9LRVlTID0gWydlcnJvcnMnLCAnd2FybmluZ3MnLCAndG91Y2hlZCcsICd2YWxpZGF0aW5nJ107XG5mdW5jdGlvbiByZW1hcExpc3RNZXRhKHN0b3JlLCBsaXN0TmFtZSwgbWFwSW5kZXgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHN0b3JlLmdldFN0YXRlKCk7XG4gICAgY29uc3QgcHJlZml4ID0gYCR7bGlzdE5hbWV9LmA7XG4gICAgY29uc3QgcGF0Y2ggPSB7fTtcbiAgICBmb3IgKGNvbnN0IG1ldGFLZXkgb2YgTElTVF9NRVRBX0tFWVMpIHtcbiAgICAgICAgY29uc3Qgc291cmNlID0gc3RhdGVbbWV0YUtleV07XG4gICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlKSkge1xuICAgICAgICAgICAgaWYgKCFrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgICAgICAgbmV4dFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN0ID0ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgZG90QXQgPSByZXN0LmluZGV4T2YoJy4nKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4U3RyID0gZG90QXQgPT09IC0xID8gcmVzdCA6IHJlc3Quc2xpY2UoMCwgZG90QXQpO1xuICAgICAgICAgICAgaWYgKCEvXlxcZCskLy50ZXN0KGluZGV4U3RyKSkge1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3SW5kZXggPSBtYXBJbmRleChOdW1iZXIoaW5kZXhTdHIpKTtcbiAgICAgICAgICAgIGlmIChuZXdJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOyAvLyByb3cgcmVtb3ZlZCDigJQgZHJvcCBpdHMgbWV0YVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5ld0luZGV4ID09PSBOdW1iZXIoaW5kZXhTdHIpKSB7XG4gICAgICAgICAgICAgICAgbmV4dFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0W2Ake3ByZWZpeH0ke25ld0luZGV4fSR7ZG90QXQgPT09IC0xID8gJycgOiByZXN0LnNsaWNlKGRvdEF0KX1gXSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgIHBhdGNoW21ldGFLZXldID0gbmV4dDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoT2JqZWN0LmtleXMocGF0Y2gpLmxlbmd0aCA+IDApXG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHBhdGNoKTtcbn1cbi8vIFJvdy1sZXZlbCBtZW1vIGJvdW5kYXJ5OiBzZXROZXN0ZWRWYWx1ZSBjbG9uZXMgT05MWSB0aGUgZWRpdGVkIHJvdywgc29cbi8vIHVudG91Y2hlZCByb3dzIGtlZXAgdGhlaXIgcmVjb3JkIGlkZW50aXR5IGFuZCBiYWlsIG91dCBoZXJlIHdoaWxlIGFcbi8vIHNpYmxpbmcgcm93IGlzIGJlaW5nIGVkaXRlZC5cbmNvbnN0IExpc3RSb3dBY3Rpb25zQmFzZSA9ICh7IGluZGV4LCByZWNvcmQsIGNhbkFkZCwgY2FuUmVtb3ZlLCBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHMsIGFjdGlvbiwgYWN0aW9uUmVuZGVyLCBpdGVtUmVuZGVyLCBvbkNvcHksIG9uUmVtb3ZlLCB9KSA9PiB7XG4gICAgY29uc3QgY29weUJ0blByb3BzID0gZXh0cmFjdEJ1dHRvblByb3BzKGNvcHlJY29uUHJvcHMpO1xuICAgIGNvbnN0IGRlbGV0ZUJ0blByb3BzID0gZXh0cmFjdEJ1dHRvblByb3BzKGRlbGV0ZUljb25Qcm9wcyk7XG4gICAgY29uc3QgZGVmYXVsdERvbSA9IHtcbiAgICAgICAgY29weTogY29weUljb25Qcm9wcyAhPT0gZmFsc2UgPyAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogXCJzbWFsbFwiIH0sIGNvcHlCdG5Qcm9wcy5yZXN0LCB7IG9uQ2xpY2s6ICgpID0+IG9uQ29weShpbmRleCksIGRpc2FibGVkOiAhY2FuQWRkIHx8IGNvcHlCdG5Qcm9wcy5kaXNhYmxlZCwgY2hpbGRyZW46IERFRkFVTFRfVEVYVC5jb3B5IH0pLCBgY29weS0ke2luZGV4fWApKSA6IG51bGwsXG4gICAgICAgIGRlbGV0ZTogZGVsZXRlSWNvblByb3BzICE9PSBmYWxzZSA/IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBzaXplOiBcInNtYWxsXCIgfSwgZGVsZXRlQnRuUHJvcHMucmVzdCwgeyBvbkNsaWNrOiAoKSA9PiBvblJlbW92ZShpbmRleCksIGRpc2FibGVkOiAhY2FuUmVtb3ZlIHx8IGRlbGV0ZUJ0blByb3BzLmRpc2FibGVkLCBjaGlsZHJlbjogREVGQVVMVF9URVhULmRlbGV0ZSB9KSwgYGRlbGV0ZS0ke2luZGV4fWApKSA6IG51bGwsXG4gICAgfTtcbiAgICBjb25zdCByZW5kZXJlZEFjdGlvbnMgPSBhY3Rpb25SZW5kZXJcbiAgICAgICAgPyBhY3Rpb25SZW5kZXIoeyBpbmRleCwgcmVjb3JkIH0sIGFjdGlvbiwgZGVmYXVsdERvbSlcbiAgICAgICAgOiBbZGVmYXVsdERvbS5jb3B5LCBkZWZhdWx0RG9tLmRlbGV0ZV0uZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IHJvd05vZGUgPSAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygncm93LWFjdGlvbnMnKSwgY2hpbGRyZW46IHJlbmRlcmVkQWN0aW9ucyB9KSk7XG4gICAgaWYgKGl0ZW1SZW5kZXIpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBpdGVtUmVuZGVyKHsgbGlzdERvbTogcm93Tm9kZSwgYWN0aW9uIH0pIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcm93Tm9kZTtcbn07XG5MaXN0Um93QWN0aW9uc0Jhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUxpc3RSb3dBY3Rpb25zJztcbmNvbnN0IExpc3RSb3dBY3Rpb25zID0gbWVtbyhMaXN0Um93QWN0aW9uc0Jhc2UpO1xuY29uc3QgUHJvRm9ybUxpc3RCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IG5hbWU6IGZ1bGxOYW1lLCBsYWJlbCwgbWluLCBtYXgsIHJlcXVpcmVkLCByZXF1aXJlZE1lc3NhZ2UgPSAnVGhpcyBsaXN0IGNhbm5vdCBiZSBlbXB0eScsIGluaXRpYWxWYWx1ZSwgY29weUljb25Qcm9wcywgZGVsZXRlSWNvblByb3BzLCBjcmVhdG9yQnV0dG9uUHJvcHMsIGl0ZW1SZW5kZXIsIGFjdGlvblJlbmRlciwgY2hpbGRyZW4sIG9uQWZ0ZXJBZGQsIG9uQWZ0ZXJSZW1vdmUsIH0gPSBwcm9wcztcbiAgICAvLyBMaXN0IG5hbWVzIGFyZSBBQlNPTFVURSBwYXRocywgbGlrZSBldmVyeSBvdGhlciBmaWVsZCBuYW1lLiBBIG5lc3RlZFxuICAgIC8vIGxpc3QgaXMgd3JpdHRlbiB3aXRoIHRoZSBmdWxsIHJvdyBwYXRoIChgbmFtZT17YCR7ZmllbGQubmFtZX0udGFnc2B9YCksXG4gICAgLy8gZXhhY3RseSBsaWtlIHJvdyBmaWVsZHMg4oCUIHRoZSBiYXJlIHBhcmVudCBsaXN0IG5hbWUgY2FycmllcyBubyByb3dcbiAgICAvLyBpbmRleCwgc28gYXV0by1wcmVmaXhpbmcgd2l0aCBpdCBjb3VsZCBuZXZlciBhZGRyZXNzIGEgcm93J3Mgb3duXG4gICAgLy8gc3ViLWxpc3QgKGl0IHdvdWxkIHJlc29sdmUgYHBhcmVudC50YWdzYCBpbnN0ZWFkIG9mIGBwYXJlbnQuMC50YWdzYCkuXG4gICAgY29uc3QgeyBzZXRGaWVsZFZhbHVlLCByZWdpc3RlckZpZWxkLCB1bnJlZ2lzdGVyRmllbGQsIHJldGFpbkZpZWxkLCByZWxlYXNlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYyB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgY29uc3QgaW5pdGlhbEFwcGxpZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGtleXNSZWYgPSB1c2VSZWYoW10pO1xuICAgIC8vIFN1YnNjcmliZSBPTkxZIHRvIHRoaXMgbGlzdCdzIG93biB2YWx1ZSBhbmQgZXJyb3I6IHR5cGluZyBlbHNld2hlcmUgaW5cbiAgICAvLyB0aGUgZm9ybSBsZWF2ZXMgYm90aCB1bnRvdWNoZWQgYW5kIHRoaXMgY29tcG9uZW50IGRvZXMgbm90IHJlbmRlci5cbiAgICBjb25zdCBbbGlzdCwgbGlzdEVycm9yXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCByYXcgPSBmdWxsTmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKHN0YXRlLnZhbHVlcywgZnVsbE5hbWUpXG4gICAgICAgICAgICA6IHN0YXRlLnZhbHVlc1tmdWxsTmFtZV07XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHJhdykgPyByYXcgOiBFTVBUWV9MSVNULFxuICAgICAgICAgICAgc3RhdGUuZXJyb3JzW2Z1bGxOYW1lXSxcbiAgICAgICAgXTtcbiAgICB9LCBzaGFsbG93RXF1YWxBcnJheXMpO1xuICAgIC8vIFN5bmMga2V5cyB3aXRoIGxpc3QgbGVuZ3RoXG4gICAgd2hpbGUgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPCBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQucHVzaChnZW5lcmF0ZUtleSgpKTtcbiAgICB9XG4gICAgaWYgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPiBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBrZXlzUmVmLmN1cnJlbnQuc2xpY2UoMCwgbGlzdC5sZW5ndGgpO1xuICAgIH1cbiAgICAvLyBpbml0aWFsVmFsdWUgaXMgTU9VTlQtT05MWSAobGlrZSBmb3JtIGluaXRpYWxWYWx1ZXMpOiB0aGUgZGVjaXNpb24gaXNcbiAgICAvLyBtYWRlIGV4YWN0bHkgb25jZS4gV2l0aG91dCB0aGUgdW5jb25kaXRpb25hbCBmbGFnLCBhIGxpc3Qgc2VlZGVkIGJ5IGZvcm1cbiAgICAvLyBpbml0aWFsVmFsdWVzIHdvdWxkIHJlLWFwcGx5IGluaXRpYWxWYWx1ZSB3aGVuIHRoZSB1c2VyIGVtcHRpZXMgaXQuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxBcHBsaWVkLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRpYWxBcHBsaWVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBpZiAobGlzdC5sZW5ndGggIT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbml0aWFsVmFsdWUpIHx8IGluaXRpYWxWYWx1ZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIFsuLi5pbml0aWFsVmFsdWVdKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gaW5pdGlhbFZhbHVlLm1hcCgoKSA9PiBnZW5lcmF0ZUtleSgpKTtcbiAgICAgICAgLy8gTW91bnQtb25seSBieSBkZXNpZ24uXG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGNhbkFkZCA9IG1heCA9PSBudWxsIHx8IGxpc3QubGVuZ3RoIDwgbWF4O1xuICAgIGNvbnN0IGNhblJlbW92ZSA9IG1pbiA9PSBudWxsIHx8IGxpc3QubGVuZ3RoID4gbWluO1xuICAgIC8vIGByZXF1aXJlZGAgcGFydGljaXBhdGVzIGluIFJFQUwgdmFsaWRhdGlvbjogdGhlIHJ1bGUgaXMgcmVnaXN0ZXJlZCB3aXRoXG4gICAgLy8gdGhlIGZvcm0gKHNvIHN1Ym1pdCBibG9ja3Mgb24gYW4gZW1wdHkgbGlzdCkgYW5kIHJlLXJ1biBhZnRlciBldmVyeVxuICAgIC8vIHN0cnVjdHVyYWwgbXV0YXRpb24gYmVsb3cuXG4gICAgY29uc3QgbGlzdFJ1bGVzID0gdXNlTWVtbygoKSA9PiAocmVxdWlyZWQgPyBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogcmVxdWlyZWRNZXNzYWdlIH1dIDogW10pLCBbcmVxdWlyZWQsIHJlcXVpcmVkTWVzc2FnZV0pO1xuICAgIC8vIE1vdW50LWNvdW50ZWQgbGlmZXRpbWUgKHNlZSB1c2VGb3JtSXRlbSk6IHRoZSBydWxlcyBhcmUgcmVtb3ZlZCBvbmx5IHdoZW5cbiAgICAvLyB0aGUgTEFTVCBzYW1lLW5hbWUgaG9sZGVyIHVubW91bnRzLiBEZWNsYXJlZCBCRUZPUkUgdGhlIHJlZ2lzdGVyIGVmZmVjdCBzb1xuICAgIC8vIHRoZSByZWdpc3RyYXRpb24gYmVsb3cgaXMgY2xhc3NpZmllZCBhcyBpbnN0YW5jZS1vd25lZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXRhaW5GaWVsZChmdWxsTmFtZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICByZWxlYXNlRmllbGQoZnVsbE5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtmdWxsTmFtZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChsaXN0UnVsZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQoZnVsbE5hbWUsIGxpc3RSdWxlcyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHVucmVnaXN0ZXJGaWVsZChmdWxsTmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgdmFsaWRhdGVMaXN0VmFsdWUgPSB1c2VNZW1vaXplZEZuKChuZXh0TGlzdCkgPT4ge1xuICAgICAgICAvLyBBc3luYyBwYXRoIHNvIGxpc3QtbGV2ZWwgcnVsZXMgd2l0aCBhIFByb21pc2UtcmV0dXJuaW5nIHZhbGlkYXRvciBhcmVcbiAgICAgICAgLy8gaG9ub3JlZCAodGhlIHN5bmMgcGF0aCB3b3VsZCBzaWxlbnRseSBza2lwIHRoZW0pOyByZXN1bHQgbGFuZHMgb24gdGhlXG4gICAgICAgIC8vIG5leHQgbWljcm90YXNrLCBzYW1lIGFzIFByb0Zvcm0uSXRlbS4gRmlyZS1hbmQtZm9yZ2V0IOKAlCB0aGUgb3V0Y29tZSBpc1xuICAgICAgICAvLyByZWFkIGZyb20gdGhlIHN0b3JlJ3MgZXJyb3Igc2xpY2UsIG5vdCB0aGlzIGNhbGwuXG4gICAgICAgIGlmIChsaXN0UnVsZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHZhbGlkYXRlRmllbGRBc3luYyhmdWxsTmFtZSwgbmV4dExpc3QsIGxpc3RSdWxlcyk7XG4gICAgfSk7XG4gICAgY29uc3QgYWRkID0gdXNlTWVtb2l6ZWRGbigoZGVmYXVsdFZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNhbkFkZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDoge30pO1xuICAgICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgICAgICBjb25zdCBuZXdLZXlzID0gWy4uLmtleXNSZWYuY3VycmVudF07XG4gICAgICAgIGNvbnN0IGluc2VydEluZGV4ID0gdHlwZW9mIGluZGV4ID09PSAnbnVtYmVyJyA/IGluZGV4IDogbmV3TGlzdC5sZW5ndGg7XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKGluc2VydEluZGV4LCAwLCB2YWx1ZSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKGluc2VydEluZGV4LCAwLCBnZW5lcmF0ZUtleSgpKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIHJlbWFwTGlzdE1ldGEoc3RvcmUsIGZ1bGxOYW1lLCAoaSkgPT4gKGkgPj0gaW5zZXJ0SW5kZXggPyBpICsgMSA6IGkpKTtcbiAgICAgICAgdmFsaWRhdGVMaXN0VmFsdWUobmV3TGlzdCk7XG4gICAgICAgIG9uQWZ0ZXJBZGQgPT09IG51bGwgfHwgb25BZnRlckFkZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BZnRlckFkZCh2YWx1ZSwgaW5zZXJ0SW5kZXgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlbW92ZUF0ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5SZW1vdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBuZXdLZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IG5ld0tleXM7XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIG5ld0xpc3QpO1xuICAgICAgICByZW1hcExpc3RNZXRhKHN0b3JlLCBmdWxsTmFtZSwgKGkpID0+IHtcbiAgICAgICAgICAgIGlmIChpID09PSBpbmRleClcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBpID4gaW5kZXggPyBpIC0gMSA6IGk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YWxpZGF0ZUxpc3RWYWx1ZShuZXdMaXN0KTtcbiAgICAgICAgb25BZnRlclJlbW92ZSA9PT0gbnVsbCB8fCBvbkFmdGVyUmVtb3ZlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFmdGVyUmVtb3ZlKGluZGV4KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb3B5ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5BZGQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbGlzdFtpbmRleF0gJiYgdHlwZW9mIGxpc3RbaW5kZXhdID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKHt9LCBsaXN0W2luZGV4XSlcbiAgICAgICAgICAgIDogbGlzdFtpbmRleF07XG4gICAgICAgIGFkZCh2YWx1ZSwgaW5kZXggKyAxKTtcbiAgICB9KTtcbiAgICBjb25zdCBtb3ZlID0gdXNlTWVtb2l6ZWRGbigoZnJvbSwgdG8pID0+IHtcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoZnJvbSA8IDAgfHwgZnJvbSA+PSBsaXN0Lmxlbmd0aCB8fCB0byA8IDAgfHwgdG8gPj0gbGlzdC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgY29uc3QgW21vdmVkSXRlbV0gPSBuZXdMaXN0LnNwbGljZShmcm9tLCAxKTtcbiAgICAgICAgY29uc3QgW21vdmVkS2V5XSA9IG5ld0tleXMuc3BsaWNlKGZyb20sIDEpO1xuICAgICAgICBuZXdMaXN0LnNwbGljZSh0bywgMCwgbW92ZWRJdGVtKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UodG8sIDAsIG1vdmVkS2V5KTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIHJlbWFwTGlzdE1ldGEoc3RvcmUsIGZ1bGxOYW1lLCAoaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGkgPT09IGZyb20pXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvO1xuICAgICAgICAgICAgaWYgKGZyb20gPCB0bylcbiAgICAgICAgICAgICAgICByZXR1cm4gaSA+IGZyb20gJiYgaSA8PSB0byA/IGkgLSAxIDogaTtcbiAgICAgICAgICAgIHJldHVybiBpID49IHRvICYmIGkgPCBmcm9tID8gaSArIDEgOiBpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXQgPSB1c2VNZW1vaXplZEZuKChpbmRleCkgPT4gbGlzdFtpbmRleF0pO1xuICAgIGNvbnN0IGdldExpc3QgPSB1c2VNZW1vaXplZEZuKCgpID0+IGxpc3QpO1xuICAgIGNvbnN0IGFjdGlvbiA9IHVzZU1lbW8oKCkgPT4gKHsgYWRkLCByZW1vdmU6IHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXQsIGdldExpc3QgfSksIFthZGQsIHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXQsIGdldExpc3RdKTtcbiAgICAvLyBQZXIta2V5IGNhY2hlIGtlZXBzIGVhY2ggcm93J3MgZmllbGQgb2JqZWN0IGlkZW50aXR5IHN0YWJsZSBhY3Jvc3MgbGlzdFxuICAgIC8vIGNvbW1pdHMgKGUuZy4gdHlwaW5nIGluIGEgc2libGluZyByb3cpLCBzbyBtZW1vaXplZCByb3cgY29udGVudCBzZWVzXG4gICAgLy8gc2hhbGxvdy1lcXVhbCBwcm9wcyBhbmQgYmFpbHMgb3V0LlxuICAgIGNvbnN0IGZpZWxkT2JqQ2FjaGUgPSB1c2VSZWYobmV3IE1hcCgpKTtcbiAgICBjb25zdCBtYXBwZWRGaWVsZHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dENhY2hlID0gbmV3IE1hcCgpO1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBsaXN0Lm1hcCgoX2l0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrZXlzUmVmLmN1cnJlbnRbaW5kZXhdIHx8IGBmYWxsYmFja18ke2luZGV4fWA7XG4gICAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBgJHtmdWxsTmFtZX0uJHtpbmRleH1gO1xuICAgICAgICAgICAgY29uc3QgY2FjaGVkID0gZmllbGRPYmpDYWNoZS5jdXJyZW50LmdldChrZXkpO1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBjYWNoZWQgJiYgY2FjaGVkLm5hbWUgPT09IGZpZWxkTmFtZSA/IGNhY2hlZCA6IHsgbmFtZTogZmllbGROYW1lLCBrZXkgfTtcbiAgICAgICAgICAgIG5leHRDYWNoZS5zZXQoa2V5LCBmaWVsZCk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH0pO1xuICAgICAgICBmaWVsZE9iakNhY2hlLmN1cnJlbnQgPSBuZXh0Q2FjaGU7XG4gICAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgfSwgW2xpc3QsIGZ1bGxOYW1lXSk7XG4gICAgLy8gTWVtb2l6ZWQgc28gdGhlIHJvdyBmYWN0b3J5IGlzIHJlLWludm9rZWQgb25seSB3aGVuIHRoZSBsaXN0IGl0c2VsZiAob3JcbiAgICAvLyB0aGUgY29uc3VtZXItcHJvdmlkZWQgY2hpbGRyZW4pIGNoYW5nZXMg4oCUIG5ldmVyIGZvciB1bnJlbGF0ZWQgY29tbWl0cy5cbiAgICBjb25zdCBsaXN0RG9tID0gdXNlTWVtbygoKSA9PiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nID8gY2hpbGRyZW4obWFwcGVkRmllbGRzLCBhY3Rpb24pIDogY2hpbGRyZW4pLCBbY2hpbGRyZW4sIG1hcHBlZEZpZWxkcywgYWN0aW9uXSk7XG4gICAgLy8gQWN0aW9uIGJ1dHRvbnMgcGVyIHJvdyDigJQgTGlzdFJvd0FjdGlvbnMgaXMgdGhlIG1lbW8gYm91bmRhcnlcbiAgICBjb25zdCBhY3Rpb25Sb3dzID0gbGlzdC5tYXAoKHJlY29yZCwgaW5kZXgpID0+IChfanN4KExpc3RSb3dBY3Rpb25zLCB7IGluZGV4OiBpbmRleCwgcmVjb3JkOiByZWNvcmQsIGNhbkFkZDogY2FuQWRkLCBjYW5SZW1vdmU6IGNhblJlbW92ZSwgY29weUljb25Qcm9wczogY29weUljb25Qcm9wcywgZGVsZXRlSWNvblByb3BzOiBkZWxldGVJY29uUHJvcHMsIGFjdGlvbjogYWN0aW9uLCBhY3Rpb25SZW5kZXI6IGFjdGlvblJlbmRlciwgaXRlbVJlbmRlcjogaXRlbVJlbmRlciwgb25Db3B5OiBjb3B5LCBvblJlbW92ZTogcmVtb3ZlQXQgfSwga2V5c1JlZi5jdXJyZW50W2luZGV4XSB8fCBpbmRleCkpKTtcbiAgICAvLyBDcmVhdG9yIGJ1dHRvblxuICAgIGNvbnN0IGhhc0NyZWF0b3IgPSBjcmVhdG9yQnV0dG9uUHJvcHMgIT09IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0b3JDb25maWcgPSBoYXNDcmVhdG9yICYmIHR5cGVvZiBjcmVhdG9yQnV0dG9uUHJvcHMgPT09ICdvYmplY3QnID8gY3JlYXRvckJ1dHRvblByb3BzIDoge307XG4gICAgY29uc3QgY3JlYXRvclBvc2l0aW9uID0gKF9hID0gY3JlYXRvckNvbmZpZyA9PT0gbnVsbCB8fCBjcmVhdG9yQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjcmVhdG9yQ29uZmlnLnBvc2l0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnYm90dG9tJztcbiAgICBjb25zdCBjcmVhdG9yVGV4dCA9IChfYiA9IGNyZWF0b3JDb25maWcgPT09IG51bGwgfHwgY3JlYXRvckNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3JlYXRvckNvbmZpZy50ZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQuYWRkO1xuICAgIGNvbnN0IGNyZWF0b3JCdXR0b24gPSBoYXNDcmVhdG9yID8gKF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY3JlYXRvclBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIGFkZCh7fSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhZGQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgZGlzYWJsZWQ6ICFjYW5BZGQsIGNoaWxkcmVuOiBjcmVhdG9yVGV4dCB9KSkgOiBudWxsO1xuICAgIGNvbnN0IGZvcm1MaXN0Q29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiAoeyBsaXN0TmFtZTogZnVsbE5hbWUgfSksIFtmdWxsTmFtZV0pO1xuICAgIHJldHVybiAoX2pzeChGb3JtTGlzdENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGZvcm1MaXN0Q29udGV4dFZhbHVlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IFtsYWJlbCAmJiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJyksIHNpemU6IFBST0ZPUk1fTElTVF9MQUJFTF9TSVpFLCBjb2xvcjogUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SLCBjaGlsZHJlbjogbGFiZWwgfSksIGNyZWF0b3JQb3NpdGlvbiA9PT0gJ3RvcCcgJiYgY3JlYXRvckJ1dHRvbiwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogbGlzdERvbSB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnYWN0aW9ucycpLCBjaGlsZHJlbjogYWN0aW9uUm93cyB9KSwgY3JlYXRvclBvc2l0aW9uID09PSAnYm90dG9tJyAmJiBjcmVhdG9yQnV0dG9uLCBsaXN0RXJyb3IgJiYgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgc2l6ZTogXCJzbVwiLCBjb2xvcjogXCJkYW5nZXJcIiwgY2hpbGRyZW46IGxpc3RFcnJvciB9KV0gfSkgfSkpO1xufTtcblByb0Zvcm1MaXN0QmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtTGlzdCc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUxpc3QgPSBtZW1vKFByb0Zvcm1MaXN0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtTGlzdDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,7 +1,7 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { SchemaFormProps } from './interface';
3
3
  /** Generic-aware export — keeps `<SchemaForm<MyValues> …>` fully typed. */
4
- export declare const SchemaForm: (<Values = Record<string, unknown>>(props: SchemaFormProps<Values>) => ReactElement | null) & {
4
+ export declare const SchemaForm: (<Values = Record<string, any>, Params = Record<string, any>, FieldParams = any>(props: SchemaFormProps<Values, Params, FieldParams>) => ReactElement | null) & {
5
5
  displayName?: string;
6
6
  };
7
7
  export default SchemaForm;
@@ -47,6 +47,7 @@ function renderColumn(column) {
47
47
  _initialValue = column.initialValue,
48
48
  _renderFormItem = column.renderFormItem,
49
49
  rest = __rest(column, ["title", "dataIndex", "valueType", "fieldProps", "initialValue", "renderFormItem"]);
50
+ var fieldName = String(dataIndex);
50
51
  var Field = (_a = VALUE_TYPE_FIELDS[valueType]) !== null && _a !== void 0 ? _a : VALUE_TYPE_FIELDS.text;
51
52
  var mergedFieldProps = fieldProps;
52
53
  if (valueType === 'digit') {
@@ -58,13 +59,14 @@ function renderColumn(column) {
58
59
  showTime: true
59
60
  }, fieldProps);
60
61
  }
61
- return _jsx(Field, Object.assign({
62
- name: dataIndex,
62
+ var runtimeFieldProps = Object.assign(Object.assign({
63
+ name: fieldName,
63
64
  label: title,
64
65
  fieldProps: mergedFieldProps
65
66
  }, valueType === 'dateTime' ? {
66
67
  valueType: 'dateTime'
67
- } : {}, rest), dataIndex);
68
+ } : {}), rest);
69
+ return _jsx(Field, Object.assign({}, runtimeFieldProps), dataIndex);
68
70
  }
69
71
  var SchemaFormBase = function SchemaFormBase(props) {
70
72
  var columns = props.columns,
@@ -81,7 +83,8 @@ var SchemaFormBase = function SchemaFormBase(props) {
81
83
  var column = _step.value;
82
84
  if (column.initialValue === undefined) continue;
83
85
  hasColumnValue = true;
84
- fromColumns = column.dataIndex.includes('.') ? setNestedValue(fromColumns, column.dataIndex, column.initialValue) : Object.assign(Object.assign({}, fromColumns), _defineProperty({}, column.dataIndex, column.initialValue));
86
+ var fieldName = String(column.dataIndex);
87
+ fromColumns = fieldName.includes('.') ? setNestedValue(fromColumns, fieldName, column.initialValue) : Object.assign(Object.assign({}, fromColumns), _defineProperty({}, fieldName, column.initialValue));
85
88
  }
86
89
  } catch (err) {
87
90
  _iterator.e(err);
@@ -100,4 +103,4 @@ SchemaFormBase.displayName = 'SchemaForm';
100
103
  /** Generic-aware export — keeps `<SchemaForm<MyValues> …>` fully typed. */
101
104
  export var SchemaForm = /*#__PURE__*/memo(SchemaFormBase);
102
105
  export default SchemaForm;
103
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TY2hlbWFGb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1NjaGVtYUZvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwibWVtbyIsInVzZU1lbW8iLCJQcm9Gb3JtIiwiUHJvRm9ybVRleHQiLCJQcm9Gb3JtUGFzc3dvcmQiLCJQcm9Gb3JtVGV4dEFyZWEiLCJQcm9Gb3JtU2VsZWN0IiwiUHJvRm9ybUNoZWNrYm94IiwiUHJvRm9ybUNoZWNrYm94R3JvdXAiLCJQcm9Gb3JtUmFkaW9Hcm91cCIsIlByb0Zvcm1Td2l0Y2giLCJQcm9Gb3JtU2xpZGVyIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJQcm9Gb3JtVXBsb2FkIiwic2V0TmVzdGVkVmFsdWUiLCJWQUxVRV9UWVBFX0ZJRUxEUyIsInRleHQiLCJwYXNzd29yZCIsInRleHRhcmVhIiwiZGlnaXQiLCJzZWxlY3QiLCJjaGVja2JveCIsImNoZWNrYm94R3JvdXAiLCJyYWRpb0dyb3VwIiwic2xpZGVyIiwiZGF0ZSIsImRhdGVUaW1lIiwidXBsb2FkIiwicmVuZGVyQ29sdW1uIiwiY29sdW1uIiwiX2EiLCJyZW5kZXJGb3JtSXRlbSIsImNoaWxkcmVuIiwiZGF0YUluZGV4IiwidGl0bGUiLCJfY29sdW1uJHZhbHVlVHlwZSIsInZhbHVlVHlwZSIsImZpZWxkUHJvcHMiLCJfaW5pdGlhbFZhbHVlIiwiaW5pdGlhbFZhbHVlIiwiX3JlbmRlckZvcm1JdGVtIiwicmVzdCIsIkZpZWxkIiwibWVyZ2VkRmllbGRQcm9wcyIsImFzc2lnbiIsInR5cGUiLCJzaG93VGltZSIsIm5hbWUiLCJsYWJlbCIsIlNjaGVtYUZvcm1CYXNlIiwicHJvcHMiLCJjb2x1bW5zIiwiaW5pdGlhbFZhbHVlcyIsImZvcm1Qcm9wcyIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJmcm9tQ29sdW1ucyIsImhhc0NvbHVtblZhbHVlIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsIm4iLCJkb25lIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJpbmNsdWRlcyIsIl9kZWZpbmVQcm9wZXJ0eSIsImVyciIsImYiLCJtYXAiLCJkaXNwbGF5TmFtZSIsIlNjaGVtYUZvcm0iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFB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RUFBRTFCLE1BQU0sQ0FBQ0ksU0FBUyxFQUFFSixNQUFNLENBQUNVLFlBQVksQ0FBQyxHQUNuRW5ELE1BQUEsQ0FBQXdELE1BQUEsQ0FBQXhELE1BQUEsQ0FBQXdELE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBTVcsV0FBVyxDQUFBLEVBQUFVLGVBQUEsS0FBR3BDLE1BQU0sQ0FBQ0ksU0FBUyxFQUFHSixNQUFNLENBQUNVLFlBQVksQ0FBQSxDQUFFO01BQ2pFO0lBQUMsU0FBQTJCLEdBQUE7TUFBQVQsU0FBQSxDQUFBeEUsQ0FBQSxDQUFBaUYsR0FBQTtJQUFBO01BQUFULFNBQUEsQ0FBQVUsQ0FBQTtJQUFBO0lBQ0QsSUFBSSxDQUFDWCxjQUFjLEVBQUUsT0FBT0osYUFBYTtJQUN6QyxPQUFBaEUsTUFBQSxDQUFBd0QsTUFBQSxDQUFBeEQsTUFBQSxDQUFBd0QsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFZVyxXQUFXLENBQUEsRUFBS0gsYUFBYSxDQUFBO0VBQzNDLENBQUMsRUFBRSxDQUFDRCxPQUFPLEVBQUVDLGFBQWEsQ0FBQyxDQUFDO0VBRTVCLE9BQ0V0RCxJQUFBLENBQUNJLE9BQU8sRUFBQWQsTUFBQSxDQUFBd0QsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLUyxTQUFTLEVBQUE7SUFBRUQsYUFBYSxFQUFFRSxtQkFBbUI7SUFBQXRCLFFBQUEsRUFDdkRtQixPQUFPLENBQUNpQixHQUFHLENBQUN4QyxZQUFZO0VBQUMsQ0FBQSxDQUFBLENBQ2xCO0FBRWQsQ0FBQztBQUVEcUIsY0FBYyxDQUFDb0IsV0FBVyxHQUFHLFlBQVk7QUFFekM7QUFDQSxPQUFPLElBQU1DLFVBQVUsZ0JBQUd0RSxJQUFJLENBQUNpRCxjQUFjLENBRU87QUFFcEQsZUFBZXFCLFVBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1NjaGVtYUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi9Qcm9Gb3JtJztcbmltcG9ydCB7IFByb0Zvcm1UZXh0LCBQcm9Gb3JtUGFzc3dvcmQsIFByb0Zvcm1UZXh0QXJlYSwgUHJvRm9ybVNlbGVjdCwgUHJvRm9ybUNoZWNrYm94LCBQcm9Gb3JtQ2hlY2tib3hHcm91cCwgUHJvRm9ybVJhZGlvR3JvdXAsIFByb0Zvcm1Td2l0Y2gsIFByb0Zvcm1TbGlkZXIsIFByb0Zvcm1EYXRlUGlja2VyLCBQcm9Gb3JtVXBsb2FkLCB9IGZyb20gJy4vZmllbGRzJztcbmltcG9ydCB7IHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyB2YWx1ZVR5cGUg4oaSIFByb0Zvcm0gZmllbGQgY29tcG9uZW50LiBgZGlnaXRgIHJldXNlcyB0aGUgdGV4dCBmaWVsZCB3aXRoIGFcbi8vIG51bWVyaWMgaW5wdXQgdHlwZSAodGhlIGxpYnJhcnkgaGFzIG5vIHN0YW5kYWxvbmUgSW5wdXROdW1iZXIpLlxuY29uc3QgVkFMVUVfVFlQRV9GSUVMRFMgPSB7XG4gICAgdGV4dDogUHJvRm9ybVRleHQsXG4gICAgcGFzc3dvcmQ6IFByb0Zvcm1QYXNzd29yZCxcbiAgICB0ZXh0YXJlYTogUHJvRm9ybVRleHRBcmVhLFxuICAgIGRpZ2l0OiBQcm9Gb3JtVGV4dCxcbiAgICBzZWxlY3Q6IFByb0Zvcm1TZWxlY3QsXG4gICAgY2hlY2tib3g6IFByb0Zvcm1DaGVja2JveCxcbiAgICBjaGVja2JveEdyb3VwOiBQcm9Gb3JtQ2hlY2tib3hHcm91cCxcbiAgICByYWRpb0dyb3VwOiBQcm9Gb3JtUmFkaW9Hcm91cCxcbiAgICBzd2l0Y2g6IFByb0Zvcm1Td2l0Y2gsXG4gICAgc2xpZGVyOiBQcm9Gb3JtU2xpZGVyLFxuICAgIGRhdGU6IFByb0Zvcm1EYXRlUGlja2VyLFxuICAgIGRhdGVUaW1lOiBQcm9Gb3JtRGF0ZVBpY2tlcixcbiAgICB1cGxvYWQ6IFByb0Zvcm1VcGxvYWQsXG59O1xuZnVuY3Rpb24gcmVuZGVyQ29sdW1uKGNvbHVtbikge1xuICAgIHZhciBfYTtcbiAgICBpZiAoY29sdW1uLnJlbmRlckZvcm1JdGVtKSB7XG4gICAgICAgIHJldHVybiBfanN4KEZyYWdtZW50LCB7IGNoaWxkcmVuOiBjb2x1bW4ucmVuZGVyRm9ybUl0ZW0oY29sdW1uKSB9LCBjb2x1bW4uZGF0YUluZGV4KTtcbiAgICB9XG4gICAgY29uc3QgeyB0aXRsZSwgZGF0YUluZGV4LCB2YWx1ZVR5cGUgPSAndGV4dCcsIGZpZWxkUHJvcHMsIGluaXRpYWxWYWx1ZTogX2luaXRpYWxWYWx1ZSwgcmVuZGVyRm9ybUl0ZW06IF9yZW5kZXJGb3JtSXRlbSB9ID0gY29sdW1uLCByZXN0ID0gX19yZXN0KGNvbHVtbiwgW1widGl0bGVcIiwgXCJkYXRhSW5kZXhcIiwgXCJ2YWx1ZVR5cGVcIiwgXCJmaWVsZFByb3BzXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwicmVuZGVyRm9ybUl0ZW1cIl0pO1xuICAgIGNvbnN0IEZpZWxkID0gKF9hID0gVkFMVUVfVFlQRV9GSUVMRFNbdmFsdWVUeXBlXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogVkFMVUVfVFlQRV9GSUVMRFMudGV4dDtcbiAgICBsZXQgbWVyZ2VkRmllbGRQcm9wcyA9IGZpZWxkUHJvcHM7XG4gICAgaWYgKHZhbHVlVHlwZSA9PT0gJ2RpZ2l0Jykge1xuICAgICAgICBtZXJnZWRGaWVsZFByb3BzID0gT2JqZWN0LmFzc2lnbih7IHR5cGU6ICdudW1iZXInIH0sIGZpZWxkUHJvcHMpO1xuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZVR5cGUgPT09ICdkYXRlVGltZScpIHtcbiAgICAgICAgbWVyZ2VkRmllbGRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyBzaG93VGltZTogdHJ1ZSB9LCBmaWVsZFByb3BzKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4KEZpZWxkLCBPYmplY3QuYXNzaWduKHsgbmFtZTogZGF0YUluZGV4LCBsYWJlbDogdGl0bGUsIGZpZWxkUHJvcHM6IG1lcmdlZEZpZWxkUHJvcHMgfSwgKHZhbHVlVHlwZSA9PT0gJ2RhdGVUaW1lJyA/IHsgdmFsdWVUeXBlOiAnZGF0ZVRpbWUnIH0gOiB7fSksIHJlc3QpLCBkYXRhSW5kZXgpKTtcbn1cbmNvbnN0IFNjaGVtYUZvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjb2x1bW5zLCBpbml0aWFsVmFsdWVzIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJjb2x1bW5zXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgLy8gQ29sdW1uLWxldmVsIGluaXRpYWxWYWx1ZSBzZWVkcyB0aGUgZm9ybTsgZm9ybS1sZXZlbCBpbml0aWFsVmFsdWVzIHdpbi5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBmcm9tQ29sdW1ucyA9IHt9O1xuICAgICAgICBsZXQgaGFzQ29sdW1uVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5pbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGhhc0NvbHVtblZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZyb21Db2x1bW5zID0gY29sdW1uLmRhdGFJbmRleC5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShmcm9tQ29sdW1ucywgY29sdW1uLmRhdGFJbmRleCwgY29sdW1uLmluaXRpYWxWYWx1ZSlcbiAgICAgICAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZnJvbUNvbHVtbnMpLCB7IFtjb2x1bW4uZGF0YUluZGV4XTogY29sdW1uLmluaXRpYWxWYWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhhc0NvbHVtblZhbHVlKVxuICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZXM7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZyb21Db2x1bW5zKSwgaW5pdGlhbFZhbHVlcyk7XG4gICAgfSwgW2NvbHVtbnMsIGluaXRpYWxWYWx1ZXNdKTtcbiAgICByZXR1cm4gKF9qc3goUHJvRm9ybSwgT2JqZWN0LmFzc2lnbih7fSwgZm9ybVByb3BzLCB7IGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGNoaWxkcmVuOiBjb2x1bW5zLm1hcChyZW5kZXJDb2x1bW4pIH0pKSk7XG59O1xuU2NoZW1hRm9ybUJhc2UuZGlzcGxheU5hbWUgPSAnU2NoZW1hRm9ybSc7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8U2NoZW1hRm9ybTxNeVZhbHVlcz4g4oCmPmAgZnVsbHkgdHlwZWQuICovXG5leHBvcnQgY29uc3QgU2NoZW1hRm9ybSA9IG1lbW8oU2NoZW1hRm9ybUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgU2NoZW1hRm9ybTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
106
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TY2hlbWFGb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1NjaGVtYUZvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwibWVtbyIsInVzZU1lbW8iLCJQcm9Gb3JtIiwiUHJvRm9ybVRleHQiLCJQcm9Gb3JtUGFzc3dvcmQiLCJQcm9Gb3JtVGV4dEFyZWEiLCJQcm9Gb3JtU2VsZWN0IiwiUHJvRm9ybUNoZWNrYm94IiwiUHJvRm9ybUNoZWNrYm94R3JvdXAiLCJQcm9Gb3JtUmFkaW9Hcm91cCIsIlByb0Zvcm1Td2l0Y2giLCJQcm9Gb3JtU2xpZGVyIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJQcm9Gb3JtVXBsb2FkIiwic2V0TmVzdGVkVmFsdWUiLCJWQUxVRV9UWVBFX0ZJRUxEUyIsInRleHQiLCJwYXNzd29yZCIsInRleHRhcmVhIiwiZGlnaXQiLCJzZWxlY3QiLCJjaGVja2JveCIsImNoZWNrYm94R3JvdXAiLCJyYWRpb0dyb3VwIiwic2xpZGVyIiwiZGF0ZSIsImRhdGVUaW1lIiwidXBsb2FkIiwicmVuZGVyQ29sdW1uIiwiY29sdW1uIiwiX2EiLCJyZW5kZXJGb3JtSXRlbSIsImNoaWxkcmVuIiwiZGF0YUluZGV4IiwidGl0bGUiLCJfY29sdW1uJHZhbHVlVHlwZSIsInZhbHVlVHlwZSIsImZpZWxkUHJvcHMiLCJfaW5pdGlhbFZhbHVlIiwiaW5pdGlhbFZhbHVlIiwiX3JlbmRlckZvcm1JdGVtIiwicmVzdCIsImZpZWxkTmFtZSIsIlN0cmluZyIsIkZpZWxkIiwibWVyZ2VkRmllbGRQcm9wcyIsImFzc2lnbiIsInR5cGUiLCJzaG93VGltZSIsInJ1bnRpbWVGaWVsZFByb3BzIiwibmFtZSIsImxhYmVsIiwiU2NoZW1hRm9ybUJhc2UiLCJwcm9wcyIsImNvbHVtbnMiLCJpbml0aWFsVmFsdWVzIiwiZm9ybVByb3BzIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsImZyb21Db2x1bW5zIiwiaGFzQ29sdW1uVmFsdWUiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwibiIsImRvbmUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImluY2x1ZGVzIiwiX2RlZmluZVByb3BlcnR5IiwiZXJyIiwiZiIsIm1hcCIsImRpc3BsYXlOYW1lIiwiU2NoZW1hRm9ybSJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFD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QVcsR0FBRyxZQUFZO0FBRXpDO0FBQ0EsT0FBTyxJQUFNQyxVQUFVLGdCQUFHekUsSUFBSSxDQUFDb0QsY0FBYyxDQU1PO0FBRXBELGVBQWVxQixVQUFVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9TY2hlbWFGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZyYWdtZW50LCBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4vUHJvRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtVGV4dCwgUHJvRm9ybVBhc3N3b3JkLCBQcm9Gb3JtVGV4dEFyZWEsIFByb0Zvcm1TZWxlY3QsIFByb0Zvcm1DaGVja2JveCwgUHJvRm9ybUNoZWNrYm94R3JvdXAsIFByb0Zvcm1SYWRpb0dyb3VwLCBQcm9Gb3JtU3dpdGNoLCBQcm9Gb3JtU2xpZGVyLCBQcm9Gb3JtRGF0ZVBpY2tlciwgUHJvRm9ybVVwbG9hZCwgfSBmcm9tICcuL2ZpZWxkcyc7XG5pbXBvcnQgeyBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuLy8gdmFsdWVUeXBlIOKGkiBQcm9Gb3JtIGZpZWxkIGNvbXBvbmVudC4gYGRpZ2l0YCByZXVzZXMgdGhlIHRleHQgZmllbGQgd2l0aCBhXG4vLyBudW1lcmljIGlucHV0IHR5cGUgKHRoZSBsaWJyYXJ5IGhhcyBubyBzdGFuZGFsb25lIElucHV0TnVtYmVyKS5cbmNvbnN0IFZBTFVFX1RZUEVfRklFTERTID0ge1xuICAgIHRleHQ6IFByb0Zvcm1UZXh0LFxuICAgIHBhc3N3b3JkOiBQcm9Gb3JtUGFzc3dvcmQsXG4gICAgdGV4dGFyZWE6IFByb0Zvcm1UZXh0QXJlYSxcbiAgICBkaWdpdDogUHJvRm9ybVRleHQsXG4gICAgc2VsZWN0OiBQcm9Gb3JtU2VsZWN0LFxuICAgIGNoZWNrYm94OiBQcm9Gb3JtQ2hlY2tib3gsXG4gICAgY2hlY2tib3hHcm91cDogUHJvRm9ybUNoZWNrYm94R3JvdXAsXG4gICAgcmFkaW9Hcm91cDogUHJvRm9ybVJhZGlvR3JvdXAsXG4gICAgc3dpdGNoOiBQcm9Gb3JtU3dpdGNoLFxuICAgIHNsaWRlcjogUHJvRm9ybVNsaWRlcixcbiAgICBkYXRlOiBQcm9Gb3JtRGF0ZVBpY2tlcixcbiAgICBkYXRlVGltZTogUHJvRm9ybURhdGVQaWNrZXIsXG4gICAgdXBsb2FkOiBQcm9Gb3JtVXBsb2FkLFxufTtcbmZ1bmN0aW9uIHJlbmRlckNvbHVtbihjb2x1bW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKGNvbHVtbi5yZW5kZXJGb3JtSXRlbSkge1xuICAgICAgICByZXR1cm4gX2pzeChGcmFnbWVudCwgeyBjaGlsZHJlbjogY29sdW1uLnJlbmRlckZvcm1JdGVtKGNvbHVtbikgfSwgY29sdW1uLmRhdGFJbmRleCk7XG4gICAgfVxuICAgIGNvbnN0IHsgdGl0bGUsIGRhdGFJbmRleCwgdmFsdWVUeXBlID0gJ3RleHQnLCBmaWVsZFByb3BzLCBpbml0aWFsVmFsdWU6IF9pbml0aWFsVmFsdWUsIHJlbmRlckZvcm1JdGVtOiBfcmVuZGVyRm9ybUl0ZW0gfSA9IGNvbHVtbiwgcmVzdCA9IF9fcmVzdChjb2x1bW4sIFtcInRpdGxlXCIsIFwiZGF0YUluZGV4XCIsIFwidmFsdWVUeXBlXCIsIFwiZmllbGRQcm9wc1wiLCBcImluaXRpYWxWYWx1ZVwiLCBcInJlbmRlckZvcm1JdGVtXCJdKTtcbiAgICBjb25zdCBmaWVsZE5hbWUgPSBTdHJpbmcoZGF0YUluZGV4KTtcbiAgICBjb25zdCBGaWVsZCA9IChfYSA9IFZBTFVFX1RZUEVfRklFTERTW3ZhbHVlVHlwZV0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFZBTFVFX1RZUEVfRklFTERTLnRleHQ7XG4gICAgbGV0IG1lcmdlZEZpZWxkUHJvcHMgPSBmaWVsZFByb3BzO1xuICAgIGlmICh2YWx1ZVR5cGUgPT09ICdkaWdpdCcpIHtcbiAgICAgICAgbWVyZ2VkRmllbGRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyB0eXBlOiAnbnVtYmVyJyB9LCBmaWVsZFByb3BzKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodmFsdWVUeXBlID09PSAnZGF0ZVRpbWUnKSB7XG4gICAgICAgIG1lcmdlZEZpZWxkUHJvcHMgPSBPYmplY3QuYXNzaWduKHsgc2hvd1RpbWU6IHRydWUgfSwgZmllbGRQcm9wcyk7XG4gICAgfVxuICAgIGNvbnN0IHJ1bnRpbWVGaWVsZFByb3BzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgbmFtZTogZmllbGROYW1lLCBsYWJlbDogdGl0bGUsIGZpZWxkUHJvcHM6IG1lcmdlZEZpZWxkUHJvcHMgfSwgKHZhbHVlVHlwZSA9PT0gJ2RhdGVUaW1lJyA/IHsgdmFsdWVUeXBlOiAnZGF0ZVRpbWUnIH0gOiB7fSkpLCByZXN0KTtcbiAgICByZXR1cm4gKF9qc3goRmllbGQsIE9iamVjdC5hc3NpZ24oe30sIHJ1bnRpbWVGaWVsZFByb3BzKSwgZGF0YUluZGV4KSk7XG59XG5jb25zdCBTY2hlbWFGb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY29sdW1ucywgaW5pdGlhbFZhbHVlcyB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiY29sdW1uc1wiLCBcImluaXRpYWxWYWx1ZXNcIl0pO1xuICAgIC8vIENvbHVtbi1sZXZlbCBpbml0aWFsVmFsdWUgc2VlZHMgdGhlIGZvcm07IGZvcm0tbGV2ZWwgaW5pdGlhbFZhbHVlcyB3aW4uXG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgZnJvbUNvbHVtbnMgPSB7fTtcbiAgICAgICAgbGV0IGhhc0NvbHVtblZhbHVlID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgICAgICAgIGlmIChjb2x1bW4uaW5pdGlhbFZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBoYXNDb2x1bW5WYWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBTdHJpbmcoY29sdW1uLmRhdGFJbmRleCk7XG4gICAgICAgICAgICBmcm9tQ29sdW1ucyA9IGZpZWxkTmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShmcm9tQ29sdW1ucywgZmllbGROYW1lLCBjb2x1bW4uaW5pdGlhbFZhbHVlKVxuICAgICAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmcm9tQ29sdW1ucyksIHsgW2ZpZWxkTmFtZV06IGNvbHVtbi5pbml0aWFsVmFsdWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFoYXNDb2x1bW5WYWx1ZSlcbiAgICAgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWVzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmcm9tQ29sdW1ucyksIGluaXRpYWxWYWx1ZXMpO1xuICAgIH0sIFtjb2x1bW5zLCBpbml0aWFsVmFsdWVzXSk7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLCBjaGlsZHJlbjogY29sdW1ucy5tYXAocmVuZGVyQ29sdW1uKSB9KSkpO1xufTtcblNjaGVtYUZvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1NjaGVtYUZvcm0nO1xuLyoqIEdlbmVyaWMtYXdhcmUgZXhwb3J0IOKAlCBrZWVwcyBgPFNjaGVtYUZvcm08TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IFNjaGVtYUZvcm0gPSBtZW1vKFNjaGVtYUZvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFNjaGVtYUZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,9 +1,10 @@
1
1
  import type { FormStore } from './core/formStore';
2
2
  import type { ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, FormListContextValue, ProFormFormInstance } from './interface';
3
- export declare const ProFormStableContext: import("react").Context<ProFormStableContextValue | null>;
3
+ import type { ProFormFieldName, ProFormPathValue } from './core/namePathType';
4
+ export declare const ProFormStableContext: import("react").Context<ProFormStableContextValue<Record<string, any>> | null>;
4
5
  export declare const ProFormStateContext: import("react").Context<FormStore | null>;
5
6
  /** Read ONLY the stable slice (config + dispatchers) — no per-keystroke re-renders. */
6
- export declare const useProFormStable: () => ProFormStableContextValue;
7
+ export declare const useProFormStable: <Values = Record<string, any>>() => ProFormStableContextValue<Values>;
7
8
  /**
8
9
  * Internal: the raw form store (identity-stable — reading it never causes
9
10
  * re-renders by itself). Pair with `useStoreSelector` for fine-grained,
@@ -11,24 +12,24 @@ export declare const useProFormStable: () => ProFormStableContextValue;
11
12
  */
12
13
  export declare const useProFormStore: () => FormStore;
13
14
  /** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
14
- export declare const useProFormState: () => ProFormStateContextValue;
15
+ export declare const useProFormState: <Values = Record<string, any>>() => ProFormStateContextValue<Values>;
15
16
  /**
16
17
  * Read the unified ProForm context (merged form core + ProForm semantics).
17
18
  * Subscribes to BOTH slices — re-renders whenever form values change.
18
19
  * Throws when used outside `<ProForm>`.
19
20
  */
20
- export declare const useProFormContext: () => ProFormContextValue;
21
+ export declare const useProFormContext: <Values = Record<string, any>>() => ProFormContextValue<Values>;
21
22
  /**
22
23
  * Read the ProForm form instance (superset of FormCoreInstance with format helpers).
23
24
  * Subscribes only to the stable slice — does NOT re-render per keystroke.
24
25
  * Pass a `Values` type argument to get a typed instance.
25
26
  */
26
- export declare const useFormInstance: <Values = Record<string, unknown>>() => ProFormFormInstance<Values>;
27
+ export declare const useFormInstance: <Values = Record<string, any>>() => ProFormFormInstance<Values>;
27
28
  export interface UseFormWatch {
28
29
  /** Watch a single field; dot-paths supported (e.g. `"address.city"`). */
29
- (name: string): unknown;
30
+ <Values = Record<string, any>, Name extends ProFormFieldName<Values> = ProFormFieldName<Values>>(name: Name): ProFormPathValue<Values, Name>;
30
31
  /** Watch the whole values object. */
31
- (): Record<string, unknown>;
32
+ <Values = Record<string, any>>(): Values;
32
33
  }
33
34
  /**
34
35
  * Watch a single field or the whole values object. Re-renders whenever the
@@ -85,4 +85,4 @@ FormListContext.displayName = 'FormListContext';
85
85
  export var useFormListContext = function useFormListContext() {
86
86
  return useContext(FormListContext);
87
87
  };
88
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnRleHQuanMiXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwicmVzb2x2ZVZhbHVlIiwidXNlU3RvcmVTZWxlY3RvciIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiT1VUU0lERV9GT1JNX0VSUk9SIiwidXNlUHJvRm9ybVN0YWJsZSIsImN0eCIsIkVycm9yIiwidXNlUHJvRm9ybVN0b3JlIiwic3RvcmUiLCJzZWxlY3RTdGF0ZVNuYXBzaG90Iiwic3RhdGUiLCJ1c2VQcm9Gb3JtU3RhdGUiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsInN0YWJsZSIsIk9iamVjdCIsImFzc2lnbiIsInVzZUZvcm1JbnN0YW5jZSIsImZvcm1JbnN0YW5jZSIsInVzZUZvcm1XYXRjaCIsIm5hbWUiLCJ1bmRlZmluZWQiLCJ2YWx1ZXMiLCJGb3JtTGlzdENvbnRleHQiLCJ1c2VGb3JtTGlzdENvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUMxRCxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9DLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQVVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG9CQUFvQixnQkFBR0wsYUFBYSxDQUFtQyxJQUFJLENBQUM7QUFDekZLLG9CQUFvQixDQUFDQyxXQUFXLEdBQUcsc0JBQXNCO0FBRXpELE9BQU8sSUFBTUMsbUJBQW1CLGdCQUFHUCxhQUFhLENBQW1CLElBQUksQ0FBQztBQUN4RU8sbUJBQW1CLENBQUNELFdBQVcsR0FBRyxxQkFBcUI7QUFFdkQsSUFBTUUsa0JBQWtCLEdBQUcsNkRBQTZEO0FBRXhGO0FBQ0EsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQW1DO0VBQzlELElBQU1DLEdBQUcsR0FBR1QsVUFBVSxDQUFDSSxvQkFBb0IsQ0FBQztFQUM1QyxJQUFJLENBQUNLLEdBQUcsRUFBRTtJQUNSLE1BQU0sSUFBSUMsS0FBSyxDQUFDSCxrQkFBa0IsQ0FBQztFQUNyQztFQUNBLE9BQU9FLEdBQUc7QUFDWixDQUFDO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNBLE9BQU8sSUFBTUUsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQW1CO0VBQzdDLElBQU1DLEtBQUssR0FBR1osVUFBVSxDQUFDTSxtQkFBbUIsQ0FBQztFQUM3QyxJQUFJLENBQUNNLEtBQUssRUFBRTtJQUNWLE1BQU0sSUFBSUYsS0FBSyxDQUFDSCxrQkFBa0IsQ0FBQztFQUNyQztFQUNBLE9BQU9LLEtBQUs7QUFDZCxDQUFDO0FBRUQsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsS0FBcUI7RUFBQSxPQUErQkEsS0FBSztBQUFBO0FBRXRGO0FBQ0EsT0FBTyxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBa0M7RUFDNUQsSUFBTUgsS0FBSyxHQUFHRCxlQUFlLENBQUEsQ0FBRTtFQUMvQjtFQUNBO0VBQ0E7RUFDQSxPQUFPUixnQkFBZ0IsQ0FBQ1MsS0FBSyxFQUFFQyxtQkFBbUIsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBRGlCQSxPQUFPLElBQU1HLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBNkI7RUFDekQsSUFBTUMsTUFBTSxHQUFHVCxnQkFBZ0IsQ0FBQSxDQUFFO0VBQ2pDLElBQU1NLEtBQUssR0FBR0MsZUFBZSxDQUFBLENBQUU7RUFDL0IsT0FBT2QsT0FBTyxDQUFDO0lBQUEsT0FBTWlCLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBTUYsTUFBTSxDQUFBLEVBQUtILEtBQUssQ0FBQTtFQUFBLENBQUcsRUFBRSxDQUFDRyxNQUFNLEVBQUVILEtBQUssQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRDtBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBRGtCQSxPQUFPLElBQU1NLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUF1RTtFQUNqRyxPQUFPWixnQkFBZ0IsQ0FBQSxDQUFFLENBQUNhLFlBQTJDO0FBQ3ZFLENBQUM7QUFTRDtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBRDBCQSxPQUFPLElBQU1DLFlBQVksR0FBa0IsU0FBOUJBLFlBQVlBLENBQW1CQyxJQUFhLEVBQUk7RUFDM0QsSUFBTVgsS0FBSyxHQUFHRCxlQUFlLENBQUEsQ0FBRTtFQUMvQixPQUFPUixnQkFBZ0IsQ0FBQ1MsS0FBSyxFQUFFLFVBQUNFLEtBQUs7SUFBQSxPQUNuQ1MsSUFBSSxLQUFLQyxTQUFTLEdBQUdWLEtBQUssQ0FBQ1csTUFBTSxHQUFHdkIsWUFBWSxDQUFDWSxLQUFLLENBQUNXLE1BQU0sRUFBRUYsSUFBSSxDQUFDO0VBQUEsRUFDckU7QUFDSCxDQUFrQjtBQUVsQjtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1HLGVBQWUsZ0JBQUczQixhQUFhLENBQXVCLENBQUEsQ0FBRSxDQUFDO0FBRXRFMkIsZUFBZSxDQUFDckIsV0FBVyxHQUFHLGlCQUFpQjtBQUUvQyxPQUFPLElBQU1zQixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBO0VBQUEsT0FBK0IzQixVQUFVLENBQUMwQixlQUFlLENBQUM7QUFBQSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3RvciB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGUgUHJvRm9ybSBjb250ZXh0IGlzIFNQTElUIGluIHR3byBzbyB0aGF0IGNvbnN1bWVycyB3aGljaCBvbmx5IG5lZWRcbi8vIGNvbmZpZ3VyYXRpb24gLyBkaXNwYXRjaGVycyAoU3VibWl0dGVyLCBmaWVsZCBmYWN0b3JpZXMpIGRvIG5vdCByZS1yZW5kZXJcbi8vIG9uIGV2ZXJ5IGtleXN0cm9rZTpcbi8vIC0gU3RhYmxlQ29udGV4dDogY29uZmlnICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzIGFuZCBmb3JtIGluc3RhbmNlLlxuLy8gLSBTdGF0ZUNvbnRleHQ6IGhvbGRzIHRoZSBJREVOVElUWS1TVEFCTEUgZm9ybSBzdG9yZSwgbmV2ZXIgYSBzbmFwc2hvdCDigJRcbi8vICAgcGVyLWtleXN0cm9rZSB1cGRhdGVzIHJlYWNoIHN1YnNjcmliZXJzIHRocm91Z2ggc3RvcmUgc3Vic2NyaXB0aW9uc1xuLy8gICAodXNlU3RvcmVTZWxlY3RvciB3aXRoIHBlci1maWVsZCBzZWxlY3RvcnMpLCBub3QgY29udGV4dCBwcm9wYWdhdGlvbi5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1TdGFibGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGFibGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1TdGFibGVDb250ZXh0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtU3RhdGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGF0ZUNvbnRleHQuZGlzcGxheU5hbWUgPSAnUHJvRm9ybVN0YXRlQ29udGV4dCc7XG5jb25zdCBPVVRTSURFX0ZPUk1fRVJST1IgPSAndXNlUHJvRm9ybUNvbnRleHQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIDxQcm9Gb3JtPiBjb21wb25lbnQnO1xuLyoqIFJlYWQgT05MWSB0aGUgc3RhYmxlIHNsaWNlIChjb25maWcgKyBkaXNwYXRjaGVycykg4oCUIG5vIHBlci1rZXlzdHJva2UgcmUtcmVuZGVycy4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RhYmxlID0gKCkgPT4ge1xuICAgIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoUHJvRm9ybVN0YWJsZUNvbnRleHQpO1xuICAgIGlmICghY3R4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gY3R4O1xufTtcbi8qKlxuICogSW50ZXJuYWw6IHRoZSByYXcgZm9ybSBzdG9yZSAoaWRlbnRpdHktc3RhYmxlIOKAlCByZWFkaW5nIGl0IG5ldmVyIGNhdXNlc1xuICogcmUtcmVuZGVycyBieSBpdHNlbGYpLiBQYWlyIHdpdGggYHVzZVN0b3JlU2VsZWN0b3JgIGZvciBmaW5lLWdyYWluZWQsXG4gKiBwZXItZmllbGQgc3Vic2NyaXB0aW9ucy4gVGhyb3dzIHdoZW4gdXNlZCBvdXRzaWRlIGA8UHJvRm9ybT5gLlxuICovXG5leHBvcnQgY29uc3QgdXNlUHJvRm9ybVN0b3JlID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlQ29udGV4dChQcm9Gb3JtU3RhdGVDb250ZXh0KTtcbiAgICBpZiAoIXN0b3JlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gc3RvcmU7XG59O1xuY29uc3Qgc2VsZWN0U3RhdGVTbmFwc2hvdCA9IChzdGF0ZSkgPT4gc3RhdGU7XG4vKiogUmVhZCBPTkxZIHRoZSB2b2xhdGlsZSBzbGljZSAodmFsdWVzL2Vycm9ycy/igKYpIOKAlCByZS1yZW5kZXJzIG9uIGV2ZXJ5IGNoYW5nZS4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RhdGUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VQcm9Gb3JtU3RvcmUoKTtcbiAgICAvLyBTdWJzY3JpYmUgdG8gZXZlcnkgY29tbWl0ICh0aGUgc25hcHNob3QgaWRlbnRpdHkgY2hhbmdlcyBwZXIgY29tbWl0KSDigJRcbiAgICAvLyB0aGF0IGJyb2FkIGdyYW51bGFyaXR5IGlzIHRoaXMgaG9vaydzIGRvY3VtZW50ZWQgY29udHJhY3Q7IGZpbmUtZ3JhaW5lZFxuICAgIC8vIGNvbnN1bWVycyB1c2UgdXNlU3RvcmVTZWxlY3RvciB3aXRoIGEgbmFycm93ZXIgc2VsZWN0b3IgaW5zdGVhZC5cbiAgICByZXR1cm4gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgc2VsZWN0U3RhdGVTbmFwc2hvdCk7XG59O1xuLyoqXG4gKiBSZWFkIHRoZSB1bmlmaWVkIFByb0Zvcm0gY29udGV4dCAobWVyZ2VkIGZvcm0gY29yZSArIFByb0Zvcm0gc2VtYW50aWNzKS5cbiAqIFN1YnNjcmliZXMgdG8gQk9USCBzbGljZXMg4oCUIHJlLXJlbmRlcnMgd2hlbmV2ZXIgZm9ybSB2YWx1ZXMgY2hhbmdlLlxuICogVGhyb3dzIHdoZW4gdXNlZCBvdXRzaWRlIGA8UHJvRm9ybT5gLlxuICovXG5leHBvcnQgY29uc3QgdXNlUHJvRm9ybUNvbnRleHQgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RhYmxlID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0YXRlID0gdXNlUHJvRm9ybVN0YXRlKCk7XG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3RhYmxlKSwgc3RhdGUpKSwgW3N0YWJsZSwgc3RhdGVdKTtcbn07XG4vKipcbiAqIFJlYWQgdGhlIFByb0Zvcm0gZm9ybSBpbnN0YW5jZSAoc3VwZXJzZXQgb2YgRm9ybUNvcmVJbnN0YW5jZSB3aXRoIGZvcm1hdCBoZWxwZXJzKS5cbiAqIFN1YnNjcmliZXMgb25seSB0byB0aGUgc3RhYmxlIHNsaWNlIOKAlCBkb2VzIE5PVCByZS1yZW5kZXIgcGVyIGtleXN0cm9rZS5cbiAqIFBhc3MgYSBgVmFsdWVzYCB0eXBlIGFyZ3VtZW50IHRvIGdldCBhIHR5cGVkIGluc3RhbmNlLlxuICovXG5leHBvcnQgY29uc3QgdXNlRm9ybUluc3RhbmNlID0gKCkgPT4ge1xuICAgIHJldHVybiB1c2VQcm9Gb3JtU3RhYmxlKCkuZm9ybUluc3RhbmNlO1xufTtcbi8qKlxuICogV2F0Y2ggYSBzaW5nbGUgZmllbGQgb3IgdGhlIHdob2xlIHZhbHVlcyBvYmplY3QuIFJlLXJlbmRlcnMgd2hlbmV2ZXIgdGhlXG4gKiBXQVRDSEVEIHZhbHVlIGNoYW5nZXMgKHVucmVsYXRlZCBmaWVsZHMgbm8gbG9uZ2VyIGNhdXNlIHJlLXJlbmRlcnMpLlxuICogTGlnaHRlciBhbHRlcm5hdGl2ZSB0byB0aGUgYFByb0Zvcm0uRGVwZW5kZW5jeWAgcmVuZGVyLXByb3AuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb3JtV2F0Y2ggPSAoKG5hbWUpID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIHJldHVybiB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCAoc3RhdGUpID0+IG5hbWUgPT09IHVuZGVmaW5lZCA/IHN0YXRlLnZhbHVlcyA6IHJlc29sdmVWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpKTtcbn0pO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3JtTGlzdENvbnRleHQg4oCUIHByb3ZpZGVzIGxpc3Qgc2NvcGUgaW5mbyB0byBQcm9Gb3JtRGVwZW5kZW5jeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgY29uc3QgRm9ybUxpc3RDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7fSk7XG5Gb3JtTGlzdENvbnRleHQuZGlzcGxheU5hbWUgPSAnRm9ybUxpc3RDb250ZXh0JztcbmV4cG9ydCBjb25zdCB1c2VGb3JtTGlzdENvbnRleHQgPSAoKSA9PiB1c2VDb250ZXh0KEZvcm1MaXN0Q29udGV4dCk7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
88
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnRleHQuanMiXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwicmVzb2x2ZVZhbHVlIiwidXNlU3RvcmVTZWxlY3RvciIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiT1VUU0lERV9GT1JNX0VSUk9SIiwidXNlUHJvRm9ybVN0YWJsZSIsImN0eCIsIkVycm9yIiwidXNlUHJvRm9ybVN0b3JlIiwic3RvcmUiLCJzZWxlY3RTdGF0ZVNuYXBzaG90Iiwic3RhdGUiLCJ1c2VQcm9Gb3JtU3RhdGUiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsInN0YWJsZSIsIk9iamVjdCIsImFzc2lnbiIsInVzZUZvcm1JbnN0YW5jZSIsImZvcm1JbnN0YW5jZSIsInVzZUZvcm1XYXRjaCIsIm5hbWUiLCJ1bmRlZmluZWQiLCJ2YWx1ZXMiLCJGb3JtTGlzdENvbnRleHQiLCJ1c2VGb3JtTGlzdENvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUMxRCxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9DLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQVduRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG9CQUFvQixnQkFBR0wsYUFBYSxDQUFtQyxJQUFJLENBQUM7QUFDekZLLG9CQUFvQixDQUFDQyxXQUFXLEdBQUcsc0JBQXNCO0FBRXpELE9BQU8sSUFBTUMsbUJBQW1CLGdCQUFHUCxhQUFhLENBQW1CLElBQUksQ0FBQztBQUN4RU8sbUJBQW1CLENBQUNELFdBQVcsR0FBRyxxQkFBcUI7QUFFdkQsSUFBTUUsa0JBQWtCLEdBQUcsNkRBQTZEO0FBRXhGO0FBQ0EsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBRVk7RUFDdkMsSUFBTUMsR0FBRyxHQUFHVCxVQUFVLENBQUNJLG9CQUFvQixDQUFDO0VBQzVDLElBQUksQ0FBQ0ssR0FBRyxFQUFFO0lBQ1IsTUFBTSxJQUFJQyxLQUFLLENBQUNILGtCQUFrQixDQUFDO0VBQ3JDO0VBQ0EsT0FBT0UsR0FBd0M7QUFDakQsQ0FBQztBQUVEO0FDZkE7QUFDQTtBQUNBO0FBQ0E7QURpQkEsT0FBTyxJQUFNRSxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBbUI7RUFDN0MsSUFBTUMsS0FBSyxHQUFHWixVQUFVLENBQUNNLG1CQUFtQixDQUFDO0VBQzdDLElBQUksQ0FBQ00sS0FBSyxFQUFFO0lBQ1YsTUFBTSxJQUFJRixLQUFLLENBQUNILGtCQUFrQixDQUFDO0VBQ3JDO0VBQ0EsT0FBT0ssS0FBSztBQUNkLENBQUM7QUFFRCxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxLQUFxQjtFQUFBLE9BQStCQSxLQUFLO0FBQUE7QUFFdEY7QUFDQSxPQUFPLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUVZO0VBQ3RDLElBQU1ILEtBQUssR0FBR0QsZUFBZSxDQUFBLENBQUU7RUFDL0I7RUFDQTtFQUNBO0VBQ0EsT0FBT1IsZ0JBQWdCLENBQUNTLEtBQUssRUFBRUMsbUJBQW1CLENBQXFDO0FBQ3pGLENBQUM7QUFFRDtBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBRHNCQSxPQUFPLElBQU1HLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFFSztFQUNqQyxJQUFNQyxNQUFNLEdBQUdULGdCQUFnQixDQUFBLENBQVU7RUFDekMsSUFBTU0sS0FBSyxHQUFHQyxlQUFlLENBQUEsQ0FBVTtFQUN2QyxPQUFPZCxPQUFPLENBQUM7SUFBQSxPQUFNaUIsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFNRixNQUFNLENBQUEsRUFBS0gsS0FBSyxDQUFBO0VBQUEsQ0FBRyxFQUFFLENBQUNHLE1BQU0sRUFBRUgsS0FBSyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVEO0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FEeUJBLE9BQU8sSUFBTU0sZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQW1FO0VBQzdGLE9BQU9aLGdCQUFnQixDQUFBLENBQUUsQ0FBQ2EsWUFBMkM7QUFDdkUsQ0FBQztBQWNEO0FDcENBO0FBQ0E7QUFDQTtBQUNBO0FEc0NBLE9BQU8sSUFBTUMsWUFBWSxHQUFrQixTQUE5QkEsWUFBWUEsQ0FBbUJDLElBQWEsRUFBSTtFQUMzRCxJQUFNWCxLQUFLLEdBQUdELGVBQWUsQ0FBQSxDQUFFO0VBQy9CLE9BQU9SLGdCQUFnQixDQUFDUyxLQUFLLEVBQUUsVUFBQ0UsS0FBSztJQUFBLE9BQ25DUyxJQUFJLEtBQUtDLFNBQVMsR0FBR1YsS0FBSyxDQUFDVyxNQUFNLEdBQUd2QixZQUFZLENBQUNZLEtBQUssQ0FBQ1csTUFBTSxFQUFFRixJQUFJLENBQUM7RUFBQSxFQUNyRTtBQUNILENBQWtCO0FBRWxCO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUcsZUFBZSxnQkFBRzNCLGFBQWEsQ0FBdUIsQ0FBQSxDQUFFLENBQUM7QUFFdEUyQixlQUFlLENBQUNyQixXQUFXLEdBQUcsaUJBQWlCO0FBRS9DLE9BQU8sSUFBTXNCLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUE7RUFBQSxPQUErQjNCLFVBQVUsQ0FBQzBCLGVBQWUsQ0FBQztBQUFBIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBQcm9Gb3JtIGNvbnRleHQgaXMgU1BMSVQgaW4gdHdvIHNvIHRoYXQgY29uc3VtZXJzIHdoaWNoIG9ubHkgbmVlZFxuLy8gY29uZmlndXJhdGlvbiAvIGRpc3BhdGNoZXJzIChTdWJtaXR0ZXIsIGZpZWxkIGZhY3RvcmllcykgZG8gbm90IHJlLXJlbmRlclxuLy8gb24gZXZlcnkga2V5c3Ryb2tlOlxuLy8gLSBTdGFibGVDb250ZXh0OiBjb25maWcgKyBpZGVudGl0eS1zdGFibGUgZGlzcGF0Y2hlcnMgYW5kIGZvcm0gaW5zdGFuY2UuXG4vLyAtIFN0YXRlQ29udGV4dDogaG9sZHMgdGhlIElERU5USVRZLVNUQUJMRSBmb3JtIHN0b3JlLCBuZXZlciBhIHNuYXBzaG90IOKAlFxuLy8gICBwZXIta2V5c3Ryb2tlIHVwZGF0ZXMgcmVhY2ggc3Vic2NyaWJlcnMgdGhyb3VnaCBzdG9yZSBzdWJzY3JpcHRpb25zXG4vLyAgICh1c2VTdG9yZVNlbGVjdG9yIHdpdGggcGVyLWZpZWxkIHNlbGVjdG9ycyksIG5vdCBjb250ZXh0IHByb3BhZ2F0aW9uLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgY29uc3QgUHJvRm9ybVN0YWJsZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpO1xuUHJvRm9ybVN0YWJsZUNvbnRleHQuZGlzcGxheU5hbWUgPSAnUHJvRm9ybVN0YWJsZUNvbnRleHQnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1TdGF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpO1xuUHJvRm9ybVN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtU3RhdGVDb250ZXh0JztcbmNvbnN0IE9VVFNJREVfRk9STV9FUlJPUiA9ICd1c2VQcm9Gb3JtQ29udGV4dCBtdXN0IGJlIHVzZWQgd2l0aGluIGEgPFByb0Zvcm0+IGNvbXBvbmVudCc7XG4vKiogUmVhZCBPTkxZIHRoZSBzdGFibGUgc2xpY2UgKGNvbmZpZyArIGRpc3BhdGNoZXJzKSDigJQgbm8gcGVyLWtleXN0cm9rZSByZS1yZW5kZXJzLiAqL1xuZXhwb3J0IGNvbnN0IHVzZVByb0Zvcm1TdGFibGUgPSAoKSA9PiB7XG4gICAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChQcm9Gb3JtU3RhYmxlQ29udGV4dCk7XG4gICAgaWYgKCFjdHgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKE9VVFNJREVfRk9STV9FUlJPUik7XG4gICAgfVxuICAgIHJldHVybiBjdHg7XG59O1xuLyoqXG4gKiBJbnRlcm5hbDogdGhlIHJhdyBmb3JtIHN0b3JlIChpZGVudGl0eS1zdGFibGUg4oCUIHJlYWRpbmcgaXQgbmV2ZXIgY2F1c2VzXG4gKiByZS1yZW5kZXJzIGJ5IGl0c2VsZikuIFBhaXIgd2l0aCBgdXNlU3RvcmVTZWxlY3RvcmAgZm9yIGZpbmUtZ3JhaW5lZCxcbiAqIHBlci1maWVsZCBzdWJzY3JpcHRpb25zLiBUaHJvd3Mgd2hlbiB1c2VkIG91dHNpZGUgYDxQcm9Gb3JtPmAuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RvcmUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VDb250ZXh0KFByb0Zvcm1TdGF0ZUNvbnRleHQpO1xuICAgIGlmICghc3RvcmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKE9VVFNJREVfRk9STV9FUlJPUik7XG4gICAgfVxuICAgIHJldHVybiBzdG9yZTtcbn07XG5jb25zdCBzZWxlY3RTdGF0ZVNuYXBzaG90ID0gKHN0YXRlKSA9PiBzdGF0ZTtcbi8qKiBSZWFkIE9OTFkgdGhlIHZvbGF0aWxlIHNsaWNlICh2YWx1ZXMvZXJyb3JzL+KApikg4oCUIHJlLXJlbmRlcnMgb24gZXZlcnkgY2hhbmdlLiAqL1xuZXhwb3J0IGNvbnN0IHVzZVByb0Zvcm1TdGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFN1YnNjcmliZSB0byBldmVyeSBjb21taXQgKHRoZSBzbmFwc2hvdCBpZGVudGl0eSBjaGFuZ2VzIHBlciBjb21taXQpIOKAlFxuICAgIC8vIHRoYXQgYnJvYWQgZ3JhbnVsYXJpdHkgaXMgdGhpcyBob29rJ3MgZG9jdW1lbnRlZCBjb250cmFjdDsgZmluZS1ncmFpbmVkXG4gICAgLy8gY29uc3VtZXJzIHVzZSB1c2VTdG9yZVNlbGVjdG9yIHdpdGggYSBuYXJyb3dlciBzZWxlY3RvciBpbnN0ZWFkLlxuICAgIHJldHVybiB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCBzZWxlY3RTdGF0ZVNuYXBzaG90KTtcbn07XG4vKipcbiAqIFJlYWQgdGhlIHVuaWZpZWQgUHJvRm9ybSBjb250ZXh0IChtZXJnZWQgZm9ybSBjb3JlICsgUHJvRm9ybSBzZW1hbnRpY3MpLlxuICogU3Vic2NyaWJlcyB0byBCT1RIIHNsaWNlcyDigJQgcmUtcmVuZGVycyB3aGVuZXZlciBmb3JtIHZhbHVlcyBjaGFuZ2UuXG4gKiBUaHJvd3Mgd2hlbiB1c2VkIG91dHNpZGUgYDxQcm9Gb3JtPmAuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtQ29udGV4dCA9ICgpID0+IHtcbiAgICBjb25zdCBzdGFibGUgPSB1c2VQcm9Gb3JtU3RhYmxlKCk7XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VQcm9Gb3JtU3RhdGUoKTtcbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdGFibGUpLCBzdGF0ZSkpLCBbc3RhYmxlLCBzdGF0ZV0pO1xufTtcbi8qKlxuICogUmVhZCB0aGUgUHJvRm9ybSBmb3JtIGluc3RhbmNlIChzdXBlcnNldCBvZiBGb3JtQ29yZUluc3RhbmNlIHdpdGggZm9ybWF0IGhlbHBlcnMpLlxuICogU3Vic2NyaWJlcyBvbmx5IHRvIHRoZSBzdGFibGUgc2xpY2Ug4oCUIGRvZXMgTk9UIHJlLXJlbmRlciBwZXIga2V5c3Ryb2tlLlxuICogUGFzcyBhIGBWYWx1ZXNgIHR5cGUgYXJndW1lbnQgdG8gZ2V0IGEgdHlwZWQgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb3JtSW5zdGFuY2UgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHVzZVByb0Zvcm1TdGFibGUoKS5mb3JtSW5zdGFuY2U7XG59O1xuLyoqXG4gKiBXYXRjaCBhIHNpbmdsZSBmaWVsZCBvciB0aGUgd2hvbGUgdmFsdWVzIG9iamVjdC4gUmUtcmVuZGVycyB3aGVuZXZlciB0aGVcbiAqIFdBVENIRUQgdmFsdWUgY2hhbmdlcyAodW5yZWxhdGVkIGZpZWxkcyBubyBsb25nZXIgY2F1c2UgcmUtcmVuZGVycykuXG4gKiBMaWdodGVyIGFsdGVybmF0aXZlIHRvIHRoZSBgUHJvRm9ybS5EZXBlbmRlbmN5YCByZW5kZXItcHJvcC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUZvcm1XYXRjaCA9ICgobmFtZSkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgcmV0dXJuIHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gbmFtZSA9PT0gdW5kZWZpbmVkID8gc3RhdGUudmFsdWVzIDogcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkpO1xufSk7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZvcm1MaXN0Q29udGV4dCDigJQgcHJvdmlkZXMgbGlzdCBzY29wZSBpbmZvIHRvIFByb0Zvcm1EZXBlbmRlbmN5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBGb3JtTGlzdENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHt9KTtcbkZvcm1MaXN0Q29udGV4dC5kaXNwbGF5TmFtZSA9ICdGb3JtTGlzdENvbnRleHQnO1xuZXhwb3J0IGNvbnN0IHVzZUZvcm1MaXN0Q29udGV4dCA9ICgpID0+IHVzZUNvbnRleHQoRm9ybUxpc3RDb250ZXh0KTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -27,7 +27,7 @@ export declare const FORM_COMPONENT_NAMES: readonly ["Input", "InputNumber", "In
27
27
  * `injectField` cascades the form-level `size` into these as a DEFAULT — an
28
28
  * explicit field-level `size` (own prop or via `fieldProps`) wins. Controls
29
29
  * without a size prop (Checkbox, Switch, Slider, …) must stay off this list:
30
- * an unknown `size` prop could leak onto the DOM element.
30
+ * an any `size` prop could leak onto the DOM element.
31
31
  */
32
32
  export declare const SIZE_AWARE_COMPONENT_NAMES: readonly string[];
33
33
  /**
@@ -31,7 +31,7 @@ export var FORM_COMPONENT_NAMES = ['Input', 'InputNumber', 'InputPassword', 'Inp
31
31
  * `injectField` cascades the form-level `size` into these as a DEFAULT — an
32
32
  * explicit field-level `size` (own prop or via `fieldProps`) wins. Controls
33
33
  * without a size prop (Checkbox, Switch, Slider, …) must stay off this list:
34
- * an unknown `size` prop could leak onto the DOM element.
34
+ * an any `size` prop could leak onto the DOM element.
35
35
  */
36
36
  export var SIZE_AWARE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputAmount', 'InputMask', 'Select', 'Calendar', 'Radio', 'RadioGroup'];
37
37
  /**
@@ -40,4 +40,4 @@ export var SIZE_AWARE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextAre
40
40
  * fallback value.
41
41
  */
42
42
  export var TEXT_LIKE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'TextArea', 'InputNumber'];
43
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyIsIlJVTEVfQ09OVEVYVF9NVVRBVE9SX01FTUJFUlMiLCJGT1JNX0xBQkVMX1NJWkVTIiwibGFyZ2UiLCJzbWFsbCIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0VSUk9SX1NJWkUiLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX1dBUk5JTkdfQ09MT1IiLCJGT1JNX0RFU0NSSVBUSU9OX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9GRUVEQkFDS19TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLElBQU1BLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVU7QUFDckQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxVQUFVLENBQVU7QUFDakQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFVO0FBQ3RELE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQVU7QUFDdkYsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQVU7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHlCQUF5QixHQUFHLENBQ3ZDLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixDQUNYO0FBQ1YsT0FBTyxJQUFNQyw0QkFBNEIsR0FBRyxDQUMxQyxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGFBQWEsQ0FDTDtBQVFWO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZ0JBQWdCLEdBQTBDO0VBQ3JFQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxLQUFLLEVBQUU7QUNUVCxDRFVDO0FBQ0QsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBb0IsU0FBUztBQUMxRCxPQUFPLElBQU1DLGVBQWUsR0FBdUIsSUFBSTtBQUN2RCxPQUFPLElBQU1DLGdCQUFnQixHQUFvQixRQUFRO0FBQ3pELE9BQU8sSUFBTUMsaUJBQWlCLEdBQXVCLElBQUk7QUFDekQsT0FBTyxJQUFNQyxrQkFBa0IsR0FBb0IsU0FBUztBQUM1RCxPQUFPLElBQU1DLHFCQUFxQixHQUF1QixJQUFJO0FBQzdELE9BQU8sSUFBTUMsc0JBQXNCLEdBQW9CLGtCQUFrQjtBQUN6RSxPQUFPLElBQU1DLGtCQUFrQixHQUF1QixJQUFJO0FBQzFELE9BQU8sSUFBTUMsbUJBQW1CLEdBQW9CLGtCQUFrQjtBQUV0RSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLENBQ2xDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxDQUNGO0FBRVY7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURhQSxPQUFPLElBQU1DLDBCQUEwQixHQUFzQixDQUMzRCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsWUFBWSxDQUNiO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNBLE9BQU8sSUFBTUMseUJBQXlCLEdBQXNCLENBQzFELE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsQ0FDZCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBGT1JNX1NJWkVTID0gWydsYXJnZScsICdzbWFsbCddO1xuZXhwb3J0IGNvbnN0IEZPUk1fTEFZT1VUUyA9IFsndmVydGljYWwnXTtcbmV4cG9ydCBjb25zdCBMQUJFTF9BTElHTlMgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9TVEFUVVNFUyA9IFsnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3ZhbGlkYXRpbmcnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9UUklHR0VSUyA9IFsnb25DaGFuZ2UnLCAnb25CbHVyJ107XG4vLyBSdWxlQ29udGV4dCBpbnN0YW5jZSBtZW1iZXJzLCBzcGxpdCBieSBzYWZldHk6IFJFQUQgbWVtYmVycyBhcmUgYXZhaWxhYmxlXG4vLyBpbiBFVkVSWSBydWxlIHJlc29sdXRpb24gKGluY2x1ZGluZyByZW5kZXItcGhhc2UgcmVxdWlyZWQtbWFyayBjaGVja3MpO1xuLy8gTVVUQVRPUiBtZW1iZXJzIGFyZSBoYW5kZWQgb3V0IG9ubHkgZHVyaW5nIHZhbGlkYXRpb24tdGltZSByZXNvbHV0aW9ucy5cbi8vIHVzZUZvcm1JdGVtIChyZW5kZXJTYWZlSW5zdGFuY2UpIGFuZCB0aGUgY29udHJhY3QgdGVzdHMgZGVyaXZlIGZyb20gdGhlc2UuXG5leHBvcnQgY29uc3QgUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyA9IFtcbiAgICAnZ2V0RmllbGRFcnJvcicsXG4gICAgJ2dldEZpZWxkV2FybmluZycsXG4gICAgJ2lzRmllbGRUb3VjaGVkJyxcbiAgICAnaXNGaWVsZFZhbGlkYXRpbmcnLFxuXTtcbmV4cG9ydCBjb25zdCBSVUxFX0NPTlRFWFRfTVVUQVRPUl9NRU1CRVJTID0gW1xuICAgICdzZXRGaWVsZFZhbHVlJyxcbiAgICAnc2V0RmllbGRzVmFsdWUnLFxuICAgICdyZXNldEZpZWxkcycsXG5dO1xuLy8gTGFiZWwgdHlwb2dyYXBoeSBwYWlycyB3aXRoIHRoZSBmaWVsZCBjb250cm9sJ3MgdGV4dCBzaXplIGZvciBlYWNoIGZvcm1cbi8vIHNpemU6IGxhcmdlIGNvbnRyb2wgdGV4dCBpcyBib2R5L2xnICgxNnB4KSDihpIgbGFiZWwgbGc7IHNtYWxsIGlzIGJvZHkvbWRcbi8vICgxNHB4KSDihpIgbGFiZWwgbWQuXG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9TSVpFUyA9IHtcbiAgICBsYXJnZTogJ2xnJyxcbiAgICBzbWFsbDogJ21kJyxcbn07XG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9DT0xPUiA9ICdkZWZhdWx0JztcbmV4cG9ydCBjb25zdCBGT1JNX0VSUk9SX1NJWkUgPSAnc20nO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfQ09MT1IgPSAnZGFuZ2VyJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9XQVJOSU5HX0NPTE9SID0gJ3dhcm5pbmcnO1xuZXhwb3J0IGNvbnN0IEZPUk1fREVTQ1JJUFRJT05fU0laRSA9ICdtZCc7XG5leHBvcnQgY29uc3QgRk9STV9ERVNDUklQVElPTl9DT0xPUiA9ICdkZWZhdWx0LXRlcnRpYXJ5JztcbmV4cG9ydCBjb25zdCBGT1JNX0ZFRURCQUNLX1NJWkUgPSAnc20nO1xuZXhwb3J0IGNvbnN0IEZPUk1fRkVFREJBQ0tfQ09MT1IgPSAnZGVmYXVsdC10ZXJ0aWFyeSc7XG5leHBvcnQgY29uc3QgRk9STV9DT01QT05FTlRfTkFNRVMgPSBbXG4gICAgJ0lucHV0JyxcbiAgICAnSW5wdXROdW1iZXInLFxuICAgICdJbnB1dFBhc3N3b3JkJyxcbiAgICAnSW5wdXRUZXh0QXJlYScsXG4gICAgJ0lucHV0U2VhcmNoJyxcbiAgICAnSW5wdXRPVFAnLFxuICAgICdJbnB1dFRyYWRlJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdTZWxlY3QnLFxuICAgICdCYXNlU2VsZWN0JyxcbiAgICAnRGF0ZVBpY2tlcicsXG4gICAgJ1RpbWVQaWNrZXInLFxuICAgICdDYWxlbmRhcicsXG4gICAgJ0NoZWNrYm94JyxcbiAgICAnQ2hlY2tib3hHcm91cCcsXG4gICAgJ1JhZGlvJyxcbiAgICAnUmFkaW9Hcm91cCcsXG4gICAgJ1N3aXRjaCcsXG4gICAgJ1NsaWRlcicsXG4gICAgJ1RleHRBcmVhJyxcbl07XG4vKipcbiAqIEZvcm0gY29udHJvbHMgdGhhdCBkZWNsYXJlIGEgYHNpemVgIHByb3AgYWNjZXB0aW5nIGAnbGFyZ2UnIHwgJ3NtYWxsJ2AuXG4gKiBgaW5qZWN0RmllbGRgIGNhc2NhZGVzIHRoZSBmb3JtLWxldmVsIGBzaXplYCBpbnRvIHRoZXNlIGFzIGEgREVGQVVMVCDigJQgYW5cbiAqIGV4cGxpY2l0IGZpZWxkLWxldmVsIGBzaXplYCAob3duIHByb3Agb3IgdmlhIGBmaWVsZFByb3BzYCkgd2lucy4gQ29udHJvbHNcbiAqIHdpdGhvdXQgYSBzaXplIHByb3AgKENoZWNrYm94LCBTd2l0Y2gsIFNsaWRlciwg4oCmKSBtdXN0IHN0YXkgb2ZmIHRoaXMgbGlzdDpcbiAqIGFuIHVua25vd24gYHNpemVgIHByb3AgY291bGQgbGVhayBvbnRvIHRoZSBET00gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0QW1vdW50JyxcbiAgICAnSW5wdXRNYXNrJyxcbiAgICAnU2VsZWN0JyxcbiAgICAnQ2FsZW5kYXInLFxuICAgICdSYWRpbycsXG4gICAgJ1JhZGlvR3JvdXAnLFxuXTtcbi8qKlxuICogVGV4dC1saWtlIGZvcm0gY29udHJvbHMgd2hvc2UgZW1wdHkgdmFsdWUgbXVzdCBkZWZhdWx0IHRvICcnIChhIGNvbnRyb2xsZWRcbiAqIHN0cmluZyBpbnB1dCkgcmF0aGVyIHRoYW4gdW5kZWZpbmVkLiBVc2VkIGJ5IGBpbmplY3RGaWVsZGAgdG8gcGljayBhIHNhZmVcbiAqIGZhbGxiYWNrIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dFBhc3N3b3JkJyxcbiAgICAnSW5wdXRUZXh0QXJlYScsXG4gICAgJ0lucHV0U2VhcmNoJyxcbiAgICAnSW5wdXRPVFAnLFxuICAgICdJbnB1dFRyYWRlJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdUZXh0QXJlYScsXG4gICAgJ0lucHV0TnVtYmVyJyxcbl07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyIsIlJVTEVfQ09OVEVYVF9NVVRBVE9SX01FTUJFUlMiLCJGT1JNX0xBQkVMX1NJWkVTIiwibGFyZ2UiLCJzbWFsbCIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0VSUk9SX1NJWkUiLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX1dBUk5JTkdfQ09MT1IiLCJGT1JNX0RFU0NSSVBUSU9OX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9GRUVEQkFDS19TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLElBQU1BLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVU7QUFDckQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxVQUFVLENBQVU7QUFDakQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFVO0FBQ3RELE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQVU7QUFDdkYsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQVU7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHlCQUF5QixHQUFHLENBQ3ZDLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixDQUNYO0FBQ1YsT0FBTyxJQUFNQyw0QkFBNEIsR0FBRyxDQUMxQyxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGFBQWEsQ0FDTDtBQVFWO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZ0JBQWdCLEdBQTBDO0VBQ3JFQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxLQUFLLEVBQUU7QUNUVCxDRFVDO0FBQ0QsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBb0IsU0FBUztBQUMxRCxPQUFPLElBQU1DLGVBQWUsR0FBdUIsSUFBSTtBQUN2RCxPQUFPLElBQU1DLGdCQUFnQixHQUFvQixRQUFRO0FBQ3pELE9BQU8sSUFBTUMsaUJBQWlCLEdBQXVCLElBQUk7QUFDekQsT0FBTyxJQUFNQyxrQkFBa0IsR0FBb0IsU0FBUztBQUM1RCxPQUFPLElBQU1DLHFCQUFxQixHQUF1QixJQUFJO0FBQzdELE9BQU8sSUFBTUMsc0JBQXNCLEdBQW9CLGtCQUFrQjtBQUN6RSxPQUFPLElBQU1DLGtCQUFrQixHQUF1QixJQUFJO0FBQzFELE9BQU8sSUFBTUMsbUJBQW1CLEdBQW9CLGtCQUFrQjtBQUV0RSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLENBQ2xDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxDQUNGO0FBRVY7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURhQSxPQUFPLElBQU1DLDBCQUEwQixHQUFzQixDQUMzRCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsWUFBWSxDQUNiO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNBLE9BQU8sSUFBTUMseUJBQXlCLEdBQXNCLENBQzFELE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsQ0FDZCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBGT1JNX1NJWkVTID0gWydsYXJnZScsICdzbWFsbCddO1xuZXhwb3J0IGNvbnN0IEZPUk1fTEFZT1VUUyA9IFsndmVydGljYWwnXTtcbmV4cG9ydCBjb25zdCBMQUJFTF9BTElHTlMgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9TVEFUVVNFUyA9IFsnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3ZhbGlkYXRpbmcnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9UUklHR0VSUyA9IFsnb25DaGFuZ2UnLCAnb25CbHVyJ107XG4vLyBSdWxlQ29udGV4dCBpbnN0YW5jZSBtZW1iZXJzLCBzcGxpdCBieSBzYWZldHk6IFJFQUQgbWVtYmVycyBhcmUgYXZhaWxhYmxlXG4vLyBpbiBFVkVSWSBydWxlIHJlc29sdXRpb24gKGluY2x1ZGluZyByZW5kZXItcGhhc2UgcmVxdWlyZWQtbWFyayBjaGVja3MpO1xuLy8gTVVUQVRPUiBtZW1iZXJzIGFyZSBoYW5kZWQgb3V0IG9ubHkgZHVyaW5nIHZhbGlkYXRpb24tdGltZSByZXNvbHV0aW9ucy5cbi8vIHVzZUZvcm1JdGVtIChyZW5kZXJTYWZlSW5zdGFuY2UpIGFuZCB0aGUgY29udHJhY3QgdGVzdHMgZGVyaXZlIGZyb20gdGhlc2UuXG5leHBvcnQgY29uc3QgUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyA9IFtcbiAgICAnZ2V0RmllbGRFcnJvcicsXG4gICAgJ2dldEZpZWxkV2FybmluZycsXG4gICAgJ2lzRmllbGRUb3VjaGVkJyxcbiAgICAnaXNGaWVsZFZhbGlkYXRpbmcnLFxuXTtcbmV4cG9ydCBjb25zdCBSVUxFX0NPTlRFWFRfTVVUQVRPUl9NRU1CRVJTID0gW1xuICAgICdzZXRGaWVsZFZhbHVlJyxcbiAgICAnc2V0RmllbGRzVmFsdWUnLFxuICAgICdyZXNldEZpZWxkcycsXG5dO1xuLy8gTGFiZWwgdHlwb2dyYXBoeSBwYWlycyB3aXRoIHRoZSBmaWVsZCBjb250cm9sJ3MgdGV4dCBzaXplIGZvciBlYWNoIGZvcm1cbi8vIHNpemU6IGxhcmdlIGNvbnRyb2wgdGV4dCBpcyBib2R5L2xnICgxNnB4KSDihpIgbGFiZWwgbGc7IHNtYWxsIGlzIGJvZHkvbWRcbi8vICgxNHB4KSDihpIgbGFiZWwgbWQuXG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9TSVpFUyA9IHtcbiAgICBsYXJnZTogJ2xnJyxcbiAgICBzbWFsbDogJ21kJyxcbn07XG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9DT0xPUiA9ICdkZWZhdWx0JztcbmV4cG9ydCBjb25zdCBGT1JNX0VSUk9SX1NJWkUgPSAnc20nO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfQ09MT1IgPSAnZGFuZ2VyJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9XQVJOSU5HX0NPTE9SID0gJ3dhcm5pbmcnO1xuZXhwb3J0IGNvbnN0IEZPUk1fREVTQ1JJUFRJT05fU0laRSA9ICdtZCc7XG5leHBvcnQgY29uc3QgRk9STV9ERVNDUklQVElPTl9DT0xPUiA9ICdkZWZhdWx0LXRlcnRpYXJ5JztcbmV4cG9ydCBjb25zdCBGT1JNX0ZFRURCQUNLX1NJWkUgPSAnc20nO1xuZXhwb3J0IGNvbnN0IEZPUk1fRkVFREJBQ0tfQ09MT1IgPSAnZGVmYXVsdC10ZXJ0aWFyeSc7XG5leHBvcnQgY29uc3QgRk9STV9DT01QT05FTlRfTkFNRVMgPSBbXG4gICAgJ0lucHV0JyxcbiAgICAnSW5wdXROdW1iZXInLFxuICAgICdJbnB1dFBhc3N3b3JkJyxcbiAgICAnSW5wdXRUZXh0QXJlYScsXG4gICAgJ0lucHV0U2VhcmNoJyxcbiAgICAnSW5wdXRPVFAnLFxuICAgICdJbnB1dFRyYWRlJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdTZWxlY3QnLFxuICAgICdCYXNlU2VsZWN0JyxcbiAgICAnRGF0ZVBpY2tlcicsXG4gICAgJ1RpbWVQaWNrZXInLFxuICAgICdDYWxlbmRhcicsXG4gICAgJ0NoZWNrYm94JyxcbiAgICAnQ2hlY2tib3hHcm91cCcsXG4gICAgJ1JhZGlvJyxcbiAgICAnUmFkaW9Hcm91cCcsXG4gICAgJ1N3aXRjaCcsXG4gICAgJ1NsaWRlcicsXG4gICAgJ1RleHRBcmVhJyxcbl07XG4vKipcbiAqIEZvcm0gY29udHJvbHMgdGhhdCBkZWNsYXJlIGEgYHNpemVgIHByb3AgYWNjZXB0aW5nIGAnbGFyZ2UnIHwgJ3NtYWxsJ2AuXG4gKiBgaW5qZWN0RmllbGRgIGNhc2NhZGVzIHRoZSBmb3JtLWxldmVsIGBzaXplYCBpbnRvIHRoZXNlIGFzIGEgREVGQVVMVCDigJQgYW5cbiAqIGV4cGxpY2l0IGZpZWxkLWxldmVsIGBzaXplYCAob3duIHByb3Agb3IgdmlhIGBmaWVsZFByb3BzYCkgd2lucy4gQ29udHJvbHNcbiAqIHdpdGhvdXQgYSBzaXplIHByb3AgKENoZWNrYm94LCBTd2l0Y2gsIFNsaWRlciwg4oCmKSBtdXN0IHN0YXkgb2ZmIHRoaXMgbGlzdDpcbiAqIGFuIGFueSBgc2l6ZWAgcHJvcCBjb3VsZCBsZWFrIG9udG8gdGhlIERPTSBlbGVtZW50LlxuICovXG5leHBvcnQgY29uc3QgU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMgPSBbXG4gICAgJ0lucHV0JyxcbiAgICAnSW5wdXRQYXNzd29yZCcsXG4gICAgJ0lucHV0VGV4dEFyZWEnLFxuICAgICdJbnB1dFNlYXJjaCcsXG4gICAgJ0lucHV0T1RQJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdTZWxlY3QnLFxuICAgICdDYWxlbmRhcicsXG4gICAgJ1JhZGlvJyxcbiAgICAnUmFkaW9Hcm91cCcsXG5dO1xuLyoqXG4gKiBUZXh0LWxpa2UgZm9ybSBjb250cm9scyB3aG9zZSBlbXB0eSB2YWx1ZSBtdXN0IGRlZmF1bHQgdG8gJycgKGEgY29udHJvbGxlZFxuICogc3RyaW5nIGlucHV0KSByYXRoZXIgdGhhbiB1bmRlZmluZWQuIFVzZWQgYnkgYGluamVjdEZpZWxkYCB0byBwaWNrIGEgc2FmZVxuICogZmFsbGJhY2sgdmFsdWUuXG4gKi9cbmV4cG9ydCBjb25zdCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1RleHRBcmVhJyxcbiAgICAnSW5wdXROdW1iZXInLFxuXTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  export interface FormStoreState {
3
- values: Record<string, unknown>;
3
+ values: Record<string, any>;
4
4
  errors: Record<string, ReactNode>;
5
5
  warnings: Record<string, ReactNode>;
6
6
  touched: Record<string, boolean>;
@@ -13,10 +13,10 @@ export interface FormStore {
13
13
  setState: (patch: Partial<FormStoreState>) => void;
14
14
  subscribe: (listener: FormStoreListener) => () => void;
15
15
  }
16
- export declare const createFormStore: (initialValues?: Record<string, unknown>) => FormStore;
16
+ export declare const createFormStore: (initialValues?: Record<string, any>) => FormStore;
17
17
  export declare function useStoreSelector<T>(store: FormStore, selector: (state: FormStoreState) => T, isEqual?: (a: T, b: T) => boolean): T;
18
- export declare const shallowEqualArrays: (a: readonly unknown[], b: readonly unknown[]) => boolean;
19
- export declare const shallowEqualObjects: (a: Record<string, unknown> | undefined, b: Record<string, unknown> | undefined) => boolean;
18
+ export declare const shallowEqualArrays: (a: readonly any[], b: readonly any[]) => boolean;
19
+ export declare const shallowEqualObjects: (a: Record<string, any> | undefined, b: Record<string, any> | undefined) => boolean;
20
20
  /**
21
21
  * Return a referentially-stable version of an (often inline-literal) props
22
22
  * object: the previous reference is kept while the content stays
@@ -117,4 +117,4 @@ export function sameValidationNode(a, b) {
117
117
  return Object.is(aProps[key], bProps[key]);
118
118
  });
119
119
  }
120
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLmpzIl0sIm5hbWVzIjpbImlzVmFsaWRFbGVtZW50IiwidXNlRWZmZWN0IiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZUxhdGVzdCIsImNyZWF0ZUZvcm1TdG9yZSIsImluaXRpYWxWYWx1ZXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJzdGF0ZSIsInZhbHVlcyIsImVycm9ycyIsIndhcm5pbmdzIiwidG91Y2hlZCIsInZhbGlkYXRpbmciLCJsaXN0ZW5lcnMiLCJTZXQiLCJnZXRTdGF0ZSIsInNldFN0YXRlIiwicGF0Y2giLCJPYmplY3QiLCJhc3NpZ24iLCJmb3JFYWNoIiwibGlzdGVuZXIiLCJzdWJzY3JpYmUiLCJhZGQiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic3RvcmUiLCJzZWxlY3RvciIsImlzRXF1YWwiLCJpcyIsIl91c2VSZWR1Y2VyIiwiY291bnQiLCJfdXNlUmVkdWNlcjIiLCJfc2xpY2VkVG9BcnJheSIsImZvcmNlUmVuZGVyIiwic2VsZWN0ZWQiLCJsYXRlc3RSZWYiLCJjaGVja0ZvclVwZGF0ZXMiLCJsYXRlc3QiLCJjdXJyZW50IiwibmV4dCIsInNoYWxsb3dFcXVhbEFycmF5cyIsImEiLCJiIiwiaSIsInNoYWxsb3dFcXVhbE9iamVjdHMiLCJhS2V5cyIsImtleXMiLCJiS2V5cyIsIl9pIiwiX2FLZXlzIiwia2V5IiwidXNlU2hhbGxvd1N0YWJsZSIsInZhbHVlIiwicmVmIiwic2FtZVZhbGlkYXRpb25Ob2RlIiwidHlwZSIsImFQcm9wcyIsInByb3BzIiwiYlByb3BzIiwiZXZlcnkiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxjQUFjLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUVyRSxPQUFPQyxTQUFT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QUFDWSxNQUFNLENBQUM7RUFDakMsSUFBSWIsS0FBSyxDQUFDeEMsTUFBTSxLQUFLMEMsS0FBSyxDQUFDMUMsTUFBTSxFQUFFLE9BQU8sS0FBSztFQUMvQyxPQUFPd0MsS0FBSyxDQUFDYyxLQUFLLENBQUMsVUFBQ1QsR0FBRztJQUFBLE9BQUtoQyxNQUFNLENBQUNVLEVBQUUsQ0FBQzRCLE1BQU0sQ0FBQ04sR0FBRyxDQUFDLEVBQUVRLE1BQU0sQ0FBQ1IsR0FBRyxDQUFDLENBQUM7RUFBQSxFQUFDO0FBQ2xFIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2Zvcm1TdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVkdWNlciwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5leHBvcnQgY29uc3QgY3JlYXRlRm9ybVN0b3JlID0gKGluaXRpYWxWYWx1ZXMgPSB7fSkgPT4ge1xuICAgIGxldCBzdGF0ZSA9IHtcbiAgICAgICAgdmFsdWVzOiBpbml0aWFsVmFsdWVzLFxuICAgICAgICBlcnJvcnM6IHt9LFxuICAgICAgICB3YXJuaW5nczoge30sXG4gICAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgICB2YWxpZGF0aW5nOiB7fSxcbiAgICB9O1xuICAgIGNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXRTdGF0ZTogKCkgPT4gc3RhdGUsXG4gICAgICAgIHNldFN0YXRlOiAocGF0Y2gpID0+IHtcbiAgICAgICAgICAgIHN0YXRlID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSksIHBhdGNoKTtcbiAgICAgICAgICAgIGxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIoKSk7XG4gICAgICAgIH0sXG4gICAgICAgIHN1YnNjcmliZTogKGxpc3RlbmVyKSA9PiB7XG4gICAgICAgICAgICBsaXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzLmRlbGV0ZShsaXN0ZW5lcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH07XG59O1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB1c2VTdG9yZVNlbGVjdG9yIOKAlCBzdWJzY3JpYmUgdG8gYSBzZWxlY3RlZCBzbGljZSBvZiB0aGUgc3RvcmUuXG4vL1xuLy8gVGhlIGNvbXBvbmVudCByZS1yZW5kZXJzIE9OTFkgd2hlbiBgaXNFcXVhbChwcmV2U2VsZWN0ZWQsIG5leHRTZWxlY3RlZClgIGlzXG4vLyBmYWxzZS4gVGhlIHNlbGVjdG9yL2VxdWFsaXR5L3NlbGVjdGVkIHRyaW8gaXMgcmUtY2FwdHVyZWQgaW4gYSByZWYgb24gZXZlcnlcbi8vIHJlbmRlciwgc28gaW5saW5lIHNlbGVjdG9ycyAoY2xvc2luZyBvdmVyIHRoZSBsYXRlc3QgcHJvcHMpIGFyZSBzYWZlLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgc2VsZWN0b3IsIGlzRXF1YWwgPSBPYmplY3QuaXMpIHtcbiAgICBjb25zdCBbLCBmb3JjZVJlbmRlcl0gPSB1c2VSZWR1Y2VyKChjb3VudCkgPT4gY291bnQgKyAxLCAwKTtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHNlbGVjdG9yKHN0b3JlLmdldFN0YXRlKCkpO1xuICAgIGNvbnN0IGxhdGVzdFJlZiA9IHVzZUxhdGVzdCh7IHNlbGVjdG9yLCBpc0VxdWFsLCBzZWxlY3RlZCB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBjaGVja0ZvclVwZGF0ZXMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXRlc3QgPSBsYXRlc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBsYXRlc3Quc2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgICAgICAgICBpZiAoIWxhdGVzdC5pc0VxdWFsKGxhdGVzdC5zZWxlY3RlZCwgbmV4dCkpIHtcbiAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBDYXRjaCBjb21taXRzIHRoYXQgbGFuZGVkIGJldHdlZW4gcmVuZGVyIGFuZCBzdWJzY3JpcHRpb24uXG4gICAgICAgIGNoZWNrRm9yVXBkYXRlcygpO1xuICAgICAgICByZXR1cm4gc3RvcmUuc3Vic2NyaWJlKGNoZWNrRm9yVXBkYXRlcyk7XG4gICAgfSwgW3N0b3JlXSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFcXVhbGl0eSBoZWxwZXJzIGZvciBtdWx0aS12YWx1ZSBzZWxlY3RvcnMgLyBwcm9wcyBzdGFiaWxpemF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBzaGFsbG93RXF1YWxBcnJheXMgPSAoYSwgYikgPT4ge1xuICAgIGlmIChhID09PSBiKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghT2JqZWN0LmlzKGFbaV0sIGJbaV0pKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5leHBvcnQgY29uc3Qgc2hhbGxvd0VxdWFsT2JqZWN0cyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKGEgPT09IGIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmICghYSB8fCAhYilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGFLZXlzID0gT2JqZWN0LmtleXMoYSk7XG4gICAgY29uc3QgYktleXMgPSBPYmplY3Qua2V5cyhiKTtcbiAgICBpZiAoYUtleXMubGVuZ3RoICE9PSBiS2V5cy5sZW5ndGgpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhS2V5cykge1xuICAgICAgICBpZiAoIU9iamVjdC5pcyhhW2tleV0sIGJba2V5XSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbi8qKlxuICogUmV0dXJuIGEgcmVmZXJlbnRpYWxseS1zdGFibGUgdmVyc2lvbiBvZiBhbiAob2Z0ZW4gaW5saW5lLWxpdGVyYWwpIHByb3BzXG4gKiBvYmplY3Q6IHRoZSBwcmV2aW91cyByZWZlcmVuY2UgaXMga2VwdCB3aGlsZSB0aGUgY29udGVudCBzdGF5c1xuICogc2hhbGxvdy1lcXVhbCwgc28gZG93bnN0cmVhbSBtZW1vL2NvbnRleHQgZGVwcyBkb24ndCBjaHVybiBwZXIgcmVuZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2hhbGxvd1N0YWJsZSh2YWx1ZSkge1xuICAgIGNvbnN0IHJlZiA9IHVzZVJlZih2YWx1ZSk7XG4gICAgaWYgKCFzaGFsbG93RXF1YWxPYmplY3RzKHJlZi5jdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZi5jdXJyZW50O1xufVxuLyoqXG4gKiBFcXVhbGl0eSBmb3IgZXJyb3Ivd2FybmluZyBjb250ZW50LiBTdHJpbmdzIGNvbXBhcmUgYnkgdmFsdWU7IGVsZW1lbnRzIGdldFxuICogYSBvbmUtbGV2ZWwgdHlwZS9rZXkvcHJvcHMgY29tcGFyZSBzbyBhIHJlLWNyZWF0ZWQgSlNYIG1lc3NhZ2UgKGZyZXNoXG4gKiBpZGVudGl0eSBldmVyeSByZXNvbHV0aW9uKSBkb2VzIG5vdCBjaHVybiB0aGUgc3RvcmUgd2hlbiBpdHMgY29udGVudCBpc1xuICogdW5jaGFuZ2VkLiBEZWVwbHkgbmVzdGVkIGVsZW1lbnQgY2hpbGRyZW4gc3RpbGwgY291bnQgYXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbWVWYWxpZGF0aW9uTm9kZShhLCBiKSB7XG4gICAgaWYgKE9iamVjdC5pcyhhLCBiKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFpc1ZhbGlkRWxlbWVudChhKSB8fCAhaXNWYWxpZEVsZW1lbnQoYikpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAoYS50eXBlICE9PSBiLnR5cGUgfHwgYS5rZXkgIT09IGIua2V5KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgYVByb3BzID0gYS5wcm9wcztcbiAgICBjb25zdCBiUHJvcHMgPSBiLnByb3BzO1xuICAgIGNvbnN0IGFLZXlzID0gT2JqZWN0LmtleXMoYVByb3BzKTtcbiAgICBjb25zdCBiS2V5cyA9IE9iamVjdC5rZXlzKGJQcm9wcyk7XG4gICAgaWYgKGFLZXlzLmxlbmd0aCAhPT0gYktleXMubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFLZXlzLmV2ZXJ5KChrZXkpID0+IE9iamVjdC5pcyhhUHJvcHNba2V5XSwgYlByb3BzW2tleV0pKTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
120
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLmpzIl0sIm5hbWVzIjpbImlzVmFsaWRFbGVtZW50IiwidXNlRWZmZWN0IiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZUxhdGVzdCIsImNyZWF0ZUZvcm1TdG9yZSIsImluaXRpYWxWYWx1ZXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJzdGF0ZSIsInZhbHVlcyIsImVycm9ycyIsIndhcm5pbmdzIiwidG91Y2hlZCIsInZhbGlkYXRpbmciLCJsaXN0ZW5lcnMiLCJTZXQiLCJnZXRTdGF0ZSIsInNldFN0YXRlIiwicGF0Y2giLCJPYmplY3QiLCJhc3NpZ24iLCJmb3JFYWNoIiwibGlzdGVuZXIiLCJzdWJzY3JpYmUiLCJhZGQiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic3RvcmUiLCJzZWxlY3RvciIsImlzRXF1YWwiLCJpcyIsIl91c2VSZWR1Y2VyIiwiY291bnQiLCJfdXNlUmVkdWNlcjIiLCJfc2xpY2VkVG9BcnJheSIsImZvcmNlUmVuZGVyIiwic2VsZWN0ZWQiLCJsYXRlc3RSZWYiLCJjaGVja0ZvclVwZGF0ZXMiLCJsYXRlc3QiLCJjdXJyZW50IiwibmV4dCIsInNoYWxsb3dFcXVhbEFycmF5cyIsImEiLCJiIiwiaSIsInNoYWxsb3dFcXVhbE9iamVjdHMiLCJhS2V5cyIsImtleXMiLCJiS2V5cyIsIl9pIiwiX2FLZXlzIiwia2V5IiwidXNlU2hhbGxvd1N0YWJsZSIsInZhbHVlIiwicmVmIiwic2FtZVZhbGlkYXRpb25Ob2RlIiwidHlwZSIsImFQcm9wcyIsInByb3BzIiwiYlByb3BzIiwiZXZlcnkiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxjQUFjLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUVyRSxPQUFPQyxTQUFT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QUFDWSxNQUFNLENBQUM7RUFDakMsSUFBSWIsS0FBSyxDQUFDeEMsTUFBTSxLQUFLMEMsS0FBSyxDQUFDMUMsTUFBTSxFQUFFLE9BQU8sS0FBSztFQUMvQyxPQUFPd0MsS0FBSyxDQUFDYyxLQUFLLENBQUMsVUFBQ1QsR0FBRztJQUFBLE9BQUtoQyxNQUFNLENBQUNVLEVBQUUsQ0FBQzRCLE1BQU0sQ0FBQ04sR0FBRyxDQUFDLEVBQUVRLE1BQU0sQ0FBQ1IsR0FBRyxDQUFDLENBQUM7RUFBQSxFQUFDO0FBQ2xFIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2Zvcm1TdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVkdWNlciwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5leHBvcnQgY29uc3QgY3JlYXRlRm9ybVN0b3JlID0gKGluaXRpYWxWYWx1ZXMgPSB7fSkgPT4ge1xuICAgIGxldCBzdGF0ZSA9IHtcbiAgICAgICAgdmFsdWVzOiBpbml0aWFsVmFsdWVzLFxuICAgICAgICBlcnJvcnM6IHt9LFxuICAgICAgICB3YXJuaW5nczoge30sXG4gICAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgICB2YWxpZGF0aW5nOiB7fSxcbiAgICB9O1xuICAgIGNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXRTdGF0ZTogKCkgPT4gc3RhdGUsXG4gICAgICAgIHNldFN0YXRlOiAocGF0Y2gpID0+IHtcbiAgICAgICAgICAgIHN0YXRlID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSksIHBhdGNoKTtcbiAgICAgICAgICAgIGxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIoKSk7XG4gICAgICAgIH0sXG4gICAgICAgIHN1YnNjcmliZTogKGxpc3RlbmVyKSA9PiB7XG4gICAgICAgICAgICBsaXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzLmRlbGV0ZShsaXN0ZW5lcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH07XG59O1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB1c2VTdG9yZVNlbGVjdG9yIOKAlCBzdWJzY3JpYmUgdG8gYSBzZWxlY3RlZCBzbGljZSBvZiB0aGUgc3RvcmUuXG4vL1xuLy8gVGhlIGNvbXBvbmVudCByZS1yZW5kZXJzIE9OTFkgd2hlbiBgaXNFcXVhbChwcmV2U2VsZWN0ZWQsIG5leHRTZWxlY3RlZClgIGlzXG4vLyBmYWxzZS4gVGhlIHNlbGVjdG9yL2VxdWFsaXR5L3NlbGVjdGVkIHRyaW8gaXMgcmUtY2FwdHVyZWQgaW4gYSByZWYgb24gZXZlcnlcbi8vIHJlbmRlciwgc28gaW5saW5lIHNlbGVjdG9ycyAoY2xvc2luZyBvdmVyIHRoZSBsYXRlc3QgcHJvcHMpIGFyZSBzYWZlLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgc2VsZWN0b3IsIGlzRXF1YWwgPSBPYmplY3QuaXMpIHtcbiAgICBjb25zdCBbLCBmb3JjZVJlbmRlcl0gPSB1c2VSZWR1Y2VyKChjb3VudCkgPT4gY291bnQgKyAxLCAwKTtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHNlbGVjdG9yKHN0b3JlLmdldFN0YXRlKCkpO1xuICAgIGNvbnN0IGxhdGVzdFJlZiA9IHVzZUxhdGVzdCh7IHNlbGVjdG9yLCBpc0VxdWFsLCBzZWxlY3RlZCB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBjaGVja0ZvclVwZGF0ZXMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXRlc3QgPSBsYXRlc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBsYXRlc3Quc2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgICAgICAgICBpZiAoIWxhdGVzdC5pc0VxdWFsKGxhdGVzdC5zZWxlY3RlZCwgbmV4dCkpIHtcbiAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBDYXRjaCBjb21taXRzIHRoYXQgbGFuZGVkIGJldHdlZW4gcmVuZGVyIGFuZCBzdWJzY3JpcHRpb24uXG4gICAgICAgIGNoZWNrRm9yVXBkYXRlcygpO1xuICAgICAgICByZXR1cm4gc3RvcmUuc3Vic2NyaWJlKGNoZWNrRm9yVXBkYXRlcyk7XG4gICAgfSwgW3N0b3JlXSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFcXVhbGl0eSBoZWxwZXJzIGZvciBtdWx0aS12YWx1ZSBzZWxlY3RvcnMgLyBwcm9wcyBzdGFiaWxpemF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBzaGFsbG93RXF1YWxBcnJheXMgPSAoYSwgYikgPT4ge1xuICAgIGlmIChhID09PSBiKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghT2JqZWN0LmlzKGFbaV0sIGJbaV0pKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5leHBvcnQgY29uc3Qgc2hhbGxvd0VxdWFsT2JqZWN0cyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKGEgPT09IGIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmICghYSB8fCAhYilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGFLZXlzID0gT2JqZWN0LmtleXMoYSk7XG4gICAgY29uc3QgYktleXMgPSBPYmplY3Qua2V5cyhiKTtcbiAgICBpZiAoYUtleXMubGVuZ3RoICE9PSBiS2V5cy5sZW5ndGgpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhS2V5cykge1xuICAgICAgICBpZiAoIU9iamVjdC5pcyhhW2tleV0sIGJba2V5XSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbi8qKlxuICogUmV0dXJuIGEgcmVmZXJlbnRpYWxseS1zdGFibGUgdmVyc2lvbiBvZiBhbiAob2Z0ZW4gaW5saW5lLWxpdGVyYWwpIHByb3BzXG4gKiBvYmplY3Q6IHRoZSBwcmV2aW91cyByZWZlcmVuY2UgaXMga2VwdCB3aGlsZSB0aGUgY29udGVudCBzdGF5c1xuICogc2hhbGxvdy1lcXVhbCwgc28gZG93bnN0cmVhbSBtZW1vL2NvbnRleHQgZGVwcyBkb24ndCBjaHVybiBwZXIgcmVuZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2hhbGxvd1N0YWJsZSh2YWx1ZSkge1xuICAgIGNvbnN0IHJlZiA9IHVzZVJlZih2YWx1ZSk7XG4gICAgaWYgKCFzaGFsbG93RXF1YWxPYmplY3RzKHJlZi5jdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZi5jdXJyZW50O1xufVxuLyoqXG4gKiBFcXVhbGl0eSBmb3IgZXJyb3Ivd2FybmluZyBjb250ZW50LiBTdHJpbmdzIGNvbXBhcmUgYnkgdmFsdWU7IGVsZW1lbnRzIGdldFxuICogYSBvbmUtbGV2ZWwgdHlwZS9rZXkvcHJvcHMgY29tcGFyZSBzbyBhIHJlLWNyZWF0ZWQgSlNYIG1lc3NhZ2UgKGZyZXNoXG4gKiBpZGVudGl0eSBldmVyeSByZXNvbHV0aW9uKSBkb2VzIG5vdCBjaHVybiB0aGUgc3RvcmUgd2hlbiBpdHMgY29udGVudCBpc1xuICogdW5jaGFuZ2VkLiBEZWVwbHkgbmVzdGVkIGVsZW1lbnQgY2hpbGRyZW4gc3RpbGwgY291bnQgYXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbWVWYWxpZGF0aW9uTm9kZShhLCBiKSB7XG4gICAgaWYgKE9iamVjdC5pcyhhLCBiKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFpc1ZhbGlkRWxlbWVudChhKSB8fCAhaXNWYWxpZEVsZW1lbnQoYikpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAoYS50eXBlICE9PSBiLnR5cGUgfHwgYS5rZXkgIT09IGIua2V5KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgYVByb3BzID0gYS5wcm9wcztcbiAgICBjb25zdCBiUHJvcHMgPSBiLnByb3BzO1xuICAgIGNvbnN0IGFLZXlzID0gT2JqZWN0LmtleXMoYVByb3BzKTtcbiAgICBjb25zdCBiS2V5cyA9IE9iamVjdC5rZXlzKGJQcm9wcyk7XG4gICAgaWYgKGFLZXlzLmxlbmd0aCAhPT0gYktleXMubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFLZXlzLmV2ZXJ5KChrZXkpID0+IE9iamVjdC5pcyhhUHJvcHNba2V5XSwgYlByb3BzW2tleV0pKTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,6 +1,6 @@
1
1
  import type { FormStore } from '../formStore';
2
2
  import type { UseFormConfig, UseFormReturn } from '../interface';
3
- export declare const useForm: (config?: UseFormConfig) => UseFormReturn & {
3
+ export declare const useForm: <Values = Record<string, any>>(config?: UseFormConfig<Values>) => UseFormReturn<Values> & {
4
4
  store: FormStore;
5
5
  };
6
6
  export default useForm;