@acorex/components 6.5.90 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/README.md +7 -7
  2. package/esm2022/index.mjs +1 -1
  3. package/esm2022/lib/accordion/accordion.component.mjs +4 -4
  4. package/esm2022/lib/accordion/accordion.module.mjs +5 -5
  5. package/esm2022/lib/base/base-page.class.mjs +10 -8
  6. package/esm2022/lib/base/components.class.mjs +7 -7
  7. package/esm2022/lib/base/element.class.mjs +16 -16
  8. package/esm2022/lib/base/events.class.mjs +1 -1
  9. package/esm2022/lib/button/button.component.mjs +5 -5
  10. package/esm2022/lib/button/button.module.mjs +5 -5
  11. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +5 -5
  12. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +5 -5
  13. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +10 -10
  14. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +1 -1
  15. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +5 -5
  16. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +5 -5
  17. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +15 -15
  18. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +7 -7
  19. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +5 -5
  20. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +5 -5
  21. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +5 -5
  22. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +4 -4
  23. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +5 -5
  24. package/esm2022/lib/checkbox/checkbox.component.mjs +5 -5
  25. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  26. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +6 -6
  27. package/esm2022/lib/color-picker/color-picker.component.mjs +6 -6
  28. package/esm2022/lib/color-picker/color-picker.module.mjs +5 -5
  29. package/esm2022/lib/context-menu/context-menu.component.mjs +5 -5
  30. package/esm2022/lib/context-menu/context-menu.directive.mjs +4 -4
  31. package/esm2022/lib/context-menu/context-menu.module.mjs +5 -5
  32. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +28 -28
  33. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +33 -33
  34. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +14 -14
  35. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +33 -33
  36. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +5 -5
  37. package/esm2022/lib/data-filter/filter.class.mjs +4 -4
  38. package/esm2022/lib/data-filter/filter.module.mjs +5 -5
  39. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +5 -5
  40. package/esm2022/lib/data-list/core/data-list.component.mjs +4 -4
  41. package/esm2022/lib/data-list/list/list.component.mjs +5 -5
  42. package/esm2022/lib/data-list/list/list.module.mjs +5 -5
  43. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +33 -33
  44. package/esm2022/lib/data-source/datasource.component.mjs +4 -4
  45. package/esm2022/lib/data-source/datasource.module.mjs +5 -5
  46. package/esm2022/lib/data-source/read-param.mjs +1 -1
  47. package/esm2022/lib/date-picker/date-picker.component.mjs +474 -99
  48. package/esm2022/lib/date-picker/date-picker.module.mjs +5 -5
  49. package/esm2022/lib/dialog/dialog.component.mjs +5 -5
  50. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  51. package/esm2022/lib/dialog/dialog.service.mjs +4 -4
  52. package/esm2022/lib/drawer/content.component.mjs +4 -4
  53. package/esm2022/lib/drawer/drawer-container.component.mjs +11 -11
  54. package/esm2022/lib/drawer/drawer.component.mjs +10 -10
  55. package/esm2022/lib/drawer/drawer.module.mjs +5 -5
  56. package/esm2022/lib/dropdown/dropdown.component.mjs +5 -5
  57. package/esm2022/lib/dropdown/dropdown.module.mjs +5 -5
  58. package/esm2022/lib/fieldset/fieldset.component.mjs +5 -5
  59. package/esm2022/lib/fieldset/fieldset.module.mjs +5 -5
  60. package/esm2022/lib/form-group/form-group.component.mjs +5 -5
  61. package/esm2022/lib/form-group/form-group.module.mjs +5 -5
  62. package/esm2022/lib/label/label.component.mjs +5 -5
  63. package/esm2022/lib/label/label.module.mjs +5 -5
  64. package/esm2022/lib/loading/loading-indicator.component.mjs +5 -5
  65. package/esm2022/lib/loading/loading-panel.component.mjs +13 -13
  66. package/esm2022/lib/loading/loading.module.mjs +5 -5
  67. package/esm2022/lib/loading/loading.service.mjs +4 -4
  68. package/esm2022/lib/menu/menu-item.component.mjs +17 -17
  69. package/esm2022/lib/menu/menu.component.mjs +5 -5
  70. package/esm2022/lib/menu/menu.module.mjs +5 -5
  71. package/esm2022/lib/menu/menu2.component.mjs +21 -21
  72. package/esm2022/lib/number-box/number-box.component.mjs +5 -5
  73. package/esm2022/lib/number-box/number-box.module.mjs +5 -5
  74. package/esm2022/lib/page/content.component.mjs +15 -15
  75. package/esm2022/lib/page/footer.component.mjs +7 -7
  76. package/esm2022/lib/page/page.component.mjs +19 -19
  77. package/esm2022/lib/page/page.module.mjs +5 -5
  78. package/esm2022/lib/panel-box/panel-box.component.mjs +5 -5
  79. package/esm2022/lib/panel-box/panel-box.module.mjs +5 -5
  80. package/esm2022/lib/password-box/password-box.component.mjs +5 -5
  81. package/esm2022/lib/password-box/password-box.module.mjs +5 -5
  82. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +7 -7
  83. package/esm2022/lib/popover/overlay.service.mjs +4 -4
  84. package/esm2022/lib/popover/popover.component.mjs +5 -5
  85. package/esm2022/lib/popover/popover.module.mjs +5 -5
  86. package/esm2022/lib/popup/popup.component.mjs +6 -5
  87. package/esm2022/lib/popup/popup.module.mjs +5 -5
  88. package/esm2022/lib/popup/popup.service.mjs +4 -4
  89. package/esm2022/lib/progress-bar/progress-bar.component.mjs +5 -5
  90. package/esm2022/lib/progress-bar/progress-bar.module.mjs +5 -5
  91. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +29 -29
  92. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +5 -5
  93. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +13 -13
  94. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +5 -5
  95. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +5 -5
  96. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +5 -5
  97. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +5 -5
  98. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +5 -5
  99. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +43 -43
  100. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +5 -5
  101. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +34 -31
  102. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +5 -5
  103. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +5 -5
  104. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +5 -5
  105. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +5 -5
  106. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +5 -5
  107. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +5 -5
  108. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +31 -31
  109. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +5 -5
  110. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +7 -7
  111. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +5 -5
  112. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +6 -6
  113. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +5 -5
  114. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +5 -5
  115. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +5 -5
  116. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +14 -14
  117. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +5 -5
  118. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +4 -4
  119. package/esm2022/lib/property-editor/property-editor.class.mjs +4 -4
  120. package/esm2022/lib/property-editor/property-editor.module.mjs +5 -5
  121. package/esm2022/lib/query-builder/query-builder-group.component.mjs +5 -5
  122. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +5 -5
  123. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +5 -5
  124. package/esm2022/lib/query-builder/query-builder.class.mjs +1 -1
  125. package/esm2022/lib/query-builder/query-builder.component.mjs +5 -5
  126. package/esm2022/lib/query-builder/query-builder.module.mjs +5 -5
  127. package/esm2022/lib/query-builder/query-builder.service.mjs +4 -4
  128. package/esm2022/lib/search-bar/search-bar.component.mjs +5 -5
  129. package/esm2022/lib/search-bar/search-bar.module.mjs +5 -5
  130. package/esm2022/lib/searchbox/searchbox.component.mjs +30 -6
  131. package/esm2022/lib/searchbox/searchbox.module.mjs +5 -5
  132. package/esm2022/lib/selectbox/selectbox.component.mjs +130 -21
  133. package/esm2022/lib/selectbox/selectbox.module.mjs +5 -5
  134. package/esm2022/lib/selectbox/selectbox2.component.mjs +6 -6
  135. package/esm2022/lib/selection-list/selection-list.component.mjs +5 -5
  136. package/esm2022/lib/selection-list/selection-list.module.mjs +5 -5
  137. package/esm2022/lib/switch/switch.component.mjs +5 -5
  138. package/esm2022/lib/switch/switch.module.mjs +5 -5
  139. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +4 -4
  140. package/esm2022/lib/tab-page/tab-page-host.component.mjs +19 -19
  141. package/esm2022/lib/tab-page/tab-page.module.mjs +5 -5
  142. package/esm2022/lib/tab-page/tab-page.service.mjs +6 -5
  143. package/esm2022/lib/tab-strip/tab-strip.component.mjs +5 -5
  144. package/esm2022/lib/tab-strip/tab-strip.module.mjs +5 -5
  145. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +4 -4
  146. package/esm2022/lib/tab-view/tab-view.component.mjs +5 -5
  147. package/esm2022/lib/tab-view/tab-view.module.mjs +5 -5
  148. package/esm2022/lib/tab-view/tab.component.mjs +5 -5
  149. package/esm2022/lib/textarea/textarea.component.mjs +5 -5
  150. package/esm2022/lib/textarea/textarea.module.mjs +5 -5
  151. package/esm2022/lib/textbox/textbox.component.mjs +8 -8
  152. package/esm2022/lib/textbox/textbox.module.mjs +5 -5
  153. package/esm2022/lib/time-picker/time-picker.component.mjs +9 -6
  154. package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
  155. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +5 -5
  156. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +4 -4
  157. package/esm2022/lib/toast/toast.module.mjs +5 -5
  158. package/esm2022/lib/toast/toast.service.mjs +4 -4
  159. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +32 -32
  160. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +5 -5
  161. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +5 -5
  162. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +15 -15
  163. package/esm2022/lib/toolbar/toolbar-item.mjs +1 -1
  164. package/esm2022/lib/toolbar/toolbar.component.mjs +5 -5
  165. package/esm2022/lib/toolbar/toolbar.module.mjs +5 -5
  166. package/esm2022/lib/tooltip/tooltip.directive.mjs +4 -4
  167. package/esm2022/lib/tooltip/tooltip.module.mjs +5 -5
  168. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +5 -5
  169. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +5 -5
  170. package/esm2022/lib/tree-view/tree-view.component.mjs +5 -5
  171. package/esm2022/lib/tree-view/tree-view.module.mjs +5 -5
  172. package/esm2022/lib/upload-file/upload-file.component.mjs +18 -10
  173. package/esm2022/lib/upload-file/upload-file.events.mjs +1 -1
  174. package/esm2022/lib/upload-file/upload-file.module.mjs +5 -5
  175. package/esm2022/lib/validation/validation-form.component.mjs +4 -4
  176. package/esm2022/lib/validation/validation-rule.widget.mjs +4 -4
  177. package/esm2022/lib/validation/validation.class.mjs +1 -1
  178. package/esm2022/lib/validation/validation.component.mjs +7 -7
  179. package/esm2022/lib/validation/validation.module.mjs +5 -5
  180. package/fesm2022/acorex-components.mjs +1702 -1178
  181. package/fesm2022/acorex-components.mjs.map +1 -1
  182. package/lib/date-picker/date-picker.component.d.ts +4 -4
  183. package/lib/property-editor/editors/number-editor/number.editor.d.ts +1 -0
  184. package/lib/searchbox/searchbox.component.d.ts +2 -1
  185. package/lib/selectbox/selectbox.component.d.ts +38 -7
  186. package/lib/textbox/textbox.component.d.ts +2 -2
  187. package/lib/time-picker/time-picker.component.d.ts +2 -1
  188. package/lib/upload-file/upload-file.component.d.ts +1 -1
  189. package/package.json +1 -1
