@taiga-ui/core 3.10.0 → 3.12.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 (172) hide show
  1. package/bundles/taiga-ui-core-components-alert.umd.js +3 -1
  2. package/bundles/taiga-ui-core-components-alert.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
  4. package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
  5. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +21 -21
  7. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  8. package/bundles/taiga-ui-core-components-link.umd.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +1 -1
  11. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
  13. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  15. package/bundles/taiga-ui-core-components-root.umd.js +1 -1
  16. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +3 -1
  17. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-svg.umd.js +21 -10
  19. package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-tooltip.umd.js +3 -1
  21. package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
  22. package/bundles/taiga-ui-core-directives-dropdown.umd.js +32 -15
  23. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  24. package/bundles/taiga-ui-core-directives-hint.umd.js +3 -1
  25. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  26. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js +3 -1
  27. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js.map +1 -1
  28. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  29. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +1 -1
  30. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
  31. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js +3 -1
  32. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js.map +1 -1
  33. package/bundles/taiga-ui-core-pipes-format-date.umd.js.map +1 -1
  34. package/bundles/taiga-ui-core-services.umd.js +3 -1
  35. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  36. package/bundles/taiga-ui-core-tokens.umd.js +3 -1
  37. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  38. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  39. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  40. package/components/alert/alert.component.d.ts +1 -1
  41. package/components/button/button-options.d.ts +3 -3
  42. package/components/button/button.component.d.ts +2 -2
  43. package/components/calendar/calendar.component.d.ts +1 -1
  44. package/components/data-list/data-list.component.d.ts +1 -1
  45. package/components/data-list/option/option.component.d.ts +1 -1
  46. package/components/link/link.component.d.ts +1 -1
  47. package/components/loader/loader.component.d.ts +1 -1
  48. package/components/notification/notification.component.d.ts +1 -1
  49. package/components/primitive-calendar/primitive-calendar.component.d.ts +2 -2
  50. package/components/primitive-textfield/primitive-textfield.component.d.ts +3 -3
  51. package/components/primitive-year-picker/primitive-year-picker.component.d.ts +1 -1
  52. package/components/scroll-controls/scrollbar.directive.d.ts +1 -1
  53. package/components/svg/svg.component.d.ts +5 -4
  54. package/components/tooltip/tooltip.component.d.ts +1 -1
  55. package/directives/dropdown/dropdown-position-sided.directive.d.ts +5 -3
  56. package/directives/dropdown/dropdown-position.directive.d.ts +1 -1
  57. package/directives/dropdown/dropdown-selection.directive.d.ts +1 -1
  58. package/directives/dropdown/dropdown.component.d.ts +1 -1
  59. package/directives/hint/hint.component.d.ts +1 -1
  60. package/directives/scroll-into-view/scroll-into-view.directive.d.ts +1 -1
  61. package/directives/textfield-controller/textfield-icon-left.directive.d.ts +1 -1
  62. package/directives/textfield-controller/textfield-icon.directive.d.ts +1 -1
  63. package/directives/textfield-controller/textfield-size.directive.d.ts +1 -1
  64. package/directives/textfield-controller/textfield.controller.d.ts +3 -3
  65. package/esm2015/components/alert/alert.component.js +5 -3
  66. package/esm2015/components/button/button-options.js +1 -1
  67. package/esm2015/components/calendar/calendar.component.js +1 -1
  68. package/esm2015/components/data-list/option/option.component.js +1 -1
  69. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +5 -5
  70. package/esm2015/components/link/link.component.js +1 -1
  71. package/esm2015/components/notification/notification.component.js +1 -1
  72. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +2 -2
  73. package/esm2015/components/primitive-checkbox/primitive-checkbox.component.js +1 -1
  74. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +1 -1
  75. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +1 -1
  76. package/esm2015/components/root/root.component.js +1 -1
  77. package/esm2015/components/scroll-controls/scrollbar.directive.js +5 -3
  78. package/esm2015/components/svg/svg.component.js +24 -13
  79. package/esm2015/components/tooltip/tooltip.component.js +5 -3
  80. package/esm2015/directives/dropdown/dropdown-position-sided.directive.js +26 -8
  81. package/esm2015/directives/dropdown/dropdown-position.directive.js +5 -6
  82. package/esm2015/directives/dropdown/dropdown-selection.directive.js +1 -1
  83. package/esm2015/directives/dropdown/dropdown.component.js +5 -3
  84. package/esm2015/directives/hint/hint.component.js +5 -3
  85. package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +5 -3
  86. package/esm2015/directives/textfield-controller/textfield-icon-left.directive.js +1 -1
  87. package/esm2015/directives/textfield-controller/textfield-icon.directive.js +1 -1
  88. package/esm2015/directives/textfield-controller/textfield-size.directive.js +1 -1
  89. package/esm2015/directives/textfield-controller/textfield.controller.js +1 -1
  90. package/esm2015/interfaces/alert-options.js +1 -1
  91. package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  92. package/esm2015/internal/svg-defs-host/svg-defs-host.component.js +5 -3
  93. package/esm2015/mask/text-mask-list.js +1 -1
  94. package/esm2015/mask/text-mask-pipe-handler.js +1 -1
  95. package/esm2015/pipes/format-date/format-date.pipe.js +1 -1
  96. package/esm2015/services/router-link-active.service.js +5 -3
  97. package/esm2015/tokens/svg-content-processor.js +4 -2
  98. package/esm2015/tokens/svg-src-processor.js +1 -1
  99. package/esm2015/types/brightness.js +1 -1
  100. package/esm2015/types/decimal-symbol.js +1 -1
  101. package/esm2015/types/decimal.js +1 -1
  102. package/esm2015/types/dialog-size.js +1 -1
  103. package/esm2015/types/direction.js +1 -1
  104. package/esm2015/types/dropdown-width.js +1 -1
  105. package/esm2015/types/hint-direction.js +1 -1
  106. package/esm2015/types/marker-handler.js +1 -1
  107. package/esm2015/types/option-role.js +1 -1
  108. package/esm2015/types/orientation.js +1 -1
  109. package/esm2015/types/size.js +1 -1
  110. package/esm2015/utils/mask/create-number-mask.js +1 -1
  111. package/esm2015/utils/miscellaneous/size-bigger.js +1 -1
  112. package/fesm2015/taiga-ui-core-components-alert.js +4 -2
  113. package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
  114. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  115. package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
  116. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  117. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +5 -5
  118. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  119. package/fesm2015/taiga-ui-core-components-link.js.map +1 -1
  120. package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
  121. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +1 -1
  122. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  123. package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  124. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  125. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  126. package/fesm2015/taiga-ui-core-components-root.js +1 -1
  127. package/fesm2015/taiga-ui-core-components-scroll-controls.js +4 -2
  128. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  129. package/fesm2015/taiga-ui-core-components-svg.js +23 -12
  130. package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
  131. package/fesm2015/taiga-ui-core-components-tooltip.js +4 -2
  132. package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
  133. package/fesm2015/taiga-ui-core-directives-dropdown.js +31 -13
  134. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  135. package/fesm2015/taiga-ui-core-directives-hint.js +4 -2
  136. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  137. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js +4 -2
  138. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  139. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  140. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  141. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  142. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js +4 -2
  143. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  144. package/fesm2015/taiga-ui-core-pipes-format-date.js.map +1 -1
  145. package/fesm2015/taiga-ui-core-services.js +4 -2
  146. package/fesm2015/taiga-ui-core-services.js.map +1 -1
  147. package/fesm2015/taiga-ui-core-tokens.js +3 -1
  148. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  149. package/fesm2015/taiga-ui-core-types.js.map +1 -1
  150. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  151. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  152. package/interfaces/alert-options.d.ts +1 -1
  153. package/internal/svg-defs-host/svg-defs-host.component.d.ts +1 -1
  154. package/mask/text-mask-list.d.ts +1 -1
  155. package/mask/text-mask-pipe-handler.d.ts +1 -1
  156. package/package.json +10 -10
  157. package/pipes/format-date/format-date.pipe.d.ts +1 -1
  158. package/services/router-link-active.service.d.ts +1 -1
  159. package/tokens/svg-content-processor.d.ts +3 -2
  160. package/tokens/svg-src-processor.d.ts +3 -2
  161. package/types/brightness.d.ts +1 -1
  162. package/types/decimal-symbol.d.ts +1 -1
  163. package/types/decimal.d.ts +1 -1
  164. package/types/dialog-size.d.ts +1 -1
  165. package/types/direction.d.ts +1 -1
  166. package/types/dropdown-width.d.ts +1 -1
  167. package/types/hint-direction.d.ts +1 -1
  168. package/types/marker-handler.d.ts +1 -1
  169. package/types/option-role.d.ts +1 -1
  170. package/types/orientation.d.ts +1 -1
  171. package/types/size.d.ts +3 -3
  172. package/utils/miscellaneous/size-bigger.d.ts +1 -1
@@ -293,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
293
293
  type: HostListener,
294
294
  args: [`focusout`, [`false`]]
