@acorex/components 7.2.4 → 7.2.6

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 (216) hide show
  1. package/alert/lib/alert.component.d.ts +1 -1
  2. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  3. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  4. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  5. package/esm2022/alert/lib/alert.component.mjs +6 -6
  6. package/esm2022/alert/lib/alert.module.mjs +4 -4
  7. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  8. package/esm2022/avatar/lib/avatar.component.mjs +5 -5
  9. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  10. package/esm2022/badge/lib/badge.component.mjs +3 -3
  11. package/esm2022/badge/lib/badge.module.mjs +4 -4
  12. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  13. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  14. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  15. package/esm2022/button/lib/button-group.component.mjs +3 -3
  16. package/esm2022/button/lib/button-item.component.mjs +3 -3
  17. package/esm2022/button/lib/button.component.mjs +3 -3
  18. package/esm2022/button/lib/button.module.mjs +4 -4
  19. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  20. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  21. package/esm2022/calendar/lib/calendar.component.mjs +5 -5
  22. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  23. package/esm2022/checkbox/lib/checkbox.component.mjs +3 -3
  24. package/esm2022/checkbox/lib/checkbox.module.mjs +4 -4
  25. package/esm2022/chips/lib/chips.component.mjs +3 -3
  26. package/esm2022/chips/lib/chips.module.mjs +4 -4
  27. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  28. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  29. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  30. package/esm2022/color-palette/lib/color-palette-input.component.mjs +3 -3
  31. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +3 -3
  32. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  33. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  34. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  35. package/esm2022/color-palette/lib/color-palette.component.mjs +3 -3
  36. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  37. package/esm2022/color-picker/lib/color-picker.component.mjs +3 -3
  38. package/esm2022/color-picker/lib/color-picker.module.mjs +4 -4
  39. package/esm2022/common/lib/classes/components.class.mjs +18 -18
  40. package/esm2022/common/lib/common.module.mjs +4 -4
  41. package/esm2022/common/lib/components/base-component.class.mjs +3 -3
  42. package/esm2022/common/lib/components/value-component.class.mjs +3 -3
  43. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  44. package/esm2022/common/lib/directives/debounce-time.directive.mjs +3 -3
  45. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  46. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  47. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  48. package/esm2022/common/lib/services/custom-cdk-overlay.service.mjs +6 -6
  49. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  50. package/esm2022/common/lib/services/overlay.service.mjs +3 -3
  51. package/esm2022/context-menu/lib/context-menu.component.mjs +3 -3
  52. package/esm2022/context-menu/lib/context-menu.module.mjs +4 -4
  53. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  54. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  55. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  56. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  57. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  58. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +3 -3
  59. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +3 -3
  60. package/esm2022/data-pager/lib/data-pager.component.mjs +3 -3
  61. package/esm2022/data-pager/lib/data-pager.module.mjs +4 -4
  62. package/esm2022/data-table/lib/data-column-cell-template.directive.mjs +3 -3
  63. package/esm2022/data-table/lib/data-column.directive.mjs +3 -3
  64. package/esm2022/data-table/lib/data-table.component.mjs +3 -3
  65. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  66. package/esm2022/date-picker/lib/datepicker.component.mjs +3 -3
  67. package/esm2022/date-picker/lib/datepicker.module.mjs +4 -4
  68. package/esm2022/decorators/lib/close-button.component.mjs +3 -3
  69. package/esm2022/decorators/lib/content.component.mjs +3 -3
  70. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  71. package/esm2022/decorators/lib/footer.component.mjs +3 -3
  72. package/esm2022/decorators/lib/form-hint.component.mjs +3 -3
  73. package/esm2022/decorators/lib/header.component.mjs +3 -3
  74. package/esm2022/decorators/lib/icon.component.mjs +3 -3
  75. package/esm2022/decorators/lib/overlay.component.mjs +3 -3
  76. package/esm2022/decorators/lib/placeholder.component.mjs +3 -3
  77. package/esm2022/decorators/lib/prefix.component.mjs +3 -3
  78. package/esm2022/decorators/lib/sub-title.component.mjs +3 -3
  79. package/esm2022/decorators/lib/suffix.component.mjs +3 -3
  80. package/esm2022/decorators/lib/text.component.mjs +3 -3
  81. package/esm2022/decorators/lib/title.component.mjs +3 -3
  82. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  83. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  84. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  85. package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
  86. package/esm2022/drawer/lib/drawer.component.mjs +3 -3
  87. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  88. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -3
  89. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  90. package/esm2022/form/lib/form-field.component.mjs +3 -3
  91. package/esm2022/form/lib/form.component.mjs +3 -3
  92. package/esm2022/form/lib/form.module.mjs +4 -4
  93. package/esm2022/form/lib/validation-rule.widget.mjs +3 -3
  94. package/esm2022/form/lib/validation-summary.component.mjs +3 -3
  95. package/esm2022/image/lib/image.component.mjs +3 -3
  96. package/esm2022/image/lib/image.module.mjs +4 -4
  97. package/esm2022/label/lib/label.component.mjs +3 -3
  98. package/esm2022/label/lib/label.module.mjs +4 -4
  99. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  100. package/esm2022/loading/lib/loading.component.mjs +3 -3
  101. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  102. package/esm2022/loading/lib/loading.module.mjs +4 -4
  103. package/esm2022/loading/lib/loading.service.mjs +3 -3
  104. package/esm2022/menu/lib/menu.component.mjs +3 -3
  105. package/esm2022/menu/lib/menu.module.mjs +4 -4
  106. package/esm2022/mixin/lib/base-components.class.mjs +3 -3
  107. package/esm2022/notification/lib/notification.component.mjs +3 -3
  108. package/esm2022/notification/lib/notification.module.mjs +4 -4
  109. package/esm2022/notification/lib/notification.service.mjs +3 -3
  110. package/esm2022/number-box/lib/number-box.component.mjs +3 -3
  111. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  112. package/esm2022/otp/lib/otp.component.mjs +3 -3
  113. package/esm2022/otp/lib/otp.module.mjs +4 -4
  114. package/esm2022/page/lib/base-page.class.mjs +3 -3
  115. package/esm2022/page/lib/page.component.mjs +3 -3
  116. package/esm2022/page/lib/page.module.mjs +4 -4
  117. package/esm2022/password-box/lib/password-box.component.mjs +3 -3
  118. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  119. package/esm2022/popover/lib/dropdown-component.class.mjs +3 -3
  120. package/esm2022/popover/lib/popover.component.mjs +3 -3
  121. package/esm2022/popover/lib/popover.module.mjs +4 -4
  122. package/esm2022/popup/lib/popup.component.mjs +3 -3
  123. package/esm2022/popup/lib/popup.module.mjs +4 -4
  124. package/esm2022/popup/lib/popup.service.mjs +3 -3
  125. package/esm2022/progress-bar/lib/progress-bar.component.mjs +3 -3
  126. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  127. package/esm2022/radio/lib/radio.component.mjs +3 -3
  128. package/esm2022/radio/lib/radio.module.mjs +4 -4
  129. package/esm2022/range-slider/lib/range-slider.component.mjs +3 -3
  130. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  131. package/esm2022/result/lib/result.component.mjs +3 -3
  132. package/esm2022/result/lib/result.module.mjs +4 -4
  133. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  134. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  135. package/esm2022/select-box/lib/select-box.component.mjs +3 -3
  136. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  137. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  138. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  139. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  140. package/esm2022/switch/lib/switch.component.mjs +3 -3
  141. package/esm2022/switch/lib/switch.module.mjs +4 -4
  142. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  143. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  144. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  145. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  146. package/esm2022/tag/lib/tag.component.mjs +3 -3
  147. package/esm2022/tag/lib/tag.module.mjs +4 -4
  148. package/esm2022/textarea/lib/textarea.component.mjs +3 -3
  149. package/esm2022/textarea/lib/textarea.module.mjs +4 -4
  150. package/esm2022/textbox/lib/mask-options.directive.mjs +3 -3
  151. package/esm2022/textbox/lib/textbox.component.mjs +3 -3
  152. package/esm2022/textbox/lib/textbox.module.mjs +4 -4
  153. package/esm2022/time-box/lib/time-box.component.mjs +3 -3
  154. package/esm2022/time-box/lib/time-box.module.mjs +4 -4
  155. package/esm2022/toast/lib/toast.component.mjs +3 -3
  156. package/esm2022/toast/lib/toast.module.mjs +4 -4
  157. package/esm2022/toast/lib/toast.service.mjs +3 -3
  158. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  159. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  160. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  161. package/esm2022/uploader/lib/uploader.component.mjs +3 -3
  162. package/esm2022/uploader/lib/uploader.module.mjs +4 -4
  163. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  164. package/fesm2022/acorex-components-alert.mjs +8 -8
  165. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  166. package/fesm2022/acorex-components-avatar.mjs +10 -10
  167. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  168. package/fesm2022/acorex-components-badge.mjs +7 -7
  169. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  170. package/fesm2022/acorex-components-button.mjs +13 -13
  171. package/fesm2022/acorex-components-calendar.mjs +14 -14
  172. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  173. package/fesm2022/acorex-components-checkbox.mjs +7 -7
  174. package/fesm2022/acorex-components-chips.mjs +7 -7
  175. package/fesm2022/acorex-components-collapse.mjs +10 -10
  176. package/fesm2022/acorex-components-color-palette.mjs +25 -25
  177. package/fesm2022/acorex-components-color-picker.mjs +7 -7
  178. package/fesm2022/acorex-components-common.mjs +55 -55
  179. package/fesm2022/acorex-components-context-menu.mjs +7 -7
  180. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  181. package/fesm2022/acorex-components-data-table.mjs +13 -13
  182. package/fesm2022/acorex-components-date-picker.mjs +7 -7
  183. package/fesm2022/acorex-components-decorators.mjs +43 -43
  184. package/fesm2022/acorex-components-dialog.mjs +10 -10
  185. package/fesm2022/acorex-components-drawer.mjs +10 -10
  186. package/fesm2022/acorex-components-dropdown.mjs +7 -7
  187. package/fesm2022/acorex-components-form.mjs +16 -16
  188. package/fesm2022/acorex-components-image.mjs +7 -7
  189. package/fesm2022/acorex-components-label.mjs +7 -7
  190. package/fesm2022/acorex-components-loading.mjs +16 -16
  191. package/fesm2022/acorex-components-menu.mjs +7 -7
  192. package/fesm2022/acorex-components-mixin.mjs +3 -3
  193. package/fesm2022/acorex-components-notification.mjs +10 -10
  194. package/fesm2022/acorex-components-number-box.mjs +7 -7
  195. package/fesm2022/acorex-components-otp.mjs +7 -7
  196. package/fesm2022/acorex-components-page.mjs +10 -10
  197. package/fesm2022/acorex-components-password-box.mjs +7 -7
  198. package/fesm2022/acorex-components-popover.mjs +10 -10
  199. package/fesm2022/acorex-components-popup.mjs +10 -10
  200. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  201. package/fesm2022/acorex-components-radio.mjs +7 -7
  202. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  203. package/fesm2022/acorex-components-result.mjs +7 -7
  204. package/fesm2022/acorex-components-search-box.mjs +7 -7
  205. package/fesm2022/acorex-components-select-box.mjs +7 -7
  206. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  207. package/fesm2022/acorex-components-switch.mjs +10 -10
  208. package/fesm2022/acorex-components-tabs.mjs +13 -13
  209. package/fesm2022/acorex-components-tag.mjs +7 -7
  210. package/fesm2022/acorex-components-textarea.mjs +7 -7
  211. package/fesm2022/acorex-components-textbox.mjs +10 -10
  212. package/fesm2022/acorex-components-time-box.mjs +7 -7
  213. package/fesm2022/acorex-components-toast.mjs +10 -10
  214. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  215. package/fesm2022/acorex-components-uploader.mjs +7 -7
  216. package/package.json +21 -21
