slate-angular 14.1.3 → 15.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/components/block-card/block-card.component.d.ts +2 -2
  2. package/components/block-card/block-card.component.scss +3 -2
  3. package/components/children/children.component.d.ts +5 -5
  4. package/components/descendant/descendant.component.d.ts +6 -6
  5. package/components/editable/editable.component.d.ts +1 -1
  6. package/components/element/default-element.component.d.ts +1 -1
  7. package/components/element/default-element.component.token.d.ts +3 -3
  8. package/components/element/element.component.d.ts +1 -1
  9. package/components/leaf/default-leaf.component.d.ts +3 -3
  10. package/components/leaf/leaf.component.d.ts +6 -6
  11. package/components/leaves/leaves.component.d.ts +5 -5
  12. package/components/string/default-string.component.d.ts +13 -0
  13. package/components/string/string.component.d.ts +3 -2
  14. package/components/string/template.component.d.ts +1 -2
  15. package/components/text/default-text.component.d.ts +1 -1
  16. package/components/text/void-text.component.d.ts +1 -1
  17. package/esm2020/components/block-card/block-card.component.mjs +10 -10
  18. package/esm2020/components/children/children.component.mjs +24 -21
  19. package/esm2020/components/descendant/descendant.component.mjs +27 -25
  20. package/esm2020/components/editable/editable.component.mjs +135 -55
  21. package/esm2020/components/element/default-element.component.mjs +4 -4
  22. package/esm2020/components/element/default-element.component.token.mjs +2 -2
  23. package/esm2020/components/element/element.component.mjs +4 -4
  24. package/esm2020/components/leaf/default-leaf.component.mjs +7 -7
  25. package/esm2020/components/leaf/leaf.component.mjs +9 -9
  26. package/esm2020/components/leaves/leaves.component.mjs +18 -16
  27. package/esm2020/components/string/default-string.component.mjs +31 -0
  28. package/esm2020/components/string/string.component.mjs +10 -6
  29. package/esm2020/components/string/template.component.mjs +10 -10
  30. package/esm2020/components/text/default-text.component.mjs +4 -4
  31. package/esm2020/components/text/void-text.component.mjs +6 -6
  32. package/esm2020/custom-event/BeforeInputEventPlugin.mjs +1 -1
  33. package/esm2020/custom-event/before-input-polyfill.mjs +2 -2
  34. package/esm2020/module.mjs +25 -10
  35. package/esm2020/plugins/angular-editor.mjs +33 -50
  36. package/esm2020/plugins/with-angular.mjs +11 -8
  37. package/esm2020/public-api.mjs +2 -1
  38. package/esm2020/types/error.mjs +1 -1
  39. package/esm2020/types/feature.mjs +1 -1
  40. package/esm2020/types/view.mjs +1 -1
  41. package/esm2020/utils/block-card.mjs +1 -1
  42. package/esm2020/utils/dom.mjs +4 -8
  43. package/esm2020/utils/environment.mjs +5 -9
  44. package/esm2020/utils/global-normalize.mjs +5 -8
  45. package/esm2020/utils/hotkeys.mjs +1 -1
  46. package/esm2020/utils/index.mjs +1 -1
  47. package/esm2020/utils/lines.mjs +1 -1
  48. package/esm2020/utils/range-list.mjs +1 -1
  49. package/esm2020/utils/restore-dom.mjs +33 -0
  50. package/esm2020/utils/view.mjs +2 -2
  51. package/esm2020/utils/weak-maps.mjs +1 -1
  52. package/esm2020/view/base.mjs +20 -20
  53. package/esm2020/view/before-context-change.mjs +1 -1
  54. package/esm2020/view/container-item.mjs +20 -14
  55. package/esm2020/view/container.mjs +8 -8
  56. package/esm2020/view/context.mjs +1 -1
  57. package/fesm2015/slate-angular.mjs +402 -256
  58. package/fesm2015/slate-angular.mjs.map +1 -1
  59. package/fesm2020/slate-angular.mjs +402 -257
  60. package/fesm2020/slate-angular.mjs.map +1 -1
  61. package/module.d.ts +3 -2
  62. package/package.json +5 -5
  63. package/plugins/angular-editor.d.ts +4 -4
  64. package/public-api.d.ts +1 -0
  65. package/styles/index.scss +3 -4
  66. package/types/error.d.ts +1 -1
  67. package/types/feature.d.ts +1 -1
  68. package/types/index.d.ts +1 -1
  69. package/types/view.d.ts +2 -2
  70. package/utils/block-card.d.ts +1 -1
  71. package/utils/dom.d.ts +4 -4
  72. package/utils/global-normalize.d.ts +1 -1
  73. package/utils/restore-dom.d.ts +2 -0
  74. package/utils/view.d.ts +2 -2
  75. package/view/base.d.ts +8 -8
  76. package/view/container-item.d.ts +6 -6
  77. package/view/container.d.ts +4 -4
  78. package/view/context.d.ts +5 -5