295
295
  }], getIndent$: [] } });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZC9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9wcmltaXRpdmUtdGV4dGZpZWxkL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsMEJBQTBCLEVBRTFCLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEdBRW5DLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFzQiwyQkFBMkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFGLE9BQU8sRUFBQyxTQUFTLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxN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LFdBQVc7dUJBQUMsaUJBQWlCO2dCQU05QixPQUFPO3NCQUZOLEtBQUs7Z0JBTU4sUUFBUTtzQkFGUCxLQUFLO2dCQU1OLE1BQU07c0JBRkwsS0FBSztnQkFNTixPQUFPO3NCQUZOLEtBQUs7Z0JBTU4sS0FBSztzQkFGSixLQUFLO2dCQUtHLFdBQVc7c0JBRG5CLE1BQU07Z0JBSUUsT0FBTztzQkFEZixlQUFlO3VCQUFDLDJCQUEyQixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFvQzdELElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTXpCLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU16QixXQUFXO3NCQURkLFdBQVc7dUJBQUMsZUFBZTtnQkF5RHhCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQywwQkFBMEI7Z0JBTW5DLFNBQVM7c0JBRFosV0FBVzt1QkFBQyx3QkFBd0I7Z0JBaUNyQyxTQUFTO3NCQUZSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDOztzQkFDaEMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBTW5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpSW50ZXJhY3RpdmUsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWRJbixcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpSGludE9wdGlvbnNEaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaGludCc7XG5pbXBvcnQge1xuICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXInO1xuaW1wb3J0IHtNT0RFX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9wcm92aWRlcnMnO1xuaW1wb3J0IHtUVUlfTU9ERSwgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7dHVpR2V0Qm9yZGVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudCwgUG9seW1vcnBoZXVzT3V0bGV0RGlyZWN0aXZlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnMsXG59IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC1vcHRpb25zJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkfSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtdHlwZXMnO1xuXG5jb25zdCBJQ09OX1BBRERJTkcgPSAxLjc1O1xuY29uc3QgSUNPTl9QQURESU5HX1MgPSAxLjU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9wcmltaXRpdmUtdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJygkLmRhdGEtbW9kZS5hdHRyKSc6IGBtb2RlJGAsXG4gICAgICAgICdbY2xhc3MuX2F1dG9maWxsZWRdJzogYGF1dG9maWxsZWRgLFxuICAgICAgICAnW2NsYXNzLl9sYWJlbC1vdXRzaWRlXSc6IGBjb250cm9sbGVyLmxhYmVsT3V0c2lkZWAsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUludGVyYWN0aXZlXG4gICAgaW1wbGVtZW50cyBUdWlQcmltaXRpdmVUZXh0ZmllbGRcbntcbiAgICBAVmlld0NoaWxkKGBmb2N1c2FibGVFbGVtZW50YClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBmaWxsZXIgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQ2xlYW5lcjogVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9uc1snaWNvbkNsZWFuZXInXSA9IHRoaXMub3B0aW9ucy5pY29uQ2xlYW5lcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5fcmVhZG9ubHlgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpbnZhbGlkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gYGA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWUgPSBgYDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldERpcmVjdGl2ZSwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgICByZWFkb25seSBjb250ZW50PzogUXVlcnlMaXN0PHVua25vd24+O1xuXG4gICAgYXV0b2ZpbGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaGludE9wdGlvbnM6IFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge25hdGl2ZUVsZW1lbnR9ID0gdGhpcy5mb2N1c2FibGVFbGVtZW50O1xuXG4gICAgICAgIHJldHVybiAobmF0aXZlRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIHx8XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50KSBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS1zaXplYClcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplUyB8IFR1aVNpemVMIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zaXplO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuX2ludmFsaWRgKVxuICAgIGdldCBjb21wdXRlZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmludmFsaWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5faGlkZGVuYClcbiAgICBnZXQgaW5wdXRIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udGVudD8ubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5jbGVhbmVyICYmXG4gICAgICAgICAgICB0aGlzLmhhc1ZhbHVlICYmXG4gICAgICAgICAgICAhdGhpcy5jb21wdXRlZERpc2FibGVkICYmXG4gICAgICAgICAgICAhdGhpcy5yZWFkT25seVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmhpbnRPcHRpb25zPy5jb250ZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0N1c3RvbUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbGxlci5jdXN0b21Db250ZW50O1xuICAgIH1cblxuICAgIGdldCBzaG93T25seVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkICYmXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVmlzaWJsZSAmJlxuICAgICAgICAgICAgKHRoaXMuc2l6ZSA9PT0gYHNgIHx8ICh0aGlzLnNpemUgPT09IGBtYCAmJiAhdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNEZWNvciA9XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LnBsYWNlaG9sZGVyIHx8IHRoaXMucHJlZml4IHx8IHRoaXMucG9zdGZpeDtcbiAgICAgICAgY29uc3Qgc2hvd0RlY29yID0gaGFzRGVjb3IgJiYgIXRoaXMucmVhZE9ubHkgJiYgdGhpcy5jb21wdXRlZEZvY3VzZWQ7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmhhc1ZhbHVlICYmICFzaG93RGVjb3I7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1BsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMuc2hvd09ubHlQbGFjZWhvbGRlciAmJlxuICAgICAgICAgICAgKHRoaXMucGxhY2Vob2xkZXJSYWlzYWJsZSB8fCB0aGlzLnBsYWNlaG9sZGVyVmlzaWJsZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJSYWlzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgJiZcbiAgICAgICAgICAgICgodGhpcy5jb21wdXRlZEZvY3VzZWQgJiYgIXRoaXMucmVhZE9ubHkpIHx8IHRoaXMuaGFzVmFsdWUgfHwgdGhpcy5hdXRvZmlsbGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgc3R5bGUuLS1ib3JkZXItc3RhcnQucmVtYClcbiAgICBnZXQgYm9yZGVyU3RhcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbkxlZnRDb250ZW50ID8gdGhpcy5pY29uUGFkZGluZ0xlZnQgOiAwO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgc3R5bGUuLS1ib3JkZXItZW5kLnJlbWApXG4gICAgZ2V0IGJvcmRlckVuZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0Qm9yZGVyKFxuICAgICAgICAgICAgISF0aGlzLmljb25Db250ZW50LFxuICAgICAgICAgICAgdGhpcy5oYXNDbGVhbmVyLFxuICAgICAgICAgICAgdGhpcy5oYXNUb29sdGlwLFxuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpY29uQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5pY29uO1xuICAgIH1cblxuICAgIGdldCBpY29uTGVmdENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPlxuICAgID4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmljb25MZWZ0O1xuICAgIH1cblxuICAgIC8vIFNhZmFyaSBleHBpcmF0aW9uIGRhdGUgYXV0b2ZpbGwgd29ya2Fyb3VuZFxuICAgIGdldCBuYW1lKCk6ICdjY2V4cGlyeXllYXInIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmF1dG9jb21wbGV0ZSA9PT0gYGNjLWV4cGBcbiAgICAgICAgICAgID8gYGNjZXhwaXJ5eWVhcmBcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5pZCB8fCBgYDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKGBmb2N1c2luYCwgW2B0cnVlYF0pXG4gICAgQEhvc3RMaXN0ZW5lcihgZm9jdXNvdXRgLCBbYGZhbHNlYF0pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0SW5kZW50JChlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQoZWxlbWVudCwgYHNjcm9sbGApLnBpcGUobWFwKCgpID0+IC0xICogZWxlbWVudC5zY3JvbGxMZWZ0KSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IGBgO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShgYCk7XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUZvY3VzYWJsZUVsZW1lbnR9ID0gdGhpcztcblxuICAgICAgICBpZiAoIW5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgZXZlbnQudGFyZ2V0ID09PSBuYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpY29uUGFkZGluZ0xlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gYHNgID8gSUNPTl9QQURESU5HX1MgOiBJQ09OX1BBRERJTkc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGxhY2Vob2xkZXJSYWlzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSAhPT0gYHNgICYmICF0aGlzLmNvbnRyb2xsZXIubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9maWxsZWQgPT09IGF1dG9maWxsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZCA9IGF1dG9maWxsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8uY2hhbmdlcyB8IGFzeW5jXCI+PC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGludE9wdGlvbnM/LmNoYW5nZSQgfCBhc3luY1wiPjwvbmctY29udGFpbmVyPlxuPGRpdlxuICAgIHR1aVdyYXBwZXJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3dyYXBwZXJcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICBbaG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFthY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgIFtzdHlsZS4tLXRleHQtaW5kZW50LnB4XT1cImRlY29yLnByZSQgfCBhc3luY1wiXG4gICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAoY2xpY2sucHJldmVudC5zaWxlbnQpPVwiKDApXCJcbiAgICAodHVpQXV0b2ZpbGxlZENoYW5nZSk9XCJvbkF1dG9maWxsZWQoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2VsZWN0XCI+PC9uZy1jb250ZW50PlxuICAgIDxpbnB1dFxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICB0dWlNYXNrQWNjZXNzb3JcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wcmltaXRpdmUtdGV4dGZpZWxkX19uYXRpdmUtaW5wdXRcIlxuICAgICAgICBjbGFzcz1cInQtaW5wdXRcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5IHx8ICFlZGl0YWJsZVwiXG4gICAgICAgIFt0dWlGb2N1c2FibGVdPVwiY29tcHV0ZWRGb2N1c2FibGVcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaW5wdXRIaWRkZW5cIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3ZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJ0LWlucHV0IHQtaW5wdXRfdGVtcGxhdGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpQ29udGVudFwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidC1jb250ZW50XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaWNvbkxlZnRDb250ZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1pY29uIHQtaWNvbl9sZWZ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbkxlZnRDb250ZW50IGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtcGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy50LXBsYWNlaG9sZGVyX3JhaXNlZF09XCJwbGFjZWhvbGRlclJhaXNlZFwiXG4gICAgICAgICAgICAgICAgW2Zvcl09XCJjb21wdXRlZElkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlci12YWx1ZS1kZWNvcmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHR1aS12YWx1ZS1kZWNvcmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICNkZWNvclxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3ZhbHVlLWRlY29yYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtdmFsdWUtZGVjb3JhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50LWhhcy12YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0SW5kZW50LnB4XT1cImdldEluZGVudCQoZm9jdXNhYmxlRWxlbWVudCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgPjwvdHVpLXZhbHVlLWRlY29yYXRpb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQ3VzdG9tQ29udGVudFwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX2N1c3RvbS1jb250ZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jdXN0b20tY29udGVudFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRyb2xsZXIuY3VzdG9tQ29udGVudCBhcyBzcmNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jdXN0b20taWNvblwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJzcmNcIlxuICAgICAgICAgICAgPjwvdHVpLXN2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cImhhc0NsZWFuZXJcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wcmltaXRpdmUtdGV4dGZpZWxkX19jbGVhbmVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jbGVhbmVyXCJcbiAgICAgICAgICAgIChjbGljay5zdG9wKT1cImNsZWFyKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJpY29uQ2xlYW5lciBhcyBzcmNcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHR1aS10b29sdGlwXG4gICAgICAgICAgICAqbmdJZj1cImhpbnRPcHRpb25zICYmIGhpbnRPcHRpb25zLmNvbnRlbnQgJiYgIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wcmltaXRpdmUtdGV4dGZpZWxkX190b29sdGlwXCJcbiAgICAgICAgICAgIFtkZXNjcmliZUlkXT1cImNvbXB1dGVkSWRcIlxuICAgICAgICAgICAgW2NvbnRlbnRdPVwiaGludE9wdGlvbnMuY29udGVudFwiXG4gICAgICAgICAgICBbZGlyZWN0aW9uXT1cImhpbnRPcHRpb25zLmRpcmVjdGlvblwiXG4gICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJoaW50T3B0aW9ucy5hcHBlYXJhbmNlXCJcbiAgICAgICAgICAgIFtzaG93RGVsYXldPVwiaGludE9wdGlvbnMuc2hvd0RlbGF5XCJcbiAgICAgICAgICAgIFtoaWRlRGVsYXldPVwiaGludE9wdGlvbnMuaGlkZURlbGF5XCJcbiAgICAgICAgPjwvdHVpLXRvb2x0aXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaWNvbkNvbnRlbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJpY29uQ29udGVudCBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZC9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9wcmltaXRpdmUtdGV4dGZpZWxkL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsMEJBQTBCLEVBRTFCLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEdBRW5DLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFzQiwyQkFBMkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFGLE9BQU8sRUFBQyxTQUFTLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxN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LFdBQVc7dUJBQUMsaUJBQWlCO2dCQU05QixPQUFPO3NCQUZOLEtBQUs7Z0JBTU4sUUFBUTtzQkFGUCxLQUFLO2dCQU1OLE1BQU07c0JBRkwsS0FBSztnQkFNTixPQUFPO3NCQUZOLEtBQUs7Z0JBTU4sS0FBSztzQkFGSixLQUFLO2dCQUtHLFdBQVc7c0JBRG5CLE1BQU07Z0JBSUUsT0FBTztzQkFEZixlQUFlO3VCQUFDLDJCQUEyQixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFvQzdELElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTXpCLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU16QixXQUFXO3NCQURkLFdBQVc7dUJBQUMsZUFBZTtnQkF5RHhCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQywwQkFBMEI7Z0JBTW5DLFNBQVM7c0JBRFosV0FBVzt1QkFBQyx3QkFBd0I7Z0JBaUNyQyxTQUFTO3NCQUZSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDOztzQkFDaEMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBTW5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpSW50ZXJhY3RpdmUsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWRJbixcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpSGludE9wdGlvbnNEaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaGludCc7XG5pbXBvcnQge1xuICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXInO1xuaW1wb3J0IHtNT0RFX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9wcm92aWRlcnMnO1xuaW1wb3J0IHtUVUlfTU9ERSwgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7dHVpR2V0Qm9yZGVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudCwgUG9seW1vcnBoZXVzT3V0bGV0RGlyZWN0aXZlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnMsXG59IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC1vcHRpb25zJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkfSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtdHlwZXMnO1xuXG5jb25zdCBJQ09OX1BBRERJTkcgPSAxLjc1O1xuY29uc3QgSUNPTl9QQURESU5HX1MgPSAxLjU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9wcmltaXRpdmUtdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJygkLmRhdGEtbW9kZS5hdHRyKSc6IGBtb2RlJGAsXG4gICAgICAgICdbY2xhc3MuX2F1dG9maWxsZWRdJzogYGF1dG9maWxsZWRgLFxuICAgICAgICAnW2NsYXNzLl9sYWJlbC1vdXRzaWRlXSc6IGBjb250cm9sbGVyLmxhYmVsT3V0c2lkZWAsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUludGVyYWN0aXZlXG4gICAgaW1wbGVtZW50cyBUdWlQcmltaXRpdmVUZXh0ZmllbGRcbntcbiAgICBAVmlld0NoaWxkKGBmb2N1c2FibGVFbGVtZW50YClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBmaWxsZXIgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQ2xlYW5lcjogVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9uc1snaWNvbkNsZWFuZXInXSA9IHRoaXMub3B0aW9ucy5pY29uQ2xlYW5lcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5fcmVhZG9ubHlgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpbnZhbGlkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gYGA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWUgPSBgYDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldERpcmVjdGl2ZSwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgICByZWFkb25seSBjb250ZW50PzogUXVlcnlMaXN0PHVua25vd24+O1xuXG4gICAgYXV0b2ZpbGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaGludE9wdGlvbnM6IFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge25hdGl2ZUVsZW1lbnR9ID0gdGhpcy5mb2N1c2FibGVFbGVtZW50O1xuXG4gICAgICAgIHJldHVybiAobmF0aXZlRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIHx8XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50KSBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS1zaXplYClcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zaXplO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuX2ludmFsaWRgKVxuICAgIGdldCBjb21wdXRlZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmludmFsaWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5faGlkZGVuYClcbiAgICBnZXQgaW5wdXRIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udGVudD8ubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5jbGVhbmVyICYmXG4gICAgICAgICAgICB0aGlzLmhhc1ZhbHVlICYmXG4gICAgICAgICAgICAhdGhpcy5jb21wdXRlZERpc2FibGVkICYmXG4gICAgICAgICAgICAhdGhpcy5yZWFkT25seVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmhpbnRPcHRpb25zPy5jb250ZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0N1c3RvbUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbGxlci5jdXN0b21Db250ZW50O1xuICAgIH1cblxuICAgIGdldCBzaG93T25seVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkICYmXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVmlzaWJsZSAmJlxuICAgICAgICAgICAgKHRoaXMuc2l6ZSA9PT0gYHNgIHx8ICh0aGlzLnNpemUgPT09IGBtYCAmJiAhdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNEZWNvciA9XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LnBsYWNlaG9sZGVyIHx8IHRoaXMucHJlZml4IHx8IHRoaXMucG9zdGZpeDtcbiAgICAgICAgY29uc3Qgc2hvd0RlY29yID0gaGFzRGVjb3IgJiYgIXRoaXMucmVhZE9ubHkgJiYgdGhpcy5jb21wdXRlZEZvY3VzZWQ7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmhhc1ZhbHVlICYmICFzaG93RGVjb3I7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1BsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMuc2hvd09ubHlQbGFjZWhvbGRlciAmJlxuICAgICAgICAgICAgKHRoaXMucGxhY2Vob2xkZXJSYWlzYWJsZSB8fCB0aGlzLnBsYWNlaG9sZGVyVmlzaWJsZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJSYWlzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgJiZcbiAgICAgICAgICAgICgodGhpcy5jb21wdXRlZEZvY3VzZWQgJiYgIXRoaXMucmVhZE9ubHkpIHx8IHRoaXMuaGFzVmFsdWUgfHwgdGhpcy5hdXRvZmlsbGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgc3R5bGUuLS1ib3JkZXItc3RhcnQucmVtYClcbiAgICBnZXQgYm9yZGVyU3RhcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbkxlZnRDb250ZW50ID8gdGhpcy5pY29uUGFkZGluZ0xlZnQgOiAwO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgc3R5bGUuLS1ib3JkZXItZW5kLnJlbWApXG4gICAgZ2V0IGJvcmRlckVuZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0Qm9yZGVyKFxuICAgICAgICAgICAgISF0aGlzLmljb25Db250ZW50LFxuICAgICAgICAgICAgdGhpcy5oYXNDbGVhbmVyLFxuICAgICAgICAgICAgdGhpcy5oYXNUb29sdGlwLFxuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpY29uQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZUwgfCBUdWlTaXplUz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5pY29uO1xuICAgIH1cblxuICAgIGdldCBpY29uTGVmdENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplTCB8IFR1aVNpemVTPlxuICAgID4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmljb25MZWZ0O1xuICAgIH1cblxuICAgIC8vIFNhZmFyaSBleHBpcmF0aW9uIGRhdGUgYXV0b2ZpbGwgd29ya2Fyb3VuZFxuICAgIGdldCBuYW1lKCk6ICdjY2V4cGlyeXllYXInIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmF1dG9jb21wbGV0ZSA9PT0gYGNjLWV4cGBcbiAgICAgICAgICAgID8gYGNjZXhwaXJ5eWVhcmBcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5pZCB8fCBgYDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKGBmb2N1c2luYCwgW2B0cnVlYF0pXG4gICAgQEhvc3RMaXN0ZW5lcihgZm9jdXNvdXRgLCBbYGZhbHNlYF0pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0SW5kZW50JChlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQoZWxlbWVudCwgYHNjcm9sbGApLnBpcGUobWFwKCgpID0+IC0xICogZWxlbWVudC5zY3JvbGxMZWZ0KSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IGBgO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShgYCk7XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUZvY3VzYWJsZUVsZW1lbnR9ID0gdGhpcztcblxuICAgICAgICBpZiAoIW5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgZXZlbnQudGFyZ2V0ID09PSBuYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpY29uUGFkZGluZ0xlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gYHNgID8gSUNPTl9QQURESU5HX1MgOiBJQ09OX1BBRERJTkc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGxhY2Vob2xkZXJSYWlzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSAhPT0gYHNgICYmICF0aGlzLmNvbnRyb2xsZXIubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9maWxsZWQgPT09IGF1dG9maWxsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZCA9IGF1dG9maWxsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8uY2hhbmdlcyB8IGFzeW5jXCI+PC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGludE9wdGlvbnM/LmNoYW5nZSQgfCBhc3luY1wiPjwvbmctY29udGFpbmVyPlxuPGRpdlxuICAgIHR1aVdyYXBwZXJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3dyYXBwZXJcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICBbaG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFthY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgIFtzdHlsZS4tLXRleHQtaW5kZW50LnB4XT1cImRlY29yLnByZSQgfCBhc3luY1wiXG4gICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAoY2xpY2sucHJldmVudC5zaWxlbnQpPVwiKDApXCJcbiAgICAodHVpQXV0b2ZpbGxlZENoYW5nZSk9XCJvbkF1dG9maWxsZWQoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2VsZWN0XCI+PC9uZy1jb250ZW50PlxuICAgIDxpbnB1dFxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICB0dWlNYXNrQWNjZXNzb3JcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wcmltaXRpdmUtdGV4dGZpZWxkX19uYXRpdmUtaW5wdXRcIlxuICAgICAgICBjbGFzcz1cInQtaW5wdXRcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5IHx8ICFlZGl0YWJsZVwiXG4gICAgICAgIFt0dWlGb2N1c2FibGVdPVwiY29tcHV0ZWRGb2N1c2FibGVcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaW5wdXRIaWRkZW5cIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3ZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJ0LWlucHV0IHQtaW5wdXRfdGVtcGxhdGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpQ29udGVudFwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidC1jb250ZW50XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaWNvbkxlZnRDb250ZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1pY29uIHQtaWNvbl9sZWZ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbkxlZnRDb250ZW50IGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtcGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy50LXBsYWNlaG9sZGVyX3JhaXNlZF09XCJwbGFjZWhvbGRlclJhaXNlZFwiXG4gICAgICAgICAgICAgICAgW2Zvcl09XCJjb21wdXRlZElkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlci12YWx1ZS1kZWNvcmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHR1aS12YWx1ZS1kZWNvcmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICNkZWNvclxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3ZhbHVlLWRlY29yYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtdmFsdWUtZGVjb3JhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50LWhhcy12YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0SW5kZW50LnB4XT1cImdldEluZGVudCQoZm9jdXNhYmxlRWxlbWVudCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgPjwvdHVpLXZhbHVlLWRlY29yYXRpb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQ3VzdG9tQ29udGVudFwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX2N1c3RvbS1jb250ZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jdXN0b20tY29udGVudFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRyb2xsZXIuY3VzdG9tQ29udGVudCBhcyBzcmNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jdXN0b20taWNvblwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJzcmNcIlxuICAgICAgICAgICAgPjwvdHVpLXN2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cImhhc0NsZWFuZXJcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wcmltaXRpdmUtdGV4dGZpZWxkX19jbGVhbmVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jbGVhbmVyXCJcbiAgICAgICAgICAgIChjbGljay5zdG9wKT1cImNsZWFyKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJpY29uQ2xlYW5lciBhcyBzcmNcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHR1aS10b29sdGlwXG4gICAgICAgICAgICAqbmdJZj1cImhpbnRPcHRpb25zICYmIGhpbnRPcHRpb25zLmNvbnRlbnQgJiYgIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wcmltaXRpdmUtdGV4dGZpZWxkX190b29sdGlwXCJcbiAgICAgICAgICAgIFtkZXNjcmliZUlkXT1cImNvbXB1dGVkSWRcIlxuICAgICAgICAgICAgW2NvbnRlbnRdPVwiaGludE9wdGlvbnMuY29udGVudFwiXG4gICAgICAgICAgICBbZGlyZWN0aW9uXT1cImhpbnRPcHRpb25zLmRpcmVjdGlvblwiXG4gICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJoaW50T3B0aW9ucy5hcHBlYXJhbmNlXCJcbiAgICAgICAgICAgIFtzaG93RGVsYXldPVwiaGludE9wdGlvbnMuc2hvd0RlbGF5XCJcbiAgICAgICAgICAgIFtoaWRlRGVsYXldPVwiaGludE9wdGlvbnMuaGlkZURlbGF5XCJcbiAgICAgICAgPjwvdHVpLXRvb2x0aXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaWNvbkNvbnRlbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJpY29uQ29udGVudCBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -164,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