@@ -40,13 +40,13 @@ export class AXButtonComponent extends MXButtonBaseComponent {
40
40
  .filter(c => c[1])
41
41
  .map(c => c[0]);
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: AXButtonComponent, selector: "ax-button", inputs: { disabled: "disabled", size: "size", tabIndex: "tabIndex", color: "color", look: "look", text: "text", toggleable: "toggleable", selected: "selected", type: "type" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", selectedChange: "selectedChange", toggleableChange: "toggleableChange", lookChange: "lookChange", colorChange: "colorChange" }, host: { listeners: { "click": "emitOnClickEvent($event)", "focus": "emitOnBlurEvent($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXButtonComponent, selector: "ax-button", inputs: { disabled: "disabled", size: "size", tabIndex: "tabIndex", color: "color", look: "look", text: "text", toggleable: "toggleable", selected: "selected", type: "type" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", selectedChange: "selectedChange", toggleableChange: "toggleableChange", lookChange: "lookChange", colorChange: "colorChange" }, host: { listeners: { "click": "emitOnClickEvent($event)", "focus": "emitOnBlurEvent($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
45
45
  { provide: AXComponent, useExisting: AXButtonComponent },
46
46
  { provide: AXFocusableComponent, useExisting: AXButtonComponent },
47
47
  ], usesInheritance: true, ngImport: i0, template: "<button\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [attr.type]=\"type\"\n>\n <ng-content select=\"ax-prefix, ax-loading, ax-icon\"> </ng-content>\n <ng-content select=\"ax-content\"> </ng-content>\n <span class=\"ax-button-text\" *ngIf=\"text\">{{ text }}</span>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-dropdown-panel\"> </ng-content>\n</button>\n", styles: ["ax-button{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ax-rounded-border-default);height:var(--ax-size-default);font-size:.875rem;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-button.ax-primary-default{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore));border-color:rgba(var(--ax-color-primary-400))}ax-button.ax-primary-default>button:is(ax-button.ax-primary-default > button:focus-within){outline-color:rgba(var(--ax-color-primary-500))}ax-button.ax-primary-default:is(ax-button.ax-primary-default:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-primary-600))}ax-button.ax-primary-default:is(ax-button.ax-primary-default:focus-visible):not(.ax-state-disabled){background-color:rgba(var(--ax-color-primary-600))}ax-button.ax-primary-default:is(ax-button.ax-primary-default:active):not(.ax-state-disabled){background-color:rgba(var(--ax-color-primary-500))}ax-button.ax-primary-default.ax-state-selected{background-color:rgba(var(--ax-color-primary-700))}ax-button.ax-primary-outline{border:2px solid;border-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-500))}ax-button.ax-primary-outline>button:is(ax-button.ax-primary-outline > button:focus-visible){outline-color:rgba(var(--ax-color-primary-500))}ax-button.ax-primary-outline:is(ax-button.ax-primary-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-primary-500));background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}ax-button.ax-primary-outline:is(ax-button.ax-primary-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-primary-600));background-color:rgba(var(--ax-color-primary-600));color:rgba(var(--ax-color-primary-fore))}ax-button.ax-primary-outline:is(ax-button.ax-primary-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-primary-400));background-color:transparent;color:rgba(var(--ax-color-primary-500))}ax-button.ax-primary-outline.ax-state-selected{background-color:rgba(var(--ax-color-primary-700));border-color:rgba(var(--ax-color-primary-700));color:rgba(var(--ax-color-primary-fore))}ax-button.ax-primary-blank{color:rgba(var(--ax-color-primary-500))}ax-button.ax-primary-blank>button:is(ax-button.ax-primary-blank > button:focus-visible){outline-color:rgba(var(--ax-color-primary-500))}ax-button.ax-primary-blank:is(ax-button.ax-primary-blank:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-primary-50));color:rgba(var(--ax-color-primary-800))}ax-button.ax-primary-blank:is(ax-button.ax-primary-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-primary-700));outline-color:rgba(var(--ax-color-primary-600))}ax-button.ax-primary-blank:is(ax-button.ax-primary-blank:active):not(.ax-state-disabled){color:rgba(var(--ax-color-primary-500));background-color:transparent}ax-button.ax-primary-blank.ax-state-selected{background-color:rgba(var(--ax-color-primary-700));color:rgba(var(--ax-color-primary-fore))}ax-button.ax-secondary-default{background-color:rgba(var(--ax-color-secondary-500));color:rgba(var(--ax-color-secondary-fore));border-color:rgba(var(--ax-color-secondary-400))}ax-button.ax-secondary-default>button:is(ax-button.ax-secondary-default > button:focus-within){outline-color:rgba(var(--ax-color-secondary-500))}ax-button.ax-secondary-default:is(ax-button.ax-secondary-default:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-secondary-600))}ax-button.ax-secondary-default:is(ax-button.ax-secondary-default:focus-visible):not(.ax-state-disabled){background-color:rgba(var(--ax-color-secondary-600))}ax-button.ax-secondary-default:is(ax-button.ax-secondary-default:active):not(.ax-state-disabled){background-color:rgba(var(--ax-color-secondary-500))}ax-button.ax-secondary-default.ax-state-selected{background-color:rgba(var(--ax-color-secondary-700))}ax-button.ax-secondary-outline{border:2px solid;border-color:rgba(var(--ax-color-secondary-500));color:rgba(var(--ax-color-secondary-500))}ax-button.ax-secondary-outline>button:is(ax-button.ax-secondary-outline > button:focus-visible){outline-color:rgba(var(--ax-color-secondary-500))}ax-button.ax-secondary-outline:is(ax-button.ax-secondary-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-secondary-500));background-color:rgba(var(--ax-color-secondary-500));color:rgba(var(--ax-color-secondary-fore))}ax-button.ax-secondary-outline:is(ax-button.ax-secondary-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-secondary-600));background-color:rgba(var(--ax-color-secondary-600));color:rgba(var(--ax-color-secondary-fore))}ax-button.ax-secondary-outline:is(ax-button.ax-secondary-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-secondary-400));background-color:transparent;color:rgba(var(--ax-color-secondary-500))}ax-button.ax-secondary-outline.ax-state-selected{background-color:rgba(var(--ax-color-secondary-700));border-color:rgba(var(--ax-color-secondary-700));color:rgba(var(--ax-color-secondary-fore))}ax-button.ax-secondary-blank{color:rgba(var(--ax-color-secondary-500))}ax-button.ax-secondary-blank>button:is(ax-button.ax-secondary-blank > button:focus-visible){outline-color:rgba(var(--ax-color-secondary-500))}ax-button.ax-secondary-blank:is(ax-button.ax-secondary-blank:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-secondary-50));color:rgba(var(--ax-color-secondary-800))}ax-button.ax-secondary-blank:is(ax-button.ax-secondary-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-secondary-700));outline-color:rgba(var(--ax-color-secondary-600))}ax-button.ax-secondary-blank:is(ax-button.ax-secondary-blank:active):not(.ax-state-disabled){color:rgba(var(--ax-color-secondary-500));background-color:transparent}ax-button.ax-secondary-blank.ax-state-selected{background-color:rgba(var(--ax-color-secondary-700));color:rgba(var(--ax-color-secondary-fore))}ax-button.ax-success-default{background-color:rgba(var(--ax-color-success-500));color:rgba(var(--ax-color-success-fore));border-color:rgba(var(--ax-color-success-400))}ax-button.ax-success-default>button:is(ax-button.ax-success-default > button:focus-within){outline-color:rgba(var(--ax-color-success-500))}ax-button.ax-success-default:is(ax-button.ax-success-default:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-success-600))}ax-button.ax-success-default:is(ax-button.ax-success-default:focus-visible):not(.ax-state-disabled){background-color:rgba(var(--ax-color-success-600))}ax-button.ax-success-default:is(ax-button.ax-success-default:active):not(.ax-state-disabled){background-color:rgba(var(--ax-color-success-500))}ax-button.ax-success-default.ax-state-selected{background-color:rgba(var(--ax-color-success-700))}ax-button.ax-success-outline{border:2px solid;border-color:rgba(var(--ax-color-success-500));color:rgba(var(--ax-color-success-500))}ax-button.ax-success-outline>button:is(ax-button.ax-success-outline > button:focus-visible){outline-color:rgba(var(--ax-color-success-500))}ax-button.ax-success-outline:is(ax-button.ax-success-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-success-500));background-color:rgba(var(--ax-color-success-500));color:rgba(var(--ax-color-success-fore))}ax-button.ax-success-outline:is(ax-button.ax-success-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-success-600));background-color:rgba(var(--ax-color-success-600));color:rgba(var(--ax-color-success-fore))}ax-button.ax-success-outline:is(ax-button.ax-success-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-success-400));background-color:transparent;color:rgba(var(--ax-color-success-500))}ax-button.ax-success-outline.ax-state-selected{background-color:rgba(var(--ax-color-success-700));border-color:rgba(var(--ax-color-success-700));color:rgba(var(--ax-color-success-fore))}ax-button.ax-success-blank{color:rgba(var(--ax-color-success-500))}ax-button.ax-success-blank>button:is(ax-button.ax-success-blank > button:focus-visible){outline-color:rgba(var(--ax-color-success-500))}ax-button.ax-success-blank:is(ax-button.ax-success-blank:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-success-50));color:rgba(var(--ax-color-success-800))}ax-button.ax-success-blank:is(ax-button.ax-success-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-success-700));outline-color:rgba(var(--ax-color-success-600))}ax-button.ax-success-blank:is(ax-button.ax-success-blank:active):not(.ax-state-disabled){color:rgba(var(--ax-color-success-500));background-color:transparent}ax-button.ax-success-blank.ax-state-selected{background-color:rgba(var(--ax-color-success-700));color:rgba(var(--ax-color-success-fore))}ax-button.ax-warning-default{background-color:rgba(var(--ax-color-warning-500));color:rgba(var(--ax-color-warning-fore));border-color:rgba(var(--ax-color-warning-400))}ax-button.ax-warning-default>button:is(ax-button.ax-warning-default > button:focus-within){outline-color:rgba(var(--ax-color-warning-500))}ax-button.ax-warning-default:is(ax-button.ax-warning-default:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-warning-600))}ax-button.ax-warning-default:is(ax-button.ax-warning-default:focus-visible):not(.ax-state-disabled){background-color:rgba(var(--ax-color-warning-600))}ax-button.ax-warning-default:is(ax-button.ax-warning-default:active):not(.ax-state-disabled){background-color:rgba(var(--ax-color-warning-500))}ax-button.ax-warning-default.ax-state-selected{background-color:rgba(var(--ax-color-warning-700))}ax-button.ax-warning-outline{border:2px solid;border-color:rgba(var(--ax-color-warning-500));color:rgba(var(--ax-color-warning-500))}ax-button.ax-warning-outline>button:is(ax-button.ax-warning-outline > button:focus-visible){outline-color:rgba(var(--ax-color-warning-500))}ax-button.ax-warning-outline:is(ax-button.ax-warning-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-warning-500));background-color:rgba(var(--ax-color-warning-500));color:rgba(var(--ax-color-warning-fore))}ax-button.ax-warning-outline:is(ax-button.ax-warning-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-warning-600));background-color:rgba(var(--ax-color-warning-600));color:rgba(var(--ax-color-warning-fore))}ax-button.ax-warning-outline:is(ax-button.ax-warning-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-warning-400));background-color:transparent;color:rgba(var(--ax-color-warning-500))}ax-button.ax-warning-outline.ax-state-selected{background-color:rgba(var(--ax-color-warning-700));border-color:rgba(var(--ax-color-warning-700));color:rgba(var(--ax-color-warning-fore))}ax-button.ax-warning-blank{color:rgba(var(--ax-color-warning-500))}ax-button.ax-warning-blank>button:is(ax-button.ax-warning-blank > button:focus-visible){outline-color:rgba(var(--ax-color-warning-500))}ax-button.ax-warning-blank:is(ax-button.ax-warning-blank:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-warning-50));color:rgba(var(--ax-color-warning-800))}ax-button.ax-warning-blank:is(ax-button.ax-warning-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-warning-700));outline-color:rgba(var(--ax-color-warning-600))}ax-button.ax-warning-blank:is(ax-button.ax-warning-blank:active):not(.ax-state-disabled){color:rgba(var(--ax-color-warning-500));background-color:transparent}ax-button.ax-warning-blank.ax-state-selected{background-color:rgba(var(--ax-color-warning-700));color:rgba(var(--ax-color-warning-fore))}ax-button.ax-danger-default{background-color:rgba(var(--ax-color-danger-500));color:rgba(var(--ax-color-danger-fore));border-color:rgba(var(--ax-color-danger-400))}ax-button.ax-danger-default>button:is(ax-button.ax-danger-default > button:focus-within){outline-color:rgba(var(--ax-color-danger-500))}ax-button.ax-danger-default:is(ax-button.ax-danger-default:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-danger-600))}ax-button.ax-danger-default:is(ax-button.ax-danger-default:focus-visible):not(.ax-state-disabled){background-color:rgba(var(--ax-color-danger-600))}ax-button.ax-danger-default:is(ax-button.ax-danger-default:active):not(.ax-state-disabled){background-color:rgba(var(--ax-color-danger-500))}ax-button.ax-danger-default.ax-state-selected{background-color:rgba(var(--ax-color-danger-700))}ax-button.ax-danger-outline{border:2px solid;border-color:rgba(var(--ax-color-danger-500));color:rgba(var(--ax-color-danger-500))}ax-button.ax-danger-outline>button:is(ax-button.ax-danger-outline > button:focus-visible){outline-color:rgba(var(--ax-color-danger-500))}ax-button.ax-danger-outline:is(ax-button.ax-danger-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-500));color:rgba(var(--ax-color-danger-fore))}ax-button.ax-danger-outline:is(ax-button.ax-danger-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-danger-600));background-color:rgba(var(--ax-color-danger-600));color:rgba(var(--ax-color-danger-fore))}ax-button.ax-danger-outline:is(ax-button.ax-danger-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-danger-400));background-color:transparent;color:rgba(var(--ax-color-danger-500))}ax-button.ax-danger-outline.ax-state-selected{background-color:rgba(var(--ax-color-danger-700));border-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}ax-button.ax-danger-blank{color:rgba(var(--ax-color-danger-500))}ax-button.ax-danger-blank>button:is(ax-button.ax-danger-blank > button:focus-visible){outline-color:rgba(var(--ax-color-danger-500))}ax-button.ax-danger-blank:is(ax-button.ax-danger-blank:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-800))}ax-button.ax-danger-blank:is(ax-button.ax-danger-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-danger-700));outline-color:rgba(var(--ax-color-danger-600))}ax-button.ax-danger-blank:is(ax-button.ax-danger-blank:active):not(.ax-state-disabled){color:rgba(var(--ax-color-danger-500));background-color:transparent}ax-button.ax-danger-blank.ax-state-selected{background-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}ax-button.ax-info-default{background-color:rgba(var(--ax-color-info-500));color:rgba(var(--ax-color-info-fore));border-color:rgba(var(--ax-color-info-400))}ax-button.ax-info-default>button:is(ax-button.ax-info-default > button:focus-within){outline-color:rgba(var(--ax-color-info-500))}ax-button.ax-info-default:is(ax-button.ax-info-default:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-info-600))}ax-button.ax-info-default:is(ax-button.ax-info-default:focus-visible):not(.ax-state-disabled){background-color:rgba(var(--ax-color-info-600))}ax-button.ax-info-default:is(ax-button.ax-info-default:active):not(.ax-state-disabled){background-color:rgba(var(--ax-color-info-500))}ax-button.ax-info-default.ax-state-selected{background-color:rgba(var(--ax-color-info-700))}ax-button.ax-info-outline{border:2px solid;border-color:rgba(var(--ax-color-info-500));color:rgba(var(--ax-color-info-500))}ax-button.ax-info-outline>button:is(ax-button.ax-info-outline > button:focus-visible){outline-color:rgba(var(--ax-color-info-500))}ax-button.ax-info-outline:is(ax-button.ax-info-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-info-500));background-color:rgba(var(--ax-color-info-500));color:rgba(var(--ax-color-info-fore))}ax-button.ax-info-outline:is(ax-button.ax-info-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-info-600));background-color:rgba(var(--ax-color-info-600));color:rgba(var(--ax-color-info-fore))}ax-button.ax-info-outline:is(ax-button.ax-info-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-info-400));background-color:transparent;color:rgba(var(--ax-color-info-500))}ax-button.ax-info-outline.ax-state-selected{background-color:rgba(var(--ax-color-info-700));border-color:rgba(var(--ax-color-info-700));color:rgba(var(--ax-color-info-fore))}ax-button.ax-info-blank{color:rgba(var(--ax-color-info-500))}ax-button.ax-info-blank>button:is(ax-button.ax-info-blank > button:focus-visible){outline-color:rgba(var(--ax-color-info-500))}ax-button.ax-info-blank:is(ax-button.ax-info-blank:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-info-50));color:rgba(var(--ax-color-info-800))}ax-button.ax-info-blank:is(ax-button.ax-info-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-info-700));outline-color:rgba(var(--ax-color-info-600))}ax-button.ax-info-blank:is(ax-button.ax-info-blank:active):not(.ax-state-disabled){color:rgba(var(--ax-color-info-500));background-color:transparent}ax-button.ax-info-blank.ax-state-selected{background-color:rgba(var(--ax-color-info-700));color:rgba(var(--ax-color-info-fore))}ax-button.ax-default-default{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-button.ax-default-outline{background-color:transparent;border:2px solid;border-color:rgba(var(--ax-color-border-default));color:rgba(var(--ax-color-text-default))}ax-button.ax-default-outline:hover{background-color:rgba(var(--ax-color-background-default))}ax-button.ax-default-outline:active{background-color:transparent}ax-button.ax-default-blank{background-color:transparent;border:none;color:rgba(var(--ax-color-text-default))}ax-button.ax-default-blank:hover{background-color:rgba(var(--ax-color-background-default))}ax-button.ax-default-blank:active{background-color:transparent}ax-button[class^=default]{box-shadow:0 1px 2px #0000000d}ax-button[class^=default]:hover{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}ax-button ax-prefix,ax-button ax-suffix{display:flex}ax-button.ax-xs{font-size:.75rem}ax-button.ax-xs>button{padding-inline-start:.25rem;padding-inline-end:.25rem}ax-button.ax-sm>button{padding-inline-start:.5rem;padding-inline-end:.5rem}ax-button.ax-sm,ax-button.ax-md{font-size:.875rem}ax-button.ax-lg{font-size:1.25rem}ax-button.ax-lg>button{padding-inline-start:1.5rem;padding-inline-end:1.5rem}ax-button.ax-xl{font-size:1.5rem;font-weight:600}ax-button.ax-xl>button{padding-inline-start:2rem;padding-inline-end:2rem}ax-button.ax-button-icon{font-size:1rem;width:var(--ax-size-default);height:var(--ax-size-default)}ax-button.ax-state-disabled,ax-button.ax-state-loading{opacity:.5}ax-button.ax-state-disabled>button,ax-button.ax-state-loading>button{cursor:not-allowed}ax-button>button{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%;padding:0 1rem}ax-button>button:is(ax-button > button:focus-visible){outline-width:2px;outline-offset:2px;outline-color:rgba(var(--ax-color-default));outline-style:solid;border-radius:inherit}ax-button>button .ax-button-text{padding-inline-start:.5rem;padding-inline-end:.5rem;white-space:nowrap;font-weight:500;line-height:1}.ax-dark ax-button.ax-primary-outline{border:2px solid;border-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-200))}.ax-dark ax-button.ax-primary-outline>button:is(.ax-dark ax-button.ax-primary-outline > button:focus-visible){outline-color:rgba(var(--ax-color-primary-500))}.ax-dark ax-button.ax-primary-outline:is(.ax-dark ax-button.ax-primary-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-primary-500));background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}.ax-dark ax-button.ax-primary-outline:is(.ax-dark ax-button.ax-primary-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-primary-600));background-color:rgba(var(--ax-color-primary-600));color:rgba(var(--ax-color-primary-fore))}.ax-dark ax-button.ax-primary-outline:is(.ax-dark ax-button.ax-primary-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-primary-400));background-color:transparent;color:rgba(var(--ax-color-primary-fore))}.ax-dark ax-button.ax-primary-outline.ax-state-selected{background-color:rgba(var(--ax-color-primary-700));color:rgba(var(--ax-color-primary-fore))}.ax-dark ax-button.ax-primary-blank{color:rgba(var(--ax-color-primary-300))}.ax-dark ax-button.ax-primary-blank>button:is(.ax-dark ax-button.ax-primary-blank > button:focus-visible){outline-color:rgba(var(--ax-color-primary-500))}.ax-dark ax-button.ax-primary-blank:is(.ax-dark ax-button.ax-primary-blank:hover):not(.ax-state-disabled){color:rgba(var(--ax-color-primary-900));background-color:rgba(var(--ax-color-primary-300))}.ax-dark ax-button.ax-primary-blank:is(.ax-dark ax-button.ax-primary-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-primary-300));outline-color:rgba(var(--ax-color-primary-300))}.ax-dark ax-button.ax-primary-blank:is(.ax-dark ax-button.ax-primary-blank:active):not(.ax-state-disabled){background-color:transparent;color:rgba(var(--ax-color-primary-100))}.ax-dark ax-button.ax-primary-blank.ax-state-selected{background-color:rgba(var(--ax-color-primary-700));color:rgba(var(--ax-color-primary-fore))}.ax-dark ax-button.ax-secondary-outline{border:2px solid;border-color:rgba(var(--ax-color-secondary-500));color:rgba(var(--ax-color-secondary-200))}.ax-dark ax-button.ax-secondary-outline>button:is(.ax-dark ax-button.ax-secondary-outline > button:focus-visible){outline-color:rgba(var(--ax-color-secondary-500))}.ax-dark ax-button.ax-secondary-outline:is(.ax-dark ax-button.ax-secondary-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-secondary-500));background-color:rgba(var(--ax-color-secondary-500));color:rgba(var(--ax-color-secondary-fore))}.ax-dark ax-button.ax-secondary-outline:is(.ax-dark ax-button.ax-secondary-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-secondary-600));background-color:rgba(var(--ax-color-secondary-600));color:rgba(var(--ax-color-secondary-fore))}.ax-dark ax-button.ax-secondary-outline:is(.ax-dark ax-button.ax-secondary-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-secondary-400));background-color:transparent;color:rgba(var(--ax-color-secondary-fore))}.ax-dark ax-button.ax-secondary-outline.ax-state-selected{background-color:rgba(var(--ax-color-secondary-700));color:rgba(var(--ax-color-secondary-fore))}.ax-dark ax-button.ax-secondary-blank{color:rgba(var(--ax-color-secondary-300))}.ax-dark ax-button.ax-secondary-blank>button:is(.ax-dark ax-button.ax-secondary-blank > button:focus-visible){outline-color:rgba(var(--ax-color-secondary-500))}.ax-dark ax-button.ax-secondary-blank:is(.ax-dark ax-button.ax-secondary-blank:hover):not(.ax-state-disabled){color:rgba(var(--ax-color-secondary-900));background-color:rgba(var(--ax-color-secondary-300))}.ax-dark ax-button.ax-secondary-blank:is(.ax-dark ax-button.ax-secondary-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-secondary-300));outline-color:rgba(var(--ax-color-secondary-300))}.ax-dark ax-button.ax-secondary-blank:is(.ax-dark ax-button.ax-secondary-blank:active):not(.ax-state-disabled){background-color:transparent;color:rgba(var(--ax-color-secondary-100))}.ax-dark ax-button.ax-secondary-blank.ax-state-selected{background-color:rgba(var(--ax-color-secondary-700));color:rgba(var(--ax-color-secondary-fore))}.ax-dark ax-button.ax-success-outline{border:2px solid;border-color:rgba(var(--ax-color-success-500));color:rgba(var(--ax-color-success-200))}.ax-dark ax-button.ax-success-outline>button:is(.ax-dark ax-button.ax-success-outline > button:focus-visible){outline-color:rgba(var(--ax-color-success-500))}.ax-dark ax-button.ax-success-outline:is(.ax-dark ax-button.ax-success-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-success-500));background-color:rgba(var(--ax-color-success-500));color:rgba(var(--ax-color-success-fore))}.ax-dark ax-button.ax-success-outline:is(.ax-dark ax-button.ax-success-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-success-600));background-color:rgba(var(--ax-color-success-600));color:rgba(var(--ax-color-success-fore))}.ax-dark ax-button.ax-success-outline:is(.ax-dark ax-button.ax-success-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-success-400));background-color:transparent;color:rgba(var(--ax-color-success-fore))}.ax-dark ax-button.ax-success-outline.ax-state-selected{background-color:rgba(var(--ax-color-success-700));color:rgba(var(--ax-color-success-fore))}.ax-dark ax-button.ax-success-blank{color:rgba(var(--ax-color-success-300))}.ax-dark ax-button.ax-success-blank>button:is(.ax-dark ax-button.ax-success-blank > button:focus-visible){outline-color:rgba(var(--ax-color-success-500))}.ax-dark ax-button.ax-success-blank:is(.ax-dark ax-button.ax-success-blank:hover):not(.ax-state-disabled){color:rgba(var(--ax-color-success-900));background-color:rgba(var(--ax-color-success-300))}.ax-dark ax-button.ax-success-blank:is(.ax-dark ax-button.ax-success-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-success-300));outline-color:rgba(var(--ax-color-success-300))}.ax-dark ax-button.ax-success-blank:is(.ax-dark ax-button.ax-success-blank:active):not(.ax-state-disabled){background-color:transparent;color:rgba(var(--ax-color-success-100))}.ax-dark ax-button.ax-success-blank.ax-state-selected{background-color:rgba(var(--ax-color-success-700));color:rgba(var(--ax-color-success-fore))}.ax-dark ax-button.ax-warning-outline{border:2px solid;border-color:rgba(var(--ax-color-warning-500));color:rgba(var(--ax-color-warning-200))}.ax-dark ax-button.ax-warning-outline>button:is(.ax-dark ax-button.ax-warning-outline > button:focus-visible){outline-color:rgba(var(--ax-color-warning-500))}.ax-dark ax-button.ax-warning-outline:is(.ax-dark ax-button.ax-warning-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-warning-500));background-color:rgba(var(--ax-color-warning-500));color:rgba(var(--ax-color-warning-fore))}.ax-dark ax-button.ax-warning-outline:is(.ax-dark ax-button.ax-warning-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-warning-600));background-color:rgba(var(--ax-color-warning-600));color:rgba(var(--ax-color-warning-fore))}.ax-dark ax-button.ax-warning-outline:is(.ax-dark ax-button.ax-warning-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-warning-400));background-color:transparent;color:rgba(var(--ax-color-warning-fore))}.ax-dark ax-button.ax-warning-outline.ax-state-selected{background-color:rgba(var(--ax-color-warning-700));color:rgba(var(--ax-color-warning-fore))}.ax-dark ax-button.ax-warning-blank{color:rgba(var(--ax-color-warning-300))}.ax-dark ax-button.ax-warning-blank>button:is(.ax-dark ax-button.ax-warning-blank > button:focus-visible){outline-color:rgba(var(--ax-color-warning-500))}.ax-dark ax-button.ax-warning-blank:is(.ax-dark ax-button.ax-warning-blank:hover):not(.ax-state-disabled){color:rgba(var(--ax-color-warning-900));background-color:rgba(var(--ax-color-warning-300))}.ax-dark ax-button.ax-warning-blank:is(.ax-dark ax-button.ax-warning-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-warning-300));outline-color:rgba(var(--ax-color-warning-300))}.ax-dark ax-button.ax-warning-blank:is(.ax-dark ax-button.ax-warning-blank:active):not(.ax-state-disabled){background-color:transparent;color:rgba(var(--ax-color-warning-100))}.ax-dark ax-button.ax-warning-blank.ax-state-selected{background-color:rgba(var(--ax-color-warning-700));color:rgba(var(--ax-color-warning-fore))}.ax-dark ax-button.ax-danger-outline{border:2px solid;border-color:rgba(var(--ax-color-danger-500));color:rgba(var(--ax-color-danger-200))}.ax-dark ax-button.ax-danger-outline>button:is(.ax-dark ax-button.ax-danger-outline > button:focus-visible){outline-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-button.ax-danger-outline:is(.ax-dark ax-button.ax-danger-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-500));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-button.ax-danger-outline:is(.ax-dark ax-button.ax-danger-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-danger-600));background-color:rgba(var(--ax-color-danger-600));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-button.ax-danger-outline:is(.ax-dark ax-button.ax-danger-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-danger-400));background-color:transparent;color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-button.ax-danger-outline.ax-state-selected{background-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-button.ax-danger-blank{color:rgba(var(--ax-color-danger-300))}.ax-dark ax-button.ax-danger-blank>button:is(.ax-dark ax-button.ax-danger-blank > button:focus-visible){outline-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-button.ax-danger-blank:is(.ax-dark ax-button.ax-danger-blank:hover):not(.ax-state-disabled){color:rgba(var(--ax-color-danger-900));background-color:rgba(var(--ax-color-danger-300))}.ax-dark ax-button.ax-danger-blank:is(.ax-dark ax-button.ax-danger-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-danger-300));outline-color:rgba(var(--ax-color-danger-300))}.ax-dark ax-button.ax-danger-blank:is(.ax-dark ax-button.ax-danger-blank:active):not(.ax-state-disabled){background-color:transparent;color:rgba(var(--ax-color-danger-100))}.ax-dark ax-button.ax-danger-blank.ax-state-selected{background-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-button.ax-info-outline{border:2px solid;border-color:rgba(var(--ax-color-info-500));color:rgba(var(--ax-color-info-200))}.ax-dark ax-button.ax-info-outline>button:is(.ax-dark ax-button.ax-info-outline > button:focus-visible){outline-color:rgba(var(--ax-color-info-500))}.ax-dark ax-button.ax-info-outline:is(.ax-dark ax-button.ax-info-outline:hover):not(.ax-state-disabled){border-color:rgba(var(--ax-color-info-500));background-color:rgba(var(--ax-color-info-500));color:rgba(var(--ax-color-info-fore))}.ax-dark ax-button.ax-info-outline:is(.ax-dark ax-button.ax-info-outline:focus-visible):not(.ax-state-disabled){border-color:rgba(var(--ax-color-info-600));background-color:rgba(var(--ax-color-info-600));color:rgba(var(--ax-color-info-fore))}.ax-dark ax-button.ax-info-outline:is(.ax-dark ax-button.ax-info-outline:active):not(.ax-state-disabled){border-color:rgba(var(--ax-color-info-400));background-color:transparent;color:rgba(var(--ax-color-info-fore))}.ax-dark ax-button.ax-info-outline.ax-state-selected{background-color:rgba(var(--ax-color-info-700));color:rgba(var(--ax-color-info-fore))}.ax-dark ax-button.ax-info-blank{color:rgba(var(--ax-color-info-300))}.ax-dark ax-button.ax-info-blank>button:is(.ax-dark ax-button.ax-info-blank > button:focus-visible){outline-color:rgba(var(--ax-color-info-500))}.ax-dark ax-button.ax-info-blank:is(.ax-dark ax-button.ax-info-blank:hover):not(.ax-state-disabled){color:rgba(var(--ax-color-info-900));background-color:rgba(var(--ax-color-info-300))}.ax-dark ax-button.ax-info-blank:is(.ax-dark ax-button.ax-info-blank:focus-visible):not(.ax-state-disabled){color:rgba(var(--ax-color-info-300));outline-color:rgba(var(--ax-color-info-300))}.ax-dark ax-button.ax-info-blank:is(.ax-dark ax-button.ax-info-blank:active):not(.ax-state-disabled){background-color:transparent;color:rgba(var(--ax-color-info-100))}.ax-dark ax-button.ax-info-blank.ax-state-selected{background-color:rgba(var(--ax-color-info-700));color:rgba(var(--ax-color-info-fore))}ax-button-group{display:flex;border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);width:-moz-fit-content;width:fit-content}ax-button-group ax-button{border-radius:0;border:none;border-inline-end:1px solid;box-shadow:none}ax-button-group ax-button[class*=-default]{border:0px!important}ax-button-group ax-button:not(:first-child):not(:last-child){border-inline-start-width:0px}ax-button-group ax-button:first-child{border-start-start-radius:var(--ax-rounded-border-default);border-end-start-radius:var(--ax-rounded-border-default)}ax-button-group ax-button:last-child{border-start-end-radius:var(--ax-rounded-border-default);border-end-end-radius:var(--ax-rounded-border-default);border-inline-end-width:0px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXButtonComponent, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXButtonComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'ax-button', inputs: ['disabled', 'size', 'tabIndex', 'color', 'look', 'text', 'toggleable', 'selected'], outputs: ['onBlur', 'onFocus', 'onClick', 'selectedChange', 'toggleableChange', 'lookChange', 'colorChange'], host: {
52
52
  '(click)': 'emitOnClickEvent($event)',
@@ -12,15 +12,15 @@ const COMPONENT = [
12
12
  ];
13
13
  const MODULES = [CommonModule, AXDecoratorModule];
14
14
  export class AXButtonModule {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: AXButtonModule, declarations: [AXButtonComponent,
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: AXButtonModule, declarations: [AXButtonComponent,
17
17
  AXButtonItemComponent,
18
18
  AXButtonGroupComponent], imports: [CommonModule, AXDecoratorModule], exports: [AXButtonComponent,
19
19
  AXButtonItemComponent,
20
20
  AXButtonGroupComponent] }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXButtonModule, imports: [MODULES] }); }
21
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXButtonModule, imports: [MODULES] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXButtonModule, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXButtonModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  imports: [MODULES],
@@ -130,10 +130,10 @@ export class AXCalendarRangeComponent extends classes((MXValueComponent), MXInte
130
130
  this._c1.navTo(e.startOf('year'));
131
131
  }
132
132
  }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: AXCalendarRangeComponent, selector: "ax-calendar-range", inputs: { rtl: "rtl", readonly: "readonly", value: "value", name: "name", disabled: "disabled", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation" }, outputs: { onOptionChanged: "onOptionChanged", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick" }, viewQueries: [{ propertyName: "_c1", first: true, predicate: ["c1"], descendants: true, static: true }, { propertyName: "_c2", first: true, predicate: ["c2"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-calendar-range-header\">\n <ng-content></ng-content>\n <div class=\"ax-calendar-header-range-info\">\n <button [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\" (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar #c1 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [min]=\"min\" [max]=\"max\" [readonly]=\"true\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (onNavigate)=\"handleNavigate()\" (activeViewChange)=\"handleActiveViewChange1()\">\n </ax-calendar>\n <ax-calendar #c2 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [min]=\"min\" [max]=\"max\" [readonly]=\"true\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (activeViewChange)=\"handleActiveViewChange2()\">\n </ax-calendar>\n</div>", styles: [".ax-dark ax-calendar-range{background:rgba(var(--ax-color-default))}.ax-dark ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-800));color:rgba(var(--ax-color-primary-fore))}ax-calendar-range{background:rgba(var(--ax-color-surface));color:rgba(var(--ax-color-text-default));padding:.5rem}ax-calendar-range .ax-calendar-range-header{display:flex;justify-content:space-between;padding-top:.25rem;padding-left:.25rem;padding-right:.25rem}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-info{font-weight:500}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-buttons{display:flex}ax-calendar-range .ax-calendar-range-body{display:flex;flex-direction:row}ax-calendar-range ax-calendar{margin:0;padding:0}ax-calendar-range ax-calendar .ax-calendar-body{margin-top:0;padding-top:0}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-100));color:rgba(var(--ax-color-primary-500))}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-start,ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-end{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "min", "max", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXCalendarRangeComponent, selector: "ax-calendar-range", inputs: { rtl: "rtl", readonly: "readonly", value: "value", name: "name", disabled: "disabled", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation" }, outputs: { onOptionChanged: "onOptionChanged", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick" }, viewQueries: [{ propertyName: "_c1", first: true, predicate: ["c1"], descendants: true, static: true }, { propertyName: "_c2", first: true, predicate: ["c2"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-calendar-range-header\">\n <ng-content></ng-content>\n <div class=\"ax-calendar-header-range-info\">\n <button [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\" (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar #c1 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [min]=\"min\" [max]=\"max\" [readonly]=\"true\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (onNavigate)=\"handleNavigate()\" (activeViewChange)=\"handleActiveViewChange1()\">\n </ax-calendar>\n <ax-calendar #c2 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [min]=\"min\" [max]=\"max\" [readonly]=\"true\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (activeViewChange)=\"handleActiveViewChange2()\">\n </ax-calendar>\n</div>", styles: [".ax-dark ax-calendar-range{background:rgba(var(--ax-color-default))}.ax-dark ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-800));color:rgba(var(--ax-color-primary-fore))}ax-calendar-range{background:rgba(var(--ax-color-surface));color:rgba(var(--ax-color-text-default));padding:.5rem}ax-calendar-range .ax-calendar-range-header{display:flex;justify-content:space-between;padding-top:.25rem;padding-left:.25rem;padding-right:.25rem}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-info{font-weight:500}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-buttons{display:flex}ax-calendar-range .ax-calendar-range-body{display:flex;flex-direction:row}ax-calendar-range ax-calendar{margin:0;padding:0}ax-calendar-range ax-calendar .ax-calendar-body{margin-top:0;padding-top:0}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-100));color:rgba(var(--ax-color-primary-500))}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-start,ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-end{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "min", "max", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarRangeComponent, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarRangeComponent, decorators: [{
137
137
  type: Component,
138
138
  args: [{ selector: 'ax-calendar-range', encapsulation: ViewEncapsulation.None, inputs: [
139
139
  'rtl',
@@ -166,10 +166,10 @@ export class MXCalendarBaseComponent extends classes(MXBaseComponent) {
166
166
  set holidayDates(v) {
167
167
  this.setOption({ name: 'holidayDates', value: v });
168
168
  }
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: MXCalendarBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
170
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: MXCalendarBaseComponent }); }
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: MXCalendarBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
170
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: MXCalendarBaseComponent }); }
171
171
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: MXCalendarBaseComponent, decorators: [{
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: MXCalendarBaseComponent, decorators: [{
173
173
  type: Injectable
174
174
  }], propDecorators: { interface: [{
175
175
  type: Input
@@ -204,7 +204,7 @@ export class AXCalendarComponent extends classes((MXValueComponent), MXInteracti
204
204
  'ax-state-today': r.today,
205
205
  'ax-state-selected': r.selected,
206
206
  'ax-state-holiday': r.holiday,
207
- 'ax-state-focused': focused,
207
+ //'ax-state-focused': focused,
208
208
  };
209
209
  }
210
210
  r.cssClass[`ax-col-start-${view.range.startTime.dayOfWeek}`] = i == 0;
@@ -373,10 +373,10 @@ export class AXCalendarComponent extends classes((MXValueComponent), MXInteracti
373
373
  const weekend = AXConfig.get(`dateTime.calendars.${this.type}.weekend`);
374
374
  return weekend.includes(date.dayOfWeek);
375
375
  }
376
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
377
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: AXCalendarComponent, selector: "ax-calendar", inputs: { rtl: "rtl", readonly: "readonly", value: "value", name: "name", disabled: "disabled", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation", count: "count" }, outputs: { onOptionChanged: "onOptionChanged", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick", countChange: "countChange" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"interface === 'calendar'; else pickerTemplate\">\n <ng-content select=\"ax-header\"></ng-content>\n <div class=\"ax-calendar-body\">\n <ng-container *ngFor=\"let v of views; let first = first; let last = last\">\n <div [ngSwitch]=\"activeView\">\n <ng-container *ngSwitchCase=\"'year'\">\n <div class=\"ax-calendar-view-header\">\n <div class=\"ax-calendar-header-info\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-state-disabled\"\n (click)=\"_handleNavClick($event, 'year')\">\n {{ v.range.startTime.format('YYYY') }} - {{ v.range.endTime.format('YYYY') }}\n </button>\n </div>\n <div class=\"ax-calendar-header-buttons\" *ngIf=\"last\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n </div>\n <div class=\"ax-calendar-slots ax-calendar-slots-year\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n <div\n tabindex=\"0\"\n *ngFor=\"let slot of v.slots\"\n class=\"ax-calendar-slot\"\n [ngClass]=\"slot.cssClass\"\n (click)=\"_handleSlotClick($event, slot)\">\n <ng-container *ngIf=\"cellTemplate; else yearTpl\">\n <div>\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #yearTpl>\n <div [title]=\"slot.tooltip\">\n {{ slot.text }}\n </div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'month'\">\n <div class=\"ax-calendar-view-header\">\n <div class=\"ax-calendar-header-info\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded\"\n (click)=\"_handleNavClick($event, 'year')\">\n {{ v.range.startTime.format('YYYY') }}\n </button>\n </div>\n <div class=\"ax-calendar-header-buttons\" *ngIf=\"last\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n </div>\n <div class=\"ax-calendar-slots ax-calendar-slots-month\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n <div\n tabindex=\"0\"\n *ngFor=\"let slot of v.slots\"\n class=\"ax-calendar-slot\"\n [ngClass]=\"slot.cssClass\"\n (click)=\"_handleSlotClick($event, slot)\">\n <ng-container *ngIf=\"cellTemplate; else monthTpl\">\n <div>\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #monthTpl>\n <div [title]=\"slot.tooltip\">\n {{ slot.text }}\n </div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"ax-calendar-view-header\">\n <div class=\"ax-calendar-header-info\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded\"\n (click)=\"_handleNavClick($event, 'year')\">\n {{ v.range.startTime.format('YYYY') }}\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded\"\n (click)=\"_handleNavClick($event, 'month')\">\n {{ v.range.startTime.format('MMM') }}\n </button>\n </div>\n <div class=\"ax-calendar-header-buttons\" *ngIf=\"last\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n </div>\n <div class=\"ax-calendar-week\">\n <div *ngFor=\"let d of _dayNames\">{{ d }}</div>\n </div>\n <div class=\"ax-calendar-slots ax-calendar-slots-day\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n <ng-container *ngFor=\"let slot of v.slots\">\n <div\n tabindex=\"0\"\n class=\"ax-calendar-slot\"\n [ngClass]=\"slot.cssClass\"\n (click)=\"_handleSlotClick($event, slot)\">\n <ng-container *ngIf=\"cellTemplate; else dayTpl\">\n <div>\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #dayTpl>\n <div [title]=\"slot.tooltip\">\n {{ slot.text }}\n </div>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <ng-content select=\"ax-footer\"></ng-content>\n</ng-container>\n<ng-template #pickerTemplate>\n <div class=\"ax-calendar-picker\">//TODO: picker</div>\n</ng-template>\n", styles: [".ax-dark ax-calendar{background:rgba(var(--ax-color-default))}ax-calendar{display:block;background:rgba(var(--ax-color-surface));color:rgba(var(--ax-color-text-default));width:max-content}@media (max-width: 599px){ax-calendar{width:100%}}ax-calendar.ax-state-disabled .ax-calendar-slots{opacity:.5;cursor:default}ax-calendar .ax-calendar-header{display:flex;justify-content:space-between;padding-top:.25rem;padding-left:.25rem;padding-right:.25rem}ax-calendar .ax-calendar-header .ax-calendar-header-info{font-weight:500}ax-calendar .ax-calendar-header .ax-calendar-header-buttons{display:flex}ax-calendar .ax-calendar-body{display:flex;flex-direction:row}ax-calendar .ax-calendar-body>div{flex:1}@media (max-width: 599px){ax-calendar .ax-calendar-body>div{width:100%}}@media (min-width: 600px){ax-calendar .ax-calendar-body>div{width:20rem}}@media (min-width: 1200px){ax-calendar .ax-calendar-body>div{width:19rem}}@media (min-width: 1800px){ax-calendar .ax-calendar-body>div{width:21rem}}ax-calendar .ax-calendar-body .ax-calendar-view-header{display:flex;justify-content:space-between;padding:.5rem;border-bottom:1px solid;border-bottom-color:rgba(var(--ax-color-border-default))}ax-calendar .ax-calendar-body .ax-calendar-view-header .ax-calendar-header-info{font-weight:500}ax-calendar .ax-calendar-body .ax-calendar-view-header .ax-calendar-header-buttons{display:flex}ax-calendar .ax-calendar-body .ax-calendar-slots{display:grid;gap:.25rem;padding:.5rem}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.875rem;color:rgba(var(--ax-color-text-default));border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:before{content:\"\";padding-top:100%;float:left}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:after{content:\"\";display:block;clear:both}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:hover:not(ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:hover.ax-state-disabled,ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:hover.ax-state-selected){background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:focus-visible:not(ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:focus-visible.ax-state-disabled){outline-width:2px;outline-style:solid;outline-color:rgba(var(--ax-color-primary-500))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:focus-visible.ax-state-disabled{outline-width:2px;outline-style:dashed}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-1{grid-column-start:1}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-2{grid-column-start:2}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-3{grid-column-start:3}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-4{grid-column-start:4}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-5{grid-column-start:5}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-6{grid-column-start:6}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-7{grid-column-start:7}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-other{opacity:.5}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-today{color:rgba(var(--ax-color-primary-500));border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-primary-200))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-focused{border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-selected{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-selected.ax-state-holiday{color:rgba(var(--ax-color-primary-fore))!important}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-holiday{color:rgba(var(--ax-color-danger-500))}ax-calendar .ax-calendar-body .ax-calendar-slots.ax-calendar-slots-day{grid-template-columns:repeat(7,minmax(0,1fr))}ax-calendar .ax-calendar-body .ax-calendar-slots.ax-calendar-slots-year,ax-calendar .ax-calendar-body .ax-calendar-slots.ax-calendar-slots-month{grid-template-columns:repeat(4,minmax(0,1fr))}ax-calendar .ax-calendar-body .ax-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:.5rem}ax-calendar .ax-calendar-body .ax-calendar-week>div{font-size:.875rem;text-align:center;position:relative;display:flex;align-items:center;justify-content:center;cursor:text;margin:.125rem}@media (max-width: 599px){ax-calendar .ax-calendar-body{flex-direction:column}}@media (min-width: 600px){ax-calendar .ax-calendar-body{flex-direction:column}}@media (min-width: 1200px){ax-calendar .ax-calendar-body{flex-direction:row}}@media (min-width: 1800px){ax-calendar .ax-calendar-body{flex-direction:row}}ax-calendar .ax-calendar-footer{display:flex;justify-content:center;align-items:center;margin-top:1.125rem}ax-calendar .ax-calendar-footer .ax-today-button{width:100%;height:var(--ax-size-default);padding:0 1rem;font-size:.875rem;text-align:center;display:block;background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore));border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-calendar .ax-calendar-footer .ax-today-button.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-calendar .ax-calendar-footer .ax-today-button:is(ax-calendar .ax-calendar-footer .ax-today-button:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-primary-400))}ax-calendar .ax-calendar-footer .ax-today-button:is(ax-calendar .ax-calendar-footer .ax-today-button:focus,ax-calendar .ax-calendar-footer .ax-today-button:focus-visible):not(.ax-state-disabled){outline-color:rgba(var(--ax-color-primary-600))}.ax-calendar-picker{display:flex;width:100%}.ax-calendar-picker ax-picker{flex:1 1 0%}.ax-overlay-pane ax-calendar{border-style:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXCalendarComponent, selector: "ax-calendar", inputs: { rtl: "rtl", readonly: "readonly", value: "value", name: "name", disabled: "disabled", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation", count: "count" }, outputs: { onOptionChanged: "onOptionChanged", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick", countChange: "countChange" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"interface === 'calendar'; else pickerTemplate\">\n <ng-content select=\"ax-header\"></ng-content>\n <div class=\"ax-calendar-body\">\n <ng-container *ngFor=\"let v of views; let first = first; let last = last\">\n <div [ngSwitch]=\"activeView\">\n <ng-container *ngSwitchCase=\"'year'\">\n <div class=\"ax-calendar-view-header\">\n <div class=\"ax-calendar-header-info\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-state-disabled\"\n (click)=\"_handleNavClick($event, 'year')\">\n {{ v.range.startTime.format('YYYY') }} - {{ v.range.endTime.format('YYYY') }}\n </button>\n </div>\n <div class=\"ax-calendar-header-buttons\" *ngIf=\"last\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n </div>\n <div class=\"ax-calendar-slots ax-calendar-slots-year\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n <div\n tabindex=\"0\"\n *ngFor=\"let slot of v.slots\"\n class=\"ax-calendar-slot\"\n [ngClass]=\"slot.cssClass\"\n (click)=\"_handleSlotClick($event, slot)\">\n <ng-container *ngIf=\"cellTemplate; else yearTpl\">\n <div>\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #yearTpl>\n <div [title]=\"slot.tooltip\">\n {{ slot.text }}\n </div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'month'\">\n <div class=\"ax-calendar-view-header\">\n <div class=\"ax-calendar-header-info\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded\"\n (click)=\"_handleNavClick($event, 'year')\">\n {{ v.range.startTime.format('YYYY') }}\n </button>\n </div>\n <div class=\"ax-calendar-header-buttons\" *ngIf=\"last\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n </div>\n <div class=\"ax-calendar-slots ax-calendar-slots-month\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n <div\n tabindex=\"0\"\n *ngFor=\"let slot of v.slots\"\n class=\"ax-calendar-slot\"\n [ngClass]=\"slot.cssClass\"\n (click)=\"_handleSlotClick($event, slot)\">\n <ng-container *ngIf=\"cellTemplate; else monthTpl\">\n <div>\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #monthTpl>\n <div [title]=\"slot.tooltip\">\n {{ slot.text }}\n </div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"ax-calendar-view-header\">\n <div class=\"ax-calendar-header-info\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded\"\n (click)=\"_handleNavClick($event, 'year')\">\n {{ v.range.startTime.format('YYYY') }}\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded\"\n (click)=\"_handleNavClick($event, 'month')\">\n {{ v.range.startTime.format('MMM') }}\n </button>\n </div>\n <div class=\"ax-calendar-header-buttons\" *ngIf=\"last\">\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handlePrevClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button\n [attr.disabled]=\"disabled ? '' : null\"\n class=\"ax-general-button ax-button-rounded ax-button-icon\"\n (click)=\"_handleNextClick()\">\n <i\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n </div>\n <div class=\"ax-calendar-week\">\n <div *ngFor=\"let d of _dayNames\">{{ d }}</div>\n </div>\n <div class=\"ax-calendar-slots ax-calendar-slots-day\" [ngClass]=\"{ 'ax-default': !cellTemplate }\">\n <ng-container *ngFor=\"let slot of v.slots\">\n <div\n tabindex=\"0\"\n class=\"ax-calendar-slot\"\n [ngClass]=\"slot.cssClass\"\n (click)=\"_handleSlotClick($event, slot)\">\n <ng-container *ngIf=\"cellTemplate; else dayTpl\">\n <div>\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: { slot: slot } }\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #dayTpl>\n <div [title]=\"slot.tooltip\">\n {{ slot.text }}\n </div>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <ng-content select=\"ax-footer\"></ng-content>\n</ng-container>\n<ng-template #pickerTemplate>\n <div class=\"ax-calendar-picker\">//TODO: picker</div>\n</ng-template>\n", styles: [".ax-dark ax-calendar{background:rgba(var(--ax-color-default))}ax-calendar{display:block;background:rgba(var(--ax-color-surface));color:rgba(var(--ax-color-text-default));width:max-content}@media (max-width: 599px){ax-calendar{width:100%}}ax-calendar.ax-state-disabled .ax-calendar-slots{opacity:.5;cursor:default}ax-calendar .ax-calendar-header{display:flex;justify-content:space-between;padding-top:.25rem;padding-left:.25rem;padding-right:.25rem}ax-calendar .ax-calendar-header .ax-calendar-header-info{font-weight:500}ax-calendar .ax-calendar-header .ax-calendar-header-buttons{display:flex}ax-calendar .ax-calendar-body{display:flex;flex-direction:row}ax-calendar .ax-calendar-body>div{flex:1}@media (max-width: 599px){ax-calendar .ax-calendar-body>div{width:100%}}@media (min-width: 600px){ax-calendar .ax-calendar-body>div{width:20rem}}@media (min-width: 1200px){ax-calendar .ax-calendar-body>div{width:19rem}}@media (min-width: 1800px){ax-calendar .ax-calendar-body>div{width:21rem}}ax-calendar .ax-calendar-body .ax-calendar-view-header{display:flex;justify-content:space-between;padding:.5rem;border-bottom:1px solid;border-bottom-color:rgba(var(--ax-color-border-default))}ax-calendar .ax-calendar-body .ax-calendar-view-header .ax-calendar-header-info{font-weight:500}ax-calendar .ax-calendar-body .ax-calendar-view-header .ax-calendar-header-buttons{display:flex}ax-calendar .ax-calendar-body .ax-calendar-slots{display:grid;gap:.25rem;padding:.5rem}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.875rem;color:rgba(var(--ax-color-text-default));border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:before{content:\"\";padding-top:100%;float:left}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:after{content:\"\";display:block;clear:both}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:hover:not(ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:hover.ax-state-disabled,ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:hover.ax-state-selected){background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:focus-visible:not(ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:focus-visible.ax-state-disabled){outline-width:2px;outline-style:solid;outline-color:rgba(var(--ax-color-primary-500))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot:focus-visible.ax-state-disabled{outline-width:2px;outline-style:dashed}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-1{grid-column-start:1}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-2{grid-column-start:2}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-3{grid-column-start:3}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-4{grid-column-start:4}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-5{grid-column-start:5}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-6{grid-column-start:6}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-col-start-7{grid-column-start:7}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-other{opacity:.5}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-today{color:rgba(var(--ax-color-primary-500));border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-primary-200))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-focused{border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-selected{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-selected.ax-state-holiday{color:rgba(var(--ax-color-primary-fore))!important}ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-state-holiday{color:rgba(var(--ax-color-danger-500))}ax-calendar .ax-calendar-body .ax-calendar-slots.ax-calendar-slots-day{grid-template-columns:repeat(7,minmax(0,1fr))}ax-calendar .ax-calendar-body .ax-calendar-slots.ax-calendar-slots-year,ax-calendar .ax-calendar-body .ax-calendar-slots.ax-calendar-slots-month{grid-template-columns:repeat(4,minmax(0,1fr))}ax-calendar .ax-calendar-body .ax-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:.5rem}ax-calendar .ax-calendar-body .ax-calendar-week>div{font-size:.875rem;text-align:center;position:relative;display:flex;align-items:center;justify-content:center;cursor:text;margin:.125rem}@media (max-width: 599px){ax-calendar .ax-calendar-body{flex-direction:column}}@media (min-width: 600px){ax-calendar .ax-calendar-body{flex-direction:column}}@media (min-width: 1200px){ax-calendar .ax-calendar-body{flex-direction:row}}@media (min-width: 1800px){ax-calendar .ax-calendar-body{flex-direction:row}}ax-calendar .ax-calendar-footer{display:flex;justify-content:center;align-items:center;margin-top:1.125rem}ax-calendar .ax-calendar-footer .ax-today-button{width:100%;height:var(--ax-size-default);padding:0 1rem;font-size:.875rem;text-align:center;display:block;background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore));border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-calendar .ax-calendar-footer .ax-today-button.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-calendar .ax-calendar-footer .ax-today-button:is(ax-calendar .ax-calendar-footer .ax-today-button:hover):not(.ax-state-disabled){background-color:rgba(var(--ax-color-primary-400))}ax-calendar .ax-calendar-footer .ax-today-button:is(ax-calendar .ax-calendar-footer .ax-today-button:focus,ax-calendar .ax-calendar-footer .ax-today-button:focus-visible):not(.ax-state-disabled){outline-color:rgba(var(--ax-color-primary-600))}.ax-calendar-picker{display:flex;width:100%}.ax-calendar-picker ax-picker{flex:1 1 0%}.ax-overlay-pane ax-calendar{border-style:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
378
378
  }
379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarComponent, decorators: [{
379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarComponent, decorators: [{
380
380
  type: Component,
381
381
  args: [{ selector: 'ax-calendar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, inputs: [
382
382
  'rtl',
@@ -414,4 +414,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
414
414
  type: HostBinding,
415
415
  args: ['class']
416
416
  }] } });
417
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQVksTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBSUwsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBSUwsdUJBQXVCLEdBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBMENuQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsT0FBTyxDQUM5QyxDQUFBLGdCQUFzQixDQUFBLEVBQ3RCLHNCQUFzQixFQUN0Qix1QkFBdUIsQ0FDeEI7SUFDQyxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLGVBQWUsQ0FDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hELENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBbUI7UUFDMUMsUUFBUSxJQUFJLENBQUMsVUFB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IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWERhdGVUaW1lLCBBWERhdGVUaW1lUmFuZ2UsIFRpbWVVbml0IH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGVUaW1lJztcbmltcG9ydCB7XG4gIEFYQ2xpY2tFdmVudCxcbiAgQVhPcHRpb25DaGFuZ2VkRXZlbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG4gIE1YSW50ZXJhY3RpdmVDb21wb25lbnQsXG4gIE1YVmFsdWVDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuXG5pbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25maWcnO1xuaW1wb3J0IHtcbiAgQVhDYWxlbmRhclZpZXcsXG4gIEFYQ2FsZW5kYXJWaWV3U2xvdCxcbiAgQVhDYWxlbmRhclZpZXdUeXBlLFxuICBNWENhbGVuZGFyQmFzZUNvbXBvbmVudCxcbn0gZnJvbSAnLi9jYWxlbmRhci5jbGFzcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IFtcbiAgICAncnRsJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd2YWx1ZScsXG4gICAgJ25hbWUnLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2RlcHRoJyxcbiAgICAnYWN0aXZlVmlldycsXG4gICAgJ21pbicsXG4gICAgJ21heCcsXG4gICAgJ2Rpc2FibGVkRGF0ZXMnLFxuICAgICdob2xpZGF5RGF0ZXMnLFxuICAgICd0eXBlJyxcbiAgICAnY2VsbFRlbXBsYXRlJyxcbiAgICAnY2VsbENsYXNzJyxcbiAgICAnc2hvd05hdmlnYXRpb24nLFxuICAgICdjb3VudCcsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAnb25PcHRpb25DaGFuZ2VkJyxcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdkZXB0aENoYW5nZScsXG4gICAgJ3R5cGVDaGFuZ2UnLFxuICAgICdhY3RpdmVWaWV3Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWREYXRlc0NoYW5nZScsXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXG4gICAgJ29uTmF2aWdhdGUnLFxuICAgICdvblNsb3RDbGljaycsXG4gICAgJ2NvdW50Q2hhbmdlJyxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhckNvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoXG4gIE1YVmFsdWVDb21wb25lbnQ8RGF0ZT4sXG4gIE1YSW50ZXJhY3RpdmVDb21wb25lbnQsXG4gIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50XG4pIHtcbiAgcHVibGljIGdldCBkaXNwbGF5UmFuZ2UoKTogQVhEYXRlVGltZVJhbmdlIHtcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShcbiAgICAgIHRoaXMudmlld3NbMF0ucmFuZ2Uuc3RhcnRUaW1lLFxuICAgICAgdGhpcy52aWV3c1t0aGlzLnZpZXdzLmxlbmd0aCAtIDFdLnJhbmdlLmVuZFRpbWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RGlzcGxheVJhbmdlKGN1cnJlbnQ6IEFYRGF0ZVRpbWUpOiBBWERhdGVUaW1lUmFuZ2Uge1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgbGV0IHkgPSBjdXJyZW50LnN0YXJ0T2YoJ3llYXInKS55ZWFyO1xuICAgICAgICBsZXQgbWluID0geSAtICh5ICUgMTApO1xuICAgICAgICBsZXQgbWF4ID0gbWluICsgOTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lUmFuZ2UoXG4gICAgICAgICAgQVhEYXRlVGltZS5mcm9tKHtcbiAgICAgICAgICAgIHllYXI6IG1pbixcbiAgICAgICAgICAgIG1vbnRoOiAxLFxuICAgICAgICAgICAgZGF0ZTogMSxcbiAgICAgICAgICAgIGNhbGVuZGFyOiB0aGlzLl92aWV3U3RhcnREYXRlLmNhbGVuZGFyLm5hbWUoKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBBWERhdGVUaW1lLmZyb20oe1xuICAgICAgICAgICAgeWVhcjogbWF4LFxuICAgICAgICAgICAgbW9udGg6IDEyLFxuICAgICAgICAgICAgZGF0ZTogMjgsXG4gICAgICAgICAgICBjYWxlbmRhcjogdGhpcy5fdmlld1N0YXJ0RGF0ZS5jYWxlbmRhci5uYW1lKCksXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lUmFuZ2UoY3VycmVudC5zdGFydE9mKCd5ZWFyJyksIGN1cnJlbnQuZW5kT2YoJ3llYXInKS5hZGQoJ2RheScsIC0xKSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShjdXJyZW50LnN0YXJ0T2YoJ21vbnRoJyksIGN1cnJlbnQuZW5kT2YoJ21vbnRoJykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfdG9kYXkgPSBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICBwcml2YXRlIF92aWV3U3RhcnREYXRlITogQVhEYXRlVGltZTtcbiAgcHJpdmF0ZSBfZm9vdFByaW50ID0ge1xuICAgIHllYXI6IG51bGwsXG4gICAgbW9udGg6IG51bGwsXG4gICAgZGF5OiBudWxsLFxuICB9O1xuXG4gIHByb3RlY3RlZCB2aWV3czogQVhDYWxlbmRhclZpZXdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgX2RheU5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgX2luaXRWYWx1ZXMoKSB7XG4gICAgdGhpcy5fdG9kYXkgPSBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICAgIHRoaXMuX2RheU5hbWVzID0gdGhpcy5fdG9kYXkuY2FsZW5kYXIuZGF5U2hvcnROYW1lcztcbiAgfVxuXG4gIHByaXZhdGUgX3JlZnJlc2goKSB7XG4gICAgdGhpcy5faW5pdFZhbHVlcygpO1xuICAgIHRoaXMubmF2VG8odGhpcy52YWx1ZSB8fCB0aGlzLl90b2RheSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZU9uVmFsdWVDaGFuZ2VkLmJpbmQodGhpcykpO1xuICAgIHRoaXMub25PcHRpb25DaGFuZ2VkLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVPbk9wdGlvbkNoYW5nZWQuYmluZCh0aGlzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMuX2luaXRWYWx1ZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmdvVG9kYXkoKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKCF0aGlzLl92aWV3U3RhcnREYXRlKSByZXR1cm47XG4gICAgY29uc3QgYXBwbHlDZWxsQ2xhc3MgPSAoc2xvdDogQVhDYWxlbmRhclZpZXdTbG90LCBjZWxsQ2xhc3M6IGFueSA9IHRoaXMuY2VsbENsYXNzKSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGVvZiBjZWxsQ2xhc3MpIHtcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICBjZWxsQ2xhc3Muc3BsaXQoJyAnKS5mb3JFYWNoKChjKSA9PiAoc2xvdC5jc3NDbGFzc1tjXSA9IHRydWUpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHNsb3QuY3NzQ2xhc3MsIGNlbGxDbGFzcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgICBhcHBseUNlbGxDbGFzcyhzbG90LCBjZWxsQ2xhc3Moc2xvdC5kYXRlKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnZpZXdzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvdW50OyBpKyspIHtcbiAgICAgIGxldCB1bml0OiBUaW1lVW5pdCA9ICdtb250aCc7XG4gICAgICBsZXQgdmFsdWU6IG51bWJlciA9IGk7XG4gICAgICAvL1xuICAgICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnZGF5Jykge1xuICAgICAgICB1bml0ID0gJ21vbnRoJztcbiAgICAgICAgdmFsdWUgPSBpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgICB1bml0ID0gJ3llYXInO1xuICAgICAgICB2YWx1ZSA9IGk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1bml0ID0gJ3llYXInO1xuICAgICAgICB2YWx1ZSA9IGkgKiAxMDtcbiAgICAgIH1cbiAgICAgIC8vXG4gICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fdmlld1N0YXJ0RGF0ZS5hZGQodW5pdCwgdmFsdWUpO1xuICAgICAgY29uc3QgdmlldzogQVhDYWxlbmRhclZpZXcgPSB7XG4gICAgICAgIHJhbmdlOiB0aGlzLl9zZXREaXNwbGF5UmFuZ2UoY3VycmVudCksXG4gICAgICAgIHNsb3RzOiBbXSxcbiAgICAgIH07XG4gICAgICB0aGlzLnZpZXdzLnB1c2godmlldyk7XG4gICAgICAvL1xuICAgICAgLy8geWVhciB2aWV3XG4gICAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICd5ZWFyJykge1xuICAgICAgICBjb25zdCBhID0gdmlldy5yYW5nZS5lbnVtdXJhdGUoJ3llYXInKTtcbiAgICAgICAgdmlldy5zbG90cyA9IGEubWFwKChkLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgcjogYW55ID0ge307XG4gICAgICAgICAgci5kYXRlID0gZC5kYXRlO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgci50ZXh0ID0gZC5mb3JtYXQoJ1lZWVknKTtcbiAgICAgICAgICByLnRvb2x0aXAgPSBkLmZvcm1hdCgnWVlZWScpO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgci50b2RheSA9IGQuZXF1YWwodGhpcy5fdG9kYXksICd5ZWFyJyk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICByLnNlbGVjdGVkID0gdGhpcy52YWx1ZSAmJiB0aGlzLmRlcHRoID09ICd5ZWFyJyAmJiBkLmVxdWFsKHRoaXMudmFsdWUsICd5ZWFyJyk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBjb25zdCBmb2N1c2VkID0gZC55ZWFyID09IHRoaXMuX2Zvb3RQcmludC55ZWFyO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgci5kaXNhYmxlZCA9XG4gICAgICAgICAgICAodGhpcy5taW4gJiYgZC5jb21wYXJlKHRoaXMubWluLCAneWVhcicpID09IC0xKSB8fFxuICAgICAgICAgICAgKHRoaXMubWF4ICYmIGQuY29tcGFyZSh0aGlzLm1heCwgJ3llYXInKSA9PSAxKTtcbiAgICAgICAgICAvL1xuICAgICAgICAgIGlmIChyLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByLmNzc0NsYXNzID0ge1xuICAgICAgICAgICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiByLmRpc2FibGVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgci5jc3NDbGFzcyA9IHtcbiAgICAgICAgICAgICAgJ2F4LXN0YXRlLXRvZGF5Jzogci50b2RheSxcbiAgICAgICAgICAgICAgJ2F4LXN0YXRlLXNlbGVjdGVkJzogci5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgJ2F4LXN0YXRlLWZvY3VzZWQnOiBmb2N1c2VkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXBwbHlDZWxsQ2xhc3Mocik7XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gbW9udGggdmlld1xuICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aCcpIHtcbiAgICAgICAgY29uc3QgYSA9IHZpZXcucmFuZ2UuZW51bXVyYXRlKCdtb250aCcpO1xuICAgICAgICB2aWV3LnNsb3RzID0gYS5tYXAoKGQsIGkpID0+IHtcbiAgICAgICAgICBjb25zdCByOiBhbnkgPSB7fTtcbiAgICAgICAgICByLmRhdGUgPSBkLmRhdGU7XG4gICAgICAgICAgci50ZXh0ID0gZC5mb3JtYXQoJ01NTScpO1xuICAgICAgICAgIHIudG9vbHRpcCA9IGQuZm9ybWF0KCdNTU1NIFlZWVknKTtcbiAgICAgICAgICByLnRvZGF5ID0gZC5lcXVhbCh0aGlzLl90b2RheSwgJ21vbnRoJyk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICByLmRpc2FibGVkID1cbiAgICAgICAgICAgICh0aGlzLm1pbiAmJiBkLmNvbXBhcmUodGhpcy5taW4sICdtb250aCcpID09IC0xKSB8fFxuICAgICAgICAgICAgKHRoaXMubWF4ICYmIGQuY29tcGFyZSh0aGlzLm1heCwgJ21vbnRoJykgPT0gMSk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICByLnNlbGVjdGVkID0gdGhpcy52YWx1ZSAmJiB0aGlzLmRlcHRoID09ICdtb250aCcgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAnbW9udGgnKTtcbiAgICAgICAgICAvL1xuICAgICAgICAgIGNvbnN0IGZvY3VzZWQgPSBkLm1vbnRoT2ZZZWFyID09IHRoaXMuX2Zvb3RQcmludC5tb250aCAmJiBkLnllYXIgPT0gdGhpcy5fZm9vdFByaW50LnllYXI7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpZiAoci5kaXNhYmxlZCkge1xuICAgICAgICAgICAgci5jc3NDbGFzcyA9IHtcbiAgICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogci5kaXNhYmxlZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XG4gICAgICAgICAgICAgICdheC1zdGF0ZS10b2RheSc6IHIudG9kYXksXG4gICAgICAgICAgICAgICdheC1zdGF0ZS1zZWxlY3RlZCc6IHIuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICdheC1zdGF0ZS1mb2N1c2VkJzogZm9jdXNlZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGFwcGx5Q2VsbENsYXNzKHIpO1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIGRheSB2aWV3XG4gICAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgYSA9IHZpZXcucmFuZ2UuZW51bXVyYXRlKCdkYXknKTtcbiAgICAgICAgdmlldy5zbG90cyA9IGEubWFwKChkLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgcjogYW55ID0ge307XG4gICAgICAgICAgci5kYXRlID0gZC5kYXRlO1xuICAgICAgICAgIHIudGV4dCA9IGQuZGF5T2ZNb250aDtcbiAgICAgICAgICByLnRvb2x0aXAgPSBkLmZvcm1hdCgpO1xuICAgICAgICAgIHIudG9kYXkgPSBkLmVxdWFsKHRoaXMuX3RvZGF5LCAnZGF5Jyk7XG4gICAgICAgICAgci5zZWxlY3RlZCA9IHRoaXMudmFsdWUgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAnZGF5Jyk7XG4gICAgICAgICAgci5ob2xpZGF5ID0gdGhpcy5pc0hvbGlkYXkoZCkgfHwgdGhpcy5pc1dlZWtlbmQoZCk7XG4gICAgICAgICAgci5kaXNhYmxlZCA9XG4gICAgICAgICAgICAodGhpcy5taW4gJiYgZC5jb21wYXJlKHRoaXMubWluLCAnZGF5JykgPT0gLTEpIHx8XG4gICAgICAgICAgICAodGhpcy5tYXggJiYgZC5jb21wYXJlKHRoaXMubWF4LCAnZGF5JykgPT0gMSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZChkKTtcbiAgICAgICAgICAvL1xuICAgICAgICAgIGNvbnN0IGZvY3VzZWQgPVxuICAgICAgICAgICAgZC5kYXlPZk1vbnRoID09IHRoaXMuX2Zvb3RQcmludC5kYXkgJiZcbiAgICAgICAgICAgIGQubW9udGhPZlllYXIgPT0gdGhpcy5fZm9vdFByaW50Lm1vbnRoICYmXG4gICAgICAgICAgICBkLnllYXIgPT0gdGhpcy5fZm9vdFByaW50LnllYXI7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpZiAoci5kaXNhYmxlZCkge1xuICAgICAgICAgICAgci5jc3NDbGFzcyA9IHtcbiAgICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XG4gICAgICAgICAgICAgICdheC1zdGF0ZS10b2RheSc6IHIudG9kYXksXG4gICAgICAgICAgICAgICdheC1zdGF0ZS1zZWxlY3RlZCc6IHIuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICdheC1zdGF0ZS1ob2xpZGF5Jzogci5ob2xpZGF5LFxuICAgICAgICAgICAgICAnYXgtc3RhdGUtZm9jdXNlZCc6IGZvY3VzZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByLmNzc0NsYXNzW2BheC1jb2wtc3RhcnQtJHt2aWV3LnJhbmdlLnN0YXJ0VGltZS5kYXlPZldlZWt9YF0gPSBpID09IDA7XG4gICAgICAgICAgaWYgKHRoaXMuY2VsbENsYXNzKSBhcHBseUNlbGxDbGFzcyhyKTtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVQcmV2Q2xpY2soKSB7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgdGhpcy5wcmV2KCk7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVOZXh0Q2xpY2soKSB7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgdGhpcy5uZXh0KCk7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVTbG90Q2xpY2soZTogTW91c2VFdmVudCwgc2xvdDogQVhDYWxlbmRhclZpZXdTbG90KSB7XG4gICAgaWYgKHNsb3QuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIC8vXG4gICAgdGhpcy5vblNsb3RDbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGl0ZW06IHNsb3QuZGF0ZSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgfSk7XG4gICAgLy9cbiAgICBjb25zdCB2YWwgPSBuZXcgQVhEYXRlVGltZShzbG90LmRhdGUsIHRoaXMudHlwZSk7XG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnZGF5Jykge1xuICAgICAgdGhpcy5fc2V0RGF0ZShzbG90LmRhdGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aCcgJiYgdGhpcy5kZXB0aCA9PSAnZGF5Jykge1xuICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ2RheSc7XG4gICAgICB0aGlzLl9mb290UHJpbnQubW9udGggPSB2YWwubW9udGhPZlllYXI7XG4gICAgICB0aGlzLm5hdlRvKHNsb3QuZGF0ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRoJyAmJiB0aGlzLmRlcHRoID09ICdtb250aCcpIHtcbiAgICAgIHRoaXMuX3NldERhdGUoc2xvdC5kYXRlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAneWVhcicgJiYgKHRoaXMuZGVwdGggPT0gJ2RheScgfHwgdGhpcy5kZXB0aCA9PSAnbW9udGgnKSkge1xuICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ21vbnRoJztcbiAgICAgIHRoaXMuX2Zvb3RQcmludC55ZWFyID0gdmFsLnllYXI7XG4gICAgICB0aGlzLm5hdlRvKHNsb3QuZGF0ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXInICYmIHRoaXMuZGVwdGggPT0gJ3llYXInKSB7XG4gICAgICB0aGlzLl9zZXREYXRlKHNsb3QuZGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVOYXZDbGljayhlOiBBWENsaWNrRXZlbnQgfCBhbnksIHZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xuICAgIHRoaXMuaXNVc2VySW50ZXJhY3Rpb24gPSB0cnVlO1xuICAgIHRoaXMuYWN0aXZlVmlldyA9IHZpZXc7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVZpZXcoKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnZGF5JykgdGhpcy5hY3RpdmVWaWV3ID0gJ21vbnRoJztcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRoJykgdGhpcy5hY3RpdmVWaWV3ID0gJ3llYXInO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbk9wdGlvbkNoYW5nZWQoZTogQVhPcHRpb25DaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBlLm5hbWUgPT0gJ2RlcHRoJyB8fFxuICAgICAgZS5uYW1lID09ICdhY3RpdmVWaWV3JyB8fFxuICAgICAgZS5uYW1lID09ICdkaXNhYmxlZERhdGVzJyB8fFxuICAgICAgZS5uYW1lID09ICdob2xpZGF5RGF0ZXMnXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICBpZiAoZS5uYW1lID09ICd0eXBlJykge1xuICAgICAgdGhpcy5fcmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBjb25zdCB2YWwgPSBuZXcgQVhEYXRlVGltZShlLnZhbHVlLCB0aGlzLnR5cGUpO1xuICAgIGlmIChcbiAgICAgICF0aGlzLl92aWV3U3RhcnREYXRlIHx8XG4gICAgICB2YWwuY29tcGFyZSh0aGlzLmRpc3BsYXlSYW5nZS5zdGFydFRpbWUsIHRoaXMuYWN0aXZlVmlldykgPT0gLTEgfHxcbiAgICAgIHZhbC5jb21wYXJlKHRoaXMuZGlzcGxheVJhbmdlLmVuZFRpbWUsIHRoaXMuYWN0aXZlVmlldykgPT0gMVxuICAgICkge1xuICAgICAgdGhpcy5fdmlld1N0YXJ0RGF0ZSA9IG5ldyBBWERhdGVUaW1lKGUudmFsdWUsIHRoaXMudHlwZSk7XG4gICAgfVxuICAgIHRoaXMuX2Zvb3RQcmludC55ZWFyID0gdmFsLnllYXI7XG4gICAgdGhpcy5fZm9vdFByaW50Lm1vbnRoID0gdmFsLm1vbnRoT2ZZZWFyO1xuICAgIHRoaXMuX2Zvb3RQcmludC5kYXkgPSB2YWwuZGF5T2ZNb250aDtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVHb1RvZGF5KCkge1xuICAgIHRoaXMuaXNVc2VySW50ZXJhY3Rpb24gPSB0cnVlO1xuICAgIHRoaXMuX3NldERhdGUodGhpcy5fdG9kYXkuZGF0ZSk7XG4gICAgdGhpcy5nb1RvZGF5KCk7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICB0aGlzLl9uYXZOZXh0UHJldihmYWxzZSk7XG4gIH1cblxuICBwcmV2KCkge1xuICAgIHRoaXMuX25hdk5leHRQcmV2KHRydWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZm9jdXMoKSB7XG4gICAgY29uc3QgZnVuYyA9IChzOiBzdHJpbmcpID0+IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihzKTtcbiAgICBjb25zdCBkaXYgPSBmdW5jKCcuYXgtY2FsZW5kYXItc2xvdHM+ZGl2LmF4LXN0YXRlLXNlbGVjdGVkJykgfHwgZnVuYygnLmF4LWNhbGVuZGFyLXNsb3RzPmRpdicpO1xuICAgIGRpdj8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX25hdk5leHRQcmV2KHByZXY6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBzaWduID0gcHJldiA/IC0xIDogMTtcbiAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdkYXknKVxuICAgICAgdGhpcy5uYXZUbyh0aGlzLl92aWV3U3RhcnREYXRlLmFkZCgnbW9udGgnLCBzaWduICogMSAqIHRoaXMuY291bnQpKTtcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRoJylcbiAgICAgIHRoaXMubmF2VG8odGhpcy5fdmlld1N0YXJ0RGF0ZS5hZGQoJ3llYXInLCBzaWduICogMSAqIHRoaXMuY291bnQpKTtcbiAgICBlbHNlIHRoaXMubmF2VG8odGhpcy5fdmlld1N0YXJ0RGF0ZS5hZGQoJ3llYXInLCBzaWduICogMTAgKiB0aGlzLmNvdW50KSk7XG4gIH1cblxuICBnb1RvZGF5KCkge1xuICAgIHRoaXMubmF2VG8odGhpcy5fdG9kYXkpO1xuICB9XG5cbiAgbmF2VG8oZGF0ZTogRGF0ZSB8IEFYRGF0ZVRpbWUpIHtcbiAgICBjb25zdCB2YWwgPSBBWERhdGVUaW1lLmNvbnZlcnQoZGF0ZSwgdGhpcy5fdG9kYXkuY2FsZW5kYXIubmFtZSgpKTtcbiAgICB0aGlzLl92aWV3U3RhcnREYXRlID0gdmFsLnN0YXJ0T2YoKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICAgIC8vdG8gbWFrZSBzdXJlIGl0cyByZW5kcmVkIGFuZCBkaXNwbGF5UmFuZ2UgaXMgbm90IG51bGxcbiAgICBpZiAodGhpcy52aWV3cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB2ciA9IHRoaXMuZGlzcGxheVJhbmdlO1xuICAgICAgdGhpcy5vbk5hdmlnYXRlLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0aGlzLmlzVXNlckludGVyYWN0aW9uLFxuICAgICAgICBzdGFydDogdnIuc3RhcnRUaW1lPy5kYXRlLFxuICAgICAgICBlbmQ6IHZyLmVuZFRpbWU/LmRhdGUsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBfY2xhc3NlcyA9IHtcbiAgICAgICdheC1zdGF0ZS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWQsXG4gICAgfTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoX2NsYXNzZXMpXG4gICAgICAuZmlsdGVyKChjKSA9PiBjWzFdKVxuICAgICAgLm1hcCgoYykgPT4gY1swXSlcbiAgICAgIC5qb2luKCcgJyk7XG4gIH1cblxuICBwcml2YXRlIF9zZXREYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMudmFsdWUgPSBBWERhdGVUaW1lLmNvbnZlcnQodmFsdWUsIHRoaXMuX3RvZGF5LmNhbGVuZGFyLm5hbWUoKSkuc3RhcnRPZigpLmRhdGU7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZChkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kaXNhYmxlZERhdGVzKSAmJiB0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoICE9IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMuc29tZSgoZCkgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuZGlzYWJsZWREYXRlcyA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzKGRhdGUuZGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0hvbGlkYXkoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuaG9saWRheURhdGVzKSAmJiB0aGlzLmhvbGlkYXlEYXRlcy5sZW5ndGggIT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuaG9saWRheURhdGVzLnNvbWUoKGQpID0+IGRhdGUuZXF1YWwoZCwgJ2RheScpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmhvbGlkYXlEYXRlcyA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5ob2xpZGF5RGF0ZXMoZGF0ZS5kYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzV2Vla2VuZChkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgd2Vla2VuZCA9IEFYQ29uZmlnLmdldChgZGF0ZVRpbWUuY2FsZW5kYXJzLiR7dGhpcy50eXBlfS53ZWVrZW5kYCkgYXMgbnVtYmVyW107XG4gICAgcmV0dXJuIHdlZWtlbmQuaW5jbHVkZXMoZGF0ZS5kYXlPZldlZWspO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW50ZXJmYWNlID09PSAnY2FsZW5kYXInOyBlbHNlIHBpY2tlclRlbXBsYXRlXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWJvZHlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2IG9mIHZpZXdzOyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJhY3RpdmVWaWV3XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid5ZWFyJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci12aWV3LWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1zdGF0ZS1kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVOYXZDbGljaygkZXZlbnQsICd5ZWFyJylcIj5cbiAgICAgICAgICAgICAgICB7eyB2LnJhbmdlLnN0YXJ0VGltZS5mb3JtYXQoJ1lZWVknKSB9fSAtIHt7IHYucmFuZ2UuZW5kVGltZS5mb3JtYXQoJ1lZWVknKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlci1idXR0b25zXCIgKm5nSWY9XCJsYXN0XCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVQcmV2Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnOiAhcnRsLFxuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLXJpZ2h0JzogcnRsXG4gICAgICAgICAgICAgICAgICB9XCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1yb3VuZGVkIGF4LWJ1dHRvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU5leHRDbGljaygpXCI+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtaWNvblwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tbGVmdCc6IHJ0bCxcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1yaWdodCc6ICFydGxcbiAgICAgICAgICAgICAgICAgIH1cIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXNsb3RzIGF4LWNhbGVuZGFyLXNsb3RzLXllYXJcIiBbbmdDbGFzc109XCJ7ICdheC1kZWZhdWx0JzogIWNlbGxUZW1wbGF0ZSB9XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzbG90IG9mIHYuc2xvdHNcIlxuICAgICAgICAgICAgICBjbGFzcz1cImF4LWNhbGVuZGFyLXNsb3RcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJzbG90LmNzc0NsYXNzXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soJGV2ZW50LCBzbG90KVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbFRlbXBsYXRlOyBlbHNlIHllYXJUcGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2xvdDogc2xvdCB9IH1cIj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZWFyVHBsPlxuICAgICAgICAgICAgICAgIDxkaXYgW3RpdGxlXT1cInNsb3QudG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgICAge3sgc2xvdC50ZXh0IH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItdmlldy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50LCAneWVhcicpXCI+XG4gICAgICAgICAgICAgICAge3sgdi5yYW5nZS5zdGFydFRpbWUuZm9ybWF0KCdZWVlZJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItYnV0dG9uc1wiICpuZ0lmPVwibGFzdFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWQgYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogIXJ0bCxcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1yaWdodCc6IHJ0bFxuICAgICAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVOZXh0Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnOiBydGwsXG4gICAgICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tcmlnaHQnOiAhcnRsXG4gICAgICAgICAgICAgICAgICB9XCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1zbG90cyBheC1jYWxlbmRhci1zbG90cy1tb250aFwiIFtuZ0NsYXNzXT1cInsgJ2F4LWRlZmF1bHQnOiAhY2VsbFRlbXBsYXRlIH1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNsb3Qgb2Ygdi5zbG90c1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNsb3QuY3NzQ2xhc3NcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZVNsb3RDbGljaygkZXZlbnQsIHNsb3QpXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsVGVtcGxhdGU7IGVsc2UgbW9udGhUcGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2xvdDogc2xvdCB9IH1cIj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtb250aFRwbD5cbiAgICAgICAgICAgICAgICA8ZGl2IFt0aXRsZV09XCJzbG90LnRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHNsb3QudGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXZpZXctaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItaGVhZGVyLWluZm9cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1yb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU5hdkNsaWNrKCRldmVudCwgJ3llYXInKVwiPlxuICAgICAgICAgICAgICAgIHt7IHYucmFuZ2Uuc3RhcnRUaW1lLmZvcm1hdCgnWVlZWScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50LCAnbW9udGgnKVwiPlxuICAgICAgICAgICAgICAgIHt7IHYucmFuZ2Uuc3RhcnRUaW1lLmZvcm1hdCgnTU1NJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItYnV0dG9uc1wiICpuZ0lmPVwibGFzdFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWQgYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogIXJ0bCxcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1yaWdodCc6IHJ0bFxuICAgICAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVOZXh0Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnOiBydGwsXG4gICAgICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tcmlnaHQnOiAhcnRsXG4gICAgICAgICAgICAgICAgICB9XCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci13ZWVrXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkIG9mIF9kYXlOYW1lc1wiPnt7IGQgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMtZGF5XCIgW25nQ2xhc3NdPVwieyAnYXgtZGVmYXVsdCc6ICFjZWxsVGVtcGxhdGUgfVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2xvdCBvZiB2LnNsb3RzXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soJGV2ZW50LCBzbG90KVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsVGVtcGxhdGU7IGVsc2UgZGF5VHBsXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBzbG90OiBzbG90IH0gfVwiPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGF5VHBsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBbdGl0bGVdPVwic2xvdC50b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHNsb3QudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNwaWNrZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXBpY2tlclwiPi8vVE9ETzogcGlja2VyPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
417
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQVksTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBSUwsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBSUwsdUJBQXVCLEdBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBMkNuQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsT0FBTyxDQUM5QyxDQUFBLGdCQUFzQixDQUFBLEVBQ3RCLHNCQUFzQixFQUN0Qix1QkFBdUIsQ0FDeEI7SUFDQyxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLGVBQWUsQ0FDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hELENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBbUI7UUFDMUMsUUFBUSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQixPQUFPLElBQUksZUFBZSxDQUN4QixVQUFVLENBQUMsSUFBSSxDQUFDO29CQUNkLElBQUksRUFBRSxHQUFHO29CQUNULEtBQUssRUFBRSxDQUFDO29CQUNSLElBQUksRUFBRSxDQUFDO29CQUNQLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7aUJBQzlDLENBQUMsRUFDRixVQUFVLENBQUMsSUFBSSxDQUFDO29CQUNkLElBQUksRUFBRSxHQUFHO29CQUNULEtBQUssRUFBRSxFQUFFO29CQUNULElBQUksRUFBRSxFQUFFO29CQUNSLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7aUJBQzlDLENBQUMsQ0FDSCxDQUFDO1lBQ0osS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVGO2dCQUNFLE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDaEY7SUFDSCxDQUFDO0lBYU8sV0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQ3RELENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF0QkEsV0FBTSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELGVBQVUsR0FBRztZQUNuQixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDO1FBRVEsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFDN0IsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQWNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFa0IsUUFBUTtRQUN6QixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFa0IsZUFBZTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTztRQUNqQyxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQXdCLEVBQUUsWUFBaUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25GLFFBQVEsT0FBTyxTQUFTLEVBQUU7Z0JBQ3hCLEtBQUssUUFBUTtvQkFDWCxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQy9ELE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDeEMsTUFBTTtnQkFDUixLQUFLLFVBQVU7b0JBQ2IsY0FBYyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzNDLE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxHQUFhLE9BQU8sQ0FBQztZQUM3QixJQUFJLEtBQUssR0FBVyxDQUFDLENBQUM7WUFDdEIsRUFBRTtZQUNGLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLEVBQUU7Z0JBQzVCLElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQ2YsS0FBSyxHQUFHLENBQUMsQ0FBQzthQUNYO2lCQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7Z0JBQ3JDLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQ2QsS0FBSyxHQUFHLENBQUMsQ0FBQzthQUNYO2lCQUFNO2dCQUNMLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQ2QsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDaEI7WUFDRCxFQUFFO1lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE1BQU0sSUFBSSxHQUFtQjtnQkFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLEVBQUU7WUFDRixZQUFZO1lBQ1osSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLE1BQU0sRUFBRTtnQkFDN0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDMUIsTUFBTSxDQUFDLEdBQVEsRUFBRSxDQUFDO29CQUNsQixDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQ2hCLEVBQUU7b0JBQ0YsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxQixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzdCLEVBQUU7b0JBQ0YsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLEVBQUU7b0JBQ0YsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDL0UsRUFBRTtvQkFDRixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO29CQUMvQyxFQUFFO29CQUNGLENBQUMsQ0FBQyxRQUFRO3dCQUNSLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7NEJBQy9DLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2pELEVBQUU7b0JBQ0YsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUNkLENBQUMsQ0FBQyxRQUFRLEdBQUc7NEJBQ1gsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLFFBQVE7eUJBQ2hDLENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsQ0FBQyxDQUFDLFFBQVEsR0FBRzs0QkFDWCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsS0FBSzs0QkFDekIsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLFFBQVE7NEJBQy9CLGtCQUFrQixFQUFFLE9BQU87eUJBQzVCLENBQUM7cUJBQ0g7b0JBQ0QsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsQixPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsYUFBYTtpQkFDUixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMxQixNQUFNLENBQUMsR0FBUSxFQUFFLENBQUM7b0JBQ2xCLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN6QixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ2xDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUN4QyxFQUFFO29CQUNGLENBQUMsQ0FBQyxRQUFRO3dCQUNSLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7NEJBQ2hELENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2xELEVBQUU7b0JBQ0YsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDakYsRUFBRTtvQkFDRixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ3pGLEVBQUU7b0JBQ0YsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUNkLENBQUMsQ0FBQyxRQUFRLEdBQUc7NEJBQ1gsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLFFBQVE7eUJBQ2hDLENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsQ0FBQyxDQUFDLFFBQVEsR0FBRzs0QkFDWCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsS0FBSzs0QkFDekIsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLFFBQVE7NEJBQy9CLGtCQUFrQixFQUFFLE9BQU87eUJBQzVCLENBQUM7cUJBQ0g7b0JBQ0QsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsQixPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsV0FBVztpQkFDTjtnQkFDSCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMxQixNQUFNLENBQUMsR0FBUSxFQUFFLENBQUM7b0JBQ2xCLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUN0QixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdkIsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3RDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3RELENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuRCxDQUFDLENBQUMsUUFBUTt3QkFDUixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUM5QyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckIsRUFBRTtvQkFDRixNQUFNLE9BQU8sR0FDWCxDQUFDLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRzt3QkFDbkMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7d0JBQ3RDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ2pDLEVBQUU7b0JBQ0YsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUNkLENBQUMsQ0FBQyxRQUFRLEdBQUc7NEJBQ1gsbUJBQW1CLEVBQUUsSUFBSTt5QkFDMUIsQ0FBQztxQkFDSDt5QkFBTTt3QkFDTCxDQUFDLENBQUMsUUFBUSxHQUFHOzRCQUNYLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxLQUFLOzRCQUN6QixtQkFBbUIsRUFBRSxDQUFDLENBQUMsUUFBUTs0QkFDL0Isa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE9BQU87NEJBQzdCLDhCQUE4Qjt5QkFDL0IsQ0FBQztxQkFDSDtvQkFDRCxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RFLElBQUksSUFBSSxDQUFDLFNBQVM7d0JBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QyxPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxDQUFhLEVBQUUsSUFBd0I7UUFDaEUsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQyxFQUFFO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsU0FBUyxFQUFFLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRSxDQUFDO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsRUFBRTtRQUNGLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFO1lBQzVELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxFQUFFO1lBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QjthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBR1MsZUFBZSxDQUFDLENBQXFCLEVBQUUsSUFBd0I7UUFDdkUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQzthQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTztZQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQ2hFLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxDQUF1QjtRQUN0RCxJQUNFLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTztZQUNqQixDQUFDLENBQUMsSUFBSSxJQUFJLFlBQVk7WUFDdEIsQ0FBQyxDQUFDLElBQUksSUFBSSxlQUFlO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLElBQUksY0FBYyxFQUN4QjtZQUNBLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRU8scUJBQXFCLENBQUMsQ0FBc0I7UUFDbEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFDRSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQ3BCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRCxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQzVEO1lBQ0EsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxRDtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVRLEtBQUs7UUFDWixNQUFNLElBQUksR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBaUIsQ0FBQyxDQUFDLENBQUM7UUFDbkYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDL0YsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFhO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2pFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7O1lBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQXVCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsdURBQXVEO1FBQ3ZELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxJQUFJO2dCQUNmLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ3pDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUk7Z0JBQ3pCLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUk7Z0JBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO2FBQ25DLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELElBQ1ksV0FBVztRQUNyQixNQUFNLFFBQVEsR0FBRztZQUNmLG1CQUFtQixFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ25DLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQzVCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25CLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBVztRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckYsQ0FBQztJQUVTLFVBQVUsQ0FBQyxJQUFnQjtRQUNuQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN2RSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzdEO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksVUFBVSxFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBZ0I7UUFDbEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDckUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM1RDthQUFNLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLFVBQVUsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRVMsU0FBUyxDQUFDLElBQWdCO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBYSxDQUFDO1FBQ3BGLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0EzWVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsazNCQzVEaEMsMjVQQStMQTs7MkZEbklhLG1CQUFtQjtrQkF4Qy9CLFNBQVM7K0JBQ0UsYUFBYSxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDO3dCQUNOLEtBQUs7d0JBQ0wsVUFBVTt3QkFDVixPQUFPO3dCQUNQLE1BQU07d0JBQ04sVUFBVTt3QkFDVixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osS0FBSzt3QkFDTCxLQUFLO3dCQUNMLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxNQUFNO3dCQUNOLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLE9BQU87cUJBQ1IsV0FDUTt3QkFDUCxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3FCQUNkOzBFQXlXVyxXQUFXO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGF0ZVRpbWUsIEFYRGF0ZVRpbWVSYW5nZSwgVGltZVVuaXQgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZVRpbWUnO1xuaW1wb3J0IHtcbiAgQVhDbGlja0V2ZW50LFxuICBBWE9wdGlvbkNoYW5nZWRFdmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCxcbiAgTVhWYWx1ZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5cbmltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlL2NvbmZpZyc7XG5pbXBvcnQge1xuICBBWENhbGVuZGFyVmlldyxcbiAgQVhDYWxlbmRhclZpZXdTbG90LFxuICBBWENhbGVuZGFyVmlld1R5cGUsXG4gIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50LFxufSBmcm9tICcuL2NhbGVuZGFyLmNsYXNzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW5wdXRzOiBbXG4gICAgJ3J0bCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndmFsdWUnLFxuICAgICduYW1lJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdkZXB0aCcsXG4gICAgJ2FjdGl2ZVZpZXcnLFxuICAgICdtaW4nLFxuICAgICdtYXgnLFxuICAgICdkaXNhYmxlZERhdGVzJyxcbiAgICAnaG9saWRheURhdGVzJyxcbiAgICAndHlwZScsXG4gICAgJ2NlbGxUZW1wbGF0ZScsXG4gICAgJ2NlbGxDbGFzcycsXG4gICAgJ3Nob3dOYXZpZ2F0aW9uJyxcbiAgICAnY291bnQnLFxuICBdLFxuICBvdXRwdXRzOiBbXG4gICAgJ29uT3B0aW9uQ2hhbmdlZCcsXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAnZGVwdGhDaGFuZ2UnLFxuICAgICd0eXBlQ2hhbmdlJyxcbiAgICAnYWN0aXZlVmlld0NoYW5nZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxuICAgICdob2xpZGF5RGF0ZXNDaGFuZ2UnLFxuICAgICdvbk5hdmlnYXRlJyxcbiAgICAnb25TbG90Q2xpY2snLFxuICAgICdjb3VudENoYW5nZScsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKFxuICBNWFZhbHVlQ29tcG9uZW50PERhdGU+LFxuICBNWEludGVyYWN0aXZlQ29tcG9uZW50LFxuICBNWENhbGVuZGFyQmFzZUNvbXBvbmVudFxuKSB7XG4gIHB1YmxpYyBnZXQgZGlzcGxheVJhbmdlKCk6IEFYRGF0ZVRpbWVSYW5nZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lUmFuZ2UoXG4gICAgICB0aGlzLnZpZXdzWzBdLnJhbmdlLnN0YXJ0VGltZSxcbiAgICAgIHRoaXMudmlld3NbdGhpcy52aWV3cy5sZW5ndGggLSAxXS5yYW5nZS5lbmRUaW1lXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldERpc3BsYXlSYW5nZShjdXJyZW50OiBBWERhdGVUaW1lKTogQVhEYXRlVGltZVJhbmdlIHtcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgIGxldCB5ID0gY3VycmVudC5zdGFydE9mKCd5ZWFyJykueWVhcjtcbiAgICAgICAgbGV0IG1pbiA9IHkgLSAoeSAlIDEwKTtcbiAgICAgICAgbGV0IG1heCA9IG1pbiArIDk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZVJhbmdlKFxuICAgICAgICAgIEFYRGF0ZVRpbWUuZnJvbSh7XG4gICAgICAgICAgICB5ZWFyOiBtaW4sXG4gICAgICAgICAgICBtb250aDogMSxcbiAgICAgICAgICAgIGRhdGU6IDEsXG4gICAgICAgICAgICBjYWxlbmRhcjogdGhpcy5fdmlld1N0YXJ0RGF0ZS5jYWxlbmRhci5uYW1lKCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgQVhEYXRlVGltZS5mcm9tKHtcbiAgICAgICAgICAgIHllYXI6IG1heCxcbiAgICAgICAgICAgIG1vbnRoOiAxMixcbiAgICAgICAgICAgIGRhdGU6IDI4LFxuICAgICAgICAgICAgY2FsZW5kYXI6IHRoaXMuX3ZpZXdTdGFydERhdGUuY2FsZW5kYXIubmFtZSgpLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZVJhbmdlKGN1cnJlbnQuc3RhcnRPZigneWVhcicpLCBjdXJyZW50LmVuZE9mKCd5ZWFyJykuYWRkKCdkYXknLCAtMSkpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lUmFuZ2UoY3VycmVudC5zdGFydE9mKCdtb250aCcpLCBjdXJyZW50LmVuZE9mKCdtb250aCcpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX3RvZGF5ID0gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcbiAgcHJpdmF0ZSBfdmlld1N0YXJ0RGF0ZSE6IEFYRGF0ZVRpbWU7XG4gIHByaXZhdGUgX2Zvb3RQcmludCA9IHtcbiAgICB5ZWFyOiBudWxsLFxuICAgIG1vbnRoOiBudWxsLFxuICAgIGRheTogbnVsbCxcbiAgfTtcblxuICBwcm90ZWN0ZWQgdmlld3M6IEFYQ2FsZW5kYXJWaWV3W10gPSBbXTtcbiAgcHJvdGVjdGVkIF9kYXlOYW1lczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIF9pbml0VmFsdWVzKCkge1xuICAgIHRoaXMuX3RvZGF5ID0gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcbiAgICB0aGlzLl9kYXlOYW1lcyA9IHRoaXMuX3RvZGF5LmNhbGVuZGFyLmRheVNob3J0TmFtZXM7XG4gIH1cblxuICBwcml2YXRlIF9yZWZyZXNoKCkge1xuICAgIHRoaXMuX2luaXRWYWx1ZXMoKTtcbiAgICB0aGlzLm5hdlRvKHRoaXMudmFsdWUgfHwgdGhpcy5fdG9kYXkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVPblZhbHVlQ2hhbmdlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLm9uT3B0aW9uQ2hhbmdlZC5zdWJzY3JpYmUodGhpcy5faGFuZGxlT25PcHRpb25DaGFuZ2VkLmJpbmQodGhpcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICB0aGlzLl9pbml0VmFsdWVzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5nb1RvZGF5KCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICghdGhpcy5fdmlld1N0YXJ0RGF0ZSkgcmV0dXJuO1xuICAgIGNvbnN0IGFwcGx5Q2VsbENsYXNzID0gKHNsb3Q6IEFYQ2FsZW5kYXJWaWV3U2xvdCwgY2VsbENsYXNzOiBhbnkgPSB0aGlzLmNlbGxDbGFzcykgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlb2YgY2VsbENsYXNzKSB7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgY2VsbENsYXNzLnNwbGl0KCcgJykuZm9yRWFjaCgoYykgPT4gKHNsb3QuY3NzQ2xhc3NbY10gPSB0cnVlKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihzbG90LmNzc0NsYXNzLCBjZWxsQ2xhc3MpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgYXBwbHlDZWxsQ2xhc3Moc2xvdCwgY2VsbENsYXNzKHNsb3QuZGF0ZSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy52aWV3cyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb3VudDsgaSsrKSB7XG4gICAgICBsZXQgdW5pdDogVGltZVVuaXQgPSAnbW9udGgnO1xuICAgICAgbGV0IHZhbHVlOiBudW1iZXIgPSBpO1xuICAgICAgLy9cbiAgICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheScpIHtcbiAgICAgICAgdW5pdCA9ICdtb250aCc7XG4gICAgICAgIHZhbHVlID0gaTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aCcpIHtcbiAgICAgICAgdW5pdCA9ICd5ZWFyJztcbiAgICAgICAgdmFsdWUgPSBpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdW5pdCA9ICd5ZWFyJztcbiAgICAgICAgdmFsdWUgPSBpICogMTA7XG4gICAgICB9XG4gICAgICAvL1xuICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKHVuaXQsIHZhbHVlKTtcbiAgICAgIGNvbnN0IHZpZXc6IEFYQ2FsZW5kYXJWaWV3ID0ge1xuICAgICAgICByYW5nZTogdGhpcy5fc2V0RGlzcGxheVJhbmdlKGN1cnJlbnQpLFxuICAgICAgICBzbG90czogW10sXG4gICAgICB9O1xuICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgICAgLy9cbiAgICAgIC8vIHllYXIgdmlld1xuICAgICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAneWVhcicpIHtcbiAgICAgICAgY29uc3QgYSA9IHZpZXcucmFuZ2UuZW51bXVyYXRlKCd5ZWFyJyk7XG4gICAgICAgIHZpZXcuc2xvdHMgPSBhLm1hcCgoZCwgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHI6IGFueSA9IHt9O1xuICAgICAgICAgIHIuZGF0ZSA9IGQuZGF0ZTtcbiAgICAgICAgICAvL1xuICAgICAgICAgIHIudGV4dCA9IGQuZm9ybWF0KCdZWVlZJyk7XG4gICAgICAgICAgci50b29sdGlwID0gZC5mb3JtYXQoJ1lZWVknKTtcbiAgICAgICAgICAvL1xuICAgICAgICAgIHIudG9kYXkgPSBkLmVxdWFsKHRoaXMuX3RvZGF5LCAneWVhcicpO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgci5zZWxlY3RlZCA9IHRoaXMudmFsdWUgJiYgdGhpcy5kZXB0aCA9PSAneWVhcicgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAneWVhcicpO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgY29uc3QgZm9jdXNlZCA9IGQueWVhciA9PSB0aGlzLl9mb290UHJpbnQueWVhcjtcbiAgICAgICAgICAvL1xuICAgICAgICAgIHIuZGlzYWJsZWQgPVxuICAgICAgICAgICAgKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ3llYXInKSA9PSAtMSkgfHxcbiAgICAgICAgICAgICh0aGlzLm1heCAmJiBkLmNvbXBhcmUodGhpcy5tYXgsICd5ZWFyJykgPT0gMSk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpZiAoci5kaXNhYmxlZCkge1xuICAgICAgICAgICAgci5jc3NDbGFzcyA9IHtcbiAgICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogci5kaXNhYmxlZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XG4gICAgICAgICAgICAgICdheC1zdGF0ZS10b2RheSc6IHIudG9kYXksXG4gICAgICAgICAgICAgICdheC1zdGF0ZS1zZWxlY3RlZCc6IHIuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICdheC1zdGF0ZS1mb2N1c2VkJzogZm9jdXNlZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGFwcGx5Q2VsbENsYXNzKHIpO1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIG1vbnRoIHZpZXdcbiAgICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnbW9udGgnKSB7XG4gICAgICAgIGNvbnN0IGEgPSB2aWV3LnJhbmdlLmVudW11cmF0ZSgnbW9udGgnKTtcbiAgICAgICAgdmlldy5zbG90cyA9IGEubWFwKChkLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgcjogYW55ID0ge307XG4gICAgICAgICAgci5kYXRlID0gZC5kYXRlO1xuICAgICAgICAgIHIudGV4dCA9IGQuZm9ybWF0KCdNTU0nKTtcbiAgICAgICAgICByLnRvb2x0aXAgPSBkLmZvcm1hdCgnTU1NTSBZWVlZJyk7XG4gICAgICAgICAgci50b2RheSA9IGQuZXF1YWwodGhpcy5fdG9kYXksICdtb250aCcpO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgci5kaXNhYmxlZCA9XG4gICAgICAgICAgICAodGhpcy5taW4gJiYgZC5jb21wYXJlKHRoaXMubWluLCAnbW9udGgnKSA9PSAtMSkgfHxcbiAgICAgICAgICAgICh0aGlzLm1heCAmJiBkLmNvbXBhcmUodGhpcy5tYXgsICdtb250aCcpID09IDEpO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgci5zZWxlY3RlZCA9IHRoaXMudmFsdWUgJiYgdGhpcy5kZXB0aCA9PSAnbW9udGgnICYmIGQuZXF1YWwodGhpcy52YWx1ZSwgJ21vbnRoJyk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBjb25zdCBmb2N1c2VkID0gZC5tb250aE9mWWVhciA9PSB0aGlzLl9mb290UHJpbnQubW9udGggJiYgZC55ZWFyID09IHRoaXMuX2Zvb3RQcmludC55ZWFyO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgaWYgKHIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XG4gICAgICAgICAgICAgICdheC1zdGF0ZS1kaXNhYmxlZCc6IHIuZGlzYWJsZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByLmNzc0NsYXNzID0ge1xuICAgICAgICAgICAgICAnYXgtc3RhdGUtdG9kYXknOiByLnRvZGF5LFxuICAgICAgICAgICAgICAnYXgtc3RhdGUtc2VsZWN0ZWQnOiByLnNlbGVjdGVkLFxuICAgICAgICAgICAgICAnYXgtc3RhdGUtZm9jdXNlZCc6IGZvY3VzZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBhcHBseUNlbGxDbGFzcyhyKTtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAvLyBkYXkgdmlld1xuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGEgPSB2aWV3LnJhbmdlLmVudW11cmF0ZSgnZGF5Jyk7XG4gICAgICAgIHZpZXcuc2xvdHMgPSBhLm1hcCgoZCwgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHI6IGFueSA9IHt9O1xuICAgICAgICAgIHIuZGF0ZSA9IGQuZGF0ZTtcbiAgICAgICAgICByLnRleHQgPSBkLmRheU9mTW9udGg7XG4gICAgICAgICAgci50b29sdGlwID0gZC5mb3JtYXQoKTtcbiAgICAgICAgICByLnRvZGF5ID0gZC5lcXVhbCh0aGlzLl90b2RheSwgJ2RheScpO1xuICAgICAgICAgIHIuc2VsZWN0ZWQgPSB0aGlzLnZhbHVlICYmIGQuZXF1YWwodGhpcy52YWx1ZSwgJ2RheScpO1xuICAgICAgICAgIHIuaG9saWRheSA9IHRoaXMuaXNIb2xpZGF5KGQpIHx8IHRoaXMuaXNXZWVrZW5kKGQpO1xuICAgICAgICAgIHIuZGlzYWJsZWQgPVxuICAgICAgICAgICAgKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ2RheScpID09IC0xKSB8fFxuICAgICAgICAgICAgKHRoaXMubWF4ICYmIGQuY29tcGFyZSh0aGlzLm1heCwgJ2RheScpID09IDEpIHx8XG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQoZCk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBjb25zdCBmb2N1c2VkID1cbiAgICAgICAgICAgIGQuZGF5T2ZNb250aCA9PSB0aGlzLl9mb290UHJpbnQuZGF5ICYmXG4gICAgICAgICAgICBkLm1vbnRoT2ZZZWFyID09IHRoaXMuX2Zvb3RQcmludC5tb250aCAmJlxuICAgICAgICAgICAgZC55ZWFyID09IHRoaXMuX2Zvb3RQcmludC55ZWFyO1xuICAgICAgICAgIC8vXG4gICAgICAgICAgaWYgKHIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XG4gICAgICAgICAgICAgICdheC1zdGF0ZS1kaXNhYmxlZCc6IHRydWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByLmNzc0NsYXNzID0ge1xuICAgICAgICAgICAgICAnYXgtc3RhdGUtdG9kYXknOiByLnRvZGF5LFxuICAgICAgICAgICAgICAnYXgtc3RhdGUtc2VsZWN0ZWQnOiByLnNlbGVjdGVkLFxuICAgICAgICAgICAgICAnYXgtc3RhdGUtaG9saWRheSc6IHIuaG9saWRheSxcbiAgICAgICAgICAgICAgLy8nYXgtc3RhdGUtZm9jdXNlZCc6IGZvY3VzZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByLmNzc0NsYXNzW2BheC1jb2wtc3RhcnQtJHt2aWV3LnJhbmdlLnN0YXJ0VGltZS5kYXlPZldlZWt9YF0gPSBpID09IDA7XG4gICAgICAgICAgaWYgKHRoaXMuY2VsbENsYXNzKSBhcHBseUNlbGxDbGFzcyhyKTtcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVQcmV2Q2xpY2soKSB7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgdGhpcy5wcmV2KCk7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVOZXh0Q2xpY2soKSB7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgdGhpcy5uZXh0KCk7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVTbG90Q2xpY2soZTogTW91c2VFdmVudCwgc2xvdDogQVhDYWxlbmRhclZpZXdTbG90KSB7XG4gICAgaWYgKHNsb3QuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIC8vXG4gICAgdGhpcy5vblNsb3RDbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGl0ZW06IHNsb3QuZGF0ZSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgfSk7XG4gICAgLy9cbiAgICBjb25zdCB2YWwgPSBuZXcgQVhEYXRlVGltZShzbG90LmRhdGUsIHRoaXMudHlwZSk7XG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnZGF5Jykge1xuICAgICAgdGhpcy5fc2V0RGF0ZShzbG90LmRhdGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aCcgJiYgdGhpcy5kZXB0aCA9PSAnZGF5Jykge1xuICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ2RheSc7XG4gICAgICB0aGlzLl9mb290UHJpbnQubW9udGggPSB2YWwubW9udGhPZlllYXI7XG4gICAgICB0aGlzLm5hdlRvKHNsb3QuZGF0ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRoJyAmJiB0aGlzLmRlcHRoID09ICdtb250aCcpIHtcbiAgICAgIHRoaXMuX3NldERhdGUoc2xvdC5kYXRlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAneWVhcicgJiYgKHRoaXMuZGVwdGggPT0gJ2RheScgfHwgdGhpcy5kZXB0aCA9PSAnbW9udGgnKSkge1xuICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ21vbnRoJztcbiAgICAgIHRoaXMuX2Zvb3RQcmludC55ZWFyID0gdmFsLnllYXI7XG4gICAgICB0aGlzLm5hdlRvKHNsb3QuZGF0ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXInICYmIHRoaXMuZGVwdGggPT0gJ3llYXInKSB7XG4gICAgICB0aGlzLl9zZXREYXRlKHNsb3QuZGF0ZSk7XG4gICAgfVxuICB9XG4gIFxuXG4gIHByb3RlY3RlZCBfaGFuZGxlTmF2Q2xpY2soZTogQVhDbGlja0V2ZW50IHwgYW55LCB2aWV3OiBBWENhbGVuZGFyVmlld1R5cGUpIHtcbiAgICB0aGlzLmlzVXNlckludGVyYWN0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLmFjdGl2ZVZpZXcgPSB2aWV3O1xuICAgIHRoaXMuaXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVWaWV3KCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheScpIHRoaXMuYWN0aXZlVmlldyA9ICdtb250aCc7XG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aCcpIHRoaXMuYWN0aXZlVmlldyA9ICd5ZWFyJztcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25PcHRpb25DaGFuZ2VkKGU6IEFYT3B0aW9uQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgZS5uYW1lID09ICdkZXB0aCcgfHxcbiAgICAgIGUubmFtZSA9PSAnYWN0aXZlVmlldycgfHxcbiAgICAgIGUubmFtZSA9PSAnZGlzYWJsZWREYXRlcycgfHxcbiAgICAgIGUubmFtZSA9PSAnaG9saWRheURhdGVzJ1xuICAgICkge1xuICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG4gICAgaWYgKGUubmFtZSA9PSAndHlwZScpIHtcbiAgICAgIHRoaXMuX3JlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPblZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgY29uc3QgdmFsID0gbmV3IEFYRGF0ZVRpbWUoZS52YWx1ZSwgdGhpcy50eXBlKTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5fdmlld1N0YXJ0RGF0ZSB8fFxuICAgICAgdmFsLmNvbXBhcmUodGhpcy5kaXNwbGF5UmFuZ2Uuc3RhcnRUaW1lLCB0aGlzLmFjdGl2ZVZpZXcpID09IC0xIHx8XG4gICAgICB2YWwuY29tcGFyZSh0aGlzLmRpc3BsYXlSYW5nZS5lbmRUaW1lLCB0aGlzLmFjdGl2ZVZpZXcpID09IDFcbiAgICApIHtcbiAgICAgIHRoaXMuX3ZpZXdTdGFydERhdGUgPSBuZXcgQVhEYXRlVGltZShlLnZhbHVlLCB0aGlzLnR5cGUpO1xuICAgIH1cbiAgICB0aGlzLl9mb290UHJpbnQueWVhciA9IHZhbC55ZWFyO1xuICAgIHRoaXMuX2Zvb3RQcmludC5tb250aCA9IHZhbC5tb250aE9mWWVhcjtcbiAgICB0aGlzLl9mb290UHJpbnQuZGF5ID0gdmFsLmRheU9mTW9udGg7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlR29Ub2RheSgpIHtcbiAgICB0aGlzLmlzVXNlckludGVyYWN0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLl9zZXREYXRlKHRoaXMuX3RvZGF5LmRhdGUpO1xuICAgIHRoaXMuZ29Ub2RheSgpO1xuICAgIHRoaXMuaXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgdGhpcy5fbmF2TmV4dFByZXYoZmFsc2UpO1xuICB9XG5cbiAgcHJldigpIHtcbiAgICB0aGlzLl9uYXZOZXh0UHJldih0cnVlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGZvY3VzKCkge1xuICAgIGNvbnN0IGZ1bmMgPSAoczogc3RyaW5nKSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4ocyk7XG4gICAgY29uc3QgZGl2ID0gZnVuYygnLmF4LWNhbGVuZGFyLXNsb3RzPmRpdi5heC1zdGF0ZS1zZWxlY3RlZCcpIHx8IGZ1bmMoJy5heC1jYWxlbmRhci1zbG90cz5kaXYnKTtcbiAgICBkaXY/LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9uYXZOZXh0UHJldihwcmV2OiBib29sZWFuKSB7XG4gICAgY29uc3Qgc2lnbiA9IHByZXYgPyAtMSA6IDE7XG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnZGF5JylcbiAgICAgIHRoaXMubmF2VG8odGhpcy5fdmlld1N0YXJ0RGF0ZS5hZGQoJ21vbnRoJywgc2lnbiAqIDEgKiB0aGlzLmNvdW50KSk7XG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aCcpXG4gICAgICB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCd5ZWFyJywgc2lnbiAqIDEgKiB0aGlzLmNvdW50KSk7XG4gICAgZWxzZSB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCd5ZWFyJywgc2lnbiAqIDEwICogdGhpcy5jb3VudCkpO1xuICB9XG5cbiAgZ29Ub2RheSgpIHtcbiAgICB0aGlzLm5hdlRvKHRoaXMuX3RvZGF5KTtcbiAgfVxuXG4gIG5hdlRvKGRhdGU6IERhdGUgfCBBWERhdGVUaW1lKSB7XG4gICAgY29uc3QgdmFsID0gQVhEYXRlVGltZS5jb252ZXJ0KGRhdGUsIHRoaXMuX3RvZGF5LmNhbGVuZGFyLm5hbWUoKSk7XG4gICAgdGhpcy5fdmlld1N0YXJ0RGF0ZSA9IHZhbC5zdGFydE9mKCk7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgICAvL3RvIG1ha2Ugc3VyZSBpdHMgcmVuZHJlZCBhbmQgZGlzcGxheVJhbmdlIGlzIG5vdCBudWxsXG4gICAgaWYgKHRoaXMudmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdnIgPSB0aGlzLmRpc3BsYXlSYW5nZTtcbiAgICAgIHRoaXMub25OYXZpZ2F0ZS5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdGhpcy5pc1VzZXJJbnRlcmFjdGlvbixcbiAgICAgICAgc3RhcnQ6IHZyLnN0YXJ0VGltZT8uZGF0ZSxcbiAgICAgICAgZW5kOiB2ci5lbmRUaW1lPy5kYXRlLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgX2NsYXNzZXMgPSB7XG4gICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxuICAgIH07XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKF9jbGFzc2VzKVxuICAgICAgLmZpbHRlcigoYykgPT4gY1sxXSlcbiAgICAgIC5tYXAoKGMpID0+IGNbMF0pXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLnZhbHVlID0gQVhEYXRlVGltZS5jb252ZXJ0KHZhbHVlLCB0aGlzLl90b2RheS5jYWxlbmRhci5uYW1lKCkpLnN0YXJ0T2YoKS5kYXRlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWQoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGlzYWJsZWREYXRlcykgJiYgdGhpcy5kaXNhYmxlZERhdGVzLmxlbmd0aCAhPSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoKGQpID0+IGRhdGUuZXF1YWwoZCwgJ2RheScpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmRpc2FibGVkRGF0ZXMgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcyhkYXRlLmRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNIb2xpZGF5KGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmhvbGlkYXlEYXRlcykgJiYgdGhpcy5ob2xpZGF5RGF0ZXMubGVuZ3RoICE9IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmhvbGlkYXlEYXRlcy5zb21lKChkKSA9PiBkYXRlLmVxdWFsKGQsICdkYXknKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5ob2xpZGF5RGF0ZXMgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMuaG9saWRheURhdGVzKGRhdGUuZGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1dlZWtlbmQoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHdlZWtlbmQgPSBBWENvbmZpZy5nZXQoYGRhdGVUaW1lLmNhbGVuZGFycy4ke3RoaXMudHlwZX0ud2Vla2VuZGApIGFzIG51bWJlcltdO1xuICAgIHJldHVybiB3ZWVrZW5kLmluY2x1ZGVzKGRhdGUuZGF5T2ZXZWVrKTtcbiAgfVxuXG5cbiAgXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW50ZXJmYWNlID09PSAnY2FsZW5kYXInOyBlbHNlIHBpY2tlclRlbXBsYXRlXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWJvZHlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2IG9mIHZpZXdzOyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJhY3RpdmVWaWV3XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid5ZWFyJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci12aWV3LWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1zdGF0ZS1kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVOYXZDbGljaygkZXZlbnQsICd5ZWFyJylcIj5cbiAgICAgICAgICAgICAgICB7eyB2LnJhbmdlLnN0YXJ0VGltZS5mb3JtYXQoJ1lZWVknKSB9fSAtIHt7IHYucmFuZ2UuZW5kVGltZS5mb3JtYXQoJ1lZWVknKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlci1idXR0b25zXCIgKm5nSWY9XCJsYXN0XCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVQcmV2Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnOiAhcnRsLFxuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLXJpZ2h0JzogcnRsXG4gICAgICAgICAgICAgICAgICB9XCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1yb3VuZGVkIGF4LWJ1dHRvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU5leHRDbGljaygpXCI+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtaWNvblwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tbGVmdCc6IHJ0bCxcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1yaWdodCc6ICFydGxcbiAgICAgICAgICAgICAgICAgIH1cIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXNsb3RzIGF4LWNhbGVuZGFyLXNsb3RzLXllYXJcIiBbbmdDbGFzc109XCJ7ICdheC1kZWZhdWx0JzogIWNlbGxUZW1wbGF0ZSB9XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzbG90IG9mIHYuc2xvdHNcIlxuICAgICAgICAgICAgICBjbGFzcz1cImF4LWNhbGVuZGFyLXNsb3RcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJzbG90LmNzc0NsYXNzXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soJGV2ZW50LCBzbG90KVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbFRlbXBsYXRlOyBlbHNlIHllYXJUcGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2xvdDogc2xvdCB9IH1cIj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZWFyVHBsPlxuICAgICAgICAgICAgICAgIDxkaXYgW3RpdGxlXT1cInNsb3QudG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgICAge3sgc2xvdC50ZXh0IH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItdmlldy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50LCAneWVhcicpXCI+XG4gICAgICAgICAgICAgICAge3sgdi5yYW5nZS5zdGFydFRpbWUuZm9ybWF0KCdZWVlZJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItYnV0dG9uc1wiICpuZ0lmPVwibGFzdFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWQgYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogIXJ0bCxcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1yaWdodCc6IHJ0bFxuICAgICAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVOZXh0Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnOiBydGwsXG4gICAgICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tcmlnaHQnOiAhcnRsXG4gICAgICAgICAgICAgICAgICB9XCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1zbG90cyBheC1jYWxlbmRhci1zbG90cy1tb250aFwiIFtuZ0NsYXNzXT1cInsgJ2F4LWRlZmF1bHQnOiAhY2VsbFRlbXBsYXRlIH1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNsb3Qgb2Ygdi5zbG90c1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNsb3QuY3NzQ2xhc3NcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZVNsb3RDbGljaygkZXZlbnQsIHNsb3QpXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsVGVtcGxhdGU7IGVsc2UgbW9udGhUcGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2xvdDogc2xvdCB9IH1cIj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtb250aFRwbD5cbiAgICAgICAgICAgICAgICA8ZGl2IFt0aXRsZV09XCJzbG90LnRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHNsb3QudGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXZpZXctaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItaGVhZGVyLWluZm9cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1yb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU5hdkNsaWNrKCRldmVudCwgJ3llYXInKVwiPlxuICAgICAgICAgICAgICAgIHt7IHYucmFuZ2Uuc3RhcnRUaW1lLmZvcm1hdCgnWVlZWScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50LCAnbW9udGgnKVwiPlxuICAgICAgICAgICAgICAgIHt7IHYucmFuZ2Uuc3RhcnRUaW1lLmZvcm1hdCgnTU1NJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItYnV0dG9uc1wiICpuZ0lmPVwibGFzdFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLXJvdW5kZWQgYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogIXJ0bCxcbiAgICAgICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1yaWdodCc6IHJ0bFxuICAgICAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVOZXh0Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnOiBydGwsXG4gICAgICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tcmlnaHQnOiAhcnRsXG4gICAgICAgICAgICAgICAgICB9XCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci13ZWVrXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkIG9mIF9kYXlOYW1lc1wiPnt7IGQgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMtZGF5XCIgW25nQ2xhc3NdPVwieyAnYXgtZGVmYXVsdCc6ICFjZWxsVGVtcGxhdGUgfVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2xvdCBvZiB2LnNsb3RzXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soJGV2ZW50LCBzbG90KVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsVGVtcGxhdGU7IGVsc2UgZGF5VHBsXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBzbG90OiBzbG90IH0gfVwiPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGF5VHBsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBbdGl0bGVdPVwic2xvdC50b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHNsb3QudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNwaWNrZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXBpY2tlclwiPi8vVE9ETzogcGlja2VyPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -7,11 +7,11 @@ import * as i0 from "@angular/core";
7
7
  const COMPONENT = [AXCalendarComponent, AXCalendarRangeComponent];
8
8
  const MODULES = [CommonModule, AXDateTimeModule];
9
9
  export class AXCalendarModule {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarModule, declarations: [AXCalendarComponent, AXCalendarRangeComponent], imports: [CommonModule, AXDateTimeModule], exports: [AXCalendarComponent, AXCalendarRangeComponent] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarModule, imports: [MODULES] }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarModule, declarations: [AXCalendarComponent, AXCalendarRangeComponent], imports: [CommonModule, AXDateTimeModule], exports: [AXCalendarComponent, AXCalendarRangeComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarModule, imports: [MODULES] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCalendarModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCalendarModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [...COMPONENT],
@@ -31,10 +31,10 @@ export class AXCheckBoxComponent extends AXBaseValueComponentMixin {
31
31
  }
32
32
  return true;
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCheckBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: { disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, usesInheritance: true, ngImport: i0, template: "<label class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n <input [id]=\"id\" class=\"ax-checkbox\" type=\"checkbox\" \n [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</label>\n<ng-content select=\"ax-validation-rule\"></ng-content>", styles: [".ax-checkbox-label{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;font-size:.875rem;line-height:1.25rem}.ax-checkbox-label .ax-checkbox-start-side{display:flex;align-items:center;height:1.25rem}.ax-checkbox-label .ax-checkbox-end-side{margin-inline-start:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCheckBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: { disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, usesInheritance: true, ngImport: i0, template: "<label class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n <input [id]=\"id\" class=\"ax-checkbox\" type=\"checkbox\" \n [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</label>\n<ng-content select=\"ax-validation-rule\"></ng-content>", styles: [".ax-checkbox-label{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;font-size:.875rem;line-height:1.25rem}.ax-checkbox-label .ax-checkbox-start-side{display:flex;align-items:center;height:1.25rem}.ax-checkbox-label .ax-checkbox-end-side{margin-inline-start:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCheckBoxComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCheckBoxComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'ax-check-box', inputs: ['disabled', 'tabIndex', 'readonly', 'allowNull', 'value', 'name', 'checked'], outputs: ['onBlur', 'onFocus', 'valueChange', 'onValueChanged'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n <input [id]=\"id\" class=\"ax-checkbox\" type=\"checkbox\" \n [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</label>\n<ng-content select=\"ax-validation-rule\"></ng-content>", styles: [".ax-checkbox-label{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;font-size:.875rem;line-height:1.25rem}.ax-checkbox-label .ax-checkbox-start-side{display:flex;align-items:center;height:1.25rem}.ax-checkbox-label .ax-checkbox-end-side{margin-inline-start:.75rem}\n"] }]
40
40
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
@@ -5,11 +5,11 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
5
5
  import { AXCheckBoxComponent } from './checkbox.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class AXCheckBoxModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCheckBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: AXCheckBoxModule, declarations: [AXCheckBoxComponent], imports: [CommonModule, FormsModule, AXDecoratorModule], exports: [AXCheckBoxComponent] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCheckBoxModule, imports: [CommonModule, FormsModule, AXDecoratorModule] }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCheckBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: AXCheckBoxModule, declarations: [AXCheckBoxComponent], imports: [CommonModule, FormsModule, AXDecoratorModule], exports: [AXCheckBoxComponent] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCheckBoxModule, imports: [CommonModule, FormsModule, AXDecoratorModule] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AXCheckBoxModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXCheckBoxModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  declarations: [AXCheckBoxComponent],