@@ -22,6 +22,7 @@ export class AXTimePickerComponent extends AXBaseTextComponent {
22
22
  // @ContentChild('input', { static: true })
23
23
  // input: ElementRef<HTMLInputElement>;
24
24
  timeType;
25
+ showMask = true;
25
26
  type = 'HHmm';
26
27
  showCurentTime = false;
27
28
  clearDisabled = true;
@@ -1084,21 +1085,23 @@ export class AXTimePickerComponent extends AXBaseTextComponent {
1084
1085
  setCaret() {
1085
1086
  this.setCaretPosition(this.input.nativeElement, this.cursorPosition);
1086
1087
  }
1087
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1088
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXTimePickerComponent, selector: "ax-time-picker", inputs: { timeType: "timeType", showCurentTime: "showCurentTime" }, outputs: { onValueChanged: "onValueChanged" }, host: { styleAttribute: "width: 100%" }, providers: [
1088
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1089
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXTimePickerComponent, selector: "ax-time-picker", inputs: { timeType: "timeType", showMask: "showMask", showCurentTime: "showCurentTime" }, outputs: { onValueChanged: "onValueChanged" }, host: { styleAttribute: "width: 100%" }, providers: [
1089
1090
  { provide: AXValidatableComponent, useExisting: AXTimePickerComponent },
1090
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\"> </ng-content>\r\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax form-control input {{ size }}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n [class.icon]=\"icon\">\r\n <input #input type=\"text\" class=\"ax {{ size }}\" [mask]=\"timeType\" [(ngModel)]=\"textValue\"\r\n placeholder=\"{{ placeholder }}\" [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\r\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus()\" (blur)=\"handleInputBlur($event)\"\r\n (keypress)=\"handleKeyPress($event)\" (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\"\r\n (click)=\"handleClick($event)\" />\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"\r\n [disabled]=\"disabled\" [tabIndex]=\"-1\"></ax-button>\r\n <ng-content select=\"[end]\"> </ng-content>\r\n </div>\r\n</div>\r\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\r\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\r\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i4.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1091
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\"> </ng-content>\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{ size }}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input #input type=\"text\" class=\"ax {{ size }}\" [mask]=\"timeType\" [showMaskTyped]=\"showMask\"\n [(ngModel)]=\"textValue\" placeholder=\"{{ placeholder }}\" [readonly]=\"readonly\" [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus()\"\n (blur)=\"handleInputBlur($event)\" (keypress)=\"handleKeyPress($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\" />\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"\n [disabled]=\"disabled\" [tabIndex]=\"-1\"></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </div>\n</div>\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i4.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1091
1092
  }
1092
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTimePickerComponent, decorators: [{
1093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerComponent, decorators: [{
1093
1094
  type: Component,
1094
1095
  args: [{ selector: 'ax-time-picker', changeDetection: ChangeDetectionStrategy.OnPush, host: { style: 'width: 100%' }, providers: [
1095
1096
  { provide: AXValidatableComponent, useExisting: AXTimePickerComponent },
1096
- ], template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\"> </ng-content>\r\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax form-control input {{ size }}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n [class.icon]=\"icon\">\r\n <input #input type=\"text\" class=\"ax {{ size }}\" [mask]=\"timeType\" [(ngModel)]=\"textValue\"\r\n placeholder=\"{{ placeholder }}\" [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\r\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus()\" (blur)=\"handleInputBlur($event)\"\r\n (keypress)=\"handleKeyPress($event)\" (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\"\r\n (click)=\"handleClick($event)\" />\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"\r\n [disabled]=\"disabled\" [tabIndex]=\"-1\"></ax-button>\r\n <ng-content select=\"[end]\"> </ng-content>\r\n </div>\r\n</div>\r\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\r\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\r\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->" }]
1097
+ ], template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\"> </ng-content>\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{ size }}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input #input type=\"text\" class=\"ax {{ size }}\" [mask]=\"timeType\" [showMaskTyped]=\"showMask\"\n [(ngModel)]=\"textValue\" placeholder=\"{{ placeholder }}\" [readonly]=\"readonly\" [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus()\"\n (blur)=\"handleInputBlur($event)\" (keypress)=\"handleKeyPress($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\" />\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"\n [disabled]=\"disabled\" [tabIndex]=\"-1\"></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </div>\n</div>\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->" }]
1097
1098
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { onValueChanged: [{
1098
1099
  type: Output
1099
1100
  }], timeType: [{
1100
1101
  type: Input
1102
+ }], showMask: [{
1103
+ type: Input
1101
1104
  }], showCurentTime: [{
1102
1105
  type: Input
1103
1106
  }] } });
1104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLEtBQUssRUFFTCx1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFFNUMsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxNQUFNLENBQVU7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLElBQUksQ0FBVTtJQUNkLElBQUksQ0FBUztDQUNkO0FBQ0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQTBDO0NBQUk7QUFXNUYsTUFBTSxPQUFPLHFCQUNYLFNBQVEsbUJBQW1CO0lBK1pMO0lBNVp0QixjQUFjLEdBQ1osSUFBSSxZQUFZLEVBQTRCLENBQUM7SUFFL0Msd0NBQXdDO0lBQ3hDLDJDQUEyQztJQUMzQyx1Q0FBdUM7SUFNdkMsUUFBUSxDQUFNO0lBRWQsSUFBSSxHQUFXLE1BQU0sQ0FBQztJQUV0QixjQUFjLEdBQVksS0FBSyxDQUFDO0lBRWhDLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsTUFBTSxHQUFRO1FBQ1osT0FBTztRQUNQLE9BQU87UUFDUCxHQUFH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Q0FBQztJQUN2RSxDQUFDO3VHQXZwQ1UscUJBQXFCOzJGQUFyQixxQkFBcUIscU1BSnJCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFO1NBQ3hFLGlEQ25DSCw2bERBdUJzRzs7MkZEY3pGLHFCQUFxQjtrQkFUakMsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBRVQsdUJBQXVCLENBQUMsTUFBTSxRQUN6QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsYUFDbkI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyx1QkFBdUIsRUFBRTtxQkFDeEU7aUlBTUQsY0FBYztzQkFEYixNQUFNO2dCQVlQLFFBQVE7c0JBRFAsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxuICBDb250ZW50Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQVhCYXNlVGV4dENvbXBvbmVudCxcclxuICBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LFxyXG59IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IF8gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVQaWNrZXJJdGVtQ2hhbmdlZEV2ZW50IHtcclxuICBtaW51dGU/OiBudW1iZXI7XHJcbiAgc2Vjb25kPzogbnVtYmVyO1xyXG4gIGhvdXI/OiBudW1iZXI7XHJcbiAgdGltZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVQaWNrZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBBWFZhbHVlRXZlbnQ8QVhUaW1lUGlja2VySXRlbUNoYW5nZWRFdmVudD4geyB9XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXRpbWUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHsgc3R5bGU6ICd3aWR0aDogMTAwJScgfSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYVGltZVBpY2tlckNvbXBvbmVudCB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVQaWNrZXJDb21wb25lbnRcclxuICBleHRlbmRzIEFYQmFzZVRleHRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRpbWVQaWNrZXJDaGFuZ2VkRXZlbnQ+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhUaW1lUGlja2VyQ2hhbmdlZEV2ZW50PigpO1xyXG5cclxuICAvLyBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgLy8gQENvbnRlbnRDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIC8vIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuXHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHRpbWVUeXBlOiBhbnk7XHJcblxyXG4gIHR5cGU6IHN0cmluZyA9ICdISG1tJztcclxuICBASW5wdXQoKVxyXG4gIHNob3dDdXJlbnRUaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNsZWFyRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEhIbW1zczogYW55ID0gW1xyXG4gICAgL1swLTJdLyxcclxuICAgIC9bMC05XS8sXHJcbiAgICAnOicsXHJcbiAgICAvWzAtNV0vLFxyXG4gICAgL1swLTldLyxcclxuICAgICc6JyxcclxuICAgIC9bMC01XS8sXHJcbiAgICAvWzAtOV0vLFxyXG4gIF07XHJcbiAgSEhtbTogYW55ID0gWy9bMC0yXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XHJcbiAgSEg6IGFueSA9IFsvWzAtMl0vLCAvWzAtOV0vXTtcclxuICBoaG1tc3M6IGFueSA9IFtcclxuICAgIC9bMC0xXS8sXHJcbiAgICAvWzAtOV0vLFxyXG4gICAgJzonLFxyXG4gICAgL1swLTVdLyxcclxuICAgIC9bMC05XS8sXHJcbiAgICAnOicsXHJcbiAgICAvWzAtNV0vLFxyXG4gICAgL1swLTldLyxcclxuICBdO1xyXG4gIGhobW06IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS9dO1xyXG4gIGhoOiBhbnkgPSBbL1swLTFdLywgL1swLTldL107XHJcbiAgLy8gVE9ETzogYXBwbHkgYW0gcG0gZnJvbSBsb2NhbGVcclxuICBoaG1tc3NhbTogYW55ID0gW1xyXG4gICAgL1swLTFdLyxcclxuICAgIC9bMC05XS8sXHJcbiAgICAnOicsXHJcbiAgICAvWzAtNV0vLFxyXG4gICAgL1swLTldLyxcclxuICAgICc6JyxcclxuICAgIC9bMC01XS8sXHJcbiAgICAvWzAtOV0vLFxyXG4gICAgJyAnLFxyXG4gICAgL1thfHB82YJ82KhdLyxcclxuICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpLFxyXG4gIF07XHJcbiAgaGhtbWFtOiBhbnkgPSBbXHJcbiAgICAvWzAtMV0vLFxyXG4gICAgL1swLTldLyxcclxuICAgICc6JyxcclxuICAgIC9bMC01XS8sXHJcbiAgICAvWzAtOV0vLFxyXG4gICAgJyAnLFxyXG4gICAgL1thfHB82YJ82KhdLyxcclxuICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpLFxyXG4gIF07XHJcbiAgaGhhbTogYW55ID0gW1xyXG4gICAgL1swLTFdLyxcclxuICAgIC9bMC05XS8sXHJcbiAgICAnICcsXHJcbiAgICAvW2F8cHzZgnzYqF0vLFxyXG4gICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyksXHJcbiAgXTtcclxuICB0ZXh0VmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICB2YWx1ZUhhbTogc3RyaW5nID0gJy0tICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgdmFsdWVNYW06IHN0cmluZyA9ICctLTotLSAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gIHZhbHVlU2FtOiBzdHJpbmcgPSAnLS06LS06LS0gJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWVzOiBzdHJpbmc7XHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcclxuICB9XHJcbiAgcHVibGljIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcclxuICAgIGlmIChcclxuICAgICAgdiA9PT0gJycgfHxcclxuICAgICAgdiA9PSBudWxsIHx8XHJcbiAgICAgIHYgPT09ICctLTotLTotLScgfHxcclxuICAgICAgdiA9PT0gJy0tOi0tJyB8fFxyXG4gICAgICB2ID09PSAnLS0nIHx8XHJcbiAgICAgIHYgPT09IHRoaXMudmFsdWVTYW0gfHxcclxuICAgICAgdiA9PT0gdGhpcy52YWx1ZU1hbSB8fFxyXG4gICAgICB2ID09PSB0aGlzLnZhbHVlSGFtXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jbGVhckRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnSEhtbXNzJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0hIbW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnSEgnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbXNzJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGgnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbXNzYW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlU2FtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbWFtJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZU1hbTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hoYW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlSGFtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7XHJcbiAgICAgIGlmICh2ICE9PSBvbGQpIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgIHZhbHVlOiB7IGhvdXI6IG51bGwsIG1pbnV0ZTogbnVsbCwgc2Vjb25kOiBudWxsLCB0aW1lOiBudWxsIH0sXHJcbiAgICAgICAgICBvbGRWYWx1ZTogeyB0aW1lOiBvbGQgfSxcclxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsZWFyRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5fdmFsdWVzICYmIHYpIHtcclxuICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgICAgY29uc3QgaW5kMSA9IHYuY2hhckF0KDApO1xyXG4gICAgICAgIGNvbnN0IGluZDIgPSB2LmNoYXJBdCgxKTtcclxuICAgICAgICBjb25zdCBpbmQzID0gdi5jaGFyQXQoMik7XHJcbiAgICAgICAgY29uc3QgaW5kNCA9IHYuY2hhckF0KDMpO1xyXG4gICAgICAgIGNvbnN0IGluZDUgPSB2LmNoYXJBdCg0KTtcclxuICAgICAgICBjb25zdCBpbmQ2ID0gdi5jaGFyQXQoNSk7XHJcbiAgICAgICAgY29uc3QgaW5kNyA9IHYuY2hhckF0KDYpO1xyXG4gICAgICAgIGNvbnN0IGluZDggPSB2LmNoYXJBdCg3KTtcclxuICAgICAgICBjb25zdCBpbmQ5ID0gdi5jaGFyQXQoOCk7XHJcbiAgICAgICAgY29uc3QgaW5kMTAgPSB2LmNoYXJBdCg5KTtcclxuXHJcbiAgICAgICAgY29uc3QgaW5kT2xkNCA9IG9sZC5jaGFyQXQoOSk7XHJcbiAgICAgICAgY29uc3QgaW5kT2xkNyA9IG9sZC5jaGFyQXQoOSk7XHJcbiAgICAgICAgY29uc3QgaW5kT2xkMTAgPSBvbGQuY2hhckF0KDkpO1xyXG5cclxuICAgICAgICAvLyBoYW5kbGUgaGhtbXNzQW1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpbmQxID09PSAnLScgJiZcclxuICAgICAgICAgIGluZDIgIT09ICctJyAmJlxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XHJcbiAgICAgICAgICAgICcwJyArXHJcbiAgICAgICAgICAgIGluZDIgK1xyXG4gICAgICAgICAgICBpbmQzICtcclxuICAgICAgICAgICAgaW5kNCArXHJcbiAgICAgICAgICAgIGluZDUgK1xyXG4gICAgICAgICAgICBpbmQ2ICtcclxuICAgICAgICAgICAgaW5kNyArXHJcbiAgICAgICAgICAgIGluZDggK1xyXG4gICAgICAgICAgICBpbmQ5ICtcclxuICAgICAgICAgICAgaW5kMTAgK1xyXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaW5kNCA9PT0gJy0nICYmXHJcbiAgICAgICAgICBpbmQ1ICE9PSAnLScgJiZcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxyXG4gICAgICAgICAgICBpbmQxICtcclxuICAgICAgICAgICAgaW5kMiArXHJcbiAgICAgICAgICAgIGluZDMgK1xyXG4gICAgICAgICAgICAnMCcgK1xyXG4gICAgICAgICAgICBpbmQ1ICtcclxuICAgICAgICAgICAgaW5kNiArXHJcbiAgICAgICAgICAgIGluZDcgK1xyXG4gICAgICAgICAgICBpbmQ4ICtcclxuICAgICAgICAgICAgaW5kOSArXHJcbiAgICAgICAgICAgIGluZDEwICtcclxuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA1O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGluZDcgPT09ICctJyAmJlxyXG4gICAgICAgICAgaW5kOCAhPT0gJy0nICYmXHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW1cclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cclxuICAgICAgICAgICAgaW5kMSArXHJcbiAgICAgICAgICAgIGluZDIgK1xyXG4gICAgICAgICAgICBpbmQzICtcclxuICAgICAgICAgICAgaW5kNCArXHJcbiAgICAgICAgICAgIGluZDUgK1xyXG4gICAgICAgICAgICBpbmQ2ICtcclxuICAgICAgICAgICAgJzAnICtcclxuICAgICAgICAgICAgaW5kOCArXHJcbiAgICAgICAgICAgIGluZDkgK1xyXG4gICAgICAgICAgICBpbmQxMCArXHJcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDgpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gODtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kT2xkMTAgPT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cclxuICAgICAgICAgICAgaW5kMSArXHJcbiAgICAgICAgICAgIGluZDIgK1xyXG4gICAgICAgICAgICBpbmQzICtcclxuICAgICAgICAgICAgaW5kNCArXHJcbiAgICAgICAgICAgIGluZDUgK1xyXG4gICAgICAgICAgICBpbmQ2ICtcclxuICAgICAgICAgICAgaW5kNyArXHJcbiAgICAgICAgICAgIGluZDggK1xyXG4gICAgICAgICAgICBpbmQ5ICtcclxuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpbmQxID09PSAnLScgJiZcclxuICAgICAgICAgIGluZDIgIT09ICctJyAmJlxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxyXG4gICAgICAgICAgICAnMCcgK1xyXG4gICAgICAgICAgICBpbmQyICtcclxuICAgICAgICAgICAgaW5kMyArXHJcbiAgICAgICAgICAgIGluZDQgK1xyXG4gICAgICAgICAgICBpbmQ1ICtcclxuICAgICAgICAgICAgaW5kNiArXHJcbiAgICAgICAgICAgIGluZDcgK1xyXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaW5kNCA9PT0gJy0nICYmXHJcbiAgICAgICAgICBpbmQ1ICE9PSAnLScgJiZcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW1cclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cclxuICAgICAgICAgICAgaW5kMSArXHJcbiAgICAgICAgICAgIGluZDIgK1xyXG4gICAgICAgICAgICBpbmQzICtcclxuICAgICAgICAgICAgJzAnICtcclxuICAgICAgICAgICAgaW5kNSArXHJcbiAgICAgICAgICAgIGluZDYgK1xyXG4gICAgICAgICAgICBpbmQ3ICtcclxuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA1O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRPbGQ3ID09PSAnLScgJiYgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxyXG4gICAgICAgICAgICBpbmQxICtcclxuICAgICAgICAgICAgaW5kMiArXHJcbiAgICAgICAgICAgIGluZDMgK1xyXG4gICAgICAgICAgICBpbmQ0ICtcclxuICAgICAgICAgICAgaW5kNSArXHJcbiAgICAgICAgICAgIGluZDYgK1xyXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmIChpbmQxID09PSAnLScgJiYgaW5kMiAhPT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XHJcbiAgICAgICAgICAgICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kT2xkNCA9PT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XHJcbiAgICAgICAgICAgIGluZDEgKyBpbmQyICsgaW5kMyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaW5kMSA9PT0gJy0nICYmXHJcbiAgICAgICAgICBpbmQyICE9PSAnLScgJiZcclxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XHJcbiAgICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tc3MpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDg7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMik7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGluZDQgPT09ICctJyAmJlxyXG4gICAgICAgICAgaW5kNSAhPT0gJy0nICYmXHJcbiAgICAgICAgICAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zcyB8fFxyXG4gICAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEhtbXNzKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyAnMCcgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4O1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDYpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpbmQ3ID09PSAnLScgJiZcclxuICAgICAgICAgIGluZDggIT09ICctJyAmJlxyXG4gICAgICAgICAgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHxcclxuICAgICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW1zcylcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgJzAnICsgaW5kODtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA5KTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDk7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaW5kMSA9PT0gJy0nICYmXHJcbiAgICAgICAgICBpbmQyICE9PSAnLScgJiZcclxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fCB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEhtbSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJzAnICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaW5kNCA9PT0gJy0nICYmXHJcbiAgICAgICAgICBpbmQ1ICE9PSAnLScgJiZcclxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fCB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEhtbSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAnICsgaW5kNTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA1KTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDU7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaW5kMSA9PT0gJy0nICYmXHJcbiAgICAgICAgICBpbmQyICE9PSAnLScgJiZcclxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnMCcgKyBpbmQyO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWVzKSB7XHJcbiAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdjtcclxuICAgICAgICB0aGlzLl92YWx1ZXMgPSB2ICYmIHYuaW5kZXhPZignLScpID09PSAtMSA/IHYgOiBudWxsO1xyXG4gICAgICAgIGlmICh2LmluZGV4T2YoJy0nKSA9PT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcclxuICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgICAgICB0aW1lOiB2LFxyXG4gICAgICAgICAgICAgIGhvdXI6IE51bWJlcih2WzBdICsgdlsxXSksXHJcbiAgICAgICAgICAgICAgbWludXRlOlxyXG4gICAgICAgICAgICAgICAgdlszXSAmJlxyXG4gICAgICAgICAgICAgICAgICB2WzNdICE9PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSAmJlxyXG4gICAgICAgICAgICAgICAgICB2WzNdICE9PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKVxyXG4gICAgICAgICAgICAgICAgICA/IE51bWJlcih2WzNdICsgdls0XSlcclxuICAgICAgICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgICAgICAgIHNlY29uZDpcclxuICAgICAgICAgICAgICAgIHZbNl0gJiZcclxuICAgICAgICAgICAgICAgICAgdls2XSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykgJiZcclxuICAgICAgICAgICAgICAgICAgdls2XSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJylcclxuICAgICAgICAgICAgICAgICAgPyBOdW1iZXIodls2XSArIHZbN10pXHJcbiAgICAgICAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb2xkVmFsdWU6IHsgdGltZTogb2xkIH0sXHJcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjdXJzb3JQb3NpdGlvbjogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoY2RyLCByZWYpO1xyXG5cclxuICAgIHRoaXMudGltZVR5cGUgPSAnSEhtbSc7XHJcbiAgfVxyXG4gIGNsZWFyVmFsdWUoKSB7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB0aGlzLmhhbmRsZUlucHV0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3dpdGNoICh0aGlzLnRpbWVUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ0hIbW1zcyc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ0hIbW1zcyc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDA6MDBcIlxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdISG1tJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbSc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDBcIlxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdISCc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ0hIJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0gXCIwMFwiXHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hobW1zcyc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hobW1zcyc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDA6MDBcIlxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoaG1tJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbSc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDBcIlxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoaCc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hoJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0gXCIwMFwiXHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hobW1zc2FtJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbXNzYW0nO1xyXG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjAwOjAwOjAwYWFcIlxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlU2FtO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoaG1tYW0nOlxyXG4gICAgICAgIHRoaXMudHlwZSA9ICdoaG1tYW0nO1xyXG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjAwOjAwYWFcIlxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlTWFtO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGhhbSc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hoYW0nO1xyXG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjloYWFcIlxyXG5cclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZUhhbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbSc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDBcIlxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hvd0N1cmVudFRpbWUgPT09IHRydWUpIHtcclxuICAgICAgY29uc3QgaG91cjogYW55ID1cclxuICAgICAgICBuZXcgRGF0ZSgpLmdldEhvdXJzKCkgPiAxMFxyXG4gICAgICAgICAgPyBuZXcgRGF0ZSgpLmdldEhvdXJzKClcclxuICAgICAgICAgIDogJzAnICsgbmV3IERhdGUoKS5nZXRIb3VycygpO1xyXG4gICAgICBsZXQgYW1Ib3VyOiBhbnk7XHJcblxyXG4gICAgICBpZiAobmV3IERhdGUoKS5nZXRIb3VycygpID4gMTApIHtcclxuICAgICAgICBpZiAobmV3IERhdGUoKS5nZXRIb3VycygpID4gMTIpIHtcclxuICAgICAgICAgIGlmIChuZXcgRGF0ZSgpLmdldEhvdXJzKCkgLSAxMiA8IDEwKSB7XHJcbiAgICAgICAgICAgIGFtSG91ciA9ICcwJyArIChuZXcgRGF0ZSgpLmdldEhvdXJzKCkgLSAxMik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhbUhvdXIgPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGFtSG91ciA9IG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYW1Ib3VyID0gJzAnICsgbmV3IERhdGUoKS5nZXRIb3VycygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBtaW4gPVxyXG4gICAgICAgIG5ldyBEYXRlKCkuZ2V0TWludXRlcygpID4gOVxyXG4gICAgICAgICAgPyBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgOiAnMCcgKyBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKTtcclxuICAgICAgY29uc3Qgc2VjID1cclxuICAgICAgICBuZXcgRGF0ZSgpLmdldFNlY29uZHMoKSA+IDlcclxuICAgICAgICAgID8gbmV3IERhdGUoKS5nZXRTZWNvbmRzKClcclxuICAgICAgICAgIDogJzAnICsgbmV3IERhdGUoKS5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLnR5cGUgPT09ICdoaCcgfHxcclxuICAgICAgICB0aGlzLnR5cGUgPT09ICdoaG1tJyB8fFxyXG4gICAgICAgIHRoaXMudHlwZSA9PT0gJ2hobW1zcycgfHxcclxuICAgICAgICB0aGlzLnR5cGUgPT09ICdoaG1tc3NhbSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKGhvdXIgPj0gMTIpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPVxyXG4gICAgICAgICAgICBhbUhvdXIgK1xyXG4gICAgICAgICAgICAnOicgK1xyXG4gICAgICAgICAgICBtaW4gK1xyXG4gICAgICAgICAgICAnOicgK1xyXG4gICAgICAgICAgICBzZWMgK1xyXG4gICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnBtJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPVxyXG4gICAgICAgICAgICBhbUhvdXIgK1xyXG4gICAgICAgICAgICAnOicgK1xyXG4gICAgICAgICAgICBtaW4gK1xyXG4gICAgICAgICAgICAnOicgK1xyXG4gICAgICAgICAgICBzZWMgK1xyXG4gICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2hoYW0nKSB7XHJcbiAgICAgICAgaWYgKGhvdXIgPj0gMTIpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSBhbUhvdXIgKyAnICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnBtJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSBhbUhvdXIgKyAnICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2hobW1hbScpIHtcclxuICAgICAgICBpZiAoaG91ciA+PSAxMikge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9XHJcbiAgICAgICAgICAgIGFtSG91ciArICc6JyArIG1pbiArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucG0nKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9XHJcbiAgICAgICAgICAgIGFtSG91ciArICc6JyArIG1pbiArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGhvdXIgKyAnOicgKyBtaW4gKyAnOicgKyBzZWM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3RhcnRmb2N1cygpIHtcclxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcclxuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbnB1dEZvY3VzKCkge1xyXG4gICAgdGhpcy5vblN0YXJ0Zm9jdXMoKTtcclxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBoYW5kbGVJbnB1dEJsdXIoZSkge1xyXG4gICAgaWYgKHRoaXMudGV4dFZhbHVlLmluZGV4T2YoJy0nKSAhPT0gLTEpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdISG1tc3MnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnSEhtbSc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdISCc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaG1tc3MnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbSc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaCc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaG1tc3NhbSc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVTYW07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaG1tYW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlTWFtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhhbSc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVIYW07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5UHJlc3MoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSk7XHJcbiAgICBjb25zdCBmaXJzdENoYXIgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMCk7XHJcbiAgICBjb25zdCBzZWNvbmRDaGFyID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8XHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgLy8gdGhpcy5jdXJzb3JQb3NpdGlvbiArPSAxIDtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcblxyXG4gICAgaWYgKGZpcnN0Q2hhciA9PT0gJzInKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBzZWNvbmRDaGFyID09PSAnJyB8fFxyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlLmNoYXJBdCgxKSA+PSAnNCcgfHxcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uIDwgM1xyXG4gICAgICApIHtcclxuICAgICAgICBpZiAoaW5wdXRDaGFyID49ICc0Jykge1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zcyB8fFxyXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxyXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHxcclxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8XHJcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cclxuICAgICkge1xyXG4gICAgICBpZiAoZmlyc3RDaGFyID09PSAnMScpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBzZWNvbmRDaGFyID09PSAnJyB8fFxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEpID49ICczJyB8fFxyXG4gICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA8IDNcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChpbnB1dENoYXIgPj0gJzMnKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRDaGFyID09PSAnLScpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICAvLyB1cCAmIGRvd24gYnV0dG9uXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGxlZnQgJiByaWdodCBCdXR0b25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHxcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDBcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvbWUgYnV0dG9uXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcclxuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZW5kIGJ1dHRvblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSB8fFxyXG4gICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbVxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gOTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24oXHJcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA2O1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbihcclxuICAgICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAzO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbihcclxuICAgICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy50ZXh0VmFsdWUubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYmFja3NwYWNlIENvbnRyb2xcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgIGNvbnN0IGluZDEgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMCk7XHJcbiAgICAgIGNvbnN0IGluZDIgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMSk7XHJcbiAgICAgIGNvbnN0IGluZDMgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMik7XHJcbiAgICAgIGNvbnN0IGluZDQgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMyk7XHJcbiAgICAgIGNvbnN0IGluZDUgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNCk7XHJcbiAgICAgIGNvbnN0IGluZDYgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNSk7XHJcbiAgICAgIGNvbnN0IGluZDcgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNik7XHJcbiAgICAgIGNvbnN0IGluZDggPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNyk7XHJcbiAgICAgIGNvbnN0IGluZDkgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOCk7XHJcbiAgICAgIGNvbnN0IGluZDEwID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDkpO1xyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XHJcbiAgICAgICAgaWYgKGluZDEwID09PSAnLScpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cclxuICAgICAgICAgICAgaW5kMSArXHJcbiAgICAgICAgICAgIGluZDIgK1xyXG4gICAgICAgICAgICBpbmQzICtcclxuICAgICAgICAgICAgaW5kNCArXHJcbiAgICAgICAgICAgIGluZDUgK1xyXG4gICAgICAgICAgICBpbmQ2ICtcclxuICAgICAgICAgICAgaW5kNyArXHJcbiAgICAgICAgICAgIGluZDggK1xyXG4gICAgICAgICAgICBpbmQ5ICtcclxuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xyXG4gICAgICAgIGlmIChpbmQ3ID09PSAnLScpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cclxuICAgICAgICAgICAgaW5kMSArXHJcbiAgICAgICAgICAgIGluZDIgK1xyXG4gICAgICAgICAgICBpbmQzICtcclxuICAgICAgICAgICAgaW5kNCArXHJcbiAgICAgICAgICAgIGluZDUgK1xyXG4gICAgICAgICAgICBpbmQ2ICtcclxuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICBpZiAoaW5kNCA9PT0gJy0nKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XHJcbiAgICAgICAgICAgIGluZDEgKyBpbmQyICsgaW5kMyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gLT0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSB8fFxyXG4gICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3VmFsdWUgPSB0aGlzLnRleHRWYWx1ZTtcclxuXHJcbiAgICBjb25zdCBpbmQxID0gbmV3VmFsdWUuY2hhckF0KDApO1xyXG4gICAgY29uc3QgaW5kMiA9IG5ld1ZhbHVlLmNoYXJBdCgxKTtcclxuICAgIGNvbnN0IGluZDMgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMik7XHJcbiAgICBjb25zdCBpbmQ0ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDMpO1xyXG4gICAgY29uc3QgaW5kNSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg0KTtcclxuICAgIGNvbnN0IGluZDYgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNSk7XHJcbiAgICBjb25zdCBpbmQ3ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDYpO1xyXG4gICAgY29uc3QgaW5kOCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg3KTtcclxuICAgIGNvbnN0IGluZDkgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOCk7XHJcbiAgICBjb25zdCBpbmQxMCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg5KTtcclxuICAgIGNvbnN0IGluZDExID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEwKTtcclxuXHJcbiAgICAvLyB1cCBrZXlcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICAvLyBob3VyXHJcbiAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDIpIHtcclxuICAgICAgICBjb25zdCBob3VyaW5kID0gaW5kMSArIGluZDI7XHJcbiAgICAgICAgY29uc3QgbmV3SG91ciA9ICtob3VyaW5kICsgMTtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld0hvdXIudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPiAxMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwMSc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChob3VyaW5kID09PSAnLS0nKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGluZDEgIT09ICctJyAmJiBob3VyaW5kID09PSBpbmQxICsgJy0nKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGluZDIgIT09ICctJyAmJiBob3VyaW5kID09PSAnLScgKyBpbmQyKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCtuZXdWYWx1ZSA+IDIzKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAwJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID1cclxuICAgICAgICAgIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xyXG4gICAgICAgIGNvbnN0IGhvdXIgPSBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gaG91cjtcclxuICAgICAgfVxyXG4gICAgICAvLyBtaW51dGVcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gMyAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDUpIHtcclxuICAgICAgICBjb25zdCBob3VyaW5kID0gaW5kNCArIGluZDU7XHJcbiAgICAgICAgY29uc3QgbmV3SG91ciA9ICtob3VyaW5kICsgMTtcclxuXHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdIb3VyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNCAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDQgKyAnLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNSAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDUpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoK25ld1ZhbHVlID4gNTkpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAwJztcclxuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzO1xyXG4gICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZSA9IGJlZm9yZUhvdXJpbmQgKyBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gbWludXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBzZWNvbmRcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDgpIHtcclxuICAgICAgICBjb25zdCBzZWNvbmRpbmQgPSBpbmQ3ICsgaW5kODtcclxuICAgICAgICBjb25zdCBuZXdTZWNvbmQgPSArc2Vjb25kaW5kICsgMTtcclxuXHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdTZWNvbmQudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAoc2Vjb25kaW5kID09PSAnLS0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDcgIT09ICctJyAmJiBzZWNvbmRpbmQgPT09IGluZDcgKyAnLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kOCAhPT0gJy0nICYmIHNlY29uZGluZCA9PT0gJy0nICsgaW5kOCkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgrbmV3VmFsdWUgPiA1OSkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMDAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDY7XHJcbiAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kOSArIGluZDEwICsgaW5kMTE7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kID0gYmVmb3JlSG91cmluZCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBzZWNvbmQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHR5cGUgYW0vUE1cclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID4gOCkge1xyXG4gICAgICAgICAgbGV0IHR5cGVpbmQgPSBpbmQxMC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPVxyXG4gICAgICAgICAgICBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDk7XHJcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQxMTtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kMTAgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kMTAgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNikge1xyXG4gICAgICAgICAgbGV0IHR5cGVpbmQgPSBpbmQ3LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNjtcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDg7XHJcblxyXG4gICAgICAgICAgaWYgKGluZDcgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZCArIGFmdGVySG91cmluZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gMykge1xyXG4gICAgICAgICAgbGV0IHR5cGVpbmQyID0gaW5kNC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDM7XHJcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ1O1xyXG5cclxuICAgICAgICAgIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZDIgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8ga2V5IGRvd25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIC8vIGhvdXJcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMikge1xyXG4gICAgICAgIGNvbnN0IGhvdXJpbmQgPSBpbmQxICsgaW5kMjtcclxuICAgICAgICBjb25zdCBuZXdIb3VyID0gK2hvdXJpbmQgLSAxO1xyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld0hvdXIudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPCAxKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzEyJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kMSAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDEgKyAnLScpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kMiAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDIpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcyMyc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFmdGVySG91ckluZGV4ID1cclxuICAgICAgICAgIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xyXG4gICAgICAgIGNvbnN0IGhvdXIgPSBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VySW5kZXg7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBob3VyO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIG1pbnV0ZVxyXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNSkge1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZWluZCA9IGluZDQgKyBpbmQ1O1xyXG4gICAgICAgIGNvbnN0IG5ld01pbnV0ZSA9ICttaW51dGVpbmQgLSAxO1xyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld01pbnV0ZS50b1N0cmluZygpO1xyXG4gICAgICAgIGlmIChtaW51dGVpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNCAhPT0gJy0nICYmIG1pbnV0ZWluZCA9PT0gaW5kNCArICctJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ1ICE9PSAnLScgJiYgbWludXRlaW5kID09PSAnLScgKyBpbmQ1KSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1pbnV0ZWluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgrbmV3VmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICc1OSc7XHJcbiAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYmVmb3JlTWludXRlSW5kZXggPSBpbmQxICsgaW5kMiArIGluZDM7XHJcbiAgICAgICAgY29uc3QgYWZ0ZXJNaW51dGVJbmRleCA9IGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZSA9XHJcbiAgICAgICAgICBiZWZvcmVNaW51dGVJbmRleCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlck1pbnV0ZUluZGV4O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gbWludXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBzZWNvbmRcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDgpIHtcclxuICAgICAgICBjb25zdCBzZWNvbmRJbmRleCA9IGluZDcgKyBpbmQ4O1xyXG4gICAgICAgIGNvbnN0IG5ld1NlY29uZCA9ICtzZWNvbmRJbmRleCAtIDE7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3U2Vjb25kLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgaWYgKHNlY29uZEluZGV4ID09PSAnLS0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDcgIT09ICctJyAmJiBzZWNvbmRJbmRleCA9PT0gaW5kNyArICctJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ4ICE9PSAnLScgJiYgc2Vjb25kSW5kZXggPT09ICctJyArIGluZDgpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2Vjb25kSW5kZXggPT09ICctLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnNTknO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJlZm9yZXNlY29uZEluZGV4ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xyXG4gICAgICAgIGNvbnN0IGFmdGVyc2Vjb25kSW5kZXggPSBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcclxuICAgICAgICBjb25zdCBzZWNvbmQgPVxyXG4gICAgICAgICAgYmVmb3Jlc2Vjb25kSW5kZXggKyBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJzZWNvbmRJbmRleDtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHNlY29uZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gdHlwZVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPiA4KSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDEwLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9XHJcbiAgICAgICAgICAgIGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOTtcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDExO1xyXG5cclxuICAgICAgICAgIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZCArIGFmdGVySG91cmluZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2KSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDcudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xyXG4gICAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kODtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ3ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzKSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZDIgPSBpbmQ0LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMztcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDU7XHJcbiAgICAgICAgICAvL1RPIERPIHRoaXMgaXMgd3JvbmcgY2hlY2sgaW5kZXhcclxuICAgICAgICAgIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZDIgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fFxyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZG9HZXRDYXJldFBvc2l0aW9uKGN0cmwpIHtcclxuICAgIGxldCBDYXJldFBvcyA9IDA7XHJcbiAgICBpZiAoY3RybC5zZWxlY3Rpb25TdGFydCB8fCBjdHJsLnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgIENhcmV0UG9zID0gY3RybC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgcmV0dXJuIENhcmV0UG9zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FyZXRQb3NpdGlvbihjdHJsLCBwb3MpIHtcclxuICAgIGlmIChjdHJsLnNldFNlbGVjdGlvblJhbmdlKSB7XHJcbiAgICAgIGN0cmwuZm9jdXMoKTtcclxuICAgICAgY3RybC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XHJcbiAgICB9IGVsc2UgaWYgKGN0cmwuY3JlYXRlVGV4dFJhbmdlKSB7XHJcbiAgICAgIGNvbnN0IHJhbmdlID0gY3RybC5jcmVhdGVUZXh0UmFuZ2UoKTtcclxuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XHJcbiAgICAgIHJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIHBvcyk7XHJcbiAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgcG9zKTtcclxuICAgICAgcmFuZ2Uuc2VsZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYXJldCgpIHtcclxuICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXggZm9ybS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW2F0dHIuaWRdPVwidWlkXCIgI2ZjPlxyXG4gIDxkaXYgY2xhc3M9XCJheCBpdGVtcy13cmFwcGVyXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhcnRdXCI+IDwvbmctY29udGVudD5cclxuICAgIDxpIGNsYXNzPVwiZm9ybS1pdGVtLWljb24ge3sgaWNvbiB9fVwiICpuZ0lmPVwiaWNvblwiPjwvaT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiICNjb250ZW50PlxyXG4gICAgPGRpdiBjbGFzcz1cImF4IGZvcm0tY29udHJvbCBpbnB1dCB7eyBzaXplIH19XCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLmljb25dPVwiaWNvblwiPlxyXG4gICAgICA8aW5wdXQgI2lucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJheCB7eyBzaXplIH19XCIgW21hc2tdPVwidGltZVR5cGVcIiBbKG5nTW9kZWwpXT1cInRleHRWYWx1ZVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB9fVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInNldFRleHRBbGlnbigpXCJcclxuICAgICAgICBbY2xhc3MuY2xlYXJdPVwidmFsdWUgJiYgYWxsb3dDbGVhclwiIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKClcIiAoYmx1cik9XCJoYW5kbGVJbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKGtleXByZXNzKT1cImhhbmRsZUtleVByZXNzKCRldmVudClcIiAoa2V5dXApPVwiaGFuZGxlS2V5VXAoJGV2ZW50KVwiIChrZXlkb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImF4IGl0ZW1zLXdyYXBwZXJcIj5cclxuICAgIDxheC1idXR0b24gKm5nSWY9XCJ2YWx1ZSAmJiBhbGxvd0NsZWFyXCIgaWNvbj1cImZhciBmYS10aW1lc1wiIHR5cGU9XCJkYW5nZXIgYmxhbmtcIiAoY2xpY2spPVwiY2xlYXIoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0YWJJbmRleF09XCItMVwiPjwvYXgtYnV0dG9uPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VuZF1cIj4gPC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPCEtLSBbdGV4dE1hc2tdPVwie21hc2s6IG1hc2sgLCBzaG93TWFzazpzaG93TWFzayAsIGd1aWQ6IG1hc2tHdWlkICwga2VlcENoYXJQb3NpdGlvbnM6IG1hc2tLZWVwQ2hhclBvc2l0aW9uc31cIiAtLT5cclxuPCEtLSA8aW5wdXQgI2lucHV0IGlkPVwidGltZVBpY2tlclZhbHVlXCIgW3RleHRNYXNrXT1cInRpbWVUeXBlXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGtleXByZXNzKT0naGFuZGxlS2V5UHJlc3MoJGV2ZW50KSdcclxuICAgIChrZXl1cCk9XCJoYW5kbGVLZXlVcCgkZXZlbnQpXCIgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIj4gLS0+Il19
1107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLEtBQUssRUFFTCx1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFFNUMsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxNQUFNLENBQVU7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLElBQUksQ0FBVTtJQUNkLElBQUksQ0FBUztDQUNkO0FBQ0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQTBDO0NBQUk7QUFXNUYsTUFBTSxPQUFPLHFCQUNYLFNBQVEsbUJBQW1CO0lBa2FMO0lBL1p0QixjQUFjLEdBQ1osSUFBSSxZQUFZLEVBQTRCLENBQUM7SUFFL0Msd0NBQXdDO0lBQ3hDLDJDQUEyQztJQUMzQyx1Q0FBdUM7SUFNdkMsUUFBUSxDQUFNO0lBR2QsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUVmLElBQUksR0FBVyxNQUFNLENBQUM7SUFFdEIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUVoQyxhQUFhLEdBQVksSUFBSSxDQUFDO0lBQzlCLE1BQU0sR0FBUTtRQUNa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RUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0ExcENVLHFCQUFxQjs0RkFBckIscUJBQXFCLDJOQUpyQjtZQUNULEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRTtTQUN4RSxpRENuQ0gsNGtEQXVCc0c7OzRGRGN6RixxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLGFBQ25CO3dCQUNULEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsdUJBQXVCLEVBQUU7cUJBQ3hFO2lJQU1ELGNBQWM7c0JBRGIsTUFBTTtnQkFZUCxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBDb250ZW50Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhCYXNlVGV4dENvbXBvbmVudCxcbiAgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IF8gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhUaW1lUGlja2VySXRlbUNoYW5nZWRFdmVudCB7XG4gIG1pbnV0ZT86IG51bWJlcjtcbiAgc2Vjb25kPzogbnVtYmVyO1xuICBob3VyPzogbnVtYmVyO1xuICB0aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgQVhUaW1lUGlja2VyQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYVGltZVBpY2tlckl0ZW1DaGFuZ2VkRXZlbnQ+IHsgfVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC10aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IHN0eWxlOiAnd2lkdGg6IDEwMCUnIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFRpbWVQaWNrZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBBWEJhc2VUZXh0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhUaW1lUGlja2VyQ2hhbmdlZEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWFRpbWVQaWNrZXJDaGFuZ2VkRXZlbnQ+KCk7XG5cbiAgLy8gQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAvLyBAQ29udGVudENoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIC8vIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG5cblxuXG4gIEBJbnB1dCgpXG4gIHRpbWVUeXBlOiBhbnk7XG5cbiAgQElucHV0KClcbiAgc2hvd01hc2sgPSB0cnVlXG5cbiAgdHlwZTogc3RyaW5nID0gJ0hIbW0nO1xuICBASW5wdXQoKVxuICBzaG93Q3VyZW50VGltZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNsZWFyRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBISG1tc3M6IGFueSA9IFtcbiAgICAvWzAtMl0vLFxuICAgIC9bMC05XS8sXG4gICAgJzonLFxuICAgIC9bMC01XS8sXG4gICAgL1swLTldLyxcbiAgICAnOicsXG4gICAgL1swLTVdLyxcbiAgICAvWzAtOV0vLFxuICBdO1xuICBISG1tOiBhbnkgPSBbL1swLTJdLywgL1swLTldLywgJzonLCAvWzAtNV0vLCAvWzAtOV0vXTtcbiAgSEg6IGFueSA9IFsvWzAtMl0vLCAvWzAtOV0vXTtcbiAgaGhtbXNzOiBhbnkgPSBbXG4gICAgL1swLTFdLyxcbiAgICAvWzAtOV0vLFxuICAgICc6JyxcbiAgICAvWzAtNV0vLFxuICAgIC9bMC05XS8sXG4gICAgJzonLFxuICAgIC9bMC01XS8sXG4gICAgL1swLTldLyxcbiAgXTtcbiAgaGhtbTogYW55ID0gWy9bMC0xXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XG4gIGhoOiBhbnkgPSBbL1swLTFdLywgL1swLTldL107XG4gIC8vIFRPRE86IGFwcGx5IGFtIHBtIGZyb20gbG9jYWxlXG4gIGhobW1zc2FtOiBhbnkgPSBbXG4gICAgL1swLTFdLyxcbiAgICAvWzAtOV0vLFxuICAgICc6JyxcbiAgICAvWzAtNV0vLFxuICAgIC9bMC05XS8sXG4gICAgJzonLFxuICAgIC9bMC01XS8sXG4gICAgL1swLTldLyxcbiAgICAnICcsXG4gICAgL1thfHB82YJ82KhdLyxcbiAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKSxcbiAgXTtcbiAgaGhtbWFtOiBhbnkgPSBbXG4gICAgL1swLTFdLyxcbiAgICAvWzAtOV0vLFxuICAgICc6JyxcbiAgICAvWzAtNV0vLFxuICAgIC9bMC05XS8sXG4gICAgJyAnLFxuICAgIC9bYXxwfNmCfNioXS8sXG4gICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyksXG4gIF07XG4gIGhoYW06IGFueSA9IFtcbiAgICAvWzAtMV0vLFxuICAgIC9bMC05XS8sXG4gICAgJyAnLFxuICAgIC9bYXxwfNmCfNioXS8sXG4gICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyksXG4gIF07XG4gIHRleHRWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgdmFsdWVIYW06IHN0cmluZyA9ICctLSAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xuICB2YWx1ZU1hbTogc3RyaW5nID0gJy0tOi0tICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG4gIHZhbHVlU2FtOiBzdHJpbmcgPSAnLS06LS06LS0gJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcblxuICBwcml2YXRlIF92YWx1ZXM6IHN0cmluZztcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcbiAgICBpZiAoXG4gICAgICB2ID09PSAnJyB8fFxuICAgICAgdiA9PSBudWxsIHx8XG4gICAgICB2ID09PSAnLS06LS06LS0nIHx8XG4gICAgICB2ID09PSAnLS06LS0nIHx8XG4gICAgICB2ID09PSAnLS0nIHx8XG4gICAgICB2ID09PSB0aGlzLnZhbHVlU2FtIHx8XG4gICAgICB2ID09PSB0aGlzLnZhbHVlTWFtIHx8XG4gICAgICB2ID09PSB0aGlzLnZhbHVlSGFtXG4gICAgKSB7XG4gICAgICB0aGlzLmNsZWFyRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xuICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnSEhtbXNzJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0hIbW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSEgnOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhtbXNzJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hobW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhtbXNzYW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZVNhbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhtbWFtJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVNYW07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hoYW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZUhhbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdmFsdWVzID0gbnVsbDtcbiAgICAgIGlmICh2ICE9PSBvbGQpIHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICB2YWx1ZTogeyBob3VyOiBudWxsLCBtaW51dGU6IG51bGwsIHNlY29uZDogbnVsbCwgdGltZTogbnVsbCB9LFxuICAgICAgICAgIG9sZFZhbHVlOiB7IHRpbWU6IG9sZCB9LFxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhckRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLl92YWx1ZXMgJiYgdikge1xuICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgIGNvbnN0IGluZDEgPSB2LmNoYXJBdCgwKTtcbiAgICAgICAgY29uc3QgaW5kMiA9IHYuY2hhckF0KDEpO1xuICAgICAgICBjb25zdCBpbmQzID0gdi5jaGFyQXQoMik7XG4gICAgICAgIGNvbnN0IGluZDQgPSB2LmNoYXJBdCgzKTtcbiAgICAgICAgY29uc3QgaW5kNSA9IHYuY2hhckF0KDQpO1xuICAgICAgICBjb25zdCBpbmQ2ID0gdi5jaGFyQXQoNSk7XG4gICAgICAgIGNvbnN0IGluZDcgPSB2LmNoYXJBdCg2KTtcbiAgICAgICAgY29uc3QgaW5kOCA9IHYuY2hhckF0KDcpO1xuICAgICAgICBjb25zdCBpbmQ5ID0gdi5jaGFyQXQoOCk7XG4gICAgICAgIGNvbnN0IGluZDEwID0gdi5jaGFyQXQoOSk7XG5cbiAgICAgICAgY29uc3QgaW5kT2xkNCA9IG9sZC5jaGFyQXQoOSk7XG4gICAgICAgIGNvbnN0IGluZE9sZDcgPSBvbGQuY2hhckF0KDkpO1xuICAgICAgICBjb25zdCBpbmRPbGQxMCA9IG9sZC5jaGFyQXQoOSk7XG5cbiAgICAgICAgLy8gaGFuZGxlIGhobW1zc0FtXG4gICAgICAgIGlmIChcbiAgICAgICAgICBpbmQxID09PSAnLScgJiZcbiAgICAgICAgICBpbmQyICE9PSAnLScgJiZcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW1cbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxuICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICBpbmQxMCArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZDQgPT09ICctJyAmJlxuICAgICAgICAgIGluZDUgIT09ICctJyAmJlxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAnMCcgK1xuICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgIGluZDEwICtcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNSk7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kNyA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kOCAhPT0gJy0nICYmXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgaW5kMTAgK1xuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA4KTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA4O1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRPbGQxMCA9PT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vXG4gICAgICAgIGlmIChcbiAgICAgICAgICBpbmQxID09PSAnLScgJiZcbiAgICAgICAgICBpbmQyICE9PSAnLScgJiZcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZDQgPT09ICctJyAmJlxuICAgICAgICAgIGluZDUgIT09ICctJyAmJlxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW1cbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxuICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNSk7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kT2xkNyA9PT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvL1xuICAgICAgICBpZiAoaW5kMSA9PT0gJy0nICYmIGluZDIgIT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMik7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kT2xkNCA9PT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxuICAgICAgICAgICAgaW5kMSArIGluZDIgKyBpbmQzICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZDEgPT09ICctJyAmJlxuICAgICAgICAgIGluZDIgIT09ICctJyAmJlxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XG4gICAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEhtbXNzKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDg7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpbmQ0ID09PSAnLScgJiZcbiAgICAgICAgICBpbmQ1ICE9PSAnLScgJiZcbiAgICAgICAgICAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zcyB8fFxuICAgICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW1zcylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyAnMCcgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4O1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNik7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNjtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kNyA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kOCAhPT0gJy0nICYmXG4gICAgICAgICAgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHxcbiAgICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tc3MpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgJzAnICsgaW5kODtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDkpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDk7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kMSA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kMiAhPT0gJy0nICYmXG4gICAgICAgICAgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDU7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpbmQ0ID09PSAnLScgJiZcbiAgICAgICAgICBpbmQ1ICE9PSAnLScgJiZcbiAgICAgICAgICAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW0gfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW0pXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAnICsgaW5kNTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDUpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDU7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kMSA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kMiAhPT0gJy0nICYmXG4gICAgICAgICAgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaCB8fCB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEgpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJzAnICsgaW5kMjtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZXMpIHtcbiAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHY7XG4gICAgICAgIHRoaXMuX3ZhbHVlcyA9IHYgJiYgdi5pbmRleE9mKCctJykgPT09IC0xID8gdiA6IG51bGw7XG4gICAgICAgIGlmICh2LmluZGV4T2YoJy0nKSA9PT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHRpbWU6IHYsXG4gICAgICAgICAgICAgIGhvdXI6IE51bWJlcih2WzBdICsgdlsxXSksXG4gICAgICAgICAgICAgIG1pbnV0ZTpcbiAgICAgICAgICAgICAgICB2WzNdICYmXG4gICAgICAgICAgICAgICAgICB2WzNdICE9PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSAmJlxuICAgICAgICAgICAgICAgICAgdlszXSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJylcbiAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHZbM10gKyB2WzRdKVxuICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICBzZWNvbmQ6XG4gICAgICAgICAgICAgICAgdls2XSAmJlxuICAgICAgICAgICAgICAgICAgdls2XSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykgJiZcbiAgICAgICAgICAgICAgICAgIHZbNl0gIT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpXG4gICAgICAgICAgICAgICAgICA/IE51bWJlcih2WzZdICsgdls3XSlcbiAgICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbGRWYWx1ZTogeyB0aW1lOiBvbGQgfSxcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjdXJzb3JQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoY2RyLCByZWYpO1xuXG4gICAgdGhpcy50aW1lVHlwZSA9ICdISG1tJztcbiAgfVxuICBjbGVhclZhbHVlKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLmhhbmRsZUlucHV0Rm9jdXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy50aW1lVHlwZSkge1xuICAgICAgY2FzZSAnSEhtbXNzJzpcbiAgICAgICAgdGhpcy50eXBlID0gJ0hIbW1zcyc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjAwOjAwOjAwXCJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLTotLTotLSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSEhtbSc6XG4gICAgICAgIHRoaXMudHlwZSA9ICdISG1tJztcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDBcIlxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdISCc6XG4gICAgICAgIHRoaXMudHlwZSA9ICdISCc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjAwXCJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGhtbXNzJzpcbiAgICAgICAgdGhpcy50eXBlID0gJ2hobW1zcyc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjAwOjAwOjAwXCJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLTotLTotLSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGhtbSc6XG4gICAgICAgIHRoaXMudHlwZSA9ICdoaG1tJztcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDBcIlxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaCc6XG4gICAgICAgIHRoaXMudHlwZSA9ICdoaCc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjAwXCJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGhtbXNzYW0nOlxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbXNzYW0nO1xuICAgICAgICB0aGlzLnRpbWVUeXBlID0gXCIwMDowMDowMGFhXCJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IHRoaXMudmFsdWVTYW07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGhtbWFtJzpcbiAgICAgICAgdGhpcy50eXBlID0gJ2hobW1hbSc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjAwOjAwYWFcIlxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZU1hbTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hoYW0nOlxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhhbSc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSBcIjloYWFcIlxuXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlSGFtO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMudHlwZSA9ICdISG1tJztcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IFwiMDA6MDBcIlxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dDdXJlbnRUaW1lID09PSB0cnVlKSB7XG4gICAgICBjb25zdCBob3VyOiBhbnkgPVxuICAgICAgICBuZXcgRGF0ZSgpLmdldEhvdXJzKCkgPiAxMFxuICAgICAgICAgID8gbmV3IERhdGUoKS5nZXRIb3VycygpXG4gICAgICAgICAgOiAnMCcgKyBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XG4gICAgICBsZXQgYW1Ib3VyOiBhbnk7XG5cbiAgICAgIGlmIChuZXcgRGF0ZSgpLmdldEhvdXJzKCkgPiAxMCkge1xuICAgICAgICBpZiAobmV3IERhdGUoKS5nZXRIb3VycygpID4gMTIpIHtcbiAgICAgICAgICBpZiAobmV3IERhdGUoKS5nZXRIb3VycygpIC0gMTIgPCAxMCkge1xuICAgICAgICAgICAgYW1Ib3VyID0gJzAnICsgKG5ldyBEYXRlKCkuZ2V0SG91cnMoKSAtIDEyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW1Ib3VyID0gbmV3IERhdGUoKS5nZXRIb3VycygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhbUhvdXIgPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFtSG91ciA9ICcwJyArIG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWluID1cbiAgICAgICAgbmV3IERhdGUoKS5nZXRNaW51dGVzKCkgPiA5XG4gICAgICAgICAgPyBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKVxuICAgICAgICAgIDogJzAnICsgbmV3IERhdGUoKS5nZXRNaW51dGVzKCk7XG4gICAgICBjb25zdCBzZWMgPVxuICAgICAgICBuZXcgRGF0ZSgpLmdldFNlY29uZHMoKSA+IDlcbiAgICAgICAgICA/IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpXG4gICAgICAgICAgOiAnMCcgKyBuZXcgRGF0ZSgpLmdldFNlY29uZHMoKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50eXBlID09PSAnaGgnIHx8XG4gICAgICAgIHRoaXMudHlwZSA9PT0gJ2hobW0nIHx8XG4gICAgICAgIHRoaXMudHlwZSA9PT0gJ2hobW1zcycgfHxcbiAgICAgICAgdGhpcy50eXBlID09PSAnaGhtbXNzYW0nXG4gICAgICApIHtcbiAgICAgICAgaWYgKGhvdXIgPj0gMTIpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIGFtSG91ciArXG4gICAgICAgICAgICAnOicgK1xuICAgICAgICAgICAgbWluICtcbiAgICAgICAgICAgICc6JyArXG4gICAgICAgICAgICBzZWMgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucG0nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIGFtSG91ciArXG4gICAgICAgICAgICAnOicgK1xuICAgICAgICAgICAgbWluICtcbiAgICAgICAgICAgICc6JyArXG4gICAgICAgICAgICBzZWMgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdoaGFtJykge1xuICAgICAgICBpZiAoaG91ciA+PSAxMikge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSBhbUhvdXIgKyAnICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnBtJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFtSG91ciArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdoaG1tYW0nKSB7XG4gICAgICAgIGlmIChob3VyID49IDEyKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9XG4gICAgICAgICAgICBhbUhvdXIgKyAnOicgKyBtaW4gKyAnICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnBtJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9XG4gICAgICAgICAgICBhbUhvdXIgKyAnOicgKyBtaW4gKyAnICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBob3VyICsgJzonICsgbWluICsgJzonICsgc2VjO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU3RhcnRmb2N1cygpIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgfSwgMCk7XG4gIH1cblxuICBoYW5kbGVJbnB1dEZvY3VzKCkge1xuICAgIHRoaXMub25TdGFydGZvY3VzKCk7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbiAgaGFuZGxlSW5wdXRCbHVyKGUpIHtcbiAgICBpZiAodGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLScpICE9PSAtMSkge1xuICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnSEhtbXNzJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0hIbW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSEgnOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhtbXNzJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hobW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhtbXNzYW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZVNhbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhtbWFtJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVNYW07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hoYW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZUhhbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlQcmVzcyhldmVudDogYW55KSB7XG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSk7XG4gICAgY29uc3QgZmlyc3RDaGFyID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDApO1xuICAgIGNvbnN0IHNlY29uZENoYXIgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIC8vIHRoaXMuY3Vyc29yUG9zaXRpb24gKz0gMSA7XG4gICAgICB9XG4gICAgfSwgMCk7XG5cbiAgICBpZiAoZmlyc3RDaGFyID09PSAnMicpIHtcbiAgICAgIGlmIChcbiAgICAgICAgc2Vjb25kQ2hhciA9PT0gJycgfHxcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEpID49ICc0JyB8fFxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uIDwgM1xuICAgICAgKSB7XG4gICAgICAgIGlmIChpbnB1dENoYXIgPj0gJzQnKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoIHx8XG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtXG4gICAgKSB7XG4gICAgICBpZiAoZmlyc3RDaGFyID09PSAnMScpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlY29uZENoYXIgPT09ICcnIHx8XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEpID49ICczJyB8fFxuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPCAzXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChpbnB1dENoYXIgPj0gJzMnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW5wdXRDaGFyID09PSAnLScpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIC8vIHVwICYgZG93biBidXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gbGVmdCAmIHJpZ2h0IEJ1dHRvblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fFxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGhvbWUgYnV0dG9uXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcbiAgICB9XG5cbiAgICAvLyBlbmQgYnV0dG9uXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8XG4gICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcbiAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XG4gICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24oXG4gICAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XG4gICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDY7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24oXG4gICAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAzO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKFxuICAgICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMudGV4dFZhbHVlLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBiYWNrc3BhY2UgQ29udHJvbFxuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICBjb25zdCBpbmQxID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDApO1xuICAgICAgY29uc3QgaW5kMiA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgxKTtcbiAgICAgIGNvbnN0IGluZDMgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMik7XG4gICAgICBjb25zdCBpbmQ0ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDMpO1xuICAgICAgY29uc3QgaW5kNSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg0KTtcbiAgICAgIGNvbnN0IGluZDYgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNSk7XG4gICAgICBjb25zdCBpbmQ3ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDYpO1xuICAgICAgY29uc3QgaW5kOCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg3KTtcbiAgICAgIGNvbnN0IGluZDkgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOCk7XG4gICAgICBjb25zdCBpbmQxMCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg5KTtcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcbiAgICAgICAgaWYgKGluZDEwID09PSAnLScpIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xuICAgICAgICBpZiAoaW5kNyA9PT0gJy0nKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxuICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMCk7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XG4gICAgICAgIGlmIChpbmQ0ID09PSAnLScpIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICBpbmQxICsgaW5kMiArIGluZDMgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggPD0gMCkge1xuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gLT0gMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8XG4gICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcbiAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cbiAgICAgICkge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbmV3VmFsdWUgPSB0aGlzLnRleHRWYWx1ZTtcblxuICAgIGNvbnN0IGluZDEgPSBuZXdWYWx1ZS5jaGFyQXQoMCk7XG4gICAgY29uc3QgaW5kMiA9IG5ld1ZhbHVlLmNoYXJBdCgxKTtcbiAgICBjb25zdCBpbmQzID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDIpO1xuICAgIGNvbnN0IGluZDQgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMyk7XG4gICAgY29uc3QgaW5kNSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg0KTtcbiAgICBjb25zdCBpbmQ2ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDUpO1xuICAgIGNvbnN0IGluZDcgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNik7XG4gICAgY29uc3QgaW5kOCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg3KTtcbiAgICBjb25zdCBpbmQ5ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDgpO1xuICAgIGNvbnN0IGluZDEwID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDkpO1xuICAgIGNvbnN0IGluZDExID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEwKTtcblxuICAgIC8vIHVwIGtleVxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgLy8gaG91clxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMikge1xuICAgICAgICBjb25zdCBob3VyaW5kID0gaW5kMSArIGluZDI7XG4gICAgICAgIGNvbnN0IG5ld0hvdXIgPSAraG91cmluZCArIDE7XG4gICAgICAgIG5ld1ZhbHVlID0gbmV3SG91ci50b1N0cmluZygpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zcyB8fFxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8XG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoIHx8XG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8XG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSB8fFxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChob3VyaW5kID09PSAnLS0nKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGluZDEgIT09ICctJyAmJiBob3VyaW5kID09PSBpbmQxICsgJy0nKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGluZDIgIT09ICctJyAmJiBob3VyaW5kID09PSAnLScgKyBpbmQyKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCtuZXdWYWx1ZSA+IDEyKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwMSc7XG4gICAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMSAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDEgKyAnLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMiAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDIpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoK25ld1ZhbHVlID4gMjMpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAwJztcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPVxuICAgICAgICAgIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xuICAgICAgICBjb25zdCBob3VyID0gbmV3VmFsdWUudG9TdHJpbmcoKSArIGFmdGVySG91cmluZDtcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBob3VyO1xuICAgICAgfVxuICAgICAgLy8gbWludXRlXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNSkge1xuICAgICAgICBjb25zdCBob3VyaW5kID0gaW5kNCArIGluZDU7XG4gICAgICAgIGNvbnN0IG5ld0hvdXIgPSAraG91cmluZCArIDE7XG5cbiAgICAgICAgbmV3VmFsdWUgPSBuZXdIb3VyLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChob3VyaW5kID09PSAnLS0nKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZDQgIT09ICctJyAmJiBob3VyaW5kID09PSBpbmQ0ICsgJy0nKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZDUgIT09ICctJyAmJiBob3VyaW5kID09PSAnLScgKyBpbmQ1KSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCtuZXdWYWx1ZSA+IDU5KSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMDAnO1xuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzO1xuICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcbiAgICAgICAgY29uc3QgbWludXRlID0gYmVmb3JlSG91cmluZCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJpbmQ7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gbWludXRlO1xuICAgICAgfVxuXG4gICAgICAvLyBzZWNvbmRcbiAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA4KSB7XG4gICAgICAgIGNvbnN0IHNlY29uZGluZCA9IGluZDcgKyBpbmQ4O1xuICAgICAgICBjb25zdCBuZXdTZWNvbmQgPSArc2Vjb25kaW5kICsgMTtcblxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1NlY29uZC50b1N0cmluZygpO1xuICAgICAgICBpZiAoc2Vjb25kaW5kID09PSAnLS0nKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZDcgIT09ICctJyAmJiBzZWNvbmRpbmQgPT09IGluZDcgKyAnLScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kOCAhPT0gJy0nICYmIHNlY29uZGluZCA9PT0gJy0nICsgaW5kOCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmICgrbmV3VmFsdWUgPiA1OSkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAwJztcbiAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNjtcbiAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kOSArIGluZDEwICsgaW5kMTE7XG4gICAgICAgIGNvbnN0IHNlY29uZCA9IGJlZm9yZUhvdXJpbmQgKyBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VyaW5kO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHNlY29uZDtcbiAgICAgIH1cblxuICAgICAgLy8gdHlwZSBhbS9QTVxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+IDgpIHtcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDEwLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID1cbiAgICAgICAgICAgIGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOTtcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQxMTtcblxuICAgICAgICAgIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDEwID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kICsgYWZ0ZXJIb3VyaW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2KSB7XG4gICAgICAgICAgbGV0IHR5cGVpbmQgPSBpbmQ3LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDg7XG5cbiAgICAgICAgICBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDcgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQgKyBhZnRlckhvdXJpbmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzKSB7XG4gICAgICAgICAgbGV0IHR5cGVpbmQyID0gaW5kNC50b1N0cmluZygpO1xuXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMztcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ1O1xuXG4gICAgICAgICAgaWYgKGluZDQgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQyID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQyICsgYWZ0ZXJIb3VyaW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8ga2V5IGRvd25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgLy8gaG91clxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMikge1xuICAgICAgICBjb25zdCBob3VyaW5kID0gaW5kMSArIGluZDI7XG4gICAgICAgIGNvbnN0IG5ld0hvdXIgPSAraG91cmluZCAtIDE7XG5cbiAgICAgICAgbmV3VmFsdWUgPSBuZXdIb3VyLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW0gfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtIHx8XG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMSAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDEgKyAnLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMiAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDIpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMSkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMTInO1xuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChob3VyaW5kID09PSAnLS0nKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGluZDEgIT09ICctJyAmJiBob3VyaW5kID09PSBpbmQxICsgJy0nKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGluZDIgIT09ICctJyAmJiBob3VyaW5kID09PSAnLScgKyBpbmQyKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCtuZXdWYWx1ZSA8IDApIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzIzJztcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhZnRlckhvdXJJbmRleCA9XG4gICAgICAgICAgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgaW5kMTE7XG4gICAgICAgIGNvbnN0IGhvdXIgPSBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VySW5kZXg7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gaG91cjtcbiAgICAgIH1cbiAgICAgIC8vIG1pbnV0ZVxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gMyAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDUpIHtcbiAgICAgICAgY29uc3QgbWludXRlaW5kID0gaW5kNCArIGluZDU7XG4gICAgICAgIGNvbnN0IG5ld01pbnV0ZSA9ICttaW51dGVpbmQgLSAxO1xuXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3TWludXRlLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChtaW51dGVpbmQgPT09ICctLScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kNCAhPT0gJy0nICYmIG1pbnV0ZWluZCA9PT0gaW5kNCArICctJykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmQ1ICE9PSAnLScgJiYgbWludXRlaW5kID09PSAnLScgKyBpbmQ1KSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbnV0ZWluZCA9PT0gJy0tJykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmICgrbmV3VmFsdWUgPCAwKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnNTknO1xuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiZWZvcmVNaW51dGVJbmRleCA9IGluZDEgKyBpbmQyICsgaW5kMztcbiAgICAgICAgY29uc3QgYWZ0ZXJNaW51dGVJbmRleCA9IGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xuICAgICAgICBjb25zdCBtaW51dGUgPVxuICAgICAgICAgIGJlZm9yZU1pbnV0ZUluZGV4ICsgbmV3VmFsdWUudG9TdHJpbmcoKSArIGFmdGVyTWludXRlSW5kZXg7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gbWludXRlO1xuICAgICAgfVxuXG4gICAgICAvLyBzZWNvbmRcbiAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA4KSB7XG4gICAgICAgIGNvbnN0IHNlY29uZEluZGV4ID0gaW5kNyArIGluZDg7XG4gICAgICAgIGNvbnN0IG5ld1NlY29uZCA9ICtzZWNvbmRJbmRleCAtIDE7XG5cbiAgICAgICAgbmV3VmFsdWUgPSBuZXdTZWNvbmQudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKHNlY29uZEluZGV4ID09PSAnLS0nKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZDcgIT09ICctJyAmJiBzZWNvbmRJbmRleCA9PT0gaW5kNyArICctJykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmQ4ICE9PSAnLScgJiYgc2Vjb25kSW5kZXggPT09ICctJyArIGluZDgpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2Vjb25kSW5kZXggPT09ICctLScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzU5JztcbiAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmVmb3Jlc2Vjb25kSW5kZXggPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDY7XG4gICAgICAgIGNvbnN0IGFmdGVyc2Vjb25kSW5kZXggPSBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcbiAgICAgICAgY29uc3Qgc2Vjb25kID1cbiAgICAgICAgICBiZWZvcmVzZWNvbmRJbmRleCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlcnNlY29uZEluZGV4O1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHNlY29uZDtcbiAgICAgIH1cblxuICAgICAgLy8gdHlwZVxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+IDgpIHtcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDEwLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID1cbiAgICAgICAgICAgIGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOTtcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQxMTtcblxuICAgICAgICAgIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDEwID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kICsgYWZ0ZXJIb3VyaW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2KSB7XG4gICAgICAgICAgbGV0IHR5cGVpbmQgPSBpbmQ3LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDg7XG5cbiAgICAgICAgICBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDcgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQgKyBhZnRlckhvdXJpbmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzKSB7XG4gICAgICAgICAgbGV0IHR5cGVpbmQyID0gaW5kNC50b1N0cmluZygpO1xuXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMztcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ1O1xuICAgICAgICAgIC8vVE8gRE8gdGhpcyBpcyB3cm9uZyBjaGVjayBpbmRleFxuICAgICAgICAgIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xuICAgICAgICAgICAgdHlwZWluZDIgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDQgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kMiArIGFmdGVySG91cmluZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgZG9HZXRDYXJldFBvc2l0aW9uKGN0cmwpIHtcbiAgICBsZXQgQ2FyZXRQb3MgPSAwO1xuICAgIGlmIChjdHJsLnNlbGVjdGlvblN0YXJ0IHx8IGN0cmwuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcbiAgICAgIENhcmV0UG9zID0gY3RybC5zZWxlY3Rpb25TdGFydDtcbiAgICAgIHJldHVybiBDYXJldFBvcztcbiAgICB9XG4gIH1cblxuICBzZXRDYXJldFBvc2l0aW9uKGN0cmwsIHBvcykge1xuICAgIGlmIChjdHJsLnNldFNlbGVjdGlvblJhbmdlKSB7XG4gICAgICBjdHJsLmZvY3VzKCk7XG4gICAgICBjdHJsLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICB9IGVsc2UgaWYgKGN0cmwuY3JlYXRlVGV4dFJhbmdlKSB7XG4gICAgICBjb25zdCByYW5nZSA9IGN0cmwuY3JlYXRlVGV4dFJhbmdlKCk7XG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICAgIHJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIHBvcyk7XG4gICAgICByYW5nZS5tb3ZlU3RhcnQoJ2NoYXJhY3RlcicsIHBvcyk7XG4gICAgICByYW5nZS5zZWxlY3QoKTtcbiAgICB9XG4gIH1cblxuICBzZXRDYXJldCgpIHtcbiAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnNvclBvc2l0aW9uKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4IGZvcm0taXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFthdHRyLmlkXT1cInVpZFwiICNmYz5cbiAgPGRpdiBjbGFzcz1cImF4IGl0ZW1zLXdyYXBwZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhcnRdXCI+IDwvbmctY29udGVudD5cbiAgICA8aSBjbGFzcz1cImZvcm0taXRlbS1pY29uIHt7IGljb24gfX1cIiAqbmdJZj1cImljb25cIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiICNjb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJheCBmb3JtLWNvbnRyb2wgaW5wdXQge3sgc2l6ZSB9fVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbY2xhc3MuaWNvbl09XCJpY29uXCI+XG4gICAgICA8aW5wdXQgI2lucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJheCB7eyBzaXplIH19XCIgW21hc2tdPVwidGltZVR5cGVcIiBbc2hvd01hc2tUeXBlZF09XCJzaG93TWFza1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwidGV4dFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB9fVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInNldFRleHRBbGlnbigpXCIgW2NsYXNzLmNsZWFyXT1cInZhbHVlICYmIGFsbG93Q2xlYXJcIiAoZm9jdXMpPVwiaGFuZGxlSW5wdXRGb2N1cygpXCJcbiAgICAgICAgKGJsdXIpPVwiaGFuZGxlSW5wdXRCbHVyKCRldmVudClcIiAoa2V5cHJlc3MpPVwiaGFuZGxlS2V5UHJlc3MoJGV2ZW50KVwiIChrZXl1cCk9XCJoYW5kbGVLZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4IGl0ZW1zLXdyYXBwZXJcIj5cbiAgICA8YXgtYnV0dG9uICpuZ0lmPVwidmFsdWUgJiYgYWxsb3dDbGVhclwiIGljb249XCJmYXIgZmEtdGltZXNcIiB0eXBlPVwiZGFuZ2VyIGJsYW5rXCIgKGNsaWNrKT1cImNsZWFyKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3RhYkluZGV4XT1cIi0xXCI+PC9heC1idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VuZF1cIj4gPC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBbdGV4dE1hc2tdPVwie21hc2s6IG1hc2sgLCBzaG93TWFzazpzaG93TWFzayAsIGd1aWQ6IG1hc2tHdWlkICwga2VlcENoYXJQb3NpdGlvbnM6IG1hc2tLZWVwQ2hhclBvc2l0aW9uc31cIiAtLT5cbjwhLS0gPGlucHV0ICNpbnB1dCBpZD1cInRpbWVQaWNrZXJWYWx1ZVwiIFt0ZXh0TWFza109XCJ0aW1lVHlwZVwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChrZXlwcmVzcyk9J2hhbmRsZUtleVByZXNzKCRldmVudCknXG4gICAgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIiAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiPiAtLT4iXX0=
@@ -6,17 +6,17 @@ import { AXButtonModule } from '../button/button.module';
6
6
  import { AXTimePickerComponent } from './time-picker.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class AXTimePickerModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: AXTimePickerModule, declarations: [AXTimePickerComponent], imports: [CommonModule,
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerModule, declarations: [AXTimePickerComponent], imports: [CommonModule,
11
11
  FormsModule,
12
12
  AXButtonModule,
13
13
  NgxMaskDirective,
14
14
  NgxMaskPipe], exports: [AXTimePickerComponent] });