164
164
  type: HostBinding,
165
165
  args: [`class._single`]
166
166
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9wcmltaXRpdmUteWVhci1waWNrZXIvcHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9wcmltaXRpdmUteWVhci1waWNrZXIvcHJpbWl0aXZlLXllYXItcGlja2VyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBR1osY0FBYyxFQUNkLFVBQVUsRUFDVixRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQzs7OztBQUd2QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDbEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBUXZCLE1BQU0sT0FBTywrQkFBK0I7SUFONUM7UUFPWSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQztRQUk1RCxVQUFLLEdBQWlELElBQUksQ0FBQztRQUkzRCxnQkFBVyxHQUFZLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUkvQyxRQUFHLEdBQVksYUFBYSxDQUFDO1FBSTdCLFFBQUcsR0FBWSxZQUFZLENBQUM7UUFJNUIsd0JBQW1CLEdBQThCLG9CQUFvQixDQUFDO1FBRzdELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxD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QUM7SUFDM0MsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWdCLEVBQUUsSUFBWTtRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWdCLEVBQUUsSUFBWTtRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQzs7NkhBN0tRLCtCQUErQjtpSEFBL0IsK0JBQStCLDhSQy9CNUMsNjVCQXVCQTtBRGVJO0lBREMsY0FBYyxFQUFFOzhEQUMwQztBQUkzRDtJQURDLGNBQWMsRUFBRTtvRUFDOEI7QUFJL0M7SUFEQyxjQUFjLEVBQUU7NERBQ1k7QUFJN0I7SUFEQyxjQUFjLEVBQUU7NERBQ1c7QUFJNUI7SUFEQyxjQUFjLEVBQUU7NEVBQ3FEOzRGQXZCN0QsK0JBQStCO2tCQU4zQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSx1Q0FBdUM7b0JBQ3BELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO29CQUNqRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBUUcsS0FBSztzQkFGSixLQUFLO2dCQU1OLFdBQVc7c0JBRlYsS0FBSztnQkFNTixHQUFHO3NCQUZGLEtBQUs7Z0JBTU4sR0FBRztzQkFGRixLQUFLO2dCQU1OLG1CQUFtQjtzQkFGbEIsS0FBSztnQkFLRyxTQUFTO3NCQURqQixNQUFNO2dCQUlILFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURheVJhbmdlLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIHR1aUluUmFuZ2UsXG4gICAgVHVpTW9udGgsXG4gICAgVHVpTW9udGhSYW5nZSxcbiAgICBUdWlZZWFyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpSW50ZXJhY3RpdmVTdGF0ZSwgVHVpUmFuZ2VTdGF0ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZW51bXMnO1xuXG5jb25zdCBMSU1JVCA9IDEwMDtcbmNvbnN0IElURU1TX0lOX1JPVyA9IDQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXByaW1pdGl2ZS15ZWFyLXBpY2tlcmAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3ByaW1pdGl2ZS15ZWFyLXBpY2tlci50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9wcmltaXRpdmUteWVhci1waWNrZXIuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVZZWFyUGlja2VyQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGhvdmVyZWRJdGVtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHByZXNzZWRJdGVtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRZZWFyID0gVHVpTW9udGguY3VycmVudExvY2FsKCkueWVhcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZTogVHVpTW9udGhSYW5nZSB8IFR1aVllYXIgfCBUdWlEYXlSYW5nZSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGluaXRpYWxJdGVtOiBUdWlZZWFyID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluOiBUdWlZZWFyID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXg6IFR1aVllYXIgPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8bnVtYmVyPiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgeWVhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlZZWFyPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5fc2luZ2xlYClcbiAgICBnZXQgaXNTaW5nbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZX0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAhIXZhbHVlICYmIHRoaXMuaXNSYW5nZSh2YWx1ZSkgJiYgdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50byk7XG4gICAgfVxuXG4gICAgZ2V0IHJvd3MoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCgodGhpcy5jYWxjdWxhdGVkTWF4IC0gdGhpcy5jYWxjdWxhdGVkTWluKSAvIElURU1TX0lOX1JPVyk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGN1bGF0ZWRNaW4oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaW5pdGlhbCA9IHRoaXMuaW5pdGlhbEl0ZW0ueWVhciAtIExJTUlUO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm1pbi55ZWFyID4gaW5pdGlhbCA/IHRoaXMubWluLnllYXIgOiBpbml0aWFsO1xuICAgIH1cblxuICAgIGdldCBjYWxjdWxhdGVkTWF4KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLmluaXRpYWxJdGVtLnllYXIgKyBMSU1JVDtcblxuICAgICAgICByZXR1cm4gdGhpcy5tYXgueWVhciA8IGluaXRpYWwgPyB0aGlzLm1heC55ZWFyICsgMSA6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgaXNSYW5nZShpdGVtOiBUdWlNb250aFJhbmdlIHwgVHVpWWVhcik6IGl0ZW0gaXMgVHVpTW9udGhSYW5nZSB7XG4gICAgICAgIHJldHVybiBpdGVtIGluc3RhbmNlb2YgVHVpTW9udGhSYW5nZTtcbiAgICB9XG5cbiAgICBzY3JvbGxJdGVtSW50b1ZpZXcoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxJdGVtLnllYXIgPT09IGl0ZW07XG4gICAgfVxuXG4gICAgZ2V0SXRlbShyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHJvd0luZGV4ICogSVRFTVNfSU5fUk9XICsgY29sSW5kZXggKyB0aGlzLmNhbGN1bGF0ZWRNaW47XG4gICAgfVxuXG4gICAgZ2V0SXRlbVN0YXRlKGl0ZW06IG51bWJlcik6IFR1aUludGVyYWN0aXZlU3RhdGUgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge2Rpc2FibGVkSXRlbUhhbmRsZXIsIG1heCwgcHJlc3NlZEl0ZW0sIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgbWF4LnllYXIgPCBpdGVtIHx8XG4gICAgICAgICAgICAoZGlzYWJsZWRJdGVtSGFuZGxlciAhPT0gQUxXQVlTX0ZBTFNFX0hBTkRMRVIgJiYgZGlzYWJsZWRJdGVtSGFuZGxlcihpdGVtKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpSW50ZXJhY3RpdmVTdGF0ZS5EaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcmVzc2VkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuQWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdmVyZWRJdGVtID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpSW50ZXJhY3RpdmVTdGF0ZS5Ib3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gICAgZ2V0SXRlbVJhbmdlKGl0ZW06IG51bWJlcik6IFR1aVJhbmdlU3RhdGUgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUdWlZZWFyKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUueWVhciA9PT0gaXRlbSA/IFR1aVJhbmdlU3RhdGUuU2luZ2xlIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh2YWx1ZS5mcm9tLnllYXIgPT09IGl0ZW0gJiYgIXZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB8fFxuICAgICAgICAgICAgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPiB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXIgPT09IGl0ZW0gJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkgfHxcbiAgICAgICAgICAgIChob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtID09PSBpdGVtICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPCB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpUmFuZ2VTdGF0ZS5TdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh2YWx1ZS50by55ZWFyID09PSBpdGVtICYmICF2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkgfHxcbiAgICAgICAgICAgIChob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtIDwgdmFsdWUuZnJvbS55ZWFyICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuZnJvbS55ZWFyID09PSBpdGVtICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykpIHx8XG4gICAgICAgICAgICAoaG92ZXJlZEl0ZW0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBob3ZlcmVkSXRlbSA9PT0gaXRlbSAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtID4gdmFsdWUuZnJvbS55ZWFyICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aVJhbmdlU3RhdGUuRW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pICYmIHZhbHVlLmZyb20ueWVhciA9PT0gaXRlbVxuICAgICAgICAgICAgPyBUdWlSYW5nZVN0YXRlLlNpbmdsZVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGl0ZW1Jc1RvZGF5KGl0ZW06IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhciA9PT0gaXRlbTtcbiAgICB9XG5cbiAgICBpdGVtSXNJbnRlcnZhbChpdGVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCAhdGhpcy5pc1JhbmdlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmZyb20ueWVhciA8PSBpdGVtICYmIHZhbHVlLnRvLnllYXIgPiBpdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdmVyZWRJdGVtID09PSBudWxsIHx8IHZhbHVlLmZyb20ueWVhciA9PT0gaG92ZXJlZEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0dWlJblJhbmdlKFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIE1hdGgubWluKHZhbHVlLmZyb20ueWVhciwgaG92ZXJlZEl0ZW0pLFxuICAgICAgICAgICAgTWF0aC5tYXgodmFsdWUuZnJvbS55ZWFyLCBob3ZlcmVkSXRlbSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25JdGVtSG92ZXJlZChob3ZlcmVkOiBib29sZWFuLCBpdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkSXRlbShob3ZlcmVkLCBpdGVtKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4sIGl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWRJdGVtKHByZXNzZWQsIGl0ZW0pO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnllYXJDbGljay5lbWl0KG5ldyBUdWlZZWFyKGl0ZW0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWRJdGVtKGhvdmVyZWQ6IGJvb2xlYW4sIGl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtID0gaG92ZXJlZCA/IGl0ZW0gOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJlc3NlZEl0ZW0ocHJlc3NlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlc3NlZEl0ZW0gPSBwcmVzc2VkID8gaXRlbSA6IG51bGw7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICp0dWlSZXBlYXRUaW1lcz1cImxldCByb3dJbmRleCBvZiByb3dzXCJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS15ZWFyLXBpY2tlcl9fcm93XCJcbiAgICBjbGFzcz1cInQtcm93XCJcbj5cbiAgICA8bmctY29udGFpbmVyICp0dWlSZXBlYXRUaW1lcz1cImxldCBjb2xJbmRleCBvZiA0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICp0dWlMZXQ9XCJnZXRJdGVtKHJvd0luZGV4LCBjb2xJbmRleCkgYXMgaXRlbVwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS15ZWFyLXBpY2tlcl9fY2VsbFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY2VsbFwiXG4gICAgICAgICAgICBbY2xhc3MudC1jZWxsX3RvZGF5XT1cIml0ZW1Jc1RvZGF5KGl0ZW0pXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWNlbGxfaW50ZXJ2YWxdPVwiaXRlbUlzSW50ZXJ2YWwoaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1yYW5nZV09XCJnZXRJdGVtUmFuZ2UoaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJnZXRJdGVtU3RhdGUoaXRlbSlcIlxuICAgICAgICAgICAgW3R1aVNjcm9sbEludG9WaWV3XT1cInNjcm9sbEl0ZW1JbnRvVmlldyhpdGVtKVwiXG4gICAgICAgICAgICAodHVpSG92ZXJlZENoYW5nZSk9XCJvbkl0ZW1Ib3ZlcmVkKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKHR1aVByZXNzZWRDaGFuZ2UpPVwib25JdGVtUHJlc3NlZCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LWl0ZW1cIj57eyBpdGVtIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9wcmltaXRpdmUteWVhci1waWNrZXIvcHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9wcmltaXRpdmUteWVhci1waWNrZXIvcHJpbWl0aXZlLXllYXItcGlja2VyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBR1osY0FBYyxFQUNkLFVBQVUsRUFDVixRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQzs7OztBQUd2QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDbEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBUXZCLE1BQU0sT0FBTywrQkFBK0I7SUFONUM7UUFPWSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQztRQUk1RCxVQUFLLEdBQWlELElBQUksQ0FBQztRQUkzRCxnQkFBVyxHQUFZLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUkvQyxRQUFHLEdBQVksYUFBYSxDQUFDO1FBSTdCLFFBQUcsR0FBWSxZQUFZLENBQUM7UUFJNUIsd0JBQW1CLEdBQThCLG9CQUFvQixDQUFDO1FBRzdELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxD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QUM7SUFDM0MsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWdCLEVBQUUsSUFBWTtRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWdCLEVBQUUsSUFBWTtRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQzs7NkhBN0tRLCtCQUErQjtpSEFBL0IsK0JBQStCLDhSQy9CNUMsNjVCQXVCQTtBRGVJO0lBREMsY0FBYyxFQUFFOzhEQUMwQztBQUkzRDtJQURDLGNBQWMsRUFBRTtvRUFDOEI7QUFJL0M7SUFEQyxjQUFjLEVBQUU7NERBQ1k7QUFJN0I7SUFEQyxjQUFjLEVBQUU7NERBQ1c7QUFJNUI7SUFEQyxjQUFjLEVBQUU7NEVBQ3FEOzRGQXZCN0QsK0JBQStCO2tCQU4zQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSx1Q0FBdUM7b0JBQ3BELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO29CQUNqRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBUUcsS0FBSztzQkFGSixLQUFLO2dCQU1OLFdBQVc7c0JBRlYsS0FBSztnQkFNTixHQUFHO3NCQUZGLEtBQUs7Z0JBTU4sR0FBRztzQkFGRixLQUFLO2dCQU1OLG1CQUFtQjtzQkFGbEIsS0FBSztnQkFLRyxTQUFTO3NCQURqQixNQUFNO2dCQUlILFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURheVJhbmdlLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIHR1aUluUmFuZ2UsXG4gICAgVHVpTW9udGgsXG4gICAgVHVpTW9udGhSYW5nZSxcbiAgICBUdWlZZWFyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpSW50ZXJhY3RpdmVTdGF0ZSwgVHVpUmFuZ2VTdGF0ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZW51bXMnO1xuXG5jb25zdCBMSU1JVCA9IDEwMDtcbmNvbnN0IElURU1TX0lOX1JPVyA9IDQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXByaW1pdGl2ZS15ZWFyLXBpY2tlcmAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3ByaW1pdGl2ZS15ZWFyLXBpY2tlci50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9wcmltaXRpdmUteWVhci1waWNrZXIuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVZZWFyUGlja2VyQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGhvdmVyZWRJdGVtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHByZXNzZWRJdGVtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRZZWFyID0gVHVpTW9udGguY3VycmVudExvY2FsKCkueWVhcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZTogVHVpRGF5UmFuZ2UgfCBUdWlNb250aFJhbmdlIHwgVHVpWWVhciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGluaXRpYWxJdGVtOiBUdWlZZWFyID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluOiBUdWlZZWFyID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXg6IFR1aVllYXIgPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8bnVtYmVyPiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgeWVhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlZZWFyPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5fc2luZ2xlYClcbiAgICBnZXQgaXNTaW5nbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZX0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAhIXZhbHVlICYmIHRoaXMuaXNSYW5nZSh2YWx1ZSkgJiYgdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50byk7XG4gICAgfVxuXG4gICAgZ2V0IHJvd3MoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCgodGhpcy5jYWxjdWxhdGVkTWF4IC0gdGhpcy5jYWxjdWxhdGVkTWluKSAvIElURU1TX0lOX1JPVyk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGN1bGF0ZWRNaW4oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaW5pdGlhbCA9IHRoaXMuaW5pdGlhbEl0ZW0ueWVhciAtIExJTUlUO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm1pbi55ZWFyID4gaW5pdGlhbCA/IHRoaXMubWluLnllYXIgOiBpbml0aWFsO1xuICAgIH1cblxuICAgIGdldCBjYWxjdWxhdGVkTWF4KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLmluaXRpYWxJdGVtLnllYXIgKyBMSU1JVDtcblxuICAgICAgICByZXR1cm4gdGhpcy5tYXgueWVhciA8IGluaXRpYWwgPyB0aGlzLm1heC55ZWFyICsgMSA6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgaXNSYW5nZShpdGVtOiBUdWlNb250aFJhbmdlIHwgVHVpWWVhcik6IGl0ZW0gaXMgVHVpTW9udGhSYW5nZSB7XG4gICAgICAgIHJldHVybiBpdGVtIGluc3RhbmNlb2YgVHVpTW9udGhSYW5nZTtcbiAgICB9XG5cbiAgICBzY3JvbGxJdGVtSW50b1ZpZXcoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxJdGVtLnllYXIgPT09IGl0ZW07XG4gICAgfVxuXG4gICAgZ2V0SXRlbShyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHJvd0luZGV4ICogSVRFTVNfSU5fUk9XICsgY29sSW5kZXggKyB0aGlzLmNhbGN1bGF0ZWRNaW47XG4gICAgfVxuXG4gICAgZ2V0SXRlbVN0YXRlKGl0ZW06IG51bWJlcik6IFR1aUludGVyYWN0aXZlU3RhdGUgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge2Rpc2FibGVkSXRlbUhhbmRsZXIsIG1heCwgcHJlc3NlZEl0ZW0sIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgbWF4LnllYXIgPCBpdGVtIHx8XG4gICAgICAgICAgICAoZGlzYWJsZWRJdGVtSGFuZGxlciAhPT0gQUxXQVlTX0ZBTFNFX0hBTkRMRVIgJiYgZGlzYWJsZWRJdGVtSGFuZGxlcihpdGVtKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpSW50ZXJhY3RpdmVTdGF0ZS5EaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcmVzc2VkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuQWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdmVyZWRJdGVtID09PSBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpSW50ZXJhY3RpdmVTdGF0ZS5Ib3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gICAgZ2V0SXRlbVJhbmdlKGl0ZW06IG51bWJlcik6IFR1aVJhbmdlU3RhdGUgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUdWlZZWFyKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUueWVhciA9PT0gaXRlbSA/IFR1aVJhbmdlU3RhdGUuU2luZ2xlIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh2YWx1ZS5mcm9tLnllYXIgPT09IGl0ZW0gJiYgIXZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB8fFxuICAgICAgICAgICAgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPiB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXIgPT09IGl0ZW0gJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkgfHxcbiAgICAgICAgICAgIChob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtID09PSBpdGVtICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPCB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpUmFuZ2VTdGF0ZS5TdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh2YWx1ZS50by55ZWFyID09PSBpdGVtICYmICF2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkgfHxcbiAgICAgICAgICAgIChob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtIDwgdmFsdWUuZnJvbS55ZWFyICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuZnJvbS55ZWFyID09PSBpdGVtICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykpIHx8XG4gICAgICAgICAgICAoaG92ZXJlZEl0ZW0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBob3ZlcmVkSXRlbSA9PT0gaXRlbSAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtID4gdmFsdWUuZnJvbS55ZWFyICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aVJhbmdlU3RhdGUuRW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pICYmIHZhbHVlLmZyb20ueWVhciA9PT0gaXRlbVxuICAgICAgICAgICAgPyBUdWlSYW5nZVN0YXRlLlNpbmdsZVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGl0ZW1Jc1RvZGF5KGl0ZW06IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhciA9PT0gaXRlbTtcbiAgICB9XG5cbiAgICBpdGVtSXNJbnRlcnZhbChpdGVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCAhdGhpcy5pc1JhbmdlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmZyb20ueWVhciA8PSBpdGVtICYmIHZhbHVlLnRvLnllYXIgPiBpdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdmVyZWRJdGVtID09PSBudWxsIHx8IHZhbHVlLmZyb20ueWVhciA9PT0gaG92ZXJlZEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0dWlJblJhbmdlKFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIE1hdGgubWluKHZhbHVlLmZyb20ueWVhciwgaG92ZXJlZEl0ZW0pLFxuICAgICAgICAgICAgTWF0aC5tYXgodmFsdWUuZnJvbS55ZWFyLCBob3ZlcmVkSXRlbSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25JdGVtSG92ZXJlZChob3ZlcmVkOiBib29sZWFuLCBpdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkSXRlbShob3ZlcmVkLCBpdGVtKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4sIGl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWRJdGVtKHByZXNzZWQsIGl0ZW0pO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnllYXJDbGljay5lbWl0KG5ldyBUdWlZZWFyKGl0ZW0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWRJdGVtKGhvdmVyZWQ6IGJvb2xlYW4sIGl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtID0gaG92ZXJlZCA/IGl0ZW0gOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJlc3NlZEl0ZW0ocHJlc3NlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlc3NlZEl0ZW0gPSBwcmVzc2VkID8gaXRlbSA6IG51bGw7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICp0dWlSZXBlYXRUaW1lcz1cImxldCByb3dJbmRleCBvZiByb3dzXCJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS15ZWFyLXBpY2tlcl9fcm93XCJcbiAgICBjbGFzcz1cInQtcm93XCJcbj5cbiAgICA8bmctY29udGFpbmVyICp0dWlSZXBlYXRUaW1lcz1cImxldCBjb2xJbmRleCBvZiA0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICp0dWlMZXQ9XCJnZXRJdGVtKHJvd0luZGV4LCBjb2xJbmRleCkgYXMgaXRlbVwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS15ZWFyLXBpY2tlcl9fY2VsbFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY2VsbFwiXG4gICAgICAgICAgICBbY2xhc3MudC1jZWxsX3RvZGF5XT1cIml0ZW1Jc1RvZGF5KGl0ZW0pXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWNlbGxfaW50ZXJ2YWxdPVwiaXRlbUlzSW50ZXJ2YWwoaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1yYW5nZV09XCJnZXRJdGVtUmFuZ2UoaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJnZXRJdGVtU3RhdGUoaXRlbSlcIlxuICAgICAgICAgICAgW3R1aVNjcm9sbEludG9WaWV3XT1cInNjcm9sbEl0ZW1JbnRvVmlldyhpdGVtKVwiXG4gICAgICAgICAgICAodHVpSG92ZXJlZENoYW5nZSk9XCJvbkl0ZW1Ib3ZlcmVkKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKHR1aVByZXNzZWRDaGFuZ2UpPVwib25JdGVtUHJlc3NlZCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LWl0ZW1cIj57eyBpdGVtIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -27,7 +27,7 @@ export class TuiRootComponent {
27
27
  }