@@ -248,4 +248,4 @@ const BeforeInputEventPlugin = {
248
248
  export class BeforeInputEvent {
249
249
  }
250
250
  export default BeforeInputEventPlugin;
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVmb3JlSW5wdXRFdmVudFBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jdXN0b20tZXZlbnQvQmVmb3JlSW5wdXRFdmVudFBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFDSCxRQUFRLEVBRVIsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2QsU0FBUyxFQUNaLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNILE9BQU8sSUFBSSwrQkFBK0IsRUFFMUMsS0FBSyxJQUFJLDZCQUE2QixFQUN6QyxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE1BQU0sU0FBUyxHQUFZLENBQUMsQ0FBQyxDQUN6QixPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxXQUFXO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUN2RCxDQUFDO0FBR0YsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtBQUNoRSxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFFMUIsTUFBTSxzQkFBc0IsR0FBRyxTQUFTLElBQUksa0JBQWtCLElBQUksTUFBTSxDQUFDO0FBRXpFLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztBQUN4QixJQUFJLFNBQVMsSUFBSSxjQUFjLElBQUksUUFBUSxFQUFFO0lBQ3pDLFlBQVksR0FBSSxRQUFnQixDQUFDLFlBQVksQ0FBQztDQUNqRDtBQUVELG9FQUFvRTtBQUNwRSx1RUFBdUU7QUFDdkUsOEJBQThCO0FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxJQUFJLFdBQVcsSUFBSSxNQUFNLElBQUksQ0FBQyxZ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WUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM3RixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBZ0I7Q0FHNUI7QUFDRCxlQUFlLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIFRPUF9CTFVSLFxuICAgIFRPUF9DT01QT1NJVElPTl9TVEFSVCxcbiAgICBUT1BfQ09NUE9TSVRJT05fRU5ELFxuICAgIFRPUF9DT01QT1NJVElPTl9VUERBVEUsXG4gICAgVE9QX0tFWV9ET1dOLFxuICAgIFRPUF9LRVlfUFJFU1MsXG4gICAgVE9QX0tFWV9VUCxcbiAgICBUT1BfTU9VU0VfRE9XTixcbiAgICBUT1BfVEVYVF9JTlBVVCxcbiAgICBUT1BfUEFTVEVcbn0gZnJvbSAnLi9ET01Ub3BMZXZlbEV2ZW50VHlwZXMnO1xuaW1wb3J0IHtcbiAgICBnZXREYXRhIGFzIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZUdldERhdGEsXG4gICAgaW5pdGlhbGl6ZSBhcyBGYWxsYmFja0NvbXBvc2l0aW9uU3RhdGVJbml0aWFsaXplLFxuICAgIHJlc2V0IGFzIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZVJlc2V0XG59IGZyb20gJy4vRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlJztcblxuY29uc3QgY2FuVXNlRE9NOiBib29sZWFuID0gISEoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2Ygd2luZG93LmRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCdcbik7XG5cblxuY29uc3QgRU5EX0tFWUNPREVTID0gWzksIDEzLCAyNywgMzJdOyAvLyBUYWIsIFJldHVybiwgRXNjLCBTcGFjZVxuY29uc3QgU1RBUlRfS0VZQ09ERSA9IDIyOTtcblxuY29uc3QgY2FuVXNlQ29tcG9zaXRpb25FdmVudCA9IGNhblVzZURPTSAmJiAnQ29tcG9zaXRpb25FdmVudCcgaW4gd2luZG93O1xuXG5sZXQgZG9jdW1lbnRNb2RlID0gbnVsbDtcbmlmIChjYW5Vc2VET00gJiYgJ2RvY3VtZW50TW9kZScgaW4gZG9jdW1lbnQpIHtcbiAgICBkb2N1bWVudE1vZGUgPSAoZG9jdW1lbnQgYXMgYW55KS5kb2N1bWVudE1vZGU7XG59XG5cbi8vIFdlYmtpdCBvZmZlcnMgYSB2ZXJ5IHVzZWZ1bCBgdGV4dElucHV0YCBldmVudCB0aGF0IGNhbiBiZSB1c2VkIHRvXG4vLyBkaXJlY3RseSByZXByZXNlbnQgYGJlZm9yZUlucHV0YC4gVGhlIElFIGB0ZXh0aW5wdXRgIGV2ZW50IGlzIG5vdCBhc1xuLy8gdXNlZnVsLCBzbyB3ZSBkb24ndCB1c2UgaXQuXG5jb25zdCBjYW5Vc2VUZXh0SW5wdXRFdmVudCA9IGNhblVzZURPTSAmJiAnVGV4dEV2ZW50JyBpbiB3aW5kb3cgJiYgIWRvY3VtZW50TW9kZTtcblxuLy8gSW4gSUU5Kywgd2UgaGF2ZSBhY2Nlc3MgdG8gY29tcG9zaXRpb24gZXZlbnRzLCBidXQgdGhlIGRhdGEgc3VwcGxpZWRcbi8vIGJ5IHRoZSBuYXRpdmUgY29tcG9zaXRpb25lbmQgZXZlbnQgbWF5IGJlIGluY29ycmVjdC4gSmFwYW5lc2UgaWRlb2dyYXBoaWNcbi8vIHNwYWNlcywgZm9yIGluc3RhbmNlIChcXHUzMDAwKSBhcmUgbm90IHJlY29yZGVkIGNvcnJlY3RseS5cbmNvbnN0IHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhID0gY2FuVXNlRE9NICYmICghY2FuVXNlQ29tcG9zaXRpb25FdmVudCB8fCAoZG9jdW1lbnRNb2RlICYmIGRvY3VtZW50TW9kZSA+IDggJiYgZG9jdW1lbnRNb2RlIDw9IDExKSk7XG5cbmNvbnN0IFNQQUNFQkFSX0NPREUgPSAzMjtcbmNvbnN0IFNQQUNFQkFSX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFNQQUNFQkFSX0NPREUpO1xuXG4vLyBFdmVudHMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgbmFtZXMuXG5jb25zdCBldmVudFR5cGVzID0ge1xuICAgIGJlZm9yZUlucHV0OiB7XG4gICAgICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICAgICAgICBidWJibGVkOiAnb25CZWZvcmVJbnB1dCcsXG4gICAgICAgICAgICBjYXB0dXJlZDogJ29uQmVmb3JlSW5wdXRDYXB0dXJlJ1xuICAgICAgICB9LFxuICAgICAgICBkZXBlbmRlbmNpZXM6IFtUT1BfQ09NUE9TSVRJT05fRU5ELCBUT1BfS0VZX1BSRVNTLCBUT1BfVEVYVF9JTlBVVCwgVE9QX1BBU1RFXVxuICAgIH1cbn07XG5cbi8vIFRyYWNrIHdoZXRoZXIgd2UndmUgZXZlciBoYW5kbGVkIGEga2V5cHJlc3Mgb24gdGhlIHNwYWNlIGtleS5cbmxldCBoYXNTcGFjZUtleXByZXNzID0gZmFsc2U7XG5cbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgYSBuYXRpdmUga2V5cHJlc3MgZXZlbnQgaXMgYXNzdW1lZCB0byBiZSBhIGNvbW1hbmQuXG4gKiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgRmlyZWZveCBmaXJlcyBga2V5cHJlc3NgIGV2ZW50cyBmb3Iga2V5IGNvbW1hbmRzXG4gKiAoY3V0LCBjb3B5LCBzZWxlY3QtYWxsLCBldGMuKSBldmVuIHRob3VnaCBubyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQuXG4gKi9cbmZ1bmN0aW9uIGlzS2V5cHJlc3NDb21tYW5kKG5hdGl2ZUV2ZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKG5hdGl2ZUV2ZW50LmN0cmxLZXkgfHwgbmF0aXZlRXZlbnQuYWx0S2V5IHx8IG5hdGl2ZUV2ZW50Lm1ldGFLZXkpICYmXG4gICAgICAgIC8vIGN0cmxLZXkgJiYgYWx0S2V5IGlzIGVxdWl2YWxlbnQgdG8gQWx0R3IsIGFuZCBpcyBub3QgYSBjb21tYW5kLlxuICAgICAgICAhKG5hdGl2ZUV2ZW50LmN0cmxLZXkgJiYgbmF0aXZlRXZlbnQuYWx0S2V5KVxuICAgICk7XG59XG5cbi8qKlxuICogRG9lcyBvdXIgZmFsbGJhY2sgbW9kZSB0aGluayB0aGF0IHRoaXMgZXZlbnQgaXMgdGhlIGVuZCBvZiBjb21wb3NpdGlvbj9cbiAqXG4gKi9cbmZ1bmN0aW9uIGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KSB7XG4gICAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICAgICAgY2FzZSBUT1BfS0VZX1VQOlxuICAgICAgICAgICAgLy8gQ29tbWFuZCBrZXlzIGluc2VydCBvciBjbGVhciBJTUUgaW5wdXQuXG4gICAgICAgICAgICByZXR1cm4gRU5EX0tFWUNPREVTLmluZGV4T2YobmF0aXZlRXZlbnQua2V5Q29kZSkgIT09IC0xO1xuICAgICAgICBjYXNlIFRPUF9LRVlfRE9XTjpcbiAgICAgICAgICAgIC8vIEV4cGVjdCBJTUUga2V5Q29kZSBvbiBlYWNoIGtleWRvd24uIElmIHdlIGdldCBhbnkgb3RoZXJcbiAgICAgICAgICAgIC8vIGNvZGUgd2UgbXVzdCBoYXZlIGV4aXRlZCBlYXJsaWVyLlxuICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmtleUNvZGUgIT09IFNUQVJUX0tFWUNPREU7XG4gICAgICAgIGNhc2UgVE9QX0tFWV9QUkVTUzpcbiAgICAgICAgY2FzZSBUT1BfTU9VU0VfRE9XTjpcbiAgICAgICAgY2FzZSBUT1BfQkxVUjpcbiAgICAgICAgICAgIC8vIEV2ZW50cyBhcmUgbm90IHBvc3NpYmxlIHdpdGhvdXQgY2FuY2VsbGluZyBJTUUuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKlxuICogR29vZ2xlIElucHV0IFRvb2xzIHByb3ZpZGVzIGNvbXBvc2l0aW9uIGRhdGEgdmlhIGEgQ3VzdG9tRXZlbnQsXG4gKiB3aXRoIHRoZSBgZGF0YWAgcHJvcGVydHkgcG9wdWxhdGVkIGluIHRoZSBgZGV0YWlsYCBvYmplY3QuIElmIHRoaXNcbiAqIGlzIGF2YWlsYWJsZSBvbiB0aGUgZXZlbnQgb2JqZWN0LCB1c2UgaXQuIElmIG5vdCwgdGhpcyBpcyBhIHBsYWluXG4gKiBjb21wb3NpdGlvbiBldmVudCBhbmQgd2UgaGF2ZSBub3RoaW5nIHNwZWNpYWwgdG8gZXh0cmFjdC5cbiAqXG4gKi9cbmZ1bmN0aW9uIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpIHtcbiAgICBjb25zdCBkZXRhaWwgPSBuYXRpdmVFdmVudC5kZXRhaWw7XG4gICAgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICdkYXRhJyBpbiBkZXRhaWwpIHtcbiAgICAgICAgcmV0dXJuIGRldGFpbC5kYXRhO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGNvbXBvc2l0aW9uIGV2ZW50IHdhcyB0cmlnZ2VyZWQgYnkgS29yZWFuIElNRS5cbiAqIE91ciBmYWxsYmFjayBtb2RlIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIElFJ3MgS29yZWFuIElNRSxcbiAqIHNvIGp1c3QgdXNlIG5hdGl2ZSBjb21wb3NpdGlvbiBldmVudHMgd2hlbiBLb3JlYW4gSU1FIGlzIHVzZWQuXG4gKiBBbHRob3VnaCBDb21wb3NpdGlvbkV2ZW50LmxvY2FsZSBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLFxuICogaXQgaXMgYXZhaWxhYmxlIGluIElFLCB3aGVyZSBvdXIgZmFsbGJhY2sgbW9kZSBpcyBlbmFibGVkLlxuICpcbiAqL1xuZnVuY3Rpb24gaXNVc2luZ0tvcmVhbklNRShuYXRpdmVFdmVudCkge1xuICAgIHJldHVybiBuYXRpdmVFdmVudC5sb2NhbGUgPT09ICdrbyc7XG59XG5cbi8vIFRyYWNrIHRoZSBjdXJyZW50IElNRSBjb21wb3NpdGlvbiBzdGF0dXMsIGlmIGFueS5cbmxldCBpc0NvbXBvc2luZyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKHRvcExldmVsVHlwZTogYW55LCBuYXRpdmVFdmVudCkge1xuICAgIHN3aXRjaCAodG9wTGV2ZWxUeXBlKSB7XG4gICAgICAgIGNhc2UgVE9QX0NPTVBPU0lUSU9OX0VORDpcbiAgICAgICAgICAgIHJldHVybiBnZXREYXRhRnJvbUN1c3RvbUV2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgICAgICAgY2FzZSBUT1BfS0VZX1BSRVNTOlxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRzIGFyZSBhdmFpbGFibGUsIG91ciBnb2FsIGlzIHRvIG1ha2VcbiAgICAgICAgICAgICAqIHVzZSBvZiB0aGVtLiBIb3dldmVyLCB0aGVyZSBpcyBhIHNwZWNpYWwgY2FzZTogdGhlIHNwYWNlYmFyIGtleS5cbiAgICAgICAgICAgICAqIEluIFdlYmtpdCwgcHJldmVudGluZyBkZWZhdWx0IG9uIGEgc3BhY2ViYXIgYHRleHRJbnB1dGAgZXZlbnRcbiAgICAgICAgICAgICAqIGNhbmNlbHMgY2hhcmFjdGVyIGluc2VydGlvbiwgYnV0IGl0ICphbHNvKiBjYXVzZXMgdGhlIGJyb3dzZXJcbiAgICAgICAgICAgICAqIHRvIGZhbGwgYmFjayB0byBpdHMgZGVmYXVsdCBzcGFjZWJhciBiZWhhdmlvciBvZiBzY3JvbGxpbmcgdGhlXG4gICAgICAgICAgICAgKiBwYWdlLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIFRyYWNraW5nIGF0OlxuICAgICAgICAgICAgICogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTM1NTEwM1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIFRvIGF2b2lkIHRoaXMgaXNzdWUsIHVzZSB0aGUga2V5cHJlc3MgZXZlbnQgYXMgaWYgbm8gYHRleHRJbnB1dGBcbiAgICAgICAgICAgICAqIGV2ZW50IGlzIGF2YWlsYWJsZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3Qgd2hpY2ggPSBuYXRpdmVFdmVudC53aGljaDtcbiAgICAgICAgICAgIGlmICh3aGljaCAhPT0gU1BBQ0VCQVJfQ09ERSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoYXNTcGFjZUtleXByZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBTUEFDRUJBUl9DSEFSO1xuXG4gICAgICAgIGNhc2UgVE9QX1RFWFRfSU5QVVQ6XG4gICAgICAgICAgICAvLyBSZWNvcmQgdGhlIGNoYXJhY3RlcnMgdG8gYmUgYWRkZWQgdG8gdGhlIERPTS5cbiAgICAgICAgICAgIGNvbnN0IGNoYXJzID0gbmF0aXZlRXZlbnQuZGF0YTtcblxuICAgICAgICAgICAgLy8gSWYgaXQncyBhIHNwYWNlYmFyIGNoYXJhY3RlciwgYXNzdW1lIHRoYXQgd2UgaGF2ZSBhbHJlYWR5IGhhbmRsZWRcbiAgICAgICAgICAgIC8vIGl0IGF0IHRoZSBrZXlwcmVzcyBsZXZlbCBhbmQgYmFpbCBpbW1lZGlhdGVseS4gQW5kcm9pZCBDaHJvbWVcbiAgICAgICAgICAgIC8vIGRvZXNuJ3QgZ2l2ZSB1cyBrZXljb2Rlcywgc28gd2UgbmVlZCB0byBpZ25vcmUgaXQuXG4gICAgICAgICAgICBpZiAoY2hhcnMgPT09IFNQQUNFQkFSX0NIQVIgJiYgaGFzU3BhY2VLZXlwcmVzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY2hhcnM7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIEZvciBvdGhlciBuYXRpdmUgZXZlbnQgdHlwZXMsIGRvIG5vdGhpbmcuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbi8qKlxuICogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHByb3ZpZGUgdGhlIGB0ZXh0SW5wdXRgIGV2ZW50LCBleHRyYWN0IHRoZVxuICogYXBwcm9wcmlhdGUgc3RyaW5nIHRvIHVzZSBmb3IgU3ludGhldGljSW5wdXRFdmVudC5cbiAqXG4gKi9cbmZ1bmN0aW9uIGdldEZhbGxiYWNrQmVmb3JlSW5wdXRDaGFycyh0b3BMZXZlbFR5cGU6IGFueSwgbmF0aXZlRXZlbnQpIHtcbiAgICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGNvbXBvc2luZyAoSU1FKSBhbmQgdXNpbmcgYSBmYWxsYmFjayB0byBkbyBzbyxcbiAgICAvLyB0cnkgdG8gZXh0cmFjdCB0aGUgY29tcG9zZWQgY2hhcmFjdGVycyBmcm9tIHRoZSBmYWxsYmFjayBvYmplY3QuXG4gICAgLy8gSWYgY29tcG9zaXRpb24gZXZlbnQgaXMgYXZhaWxhYmxlLCB3ZSBleHRyYWN0IGEgc3RyaW5nIG9ubHkgYXRcbiAgICAvLyBjb21wb3NpdGlvbmV2ZW50LCBvdGhlcndpc2UgZXh0cmFjdCBpdCBhdCBmYWxsYmFjayBldmVudHMuXG4gICAgaWYgKGlzQ29tcG9zaW5nKSB7XG4gICAgICAgIGlmICh0b3BMZXZlbFR5cGUgPT09IFRPUF9DT01QT1NJVElPTl9FTkQgfHwgKCFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ICYmIGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYXJzID0gRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlR2V0RGF0YSgpO1xuICAgICAgICAgICAgRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlUmVzZXQoKTtcbiAgICAgICAgICAgIGlzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gY2hhcnM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICAgICAgY2FzZSBUT1BfUEFTVEU6XG4gICAgICAgICAgICAvLyBJZiBhIHBhc3RlIGV2ZW50IG9jY3VycyBhZnRlciBhIGtleXByZXNzLCB0aHJvdyBvdXQgdGhlIGlucHV0XG4gICAgICAgICAgICAvLyBjaGFycy4gUGFzdGUgZXZlbnRzIHNob3VsZCBub3QgbGVhZCB0byBCZWZvcmVJbnB1dCBldmVudHMuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSBUT1BfS0VZX1BSRVNTOlxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBcyBvZiB2MjcsIEZpcmVmb3ggbWF5IGZpcmUga2V5cHJlc3MgZXZlbnRzIGV2ZW4gd2hlbiBubyBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQuIEEgZmV3IHBvc3NpYmlsaXRpZXM6XG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogLSBgd2hpY2hgIGlzIGAwYC4gQXJyb3cga2V5cywgRXNjIGtleSwgZXRjLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIC0gYHdoaWNoYCBpcyB0aGUgcHJlc3NlZCBrZXkgY29kZSwgYnV0IG5vIGNoYXIgaXMgYXZhaWxhYmxlLlxuICAgICAgICAgICAgICogICBFeDogJ0FsdEdyICsgZGAgaW4gUG9saXNoLiBUaGVyZSBpcyBubyBtb2RpZmllZCBjaGFyYWN0ZXIgZm9yXG4gICAgICAgICAgICAgKiAgIHRoaXMga2V5IGNvbWJpbmF0aW9uIGFuZCBubyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQgaW50byB0aGVcbiAgICAgICAgICAgICAqICAgZG9jdW1lbnQsIGJ1dCBGRiBmaXJlcyB0aGUga2V5cHJlc3MgZm9yIGNoYXIgY29kZSBgMTAwYCBhbnl3YXkuXG4gICAgICAgICAgICAgKiAgIE5vIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiAtIGB3aGljaGAgaXMgdGhlIHByZXNzZWQga2V5IGNvZGUsIGJ1dCBhIGNvbW1hbmQgY29tYmluYXRpb24gaXNcbiAgICAgICAgICAgICAqICAgYmVpbmcgdXNlZC4gRXg6IGBDbWQrQ2AuIE5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZCwgYW5kIG5vXG4gICAgICAgICAgICAgKiAgIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCFpc0tleXByZXNzQ29tbWFuZChuYXRpdmVFdmVudCkpIHtcbiAgICAgICAgICAgICAgICAvLyBJRSBmaXJlcyB0aGUgYGtleXByZXNzYCBldmVudCB3aGVuIGEgdXNlciB0eXBlcyBhbiBlbW9qaSB2aWFcbiAgICAgICAgICAgICAgICAvLyBUb3VjaCBrZXlib2FyZCBvZiBXaW5kb3dzLiAgSW4gc3VjaCBhIGNhc2UsIHRoZSBgY2hhcmAgcHJvcGVydHlcbiAgICAgICAgICAgICAgICAvLyBob2xkcyBhbiBlbW9qaSBjaGFyYWN0ZXIgbGlrZSBgXFx1RDgzRFxcdURFMEFgLiAgQmVjYXVzZSBpdHMgbGVuZ3RoXG4gICAgICAgICAgICAgICAgLy8gaXMgMiwgdGhlIHByb3BlcnR5IGB3aGljaGAgZG9lcyBub3QgcmVwcmVzZW50IGFuIGVtb2ppIGNvcnJlY3RseS5cbiAgICAgICAgICAgICAgICAvLyBJbiBzdWNoIGEgY2FzZSwgd2UgZGlyZWN0bHkgcmV0dXJuIHRoZSBgY2hhcmAgcHJvcGVydHkgaW5zdGVhZCBvZlxuICAgICAgICAgICAgICAgIC8vIHVzaW5nIGB3aGljaGAuXG4gICAgICAgICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmNoYXIgJiYgbmF0aXZlRXZlbnQuY2hhci5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuYXRpdmVFdmVudC5jaGFyO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmF0aXZlRXZlbnQud2hpY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobmF0aXZlRXZlbnQud2hpY2gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFRPUF9DT01QT1NJVElPTl9FTkQ6XG4gICAgICAgICAgICByZXR1cm4gdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgIWlzVXNpbmdLb3JlYW5JTUUobmF0aXZlRXZlbnQpID8gbnVsbCA6IG5hdGl2ZUV2ZW50LmRhdGE7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIFN5bnRoZXRpY0lucHV0RXZlbnQgZm9yIGBiZWZvcmVJbnB1dGAsIGJhc2VkIG9uIGVpdGhlciBuYXRpdmVcbiAqIGB0ZXh0SW5wdXRgIG9yIGZhbGxiYWNrIGJlaGF2aW9yLlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCZWZvcmVJbnB1dEV2ZW50KHRvcExldmVsVHlwZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgbGV0IGNoYXJzO1xuXG4gICAgaWYgKGNhblVzZVRleHRJbnB1dEV2ZW50KSB7XG4gICAgICAgIGNoYXJzID0gZ2V0TmF0aXZlQmVmb3JlSW5wdXRDaGFycyh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjaGFycyA9IGdldEZhbGxiYWNrQmVmb3JlSW5wdXRDaGFycyh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBJZiBubyBjaGFyYWN0ZXJzIGFyZSBiZWluZyBpbnNlcnRlZCwgbm8gQmVmb3JlSW5wdXQgZXZlbnQgc2hvdWxkXG4gICAgLy8gYmUgZmlyZWQuXG4gICAgaWYgKCFjaGFycykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBiZWZvcmVJbnB1dEV2ZW50ID0gbmV3IEJlZm9yZUlucHV0RXZlbnQoKTtcbiAgICBiZWZvcmVJbnB1dEV2ZW50LmRhdGEgPSBjaGFycztcbiAgICBiZWZvcmVJbnB1dEV2ZW50Lm5hdGl2ZUV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgcmV0dXJuIGJlZm9yZUlucHV0RXZlbnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGBvbkJlZm9yZUlucHV0YCBldmVudCB0byBtYXRjaFxuICogaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAxMzExMDUvI2V2ZW50cy1pbnB1dGV2ZW50cy5cbiAqXG4gKiBUaGlzIGV2ZW50IHBsdWdpbiBpcyBiYXNlZCBvbiB0aGUgbmF0aXZlIGB0ZXh0SW5wdXRgIGV2ZW50XG4gKiBhdmFpbGFibGUgaW4gQ2hyb21lLCBTYWZhcmksIE9wZXJhLCBhbmQgSUUuIFRoaXMgZXZlbnQgZmlyZXMgYWZ0ZXJcbiAqIGBvbktleVByZXNzYCBhbmQgYG9uQ29tcG9zaXRpb25FbmRgLCBidXQgYmVmb3JlIGBvbklucHV0YC5cbiAqXG4gKiBgYmVmb3JlSW5wdXRgIGlzIHNwZWMnZCBidXQgbm90IGltcGxlbWVudGVkIGluIGFueSBicm93c2VycywgYW5kXG4gKiB0aGUgYGlucHV0YCBldmVudCBkb2VzIG5vdCBwcm92aWRlIGFueSB1c2VmdWwgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBoYXNcbiAqIGFjdHVhbGx5IGJlZW4gYWRkZWQsIGNvbnRyYXJ5IHRvIHRoZSBzcGVjLiBUaHVzLCBgdGV4dElucHV0YCBpcyB0aGUgYmVzdFxuICogYXZhaWxhYmxlIGV2ZW50IHRvIGlkZW50aWZ5IHRoZSBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSBhY3R1YWxseSBiZWVuIGluc2VydGVkXG4gKiBpbnRvIHRoZSB0YXJnZXQgbm9kZS5cbiAqXG4gKiBUaGlzIHBsdWdpbiBpcyBhbHNvIHJlc3BvbnNpYmxlIGZvciBlbWl0dGluZyBgY29tcG9zaXRpb25gIGV2ZW50cywgdGh1c1xuICogYWxsb3dpbmcgdXMgdG8gc2hhcmUgY29tcG9zaXRpb24gZmFsbGJhY2sgY29kZSBmb3IgYm90aCBgYmVmb3JlSW5wdXRgIGFuZFxuICogYGNvbXBvc2l0aW9uYCBldmVudCB0eXBlcy5cbiAqL1xuY29uc3QgQmVmb3JlSW5wdXRFdmVudFBsdWdpbiA9IHtcbiAgICBleHRyYWN0RXZlbnRzOiAodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpID0+IHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RCZWZvcmVJbnB1dEV2ZW50KHRvcExldmVsVHlwZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICB9XG59O1xuXG5leHBvcnQgY2xhc3MgQmVmb3JlSW5wdXRFdmVudCB7XG4gICAgZGF0YTogc3RyaW5nO1xuICAgIG5hdGl2ZUV2ZW50OiBFdmVudDtcbn1cbmV4cG9ydCBkZWZhdWx0IEJlZm9yZUlucHV0RXZlbnRQbHVnaW47XG4iXX0=
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVmb3JlSW5wdXRFdmVudFBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jdXN0b20tZXZlbnQvQmVmb3JlSW5wdXRFdmVudFBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFDSCxRQUFRLEVBRVIsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2QsU0FBUyxFQUNaLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNILE9BQU8sSUFBSSwrQkFBK0IsRUFFMUMsS0FBSyxJQUFJLDZCQUE2QixFQUN6QyxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE1BQU0sU0FBUyxHQUFZLENBQUMsQ0FBQyxDQUN6QixPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxXQUFXO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUN2RCxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtBQUNoRSxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFFMUIsTUFBTSxzQkFBc0IsR0FBRyxTQUFTLElBQUksa0JBQWtCLElBQUksTUFBTSxDQUFDO0FBRXpFLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztBQUN4QixJQUFJLFNBQVMsSUFBSSxjQUFjLElBQUksUUFBUSxFQUFFO0lBQ3pDLFlBQVksR0FBSSxRQUFnQixDQUFDLFlBQVksQ0FBQztDQUNqRDtBQUVELG9FQUFvRTtBQUNwRSx1RUFBdUU7QUFDdkUsOEJBQThCO0FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxJQUFJLFdBQVcsSUFBSSxNQUFNLElBQUksQ0FBQyxZ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WUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM3RixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBZ0I7Q0FHNUI7QUFDRCxlQUFlLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIFRPUF9CTFVSLFxuICAgIFRPUF9DT01QT1NJVElPTl9TVEFSVCxcbiAgICBUT1BfQ09NUE9TSVRJT05fRU5ELFxuICAgIFRPUF9DT01QT1NJVElPTl9VUERBVEUsXG4gICAgVE9QX0tFWV9ET1dOLFxuICAgIFRPUF9LRVlfUFJFU1MsXG4gICAgVE9QX0tFWV9VUCxcbiAgICBUT1BfTU9VU0VfRE9XTixcbiAgICBUT1BfVEVYVF9JTlBVVCxcbiAgICBUT1BfUEFTVEVcbn0gZnJvbSAnLi9ET01Ub3BMZXZlbEV2ZW50VHlwZXMnO1xuaW1wb3J0IHtcbiAgICBnZXREYXRhIGFzIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZUdldERhdGEsXG4gICAgaW5pdGlhbGl6ZSBhcyBGYWxsYmFja0NvbXBvc2l0aW9uU3RhdGVJbml0aWFsaXplLFxuICAgIHJlc2V0IGFzIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZVJlc2V0XG59IGZyb20gJy4vRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlJztcblxuY29uc3QgY2FuVXNlRE9NOiBib29sZWFuID0gISEoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2Ygd2luZG93LmRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCdcbik7XG5cbmNvbnN0IEVORF9LRVlDT0RFUyA9IFs5LCAxMywgMjcsIDMyXTsgLy8gVGFiLCBSZXR1cm4sIEVzYywgU3BhY2VcbmNvbnN0IFNUQVJUX0tFWUNPREUgPSAyMjk7XG5cbmNvbnN0IGNhblVzZUNvbXBvc2l0aW9uRXZlbnQgPSBjYW5Vc2VET00gJiYgJ0NvbXBvc2l0aW9uRXZlbnQnIGluIHdpbmRvdztcblxubGV0IGRvY3VtZW50TW9kZSA9IG51bGw7XG5pZiAoY2FuVXNlRE9NICYmICdkb2N1bWVudE1vZGUnIGluIGRvY3VtZW50KSB7XG4gICAgZG9jdW1lbnRNb2RlID0gKGRvY3VtZW50IGFzIGFueSkuZG9jdW1lbnRNb2RlO1xufVxuXG4vLyBXZWJraXQgb2ZmZXJzIGEgdmVyeSB1c2VmdWwgYHRleHRJbnB1dGAgZXZlbnQgdGhhdCBjYW4gYmUgdXNlZCB0b1xuLy8gZGlyZWN0bHkgcmVwcmVzZW50IGBiZWZvcmVJbnB1dGAuIFRoZSBJRSBgdGV4dGlucHV0YCBldmVudCBpcyBub3QgYXNcbi8vIHVzZWZ1bCwgc28gd2UgZG9uJ3QgdXNlIGl0LlxuY29uc3QgY2FuVXNlVGV4dElucHV0RXZlbnQgPSBjYW5Vc2VET00gJiYgJ1RleHRFdmVudCcgaW4gd2luZG93ICYmICFkb2N1bWVudE1vZGU7XG5cbi8vIEluIElFOSssIHdlIGhhdmUgYWNjZXNzIHRvIGNvbXBvc2l0aW9uIGV2ZW50cywgYnV0IHRoZSBkYXRhIHN1cHBsaWVkXG4vLyBieSB0aGUgbmF0aXZlIGNvbXBvc2l0aW9uZW5kIGV2ZW50IG1heSBiZSBpbmNvcnJlY3QuIEphcGFuZXNlIGlkZW9ncmFwaGljXG4vLyBzcGFjZXMsIGZvciBpbnN0YW5jZSAoXFx1MzAwMCkgYXJlIG5vdCByZWNvcmRlZCBjb3JyZWN0bHkuXG5jb25zdCB1c2VGYWxsYmFja0NvbXBvc2l0aW9uRGF0YSA9IGNhblVzZURPTSAmJiAoIWNhblVzZUNvbXBvc2l0aW9uRXZlbnQgfHwgKGRvY3VtZW50TW9kZSAmJiBkb2N1bWVudE1vZGUgPiA4ICYmIGRvY3VtZW50TW9kZSA8PSAxMSkpO1xuXG5jb25zdCBTUEFDRUJBUl9DT0RFID0gMzI7XG5jb25zdCBTUEFDRUJBUl9DSEFSID0gU3RyaW5nLmZyb21DaGFyQ29kZShTUEFDRUJBUl9DT0RFKTtcblxuLy8gRXZlbnRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHByb3BlcnR5IG5hbWVzLlxuY29uc3QgZXZlbnRUeXBlcyA9IHtcbiAgICBiZWZvcmVJbnB1dDoge1xuICAgICAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgICAgICAgYnViYmxlZDogJ29uQmVmb3JlSW5wdXQnLFxuICAgICAgICAgICAgY2FwdHVyZWQ6ICdvbkJlZm9yZUlucHV0Q2FwdHVyZSdcbiAgICAgICAgfSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBbVE9QX0NPTVBPU0lUSU9OX0VORCwgVE9QX0tFWV9QUkVTUywgVE9QX1RFWFRfSU5QVVQsIFRPUF9QQVNURV1cbiAgICB9XG59O1xuXG4vLyBUcmFjayB3aGV0aGVyIHdlJ3ZlIGV2ZXIgaGFuZGxlZCBhIGtleXByZXNzIG9uIHRoZSBzcGFjZSBrZXkuXG5sZXQgaGFzU3BhY2VLZXlwcmVzcyA9IGZhbHNlO1xuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIGEgbmF0aXZlIGtleXByZXNzIGV2ZW50IGlzIGFzc3VtZWQgdG8gYmUgYSBjb21tYW5kLlxuICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEZpcmVmb3ggZmlyZXMgYGtleXByZXNzYCBldmVudHMgZm9yIGtleSBjb21tYW5kc1xuICogKGN1dCwgY29weSwgc2VsZWN0LWFsbCwgZXRjLikgZXZlbiB0aG91Z2ggbm8gY2hhcmFjdGVyIGlzIGluc2VydGVkLlxuICovXG5mdW5jdGlvbiBpc0tleXByZXNzQ29tbWFuZChuYXRpdmVFdmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICAgIChuYXRpdmVFdmVudC5jdHJsS2V5IHx8IG5hdGl2ZUV2ZW50LmFsdEtleSB8fCBuYXRpdmVFdmVudC5tZXRhS2V5KSAmJlxuICAgICAgICAvLyBjdHJsS2V5ICYmIGFsdEtleSBpcyBlcXVpdmFsZW50IHRvIEFsdEdyLCBhbmQgaXMgbm90IGEgY29tbWFuZC5cbiAgICAgICAgIShuYXRpdmVFdmVudC5jdHJsS2V5ICYmIG5hdGl2ZUV2ZW50LmFsdEtleSlcbiAgICApO1xufVxuXG4vKipcbiAqIERvZXMgb3VyIGZhbGxiYWNrIG1vZGUgdGhpbmsgdGhhdCB0aGlzIGV2ZW50IGlzIHRoZSBlbmQgb2YgY29tcG9zaXRpb24/XG4gKlxuICovXG5mdW5jdGlvbiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQodG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCkge1xuICAgIHN3aXRjaCAodG9wTGV2ZWxUeXBlKSB7XG4gICAgICAgIGNhc2UgVE9QX0tFWV9VUDpcbiAgICAgICAgICAgIC8vIENvbW1hbmQga2V5cyBpbnNlcnQgb3IgY2xlYXIgSU1FIGlucHV0LlxuICAgICAgICAgICAgcmV0dXJuIEVORF9LRVlDT0RFUy5pbmRleE9mKG5hdGl2ZUV2ZW50LmtleUNvZGUpICE9PSAtMTtcbiAgICAgICAgY2FzZSBUT1BfS0VZX0RPV046XG4gICAgICAgICAgICAvLyBFeHBlY3QgSU1FIGtleUNvZGUgb24gZWFjaCBrZXlkb3duLiBJZiB3ZSBnZXQgYW55IG90aGVyXG4gICAgICAgICAgICAvLyBjb2RlIHdlIG11c3QgaGF2ZSBleGl0ZWQgZWFybGllci5cbiAgICAgICAgICAgIHJldHVybiBuYXRpdmVFdmVudC5rZXlDb2RlICE9PSBTVEFSVF9LRVlDT0RFO1xuICAgICAgICBjYXNlIFRPUF9LRVlfUFJFU1M6XG4gICAgICAgIGNhc2UgVE9QX01PVVNFX0RPV046XG4gICAgICAgIGNhc2UgVE9QX0JMVVI6XG4gICAgICAgICAgICAvLyBFdmVudHMgYXJlIG5vdCBwb3NzaWJsZSB3aXRob3V0IGNhbmNlbGxpbmcgSU1FLlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vKipcbiAqIEdvb2dsZSBJbnB1dCBUb29scyBwcm92aWRlcyBjb21wb3NpdGlvbiBkYXRhIHZpYSBhIEN1c3RvbUV2ZW50LFxuICogd2l0aCB0aGUgYGRhdGFgIHByb3BlcnR5IHBvcHVsYXRlZCBpbiB0aGUgYGRldGFpbGAgb2JqZWN0LiBJZiB0aGlzXG4gKiBpcyBhdmFpbGFibGUgb24gdGhlIGV2ZW50IG9iamVjdCwgdXNlIGl0LiBJZiBub3QsIHRoaXMgaXMgYSBwbGFpblxuICogY29tcG9zaXRpb24gZXZlbnQgYW5kIHdlIGhhdmUgbm90aGluZyBzcGVjaWFsIHRvIGV4dHJhY3QuXG4gKlxuICovXG5mdW5jdGlvbiBnZXREYXRhRnJvbUN1c3RvbUV2ZW50KG5hdGl2ZUV2ZW50KSB7XG4gICAgY29uc3QgZGV0YWlsID0gbmF0aXZlRXZlbnQuZGV0YWlsO1xuICAgIGlmICh0eXBlb2YgZGV0YWlsID09PSAnb2JqZWN0JyAmJiAnZGF0YScgaW4gZGV0YWlsKSB7XG4gICAgICAgIHJldHVybiBkZXRhaWwuZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBjb21wb3NpdGlvbiBldmVudCB3YXMgdHJpZ2dlcmVkIGJ5IEtvcmVhbiBJTUUuXG4gKiBPdXIgZmFsbGJhY2sgbW9kZSBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBJRSdzIEtvcmVhbiBJTUUsXG4gKiBzbyBqdXN0IHVzZSBuYXRpdmUgY29tcG9zaXRpb24gZXZlbnRzIHdoZW4gS29yZWFuIElNRSBpcyB1c2VkLlxuICogQWx0aG91Z2ggQ29tcG9zaXRpb25FdmVudC5sb2NhbGUgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCxcbiAqIGl0IGlzIGF2YWlsYWJsZSBpbiBJRSwgd2hlcmUgb3VyIGZhbGxiYWNrIG1vZGUgaXMgZW5hYmxlZC5cbiAqXG4gKi9cbmZ1bmN0aW9uIGlzVXNpbmdLb3JlYW5JTUUobmF0aXZlRXZlbnQpIHtcbiAgICByZXR1cm4gbmF0aXZlRXZlbnQubG9jYWxlID09PSAna28nO1xufVxuXG4vLyBUcmFjayB0aGUgY3VycmVudCBJTUUgY29tcG9zaXRpb24gc3RhdHVzLCBpZiBhbnkuXG5sZXQgaXNDb21wb3NpbmcgPSBmYWxzZTtcblxuZnVuY3Rpb24gZ2V0TmF0aXZlQmVmb3JlSW5wdXRDaGFycyh0b3BMZXZlbFR5cGU6IGFueSwgbmF0aXZlRXZlbnQpIHtcbiAgICBzd2l0Y2ggKHRvcExldmVsVHlwZSkge1xuICAgICAgICBjYXNlIFRPUF9DT01QT1NJVElPTl9FTkQ6XG4gICAgICAgICAgICByZXR1cm4gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCk7XG4gICAgICAgIGNhc2UgVE9QX0tFWV9QUkVTUzpcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgbmF0aXZlIGB0ZXh0SW5wdXRgIGV2ZW50cyBhcmUgYXZhaWxhYmxlLCBvdXIgZ29hbCBpcyB0byBtYWtlXG4gICAgICAgICAgICAgKiB1c2Ugb2YgdGhlbS4gSG93ZXZlciwgdGhlcmUgaXMgYSBzcGVjaWFsIGNhc2U6IHRoZSBzcGFjZWJhciBrZXkuXG4gICAgICAgICAgICAgKiBJbiBXZWJraXQsIHByZXZlbnRpbmcgZGVmYXVsdCBvbiBhIHNwYWNlYmFyIGB0ZXh0SW5wdXRgIGV2ZW50XG4gICAgICAgICAgICAgKiBjYW5jZWxzIGNoYXJhY3RlciBpbnNlcnRpb24sIGJ1dCBpdCAqYWxzbyogY2F1c2VzIHRoZSBicm93c2VyXG4gICAgICAgICAgICAgKiB0byBmYWxsIGJhY2sgdG8gaXRzIGRlZmF1bHQgc3BhY2ViYXIgYmVoYXZpb3Igb2Ygc2Nyb2xsaW5nIHRoZVxuICAgICAgICAgICAgICogcGFnZS5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBUcmFja2luZyBhdDpcbiAgICAgICAgICAgICAqIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0zNTUxMDNcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBUbyBhdm9pZCB0aGlzIGlzc3VlLCB1c2UgdGhlIGtleXByZXNzIGV2ZW50IGFzIGlmIG5vIGB0ZXh0SW5wdXRgXG4gICAgICAgICAgICAgKiBldmVudCBpcyBhdmFpbGFibGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHdoaWNoID0gbmF0aXZlRXZlbnQud2hpY2g7XG4gICAgICAgICAgICBpZiAod2hpY2ggIT09IFNQQUNFQkFSX0NPREUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaGFzU3BhY2VLZXlwcmVzcyA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gU1BBQ0VCQVJfQ0hBUjtcblxuICAgICAgICBjYXNlIFRPUF9URVhUX0lOUFVUOlxuICAgICAgICAgICAgLy8gUmVjb3JkIHRoZSBjaGFyYWN0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZSBET00uXG4gICAgICAgICAgICBjb25zdCBjaGFycyA9IG5hdGl2ZUV2ZW50LmRhdGE7XG5cbiAgICAgICAgICAgIC8vIElmIGl0J3MgYSBzcGFjZWJhciBjaGFyYWN0ZXIsIGFzc3VtZSB0aGF0IHdlIGhhdmUgYWxyZWFkeSBoYW5kbGVkXG4gICAgICAgICAgICAvLyBpdCBhdCB0aGUga2V5cHJlc3MgbGV2ZWwgYW5kIGJhaWwgaW1tZWRpYXRlbHkuIEFuZHJvaWQgQ2hyb21lXG4gICAgICAgICAgICAvLyBkb2Vzbid0IGdpdmUgdXMga2V5Y29kZXMsIHNvIHdlIG5lZWQgdG8gaWdub3JlIGl0LlxuICAgICAgICAgICAgaWYgKGNoYXJzID09PSBTUEFDRUJBUl9DSEFSICYmIGhhc1NwYWNlS2V5cHJlc3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNoYXJzO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBGb3Igb3RoZXIgbmF0aXZlIGV2ZW50IHR5cGVzLCBkbyBub3RoaW5nLlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vKipcbiAqIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBwcm92aWRlIHRoZSBgdGV4dElucHV0YCBldmVudCwgZXh0cmFjdCB0aGVcbiAqIGFwcHJvcHJpYXRlIHN0cmluZyB0byB1c2UgZm9yIFN5bnRoZXRpY0lucHV0RXZlbnQuXG4gKlxuICovXG5mdW5jdGlvbiBnZXRGYWxsYmFja0JlZm9yZUlucHV0Q2hhcnModG9wTGV2ZWxUeXBlOiBhbnksIG5hdGl2ZUV2ZW50KSB7XG4gICAgLy8gSWYgd2UgYXJlIGN1cnJlbnRseSBjb21wb3NpbmcgKElNRSkgYW5kIHVzaW5nIGEgZmFsbGJhY2sgdG8gZG8gc28sXG4gICAgLy8gdHJ5IHRvIGV4dHJhY3QgdGhlIGNvbXBvc2VkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZmFsbGJhY2sgb2JqZWN0LlxuICAgIC8vIElmIGNvbXBvc2l0aW9uIGV2ZW50IGlzIGF2YWlsYWJsZSwgd2UgZXh0cmFjdCBhIHN0cmluZyBvbmx5IGF0XG4gICAgLy8gY29tcG9zaXRpb25ldmVudCwgb3RoZXJ3aXNlIGV4dHJhY3QgaXQgYXQgZmFsbGJhY2sgZXZlbnRzLlxuICAgIGlmIChpc0NvbXBvc2luZykge1xuICAgICAgICBpZiAodG9wTGV2ZWxUeXBlID09PSBUT1BfQ09NUE9TSVRJT05fRU5EIHx8ICghY2FuVXNlQ29tcG9zaXRpb25FdmVudCAmJiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQodG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCkpKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFycyA9IEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZUdldERhdGEoKTtcbiAgICAgICAgICAgIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZVJlc2V0KCk7XG4gICAgICAgICAgICBpc0NvbXBvc2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIGNoYXJzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHN3aXRjaCAodG9wTGV2ZWxUeXBlKSB7XG4gICAgICAgIGNhc2UgVE9QX1BBU1RFOlxuICAgICAgICAgICAgLy8gSWYgYSBwYXN0ZSBldmVudCBvY2N1cnMgYWZ0ZXIgYSBrZXlwcmVzcywgdGhyb3cgb3V0IHRoZSBpbnB1dFxuICAgICAgICAgICAgLy8gY2hhcnMuIFBhc3RlIGV2ZW50cyBzaG91bGQgbm90IGxlYWQgdG8gQmVmb3JlSW5wdXQgZXZlbnRzLlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgVE9QX0tFWV9QUkVTUzpcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQXMgb2YgdjI3LCBGaXJlZm94IG1heSBmaXJlIGtleXByZXNzIGV2ZW50cyBldmVuIHdoZW4gbm8gY2hhcmFjdGVyXG4gICAgICAgICAgICAgKiB3aWxsIGJlIGluc2VydGVkLiBBIGZldyBwb3NzaWJpbGl0aWVzOlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIC0gYHdoaWNoYCBpcyBgMGAuIEFycm93IGtleXMsIEVzYyBrZXksIGV0Yy5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiAtIGB3aGljaGAgaXMgdGhlIHByZXNzZWQga2V5IGNvZGUsIGJ1dCBubyBjaGFyIGlzIGF2YWlsYWJsZS5cbiAgICAgICAgICAgICAqICAgRXg6ICdBbHRHciArIGRgIGluIFBvbGlzaC4gVGhlcmUgaXMgbm8gbW9kaWZpZWQgY2hhcmFjdGVyIGZvclxuICAgICAgICAgICAgICogICB0aGlzIGtleSBjb21iaW5hdGlvbiBhbmQgbm8gY2hhcmFjdGVyIGlzIGluc2VydGVkIGludG8gdGhlXG4gICAgICAgICAgICAgKiAgIGRvY3VtZW50LCBidXQgRkYgZmlyZXMgdGhlIGtleXByZXNzIGZvciBjaGFyIGNvZGUgYDEwMGAgYW55d2F5LlxuICAgICAgICAgICAgICogICBObyBgaW5wdXRgIGV2ZW50IHdpbGwgb2NjdXIuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogLSBgd2hpY2hgIGlzIHRoZSBwcmVzc2VkIGtleSBjb2RlLCBidXQgYSBjb21tYW5kIGNvbWJpbmF0aW9uIGlzXG4gICAgICAgICAgICAgKiAgIGJlaW5nIHVzZWQuIEV4OiBgQ21kK0NgLiBObyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQsIGFuZCBub1xuICAgICAgICAgICAgICogICBgaW5wdXRgIGV2ZW50IHdpbGwgb2NjdXIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghaXNLZXlwcmVzc0NvbW1hbmQobmF0aXZlRXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgLy8gSUUgZmlyZXMgdGhlIGBrZXlwcmVzc2AgZXZlbnQgd2hlbiBhIHVzZXIgdHlwZXMgYW4gZW1vamkgdmlhXG4gICAgICAgICAgICAgICAgLy8gVG91Y2gga2V5Ym9hcmQgb2YgV2luZG93cy4gIEluIHN1Y2ggYSBjYXNlLCB0aGUgYGNoYXJgIHByb3BlcnR5XG4gICAgICAgICAgICAgICAgLy8gaG9sZHMgYW4gZW1vamkgY2hhcmFjdGVyIGxpa2UgYFxcdUQ4M0RcXHVERTBBYC4gIEJlY2F1c2UgaXRzIGxlbmd0aFxuICAgICAgICAgICAgICAgIC8vIGlzIDIsIHRoZSBwcm9wZXJ0eSBgd2hpY2hgIGRvZXMgbm90IHJlcHJlc2VudCBhbiBlbW9qaSBjb3JyZWN0bHkuXG4gICAgICAgICAgICAgICAgLy8gSW4gc3VjaCBhIGNhc2UsIHdlIGRpcmVjdGx5IHJldHVybiB0aGUgYGNoYXJgIHByb3BlcnR5IGluc3RlYWQgb2ZcbiAgICAgICAgICAgICAgICAvLyB1c2luZyBgd2hpY2hgLlxuICAgICAgICAgICAgICAgIGlmIChuYXRpdmVFdmVudC5jaGFyICYmIG5hdGl2ZUV2ZW50LmNoYXIubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmF0aXZlRXZlbnQuY2hhcjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hdGl2ZUV2ZW50LndoaWNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG5hdGl2ZUV2ZW50LndoaWNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSBUT1BfQ09NUE9TSVRJT05fRU5EOlxuICAgICAgICAgICAgcmV0dXJuIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhICYmICFpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSA/IG51bGwgOiBuYXRpdmVFdmVudC5kYXRhO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3QgYSBTeW50aGV0aWNJbnB1dEV2ZW50IGZvciBgYmVmb3JlSW5wdXRgLCBiYXNlZCBvbiBlaXRoZXIgbmF0aXZlXG4gKiBgdGV4dElucHV0YCBvciBmYWxsYmFjayBiZWhhdmlvci5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0QmVmb3JlSW5wdXRFdmVudCh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIGxldCBjaGFycztcblxuICAgIGlmIChjYW5Vc2VUZXh0SW5wdXRFdmVudCkge1xuICAgICAgICBjaGFycyA9IGdldE5hdGl2ZUJlZm9yZUlucHV0Q2hhcnModG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hhcnMgPSBnZXRGYWxsYmFja0JlZm9yZUlucHV0Q2hhcnModG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCk7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gY2hhcmFjdGVycyBhcmUgYmVpbmcgaW5zZXJ0ZWQsIG5vIEJlZm9yZUlucHV0IGV2ZW50IHNob3VsZFxuICAgIC8vIGJlIGZpcmVkLlxuICAgIGlmICghY2hhcnMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgYmVmb3JlSW5wdXRFdmVudCA9IG5ldyBCZWZvcmVJbnB1dEV2ZW50KCk7XG4gICAgYmVmb3JlSW5wdXRFdmVudC5kYXRhID0gY2hhcnM7XG4gICAgYmVmb3JlSW5wdXRFdmVudC5uYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgIHJldHVybiBiZWZvcmVJbnB1dEV2ZW50O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgb25CZWZvcmVJbnB1dGAgZXZlbnQgdG8gbWF0Y2hcbiAqIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMTMxMTA1LyNldmVudHMtaW5wdXRldmVudHMuXG4gKlxuICogVGhpcyBldmVudCBwbHVnaW4gaXMgYmFzZWQgb24gdGhlIG5hdGl2ZSBgdGV4dElucHV0YCBldmVudFxuICogYXZhaWxhYmxlIGluIENocm9tZSwgU2FmYXJpLCBPcGVyYSwgYW5kIElFLiBUaGlzIGV2ZW50IGZpcmVzIGFmdGVyXG4gKiBgb25LZXlQcmVzc2AgYW5kIGBvbkNvbXBvc2l0aW9uRW5kYCwgYnV0IGJlZm9yZSBgb25JbnB1dGAuXG4gKlxuICogYGJlZm9yZUlucHV0YCBpcyBzcGVjJ2QgYnV0IG5vdCBpbXBsZW1lbnRlZCBpbiBhbnkgYnJvd3NlcnMsIGFuZFxuICogdGhlIGBpbnB1dGAgZXZlbnQgZG9lcyBub3QgcHJvdmlkZSBhbnkgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgaGFzXG4gKiBhY3R1YWxseSBiZWVuIGFkZGVkLCBjb250cmFyeSB0byB0aGUgc3BlYy4gVGh1cywgYHRleHRJbnB1dGAgaXMgdGhlIGJlc3RcbiAqIGF2YWlsYWJsZSBldmVudCB0byBpZGVudGlmeSB0aGUgY2hhcmFjdGVycyB0aGF0IGhhdmUgYWN0dWFsbHkgYmVlbiBpbnNlcnRlZFxuICogaW50byB0aGUgdGFyZ2V0IG5vZGUuXG4gKlxuICogVGhpcyBwbHVnaW4gaXMgYWxzbyByZXNwb25zaWJsZSBmb3IgZW1pdHRpbmcgYGNvbXBvc2l0aW9uYCBldmVudHMsIHRodXNcbiAqIGFsbG93aW5nIHVzIHRvIHNoYXJlIGNvbXBvc2l0aW9uIGZhbGxiYWNrIGNvZGUgZm9yIGJvdGggYGJlZm9yZUlucHV0YCBhbmRcbiAqIGBjb21wb3NpdGlvbmAgZXZlbnQgdHlwZXMuXG4gKi9cbmNvbnN0IEJlZm9yZUlucHV0RXZlbnRQbHVnaW4gPSB7XG4gICAgZXh0cmFjdEV2ZW50czogKHRvcExldmVsVHlwZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSA9PiB7XG4gICAgICAgIHJldHVybiBleHRyYWN0QmVmb3JlSW5wdXRFdmVudCh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNsYXNzIEJlZm9yZUlucHV0RXZlbnQge1xuICAgIGRhdGE6IHN0cmluZztcbiAgICBuYXRpdmVFdmVudDogRXZlbnQ7XG59XG5leHBvcnQgZGVmYXVsdCBCZWZvcmVJbnB1dEV2ZW50UGx1Z2luO1xuIl19
@@ -7,7 +7,7 @@ export const BEFORE_INPUT_EVENTS = [
7
7
  { name: 'keypress', handler: null, isTriggerBeforeInput: true },
8
8
  { name: 'keyup', handler: 'onKeyUp', isTriggerBeforeInput: true },
9
9
  { name: 'mousedown', handler: 'onMouseDown', isTriggerBeforeInput: true },
10
- { name: 'textInput', handler: null, isTriggerBeforeInput: true },
10
+ { name: 'textInput', handler: null, isTriggerBeforeInput: true }
11
11
  // { name: 'paste', handler: 'onPaste', isTriggerBeforeInput: true }
12
12
  ];
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWlucHV0LXBvbHlmaWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2N1c3RvbS1ldmVudC9iZWZvcmUtaW5wdXQtcG9seWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXFFO0lBQ2pHLG1FQUFtRTtJQUNuRSwyRkFBMkY7SUFDM0YsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7SUFDeEUsd0ZBQXdGO0lBQ3hGLHlFQUF5RTtJQUN6RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7SUFDL0QsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFO0lBQ2pFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7SUFDaEUsb0VBQW9FO0NBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBCRUZPUkVfSU5QVVRfRVZFTlRTOiB7bmFtZTogc3RyaW5nLCBoYW5kbGVyOiBzdHJpbmcsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiBib29sZWFufVtdID0gW1xuICAgIC8vIHsgbmFtZTogJ2JsdXInLCBoYW5kbGVyOiAnb25CbHVyJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICAvLyB7IG5hbWU6ICdjb21wb3NpdGlvbnN0YXJ0JywgaGFuZGxlcjogJ29uQ29tcG9zaXRpb25TdGFydCcsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiB0cnVlIH0sXG4gICAgeyBuYW1lOiAnY29tcG9zaXRpb251cGRhdGUnLCBoYW5kbGVyOiBudWxsLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIC8vIHsgbmFtZTogJ2NvbXBvc2l0aW9uZW5kJywgaGFuZGxlcjogJ29uQ29tcG9zaXRpb25FbmQnLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogZmFsc2UgfSxcbiAgICAvLyB7IG5hbWU6ICdrZXlkb3duJywgaGFuZGxlcjogJ29uS2V5RG93bicsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiB0cnVlIH0sXG4gICAgeyBuYW1lOiAna2V5cHJlc3MnLCBoYW5kbGVyOiBudWxsLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ2tleXVwJywgaGFuZGxlcjogJ29uS2V5VXAnLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ21vdXNlZG93bicsIGhhbmRsZXI6ICdvbk1vdXNlRG93bicsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiB0cnVlIH0sXG4gICAgeyBuYW1lOiAndGV4dElucHV0JywgaGFuZGxlcjogbnVsbCwgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICAvLyB7IG5hbWU6ICdwYXN0ZScsIGhhbmRsZXI6ICdvblBhc3RlJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfVxuXTtcbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWlucHV0LXBvbHlmaWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2N1c3RvbS1ldmVudC9iZWZvcmUtaW5wdXQtcG9seWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBSTFCO0lBQ0YsbUVBQW1FO0lBQ25FLDJGQUEyRjtJQUMzRixFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtJQUN4RSx3RkFBd0Y7SUFDeEYseUVBQXlFO0lBQ3pFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtJQUMvRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7SUFDakUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFO0lBQ3pFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtJQUNoRSxvRUFBb0U7Q0FDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCRUZPUkVfSU5QVVRfRVZFTlRTOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGhhbmRsZXI6IHN0cmluZztcbiAgICBpc1RyaWdnZXJCZWZvcmVJbnB1dDogYm9vbGVhbjtcbn1bXSA9IFtcbiAgICAvLyB7IG5hbWU6ICdibHVyJywgaGFuZGxlcjogJ29uQmx1cicsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiB0cnVlIH0sXG4gICAgLy8geyBuYW1lOiAnY29tcG9zaXRpb25zdGFydCcsIGhhbmRsZXI6ICdvbkNvbXBvc2l0aW9uU3RhcnQnLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ2NvbXBvc2l0aW9udXBkYXRlJywgaGFuZGxlcjogbnVsbCwgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICAvLyB7IG5hbWU6ICdjb21wb3NpdGlvbmVuZCcsIGhhbmRsZXI6ICdvbkNvbXBvc2l0aW9uRW5kJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IGZhbHNlIH0sXG4gICAgLy8geyBuYW1lOiAna2V5ZG93bicsIGhhbmRsZXI6ICdvbktleURvd24nLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ2tleXByZXNzJywgaGFuZGxlcjogbnVsbCwgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICB7IG5hbWU6ICdrZXl1cCcsIGhhbmRsZXI6ICdvbktleVVwJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICB7IG5hbWU6ICdtb3VzZWRvd24nLCBoYW5kbGVyOiAnb25Nb3VzZURvd24nLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ3RleHRJbnB1dCcsIGhhbmRsZXI6IG51bGwsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiB0cnVlIH1cbiAgICAvLyB7IG5hbWU6ICdwYXN0ZScsIGhhbmRsZXI6ICdvblBhc3RlJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfVxuXTtcbiJdfQ==
@@ -14,11 +14,12 @@ import { SlateLeafComponent } from './components/leaf/leaf.component';
14
14
  import { SlateDefaultLeafComponent } from './components/leaf/default-leaf.component';
15
15
  import { SlateLeavesComponent } from './components/leaves/leaves.component';
16
16
  import { SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN } from './components/element/default-element.component.token';
17
+ import { SlateDefaultStringComponent } from './components/string/default-string.component';
17
18
  import * as i0 from "@angular/core";
18
19
  export class SlateModule {
19
20
  }
20
- SlateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SlateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- SlateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: SlateModule, declarations: [SlateEditableComponent,
21
+ SlateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SlateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ SlateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: SlateModule, declarations: [SlateEditableComponent,
22
23
  SlateDefaultElementComponent,
23
24
  SlateElementComponent,
24
25
  SlateVoidTextComponent,
@@ -30,14 +31,20 @@ SlateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
30
31
  SlateBlockCardComponent,
31
32
  SlateLeafComponent,
32
33
  SlateLeavesComponent,
33
- SlateDefaultLeafComponent], imports: [CommonModule], exports: [SlateEditableComponent, SlateChildrenComponent, SlateElementComponent, SlateLeavesComponent, SlateStringComponent] });
34
- SlateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SlateModule, providers: [
34
+ SlateDefaultLeafComponent,
35
+ SlateDefaultStringComponent], imports: [CommonModule], exports: [SlateEditableComponent,
36
+ SlateChildrenComponent,
37
+ SlateElementComponent,
38
+ SlateLeavesComponent,
39
+ SlateStringComponent,
40
+ SlateDefaultStringComponent] });
41
+ SlateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SlateModule, providers: [
35
42
  {
36
43
  provide: SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN,
37
44
  useValue: SlateDefaultElementComponent
38
- },
45
+ }
39
46
  ], imports: [CommonModule] });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SlateModule, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SlateModule, decorators: [{
41
48
  type: NgModule,
42
49
  args: [{
43
50
  declarations: [
@@ -53,16 +60,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
53
60
  SlateBlockCardComponent,
54
61
  SlateLeafComponent,
55
62
  SlateLeavesComponent,
56
- SlateDefaultLeafComponent
63
+ SlateDefaultLeafComponent,
64
+ SlateDefaultStringComponent
57
65
  ],
58
66
  imports: [CommonModule],
59
- exports: [SlateEditableComponent, SlateChildrenComponent, SlateElementComponent, SlateLeavesComponent, SlateStringComponent],
67
+ exports: [
68
+ SlateEditableComponent,
69
+ SlateChildrenComponent,
70
+ SlateElementComponent,
71
+ SlateLeavesComponent,
72
+ SlateStringComponent,
73
+ SlateDefaultStringComponent
74
+ ],
60
75
  providers: [
61
76
  {
62
77
  provide: SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN,
63
78
  useValue: SlateDefaultElementComponent
64
- },
79
+ }
65
80
  ]
66
81
  }]
67
82
  }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZXMvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUEyQjdHLE1BQU0sT0FBTyxXQUFXOzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcsaUJBdkJoQixzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLG9CQUFvQjtRQUNwQiw0QkFBNEI7UUFDNUIsd0JBQXdCO1FBQ3hCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQix5QkFBeUIsYUFFbkIsWUFBWSxhQUNaLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjt5R0FRbEgsV0FBVyxhQVBUO1FBQ1A7WUFDSSxPQUFPLEVBQUUscUNBQXFDO1lBQzlDLFFBQVEsRUFBRSw0QkFBNEI7U0FDekM7S0FDSixZQVBTLFlBQVk7MkZBU2IsV0FBVztrQkF6QnZCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLHlCQUF5QjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQztvQkFDNUgsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQ0FBcUM7NEJBQzlDLFFBQVEsRUFBRSw0QkFBNEI7eUJBQ3pDO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTbGF0ZUVkaXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXRhYmxlL2VkaXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZURlZmF1bHRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHQvZGVmYXVsdC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZVZvaWRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHQvdm9pZC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC9lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZURlZmF1bHRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZGVmYXVsdC1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZVN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZVN0cmluZ1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0cmluZy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVEZXNjZW5kYW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Rlc2NlbmRhbnQvZGVzY2VuZGFudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGlsZHJlbi9jaGlsZHJlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVCbG9ja0NhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYmxvY2stY2FyZC9ibG9jay1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUxlYWZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGVhZi9sZWFmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZURlZmF1bHRMZWFmQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xlYWYvZGVmYXVsdC1sZWFmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUxlYXZlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sZWF2ZXMvbGVhdmVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTTEFURV9ERUZBVUxUX0VMRU1FTlRfQ09NUE9ORU5UX1RPS0VOIH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZGVmYXVsdC1lbGVtZW50LmNvbXBvbmVudC50b2tlbic7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNsYXRlRWRpdGFibGVDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVmYXVsdEVsZW1lbnRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRWxlbWVudENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVWb2lkVGV4dENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVEZWZhdWx0VGV4dENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVTdHJpbmdDb21wb25lbnQsXG4gICAgICAgIFNsYXRlU3RyaW5nVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVzY2VuZGFudENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVDaGlsZHJlbkNvbXBvbmVudCxcbiAgICAgICAgU2xhdGVCbG9ja0NhcmRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlTGVhZkNvbXBvbmVudCxcbiAgICAgICAgU2xhdGVMZWF2ZXNDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVmYXVsdExlYWZDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTbGF0ZUVkaXRhYmxlQ29tcG9uZW50LCBTbGF0ZUNoaWxkcmVuQ29tcG9uZW50LCBTbGF0ZUVsZW1lbnRDb21wb25lbnQsIFNsYXRlTGVhdmVzQ29tcG9uZW50LCBTbGF0ZVN0cmluZ0NvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNMQVRFX0RFRkFVTFRfRUxFTUVOVF9DT01QT05FTlRfVE9LRU4sXG4gICAgICAgICAgICB1c2VWYWx1ZTogU2xhdGVEZWZhdWx0RWxlbWVudENvbXBvbmVudFxuICAgICAgICB9LFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2xhdGVNb2R1bGUgeyB9XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZXMvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFtQzNGLE1BQU0sT0FBTyxXQUFXOzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcsaUJBL0JoQixzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLG9CQUFvQjtRQUNwQiw0QkFBNEI7UUFDNUIsd0JBQXdCO1FBQ3hCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQix5QkFBeUI7UUFDekIsMkJBQTJCLGFBRXJCLFlBQVksYUFFbEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQiwyQkFBMkI7eUdBU3RCLFdBQVcsYUFQVDtRQUNQO1lBQ0ksT0FBTyxFQUFFLHFDQUFxQztZQUM5QyxRQUFRLEVBQUUsNEJBQTRCO1NBQ3pDO0tBQ0osWUFkUyxZQUFZOzJGQWdCYixXQUFXO2tCQWpDdkIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysc0JBQXNCO3dCQUN0Qiw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1Qix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFO3dCQUNMLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQiwyQkFBMkI7cUJBQzlCO29CQUNELFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUNBQXFDOzRCQUM5QyxRQUFRLEVBQUUsNEJBQTRCO3lCQUN6QztxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcndhcmRSZWYsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2xhdGVFZGl0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0YWJsZS9lZGl0YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVEZWZhdWx0VGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L2RlZmF1bHQtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVWb2lkVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L3ZvaWQtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVEZWZhdWx0RWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbGVtZW50L2RlZmF1bHQtZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RyaW5nL3N0cmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlRGVzY2VuZGFudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kZXNjZW5kYW50L2Rlc2NlbmRhbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hpbGRyZW4vY2hpbGRyZW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlQmxvY2tDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Jsb2NrLWNhcmQvYmxvY2stY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVMZWFmQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xlYWYvbGVhZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVEZWZhdWx0TGVhZkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sZWFmL2RlZmF1bHQtbGVhZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVMZWF2ZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGVhdmVzL2xlYXZlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU0xBVEVfREVGQVVMVF9FTEVNRU5UX0NPTVBPTkVOVF9UT0tFTiB9IGZyb20gJy4vY29tcG9uZW50cy9lbGVtZW50L2RlZmF1bHQtZWxlbWVudC5jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgU2xhdGVEZWZhdWx0U3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0cmluZy9kZWZhdWx0LXN0cmluZy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBTbGF0ZUVkaXRhYmxlQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZURlZmF1bHRFbGVtZW50Q29tcG9uZW50LFxuICAgICAgICBTbGF0ZUVsZW1lbnRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlVm9pZFRleHRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVmYXVsdFRleHRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlU3RyaW5nQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZVN0cmluZ1RlbXBsYXRlQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZURlc2NlbmRhbnRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlQ2hpbGRyZW5Db21wb25lbnQsXG4gICAgICAgIFNsYXRlQmxvY2tDYXJkQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZUxlYWZDb21wb25lbnQsXG4gICAgICAgIFNsYXRlTGVhdmVzQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZURlZmF1bHRMZWFmQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZURlZmF1bHRTdHJpbmdDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU2xhdGVFZGl0YWJsZUNvbXBvbmVudCxcbiAgICAgICAgU2xhdGVDaGlsZHJlbkNvbXBvbmVudCxcbiAgICAgICAgU2xhdGVFbGVtZW50Q29tcG9uZW50LFxuICAgICAgICBTbGF0ZUxlYXZlc0NvbXBvbmVudCxcbiAgICAgICAgU2xhdGVTdHJpbmdDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVmYXVsdFN0cmluZ0NvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNMQVRFX0RFRkFVTFRfRUxFTUVOVF9DT01QT05FTlRfVE9LRU4sXG4gICAgICAgICAgICB1c2VWYWx1ZTogU2xhdGVEZWZhdWx0RWxlbWVudENvbXBvbmVudFxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGF0ZU1vZHVsZSB7fVxuIl19