15
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTimePickerModule, providers: [provideNgxMask()], imports: [CommonModule,
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerModule, providers: [provideNgxMask()], imports: [CommonModule,
16
16
  FormsModule,
17
17
  AXButtonModule] });
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTimePickerModule, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerModule, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  declarations: [AXTimePickerComponent],
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
31
31
  providers: [provideNgxMask()],
32
32
  }]
33
33
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBY2hFLE1BQU0sT0FBTyxrQkFBa0I7dUdBQWxCLGtCQUFrQjt3R0FBbEIsa0JBQWtCLGlCQVhkLHFCQUFxQixhQUVsQyxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsV0FBVyxhQUVILHFCQUFxQjt3R0FHcEIsa0JBQWtCLGFBRmxCLENBQUMsY0FBYyxFQUFFLENBQUMsWUFQM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjOzsyRkFPTCxrQkFBa0I7a0JBWjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XHJcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0FYVGltZVBpY2tlckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgICBOZ3hNYXNrUGlwZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtBWFRpbWVQaWNrZXJDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVOZ3hNYXNrKCldLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUaW1lUGlja2VyTW9kdWxlIHt9XHJcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBY2hFLE1BQU0sT0FBTyxrQkFBa0I7d0dBQWxCLGtCQUFrQjt5R0FBbEIsa0JBQWtCLGlCQVhkLHFCQUFxQixhQUVsQyxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsV0FBVyxhQUVILHFCQUFxQjt5R0FHcEIsa0JBQWtCLGFBRmxCLENBQUMsY0FBYyxFQUFFLENBQUMsWUFQM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjOzs0RkFPTCxrQkFBa0I7a0JBWjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IEFYVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vdGltZS1waWNrZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQVhUaW1lUGlja2VyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBOZ3hNYXNrRGlyZWN0aXZlLFxuICAgIE5neE1hc2tQaXBlLFxuICBdLFxuICBleHBvcnRzOiBbQVhUaW1lUGlja2VyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZU5neE1hc2soKV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYVGltZVBpY2tlck1vZHVsZSB7fVxuIl19