28
28
  }
29
29
  TuiRootComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRootComponent, deps: [{ token: TUI_ANIMATIONS_DURATION }, { token: ElementRef }, { token: TUI_DIALOGS }, { token: TUI_IS_MOBILE }, { token: TUI_ASSERT_ENABLED }, { token: TUI_IS_MOBILE_RES }, { token: DOCUMENT }, { token: TUI_THEME }], target: i0.ɵɵFactoryTarget.Component });
30
- TuiRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRootComponent, selector: "tui-root", host: { attributes: { "data-tui-version": "3.10.0" }, listeners: { "$.class._mobile": "isMobileRes$" }, properties: { "style.--tui-duration.ms": "duration" } }, providers: [TUI_IS_MOBILE_RES_PROVIDER], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n", styles: ["@keyframes tuiPresent{to{content:\"1\"}}html,.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html::-webkit-scrollbar-thumb,.tui-zero-scrollbar::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}body{font:var(--tui-font-text-s);color:var(--tui-text-01);margin:0}tui-root{position:relative;display:block;flex:1;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.t-root-content{position:relative;z-index:0;height:100%}\n"], components: [{ type: i1.TuiScrollControlsComponent, selector: "tui-scroll-controls" }, { type: i2.TuiSvgDefsHostComponent, selector: "tui-svg-defs-host" }, { type: i3.TuiDropdownHostComponent, selector: "tui-dropdown-host" }, { type: i3.TuiDialogHostComponent, selector: "tui-dialog-host" }, { type: i3.TuiAlertHostComponent, selector: "tui-alert-host" }, { type: i4.TuiHintsHostComponent, selector: "tui-hints-host" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
30
+ TuiRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRootComponent, selector: "tui-root", host: { attributes: { "data-tui-version": "3.12.0" }, listeners: { "$.class._mobile": "isMobileRes$" }, properties: { "style.--tui-duration.ms": "duration" } }, providers: [TUI_IS_MOBILE_RES_PROVIDER], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n", styles: ["@keyframes tuiPresent{to{content:\"1\"}}html,.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html::-webkit-scrollbar-thumb,.tui-zero-scrollbar::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}body{font:var(--tui-font-text-s);color:var(--tui-text-01);margin:0}tui-root{position:relative;display:block;flex:1;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.t-root-content{position:relative;z-index:0;height:100%}\n"], components: [{ type: i1.TuiScrollControlsComponent, selector: "tui-scroll-controls" }, { type: i2.TuiSvgDefsHostComponent, selector: "tui-svg-defs-host" }, { type: i3.TuiDropdownHostComponent, selector: "tui-dropdown-host" }, { type: i3.TuiDialogHostComponent, selector: "tui-dialog-host" }, { type: i3.TuiAlertHostComponent, selector: "tui-alert-host" }, { type: i4.TuiHintsHostComponent, selector: "tui-hints-host" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRootComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{
@@ -1,5 +1,5 @@
1
1
  import { DOCUMENT, ViewportScroller } from '@angular/common';
2
- import { Directive, ElementRef, Inject, Input, NgZone, Optional, Renderer2, } from '@angular/core';
2
+ import { Directive, ElementRef, Inject, Input, NgZone, Optional, Renderer2, Self, } from '@angular/core';
3
3
  import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
4
4
  import { POLLING_TIME, TuiDestroyService, tuiPreventDefault, tuiStopPropagation, tuiTypedFromEvent, tuiZonefree, } from '@taiga-ui/cdk';
5
5
  import { TUI_ELEMENT_REF, TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
@@ -101,7 +101,7 @@ export class TuiScrollbarDirective {
101
101
  return [maxTop * scrolledTop, maxLeft * scrolledLeft];
102
102
  }
103
103
  }
104
- TuiScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiScrollbarDirective, deps: [{ token: NgZone }, { token: Renderer2 }, { token: TuiDestroyService }, { token: ANIMATION_FRAME }, { token: TUI_ELEMENT_REF }, { token: TUI_SCROLL_REF, optional: true }, { token: DOCUMENT }, { token: WINDOW }, { token: ElementRef }, { token: ViewportScroller }], target: i0.ɵɵFactoryTarget.Directive });
104
+ TuiScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiScrollbarDirective, deps: [{ token: NgZone }, { token: Renderer2 }, { token: TuiDestroyService, self: true }, { token: ANIMATION_FRAME }, { token: TUI_ELEMENT_REF }, { token: TUI_SCROLL_REF, optional: true }, { token: DOCUMENT }, { token: WINDOW }, { token: ElementRef }, { token: ViewportScroller }], target: i0.ɵɵFactoryTarget.Directive });
105
105
  TuiScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: { tuiScrollbar: "tuiScrollbar" }, providers: [TuiDestroyService], ngImport: i0 });
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiScrollbarDirective, decorators: [{
107
107
  type: Directive,
@@ -116,6 +116,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
116
116
  type: Inject,
117
117
  args: [Renderer2]
118
118
  }] }, { type: i1.Observable, decorators: [{
119
+ type: Self
120
+ }, {
119
121
  type: Inject,
120
122
  args: [TuiDestroyService]
121
123
  }] }, { type: i1.Observable, decorators: [{
@@ -150,4 +152,4 @@ function getOffsetVertical({ clientY }, { top, height }) {
150
152
  function getOffsetHorizontal({ clientX }, { left, width }) {
151
153
  return (clientX - left) / width;
152
154
  }
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGwtY29udHJvbHMvc2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFDSCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXRFLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV2RSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFNckIsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixZQUNvQixNQUFjLEVBQ1gsUUFBbUIsRUFDWCxRQUEwQixFQUM1QixlQUFtQyxFQUNsQixPQUFnQyxFQUd6RCxTQUF5QyxFQUN2QixXQUFxQixFQUN2QixTQUFpQixFQUNiLFVBQW1DLEVBQzdCLGdCQUFrQztRQVBuQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUd6RCxjQUFTLEdBQVQsU0FBUyxDQUFnQztR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QUNWLGdCQUFnQjt1R0FoQm5CLHFCQUFxQixtRkFGbkIsQ0FBQyxpQkFBaUIsQ0FBQzs0RkFFckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUNqQzs7MEJBTVEsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsY0FBYzs4QkFFMEIsUUFBUTswQkFBdkQsTUFBTTsyQkFBQyxRQUFROzhCQUM0QixNQUFNOzBCQUFqRCxNQUFNOzJCQUFDLE1BQU07OzBCQUNiLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsZ0JBQWdCOzRDQWQ1QixZQUFZO3NCQURYLEtBQUs7O0FBa0tWLFNBQVMsaUJBQWlCLENBQUMsRUFBQyxPQUFPLEVBQWEsRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQWE7SUFDdkUsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDcEMsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsRUFBQyxPQUFPLEVBQWEsRUFBRSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQWE7SUFDekUsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlQsIFZpZXdwb3J0U2Nyb2xsZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBQT0xMSU5HX1RJTUUsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgdHVpUHJldmVudERlZmF1bHQsXG4gICAgdHVpU3RvcFByb3BhZ2F0aW9uLFxuICAgIHR1aVR5cGVkRnJvbUV2ZW50LFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX0VMRU1FTlRfUkVGLCBUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpT3JpZW50YXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRocm90dGxlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBNSU5fV0lEVEggPSAyNDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGBbdHVpU2Nyb2xsYmFyXWAsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTY3JvbGxiYXJEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpXG4gICAgdHVpU2Nyb2xsYmFyOiBUdWlPcmllbnRhdGlvbiA9IGB2ZXJ0aWNhbGA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFJlbmRlcmVyMikgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUVUlfRUxFTUVOVF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFZpZXdwb3J0U2Nyb2xsZXIpIHByaXZhdGUgcmVhZG9ubHkgdmlld3BvcnRTY3JvbGxlcjogVmlld3BvcnRTY3JvbGxlcixcbiAgICApIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUVsZW1lbnR9ID0gdGhpcy5lbGVtZW50UmVmO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gdHVpVHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgYG1vdXNlZG93bmApO1xuICAgICAgICBjb25zdCBtb3VzZW1vdmUkID0gdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5kb2N1bWVudFJlZiwgYG1vdXNlbW92ZWApO1xuICAgICAgICBjb25zdCBtb3VzZXVwJCA9IHR1aVR5cGVkRnJvbUV2ZW50KHRoaXMuZG9jdW1lbnRSZWYsIGBtb3VzZXVwYCk7XG4gICAgICAgIGNvbnN0IG1vdXNlZG93bldyYXBwZXIkID0gdHVpVHlwZWRGcm9tRXZlbnQod3JhcHBlci5uYXRpdmVFbGVtZW50LCBgbW91c2Vkb3duYCk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBtb3VzZWRvd25XcmFwcGVyJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuZ2V0U2Nyb2xsZWQoZXZlbnQsIDAuNSwgMC41KSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgdHVpU3RvcFByb3BhZ2F0aW9uKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IG5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0T2Zmc2V0VmVydGljYWwoZXZlbnQsIHJlY3QpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gZ2V0T2Zmc2V0SG9yaXpvbnRhbChldmVudCwgcmVjdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vdXNlbW92ZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldFNjcm9sbGVkKGV2ZW50LCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKG1vdXNldXAkKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0XSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IHRoaXMudmlld3BvcnRTY3JvbGxlci5nZXRTY3JvbGxQb3NpdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihbXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gYHZlcnRpY2FsYCA/IHggOiBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09IGB2ZXJ0aWNhbGAgPyBzY3JvbGxUb3AgOiB5LFxuICAgICAgICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBzY3JvbGxUb3BgLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBzY3JvbGxMZWZ0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIgPyB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50IDogdGhpcy53aW5kb3dSZWYsXG4gICAgICAgICAgICAgICAgYHNjcm9sbGAsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWUkLnBpcGUodGhyb3R0bGVUaW1lKFBPTExJTkdfVElNRSkpLFxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZShuZ1pvbmUpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsIGB0b3BgLCBgJHt0aGlzLnRodW1iICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgYGhlaWdodGAsIGAke3RoaXMudmlldyAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgYGxlZnRgLCBgJHt0aGlzLnRodW1iICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgYHdpZHRoYCwgYCR7dGhpcy52aWV3ICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBzY3JvbGxlZCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBzY3JvbGxUb3AsXG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICBjbGllbnRIZWlnaHQsXG4gICAgICAgICAgICBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgICBjbGllbnRXaWR0aCxcbiAgICAgICAgfSA9IHRoaXMuY29tcHV0ZWRDb250YWluZXI7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgXG4gICAgICAgICAgICA/IHNjcm9sbFRvcCAvIChzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQpXG4gICAgICAgICAgICA6IHNjcm9sbExlZnQgLyAoc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcGVuc2F0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkQ29udGFpbmVyO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICgoY2xpZW50SGVpZ2h0ICogY2xpZW50SGVpZ2h0KSAvIHNjcm9sbEhlaWdodCA+IE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgKSB8fFxuICAgICAgICAgICAgKChjbGllbnRXaWR0aCAqIGNsaWVudFdpZHRoKSAvIHNjcm9sbFdpZHRoID4gTUlOX1dJRFRIICYmXG4gICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09IGBob3Jpem9udGFsYClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gYHZlcnRpY2FsYFxuICAgICAgICAgICAgPyBNSU5fV0lEVEggLyBjbGllbnRIZWlnaHRcbiAgICAgICAgICAgIDogTUlOX1dJRFRIIC8gY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdGh1bWIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29tcGVuc2F0aW9uID0gdGhpcy5jb21wZW5zYXRpb24gfHwgdGhpcy52aWV3O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNjcm9sbGVkICogKDEgLSBjb21wZW5zYXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHZpZXcoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qge2NsaWVudEhlaWdodCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRXaWR0aCwgc2Nyb2xsV2lkdGh9ID1cbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRDb250YWluZXI7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgXG4gICAgICAgICAgICA/IE1hdGguY2VpbCgoY2xpZW50SGVpZ2h0IC8gc2Nyb2xsSGVpZ2h0KSAqIDEwMCkgLyAxMDBcbiAgICAgICAgICAgIDogTWF0aC5jZWlsKChjbGllbnRXaWR0aCAvIHNjcm9sbFdpZHRoKSAqIDEwMCkgLyAxMDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcHV0ZWRDb250YWluZXIoKTogRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCB8fCB0aGlzLmRvY3VtZW50UmVmLmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGVkKFxuICAgICAgICB7Y2xpZW50WSwgY2xpZW50WH06IE1vdXNlRXZlbnQsXG4gICAgICAgIG9mZnNldFZlcnRpY2FsOiBudW1iZXIsXG4gICAgICAgIG9mZnNldEhvcml6b250YWw6IG51bWJlcixcbiAgICApOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgY29uc3Qge29mZnNldEhlaWdodCwgb2Zmc2V0V2lkdGh9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHt0b3AsIGxlZnQsIHdpZHRoLCBoZWlnaHR9ID1cbiAgICAgICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IG1heFRvcCA9IHRoaXMuY29tcHV0ZWRDb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gaGVpZ2h0O1xuICAgICAgICBjb25zdCBtYXhMZWZ0ID0gdGhpcy5jb21wdXRlZENvbnRhaW5lci5zY3JvbGxXaWR0aCAtIHdpZHRoO1xuICAgICAgICBjb25zdCBzY3JvbGxlZFRvcCA9XG4gICAgICAgICAgICAoY2xpZW50WSAtIHRvcCAtIG9mZnNldEhlaWdodCAqIG9mZnNldFZlcnRpY2FsKSAvIChoZWlnaHQgLSBvZmZzZXRIZWlnaHQpO1xuICAgICAgICBjb25zdCBzY3JvbGxlZExlZnQgPVxuICAgICAgICAgICAgKGNsaWVudFggLSBsZWZ0IC0gb2Zmc2V0V2lkdGggKiBvZmZzZXRIb3Jpem9udGFsKSAvICh3aWR0aCAtIG9mZnNldFdpZHRoKTtcblxuICAgICAgICByZXR1cm4gW21heFRvcCAqIHNjcm9sbGVkVG9wLCBtYXhMZWZ0ICogc2Nyb2xsZWRMZWZ0XTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldFZlcnRpY2FsKHtjbGllbnRZfTogTW91c2VFdmVudCwge3RvcCwgaGVpZ2h0fTogQ2xpZW50UmVjdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChjbGllbnRZIC0gdG9wKSAvIGhlaWdodDtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0SG9yaXpvbnRhbCh7Y2xpZW50WH06IE1vdXNlRXZlbnQsIHtsZWZ0LCB3aWR0aH06IENsaWVudFJlY3QpOiBudW1iZXIge1xuICAgIHJldHVybiAoY2xpZW50WCAtIGxlZnQpIC8gd2lkdGg7XG59XG4iXX0=
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGwtY29udHJvbHMvc2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFdkUsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBTXJCLE1BQU0sT0FBTyxxQkFBcUI7SUFJOUIsWUFDb0IsTUFBYyxFQUNYLFFBQW1CLEVBQ0gsUUFBMEIsRUFDcEMsZUFBbUMsRUFDbEIsT0FBZ0MsRUFHekQsU0FBeUMsRUFDdkIsV0FBcUIsRUFDdkIsU0FBaUIsRUFDYixVQUFtQyxFQUM3QixnQkFBa0M7UUFQbkMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFHekQsY0FBUyxHQUFULFNB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YUFDTixVQUFVLGFBQ1YsZ0JBQWdCO3VHQWhCbkIscUJBQXFCLG1GQUZuQixDQUFDLGlCQUFpQixDQUFDOzRGQUVyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQ2pDOzswQkFNUSxNQUFNOzJCQUFDLE1BQU07OzBCQUNiLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDaEMsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxjQUFjOzhCQUUwQixRQUFROzBCQUF2RCxNQUFNOzJCQUFDLFFBQVE7OEJBQzRCLE1BQU07MEJBQWpELE1BQU07MkJBQUMsTUFBTTs7MEJBQ2IsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxnQkFBZ0I7NENBZDVCLFlBQVk7c0JBRFgsS0FBSzs7QUFrS1YsU0FBUyxpQkFBaUIsQ0FBQyxFQUFDLE9BQU8sRUFBYSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBYTtJQUN2RSxPQUFPLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxFQUFDLE9BQU8sRUFBYSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBYTtJQUN6RSxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVCwgVmlld3BvcnRTY3JvbGxlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgUE9MTElOR19USU1FLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR1aVByZXZlbnREZWZhdWx0LFxuICAgIHR1aVN0b3BQcm9wYWdhdGlvbixcbiAgICB0dWlUeXBlZEZyb21FdmVudCxcbiAgICB0dWlab25lZnJlZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9FTEVNRU5UX1JFRiwgVFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aU9yaWVudGF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgTUlOX1dJRFRIID0gMjQ7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgW3R1aVNjcm9sbGJhcl1gLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2Nyb2xsYmFyRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoKVxuICAgIHR1aVNjcm9sbGJhcjogVHVpT3JpZW50YXRpb24gPSBgdmVydGljYWxgO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUVUlfRUxFTUVOVF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFZpZXdwb3J0U2Nyb2xsZXIpIHByaXZhdGUgcmVhZG9ubHkgdmlld3BvcnRTY3JvbGxlcjogVmlld3BvcnRTY3JvbGxlcixcbiAgICApIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUVsZW1lbnR9ID0gdGhpcy5lbGVtZW50UmVmO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gdHVpVHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgYG1vdXNlZG93bmApO1xuICAgICAgICBjb25zdCBtb3VzZW1vdmUkID0gdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5kb2N1bWVudFJlZiwgYG1vdXNlbW92ZWApO1xuICAgICAgICBjb25zdCBtb3VzZXVwJCA9IHR1aVR5cGVkRnJvbUV2ZW50KHRoaXMuZG9jdW1lbnRSZWYsIGBtb3VzZXVwYCk7XG4gICAgICAgIGNvbnN0IG1vdXNlZG93bldyYXBwZXIkID0gdHVpVHlwZWRGcm9tRXZlbnQod3JhcHBlci5uYXRpdmVFbGVtZW50LCBgbW91c2Vkb3duYCk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBtb3VzZWRvd25XcmFwcGVyJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuZ2V0U2Nyb2xsZWQoZXZlbnQsIDAuNSwgMC41KSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgdHVpU3RvcFByb3BhZ2F0aW9uKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IG5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0T2Zmc2V0VmVydGljYWwoZXZlbnQsIHJlY3QpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gZ2V0T2Zmc2V0SG9yaXpvbnRhbChldmVudCwgcmVjdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vdXNlbW92ZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldFNjcm9sbGVkKGV2ZW50LCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKG1vdXNldXAkKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0XSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IHRoaXMudmlld3BvcnRTY3JvbGxlci5nZXRTY3JvbGxQb3NpdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihbXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gYHZlcnRpY2FsYCA/IHggOiBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09IGB2ZXJ0aWNhbGAgPyBzY3JvbGxUb3AgOiB5LFxuICAgICAgICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBzY3JvbGxUb3BgLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBzY3JvbGxMZWZ0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIgPyB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50IDogdGhpcy53aW5kb3dSZWYsXG4gICAgICAgICAgICAgICAgYHNjcm9sbGAsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWUkLnBpcGUodGhyb3R0bGVUaW1lKFBPTExJTkdfVElNRSkpLFxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZShuZ1pvbmUpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsIGB0b3BgLCBgJHt0aGlzLnRodW1iICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgYGhlaWdodGAsIGAke3RoaXMudmlldyAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgYGxlZnRgLCBgJHt0aGlzLnRodW1iICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgYHdpZHRoYCwgYCR7dGhpcy52aWV3ICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBzY3JvbGxlZCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBzY3JvbGxUb3AsXG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICBjbGllbnRIZWlnaHQsXG4gICAgICAgICAgICBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgICBjbGllbnRXaWR0aCxcbiAgICAgICAgfSA9IHRoaXMuY29tcHV0ZWRDb250YWluZXI7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgXG4gICAgICAgICAgICA/IHNjcm9sbFRvcCAvIChzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQpXG4gICAgICAgICAgICA6IHNjcm9sbExlZnQgLyAoc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcGVuc2F0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkQ29udGFpbmVyO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICgoY2xpZW50SGVpZ2h0ICogY2xpZW50SGVpZ2h0KSAvIHNjcm9sbEhlaWdodCA+IE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgKSB8fFxuICAgICAgICAgICAgKChjbGllbnRXaWR0aCAqIGNsaWVudFdpZHRoKSAvIHNjcm9sbFdpZHRoID4gTUlOX1dJRFRIICYmXG4gICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09IGBob3Jpem9udGFsYClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gYHZlcnRpY2FsYFxuICAgICAgICAgICAgPyBNSU5fV0lEVEggLyBjbGllbnRIZWlnaHRcbiAgICAgICAgICAgIDogTUlOX1dJRFRIIC8gY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdGh1bWIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29tcGVuc2F0aW9uID0gdGhpcy5jb21wZW5zYXRpb24gfHwgdGhpcy52aWV3O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNjcm9sbGVkICogKDEgLSBjb21wZW5zYXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHZpZXcoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qge2NsaWVudEhlaWdodCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRXaWR0aCwgc2Nyb2xsV2lkdGh9ID1cbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRDb250YWluZXI7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSBgdmVydGljYWxgXG4gICAgICAgICAgICA/IE1hdGguY2VpbCgoY2xpZW50SGVpZ2h0IC8gc2Nyb2xsSGVpZ2h0KSAqIDEwMCkgLyAxMDBcbiAgICAgICAgICAgIDogTWF0aC5jZWlsKChjbGllbnRXaWR0aCAvIHNjcm9sbFdpZHRoKSAqIDEwMCkgLyAxMDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcHV0ZWRDb250YWluZXIoKTogRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCB8fCB0aGlzLmRvY3VtZW50UmVmLmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGVkKFxuICAgICAgICB7Y2xpZW50WSwgY2xpZW50WH06IE1vdXNlRXZlbnQsXG4gICAgICAgIG9mZnNldFZlcnRpY2FsOiBudW1iZXIsXG4gICAgICAgIG9mZnNldEhvcml6b250YWw6IG51bWJlcixcbiAgICApOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgY29uc3Qge29mZnNldEhlaWdodCwgb2Zmc2V0V2lkdGh9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHt0b3AsIGxlZnQsIHdpZHRoLCBoZWlnaHR9ID1cbiAgICAgICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IG1heFRvcCA9IHRoaXMuY29tcHV0ZWRDb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gaGVpZ2h0O1xuICAgICAgICBjb25zdCBtYXhMZWZ0ID0gdGhpcy5jb21wdXRlZENvbnRhaW5lci5zY3JvbGxXaWR0aCAtIHdpZHRoO1xuICAgICAgICBjb25zdCBzY3JvbGxlZFRvcCA9XG4gICAgICAgICAgICAoY2xpZW50WSAtIHRvcCAtIG9mZnNldEhlaWdodCAqIG9mZnNldFZlcnRpY2FsKSAvIChoZWlnaHQgLSBvZmZzZXRIZWlnaHQpO1xuICAgICAgICBjb25zdCBzY3JvbGxlZExlZnQgPVxuICAgICAgICAgICAgKGNsaWVudFggLSBsZWZ0IC0gb2Zmc2V0V2lkdGggKiBvZmZzZXRIb3Jpem9udGFsKSAvICh3aWR0aCAtIG9mZnNldFdpZHRoKTtcblxuICAgICAgICByZXR1cm4gW21heFRvcCAqIHNjcm9sbGVkVG9wLCBtYXhMZWZ0ICogc2Nyb2xsZWRMZWZ0XTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldFZlcnRpY2FsKHtjbGllbnRZfTogTW91c2VFdmVudCwge3RvcCwgaGVpZ2h0fTogQ2xpZW50UmVjdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChjbGllbnRZIC0gdG9wKSAvIGhlaWdodDtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0SG9yaXpvbnRhbCh7Y2xpZW50WH06IE1vdXNlRXZlbnQsIHtsZWZ0LCB3aWR0aH06IENsaWVudFJlY3QpOiBudW1iZXIge1xuICAgIHJldHVybiAoY2xpZW50WCAtIGxlZnQpIC8gd2lkdGg7XG59XG4iXX0=
@@ -3,7 +3,7 @@ import { DOCUMENT } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, Optional, SecurityContext, } from '@angular/core';
4
4
  import { DomSanitizer } from '@angular/platform-browser';
5
5
  import { WINDOW } from '@ng-web-apis/common';
6
- import { tuiAssert, tuiGetDocumentOrShadowRoot, tuiPure, tuiRequiredSetter, TuiStaticRequestService, } from '@taiga-ui/cdk';
6
+ import { tuiAssert, tuiGetDocumentOrShadowRoot, tuiIsString, tuiPure, tuiRequiredSetter, TuiStaticRequestService, } from '@taiga-ui/cdk';
7
7
  import { TUI_ICON_ERROR } from '@taiga-ui/core/constants';
8
8
  import { TuiSvgService } from '@taiga-ui/core/services';
9
9
  import { TUI_ICONS_PATH, TUI_SANITIZER, TUI_SVG_CONTENT_PROCESSOR, TUI_SVG_SRC_PROCESSOR, } from '@taiga-ui/core/tokens';
@@ -33,9 +33,14 @@ export class TuiSvgComponent {
33
33
  this.contentProcessor = contentProcessor;
34
34
  this.src$ = new ReplaySubject(1);
35
35
  this.icon = ``;
36
- this.innerHTML$ = this.src$.pipe(switchMap(() => this.isExternal
37
- ? this.getExternalIcon(this.icon)
38
- : of(this.getSafeHtml(this.icon))), startWith(``));
36
+ this.innerHTML$ = this.src$.pipe(switchMap(() => {
37
+ if (tuiIsString(this.icon)) {
38
+ return this.isExternal
39
+ ? this.getExternalIcon(this.icon)
40
+ : of(this.getSafeHtml(this.icon));
41
+ }
42
+ return of(this.icon);
43
+ }), startWith(``));
39
44
  }
40
45
  set src(src) {
41
46
  this.icon = this.srcProcessor(src);
@@ -45,12 +50,18 @@ export class TuiSvgComponent {
45
50
  return this.icon;
46
51
  }
47
52
  get use() {
48
- return this.icon.includes(`.svg#`)
49
- ? this.icon
50
- : this.resolveName(this.icon, this.iconsPath);
53
+ if (tuiIsString(this.icon)) {
54
+ return this.icon.includes(`.svg#`)
55
+ ? this.icon
56
+ : this.resolveName(this.icon, this.iconsPath);
57
+ }
58
+ return ``;
51
59
  }
52
60
  get isInnerHTML() {
53
- return this.isSrc || this.isExternal || (this.isName && this.isShadowDOM);
61
+ return (!tuiIsString(this.icon) ||
62
+ this.isSrc ||
63
+ this.isExternal ||
64
+ (this.isName && this.isShadowDOM));
54
65
  }
55
66
  get isShadowDOM() {
56
67
  return (tuiGetDocumentOrShadowRoot(this.elementRef.nativeElement) !== this.documentRef);
@@ -62,10 +73,10 @@ export class TuiSvgComponent {
62
73
  return this.isUrl || this.isCrossDomain;
63
74
  }
64
75
  get isUrl() {
65
- return this.icon.endsWith(`.svg`);
76
+ return tuiIsString(this.icon) && this.icon.endsWith(`.svg`);
66
77
  }
67
78
  get isSrc() {
68
- return tuiIsPresumedHTMLString(this.icon);
79
+ return tuiIsString(this.icon) && tuiIsPresumedHTMLString(this.icon);
69
80
  }
70
81
  get isName() {
71
82
  return !this.isUrl && !this.isUse && !this.isSrc;
@@ -83,7 +94,7 @@ export class TuiSvgComponent {
83
94
  bubbles: true,
84
95
  detail: {
85
96
  message,
86
- icon,
97
+ icon: icon,
87
98
  },
88
99
  });
89
100
  tuiAssert.assert(false, message, icon);
@@ -105,7 +116,7 @@ export class TuiSvgComponent {
105
116
  }
106
117
  sanitize(src) {
107
118
  src = this.contentProcessor(src);
108
- return this.tuiSanitizer
119
+ return this.tuiSanitizer && tuiIsString(src)
109
120
  ? this.sanitizer.bypassSecurityTrustHtml(this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || ``)
110
121
  : src;
111
122
  }
@@ -168,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
168
179
  }] }]; }, propDecorators: { src: [{
169
180
  type: Input
170
181
  }], resolveName: [] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBRVIsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsMEJBQTBCLEVBQzFCLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsdUJBQXVCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUNILGNBQWMsRUFDZCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLHFCQUFxQixHQUN4QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBYSxFQUFFLEVBQUUsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRXJFLE1BQU0sb0JBQW9CLEdB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RUFBRSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQ3BFLENBQ0osQ0FBQztJQUNOLENBQUM7OzZHQXBKUSxlQUFlLGtCQU9aLFFBQVEsYUFDUixNQUFNLGFBQ04sY0FBYyxhQUVkLGFBQWEsNkJBRWIsYUFBYSxhQUNiLHVCQUF1QixhQUV2QixZQUFZLGFBQ1osVUFBVSxhQUNWLHFCQUFxQixhQUVyQix5QkFBeUI7aUdBcEI1QixlQUFlLHVFQzdDNUIseW1CQW9CQTtBRDRESTtJQURDLGlCQUFpQixFQUFFOzBDQUluQjtBQW9FRDtJQURDLE9BQU87a0RBR1A7NEZBNUdRLGVBQWU7a0JBTjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFdBQVcsRUFBRSxxQkFBcUI7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUMvQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7MERBUXVELFFBQVE7MEJBQXZELE1BQU07MkJBQUMsUUFBUTs4QkFDNEIsTUFBTTswQkFBakQsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixRQUFROzswQkFDUixNQUFNOzJCQUFDLGFBQWE7OzBCQUVwQixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMscUJBQXFCOzswQkFFNUIsTUFBTTsyQkFBQyx5QkFBeUI7NENBZWpDLEdBQUc7c0JBRk4sS0FBSztnQkF5RUUsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTYW5pdGl6ZXIsXG4gICAgU2VjdXJpdHlDb250ZXh0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHR1aUFzc2VydCxcbiAgICB0dWlHZXREb2N1bWVudE9yU2hhZG93Um9vdCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVJlcXVpcmVkU2V0dGVyLFxuICAgIFR1aVN0YXRpY1JlcXVlc3RTZXJ2aWNlLFxuICAgIFR1aVN0cmluZ0hhbmRsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfSUNPTl9FUlJPUn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpSWNvbkVycm9yfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VHVpU3ZnU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgICBUVUlfSUNPTlNfUEFUSCxcbiAgICBUVUlfU0FOSVRJWkVSLFxuICAgIFRVSV9TVkdfQ09OVEVOVF9QUk9DRVNTT1IsXG4gICAgVFVJX1NWR19TUkNfUFJPQ0VTU09SLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlJc1ByZXN1bWVkSFRNTFN0cmluZ30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBVTkRFRklORURfTkFNRURfSUNPTiA9IGBBdHRlbXB0ZWQgdG8gdXNlIHVuZGVmaW5lZCBuYW1lZCBpY29uYDtcbmNvbnN0IE1JU1NJTkdfRVhURVJOQUxfSUNPTiA9IGBFeHRlcm5hbCBpY29uIGlzIG1pc3Npbmcgb24gdGhlIGdpdmVuIFVSTGA7XG5jb25zdCBGQUlMRURfRVhURVJOQUxfSUNPTiA9IGBGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBTVkdgO1xuXG4vLyBUT0RPOiBDb25zaWRlciBtb3ZpbmcgdG8gQ0RLIGFsb25nIHdpdGggU3ZnU2VydmljZSBhbmQgU3ZnRGVmc0hvc3RDb21wb25lbnRcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXN2Z2AsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3N2Zy50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9zdmcuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTdmdDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3JjJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICAgIHByaXZhdGUgaWNvbiA9IGBgO1xuXG4gICAgcmVhZG9ubHkgaW5uZXJIVE1MJDogT2JzZXJ2YWJsZTxTYWZlSHRtbD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KFRVSV9JQ09OU19QQVRIKSBwcml2YXRlIHJlYWRvbmx5IGljb25zUGF0aDogVHVpU3RyaW5nSGFuZGxlcjxzdHJpbmc+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9TQU5JVElaRVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHVpU2FuaXRpemVyOiBTYW5pdGl6ZXIgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFR1aVN2Z1NlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgc3ZnU2VydmljZTogVHVpU3ZnU2VydmljZSxcbiAgICAgICAgQEluamVjdChUdWlTdGF0aWNSZXF1ZXN0U2VydmljZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdGF0aWNSZXF1ZXN0U2VydmljZTogVHVpU3RhdGljUmVxdWVzdFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRG9tU2FuaXRpemVyKSBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfU1ZHX1NSQ19QUk9DRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3JjUHJvY2Vzc29yOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NWR19DT05URU5UX1BST0NFU1NPUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50UHJvY2Vzc29yOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4sXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaW5uZXJIVE1MJCA9IHRoaXMuc3JjJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5pc0V4dGVybmFsXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXRFeHRlcm5hbEljb24odGhpcy5pY29uKVxuICAgICAgICAgICAgICAgICAgICA6IG9mKHRoaXMuZ2V0U2FmZUh0bWwodGhpcy5pY29uKSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhcnRXaXRoKGBgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlSZXF1aXJlZFNldHRlcigpXG4gICAgc2V0IHNyYyhzcmM6IHN0cmluZykge1xuICAgICAgICB0aGlzLmljb24gPSB0aGlzLnNyY1Byb2Nlc3NvcihzcmMpO1xuICAgICAgICB0aGlzLnNyYyQubmV4dCgpO1xuICAgIH1cblxuICAgIGdldCBzcmMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgdXNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb24uaW5jbHVkZXMoYC5zdmcjYClcbiAgICAgICAgICAgID8gdGhpcy5pY29uXG4gICAgICAgICAgICA6IHRoaXMucmVzb2x2ZU5hbWUodGhpcy5pY29uLCB0aGlzLmljb25zUGF0aCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW5uZXJIVE1MKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NyYyB8fCB0aGlzLmlzRXh0ZXJuYWwgfHwgKHRoaXMuaXNOYW1lICYmIHRoaXMuaXNTaGFkb3dET00pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzU2hhZG93RE9NKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpICE9PSB0aGlzLmRvY3VtZW50UmVmXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNVc2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVzZS5pbmNsdWRlcyhgLnN2ZyNgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc0V4dGVybmFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1VybCB8fCB0aGlzLmlzQ3Jvc3NEb21haW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNVcmwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb24uZW5kc1dpdGgoYC5zdmdgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1NyYygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzUHJlc3VtZWRIVE1MU3RyaW5nKHRoaXMuaWNvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNVcmwgJiYgIXRoaXMuaXNVc2UgJiYgIXRoaXMuaXNTcmM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNDcm9zc0RvbWFpbigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3VzZSwgaXNVc2UsIHdpbmRvd1JlZn0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc1VzZSAmJlxuICAgICAgICAgICAgdXNlLnN0YXJ0c1dpdGgoYGh0dHBgKSAmJlxuICAgICAgICAgICAgISF3aW5kb3dSZWYub3JpZ2luICYmXG4gICAgICAgICAgICAhdXNlLnN0YXJ0c1dpdGgod2luZG93UmVmLm9yaWdpbilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkVycm9yKG1lc3NhZ2U6IHN0cmluZyA9IE1JU1NJTkdfRVhURVJOQUxfSUNPTik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aWNvbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudDxUdWlJY29uRXJyb3I+KFRVSV9JQ09OX0VSUk9SLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBpY29uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChmYWxzZSwgbWVzc2FnZSwgaWNvbik7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSByZXNvbHZlTmFtZShuYW1lOiBzdHJpbmcsIGljb25zUGF0aDogVHVpU3RyaW5nSGFuZGxlcjxzdHJpbmc+KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGljb25zUGF0aChuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNhZmVIdG1sKHNyYzogc3RyaW5nKTogU2FmZUh0bWwge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NyYyA/IHRoaXMuc2FuaXRpemUoc3JjKSA6IHRoaXMucHJvY2VzcyhzcmMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2VzcyhzcmM6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMuc3ZnU2VydmljZS5nZXRPcmlnaW5hbChzcmMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTmFtZSAmJiAhaWNvbiAmJiAhIXNyYykge1xuICAgICAgICAgICAgdGhpcy5vbkVycm9yKFVOREVGSU5FRF9OQU1FRF9JQ09OKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVtcHR5IGxpbmUgZm9yIGlubmVySFRNTCB3aGVuIGljb24gaXMgc2hvd24gdGhyb3VnaCBVU0UgdGFnXG4gICAgICAgIHJldHVybiAhdGhpcy5pc1NoYWRvd0RPTSB8fCAhdGhpcy5pc05hbWUgPyBgYCA6IHRoaXMuc2FuaXRpemUoaWNvbiB8fCBgYCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZShzcmM6IHN0cmluZyk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICAgICAgc3JjID0gdGhpcy5jb250ZW50UHJvY2Vzc29yKHNyYyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2FuaXRpemVyXG4gICAgICAgICAgICA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFxuICAgICAgICAgICAgICAgICAgdGhpcy50dWlTYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIHNyYykgfHwgYGAsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogc3JjO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RXh0ZXJuYWxJY29uKHNyYzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTYWZlSHRtbD4ge1xuICAgICAgICBjb25zdCB1cmwgPSBzcmMuaW5jbHVkZXMoYC5zdmdgKSA/IHNyYyA6IHRoaXMudXNlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRpY1JlcXVlc3RTZXJ2aWNlLnJlcXVlc3QodXJsKS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKEZBSUxFRF9FWFRFUk5BTF9JQ09OKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvZihgYCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc2FuaXRpemUocmVzcG9uc2UucmVwbGFjZShgPHN2Z2AsIGA8c3ZnIGZvY3VzYWJsZT1cImZhbHNlXCJgKSksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnR1aUxldD1cImlubmVySFRNTCQgfCBhc3luYyBhcyBpbm5lckhUTUxcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNJbm5lckhUTUw7IGVsc2UgdXNlVGVtcGxhdGVcIlxuICAgICAgICBjbGFzcz1cInQtc3JjXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJpbm5lckhUTUxcIlxuICAgID48L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3VzZVRlbXBsYXRlPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCJvbkVycm9yKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwidXNlXCI+PC91c2U+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBRVIsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsMEJBQTBCLEVBRTFCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUUxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFDSCxjQUFjLEVBQ2QsYUFBYSxFQUNiLHlCQUF5QixFQUN6QixxQkFBcUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQWEsRUFBRSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUVyRSxNQUFNLG9CQUFvQixHQUFHLHVDQUF1QyxDQUFDO0FBQ3JFLE1BQU0scUJBQXFCLEdBQUcsMkNBQTJDLENBQUM7QUFDMUUsTUFBTSxvQkFBb0IsR0FBRyw2QkFBNkIsQ0FBQztBQUUzRCw4RUFBOEU7QUFPOUUsTUFBTSxPQUFPLGVBQWU7SUFLeEIsWUFDdUMsV0FBcUIsRUFDdkIsU0FBaUIsRUFDVCxTQUFtQyxFQUczRCxZQUE4QixFQUNQLFVBQXlCLEVBRWhELG9CQUE2QyxFQUN2QixTQUF1QixFQUN6QixVQUErQixFQUVuRCxZQUVoQixFQUVnQixnQkFFaEI7UUFsQmtDLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDVCxjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUczRCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDUCxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBRWhELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN6QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUVuRCxpQkFBWSxHQUFaLFlBQVksQ0FFNUI7UUFFZ0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUVoQztRQXZCWSxTQUFJLEdBQUcsSUFBSSxhQUFhLENBQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0MsU0FBSSxHQUFzQixFQUFFLENBQUM7UUF3QmpDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzVCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLFVBQVU7b0JBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ2pDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN6QztZQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsRUFBRSxDQUFDLENBQ2hCLENBQUM7SUFDTixDQUFDO0lBSUQsSUFBSSxHQUFHLENBQUMsR0FBc0I7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2dCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDckQ7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLENBQ0gsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxVQUFVO1lBQ2YsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDcEMsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFZLFdBQVc7UUFDbkIsT0FBTyxDQUNILDBCQUEwQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FDakYsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFZLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFZLFVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVksS0FBSztRQUNiLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBWSxLQUFLO1FBQ2IsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBWSxNQUFNO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBWSxhQUFhO1FBQ3JCLE1BQU0sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxHQUFHLElBQUksQ0FBQztRQUVyQyxPQUFPLENBQ0gsS0FBSztZQUNMLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUNsQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUNwQyxDQUFDO0lBQ04sQ0FBQztJQUVELE9BQU8sQ0FBQyxVQUFrQixxQkFBcUI7UUFDM0MsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBZSxjQUFjLEVBQUU7WUFDeEQsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUU7Z0JBQ0osT0FBTztnQkFDUCxJQUFJLEVBQUUsSUFBYzthQUN2QjtTQUNKLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUdPLFdBQVcsQ0FBQyxJQUFZLEVBQUUsU0FBbUM7UUFDakUsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVc7UUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsOERBQThEO1FBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sUUFBUSxDQUFDLEdBQXNCO1FBQ25DLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakMsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUM5RDtZQUNILENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDZCxDQUFDO0lBRU8sZUFBZSxDQUFDLEdBQVc7UUFDL0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRWxELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFFbkMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQ3BFLENBQ0osQ0FBQztJQUNOLENBQUM7OzZHQXBLUSxlQUFlLGtCQU1aLFFBQVEsYUFDUixNQUFNLGFBQ04sY0FBYyxhQUVkLGFBQWEsNkJBRWIsYUFBYSxhQUNiLHVCQUF1QixhQUV2QixZQUFZLGFBQ1osVUFBVSxhQUNWLHFCQUFxQixhQUlyQix5QkFBeUI7aUdBckI1QixlQUFlLHVFQy9DNUIseW1CQW9CQTtBRHFFSTtJQURDLGlCQUFpQixFQUFFOzBDQUluQjtBQTZFRDtJQURDLE9BQU87a0RBR1A7NEZBNUhRLGVBQWU7a0JBTjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFdBQVcsRUFBRSxxQkFBcUI7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUMvQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7MERBT3VELFFBQVE7MEJBQXZELE1BQU07MkJBQUMsUUFBUTs4QkFDNEIsTUFBTTswQkFBakQsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixRQUFROzswQkFDUixNQUFNOzJCQUFDLGFBQWE7OzBCQUVwQixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMscUJBQXFCOzswQkFJNUIsTUFBTTsyQkFBQyx5QkFBeUI7NENBcUJqQyxHQUFHO3NCQUZOLEtBQUs7Z0JBa0ZFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2FuaXRpemVyLFxuICAgIFNlY3VyaXR5Q29udGV4dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZUh0bWx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICB0dWlBc3NlcnQsXG4gICAgdHVpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QsXG4gICAgVHVpSW5qZWN0aW9uVG9rZW5UeXBlLFxuICAgIHR1aUlzU3RyaW5nLFxuICAgIHR1aVB1cmUsXG4gICAgdHVpUmVxdWlyZWRTZXR0ZXIsXG4gICAgVHVpU3RhdGljUmVxdWVzdFNlcnZpY2UsXG4gICAgVHVpU3RyaW5nSGFuZGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9JQ09OX0VSUk9SfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlJY29uRXJyb3J9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUdWlTdmdTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIFRVSV9JQ09OU19QQVRILFxuICAgIFRVSV9TQU5JVElaRVIsXG4gICAgVFVJX1NWR19DT05URU5UX1BST0NFU1NPUixcbiAgICBUVUlfU1ZHX1NSQ19QUk9DRVNTT1IsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aUlzUHJlc3VtZWRIVE1MU3RyaW5nfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IFVOREVGSU5FRF9OQU1FRF9JQ09OID0gYEF0dGVtcHRlZCB0byB1c2UgdW5kZWZpbmVkIG5hbWVkIGljb25gO1xuY29uc3QgTUlTU0lOR19FWFRFUk5BTF9JQ09OID0gYEV4dGVybmFsIGljb24gaXMgbWlzc2luZyBvbiB0aGUgZ2l2ZW4gVVJMYDtcbmNvbnN0IEZBSUxFRF9FWFRFUk5BTF9JQ09OID0gYEZhaWxlZCB0byBsb2FkIGV4dGVybmFsIFNWR2A7XG5cbi8vIFRPRE86IENvbnNpZGVyIG1vdmluZyB0byBDREsgYWxvbmcgd2l0aCBTdmdTZXJ2aWNlIGFuZCBTdmdEZWZzSG9zdENvbXBvbmVudFxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktc3ZnYCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vc3ZnLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL3N2Zy5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVN2Z0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzcmMkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgcHJpdmF0ZSBpY29uOiBTYWZlSHRtbCB8IHN0cmluZyA9IGBgO1xuICAgIHJlYWRvbmx5IGlubmVySFRNTCQ6IE9ic2VydmFibGU8U2FmZUh0bWw+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChUVUlfSUNPTlNfUEFUSCkgcHJpdmF0ZSByZWFkb25seSBpY29uc1BhdGg6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfU0FOSVRJWkVSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHR1aVNhbml0aXplcjogU2FuaXRpemVyIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUdWlTdmdTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IHN2Z1NlcnZpY2U6IFR1aVN2Z1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoVHVpU3RhdGljUmVxdWVzdFNlcnZpY2UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGljUmVxdWVzdFNlcnZpY2U6IFR1aVN0YXRpY1JlcXVlc3RTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERvbVNhbml0aXplcikgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NWR19TUkNfUFJPQ0VTU09SKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNyY1Byb2Nlc3NvcjogVHVpSW5qZWN0aW9uVG9rZW5UeXBlPFxuICAgICAgICAgICAgdHlwZW9mIFRVSV9TVkdfU1JDX1BST0NFU1NPUlxuICAgICAgICA+LFxuICAgICAgICBASW5qZWN0KFRVSV9TVkdfQ09OVEVOVF9QUk9DRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudFByb2Nlc3NvcjogVHVpSW5qZWN0aW9uVG9rZW5UeXBlPFxuICAgICAgICAgICAgdHlwZW9mIFRVSV9TVkdfQ09OVEVOVF9QUk9DRVNTT1JcbiAgICAgICAgPixcbiAgICApIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwkID0gdGhpcy5zcmMkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0dWlJc1N0cmluZyh0aGlzLmljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRXh0ZXJuYWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXRFeHRlcm5hbEljb24odGhpcy5pY29uKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBvZih0aGlzLmdldFNhZmVIdG1sKHRoaXMuaWNvbikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmljb24pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGFydFdpdGgoYGApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aVJlcXVpcmVkU2V0dGVyKClcbiAgICBzZXQgc3JjKHNyYzogU2FmZUh0bWwgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uID0gdGhpcy5zcmNQcm9jZXNzb3Ioc3JjKTtcbiAgICAgICAgdGhpcy5zcmMkLm5leHQoKTtcbiAgICB9XG5cbiAgICBnZXQgc3JjKCk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgdXNlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0dWlJc1N0cmluZyh0aGlzLmljb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pY29uLmluY2x1ZGVzKGAuc3ZnI2ApXG4gICAgICAgICAgICAgICAgPyB0aGlzLmljb25cbiAgICAgICAgICAgICAgICA6IHRoaXMucmVzb2x2ZU5hbWUodGhpcy5pY29uLCB0aGlzLmljb25zUGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYGA7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW5uZXJIVE1MKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXR1aUlzU3RyaW5nKHRoaXMuaWNvbikgfHxcbiAgICAgICAgICAgIHRoaXMuaXNTcmMgfHxcbiAgICAgICAgICAgIHRoaXMuaXNFeHRlcm5hbCB8fFxuICAgICAgICAgICAgKHRoaXMuaXNOYW1lICYmIHRoaXMuaXNTaGFkb3dET00pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTaGFkb3dET00oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlHZXREb2N1bWVudE9yU2hhZG93Um9vdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkgIT09IHRoaXMuZG9jdW1lbnRSZWZcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1VzZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlLmluY2x1ZGVzKGAuc3ZnI2ApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzRXh0ZXJuYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVXJsIHx8IHRoaXMuaXNDcm9zc0RvbWFpbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1VybCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzU3RyaW5nKHRoaXMuaWNvbikgJiYgdGhpcy5pY29uLmVuZHNXaXRoKGAuc3ZnYCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTcmMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0dWlJc1N0cmluZyh0aGlzLmljb24pICYmIHR1aUlzUHJlc3VtZWRIVE1MU3RyaW5nKHRoaXMuaWNvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNVcmwgJiYgIXRoaXMuaXNVc2UgJiYgIXRoaXMuaXNTcmM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNDcm9zc0RvbWFpbigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3VzZSwgaXNVc2UsIHdpbmRvd1JlZn0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc1VzZSAmJlxuICAgICAgICAgICAgdXNlLnN0YXJ0c1dpdGgoYGh0dHBgKSAmJlxuICAgICAgICAgICAgISF3aW5kb3dSZWYub3JpZ2luICYmXG4gICAgICAgICAgICAhdXNlLnN0YXJ0c1dpdGgod2luZG93UmVmLm9yaWdpbilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkVycm9yKG1lc3NhZ2U6IHN0cmluZyA9IE1JU1NJTkdfRVhURVJOQUxfSUNPTik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aWNvbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudDxUdWlJY29uRXJyb3I+KFRVSV9JQ09OX0VSUk9SLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uIGFzIHN0cmluZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoZmFsc2UsIG1lc3NhZ2UsIGljb24pO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgcmVzb2x2ZU5hbWUobmFtZTogc3RyaW5nLCBpY29uc1BhdGg6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpY29uc1BhdGgobmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTYWZlSHRtbChzcmM6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTcmMgPyB0aGlzLnNhbml0aXplKHNyYykgOiB0aGlzLnByb2Nlc3Moc3JjKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3Moc3JjOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgICAgIGNvbnN0IGljb24gPSB0aGlzLnN2Z1NlcnZpY2UuZ2V0T3JpZ2luYWwoc3JjKTtcblxuICAgICAgICBpZiAodGhpcy5pc05hbWUgJiYgIWljb24gJiYgISFzcmMpIHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcihVTkRFRklORURfTkFNRURfSUNPTik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFbXB0eSBsaW5lIGZvciBpbm5lckhUTUwgd2hlbiBpY29uIGlzIHNob3duIHRocm91Z2ggVVNFIHRhZ1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNTaGFkb3dET00gfHwgIXRoaXMuaXNOYW1lID8gYGAgOiB0aGlzLnNhbml0aXplKGljb24gfHwgYGApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FuaXRpemUoc3JjOiBTYWZlSHRtbCB8IHN0cmluZyk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICAgICAgc3JjID0gdGhpcy5jb250ZW50UHJvY2Vzc29yKHNyYyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2FuaXRpemVyICYmIHR1aUlzU3RyaW5nKHNyYylcbiAgICAgICAgICAgID8gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoXG4gICAgICAgICAgICAgICAgICB0aGlzLnR1aVNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgc3JjKSB8fCBgYCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBzcmM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFeHRlcm5hbEljb24oc3JjOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNhZmVIdG1sPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHNyYy5pbmNsdWRlcyhgLnN2Z2ApID8gc3JjIDogdGhpcy51c2U7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGljUmVxdWVzdFNlcnZpY2UucmVxdWVzdCh1cmwpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoRkFJTEVEX0VYVEVSTkFMX0lDT04pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGBgKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zYW5pdGl6ZShyZXNwb25zZS5yZXBsYWNlKGA8c3ZnYCwgYDxzdmcgZm9jdXNhYmxlPVwiZmFsc2VcImApKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHVpTGV0PVwiaW5uZXJIVE1MJCB8IGFzeW5jIGFzIGlubmVySFRNTFwiPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0lubmVySFRNTDsgZWxzZSB1c2VUZW1wbGF0ZVwiXG4gICAgICAgIGNsYXNzPVwidC1zcmNcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImlubmVySFRNTFwiXG4gICAgPjwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjdXNlVGVtcGxhdGU+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJ1c2VcIj48L3VzZT5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Inject, Input, ViewChild, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Inject, Input, Self, ViewChild, } from '@angular/core';
