speechrecorderng 2.24.2 → 2.25.2
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.
- package/esm2020/lib/audio/audio_display.mjs +4 -4
- package/esm2020/lib/audio/audio_player.mjs +4 -4
- package/esm2020/lib/audio/capture/capture.mjs +1 -1
- package/esm2020/lib/audio/io/stream.mjs +41 -1
- package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +7 -7
- package/esm2020/lib/audio/ui/audio_display_control.mjs +4 -4
- package/esm2020/lib/audio/ui/audio_display_scroll_pane.mjs +4 -4
- package/esm2020/lib/audio/ui/audiosignal.mjs +4 -4
- package/esm2020/lib/audio/ui/container.mjs +4 -4
- package/esm2020/lib/audio/ui/livelevel.mjs +4 -4
- package/esm2020/lib/audio/ui/scroll_pane_horizontal.mjs +4 -4
- package/esm2020/lib/audio/ui/sonagram.mjs +4 -4
- package/esm2020/lib/io/stream.mjs +10 -1
- package/esm2020/lib/recorder_component.mjs +1 -1
- package/esm2020/lib/speechrecorder/project/project.mjs +1 -1
- package/esm2020/lib/speechrecorder/project/project.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/script/script.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +122 -110
- package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +179 -14
- package/esm2020/lib/speechrecorder/session/controlpanel.mjs +46 -22
- package/esm2020/lib/speechrecorder/session/progress.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/prompting.mjs +16 -16
- package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recording_list.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/session.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/session_finished_dialog.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +94 -61
- package/esm2020/lib/speechrecorder/session/warning_bar.mjs +4 -4
- package/esm2020/lib/speechrecorder/spruploader.mjs +4 -4
- package/esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +4 -4
- package/esm2020/lib/speechrecorderng.component.mjs +18 -5
- package/esm2020/lib/speechrecorderng.module.mjs +8 -8
- package/esm2020/lib/spr.config.mjs +4 -4
- package/esm2020/lib/spr.module.version.mjs +2 -2
- package/esm2020/lib/ui/canvas_layer_comp.mjs +4 -4
- package/esm2020/lib/ui/message_dialog.mjs +4 -4
- package/esm2020/lib/ui/recordingitem_display.mjs +7 -7
- package/esm2020/lib/utils/scrollIntoViewToBottom.mjs +4 -4
- package/esm2020/lib/utils/wake_lock.mjs +114 -0
- package/esm2020/lib/utils/wake_lock_media.mjs +2 -0
- package/fesm2015/speechrecorderng.mjs +811 -404
- package/fesm2015/speechrecorderng.mjs.map +1 -1
- package/fesm2020/speechrecorderng.mjs +805 -404
- package/fesm2020/speechrecorderng.mjs.map +1 -1
- package/lib/audio/io/stream.d.ts +13 -0
- package/lib/io/stream.d.ts +3 -0
- package/lib/recorder_component.d.ts +1 -0
- package/lib/speechrecorder/project/project.d.ts +1 -0
- package/lib/speechrecorder/session/audiorecorder.d.ts +11 -11
- package/lib/speechrecorder/session/basicrecorder.d.ts +44 -4
- package/lib/speechrecorder/session/controlpanel.d.ts +7 -0
- package/lib/speechrecorder/session/sessionmanager.d.ts +13 -10
- package/lib/speechrecorderng.component.d.ts +1 -0
- package/lib/speechrecorderng.module.d.ts +1 -1
- package/lib/spr.module.version.d.ts +1 -1
- package/lib/utils/wake_lock.d.ts +23 -0
- package/lib/utils/wake_lock_media.d.ts +1 -0
- package/package.json +1 -1
|
@@ -344,8 +344,8 @@ export class AudioClipUIContainer extends BasicAudioCanvasLayerComponent {
|
|
|
344
344
|
}
|
|
345
345
|
}
|
|
346
346
|
AudioClipUIContainer.DIVIDER_PIXEL_SIZE = 10;
|
|
347
|
-
AudioClipUIContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
348
|
-
AudioClipUIContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
347
|
+
AudioClipUIContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AudioClipUIContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
348
|
+
AudioClipUIContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AudioClipUIContainer, selector: "app-audio", inputs: { audioData: "audioData", audioClip: "audioClip" }, outputs: { selectionEventEmitter: "selectionEventEmitter" }, host: { listeners: { "window:resize": "onResize($event)", "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["divider"], descendants: true, static: true }, { propertyName: "ceRef", first: true, predicate: ["virtualCanvas"], descendants: true, static: true }, { propertyName: "as", first: true, predicate: AudioSignal, descendants: true, static: true }, { propertyName: "so", first: true, predicate: Sonagram, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
349
349
|
<div #virtualCanvas>
|
|
350
350
|
<canvas #divider (mousedown)="mousedown($event)" (mouseover)="mouseover($event)"
|
|
351
351
|
(mouseleave)="mouseleave($event)" height="10"></canvas>
|
|
@@ -353,7 +353,7 @@ AudioClipUIContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
353
353
|
<audio-sonagram [pointerPosition]="pointer" [selecting]="selecting" [selection]="selection" (pointerPositionEventEmitter)="pointerPositionChanged($event)" (selectingEventEmitter)="selectingChanged($event)" (selectedEventEmitter)="selectionChanged($event)"></audio-sonagram>
|
|
354
354
|
</div>
|
|
355
355
|
`, isInline: true, styles: ["div{margin:0;padding:0;top:0;left:0;width:100%;height:100%;position:relative;box-sizing:border-box;transform:none;overflow:hidden}\n", "canvas{top:0;left:0;width:0;height:0;cursor:ns-resize;position:absolute;zIndex:1;transform:none}\n", "audio-signal{top:0;left:0;position:absolute;zIndex:1;transform:none}\n", "audio-sonagram{top:0;left:0;position:absolute;zIndex:1;transform:none}\n"], components: [{ type: i1.AudioSignal, selector: "audio-signal" }, { type: i2.Sonagram, selector: "audio-sonagram" }] });
|
|
356
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AudioClipUIContainer, decorators: [{
|
|
357
357
|
type: Component,
|
|
358
358
|
args: [{
|
|
359
359
|
selector: 'app-audio',
|
|
@@ -428,4 +428,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
428
428
|
}], audioClip: [{
|
|
429
429
|
type: Input
|
|
430
430
|
}] } });
|
|
431
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL3VpL2NvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ3NCLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFDN0UsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUN6QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBUyxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUE7QUFFdEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFckUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFjeEUsQ0FBQztBQWdCRCxDQUFDO0FBRUYsNEJBQTRCO0FBQzVCLGdDQUFnQztBQUNoQyxtREFBbUQ7QUFDbkQsdUVBQXVFO0FBQ3ZFLG1DQUFtQztBQUNuQywwQkFBMEI7QUFDMUIsSUFBSTtBQUVKOzs7Ozs7O0dBT0c7QUFnREgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDhCQUE4QjtJQTBEdEUsWUFBb0IsR0FBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQTtRQURXLFFBQUcsR0FBSCxHQUFHLENBQVk7UUF6QzNCLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ3pDLFlBQU8sR0FBYyxJQUFJLENBQUM7UUFDMUIsY0FBUyxHQUFpQixJQUFJLENBQUM7UUFDL0IsY0FBUyxHQUFpQixJQUFJLENBQUM7UUFDckIsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUN4RCx1QkFB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QU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0QsRUFBRTtzQkFBeEMsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU0zQixxQkFBcUI7c0JBQTlCLE1BQU07Z0JBK0VQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0J6QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWTVDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE4TjFDLFNBQVM7c0JBRFosS0FBSztnQkFjRixTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge0F1ZGlvU2lnbmFsfSBmcm9tICcuL2F1ZGlvc2lnbmFsJ1xyXG5pbXBvcnQge1NvbmFncmFtfSBmcm9tICcuL3NvbmFncmFtJ1xyXG5pbXBvcnQge01hcmtlciwgUG9pbnR9IGZyb20gJy4vY29tbW9uJ1xyXG5cclxuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UG9zaXRpb24sRGltZW5zaW9uLCBSZWN0YW5nbGV9IGZyb20gXCIuLi8uLi9tYXRoLzJkL2dlb21ldHJ5XCI7XHJcbmltcG9ydCB7QXVkaW9DbGlwLFNlbGVjdGlvbn0gZnJvbSBcIi4uL3BlcnNpc3RvclwiO1xyXG5pbXBvcnQge0Jhc2ljQXVkaW9DYW52YXNMYXllckNvbXBvbmVudH0gZnJvbSBcIi4vYXVkaW9fY2FudmFzX2xheWVyX2NvbXBcIjtcclxuaW1wb3J0IHtFbGVtZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tcGlsZXJcIjtcclxuXHJcbi8qXHJcbiAgUmVzaXplT2JzZXJ2ZXIgbm90IHlldCBhdmFpbGFibGUgaW4gb2ZmaWNpYWwgVHlwZXNjcmlwdCBkZWNsYXJhdGlvblxyXG4gIENycmVhdGVkIGRlY2xhcmF0aW9uIGZyb20gSURMIHVudGlsIGl0cyBhdmFpbGFibGUuXHJcbiAgU2VlIHNwZWNzOlxyXG4gIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9yZXNpemUtb2JzZXJ2ZXJcclxuXHJcbiAqL1xyXG5cclxuaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyU2l6ZSB7XHJcbiAgcmVhZG9ubHkgaW5saW5lU2l6ZTpudW1iZXI7XHJcbiAgcmVhZG9ubHkgYmxvY2tTaXplOm51bWJlcjtcclxufTtcclxuXHJcbmRlY2xhcmUgaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyRW50cnl7XHJcbiAgcmVhZG9ubHkgdGFyZ2V0OiBFbGVtZW50O1xyXG4gIHJlYWRvbmx5IGNvbnRlbnRSZWN0OiBET01SZWN0UmVhZE9ubHkgO1xyXG4gIHJlYWRvbmx5IGJvcmRlckJveFNpemU6IEFycmF5PFJlc2l6ZU9ic2VydmVyU2l6ZT4gO1xyXG4gIHJlYWRvbmx5IGNvbnRlbnRCb3hTaXplOiBBcnJheTxSZXNpemVPYnNlcnZlclNpemU+IDtcclxuICByZWFkb25seSBkZXZpY2VQaXhlbENvbnRlbnRCb3hTaXplOiBBcnJheTxSZXNpemVPYnNlcnZlclNpemU+IDtcclxufVxyXG5cclxuZGVjbGFyZSBpbnRlcmZhY2UgUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayB7XHJcbiAgKGVudHJpZXM6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+LCBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXIpOnZvaWQ7XHJcbn1cclxuXHJcbmRlY2xhcmUgZW51bSBSZXNpemVPYnNlcnZlckJveE9wdGlvbnMge1xyXG4gIFwiYm9yZGVyLWJveFwiLCBcImNvbnRlbnQtYm94XCIsIFwiZGV2aWNlLXBpeGVsLWNvbnRlbnQtYm94XCJcclxufTtcclxuXHJcbi8vIC8vIERlY2xhcmUgUmVzaXplb2JzZXJ2ZXJcclxuLy8gZGVjbGFyZSBjbGFzcyBSZXNpemVPYnNlcnZlcntcclxuLy8gICBjb25zdHJ1Y3RvcihjYWxsYmFjazogUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayk7XHJcbi8vICAgb2JzZXJ2ZTogKGVsOkVsZW1lbnQsb3B0czogUmVzaXplT2JzZXJ2ZXJCb3hPcHRpb25zIHwgbnVsbCk9PnZvaWQ7XHJcbi8vICAgdW5vYnNlcnZlOiAoZWw6RWxlbWVudCk9PnZvaWQ7XHJcbi8vICAgZGlzY29ubmVjdDogKCk9PnZvaWQ7XHJcbi8vIH1cclxuXHJcbi8qXHJcbiAqIENvbnRhaW5lciBjb21wb25lbnQgZm9yIGF1ZGlvIGRpc3BsYXkuXHJcbiAqIFRoZSBkaXNwbGF5IGVsZW1lbnRzIGFyZSBjaGlsZHJlbiBvZiBhIHZpcnR1YWwgY2FudmFzLiBUaGUgdmlydHVhbCBjYW52YXMgbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBoaWdoIHpvb20gZmFjdG9ycyB3aXRoIHZlcnkgd2lkZSB2aXJ0dWFsIGF1ZGlvIGRpc3BsYXlzLlxyXG4gKiBPbmx5IHRoZSB2aXNpYmxlIHBhcnQgb2YgdGhlIHZpcnR1YWwgY2FudmFzIGlzIGltcGxlbWVudGVkIGFzIGEgYnJvd3NlciBjYW52YXMgYW5kIHRoZXJlZm9yZSBjb25zdW1pbmcgbWVtb3J5LlxyXG4gKiBUaGUgdmlzaWJsZSBwYXJ0IGhhcyB0aGUgc2FtZSB3aWR0aCBhcyB0aGUgdmlld3BvcnQgb2YgdGhlIHNjcm9sbCBwYW5lIHBhcmVudC5cclxuICogVGhlIHZpcnR1YWwgY2FudmFzIGl0c2VsZiBpcyBpbXBsZW1lbnRlZCBhcyBhIEhUTUwgZGl2IGVsZW1lbnQuXHJcbiAqIFRoZSBsYXlvdXQgb2YgdGhlIGNvbXBvbmVudCBpcyB1cGRhdGVkIG9uIHJlc2l6ZSBvZiB0aGUgcGFyZW50IG9yIGNoYW5nZXMgb2YgdGhlIHpvb20gZmFjdG9yLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGlvJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAjdmlydHVhbENhbnZhcz5cclxuICAgIDxjYW52YXMgI2RpdmlkZXIgKG1vdXNlZG93bik9XCJtb3VzZWRvd24oJGV2ZW50KVwiIChtb3VzZW92ZXIpPVwibW91c2VvdmVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKCRldmVudClcIiBoZWlnaHQ9XCIxMFwiPjwvY2FudmFzPlxyXG4gICAgPGF1ZGlvLXNpZ25hbCBbcG9pbnRlclBvc2l0aW9uXT1cInBvaW50ZXJcIiBbc2VsZWN0aW5nXT1cInNlbGVjdGluZ1wiIFtzZWxlY3Rpb25dPVwic2VsZWN0aW9uXCIgKHBvaW50ZXJQb3NpdGlvbkV2ZW50RW1pdHRlcik9XCJwb2ludGVyUG9zaXRpb25DaGFuZ2VkKCRldmVudClcIiAoc2VsZWN0aW5nRXZlbnRFbWl0dGVyKT1cInNlbGVjdGluZ0NoYW5nZWQoJGV2ZW50KVwiIChzZWxlY3RlZEV2ZW50RW1pdHRlcik9XCJzZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2F1ZGlvLXNpZ25hbD5cclxuICAgIDxhdWRpby1zb25hZ3JhbSBbcG9pbnRlclBvc2l0aW9uXT1cInBvaW50ZXJcIiBbc2VsZWN0aW5nXT1cInNlbGVjdGluZ1wiIFtzZWxlY3Rpb25dPVwic2VsZWN0aW9uXCIgKHBvaW50ZXJQb3NpdGlvbkV2ZW50RW1pdHRlcik9XCJwb2ludGVyUG9zaXRpb25DaGFuZ2VkKCRldmVudClcIiAoc2VsZWN0aW5nRXZlbnRFbWl0dGVyKT1cInNlbGVjdGluZ0NoYW5nZWQoJGV2ZW50KVwiIChzZWxlY3RlZEV2ZW50RW1pdHRlcik9XCJzZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2F1ZGlvLXNvbmFncmFtPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgZGl2IHtcclxuXHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBUT0RPIGNvbnRhaW5lciBkaXYgcG9zaXRpb24gbXVzdCBub3QgYmUgJ3N0YXRpYycgKGRlZmF1bHQpIHRvIGFjdCBhcyByZWZlcmVuY2UgZm9yIHRoZSBjYW52YXNlcyAqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfWAsIGBjYW52YXN7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHpJbmRleDogMTtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICB9YCwgYGF1ZGlvLXNpZ25hbCB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgekluZGV4OiAxO1xyXG4gICAgdHJhbnNmb3JtOiBub25lO1xyXG4gIH1gLCBgYXVkaW8tc29uYWdyYW0ge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHpJbmRleDogMTtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0NsaXBVSUNvbnRhaW5lciBleHRlbmRzIEJhc2ljQXVkaW9DYW52YXNMYXllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0e1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBESVZJREVSX1BJWEVMX1NJWkUgPSAxMDtcclxuXHJcbiAgcGFyZW50RTogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIC8vIERpdmlkZXIgY2FudmFzXHJcbiAgQFZpZXdDaGlsZCgnZGl2aWRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGNhbnZhc1JlZiE6IEVsZW1lbnRSZWY7XHJcbiAgZGMhOiBIVE1MQ2FudmFzRWxlbWVudDtcclxuXHJcbiAgLy8gVmlydHVhbCBjb250YWluZXJcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQ2FudmFzJywgeyBzdGF0aWM6IHRydWUgfSkgY2VSZWYhOiBFbGVtZW50UmVmO1xyXG4gIGNlITogSFRNTERpdkVsZW1lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQXVkaW9TaWduYWwsIHsgc3RhdGljOiB0cnVlIH0pIGFzITogQXVkaW9TaWduYWw7XHJcbiAgQFZpZXdDaGlsZChTb25hZ3JhbSwgeyBzdGF0aWM6IHRydWUgfSkgc28hOiBTb25hZ3JhbTtcclxuXHJcbiAgcHJpdmF0ZSBfYXVkaW9DbGlwOkF1ZGlvQ2xpcCB8IG51bGw9bnVsbDtcclxuICBwb2ludGVyOiBNYXJrZXJ8bnVsbD1udWxsO1xyXG4gIHNlbGVjdGluZzogU2VsZWN0aW9ufG51bGw9bnVsbDtcclxuICBzZWxlY3Rpb246IFNlbGVjdGlvbnxudWxsPW51bGw7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uPigpO1xyXG4gIHByaXZhdGUgX3BsYXlGcmFtZVBvc2l0aW9uOiBudW1iZXJ8bnVsbD1udWxsO1xyXG4gIHByaXZhdGUgZHJhZ1N0YXJ0TW91c2VZOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGRyYWdTdGFydFk6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgZGl2aWRlclBvc2l0aW9uID0gMC41O1xyXG5cclxuICB1c2VyQWN0aW9uPWZhbHNlO1xyXG5cclxuICBwcml2YXRlIF94Wm9vbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7IC8vIHBpeGVscyBwZXIgc2Vjb25kXHJcblxyXG4gIGdldCB4Wm9vbSgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl94Wm9vbTtcclxuICB9XHJcblxyXG4gIHNldCB4Wm9vbSh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xyXG4gICAgdGhpcy51c2VyQWN0aW9uPXRydWU7XHJcbiAgICB0aGlzLl94Wm9vbSA9IHZhbHVlO1xyXG4gICAgdGhpcy5sYXlvdXQoKVxyXG4gICAgdGhpcy51c2VyQWN0aW9uPWZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8gaWYgdHJ1ZSB0aGUgY29tcGxldGUgYXVkaW8gZmlsZSBpcyBzaG93biwgdGhlIGRpc3BsYXkgZml0cyB0byB0aGUgdmlzaWJsZSBwYW5lbCwgdGhlIHgtem9vbSBmYWN0b3IgaXMgdmFyaWFibGUsIHRoaXMgaXMgdGhlIGRlZmF1bHRcclxuICBwcml2YXRlIF9maXhGaXRUb1BhbmVsID0gdHJ1ZTtcclxuXHJcbiAgc2V0IGZpeEZpdFRvUGFuZWwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2ZpeEZpdFRvUGFuZWwgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAvLyB3ZSBkb24ndCBuZWVkICBjbGlwIGJvdW5kc1xyXG4gICAgICB0aGlzLmJvdW5kcz1udWxsO1xyXG4gICAgICB0aGlzLl94Wm9vbSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBob2xkIGN1cnJlbnQgem9vbSB2YWx1ZVxyXG4gICAgICAvL3RoaXMuX3hab29tPXRoaXMuY2Uub2Zmc2V0V2lkdGgvdGhpcy5fYXVkaW9EYXRhLmR1cmF0aW9uO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXlvdXQoKVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKClcclxuICAgIHRoaXMucGFyZW50RSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2UgPSB0aGlzLmNlUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLmRjID0gdGhpcy5jYW52YXNSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICBsZXQgaGVpZ2h0TGlzdGVuZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXJzOiBBcnJheTxNdXRhdGlvblJlY29yZD4sIG1vOiBNdXRhdGlvbk9ic2VydmVyKSA9PiB7XHJcblxyXG4gICAgICBsZXQgbGF5b3V0PWZhbHNlO1xyXG4gICAgICBtcnMuZm9yRWFjaCgobXI6IE11dGF0aW9uUmVjb3JkKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnVzZXJBY3Rpb24gJiYgJ2F0dHJpYnV0ZXMnID09PSBtci50eXBlICYmICgnY2xhc3MnID09PSBtci5hdHRyaWJ1dGVOYW1lIHx8ICdzdHlsZScgPT09IG1yLmF0dHJpYnV0ZU5hbWUpKSB7XHJcbiAgICAgICAgICBsYXlvdXQ9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZihsYXlvdXQpe1xyXG4gICAgICAgIC8vIHJlLWxheW91dCByZXF1aXJlZFxyXG4gICAgICAgIHRoaXMubGF5b3V0KGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaGVpZ2h0TGlzdGVuZXIub2JzZXJ2ZSh0aGlzLmNlLCB7YXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7XHJcbiAgICBoZWlnaHRMaXN0ZW5lci5vYnNlcnZlKHRoaXMuZGMsIHthdHRyaWJ1dGVzOiB0cnVlLCBjaGlsZExpc3Q6IHRydWUsIGNoYXJhY3RlckRhdGE6IHRydWV9KTtcclxuXHJcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMsb2JzKSA9PiB7XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJSZXNpemUgb2JzZXJ2ZWQ6XCIpO1xyXG4gICAgICBlbnRyaWVzLmZvckVhY2goKGUpPT57XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhlLmNvbnRlbnRSZWN0LndpZHRoK1wieFwiK2UuY29udGVudFJlY3QuaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNlKTtcclxuXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBtb3VzZW92ZXIobWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZGl2aWRlckN1cnNvclBvc2l0aW9uKG1lLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIG1vdXNlbGVhdmUobWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZGl2aWRlckN1cnNvclBvc2l0aW9uKG1lLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBtb3VzZWRvd24obWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZHJhZ1N0YXJ0TW91c2VZID0gbWUuY2xpZW50WTtcclxuICAgIHRoaXMuZHJhZ1N0YXJ0WSA9IHRoaXMuZGMub2Zmc2V0VG9wO1xyXG4gICAgdGhpcy5kcmFnU3RhcnRNb3VzZVkgPSBtZS5jbGllbnRZO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25Nb3VzZXVwKG1lOiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kcmFnU3RhcnRZICE9IG51bGwpIHtcclxuICAgICAgdGhpcy51c2VyQWN0aW9uPXRydWU7XHJcbiAgICAgIHRoaXMuZGl2aWRlckRyYWcobWUpO1xyXG4gICAgICB0aGlzLmxheW91dChmYWxzZSk7XHJcbiAgICAgIHRoaXMuZHJhZ1N0YXJ0WSA9IG51bGw7XHJcbiAgICAgIHRoaXMudXNlckFjdGlvbj1mYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXHJcbiAgb25Nb3VzZW1vdmUobWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRyYWdTdGFydFkgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnVzZXJBY3Rpb249dHJ1ZTtcclxuICAgICAgdGhpcy5kaXZpZGVyRHJhZyhtZSk7XHJcbiAgICAgIHRoaXMubGF5b3V0U2NhbGVkKCk7XHJcbiAgICAgIHRoaXMudXNlckFjdGlvbj10cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9pbnRlclBvc2l0aW9uQ2hhbmdlZChwcDpNYXJrZXIpe1xyXG4gICAgdGhpcy5wb2ludGVyPXBwXHJcbiAgfVxyXG5cclxuICBzZWxlY3RpbmdDaGFuZ2VkKHM6U2VsZWN0aW9ufCBudWxsKXtcclxuICAgIHRoaXMuc2VsZWN0aW5nPXNcclxuICB9XHJcblxyXG4gIHNlbGVjdGlvbkNoYW5nZWQoczpTZWxlY3Rpb24pe1xyXG4gICAgdGhpcy5zZWxlY3Rpb249c1xyXG4gICAgaWYodGhpcy5fYXVkaW9DbGlwKXtcclxuICAgICAgdGhpcy5fYXVkaW9DbGlwLnNlbGVjdGlvbj1zXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGlvbkV2ZW50RW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0aW9uKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYW52YXNNb3VzZVBvcyhjOiBIVE1MQ2FudmFzRWxlbWVudCwgZTogTW91c2VFdmVudCk6IFBvaW50IHtcclxuICAgIGNvbnN0IGNyID0gYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHggPSBlLnggLSBjci5sZWZ0O1xyXG4gICAgY29uc3QgeSA9IGUueSAtIGNyLnRvcDtcclxuICAgIHJldHVybiBuZXcgUG9pbnQoeCx5KTtcclxuICB9XHJcblxyXG4gIGRpdmlkZXJDdXJzb3JQb3NpdGlvbihlOiBNb3VzZUV2ZW50LCBzaG93OiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5kYykge1xyXG5cclxuICAgICAgY29uc3QgdyA9IHRoaXMuZGMud2lkdGg7XHJcbiAgICAgIGNvbnN0IGggPSB0aGlzLmRjLmhlaWdodDtcclxuICAgICAgY29uc3QgZyA9IHRoaXMuZGMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHJcbiAgICAgIGNvbnN0IHBwID0gdGhpcy5jYW52YXNNb3VzZVBvcyh0aGlzLmRjLCBlKTtcclxuICAgICAgY29uc3Qgb2ZmWCA9IGUub2Zmc2V0WCAtIHRoaXMuZGMub2Zmc2V0TGVmdDtcclxuICAgICAgY29uc3Qgb2ZmWSA9IGUub2Zmc2V0WSAtIHRoaXMuZGMub2Zmc2V0VG9wO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRpdmlkZXJEcmFnKGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRjICYmIHRoaXMuZHJhZ1N0YXJ0TW91c2VZICYmIHRoaXMuZHJhZ1N0YXJ0WSkge1xyXG5cclxuICAgICAgY29uc3QgZHJhZ09mZnNldCA9IGUuY2xpZW50WSAtIHRoaXMuZHJhZ1N0YXJ0TW91c2VZO1xyXG4gICAgICBjb25zdCBjZUhlaWdodCA9IHRoaXMuY2Uub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgICAgbGV0IG5ld1RvcCA9ICh0aGlzLmRyYWdTdGFydFkgKyBkcmFnT2Zmc2V0KTtcclxuICAgICAgaWYgKG5ld1RvcCA8IDApIHtcclxuICAgICAgICBuZXdUb3AgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChuZXdUb3AgPiBjZUhlaWdodCAtIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRSkge1xyXG4gICAgICAgIG5ld1RvcCA9IGNlSGVpZ2h0IC0gQXVkaW9DbGlwVUlDb250YWluZXIuRElWSURFUl9QSVhFTF9TSVpFO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGMuc3R5bGUudG9wID0gbmV3VG9wLnRvU3RyaW5nKCkgKyAncHgnO1xyXG4gICAgICB0aGlzLmRpdmlkZXJQb3NpdGlvbiA9ICh0aGlzLmRjLm9mZnNldFRvcCArIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRSAvIDIpIC8gY2VIZWlnaHQ7XHJcbiAgICAgIGlmICh0aGlzLmRpdmlkZXJQb3NpdGlvbiA+IDEuMCkge1xyXG4gICAgICAgIHRoaXMuZGl2aWRlclBvc2l0aW9uID0gMS4wO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpdmlkZXJQb3NpdGlvbiA8IDAuMCkge1xyXG4gICAgICAgIHRoaXMuZGl2aWRlclBvc2l0aW9uID0gMC4wO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJhd0RpdmlkZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBkcmF3RGl2aWRlcigpIHtcclxuICAgIGNvbnN0IHcgPSB0aGlzLmRjLndpZHRoO1xyXG4gICAgY29uc3QgaCA9IHRoaXMuZGMuaGVpZ2h0O1xyXG4gICAgY29uc3QgZyA9IHRoaXMuZGMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgIGlmIChnICYmIHc+MTAgJiYgaD49MSkge1xyXG4gICAgICBnLmZpbGxTdHlsZSA9ICd3aGl0ZSc7XHJcbiAgICAgIGcuZmlsbFJlY3QoMCwgMCwgdywgaCk7XHJcbiAgICAgIGcuZmlsbFN0eWxlID0gJ2JsYWNrJztcclxuICAgICAgZy5maWxsUmVjdCg1LCA1LCB3IC0gMTAsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xpcEJvdW5kcyhjbGlwQm91bmRzOiBSZWN0YW5nbGUpIHtcclxuICAgIHRoaXMuYm91bmRzID0gY2xpcEJvdW5kcztcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBjdXJyZW50WFpvb20oKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBsZXQgeHogPSB0aGlzLl94Wm9vbTtcclxuICAgIGlmICh4ej09bnVsbCAmJiB0aGlzLl9hdWRpb0RhdGEpIHtcclxuICAgICAgbGV0IG93ID0gdGhpcy5jZS5vZmZzZXRXaWR0aDtcclxuICAgICAgaWYgKG93IDwgMSkge1xyXG4gICAgICAgIC8vIGF0IGxlYXN0IG9uZSBwaXhlbCB3aWR0aCB0byBhdm9pZCB4LXpvb20gemVybyB2YWx1ZXNcclxuICAgICAgICBvdyA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgeHogPSBvdyAvIHRoaXMuX2F1ZGlvRGF0YS5kdXJhdGlvbjtcclxuICAgIH1cclxuICAgIHJldHVybiB4ejtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xheW91dChjbGVhcjogYm9vbGVhbiwgcmVkcmF3OiBib29sZWFuKSB7XHJcbiAgICBsZXQgY2VCY3IgPSB0aGlzLmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIGNvbnN0IGNlQmNySW50VyA9IE1hdGguZmxvb3IoY2VCY3Iud2lkdGgpO1xyXG4gICAgY29uc3QgY2VCY3JJbnRIID0gTWF0aC5mbG9vcihjZUJjci5oZWlnaHQpO1xyXG5cclxuICAgIC8vIGhlaWdodCBhdmFpbGFibGUgZm9yIHBsdWdpbnMgKGF1ZGlvc2lnbmFsIGFuZCBzb25hZ3JhbSlcclxuICAgIGxldCBwc0ggPSBjZUJjckludEggLSBBdWRpb0NsaXBVSUNvbnRhaW5lci5ESVZJREVSX1BJWEVMX1NJWkU7XHJcbiAgICBpZiAocHNIIDwgMCkge1xyXG4gICAgICBwc0ggPSAwO1xyXG4gICAgfVxyXG4gICAgLy8gYXVkaW8gc2lnbmFsIGhlaWdodFxyXG4gICAgY29uc3QgYXNIID0gTWF0aC5yb3VuZChwc0ggKiB0aGlzLmRpdmlkZXJQb3NpdGlvbik7XHJcblxyXG4gICAgLy8gc29uYWdyYW0gaGVpZ2h0IChyZXN0OiBhdmFpbGFibGUgaGVpZ2h0IG1pbnVzIGRpdmlkZXIgaGVpZ2h0IG1pbnVzIGF1ZGlvc2lnbmFsIGhlaWdodClcclxuICAgIGxldCBzb0ggPSBjZUJjckludEggLSBBdWRpb0NsaXBVSUNvbnRhaW5lci5ESVZJREVSX1BJWEVMX1NJWkUgLSBhc0g7XHJcbiAgICBpZiAoc29IIDwgMCkge1xyXG4gICAgICBzb0ggPSAwO1xyXG4gICAgfVxyXG5cclxuICAvLyBzb25hZ3JhbSB0b3AgcG9zaXRpb25cclxuICAgIGNvbnN0IHNvVG9wID0gYXNIICsgQXVkaW9DbGlwVUlDb250YWluZXIuRElWSURFUl9QSVhFTF9TSVpFO1xyXG5cclxuICAgIC8vIFZpc2libGUgYm91bmRzXHJcbiAgICAvLyBsZWZ0IHBvc2l0aW9uXHJcbiAgICBsZXQgdmJMZWZ0ID0gMDtcclxuICAgIC8vIHdpZHRoXHJcbiAgICBsZXQgdmJXaWR0aCA9IGNlQmNySW50VztcclxuICAgIGlmICghdGhpcy5fZml4Rml0VG9QYW5lbCAmJiB0aGlzLmJvdW5kcykge1xyXG4gICAgICB2YkxlZnQgPSBNYXRoLnJvdW5kKHRoaXMuYm91bmRzLnBvc2l0aW9uLmxlZnQpO1xyXG4gICAgICB2YldpZHRoID0gTWF0aC5yb3VuZCh0aGlzLmJvdW5kcy5kaW1lbnNpb24ud2lkdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIERpdmlkZXJcclxuICAgIC8vIGxlZnQgcG9zaXRpb25cclxuICAgIGxldCB2YkxlZnRTdHlsID0gdmJMZWZ0ICsgJ3B4JztcclxuICAgIGlmICh0aGlzLmRjLnN0eWxlLmxlZnQgIT0gdmJMZWZ0U3R5bCkge1xyXG4gICAgICB0aGlzLmRjLnN0eWxlLmxlZnQgPSB2YkxlZnRTdHlsO1xyXG4gICAgfVxyXG4gICAgLy8gdG9wIHBvc2l0aW9uXHJcbiAgICBjb25zdCBkVG9wID0gYXNIO1xyXG4gICAgY29uc3QgZFRvcFN0ciA9IGRUb3AgKyAncHgnO1xyXG4gICAgaWYgKHRoaXMuZGMuc3R5bGUudG9wICE9IGRUb3BTdHIpIHtcclxuICAgICAgdGhpcy5kYy5zdHlsZS50b3AgPSBkVG9wU3RyO1xyXG4gICAgfVxyXG4gICAgLy8gd2lkdGhcclxuICAgIGxldCB2YldpZHRoU3R5bGUgPSB2YldpZHRoICsgJ3B4JztcclxuICAgIGlmICh0aGlzLmRjLnN0eWxlLndpZHRoICE9IHZiV2lkdGhTdHlsZSkge1xyXG4gICAgICB0aGlzLmRjLnN0eWxlLndpZHRoID0gdmJXaWR0aFN0eWxlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGMud2lkdGggIT0gdmJXaWR0aCkge1xyXG4gICAgICB0aGlzLmRjLndpZHRoID0gdmJXaWR0aDtcclxuICAgIH1cclxuICAgIC8vIGhlaWdodFxyXG4gICAgaWYodGhpcy5kYy5oZWlnaHQhPUF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRSkge1xyXG4gICAgICB0aGlzLmRjLmhlaWdodCA9IEF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRTtcclxuXHJcbiAgICB9XHJcbiAgICBsZXQgZGl2UGl4ZWxTaXplU3R5bGU9QXVkaW9DbGlwVUlDb250YWluZXIuRElWSURFUl9QSVhFTF9TSVpFLnRvU3RyaW5nKCkgKyAncHgnO1xyXG4gICAgaWYodGhpcy5kYy5zdHlsZS5oZWlnaHQhPWRpdlBpeGVsU2l6ZVN0eWxlKSB7XHJcbiAgICAgIHRoaXMuZGMuc3R5bGUuaGVpZ2h0ID0gZGl2UGl4ZWxTaXplU3R5bGU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcmF3RGl2aWRlcigpO1xyXG5cclxuXHJcbiAgICAvLyBWaXJ0dWFsIGRpbWVuc2lvbiwgb25seSB3aWR0aCBpcyB1c2VkXHJcbiAgICBsZXQgdmlydHVhbERpbSA9IG5ldyBEaW1lbnNpb24oY2VCY3JJbnRXLCAwKVxyXG5cclxuICAgIC8vIFZpc2libGUgYm91bmRzIG9mIGNvbnRhaW5lclxyXG4gICAgbGV0IGJyID0gbmV3IFJlY3RhbmdsZShuZXcgUG9zaXRpb24odmJMZWZ0LCAwKSwgbmV3IERpbWVuc2lvbih2YldpZHRoLCBjZUJjckludEgpKTtcclxuXHJcbiAgICAvLyBTZXQgY29udGFpbmVyIGJvdW5kc1xyXG4gICAgdGhpcy5sYXlvdXRCb3VuZHMoYnIsIHZpcnR1YWxEaW0sIGZhbHNlKTtcclxuXHJcbiAgICAvLyBWaXNpYmxlIGJvdW5kcyBvZiBhdWRpb3NpZ25hbFxyXG4gICAgbGV0IGFzUiA9IG5ldyBSZWN0YW5nbGUobmV3IFBvc2l0aW9uKHZiTGVmdCwgMCksIG5ldyBEaW1lbnNpb24odmJXaWR0aCwgYXNIKSk7XHJcblxyXG4gICAgLy8gU2V0IGF1ZGlvc2lnbmFsIGJvdW5kc1xyXG4gICAgdGhpcy5hcy5sYXlvdXRCb3VuZHMoYXNSLCB2aXJ0dWFsRGltLCByZWRyYXcsIGNsZWFyKTtcclxuXHJcbiAgICAvLyBWaXNpYmxlIGJvdW5kcyBvZiBzb25hZ3JhbVxyXG4gICAgbGV0IHNvUiA9IG5ldyBSZWN0YW5nbGUobmV3IFBvc2l0aW9uKHZiTGVmdCwgc29Ub3ApLCBuZXcgRGltZW5zaW9uKHZiV2lkdGgsIHNvSCkpO1xyXG5cclxuICAgIC8vIFNldCBzb25hZ3JhbSBib3VuZHNcclxuICAgIHRoaXMuc28ubGF5b3V0Qm91bmRzKHNvUiwgdmlydHVhbERpbSwgcmVkcmF3LCBjbGVhcik7XHJcbiAgfVxyXG5cclxuICBsYXlvdXRTY2FsZWQoKSB7XHJcbiAgICB0aGlzLl9sYXlvdXQoZmFsc2UsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGxheW91dChjbGVhcj10cnVlKSB7XHJcblxyXG4gICAgaWYodGhpcy5jZSAmJiB0aGlzLmRjKSB7XHJcbiAgICAgIGNvbnN0IGNsaWVudFc9dGhpcy5jZS5jbGllbnRXaWR0aDtcclxuICAgICAgaWYodGhpcy5fYXVkaW9EYXRhKXtcclxuICAgICAgICBpZih0aGlzLl9maXhGaXRUb1BhbmVsKSB7XHJcbiAgICAgICAgICAvLyBTZXQgdGhlIHZpcnR1YWwgY2FudmFzIHdpZHRoIHRvIHRoZSB2aXNpYmxlIHdpZHRoXHJcbiAgICAgICAgICBpZih0aGlzLmNlLnN0eWxlLndpZHRoIT0nMTAwJScpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcInNldCB3aWR0aCB0byAxMDAlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmNlLnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaWYgKHRoaXMuX3hab29tKSB7XHJcbiAgICAgICAgICAgIC8vIFNldCB0aGUgdmlydHVhbCBjYW52YXMgd2lkdGggYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUgdXNlciBzZWxlY3RlZCB4Wm9vbSB2YWx1ZVxyXG4gICAgICAgICAgICBjb25zdCBuZXdDbFcgPSBNYXRoLnJvdW5kKCB0aGlzLl94Wm9vbSp0aGlzLl9hdWRpb0RhdGEuZHVyYXRpb24gKTtcclxuICAgICAgICAgICAgdGhpcy5jZS5zdHlsZS53aWR0aCA9IG5ld0NsVyArICdweCc7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTZXQgdGhlIHZpcnR1YWwgY2FudmFzIHdpZHRoIHRvIHRoZSB2aXNpYmxlIHdpZHRoIG9ubHlcclxuICAgICAgICAgICAgdGhpcy5jZS5zdHlsZS53aWR0aCA9IGNsaWVudFcgKyAncHgnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9sYXlvdXQoY2xlYXIsdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBhdWRpb0RhdGEoYXVkaW9EYXRhOiBBdWRpb0J1ZmZlciB8IG51bGwpIHtcclxuICAgIHRoaXMuX2F1ZGlvQ2xpcD1udWxsXHJcbiAgICB0aGlzLl9hdWRpb0RhdGE9YXVkaW9EYXRhO1xyXG4gICAgdGhpcy5hcy5zZXREYXRhKGF1ZGlvRGF0YSk7XHJcbiAgICB0aGlzLnNvLnNldERhdGEoYXVkaW9EYXRhKTtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9EYXRhKCk6QXVkaW9CdWZmZXJ8bnVsbHtcclxuICAgIHJldHVybiB0aGlzLl9hdWRpb0RhdGFcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGF1ZGlvQ2xpcChhdWRpb0NsaXA6IEF1ZGlvQ2xpcCB8IG51bGwpIHtcclxuICAgIHRoaXMuX2F1ZGlvQ2xpcD1hdWRpb0NsaXBcclxuICAgICAgbGV0IGF1ZGlvRGF0YTpBdWRpb0J1ZmZlcnxudWxsPW51bGw7XHJcbiAgICBsZXQgc2VsOlNlbGVjdGlvbnxudWxsPW51bGw7XHJcbiAgICAgIGlmKGF1ZGlvQ2xpcCkge1xyXG4gICAgICAgIGF1ZGlvRGF0YSA9IGF1ZGlvQ2xpcC5idWZmZXI7XHJcbiAgICAgICAgaWYgKHRoaXMuX2F1ZGlvQ2xpcCkge1xyXG4gICAgICAgICAgdGhpcy5fYXVkaW9DbGlwLmFkZFNlbGVjdGlvbk9ic2VydmVyKChjbGlwKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gY2xpcC5zZWxlY3Rpb25cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZWw9YXVkaW9DbGlwLnNlbGVjdGlvbjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9hdWRpb0RhdGEgPSBhdWRpb0RhdGE7XHJcbiAgICAgIHRoaXMuYXMuc2V0RGF0YSh0aGlzLl9hdWRpb0RhdGEpO1xyXG4gICAgICB0aGlzLnNvLnNldERhdGEodGhpcy5fYXVkaW9EYXRhKTtcclxuICAgICAgdGhpcy5zZWxlY3Rpbmc9bnVsbFxyXG4gICAgICB0aGlzLnNlbGVjdGlvbj1zZWxcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGxheUZyYW1lUG9zaXRpb24oKTogbnVtYmVyIHxudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGF5RnJhbWVQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIHNldCBwbGF5RnJhbWVQb3NpdGlvbihwbGF5RnJhbWVQb3NpdGlvbjogbnVtYmVyfG51bGwpIHtcclxuICAgIHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgICB0aGlzLmFzLnBsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgICB0aGlzLnNvLnBsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
|
|
431
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL3VpL2NvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ3NCLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFDN0UsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUN6QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBUyxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUE7QUFFdEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFckUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFjeEUsQ0FBQztBQWdCRCxDQUFDO0FBRUYsNEJBQTRCO0FBQzVCLGdDQUFnQztBQUNoQyxtREFBbUQ7QUFDbkQsdUVBQXVFO0FBQ3ZFLG1DQUFtQztBQUNuQywwQkFBMEI7QUFDMUIsSUFBSTtBQUVKOzs7Ozs7O0dBT0c7QUFnREgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDhCQUE4QjtJQTBEdEUsWUFBb0IsR0FBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQTtRQURXLFFBQUcsR0FBSCxHQUFHLENBQVk7UUF6QzNCLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ3pDLFlBQU8sR0FBYyxJQUFJLENBQUM7UUFDMUIsY0FBUyxHQUFpQixJQUFJLENBQUM7UUFDL0IsY0FBUyxHQUFpQixJQUFJLENBQUM7UUFDckIsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUN4RCx1QkFB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QU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0QsRUFBRTtzQkFBeEMsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU0zQixxQkFBcUI7c0JBQTlCLE1BQU07Z0JBK0VQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0J6QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWTVDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE4TjFDLFNBQVM7c0JBRFosS0FBSztnQkFjRixTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge0F1ZGlvU2lnbmFsfSBmcm9tICcuL2F1ZGlvc2lnbmFsJ1xyXG5pbXBvcnQge1NvbmFncmFtfSBmcm9tICcuL3NvbmFncmFtJ1xyXG5pbXBvcnQge01hcmtlciwgUG9pbnR9IGZyb20gJy4vY29tbW9uJ1xyXG5cclxuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UG9zaXRpb24sRGltZW5zaW9uLCBSZWN0YW5nbGV9IGZyb20gXCIuLi8uLi9tYXRoLzJkL2dlb21ldHJ5XCI7XHJcbmltcG9ydCB7QXVkaW9DbGlwLFNlbGVjdGlvbn0gZnJvbSBcIi4uL3BlcnNpc3RvclwiO1xyXG5pbXBvcnQge0Jhc2ljQXVkaW9DYW52YXNMYXllckNvbXBvbmVudH0gZnJvbSBcIi4vYXVkaW9fY2FudmFzX2xheWVyX2NvbXBcIjtcclxuaW1wb3J0IHtFbGVtZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tcGlsZXJcIjtcclxuXHJcbi8qXHJcbiAgUmVzaXplT2JzZXJ2ZXIgbm90IHlldCBhdmFpbGFibGUgaW4gb2ZmaWNpYWwgVHlwZXNjcmlwdCBkZWNsYXJhdGlvblxyXG4gIENycmVhdGVkIGRlY2xhcmF0aW9uIGZyb20gSURMIHVudGlsIGl0cyBhdmFpbGFibGUuXHJcbiAgU2VlIHNwZWNzOlxyXG4gIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9yZXNpemUtb2JzZXJ2ZXJcclxuXHJcbiAqL1xyXG5cclxuaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyU2l6ZSB7XHJcbiAgcmVhZG9ubHkgaW5saW5lU2l6ZTpudW1iZXI7XHJcbiAgcmVhZG9ubHkgYmxvY2tTaXplOm51bWJlcjtcclxufTtcclxuXHJcbmRlY2xhcmUgaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyRW50cnl7XHJcbiAgcmVhZG9ubHkgdGFyZ2V0OiBFbGVtZW50O1xyXG4gIHJlYWRvbmx5IGNvbnRlbnRSZWN0OiBET01SZWN0UmVhZE9ubHkgO1xyXG4gIHJlYWRvbmx5IGJvcmRlckJveFNpemU6IEFycmF5PFJlc2l6ZU9ic2VydmVyU2l6ZT4gO1xyXG4gIHJlYWRvbmx5IGNvbnRlbnRCb3hTaXplOiBBcnJheTxSZXNpemVPYnNlcnZlclNpemU+IDtcclxuICByZWFkb25seSBkZXZpY2VQaXhlbENvbnRlbnRCb3hTaXplOiBBcnJheTxSZXNpemVPYnNlcnZlclNpemU+IDtcclxufVxyXG5cclxuZGVjbGFyZSBpbnRlcmZhY2UgUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayB7XHJcbiAgKGVudHJpZXM6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+LCBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXIpOnZvaWQ7XHJcbn1cclxuXHJcbmRlY2xhcmUgZW51bSBSZXNpemVPYnNlcnZlckJveE9wdGlvbnMge1xyXG4gIFwiYm9yZGVyLWJveFwiLCBcImNvbnRlbnQtYm94XCIsIFwiZGV2aWNlLXBpeGVsLWNvbnRlbnQtYm94XCJcclxufTtcclxuXHJcbi8vIC8vIERlY2xhcmUgUmVzaXplb2JzZXJ2ZXJcclxuLy8gZGVjbGFyZSBjbGFzcyBSZXNpemVPYnNlcnZlcntcclxuLy8gICBjb25zdHJ1Y3RvcihjYWxsYmFjazogUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayk7XHJcbi8vICAgb2JzZXJ2ZTogKGVsOkVsZW1lbnQsb3B0czogUmVzaXplT2JzZXJ2ZXJCb3hPcHRpb25zIHwgbnVsbCk9PnZvaWQ7XHJcbi8vICAgdW5vYnNlcnZlOiAoZWw6RWxlbWVudCk9PnZvaWQ7XHJcbi8vICAgZGlzY29ubmVjdDogKCk9PnZvaWQ7XHJcbi8vIH1cclxuXHJcbi8qXHJcbiAqIENvbnRhaW5lciBjb21wb25lbnQgZm9yIGF1ZGlvIGRpc3BsYXkuXHJcbiAqIFRoZSBkaXNwbGF5IGVsZW1lbnRzIGFyZSBjaGlsZHJlbiBvZiBhIHZpcnR1YWwgY2FudmFzLiBUaGUgdmlydHVhbCBjYW52YXMgbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBoaWdoIHpvb20gZmFjdG9ycyB3aXRoIHZlcnkgd2lkZSB2aXJ0dWFsIGF1ZGlvIGRpc3BsYXlzLlxyXG4gKiBPbmx5IHRoZSB2aXNpYmxlIHBhcnQgb2YgdGhlIHZpcnR1YWwgY2FudmFzIGlzIGltcGxlbWVudGVkIGFzIGEgYnJvd3NlciBjYW52YXMgYW5kIHRoZXJlZm9yZSBjb25zdW1pbmcgbWVtb3J5LlxyXG4gKiBUaGUgdmlzaWJsZSBwYXJ0IGhhcyB0aGUgc2FtZSB3aWR0aCBhcyB0aGUgdmlld3BvcnQgb2YgdGhlIHNjcm9sbCBwYW5lIHBhcmVudC5cclxuICogVGhlIHZpcnR1YWwgY2FudmFzIGl0c2VsZiBpcyBpbXBsZW1lbnRlZCBhcyBhIEhUTUwgZGl2IGVsZW1lbnQuXHJcbiAqIFRoZSBsYXlvdXQgb2YgdGhlIGNvbXBvbmVudCBpcyB1cGRhdGVkIG9uIHJlc2l6ZSBvZiB0aGUgcGFyZW50IG9yIGNoYW5nZXMgb2YgdGhlIHpvb20gZmFjdG9yLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGlvJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAjdmlydHVhbENhbnZhcz5cclxuICAgIDxjYW52YXMgI2RpdmlkZXIgKG1vdXNlZG93bik9XCJtb3VzZWRvd24oJGV2ZW50KVwiIChtb3VzZW92ZXIpPVwibW91c2VvdmVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKCRldmVudClcIiBoZWlnaHQ9XCIxMFwiPjwvY2FudmFzPlxyXG4gICAgPGF1ZGlvLXNpZ25hbCBbcG9pbnRlclBvc2l0aW9uXT1cInBvaW50ZXJcIiBbc2VsZWN0aW5nXT1cInNlbGVjdGluZ1wiIFtzZWxlY3Rpb25dPVwic2VsZWN0aW9uXCIgKHBvaW50ZXJQb3NpdGlvbkV2ZW50RW1pdHRlcik9XCJwb2ludGVyUG9zaXRpb25DaGFuZ2VkKCRldmVudClcIiAoc2VsZWN0aW5nRXZlbnRFbWl0dGVyKT1cInNlbGVjdGluZ0NoYW5nZWQoJGV2ZW50KVwiIChzZWxlY3RlZEV2ZW50RW1pdHRlcik9XCJzZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2F1ZGlvLXNpZ25hbD5cclxuICAgIDxhdWRpby1zb25hZ3JhbSBbcG9pbnRlclBvc2l0aW9uXT1cInBvaW50ZXJcIiBbc2VsZWN0aW5nXT1cInNlbGVjdGluZ1wiIFtzZWxlY3Rpb25dPVwic2VsZWN0aW9uXCIgKHBvaW50ZXJQb3NpdGlvbkV2ZW50RW1pdHRlcik9XCJwb2ludGVyUG9zaXRpb25DaGFuZ2VkKCRldmVudClcIiAoc2VsZWN0aW5nRXZlbnRFbWl0dGVyKT1cInNlbGVjdGluZ0NoYW5nZWQoJGV2ZW50KVwiIChzZWxlY3RlZEV2ZW50RW1pdHRlcik9XCJzZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2F1ZGlvLXNvbmFncmFtPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgZGl2IHtcclxuXHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBUT0RPIGNvbnRhaW5lciBkaXYgcG9zaXRpb24gbXVzdCBub3QgYmUgJ3N0YXRpYycgKGRlZmF1bHQpIHRvIGFjdCBhcyByZWZlcmVuY2UgZm9yIHRoZSBjYW52YXNlcyAqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfWAsIGBjYW52YXN7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHpJbmRleDogMTtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICB9YCwgYGF1ZGlvLXNpZ25hbCB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgekluZGV4OiAxO1xyXG4gICAgdHJhbnNmb3JtOiBub25lO1xyXG4gIH1gLCBgYXVkaW8tc29uYWdyYW0ge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHpJbmRleDogMTtcclxuICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0NsaXBVSUNvbnRhaW5lciBleHRlbmRzIEJhc2ljQXVkaW9DYW52YXNMYXllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0e1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBESVZJREVSX1BJWEVMX1NJWkUgPSAxMDtcclxuXHJcbiAgcGFyZW50RTogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIC8vIERpdmlkZXIgY2FudmFzXHJcbiAgQFZpZXdDaGlsZCgnZGl2aWRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGNhbnZhc1JlZiE6IEVsZW1lbnRSZWY7XHJcbiAgZGMhOiBIVE1MQ2FudmFzRWxlbWVudDtcclxuXHJcbiAgLy8gVmlydHVhbCBjb250YWluZXJcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQ2FudmFzJywgeyBzdGF0aWM6IHRydWUgfSkgY2VSZWYhOiBFbGVtZW50UmVmO1xyXG4gIGNlITogSFRNTERpdkVsZW1lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQXVkaW9TaWduYWwsIHsgc3RhdGljOiB0cnVlIH0pIGFzITogQXVkaW9TaWduYWw7XHJcbiAgQFZpZXdDaGlsZChTb25hZ3JhbSwgeyBzdGF0aWM6IHRydWUgfSkgc28hOiBTb25hZ3JhbTtcclxuXHJcbiAgcHJpdmF0ZSBfYXVkaW9DbGlwOkF1ZGlvQ2xpcCB8IG51bGw9bnVsbDtcclxuICBwb2ludGVyOiBNYXJrZXJ8bnVsbD1udWxsO1xyXG4gIHNlbGVjdGluZzogU2VsZWN0aW9ufG51bGw9bnVsbDtcclxuICBzZWxlY3Rpb246IFNlbGVjdGlvbnxudWxsPW51bGw7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uPigpO1xyXG4gIHByaXZhdGUgX3BsYXlGcmFtZVBvc2l0aW9uOiBudW1iZXJ8bnVsbD1udWxsO1xyXG4gIHByaXZhdGUgZHJhZ1N0YXJ0TW91c2VZOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGRyYWdTdGFydFk6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgZGl2aWRlclBvc2l0aW9uID0gMC41O1xyXG5cclxuICB1c2VyQWN0aW9uPWZhbHNlO1xyXG5cclxuICBwcml2YXRlIF94Wm9vbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7IC8vIHBpeGVscyBwZXIgc2Vjb25kXHJcblxyXG4gIGdldCB4Wm9vbSgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl94Wm9vbTtcclxuICB9XHJcblxyXG4gIHNldCB4Wm9vbSh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xyXG4gICAgdGhpcy51c2VyQWN0aW9uPXRydWU7XHJcbiAgICB0aGlzLl94Wm9vbSA9IHZhbHVlO1xyXG4gICAgdGhpcy5sYXlvdXQoKVxyXG4gICAgdGhpcy51c2VyQWN0aW9uPWZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8gaWYgdHJ1ZSB0aGUgY29tcGxldGUgYXVkaW8gZmlsZSBpcyBzaG93biwgdGhlIGRpc3BsYXkgZml0cyB0byB0aGUgdmlzaWJsZSBwYW5lbCwgdGhlIHgtem9vbSBmYWN0b3IgaXMgdmFyaWFibGUsIHRoaXMgaXMgdGhlIGRlZmF1bHRcclxuICBwcml2YXRlIF9maXhGaXRUb1BhbmVsID0gdHJ1ZTtcclxuXHJcbiAgc2V0IGZpeEZpdFRvUGFuZWwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2ZpeEZpdFRvUGFuZWwgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAvLyB3ZSBkb24ndCBuZWVkICBjbGlwIGJvdW5kc1xyXG4gICAgICB0aGlzLmJvdW5kcz1udWxsO1xyXG4gICAgICB0aGlzLl94Wm9vbSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBob2xkIGN1cnJlbnQgem9vbSB2YWx1ZVxyXG4gICAgICAvL3RoaXMuX3hab29tPXRoaXMuY2Uub2Zmc2V0V2lkdGgvdGhpcy5fYXVkaW9EYXRhLmR1cmF0aW9uO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXlvdXQoKVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKClcclxuICAgIHRoaXMucGFyZW50RSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2UgPSB0aGlzLmNlUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLmRjID0gdGhpcy5jYW52YXNSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICBsZXQgaGVpZ2h0TGlzdGVuZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXJzOiBBcnJheTxNdXRhdGlvblJlY29yZD4sIG1vOiBNdXRhdGlvbk9ic2VydmVyKSA9PiB7XHJcblxyXG4gICAgICBsZXQgbGF5b3V0PWZhbHNlO1xyXG4gICAgICBtcnMuZm9yRWFjaCgobXI6IE11dGF0aW9uUmVjb3JkKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnVzZXJBY3Rpb24gJiYgJ2F0dHJpYnV0ZXMnID09PSBtci50eXBlICYmICgnY2xhc3MnID09PSBtci5hdHRyaWJ1dGVOYW1lIHx8ICdzdHlsZScgPT09IG1yLmF0dHJpYnV0ZU5hbWUpKSB7XHJcbiAgICAgICAgICBsYXlvdXQ9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZihsYXlvdXQpe1xyXG4gICAgICAgIC8vIHJlLWxheW91dCByZXF1aXJlZFxyXG4gICAgICAgIHRoaXMubGF5b3V0KGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaGVpZ2h0TGlzdGVuZXIub2JzZXJ2ZSh0aGlzLmNlLCB7YXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7XHJcbiAgICBoZWlnaHRMaXN0ZW5lci5vYnNlcnZlKHRoaXMuZGMsIHthdHRyaWJ1dGVzOiB0cnVlLCBjaGlsZExpc3Q6IHRydWUsIGNoYXJhY3RlckRhdGE6IHRydWV9KTtcclxuXHJcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMsb2JzKSA9PiB7XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJSZXNpemUgb2JzZXJ2ZWQ6XCIpO1xyXG4gICAgICBlbnRyaWVzLmZvckVhY2goKGUpPT57XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhlLmNvbnRlbnRSZWN0LndpZHRoK1wieFwiK2UuY29udGVudFJlY3QuaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNlKTtcclxuXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBtb3VzZW92ZXIobWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZGl2aWRlckN1cnNvclBvc2l0aW9uKG1lLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIG1vdXNlbGVhdmUobWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZGl2aWRlckN1cnNvclBvc2l0aW9uKG1lLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBtb3VzZWRvd24obWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZHJhZ1N0YXJ0TW91c2VZID0gbWUuY2xpZW50WTtcclxuICAgIHRoaXMuZHJhZ1N0YXJ0WSA9IHRoaXMuZGMub2Zmc2V0VG9wO1xyXG4gICAgdGhpcy5kcmFnU3RhcnRNb3VzZVkgPSBtZS5jbGllbnRZO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25Nb3VzZXVwKG1lOiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kcmFnU3RhcnRZICE9IG51bGwpIHtcclxuICAgICAgdGhpcy51c2VyQWN0aW9uPXRydWU7XHJcbiAgICAgIHRoaXMuZGl2aWRlckRyYWcobWUpO1xyXG4gICAgICB0aGlzLmxheW91dChmYWxzZSk7XHJcbiAgICAgIHRoaXMuZHJhZ1N0YXJ0WSA9IG51bGw7XHJcbiAgICAgIHRoaXMudXNlckFjdGlvbj1mYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXHJcbiAgb25Nb3VzZW1vdmUobWU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRyYWdTdGFydFkgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnVzZXJBY3Rpb249dHJ1ZTtcclxuICAgICAgdGhpcy5kaXZpZGVyRHJhZyhtZSk7XHJcbiAgICAgIHRoaXMubGF5b3V0U2NhbGVkKCk7XHJcbiAgICAgIHRoaXMudXNlckFjdGlvbj10cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9pbnRlclBvc2l0aW9uQ2hhbmdlZChwcDpNYXJrZXIpe1xyXG4gICAgdGhpcy5wb2ludGVyPXBwXHJcbiAgfVxyXG5cclxuICBzZWxlY3RpbmdDaGFuZ2VkKHM6U2VsZWN0aW9ufCBudWxsKXtcclxuICAgIHRoaXMuc2VsZWN0aW5nPXNcclxuICB9XHJcblxyXG4gIHNlbGVjdGlvbkNoYW5nZWQoczpTZWxlY3Rpb24pe1xyXG4gICAgdGhpcy5zZWxlY3Rpb249c1xyXG4gICAgaWYodGhpcy5fYXVkaW9DbGlwKXtcclxuICAgICAgdGhpcy5fYXVkaW9DbGlwLnNlbGVjdGlvbj1zXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGlvbkV2ZW50RW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0aW9uKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYW52YXNNb3VzZVBvcyhjOiBIVE1MQ2FudmFzRWxlbWVudCwgZTogTW91c2VFdmVudCk6IFBvaW50IHtcclxuICAgIGNvbnN0IGNyID0gYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHggPSBlLnggLSBjci5sZWZ0O1xyXG4gICAgY29uc3QgeSA9IGUueSAtIGNyLnRvcDtcclxuICAgIHJldHVybiBuZXcgUG9pbnQoeCx5KTtcclxuICB9XHJcblxyXG4gIGRpdmlkZXJDdXJzb3JQb3NpdGlvbihlOiBNb3VzZUV2ZW50LCBzaG93OiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5kYykge1xyXG5cclxuICAgICAgY29uc3QgdyA9IHRoaXMuZGMud2lkdGg7XHJcbiAgICAgIGNvbnN0IGggPSB0aGlzLmRjLmhlaWdodDtcclxuICAgICAgY29uc3QgZyA9IHRoaXMuZGMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHJcbiAgICAgIGNvbnN0IHBwID0gdGhpcy5jYW52YXNNb3VzZVBvcyh0aGlzLmRjLCBlKTtcclxuICAgICAgY29uc3Qgb2ZmWCA9IGUub2Zmc2V0WCAtIHRoaXMuZGMub2Zmc2V0TGVmdDtcclxuICAgICAgY29uc3Qgb2ZmWSA9IGUub2Zmc2V0WSAtIHRoaXMuZGMub2Zmc2V0VG9wO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRpdmlkZXJEcmFnKGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRjICYmIHRoaXMuZHJhZ1N0YXJ0TW91c2VZICYmIHRoaXMuZHJhZ1N0YXJ0WSkge1xyXG5cclxuICAgICAgY29uc3QgZHJhZ09mZnNldCA9IGUuY2xpZW50WSAtIHRoaXMuZHJhZ1N0YXJ0TW91c2VZO1xyXG4gICAgICBjb25zdCBjZUhlaWdodCA9IHRoaXMuY2Uub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgICAgbGV0IG5ld1RvcCA9ICh0aGlzLmRyYWdTdGFydFkgKyBkcmFnT2Zmc2V0KTtcclxuICAgICAgaWYgKG5ld1RvcCA8IDApIHtcclxuICAgICAgICBuZXdUb3AgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChuZXdUb3AgPiBjZUhlaWdodCAtIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRSkge1xyXG4gICAgICAgIG5ld1RvcCA9IGNlSGVpZ2h0IC0gQXVkaW9DbGlwVUlDb250YWluZXIuRElWSURFUl9QSVhFTF9TSVpFO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGMuc3R5bGUudG9wID0gbmV3VG9wLnRvU3RyaW5nKCkgKyAncHgnO1xyXG4gICAgICB0aGlzLmRpdmlkZXJQb3NpdGlvbiA9ICh0aGlzLmRjLm9mZnNldFRvcCArIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRSAvIDIpIC8gY2VIZWlnaHQ7XHJcbiAgICAgIGlmICh0aGlzLmRpdmlkZXJQb3NpdGlvbiA+IDEuMCkge1xyXG4gICAgICAgIHRoaXMuZGl2aWRlclBvc2l0aW9uID0gMS4wO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpdmlkZXJQb3NpdGlvbiA8IDAuMCkge1xyXG4gICAgICAgIHRoaXMuZGl2aWRlclBvc2l0aW9uID0gMC4wO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJhd0RpdmlkZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBkcmF3RGl2aWRlcigpIHtcclxuICAgIGNvbnN0IHcgPSB0aGlzLmRjLndpZHRoO1xyXG4gICAgY29uc3QgaCA9IHRoaXMuZGMuaGVpZ2h0O1xyXG4gICAgY29uc3QgZyA9IHRoaXMuZGMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgIGlmIChnICYmIHc+MTAgJiYgaD49MSkge1xyXG4gICAgICBnLmZpbGxTdHlsZSA9ICd3aGl0ZSc7XHJcbiAgICAgIGcuZmlsbFJlY3QoMCwgMCwgdywgaCk7XHJcbiAgICAgIGcuZmlsbFN0eWxlID0gJ2JsYWNrJztcclxuICAgICAgZy5maWxsUmVjdCg1LCA1LCB3IC0gMTAsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xpcEJvdW5kcyhjbGlwQm91bmRzOiBSZWN0YW5nbGUpIHtcclxuICAgIHRoaXMuYm91bmRzID0gY2xpcEJvdW5kcztcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBjdXJyZW50WFpvb20oKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBsZXQgeHogPSB0aGlzLl94Wm9vbTtcclxuICAgIGlmICh4ej09bnVsbCAmJiB0aGlzLl9hdWRpb0RhdGEpIHtcclxuICAgICAgbGV0IG93ID0gdGhpcy5jZS5vZmZzZXRXaWR0aDtcclxuICAgICAgaWYgKG93IDwgMSkge1xyXG4gICAgICAgIC8vIGF0IGxlYXN0IG9uZSBwaXhlbCB3aWR0aCB0byBhdm9pZCB4LXpvb20gemVybyB2YWx1ZXNcclxuICAgICAgICBvdyA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgeHogPSBvdyAvIHRoaXMuX2F1ZGlvRGF0YS5kdXJhdGlvbjtcclxuICAgIH1cclxuICAgIHJldHVybiB4ejtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xheW91dChjbGVhcjogYm9vbGVhbiwgcmVkcmF3OiBib29sZWFuKSB7XHJcbiAgICBsZXQgY2VCY3IgPSB0aGlzLmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIGNvbnN0IGNlQmNySW50VyA9IE1hdGguZmxvb3IoY2VCY3Iud2lkdGgpO1xyXG4gICAgY29uc3QgY2VCY3JJbnRIID0gTWF0aC5mbG9vcihjZUJjci5oZWlnaHQpO1xyXG5cclxuICAgIC8vIGhlaWdodCBhdmFpbGFibGUgZm9yIHBsdWdpbnMgKGF1ZGlvc2lnbmFsIGFuZCBzb25hZ3JhbSlcclxuICAgIGxldCBwc0ggPSBjZUJjckludEggLSBBdWRpb0NsaXBVSUNvbnRhaW5lci5ESVZJREVSX1BJWEVMX1NJWkU7XHJcbiAgICBpZiAocHNIIDwgMCkge1xyXG4gICAgICBwc0ggPSAwO1xyXG4gICAgfVxyXG4gICAgLy8gYXVkaW8gc2lnbmFsIGhlaWdodFxyXG4gICAgY29uc3QgYXNIID0gTWF0aC5yb3VuZChwc0ggKiB0aGlzLmRpdmlkZXJQb3NpdGlvbik7XHJcblxyXG4gICAgLy8gc29uYWdyYW0gaGVpZ2h0IChyZXN0OiBhdmFpbGFibGUgaGVpZ2h0IG1pbnVzIGRpdmlkZXIgaGVpZ2h0IG1pbnVzIGF1ZGlvc2lnbmFsIGhlaWdodClcclxuICAgIGxldCBzb0ggPSBjZUJjckludEggLSBBdWRpb0NsaXBVSUNvbnRhaW5lci5ESVZJREVSX1BJWEVMX1NJWkUgLSBhc0g7XHJcbiAgICBpZiAoc29IIDwgMCkge1xyXG4gICAgICBzb0ggPSAwO1xyXG4gICAgfVxyXG5cclxuICAvLyBzb25hZ3JhbSB0b3AgcG9zaXRpb25cclxuICAgIGNvbnN0IHNvVG9wID0gYXNIICsgQXVkaW9DbGlwVUlDb250YWluZXIuRElWSURFUl9QSVhFTF9TSVpFO1xyXG5cclxuICAgIC8vIFZpc2libGUgYm91bmRzXHJcbiAgICAvLyBsZWZ0IHBvc2l0aW9uXHJcbiAgICBsZXQgdmJMZWZ0ID0gMDtcclxuICAgIC8vIHdpZHRoXHJcbiAgICBsZXQgdmJXaWR0aCA9IGNlQmNySW50VztcclxuICAgIGlmICghdGhpcy5fZml4Rml0VG9QYW5lbCAmJiB0aGlzLmJvdW5kcykge1xyXG4gICAgICB2YkxlZnQgPSBNYXRoLnJvdW5kKHRoaXMuYm91bmRzLnBvc2l0aW9uLmxlZnQpO1xyXG4gICAgICB2YldpZHRoID0gTWF0aC5yb3VuZCh0aGlzLmJvdW5kcy5kaW1lbnNpb24ud2lkdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIERpdmlkZXJcclxuICAgIC8vIGxlZnQgcG9zaXRpb25cclxuICAgIGxldCB2YkxlZnRTdHlsID0gdmJMZWZ0ICsgJ3B4JztcclxuICAgIGlmICh0aGlzLmRjLnN0eWxlLmxlZnQgIT0gdmJMZWZ0U3R5bCkge1xyXG4gICAgICB0aGlzLmRjLnN0eWxlLmxlZnQgPSB2YkxlZnRTdHlsO1xyXG4gICAgfVxyXG4gICAgLy8gdG9wIHBvc2l0aW9uXHJcbiAgICBjb25zdCBkVG9wID0gYXNIO1xyXG4gICAgY29uc3QgZFRvcFN0ciA9IGRUb3AgKyAncHgnO1xyXG4gICAgaWYgKHRoaXMuZGMuc3R5bGUudG9wICE9IGRUb3BTdHIpIHtcclxuICAgICAgdGhpcy5kYy5zdHlsZS50b3AgPSBkVG9wU3RyO1xyXG4gICAgfVxyXG4gICAgLy8gd2lkdGhcclxuICAgIGxldCB2YldpZHRoU3R5bGUgPSB2YldpZHRoICsgJ3B4JztcclxuICAgIGlmICh0aGlzLmRjLnN0eWxlLndpZHRoICE9IHZiV2lkdGhTdHlsZSkge1xyXG4gICAgICB0aGlzLmRjLnN0eWxlLndpZHRoID0gdmJXaWR0aFN0eWxlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGMud2lkdGggIT0gdmJXaWR0aCkge1xyXG4gICAgICB0aGlzLmRjLndpZHRoID0gdmJXaWR0aDtcclxuICAgIH1cclxuICAgIC8vIGhlaWdodFxyXG4gICAgaWYodGhpcy5kYy5oZWlnaHQhPUF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRSkge1xyXG4gICAgICB0aGlzLmRjLmhlaWdodCA9IEF1ZGlvQ2xpcFVJQ29udGFpbmVyLkRJVklERVJfUElYRUxfU0laRTtcclxuXHJcbiAgICB9XHJcbiAgICBsZXQgZGl2UGl4ZWxTaXplU3R5bGU9QXVkaW9DbGlwVUlDb250YWluZXIuRElWSURFUl9QSVhFTF9TSVpFLnRvU3RyaW5nKCkgKyAncHgnO1xyXG4gICAgaWYodGhpcy5kYy5zdHlsZS5oZWlnaHQhPWRpdlBpeGVsU2l6ZVN0eWxlKSB7XHJcbiAgICAgIHRoaXMuZGMuc3R5bGUuaGVpZ2h0ID0gZGl2UGl4ZWxTaXplU3R5bGU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcmF3RGl2aWRlcigpO1xyXG5cclxuXHJcbiAgICAvLyBWaXJ0dWFsIGRpbWVuc2lvbiwgb25seSB3aWR0aCBpcyB1c2VkXHJcbiAgICBsZXQgdmlydHVhbERpbSA9IG5ldyBEaW1lbnNpb24oY2VCY3JJbnRXLCAwKVxyXG5cclxuICAgIC8vIFZpc2libGUgYm91bmRzIG9mIGNvbnRhaW5lclxyXG4gICAgbGV0IGJyID0gbmV3IFJlY3RhbmdsZShuZXcgUG9zaXRpb24odmJMZWZ0LCAwKSwgbmV3IERpbWVuc2lvbih2YldpZHRoLCBjZUJjckludEgpKTtcclxuXHJcbiAgICAvLyBTZXQgY29udGFpbmVyIGJvdW5kc1xyXG4gICAgdGhpcy5sYXlvdXRCb3VuZHMoYnIsIHZpcnR1YWxEaW0sIGZhbHNlKTtcclxuXHJcbiAgICAvLyBWaXNpYmxlIGJvdW5kcyBvZiBhdWRpb3NpZ25hbFxyXG4gICAgbGV0IGFzUiA9IG5ldyBSZWN0YW5nbGUobmV3IFBvc2l0aW9uKHZiTGVmdCwgMCksIG5ldyBEaW1lbnNpb24odmJXaWR0aCwgYXNIKSk7XHJcblxyXG4gICAgLy8gU2V0IGF1ZGlvc2lnbmFsIGJvdW5kc1xyXG4gICAgdGhpcy5hcy5sYXlvdXRCb3VuZHMoYXNSLCB2aXJ0dWFsRGltLCByZWRyYXcsIGNsZWFyKTtcclxuXHJcbiAgICAvLyBWaXNpYmxlIGJvdW5kcyBvZiBzb25hZ3JhbVxyXG4gICAgbGV0IHNvUiA9IG5ldyBSZWN0YW5nbGUobmV3IFBvc2l0aW9uKHZiTGVmdCwgc29Ub3ApLCBuZXcgRGltZW5zaW9uKHZiV2lkdGgsIHNvSCkpO1xyXG5cclxuICAgIC8vIFNldCBzb25hZ3JhbSBib3VuZHNcclxuICAgIHRoaXMuc28ubGF5b3V0Qm91bmRzKHNvUiwgdmlydHVhbERpbSwgcmVkcmF3LCBjbGVhcik7XHJcbiAgfVxyXG5cclxuICBsYXlvdXRTY2FsZWQoKSB7XHJcbiAgICB0aGlzLl9sYXlvdXQoZmFsc2UsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGxheW91dChjbGVhcj10cnVlKSB7XHJcblxyXG4gICAgaWYodGhpcy5jZSAmJiB0aGlzLmRjKSB7XHJcbiAgICAgIGNvbnN0IGNsaWVudFc9dGhpcy5jZS5jbGllbnRXaWR0aDtcclxuICAgICAgaWYodGhpcy5fYXVkaW9EYXRhKXtcclxuICAgICAgICBpZih0aGlzLl9maXhGaXRUb1BhbmVsKSB7XHJcbiAgICAgICAgICAvLyBTZXQgdGhlIHZpcnR1YWwgY2FudmFzIHdpZHRoIHRvIHRoZSB2aXNpYmxlIHdpZHRoXHJcbiAgICAgICAgICBpZih0aGlzLmNlLnN0eWxlLndpZHRoIT0nMTAwJScpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcInNldCB3aWR0aCB0byAxMDAlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmNlLnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaWYgKHRoaXMuX3hab29tKSB7XHJcbiAgICAgICAgICAgIC8vIFNldCB0aGUgdmlydHVhbCBjYW52YXMgd2lkdGggYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUgdXNlciBzZWxlY3RlZCB4Wm9vbSB2YWx1ZVxyXG4gICAgICAgICAgICBjb25zdCBuZXdDbFcgPSBNYXRoLnJvdW5kKCB0aGlzLl94Wm9vbSp0aGlzLl9hdWRpb0RhdGEuZHVyYXRpb24gKTtcclxuICAgICAgICAgICAgdGhpcy5jZS5zdHlsZS53aWR0aCA9IG5ld0NsVyArICdweCc7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTZXQgdGhlIHZpcnR1YWwgY2FudmFzIHdpZHRoIHRvIHRoZSB2aXNpYmxlIHdpZHRoIG9ubHlcclxuICAgICAgICAgICAgdGhpcy5jZS5zdHlsZS53aWR0aCA9IGNsaWVudFcgKyAncHgnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9sYXlvdXQoY2xlYXIsdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBhdWRpb0RhdGEoYXVkaW9EYXRhOiBBdWRpb0J1ZmZlciB8IG51bGwpIHtcclxuICAgIHRoaXMuX2F1ZGlvQ2xpcD1udWxsXHJcbiAgICB0aGlzLl9hdWRpb0RhdGE9YXVkaW9EYXRhO1xyXG4gICAgdGhpcy5hcy5zZXREYXRhKGF1ZGlvRGF0YSk7XHJcbiAgICB0aGlzLnNvLnNldERhdGEoYXVkaW9EYXRhKTtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9EYXRhKCk6QXVkaW9CdWZmZXJ8bnVsbHtcclxuICAgIHJldHVybiB0aGlzLl9hdWRpb0RhdGFcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGF1ZGlvQ2xpcChhdWRpb0NsaXA6IEF1ZGlvQ2xpcCB8IG51bGwpIHtcclxuICAgIHRoaXMuX2F1ZGlvQ2xpcD1hdWRpb0NsaXBcclxuICAgICAgbGV0IGF1ZGlvRGF0YTpBdWRpb0J1ZmZlcnxudWxsPW51bGw7XHJcbiAgICBsZXQgc2VsOlNlbGVjdGlvbnxudWxsPW51bGw7XHJcbiAgICAgIGlmKGF1ZGlvQ2xpcCkge1xyXG4gICAgICAgIGF1ZGlvRGF0YSA9IGF1ZGlvQ2xpcC5idWZmZXI7XHJcbiAgICAgICAgaWYgKHRoaXMuX2F1ZGlvQ2xpcCkge1xyXG4gICAgICAgICAgdGhpcy5fYXVkaW9DbGlwLmFkZFNlbGVjdGlvbk9ic2VydmVyKChjbGlwKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gY2xpcC5zZWxlY3Rpb25cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZWw9YXVkaW9DbGlwLnNlbGVjdGlvbjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9hdWRpb0RhdGEgPSBhdWRpb0RhdGE7XHJcbiAgICAgIHRoaXMuYXMuc2V0RGF0YSh0aGlzLl9hdWRpb0RhdGEpO1xyXG4gICAgICB0aGlzLnNvLnNldERhdGEodGhpcy5fYXVkaW9EYXRhKTtcclxuICAgICAgdGhpcy5zZWxlY3Rpbmc9bnVsbFxyXG4gICAgICB0aGlzLnNlbGVjdGlvbj1zZWxcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGxheUZyYW1lUG9zaXRpb24oKTogbnVtYmVyIHxudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGF5RnJhbWVQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIHNldCBwbGF5RnJhbWVQb3NpdGlvbihwbGF5RnJhbWVQb3NpdGlvbjogbnVtYmVyfG51bGwpIHtcclxuICAgIHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgICB0aGlzLmFzLnBsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgICB0aGlzLnNvLnBsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
|
|
@@ -281,14 +281,14 @@ export class LevelBar {
|
|
|
281
281
|
}
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
|
-
LevelBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
285
|
-
LevelBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
284
|
+
LevelBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: LevelBar, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
285
|
+
LevelBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: LevelBar, selector: "audio-levelbar", inputs: { streamingMode: "streamingMode", displayLevelInfos: "displayLevelInfos" }, host: { listeners: { "scroll": "onScroll($event)", "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "virtualCanvasRef", first: true, predicate: ["virtualCanvas"], descendants: true, static: true }, { propertyName: "liveLevelCanvasRef", first: true, predicate: ["levelbar"], descendants: true, static: true }, { propertyName: "markerCanvasRef", first: true, predicate: ["markerCanvas"], descendants: true, static: true }], ngImport: i0, template: `
|
|
286
286
|
<div #virtualCanvas>
|
|
287
287
|
<canvas #levelbar></canvas>
|
|
288
288
|
<canvas #markerCanvas></canvas>
|
|
289
289
|
</div>
|
|
290
290
|
`, isInline: true, styles: [":host{width:100%;background:darkgray;box-sizing:border-box;height:100%;position:relative;overflow-x:scroll;overflow-y:auto}\n", "div{top:0;left:0;width:100%;height:100%;box-sizing:border-box}\n", "canvas{top:0;left:0;width:100%;height:100%;position:absolute}\n"] });
|
|
291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: LevelBar, decorators: [{
|
|
292
292
|
type: Component,
|
|
293
293
|
args: [{
|
|
294
294
|
selector: 'audio-levelbar',
|
|
@@ -343,4 +343,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
343
343
|
type: HostListener,
|
|
344
344
|
args: ['window:resize', ['$event']]
|
|
345
345
|
}] } });
|
|
346
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZWxldmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL3VpL2xpdmVsZXZlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1DLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQTs7QUFHckgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFlBQVksR0FBQyxDQUFDLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFDLENBQUMsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBc0N4QyxNQUFNLE9BQU8sUUFBUTtJQWlCbkIsWUFBb0IsR0FBZSxFQUFVLGlCQUFvQztRQUE3RCxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVBqRixjQUFTLEdBQUcsWUFBWSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFzQixJQUFJLENBQUM7UUFDNUMsdUJBQWtCLEdBQWMsSUFBSSxDQUFDO1FBRTdDLGdCQUFXLEdBQUcscUJBQXFCLENBQUM7UUFHbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztJQUM3QyxDQUFDO0lB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LFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXHJcbmltcG9ydCB7TGV2ZWxJbmZvLCBMZXZlbEluZm9zLCBMZXZlbExpc3RlbmVyfSBmcm9tIFwiLi4vZHNwL2xldmVsX21lYXN1cmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1dBUk5fREJfTEVWRUwgPSAtMjtcclxuZXhwb3J0IGNvbnN0IE1JTl9EQl9MRVZFTCA9IC02MC4wO1xyXG5leHBvcnQgY29uc3QgQ09OU0lERVJFRF9TSUxFTkNFX0RCX0xFVkVMID0gTUlOX0RCX0xFVkVMKjI7XHJcbmV4cG9ydCBjb25zdCBMSU5FX1dJRFRIID0gMjtcclxuZXhwb3J0IGNvbnN0IExJTkVfRElTVEFOQ0UgPSAyO1xyXG5leHBvcnQgY29uc3QgTEVWRUxfSU5ESUNBVE9SX0hFSUdIVD0zO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9WRVJGTE9XX1RIUkVTSE9MRCA9IDAuMjU7XHJcbmV4cG9ydCBjb25zdCBPVkVSRkxPV19JTkNSX0ZBQ1RPUiA9IDAuNTtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhdWRpby1sZXZlbGJhcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI3ZpcnR1YWxDYW52YXM+XHJcbiAgICAgIDxjYW52YXMgI2xldmVsYmFyPjwvY2FudmFzPlxyXG4gICAgICA8Y2FudmFzICNtYXJrZXJDYW52YXM+PC9jYW52YXM+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIH1gLCBgZGl2IHtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICAvKnBvc2l0aW9uOiBhYnNvbHV0ZTsqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9YCwgYGNhbnZhcyB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgfWBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGV2ZWxCYXIgaW1wbGVtZW50cyBMZXZlbExpc3RlbmVyLEFmdGVyVmlld0luaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQ2FudmFzJywgeyBzdGF0aWM6IHRydWUgfSkgdmlydHVhbENhbnZhc1JlZiE6IEVsZW1lbnRSZWY7XHJcbiAgdmlydHVhbENhbnZhcyE6IEhUTUxEaXZFbGVtZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2xldmVsYmFyJywgeyBzdGF0aWM6IHRydWUgfSkgbGl2ZUxldmVsQ2FudmFzUmVmITogRWxlbWVudFJlZjtcclxuICBsaXZlTGV2ZWxDYW52YXMhOiBIVE1MQ2FudmFzRWxlbWVudDtcclxuICBAVmlld0NoaWxkKCdtYXJrZXJDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXJrZXJDYW52YXNSZWYhOiBFbGVtZW50UmVmO1xyXG4gIG1hcmtlckNhbnZhcyE6IEhUTUxDYW52YXNFbGVtZW50O1xyXG4gIGNlITogSFRNTERpdkVsZW1lbnQ7XHJcbiAgZGJWYWx1ZXM6IEFycmF5PEFycmF5PG51bWJlcj4+O1xyXG4gIHBlYWtEYkx2bCA9IE1JTl9EQl9MRVZFTDtcclxuICBwcml2YXRlIF9zdHJlYW1pbmdNb2RlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3RhdGljTGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX3BsYXlGcmFtZVBvc2l0aW9uOiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuICB3YXJuREJMZXZlbCA9IERFRkFVTFRfV0FSTl9EQl9MRVZFTDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLmRiVmFsdWVzID0gbmV3IEFycmF5PEFycmF5PG51bWJlcj4+KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNlID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubGl2ZUxldmVsQ2FudmFzID0gdGhpcy5saXZlTGV2ZWxDYW52YXNSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubWFya2VyQ2FudmFzID0gdGhpcy5tYXJrZXJDYW52YXNSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubWFya2VyQ2FudmFzLnN0eWxlLnpJbmRleCA9ICc0JztcclxuICAgIHRoaXMudmlydHVhbENhbnZhcyA9IHRoaXMudmlydHVhbENhbnZhc1JlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5sYXlvdXQoKTtcclxuICAgIHRoaXMuZHJhd0FsbCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Njcm9sbCcsIFsnJGV2ZW50J10pXHJcbiAgb25TY3JvbGwoc2U6IEV2ZW50KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0UG9zaXRpb24oKTtcclxuICAgICAgICAgIHRoaXMuZHJhd0FsbCgpO1xyXG4gICAgICAgICAgdGhpcy5kcmF3UGxheVBvc2l0aW9uKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWaWV3cG9ydFBvc2l0aW9uKCl7XHJcbiAgICAvLyBNb3ZlIGNhbnZhc2VzIHRvIHZpc2libGUgdmlld3BvcnQgcG9zaXRpb25cclxuICAgIGxldCB2aWV3UG9ydFN0eWxlTGVmdD10aGlzLmNlLnNjcm9sbExlZnQgKyAncHgnO1xyXG4gICAgdGhpcy5saXZlTGV2ZWxDYW52YXMuc3R5bGUubGVmdCA9IHZpZXdQb3J0U3R5bGVMZWZ0O1xyXG4gICAgdGhpcy5tYXJrZXJDYW52YXMuc3R5bGUubGVmdCA9IHZpZXdQb3J0U3R5bGVMZWZ0O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgc3RyZWFtaW5nTW9kZShzdHJlYW1pbmdNb2RlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5fc3RyZWFtaW5nTW9kZSAhPT0gc3RyZWFtaW5nTW9kZSkge1xyXG4gICAgICB0aGlzLl9zdHJlYW1pbmdNb2RlID0gc3RyZWFtaW5nTW9kZTtcclxuICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxheW91dFN0YXRpYygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGlzcGxheUxldmVsSW5mb3MobGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwpIHtcclxuICAgIHRoaXMuX3N0YXRpY0xldmVsSW5mb3MgPSBsZXZlbEluZm9zO1xyXG4gICAgaWYgKGxldmVsSW5mb3MpIHtcclxuXHJcbiAgICAgIHRoaXMuZGJWYWx1ZXMgPSBsZXZlbEluZm9zLmJ1ZmZlckxldmVsSW5mb3MubWFwKChsaSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBsaS5wb3dlckxldmVsc0RCKClcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRiVmFsdWVzID0gbmV3IEFycmF5PEFycmF5PG51bWJlcj4+KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxheW91dFN0YXRpYygpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGNoYW5uZWxDb3VudChjaGFubmVsQ291bnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHBsYXlGcmFtZVBvc2l0aW9uKHBsYXlGcmFtZVBvc2l0aW9uOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgICB0aGlzLmRyYXdQbGF5UG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCkge1xyXG5cclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICB0aGlzLmRyYXdBbGwoKTtcclxuICB9XHJcblxyXG4gIGxheW91dCgpIHtcclxuXHJcbiAgICAvLyBzZXQgQ2FudmFzIHNpemUgdG8gdmlld3BvcnQgc2l6ZVxyXG4gICAgdGhpcy5saXZlTGV2ZWxDYW52YXMud2lkdGggPSB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy5saXZlTGV2ZWxDYW52YXMuaGVpZ2h0ID0gdGhpcy5jZS5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgdGhpcy5tYXJrZXJDYW52YXMud2lkdGggPSB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy5tYXJrZXJDYW52YXMuaGVpZ2h0ID0gdGhpcy5jZS5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgLy8gYW5kIG1vdmUgdG8gdmlld3BvcnQgcG9zaXRpb25cclxuICAgIHRoaXMudXBkYXRlVmlld3BvcnRQb3NpdGlvbigpO1xyXG5cclxuICAgIHRoaXMuZHJhd0FsbCgpO1xyXG4gICAgdGhpcy5kcmF3UGxheVBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUobGV2ZWxJbmZvczogTGV2ZWxJbmZvKSB7XHJcbiAgICBpZiAodGhpcy5fc3RyZWFtaW5nTW9kZSkge1xyXG4gICAgICBsZXQgZGJWYWxzID0gbGV2ZWxJbmZvcy5wb3dlckxldmVsc0RCKCk7XHJcbiAgICAgIGxldCBwZWFrREJWYWwgPSBsZXZlbEluZm9zLnBvd2VyTGV2ZWxEQigpO1xyXG4gICAgICBpZiAodGhpcy5wZWFrRGJMdmwgPCBwZWFrREJWYWwpIHtcclxuICAgICAgICB0aGlzLnBlYWtEYkx2bCA9IHBlYWtEQlZhbDtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRiVmFsdWVzLnB1c2goZGJWYWxzKTtcclxuICAgICAgbGV0IGkgPSB0aGlzLmRiVmFsdWVzLmxlbmd0aCAtIDE7XHJcbiAgICAgIGxldCB4ID0gaSAqIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCk7XHJcbiAgICAgIHRoaXMuZHJhd1B1c2hWYWx1ZSh4LCBkYlZhbHMpO1xyXG4gICAgICB0aGlzLmNoZWNrV2lkdGgoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0cmVhbUZpbmlzaGVkKCkge1xyXG4gICAgdGhpcy5sYXlvdXRTdGF0aWMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGF5b3V0U3RhdGljKCkge1xyXG5cclxuICAgIGxldCByZXF1aXJlZFdpZHRoID0gTWF0aC5yb3VuZCh0aGlzLmRiVmFsdWVzLmxlbmd0aCAqIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCkpO1xyXG4gICAgaWYgKHRoaXMudmlydHVhbENhbnZhcyAmJiB0aGlzLmNlKSB7XHJcblxyXG4gICAgICB0aGlzLnZpcnR1YWxDYW52YXMuc3R5bGUud2lkdGggPSByZXF1aXJlZFdpZHRoICsgJ3B4JztcclxuICAgICAgdGhpcy5jZS5zY3JvbGxMZWZ0ID0gcmVxdWlyZWRXaWR0aCAtIHRoaXMuY2Uub2Zmc2V0V2lkdGg7XHJcbiAgICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1dpZHRoKCkge1xyXG4gICAgbGV0IHJlcXVpcmVkV2lkdGggPSB0aGlzLmRiVmFsdWVzLmxlbmd0aCAqIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCk7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsQ2FudmFzLm9mZnNldFdpZHRoIC0gcmVxdWlyZWRXaWR0aCA8IHRoaXMuY2Uub2Zmc2V0V2lkdGggKiBPVkVSRkxPV19USFJFU0hPTEQpIHtcclxuICAgICAgbGV0IG5ld1dpZHRoID0gTWF0aC5mbG9vcih0aGlzLnZpcnR1YWxDYW52YXMub2Zmc2V0V2lkdGggKyAodGhpcy5jZS5vZmZzZXRXaWR0aCAqIE9WRVJGTE9XX0lOQ1JfRkFDVE9SKSk7XHJcbiAgICAgIHRoaXMudmlydHVhbENhbnZhcy5zdHlsZS53aWR0aCA9IG5ld1dpZHRoICsgJ3B4JztcclxuICAgICAgdGhpcy5jZS5zY3JvbGxMZWZ0ID0gbmV3V2lkdGggLSB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG5cclxuICAgICAgIC8vIGRvIG5vdCBjYWxsIGxheW91dCBoZXJlIGl0IGlzIHRyaWdnZXJlZCBieSB0aGUgc2Nyb2xsIGV2ZW50XHJcbiAgICAgIC8vdGhpcy5sYXlvdXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5wZWFrRGJMdmwgPSBNSU5fREJfTEVWRUw7XHJcbiAgICB0aGlzLmRiVmFsdWVzID0gbmV3IEFycmF5PEFycmF5PG51bWJlcj4+KCk7XHJcbiAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgdGhpcy5kcmF3QWxsKCk7XHJcbiAgICB0aGlzLmRyYXdQbGF5UG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0xldmVsQmFja2dyb3VuZChnOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIHg6IG51bWJlciwgaDogbnVtYmVyKXtcclxuICAgIGcuc3Ryb2tlU3R5bGUgPSAnYmxhY2snO1xyXG4gICAgZy5maWxsU3R5bGUgPSAnYmxhY2snO1xyXG4gICAgZy5maWxsUmVjdCh4LDAsTElORV9XSURUSCtMSU5FX0RJU1RBTkNFLGgpXHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIGRyYXdMZXZlbExpbmUoZzogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELCB4OiBudW1iZXIsIGg6IG51bWJlciwgZGJWYWw6IG51bWJlcikge1xyXG4gIC8vICAgLy90cmFuc2xhdGUgdG8gdmlld3BvcnRcclxuICAvLyAgIGxldCB4YyA9IHggLSB0aGlzLmNlLnNjcm9sbExlZnQ7XHJcbiAgLy9cclxuICAvLyAgIHRoaXMuZHJhd0xldmVsQmFja2dyb3VuZChnLHhjLGgpO1xyXG4gIC8vICAgZy5saW5lV2lkdGggPSBMSU5FX1dJRFRIO1xyXG4gIC8vICAgaWYgKGRiVmFsID49IHRoaXMud2FybkRCTGV2ZWwpIHtcclxuICAvLyAgICAgZy5zdHJva2VTdHlsZSA9ICdyZWQnO1xyXG4gIC8vICAgICBnLmZpbGxTdHlsZSA9ICdyZWQnO1xyXG4gIC8vXHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBnLnN0cm9rZVN0eWxlID0gJyMwMGM4NTMnO1xyXG4gIC8vICAgICBnLmZpbGxTdHlsZSA9ICcjMDBjODUzJztcclxuICAvLyAgIH1cclxuICAvLyAgIGcuYmVnaW5QYXRoKCk7XHJcbiAgLy8gICBnLm1vdmVUbyh4YywgaCk7XHJcbiAgLy8gICBsZXQgcFZhbCA9ICgoZGJWYWwgLSBNSU5fREJfTEVWRUwpIC8gLU1JTl9EQl9MRVZFTCkgKiBoO1xyXG4gIC8vXHJcbiAgLy8gICBnLmxpbmVUbyh4YywgaCAtIHBWYWwpO1xyXG4gIC8vICAgZy5jbG9zZVBhdGgoKTtcclxuICAvLyAgIGcuc3Ryb2tlKCk7XHJcbiAgLy9cclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0xldmVsTGluZXMoZzogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELCB4OiBudW1iZXIsIGg6IG51bWJlciwgZGJWYWxzOiBBcnJheTxudW1iZXI+KSB7XHJcbiAgICAvL3RyYW5zbGF0ZSB0byB2aWV3cG9ydFxyXG4gICAgbGV0IHhjID0geCAtIHRoaXMuY2Uuc2Nyb2xsTGVmdDtcclxuICAgIHRoaXMuZHJhd0xldmVsQmFja2dyb3VuZChnLHhjLGgpO1xyXG5cclxuICAgIGxldCBjaEggPSBNYXRoLmZsb29yKGggLyBkYlZhbHMubGVuZ3RoKTtcclxuICAgIGcubGluZVdpZHRoID0gTElORV9XSURUSDtcclxuICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCBkYlZhbHMubGVuZ3RoOyBjaCsrKSB7XHJcbiAgICAgIGxldCBkYlZhbCA9IGRiVmFsc1tjaF07XHJcblxyXG4gICAgICBsZXQgeSA9IE1hdGguZmxvb3IoY2ggKiBjaEgpO1xyXG4gICAgICBpZiAoZGJWYWwgPj0gdGhpcy53YXJuREJMZXZlbCkge1xyXG4gICAgICAgIGcuc3Ryb2tlU3R5bGUgPSAncmVkJztcclxuICAgICAgICBnLmZpbGxTdHlsZSA9ICdyZWQnO1xyXG4gICAgICB9IGVsc2UgaWYoZGJWYWwgPCBDT05TSURFUkVEX1NJTEVOQ0VfREJfTEVWRUwpIHtcclxuICAgICAgICBnLnN0cm9rZVN0eWxlPSdncmV5JztcclxuICAgICAgICBnLmZpbGxTdHlsZT0nZ3JleSdcclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgICAgZy5zdHJva2VTdHlsZSA9ICcjMDBjODUzJztcclxuICAgICAgICAgIGcuZmlsbFN0eWxlID0gJyMwMGM4NTMnXHJcbiAgICAgIH1cclxuICAgICAgZy5iZWdpblBhdGgoKTtcclxuICAgICAgZy5tb3ZlVG8oeGMsIHkgKyBjaEgpO1xyXG4gICAgICBnLmxpbmVUbyh4YywgeSArIGNoSCAtIExFVkVMX0lORElDQVRPUl9IRUlHSFQpO1xyXG4gICAgICBsZXQgcG5WYWw9KChkYlZhbCAtIE1JTl9EQl9MRVZFTCkgLyAtTUlOX0RCX0xFVkVMKTtcclxuICAgICAgbGV0IGx2bEluZGljYXRvclNwYWNlPUxFVkVMX0lORElDQVRPUl9IRUlHSFQrTElORV9ESVNUQU5DRTtcclxuICAgICAgbGV0IGxldmVsSD1jaEgtbHZsSW5kaWNhdG9yU3BhY2U7XHJcbiAgICAgIGxldCBwVmFsID0gcG5WYWwgKiBsZXZlbEg7XHJcbiAgICAgIGlmKHBWYWw+bGV2ZWxILTEpe1xyXG4gICAgICAgIHBWYWw9bGV2ZWxILTFcclxuICAgICAgfWVsc2UgaWYocFZhbDwwKXtcclxuICAgICAgICBwVmFsPTBcclxuICAgICAgfVxyXG4gICAgICBnLm1vdmVUbyh4YywgeSArIGNoSCAtIGx2bEluZGljYXRvclNwYWNlICk7XHJcbiAgICAgIGcubGluZVRvKHhjLCB5ICsgY2hIIC0gbHZsSW5kaWNhdG9yU3BhY2UgLSBwVmFsKTtcclxuICAgICAgZy5jbG9zZVBhdGgoKTtcclxuICAgICAgZy5zdHJva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd1B1c2hWYWx1ZSh4OiBudW1iZXIsIGRiVmFsczogQXJyYXk8bnVtYmVyPikge1xyXG5cclxuICAgIGlmICh0aGlzLmxpdmVMZXZlbENhbnZhcykge1xyXG4gICAgICBsZXQgaCA9IHRoaXMubGl2ZUxldmVsQ2FudmFzLmhlaWdodDtcclxuICAgICAgbGV0IGcgPSB0aGlzLmxpdmVMZXZlbENhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7XHJcbiAgICAgIGlmIChnKSB7XHJcbiAgICAgICAgdGhpcy5kcmF3TGV2ZWxMaW5lcyhnLCB4LCBoLCBkYlZhbHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlICBkcmF3QWxsKCkge1xyXG4gICAgaWYgKHRoaXMubGl2ZUxldmVsQ2FudmFzKSB7XHJcbiAgICAgIGxldCB3ID0gdGhpcy5saXZlTGV2ZWxDYW52YXMud2lkdGg7XHJcbiAgICAgIGxldCBoID0gdGhpcy5saXZlTGV2ZWxDYW52YXMuaGVpZ2h0O1xyXG4gICAgICBsZXQgZyA9IHRoaXMubGl2ZUxldmVsQ2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuICAgICAgaWYgKGcpIHtcclxuICAgICAgICAvLyBjbGVhciBjYW52YXNcclxuICAgICAgICBnLmZpbGxTdHlsZSA9ICdncmV5JztcclxuICAgICAgICBnLmZpbGxSZWN0KDAsIDAsIHcsIGgpO1xyXG5cclxuICAgICAgICBnLmxpbmVXaWR0aCA9IExJTkVfV0lEVEg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRiVmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIC8vIGRyYXcgb25seSB2aWV3cG9ydCBwYXJ0OlxyXG5cclxuICAgICAgICAgIC8vIGRyYXcgZnJvbSB4MSB0byB4MlxyXG4gICAgICAgICAgbGV0IHgxID0gdGhpcy5jZS5zY3JvbGxMZWZ0O1xyXG4gICAgICAgICAgbGV0IHgyID0geDEgKyB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG5cclxuICAgICAgICAgIC8vIGNvcnJlc3BvbmRzIHRvIHRoaXMgbGV2ZWwgdmFsdWVzOlxyXG4gICAgICAgICAgbGV0IGkxID0gTWF0aC5mbG9vcih4MSAvIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCkpO1xyXG4gICAgICAgICAgbGV0IGkyID0gTWF0aC5jZWlsKHgyIC8gKExJTkVfRElTVEFOQ0UgKyBMSU5FX1dJRFRIKSk7XHJcbiAgICAgICAgICAvLyBzb21lIHZhbHVlcyBhcm91bmRcclxuICAgICAgICAgIGkxIC09IDI7XHJcbiAgICAgICAgICBpMiArPSAyO1xyXG4gICAgICAgICAgLy8gbGltaXRzXHJcbiAgICAgICAgICBpZiAoaTEgPCAwKSB7XHJcbiAgICAgICAgICAgIGkxID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpMiA+IHRoaXMuZGJWYWx1ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGkyID0gdGhpcy5kYlZhbHVlcy5sZW5ndGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdmFyIGM9MDtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSBpMTsgaSA8IGkyOyBpKyspIHtcclxuICAgICAgICAgICAgICBsZXQgeCA9IGkgKiAoTElORV9ESVNUQU5DRSArIExJTkVfV0lEVEgpO1xyXG4gICAgICAgICAgICAgIGxldCBkYlZhbHMgPSB0aGlzLmRiVmFsdWVzW2ldO1xyXG4gICAgICAgICAgICAgIGlmIChkYlZhbHMpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3TGV2ZWxMaW5lcyhnLCB4LCBoLCBkYlZhbHMpO1xyXG4gICAgICAgICAgICAgICAgICBjKys7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBmcmFtZXNQZXJQaXhlbCgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIC8vIG9uZSBidWZmZXJcclxuICAgIGlmICh0aGlzLl9zdGF0aWNMZXZlbEluZm9zKSB7XHJcbiAgICAgIGxldCBmcmFtZXNQZXJCdWZmZXIgPSB0aGlzLl9zdGF0aWNMZXZlbEluZm9zLmZyYW1lc1BlckJ1ZmZlcigpO1xyXG4gICAgICBsZXQgcGl4ZWxzUGVyQnVmZmVyID0gTElORV9ESVNUQU5DRSArIExJTkVfV0lEVEg7XHJcblxyXG4gICAgICByZXR1cm4gZnJhbWVzUGVyQnVmZmVyIC8gcGl4ZWxzUGVyQnVmZmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBkcmF3UGxheVBvc2l0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubWFya2VyQ2FudmFzKSB7XHJcbiAgICAgIGxldCB3ID0gdGhpcy5tYXJrZXJDYW52YXMud2lkdGg7XHJcbiAgICAgIGxldCBoID0gdGhpcy5tYXJrZXJDYW52YXMuaGVpZ2h0O1xyXG4gICAgICBsZXQgZyA9IHRoaXMubWFya2VyQ2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuICAgICAgaWYgKGcpIHtcclxuICAgICAgICBnLmNsZWFyUmVjdCgwLCAwLCB3LCBoKTtcclxuICAgICAgICBsZXQgZnJhbWVzUGVyUGl4ZWwgPSB0aGlzLmZyYW1lc1BlclBpeGVsKCk7XHJcbiAgICAgICAgaWYgKGZyYW1lc1BlclBpeGVsICYmIHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uKSB7XHJcbiAgICAgICAgICBsZXQgeCA9IHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uIC8gZnJhbWVzUGVyUGl4ZWw7XHJcblxyXG4gICAgICAgICAgLy8gR2V0IHBvc2l0aW9uIGluIHZpZXdwb3J0XHJcbiAgICAgICAgICBsZXQgeGMgPSB4IC0gdGhpcy5jZS5zY3JvbGxMZWZ0O1xyXG4gICAgICAgICAgLy8gT25seSBkcmF3IGlmIGluc2lkZSBtYXJrZXIgKHZpZXdwb3J0KSBjYW52YXNcclxuICAgICAgICAgIGlmKHhjPj0wICYmIHhjPD13KSB7XHJcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gJ3JlZCc7XHJcbiAgICAgICAgICAgIGcuc3Ryb2tlU3R5bGUgPSAncmVkJztcclxuICAgICAgICAgICAgZy5saW5lV2lkdGggPSBMSU5FX1dJRFRIO1xyXG4gICAgICAgICAgICBnLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAvLyBwYWludCBvdmVyIGFsbCBjaGFubmVsc1xyXG4gICAgICAgICAgICBnLm1vdmVUbyh4YywgMCk7XHJcbiAgICAgICAgICAgIGcubGluZVRvKHhjLCBoKTtcclxuICAgICAgICAgICAgZy5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgZy5zdHJva2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
346
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZWxldmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL3VpL2xpdmVsZXZlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1DLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQTs7QUFHckgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFlBQVksR0FBQyxDQUFDLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFDLENBQUMsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBc0N4QyxNQUFNLE9BQU8sUUFBUTtJQWlCbkIsWUFBb0IsR0FBZSxFQUFVLGlCQUFvQztRQUE3RCxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVBqRixjQUFTLEdBQUcsWUFBWSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFzQixJQUFJLENBQUM7UUFDNUMsdUJBQWtCLEdBQWMsSUFBSSxDQUFDO1FBRTdDLGdCQUFXLEdBQUcscUJBQXFCLENBQUM7UUFHbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztJQUM3QyxDQUFDO0lB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LFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXHJcbmltcG9ydCB7TGV2ZWxJbmZvLCBMZXZlbEluZm9zLCBMZXZlbExpc3RlbmVyfSBmcm9tIFwiLi4vZHNwL2xldmVsX21lYXN1cmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1dBUk5fREJfTEVWRUwgPSAtMjtcclxuZXhwb3J0IGNvbnN0IE1JTl9EQl9MRVZFTCA9IC02MC4wO1xyXG5leHBvcnQgY29uc3QgQ09OU0lERVJFRF9TSUxFTkNFX0RCX0xFVkVMID0gTUlOX0RCX0xFVkVMKjI7XHJcbmV4cG9ydCBjb25zdCBMSU5FX1dJRFRIID0gMjtcclxuZXhwb3J0IGNvbnN0IExJTkVfRElTVEFOQ0UgPSAyO1xyXG5leHBvcnQgY29uc3QgTEVWRUxfSU5ESUNBVE9SX0hFSUdIVD0zO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9WRVJGTE9XX1RIUkVTSE9MRCA9IDAuMjU7XHJcbmV4cG9ydCBjb25zdCBPVkVSRkxPV19JTkNSX0ZBQ1RPUiA9IDAuNTtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhdWRpby1sZXZlbGJhcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI3ZpcnR1YWxDYW52YXM+XHJcbiAgICAgIDxjYW52YXMgI2xldmVsYmFyPjwvY2FudmFzPlxyXG4gICAgICA8Y2FudmFzICNtYXJrZXJDYW52YXM+PC9jYW52YXM+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIH1gLCBgZGl2IHtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICAvKnBvc2l0aW9uOiBhYnNvbHV0ZTsqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9YCwgYGNhbnZhcyB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgfWBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGV2ZWxCYXIgaW1wbGVtZW50cyBMZXZlbExpc3RlbmVyLEFmdGVyVmlld0luaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQ2FudmFzJywgeyBzdGF0aWM6IHRydWUgfSkgdmlydHVhbENhbnZhc1JlZiE6IEVsZW1lbnRSZWY7XHJcbiAgdmlydHVhbENhbnZhcyE6IEhUTUxEaXZFbGVtZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2xldmVsYmFyJywgeyBzdGF0aWM6IHRydWUgfSkgbGl2ZUxldmVsQ2FudmFzUmVmITogRWxlbWVudFJlZjtcclxuICBsaXZlTGV2ZWxDYW52YXMhOiBIVE1MQ2FudmFzRWxlbWVudDtcclxuICBAVmlld0NoaWxkKCdtYXJrZXJDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXJrZXJDYW52YXNSZWYhOiBFbGVtZW50UmVmO1xyXG4gIG1hcmtlckNhbnZhcyE6IEhUTUxDYW52YXNFbGVtZW50O1xyXG4gIGNlITogSFRNTERpdkVsZW1lbnQ7XHJcbiAgZGJWYWx1ZXM6IEFycmF5PEFycmF5PG51bWJlcj4+O1xyXG4gIHBlYWtEYkx2bCA9IE1JTl9EQl9MRVZFTDtcclxuICBwcml2YXRlIF9zdHJlYW1pbmdNb2RlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3RhdGljTGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX3BsYXlGcmFtZVBvc2l0aW9uOiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuICB3YXJuREJMZXZlbCA9IERFRkFVTFRfV0FSTl9EQl9MRVZFTDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLmRiVmFsdWVzID0gbmV3IEFycmF5PEFycmF5PG51bWJlcj4+KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNlID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubGl2ZUxldmVsQ2FudmFzID0gdGhpcy5saXZlTGV2ZWxDYW52YXNSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubWFya2VyQ2FudmFzID0gdGhpcy5tYXJrZXJDYW52YXNSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubWFya2VyQ2FudmFzLnN0eWxlLnpJbmRleCA9ICc0JztcclxuICAgIHRoaXMudmlydHVhbENhbnZhcyA9IHRoaXMudmlydHVhbENhbnZhc1JlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5sYXlvdXQoKTtcclxuICAgIHRoaXMuZHJhd0FsbCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Njcm9sbCcsIFsnJGV2ZW50J10pXHJcbiAgb25TY3JvbGwoc2U6IEV2ZW50KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0UG9zaXRpb24oKTtcclxuICAgICAgICAgIHRoaXMuZHJhd0FsbCgpO1xyXG4gICAgICAgICAgdGhpcy5kcmF3UGxheVBvc2l0aW9uKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWaWV3cG9ydFBvc2l0aW9uKCl7XHJcbiAgICAvLyBNb3ZlIGNhbnZhc2VzIHRvIHZpc2libGUgdmlld3BvcnQgcG9zaXRpb25cclxuICAgIGxldCB2aWV3UG9ydFN0eWxlTGVmdD10aGlzLmNlLnNjcm9sbExlZnQgKyAncHgnO1xyXG4gICAgdGhpcy5saXZlTGV2ZWxDYW52YXMuc3R5bGUubGVmdCA9IHZpZXdQb3J0U3R5bGVMZWZ0O1xyXG4gICAgdGhpcy5tYXJrZXJDYW52YXMuc3R5bGUubGVmdCA9IHZpZXdQb3J0U3R5bGVMZWZ0O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgc3RyZWFtaW5nTW9kZShzdHJlYW1pbmdNb2RlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5fc3RyZWFtaW5nTW9kZSAhPT0gc3RyZWFtaW5nTW9kZSkge1xyXG4gICAgICB0aGlzLl9zdHJlYW1pbmdNb2RlID0gc3RyZWFtaW5nTW9kZTtcclxuICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxheW91dFN0YXRpYygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGlzcGxheUxldmVsSW5mb3MobGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwpIHtcclxuICAgIHRoaXMuX3N0YXRpY0xldmVsSW5mb3MgPSBsZXZlbEluZm9zO1xyXG4gICAgaWYgKGxldmVsSW5mb3MpIHtcclxuXHJcbiAgICAgIHRoaXMuZGJWYWx1ZXMgPSBsZXZlbEluZm9zLmJ1ZmZlckxldmVsSW5mb3MubWFwKChsaSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBsaS5wb3dlckxldmVsc0RCKClcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRiVmFsdWVzID0gbmV3IEFycmF5PEFycmF5PG51bWJlcj4+KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxheW91dFN0YXRpYygpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGNoYW5uZWxDb3VudChjaGFubmVsQ291bnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHBsYXlGcmFtZVBvc2l0aW9uKHBsYXlGcmFtZVBvc2l0aW9uOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb247XHJcbiAgICB0aGlzLmRyYXdQbGF5UG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCkge1xyXG5cclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICB0aGlzLmRyYXdBbGwoKTtcclxuICB9XHJcblxyXG4gIGxheW91dCgpIHtcclxuXHJcbiAgICAvLyBzZXQgQ2FudmFzIHNpemUgdG8gdmlld3BvcnQgc2l6ZVxyXG4gICAgdGhpcy5saXZlTGV2ZWxDYW52YXMud2lkdGggPSB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy5saXZlTGV2ZWxDYW52YXMuaGVpZ2h0ID0gdGhpcy5jZS5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgdGhpcy5tYXJrZXJDYW52YXMud2lkdGggPSB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy5tYXJrZXJDYW52YXMuaGVpZ2h0ID0gdGhpcy5jZS5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgLy8gYW5kIG1vdmUgdG8gdmlld3BvcnQgcG9zaXRpb25cclxuICAgIHRoaXMudXBkYXRlVmlld3BvcnRQb3NpdGlvbigpO1xyXG5cclxuICAgIHRoaXMuZHJhd0FsbCgpO1xyXG4gICAgdGhpcy5kcmF3UGxheVBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUobGV2ZWxJbmZvczogTGV2ZWxJbmZvKSB7XHJcbiAgICBpZiAodGhpcy5fc3RyZWFtaW5nTW9kZSkge1xyXG4gICAgICBsZXQgZGJWYWxzID0gbGV2ZWxJbmZvcy5wb3dlckxldmVsc0RCKCk7XHJcbiAgICAgIGxldCBwZWFrREJWYWwgPSBsZXZlbEluZm9zLnBvd2VyTGV2ZWxEQigpO1xyXG4gICAgICBpZiAodGhpcy5wZWFrRGJMdmwgPCBwZWFrREJWYWwpIHtcclxuICAgICAgICB0aGlzLnBlYWtEYkx2bCA9IHBlYWtEQlZhbDtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRiVmFsdWVzLnB1c2goZGJWYWxzKTtcclxuICAgICAgbGV0IGkgPSB0aGlzLmRiVmFsdWVzLmxlbmd0aCAtIDE7XHJcbiAgICAgIGxldCB4ID0gaSAqIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCk7XHJcbiAgICAgIHRoaXMuZHJhd1B1c2hWYWx1ZSh4LCBkYlZhbHMpO1xyXG4gICAgICB0aGlzLmNoZWNrV2lkdGgoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0cmVhbUZpbmlzaGVkKCkge1xyXG4gICAgdGhpcy5sYXlvdXRTdGF0aWMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGF5b3V0U3RhdGljKCkge1xyXG5cclxuICAgIGxldCByZXF1aXJlZFdpZHRoID0gTWF0aC5yb3VuZCh0aGlzLmRiVmFsdWVzLmxlbmd0aCAqIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCkpO1xyXG4gICAgaWYgKHRoaXMudmlydHVhbENhbnZhcyAmJiB0aGlzLmNlKSB7XHJcblxyXG4gICAgICB0aGlzLnZpcnR1YWxDYW52YXMuc3R5bGUud2lkdGggPSByZXF1aXJlZFdpZHRoICsgJ3B4JztcclxuICAgICAgdGhpcy5jZS5zY3JvbGxMZWZ0ID0gcmVxdWlyZWRXaWR0aCAtIHRoaXMuY2Uub2Zmc2V0V2lkdGg7XHJcbiAgICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1dpZHRoKCkge1xyXG4gICAgbGV0IHJlcXVpcmVkV2lkdGggPSB0aGlzLmRiVmFsdWVzLmxlbmd0aCAqIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCk7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsQ2FudmFzLm9mZnNldFdpZHRoIC0gcmVxdWlyZWRXaWR0aCA8IHRoaXMuY2Uub2Zmc2V0V2lkdGggKiBPVkVSRkxPV19USFJFU0hPTEQpIHtcclxuICAgICAgbGV0IG5ld1dpZHRoID0gTWF0aC5mbG9vcih0aGlzLnZpcnR1YWxDYW52YXMub2Zmc2V0V2lkdGggKyAodGhpcy5jZS5vZmZzZXRXaWR0aCAqIE9WRVJGTE9XX0lOQ1JfRkFDVE9SKSk7XHJcbiAgICAgIHRoaXMudmlydHVhbENhbnZhcy5zdHlsZS53aWR0aCA9IG5ld1dpZHRoICsgJ3B4JztcclxuICAgICAgdGhpcy5jZS5zY3JvbGxMZWZ0ID0gbmV3V2lkdGggLSB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG5cclxuICAgICAgIC8vIGRvIG5vdCBjYWxsIGxheW91dCBoZXJlIGl0IGlzIHRyaWdnZXJlZCBieSB0aGUgc2Nyb2xsIGV2ZW50XHJcbiAgICAgIC8vdGhpcy5sYXlvdXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5wZWFrRGJMdmwgPSBNSU5fREJfTEVWRUw7XHJcbiAgICB0aGlzLmRiVmFsdWVzID0gbmV3IEFycmF5PEFycmF5PG51bWJlcj4+KCk7XHJcbiAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgdGhpcy5kcmF3QWxsKCk7XHJcbiAgICB0aGlzLmRyYXdQbGF5UG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0xldmVsQmFja2dyb3VuZChnOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIHg6IG51bWJlciwgaDogbnVtYmVyKXtcclxuICAgIGcuc3Ryb2tlU3R5bGUgPSAnYmxhY2snO1xyXG4gICAgZy5maWxsU3R5bGUgPSAnYmxhY2snO1xyXG4gICAgZy5maWxsUmVjdCh4LDAsTElORV9XSURUSCtMSU5FX0RJU1RBTkNFLGgpXHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIGRyYXdMZXZlbExpbmUoZzogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELCB4OiBudW1iZXIsIGg6IG51bWJlciwgZGJWYWw6IG51bWJlcikge1xyXG4gIC8vICAgLy90cmFuc2xhdGUgdG8gdmlld3BvcnRcclxuICAvLyAgIGxldCB4YyA9IHggLSB0aGlzLmNlLnNjcm9sbExlZnQ7XHJcbiAgLy9cclxuICAvLyAgIHRoaXMuZHJhd0xldmVsQmFja2dyb3VuZChnLHhjLGgpO1xyXG4gIC8vICAgZy5saW5lV2lkdGggPSBMSU5FX1dJRFRIO1xyXG4gIC8vICAgaWYgKGRiVmFsID49IHRoaXMud2FybkRCTGV2ZWwpIHtcclxuICAvLyAgICAgZy5zdHJva2VTdHlsZSA9ICdyZWQnO1xyXG4gIC8vICAgICBnLmZpbGxTdHlsZSA9ICdyZWQnO1xyXG4gIC8vXHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBnLnN0cm9rZVN0eWxlID0gJyMwMGM4NTMnO1xyXG4gIC8vICAgICBnLmZpbGxTdHlsZSA9ICcjMDBjODUzJztcclxuICAvLyAgIH1cclxuICAvLyAgIGcuYmVnaW5QYXRoKCk7XHJcbiAgLy8gICBnLm1vdmVUbyh4YywgaCk7XHJcbiAgLy8gICBsZXQgcFZhbCA9ICgoZGJWYWwgLSBNSU5fREJfTEVWRUwpIC8gLU1JTl9EQl9MRVZFTCkgKiBoO1xyXG4gIC8vXHJcbiAgLy8gICBnLmxpbmVUbyh4YywgaCAtIHBWYWwpO1xyXG4gIC8vICAgZy5jbG9zZVBhdGgoKTtcclxuICAvLyAgIGcuc3Ryb2tlKCk7XHJcbiAgLy9cclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0xldmVsTGluZXMoZzogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELCB4OiBudW1iZXIsIGg6IG51bWJlciwgZGJWYWxzOiBBcnJheTxudW1iZXI+KSB7XHJcbiAgICAvL3RyYW5zbGF0ZSB0byB2aWV3cG9ydFxyXG4gICAgbGV0IHhjID0geCAtIHRoaXMuY2Uuc2Nyb2xsTGVmdDtcclxuICAgIHRoaXMuZHJhd0xldmVsQmFja2dyb3VuZChnLHhjLGgpO1xyXG5cclxuICAgIGxldCBjaEggPSBNYXRoLmZsb29yKGggLyBkYlZhbHMubGVuZ3RoKTtcclxuICAgIGcubGluZVdpZHRoID0gTElORV9XSURUSDtcclxuICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCBkYlZhbHMubGVuZ3RoOyBjaCsrKSB7XHJcbiAgICAgIGxldCBkYlZhbCA9IGRiVmFsc1tjaF07XHJcblxyXG4gICAgICBsZXQgeSA9IE1hdGguZmxvb3IoY2ggKiBjaEgpO1xyXG4gICAgICBpZiAoZGJWYWwgPj0gdGhpcy53YXJuREJMZXZlbCkge1xyXG4gICAgICAgIGcuc3Ryb2tlU3R5bGUgPSAncmVkJztcclxuICAgICAgICBnLmZpbGxTdHlsZSA9ICdyZWQnO1xyXG4gICAgICB9IGVsc2UgaWYoZGJWYWwgPCBDT05TSURFUkVEX1NJTEVOQ0VfREJfTEVWRUwpIHtcclxuICAgICAgICBnLnN0cm9rZVN0eWxlPSdncmV5JztcclxuICAgICAgICBnLmZpbGxTdHlsZT0nZ3JleSdcclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgICAgZy5zdHJva2VTdHlsZSA9ICcjMDBjODUzJztcclxuICAgICAgICAgIGcuZmlsbFN0eWxlID0gJyMwMGM4NTMnXHJcbiAgICAgIH1cclxuICAgICAgZy5iZWdpblBhdGgoKTtcclxuICAgICAgZy5tb3ZlVG8oeGMsIHkgKyBjaEgpO1xyXG4gICAgICBnLmxpbmVUbyh4YywgeSArIGNoSCAtIExFVkVMX0lORElDQVRPUl9IRUlHSFQpO1xyXG4gICAgICBsZXQgcG5WYWw9KChkYlZhbCAtIE1JTl9EQl9MRVZFTCkgLyAtTUlOX0RCX0xFVkVMKTtcclxuICAgICAgbGV0IGx2bEluZGljYXRvclNwYWNlPUxFVkVMX0lORElDQVRPUl9IRUlHSFQrTElORV9ESVNUQU5DRTtcclxuICAgICAgbGV0IGxldmVsSD1jaEgtbHZsSW5kaWNhdG9yU3BhY2U7XHJcbiAgICAgIGxldCBwVmFsID0gcG5WYWwgKiBsZXZlbEg7XHJcbiAgICAgIGlmKHBWYWw+bGV2ZWxILTEpe1xyXG4gICAgICAgIHBWYWw9bGV2ZWxILTFcclxuICAgICAgfWVsc2UgaWYocFZhbDwwKXtcclxuICAgICAgICBwVmFsPTBcclxuICAgICAgfVxyXG4gICAgICBnLm1vdmVUbyh4YywgeSArIGNoSCAtIGx2bEluZGljYXRvclNwYWNlICk7XHJcbiAgICAgIGcubGluZVRvKHhjLCB5ICsgY2hIIC0gbHZsSW5kaWNhdG9yU3BhY2UgLSBwVmFsKTtcclxuICAgICAgZy5jbG9zZVBhdGgoKTtcclxuICAgICAgZy5zdHJva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd1B1c2hWYWx1ZSh4OiBudW1iZXIsIGRiVmFsczogQXJyYXk8bnVtYmVyPikge1xyXG5cclxuICAgIGlmICh0aGlzLmxpdmVMZXZlbENhbnZhcykge1xyXG4gICAgICBsZXQgaCA9IHRoaXMubGl2ZUxldmVsQ2FudmFzLmhlaWdodDtcclxuICAgICAgbGV0IGcgPSB0aGlzLmxpdmVMZXZlbENhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7XHJcbiAgICAgIGlmIChnKSB7XHJcbiAgICAgICAgdGhpcy5kcmF3TGV2ZWxMaW5lcyhnLCB4LCBoLCBkYlZhbHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlICBkcmF3QWxsKCkge1xyXG4gICAgaWYgKHRoaXMubGl2ZUxldmVsQ2FudmFzKSB7XHJcbiAgICAgIGxldCB3ID0gdGhpcy5saXZlTGV2ZWxDYW52YXMud2lkdGg7XHJcbiAgICAgIGxldCBoID0gdGhpcy5saXZlTGV2ZWxDYW52YXMuaGVpZ2h0O1xyXG4gICAgICBsZXQgZyA9IHRoaXMubGl2ZUxldmVsQ2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuICAgICAgaWYgKGcpIHtcclxuICAgICAgICAvLyBjbGVhciBjYW52YXNcclxuICAgICAgICBnLmZpbGxTdHlsZSA9ICdncmV5JztcclxuICAgICAgICBnLmZpbGxSZWN0KDAsIDAsIHcsIGgpO1xyXG5cclxuICAgICAgICBnLmxpbmVXaWR0aCA9IExJTkVfV0lEVEg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRiVmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIC8vIGRyYXcgb25seSB2aWV3cG9ydCBwYXJ0OlxyXG5cclxuICAgICAgICAgIC8vIGRyYXcgZnJvbSB4MSB0byB4MlxyXG4gICAgICAgICAgbGV0IHgxID0gdGhpcy5jZS5zY3JvbGxMZWZ0O1xyXG4gICAgICAgICAgbGV0IHgyID0geDEgKyB0aGlzLmNlLm9mZnNldFdpZHRoO1xyXG5cclxuICAgICAgICAgIC8vIGNvcnJlc3BvbmRzIHRvIHRoaXMgbGV2ZWwgdmFsdWVzOlxyXG4gICAgICAgICAgbGV0IGkxID0gTWF0aC5mbG9vcih4MSAvIChMSU5FX0RJU1RBTkNFICsgTElORV9XSURUSCkpO1xyXG4gICAgICAgICAgbGV0IGkyID0gTWF0aC5jZWlsKHgyIC8gKExJTkVfRElTVEFOQ0UgKyBMSU5FX1dJRFRIKSk7XHJcbiAgICAgICAgICAvLyBzb21lIHZhbHVlcyBhcm91bmRcclxuICAgICAgICAgIGkxIC09IDI7XHJcbiAgICAgICAgICBpMiArPSAyO1xyXG4gICAgICAgICAgLy8gbGltaXRzXHJcbiAgICAgICAgICBpZiAoaTEgPCAwKSB7XHJcbiAgICAgICAgICAgIGkxID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpMiA+IHRoaXMuZGJWYWx1ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGkyID0gdGhpcy5kYlZhbHVlcy5sZW5ndGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdmFyIGM9MDtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSBpMTsgaSA8IGkyOyBpKyspIHtcclxuICAgICAgICAgICAgICBsZXQgeCA9IGkgKiAoTElORV9ESVNUQU5DRSArIExJTkVfV0lEVEgpO1xyXG4gICAgICAgICAgICAgIGxldCBkYlZhbHMgPSB0aGlzLmRiVmFsdWVzW2ldO1xyXG4gICAgICAgICAgICAgIGlmIChkYlZhbHMpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3TGV2ZWxMaW5lcyhnLCB4LCBoLCBkYlZhbHMpO1xyXG4gICAgICAgICAgICAgICAgICBjKys7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBmcmFtZXNQZXJQaXhlbCgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIC8vIG9uZSBidWZmZXJcclxuICAgIGlmICh0aGlzLl9zdGF0aWNMZXZlbEluZm9zKSB7XHJcbiAgICAgIGxldCBmcmFtZXNQZXJCdWZmZXIgPSB0aGlzLl9zdGF0aWNMZXZlbEluZm9zLmZyYW1lc1BlckJ1ZmZlcigpO1xyXG4gICAgICBsZXQgcGl4ZWxzUGVyQnVmZmVyID0gTElORV9ESVNUQU5DRSArIExJTkVfV0lEVEg7XHJcblxyXG4gICAgICByZXR1cm4gZnJhbWVzUGVyQnVmZmVyIC8gcGl4ZWxzUGVyQnVmZmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBkcmF3UGxheVBvc2l0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubWFya2VyQ2FudmFzKSB7XHJcbiAgICAgIGxldCB3ID0gdGhpcy5tYXJrZXJDYW52YXMud2lkdGg7XHJcbiAgICAgIGxldCBoID0gdGhpcy5tYXJrZXJDYW52YXMuaGVpZ2h0O1xyXG4gICAgICBsZXQgZyA9IHRoaXMubWFya2VyQ2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuICAgICAgaWYgKGcpIHtcclxuICAgICAgICBnLmNsZWFyUmVjdCgwLCAwLCB3LCBoKTtcclxuICAgICAgICBsZXQgZnJhbWVzUGVyUGl4ZWwgPSB0aGlzLmZyYW1lc1BlclBpeGVsKCk7XHJcbiAgICAgICAgaWYgKGZyYW1lc1BlclBpeGVsICYmIHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uKSB7XHJcbiAgICAgICAgICBsZXQgeCA9IHRoaXMuX3BsYXlGcmFtZVBvc2l0aW9uIC8gZnJhbWVzUGVyUGl4ZWw7XHJcblxyXG4gICAgICAgICAgLy8gR2V0IHBvc2l0aW9uIGluIHZpZXdwb3J0XHJcbiAgICAgICAgICBsZXQgeGMgPSB4IC0gdGhpcy5jZS5zY3JvbGxMZWZ0O1xyXG4gICAgICAgICAgLy8gT25seSBkcmF3IGlmIGluc2lkZSBtYXJrZXIgKHZpZXdwb3J0KSBjYW52YXNcclxuICAgICAgICAgIGlmKHhjPj0wICYmIHhjPD13KSB7XHJcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gJ3JlZCc7XHJcbiAgICAgICAgICAgIGcuc3Ryb2tlU3R5bGUgPSAncmVkJztcclxuICAgICAgICAgICAgZy5saW5lV2lkdGggPSBMSU5FX1dJRFRIO1xyXG4gICAgICAgICAgICBnLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAvLyBwYWludCBvdmVyIGFsbCBjaGFubmVsc1xyXG4gICAgICAgICAgICBnLm1vdmVUbyh4YywgMCk7XHJcbiAgICAgICAgICAgIGcubGluZVRvKHhjLCBoKTtcclxuICAgICAgICAgICAgZy5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgZy5zdHJva2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -2,9 +2,9 @@ import { Component } from "@angular/core";
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class ScrollPaneHorizontal {
|
|
4
4
|
}
|
|
5
|
-
ScrollPaneHorizontal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
6
|
-
ScrollPaneHorizontal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
5
|
+
ScrollPaneHorizontal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ScrollPaneHorizontal, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
ScrollPaneHorizontal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ScrollPaneHorizontal, selector: "scroll-pane-horizontal", ngImport: i0, template: '', isInline: true, styles: [":host{width:100%;background:darkgray;box-sizing:border-box;height:100%;position:relative;overflow-x:scroll;overflow-y:auto}\n"] });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ScrollPaneHorizontal, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
10
|
selector: 'scroll-pane-horizontal',
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
22
22
|
]
|
|
23
23
|
}]
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsX3BhbmVfaG9yaXpvbnRhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9hdWRpby91aS9zY3JvbGxfcGFuZV9ob3Jpem9udGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBa0J4QyxNQUFNLE9BQU8sb0JBQW9COztrSEFBcEIsb0JBQW9CO3NHQUFwQixvQkFBb0IsOERBYnJCLEVBQUU7NEZBYUQsb0JBQW9CO2tCQWhCaEMsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUU7d0JBQ047Ozs7Ozs7O01BUUU7cUJBQUM7aUJBRU4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG5cbiAgc2VsZWN0b3I6ICdzY3JvbGwtcGFuZS1ob3Jpem9udGFsJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZXM6IFtcbiAgICBgOmhvc3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1gXVxuXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbFBhbmVIb3Jpem9udGFse1xuXG59XG4iXX0=
|