3
3
  import { TUI_IS_MOBILE, tuiDefaultProp, TuiDestroyService } from '@taiga-ui/cdk';
4
4
  import { TuiDriver } from '@taiga-ui/core/abstract';
5
5
  import { TUI_HINT_OPTIONS, TuiHintOptionsDirective, } from '@taiga-ui/core/directives';
@@ -34,7 +34,7 @@ export class TuiTooltipComponent extends TuiHintOptionsDirective {
34
34
  }
35
35
  }
36
36
  }
37
- TuiTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipComponent, deps: [{ token: TuiDestroyService }, { token: TUI_MODE }, { token: TUI_HINT_OPTIONS }, { token: TUI_IS_MOBILE }], target: i0.ɵɵFactoryTarget.Component });
37
+ TuiTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipComponent, deps: [{ token: TuiDestroyService, self: true }, { token: TUI_MODE }, { token: TUI_HINT_OPTIONS }, { token: TUI_IS_MOBILE }], target: i0.ɵɵFactoryTarget.Component });
38
38
  TuiTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiTooltipComponent, selector: "tui-tooltip", inputs: { content: "content", direction: "direction", appearance: "appearance", showDelay: "showDelay", hideDelay: "hideDelay", describeId: "describeId" }, host: { listeners: { "mousedown": "stopOnMobile($event)", "click": "stopOnMobile($event)" }, properties: { "attr.data-appearance": "this.computedAppearance" } }, providers: [TuiDestroyService, MODE_PROVIDER], viewQueries: [{ propertyName: "driver$", first: true, predicate: TuiDriver, descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n automation-id=\"tui-tooltip__icon\"\n class=\"t-tooltip-icon\"\n [class.t-icon_hovered]=\"driver$ | async\"\n [tuiHint]=\"content\"\n [tuiHintDescribe]=\"describeId\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintAppearance]=\"computedAppearance\"\n>\n <tui-svg\n *polymorpheusOutlet=\"icon as src\"\n [src]=\"src\"\n ></tui-svg>\n</span>\n", styles: [":host{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-block;width:1.5rem;height:1.5rem;vertical-align:middle;font-size:0;line-height:0;cursor:pointer;color:var(--tui-text-03)}:host:hover{color:var(--tui-text-02)}:host[data-appearance=onDark]{color:var(--tui-text-01-night)}:host[data-appearance=onLight]{color:var(--tui-text-01)}:host[data-appearance=error]{color:var(--tui-error-fill)}.t-tooltip-icon{transition-property:opacity,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:inline-block;width:100%;height:100%}:host:not([data-appearance]) .t-tooltip-icon_hovered{color:var(--tui-text-02)}:host[data-appearance=onLight] .t-tooltip-icon,:host[data-appearance=onDark] .t-tooltip-icon{opacity:var(--tui-disabled-opacity)}:host[data-appearance=onLight] .t-tooltip-icon_hovered,:host[data-appearance=onDark] .t-tooltip-icon_hovered{opacity:1}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i2.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i2.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i2.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i2.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
39
39
  __decorate([
40
40
  tuiDefaultProp()
@@ -50,6 +50,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
50
50
  inputs: [`content`, `direction`, `appearance`, `showDelay`, `hideDelay`],
51
51
  }]
52
52
  }], ctorParameters: function () { return [{ type: i5.Observable, decorators: [{
53
+ type: Self
54
+ }, {
53
55
  type: Inject,
54
56
  args: [TuiDestroyService]
55
57
  }] }, { type: i5.Observable, decorators: [{
@@ -76,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
76
78
  type: HostListener,
77
79
  args: [`click`, [`$event`]]
78
80
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNILGdCQUFnQixFQUVoQix1QkFBdUIsR0FDMUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRS9DLE9BQU8sRUFBQyxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBVXpDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFVNUQsWUFDK0IsUUFBNkIsRUFDdEMsS0FBdUMsRUFDL0IsT0FBdUIsRUFDVCxRQUFpQjtRQUV6RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGeUIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQWJyRCxTQUFJLEdBQXlCLElBQUksQ0FBQztRQUdqQyxZQUFPLEdBQXdCLEtBQUssQ0FBQztRQUk5QyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBVVosS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFDSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFJRCxZQUFZLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7O2lIQW5DUSxtQkFBbUIsa0JBV2hCLGlCQUFpQixhQUNqQixRQUFRLGFBQ1IsZ0JBQWdCLGFBQ2hCLGFBQWE7cUdBZGhCLG1CQUFtQixvV0FIakIsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUMsbUVBTWxDLFNBQVMsdUVDakN4QixrZEFnQkE7QURzQkk7SUFEQyxjQUFjLEVBQUU7dURBQ0Q7NEZBUlAsbUJBQW1CO2tCQVIvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixXQUFXLEVBQUUseUJBQXlCO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDbkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQztvQkFDN0MsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQztpQkFDM0U7OzBCQVlRLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsYUFBYTs0Q0FWaEIsT0FBTztzQkFEZixTQUFTO3VCQUFDLFNBQVM7Z0JBS3BCLFVBQVU7c0JBRlQsS0FBSztnQkFrQkYsa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFPbkMsWUFBWTtzQkFGWCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3BDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFLCB0dWlEZWZhdWx0UHJvcCwgVHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlEcml2ZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2Fic3RyYWN0JztcbmltcG9ydCB7XG4gICAgVFVJX0hJTlRfT1BUSU9OUyxcbiAgICBUdWlIaW50T3B0aW9ucyxcbiAgICBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcyc7XG5pbXBvcnQge01PREVfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Byb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9NT0RFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXRvb2x0aXBgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi90b29sdGlwLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL3Rvb2x0aXAuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlLCBNT0RFX1BST1ZJREVSXSxcbiAgICBpbnB1dHM6IFtgY29udGVudGAsIGBkaXJlY3Rpb25gLCBgYXBwZWFyYW5jZWAsIGBzaG93RGVsYXlgLCBgaGlkZURlbGF5YF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRvb2x0aXBDb21wb25lbnQgZXh0ZW5kcyBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBtb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkKFR1aURyaXZlcilcbiAgICByZWFkb25seSBkcml2ZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gRU1QVFk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVzY3JpYmVJZCA9IGBgO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfT1BUSU9OUykgb3B0aW9uczogVHVpSGludE9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICApIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgbW9kZSQucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKS5zdWJzY3JpYmUobW9kZSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYGF0dHIuZGF0YS1hcHBlYXJhbmNlYClcbiAgICBnZXQgY29tcHV0ZWRBcHBlYXJhbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVhcmFuY2UgfHwgdGhpcy5tb2RlIHx8IGBgO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoYG1vdXNlZG93bmAsIFtgJGV2ZW50YF0pXG4gICAgQEhvc3RMaXN0ZW5lcihgY2xpY2tgLCBbYCRldmVudGBdKVxuICAgIHN0b3BPbk1vYmlsZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHNwYW5cbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXRvb2x0aXBfX2ljb25cIlxuICAgIGNsYXNzPVwidC10b29sdGlwLWljb25cIlxuICAgIFtjbGFzcy50LWljb25faG92ZXJlZF09XCJkcml2ZXIkIHwgYXN5bmNcIlxuICAgIFt0dWlIaW50XT1cImNvbnRlbnRcIlxuICAgIFt0dWlIaW50RGVzY3JpYmVdPVwiZGVzY3JpYmVJZFwiXG4gICAgW3R1aUhpbnREaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcbiAgICBbdHVpSGludFNob3dEZWxheV09XCJzaG93RGVsYXlcIlxuICAgIFt0dWlIaW50SGlkZURlbGF5XT1cImhpZGVEZWxheVwiXG4gICAgW3R1aUhpbnRBcHBlYXJhbmNlXT1cImNvbXB1dGVkQXBwZWFyYW5jZVwiXG4+XG4gICAgPHR1aS1zdmdcbiAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImljb24gYXMgc3JjXCJcbiAgICAgICAgW3NyY109XCJzcmNcIlxuICAgID48L3R1aS1zdmc+XG48L3NwYW4+XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFDSCxnQkFBZ0IsRUFFaEIsdUJBQXVCLEdBQzFCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVV6QyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBVTVELFlBQ3VDLFFBQTZCLEVBQzlDLEtBQXVDLEVBQy9CLE9BQXVCLEVBQ1QsUUFBaUI7UUFFekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRnlCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFickQsU0FBSSxHQUF5QixJQUFJLENBQUM7UUFHakMsWUFBTyxHQUF3QixLQUFLLENBQUM7UUFJOUMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQVVaLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQ0ksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBSUQsWUFBWSxDQUFDLEtBQWlCO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDOztpSEFuQ1EsbUJBQW1CLGtCQVdSLGlCQUFpQix5QkFDekIsUUFBUSxhQUNSLGdCQUFnQixhQUNoQixhQUFhO3FHQWRoQixtQkFBbUIsb1dBSGpCLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLG1FQU1sQyxTQUFTLHVFQ2xDeEIsa2RBZ0JBO0FEdUJJO0lBREMsY0FBYyxFQUFFO3VEQUNEOzRGQVJQLG1CQUFtQjtrQkFSL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ25DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUM7b0JBQzdDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7aUJBQzNFOzswQkFZUSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ2hDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGFBQWE7NENBVmhCLE9BQU87c0JBRGYsU0FBUzt1QkFBQyxTQUFTO2dCQUtwQixVQUFVO3NCQUZULEtBQUs7Z0JBa0JGLGtCQUFrQjtzQkFEckIsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBT25DLFlBQVk7c0JBRlgsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNwQyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFLCB0dWlEZWZhdWx0UHJvcCwgVHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlEcml2ZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2Fic3RyYWN0JztcbmltcG9ydCB7XG4gICAgVFVJX0hJTlRfT1BUSU9OUyxcbiAgICBUdWlIaW50T3B0aW9ucyxcbiAgICBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcyc7XG5pbXBvcnQge01PREVfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Byb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9NT0RFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXRvb2x0aXBgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi90b29sdGlwLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL3Rvb2x0aXAuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlLCBNT0RFX1BST1ZJREVSXSxcbiAgICBpbnB1dHM6IFtgY29udGVudGAsIGBkaXJlY3Rpb25gLCBgYXBwZWFyYW5jZWAsIGBzaG93RGVsYXlgLCBgaGlkZURlbGF5YF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRvb2x0aXBDb21wb25lbnQgZXh0ZW5kcyBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBtb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkKFR1aURyaXZlcilcbiAgICByZWFkb25seSBkcml2ZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gRU1QVFk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVzY3JpYmVJZCA9IGBgO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9PUFRJT05TKSBvcHRpb25zOiBUdWlIaW50T3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICBtb2RlJC5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpLnN1YnNjcmliZShtb2RlID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgYXR0ci5kYXRhLWFwcGVhcmFuY2VgKVxuICAgIGdldCBjb21wdXRlZEFwcGVhcmFuY2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZWFyYW5jZSB8fCB0aGlzLm1vZGUgfHwgYGA7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihgbW91c2Vkb3duYCwgW2AkZXZlbnRgXSlcbiAgICBASG9zdExpc3RlbmVyKGBjbGlja2AsIFtgJGV2ZW50YF0pXG4gICAgc3RvcE9uTW9iaWxlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8c3BhblxuICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktdG9vbHRpcF9faWNvblwiXG4gICAgY2xhc3M9XCJ0LXRvb2x0aXAtaWNvblwiXG4gICAgW2NsYXNzLnQtaWNvbl9ob3ZlcmVkXT1cImRyaXZlciQgfCBhc3luY1wiXG4gICAgW3R1aUhpbnRdPVwiY29udGVudFwiXG4gICAgW3R1aUhpbnREZXNjcmliZV09XCJkZXNjcmliZUlkXCJcbiAgICBbdHVpSGludERpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxuICAgIFt0dWlIaW50U2hvd0RlbGF5XT1cInNob3dEZWxheVwiXG4gICAgW3R1aUhpbnRIaWRlRGVsYXldPVwiaGlkZURlbGF5XCJcbiAgICBbdHVpSGludEFwcGVhcmFuY2VdPVwiY29tcHV0ZWRBcHBlYXJhbmNlXCJcbj5cbiAgICA8dHVpLXN2Z1xuICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbiBhcyBzcmNcIlxuICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgPjwvdHVpLXN2Zz5cbjwvc3Bhbj5cbiJdfQ==