speechrecorderng 2.21.2 → 2.21.8
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/{esm2015/lib/action/action.js → esm2020/lib/action/action.mjs} +0 -0
- package/{esm2015/lib/audio/audio_display.js → esm2020/lib/audio/audio_display.mjs} +5 -5
- package/esm2020/lib/audio/audio_player.mjs +276 -0
- package/esm2020/lib/audio/capture/capture.mjs +547 -0
- package/{esm2015/lib/audio/context.js → esm2020/lib/audio/context.mjs} +0 -0
- package/esm2020/lib/audio/dsp/level_measure.mjs +351 -0
- package/{esm2015/lib/audio/format.js → esm2020/lib/audio/format.mjs} +0 -0
- package/{esm2015/lib/audio/impl/wavformat.js → esm2020/lib/audio/impl/wavformat.mjs} +0 -0
- package/{esm2015/lib/audio/impl/wavwriter.js → esm2020/lib/audio/impl/wavwriter.mjs} +0 -0
- package/{esm2015/lib/audio/io/stream.js → esm2020/lib/audio/io/stream.mjs} +0 -0
- package/{esm2015/lib/audio/persistor.js → esm2020/lib/audio/persistor.mjs} +0 -0
- package/{esm2015/lib/audio/playback/player.js → esm2020/lib/audio/playback/player.mjs} +0 -0
- package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +376 -0
- package/{esm2015/lib/audio/ui/audio_display_control.js → esm2020/lib/audio/ui/audio_display_control.mjs} +5 -5
- package/{esm2015/lib/audio/ui/audio_display_scroll_pane.js → esm2020/lib/audio/ui/audio_display_scroll_pane.mjs} +5 -5
- package/{esm2015/lib/audio/ui/audiosignal.js → esm2020/lib/audio/ui/audiosignal.mjs} +5 -5
- package/{esm2015/lib/audio/ui/common.js → esm2020/lib/audio/ui/common.mjs} +0 -0
- package/esm2020/lib/audio/ui/container.mjs +431 -0
- package/{esm2015/lib/audio/ui/livelevel.js → esm2020/lib/audio/ui/livelevel.mjs} +5 -5
- package/{esm2015/lib/audio/ui/scroll_pane_horizontal.js → esm2020/lib/audio/ui/scroll_pane_horizontal.mjs} +4 -4
- package/{esm2015/lib/audio/ui/sonagram.js → esm2020/lib/audio/ui/sonagram.mjs} +5 -5
- package/{esm2015/lib/dsp/utils.js → esm2020/lib/dsp/utils.mjs} +0 -0
- package/{esm2015/lib/io/BinaryWriter.js → esm2020/lib/io/BinaryWriter.mjs} +0 -0
- package/{esm2015/lib/io/stream.js → esm2020/lib/io/stream.mjs} +0 -0
- package/{esm2015/lib/math/2d/geometry.js → esm2020/lib/math/2d/geometry.mjs} +0 -0
- package/{esm2015/lib/math/complex.js → esm2020/lib/math/complex.mjs} +0 -0
- package/{esm2015/lib/math/dft.js → esm2020/lib/math/dft.mjs} +0 -0
- package/{esm2015/lib/math/utils.js → esm2020/lib/math/utils.mjs} +0 -0
- package/{esm2015/lib/net/uploader.js → esm2020/lib/net/uploader.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/project/project.js → esm2020/lib/speechrecorder/project/project.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/project/project.service.js → esm2020/lib/speechrecorder/project/project.service.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/recording.js → esm2020/lib/speechrecorder/recording.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/recordings/recordings.service.js → esm2020/lib/speechrecorder/recordings/recordings.service.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/script/script.js → esm2020/lib/speechrecorder/script/script.mjs} +2 -2
- package/{esm2015/lib/speechrecorder/script/script.service.js → esm2020/lib/speechrecorder/script/script.service.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/session/controlpanel.js → esm2020/lib/speechrecorder/session/controlpanel.mjs} +24 -24
- package/esm2020/lib/speechrecorder/session/item.mjs +18 -0
- package/{esm2015/lib/speechrecorder/session/progress.js → esm2020/lib/speechrecorder/session/progress.mjs} +5 -5
- package/{esm2015/lib/speechrecorder/session/prompting.js → esm2020/lib/speechrecorder/session/prompting.mjs} +21 -21
- package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file-meta.component.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file-navi.component.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs} +5 -5
- package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs} +6 -7
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +385 -0
- package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/session/recordingfile/recordingfile-service.js → esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/session/session.js → esm2020/lib/speechrecorder/session/session.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/session/session.service.js → esm2020/lib/speechrecorder/session/session.service.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/session/session_finished_dialog.js → esm2020/lib/speechrecorder/session/session_finished_dialog.mjs} +4 -4
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +1274 -0
- package/{esm2015/lib/speechrecorder/session/warning_bar.js → esm2020/lib/speechrecorder/session/warning_bar.mjs} +5 -5
- package/{esm2015/lib/speechrecorder/spruploader.js → esm2020/lib/speechrecorder/spruploader.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/startstopsignal/startstopsignal.js → esm2020/lib/speechrecorder/startstopsignal/startstopsignal.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.js → esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs} +5 -5
- package/esm2020/lib/speechrecorderng.component.mjs +427 -0
- package/esm2020/lib/speechrecorderng.module.mjs +94 -0
- package/{esm2015/lib/spr.config.js → esm2020/lib/spr.config.mjs} +4 -4
- package/{esm2015/lib/spr.module.version.js → esm2020/lib/spr.module.version.mjs} +2 -2
- package/{esm2015/lib/ui/canvas_layer_comp.js → esm2020/lib/ui/canvas_layer_comp.mjs} +4 -4
- package/{esm2015/lib/ui/message_dialog.js → esm2020/lib/ui/message_dialog.mjs} +4 -4
- package/{esm2015/lib/ui/recordingitem_display.js → esm2020/lib/ui/recordingitem_display.mjs} +9 -9
- package/{esm2015/lib/utils/css_utils.js → esm2020/lib/utils/css_utils.mjs} +0 -0
- package/{esm2015/lib/utils/scrollIntoViewToBottom.js → esm2020/lib/utils/scrollIntoViewToBottom.mjs} +4 -4
- package/{esm2015/lib/utils/ua-parser.js → esm2020/lib/utils/ua-parser.mjs} +0 -0
- package/{esm2015/lib/utils/utils.js → esm2020/lib/utils/utils.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/speechrecorderng.js → esm2020/speechrecorderng.mjs} +0 -0
- package/fesm2015/speechrecorderng.mjs +10442 -0
- package/fesm2015/speechrecorderng.mjs.map +1 -0
- package/{fesm2015/speechrecorderng.js → fesm2020/speechrecorderng.mjs} +254 -211
- package/fesm2020/speechrecorderng.mjs.map +1 -0
- package/lib/speechrecorder/session/item.d.ts +7 -3
- package/lib/spr.module.version.d.ts +1 -1
- package/package.json +33 -20
- package/bundles/speechrecorderng.umd.js +0 -10126
- package/bundles/speechrecorderng.umd.js.map +0 -1
- package/esm2015/lib/audio/audio_player.js +0 -274
- package/esm2015/lib/audio/capture/capture.js +0 -544
- package/esm2015/lib/audio/dsp/level_measure.js +0 -356
- package/esm2015/lib/audio/ui/audio_canvas_layer_comp.js +0 -364
- package/esm2015/lib/audio/ui/container.js +0 -412
- package/esm2015/lib/speechrecorder/session/item.js +0 -8
- package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-view.component.js +0 -386
- package/esm2015/lib/speechrecorder/session/sessionmanager.js +0 -1271
- package/esm2015/lib/speechrecorderng.component.js +0 -423
- package/esm2015/lib/speechrecorderng.module.js +0 -97
- package/fesm2015/speechrecorderng.js.map +0 -1
|
File without changes
|
|
@@ -69,8 +69,8 @@ export class AudioDisplay {
|
|
|
69
69
|
this.status = 'ERROR';
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
AudioDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
73
|
-
AudioDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
72
|
+
AudioDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplay, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
+
AudioDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AudioDisplay, selector: "app-audiodisplay", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
|
|
74
74
|
|
|
75
75
|
<audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
|
|
76
76
|
|
|
@@ -83,8 +83,8 @@ AudioDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
83
83
|
[zoomOutAction]="zoomOutAction"
|
|
84
84
|
[zoomSelectedAction]="zoomSelectedAction"
|
|
85
85
|
[zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control>
|
|
86
|
-
`, isInline: true, styles: [":host
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
86
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0px;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#e6e6e6}\n", "legend{margin-left:1em;padding:.2em .8em;font-size:.8em}\n", "fieldset{border:1px darkgray solid}\n"], components: [{ type: i2.AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: i3.AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplay, decorators: [{
|
|
88
88
|
type: Component,
|
|
89
89
|
args: [{
|
|
90
90
|
selector: 'app-audiodisplay',
|
|
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImpo
|
|
|
141
141
|
}], audioClip: [{
|
|
142
142
|
type: Input
|
|
143
143
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9hdWRpby9hdWRpb19kaXNwbGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUVNLEtBQUssR0FDdkIsTUFBTSxlQUFlLENBQUE7QUFJdEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQTJDdEUsTUFBTSxPQUFPLFlBQVk7SUE0QnZCLFlBQW9CLEtBQXFCLEVBQVUsR0FBc0IsRUFBUyxJQUFlO1FBQTdFLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBekJ6RixlQUFVLEdBQWdCLElBQUksQ0FBQTtRQTBCcEMsdUNBQXVDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFDLGlCQUFpQixDQUFDO0lBRWhDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQTtRQUN0RSxJQUFJLENBQUMsb0JBQW9CLEdBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFv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QVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThDL0MsU0FBUztzQkFEWixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEFmdGVyVmlld0luaXQsIElucHV0LCBPbkluaXQsIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7QXVkaW9DbGlwLCBTZWxlY3Rpb259IGZyb20gJy4vcGVyc2lzdG9yJ1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVNjcm9sbFBhbmV9IGZyb20gXCIuL3VpL2F1ZGlvX2Rpc3BsYXlfc2Nyb2xsX3BhbmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpb2Rpc3BsYXknLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lICNhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lPjwvYXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZT5cclxuXHJcbiAgICA8YXVkaW8tZGlzcGxheS1jb250cm9sIFthdWRpb0NsaXBdPVwiYXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIlxyXG4gICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICBbem9vbUluQWN0aW9uXT1cInpvb21JbkFjdGlvblwiXHJcbiAgICBbem9vbU91dEFjdGlvbl09XCJ6b29tT3V0QWN0aW9uXCJcclxuICAgIFt6b29tU2VsZWN0ZWRBY3Rpb25dPVwiem9vbVNlbGVjdGVkQWN0aW9uXCJcclxuICAgIFt6b29tRml0VG9QYW5lbEFjdGlvbl09XCJ6b29tRml0VG9QYW5lbEFjdGlvblwiPjwvYXVkaW8tZGlzcGxheS1jb250cm9sPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICAgIGA6aG9zdCB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMwLCAyMzAsIDIzMCwgMS4wKVxyXG4gICAgfWAsYFxyXG4gICAgICAgICAgbGVnZW5ke1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07IHBhZGRpbmc6IDAuMmVtIDAuOGVtO2ZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICAgIH1gLGBcclxuICAgICAgICBmaWVsZHNldHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggZGFya2dyYXkgc29saWRcclxuICAgICAgfVxyXG4gICAgICBgXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1ZGlvRGlzcGxheSBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgcGFyZW50RTogSFRNTEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBfYXVkaW9DbGlwOkF1ZGlvQ2xpcHxudWxsPW51bGxcclxuXHJcbiAgQElucHV0KClcclxuICBwbGF5U3RhcnRBY3Rpb246IEFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KClcclxuICBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHBsYXlTZWxlY3Rpb25BY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb24hOkFjdGlvbjxib29sZWFuPnx1bmRlZmluZWQ7XHJcblxyXG4gIHpvb21GaXRUb1BhbmVsQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbVNlbGVjdGVkQWN0aW9uITpBY3Rpb248dm9pZD5cclxuICB6b29tSW5BY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuICB6b29tT3V0QWN0aW9uITpBY3Rpb248dm9pZD47XHJcblxyXG4gIGNsZWFyU2VsZWN0aW9uQWN0aW9uITpBY3Rpb248dm9pZD5cclxuXHJcbiAgc3RhdHVzOiBzdHJpbmc7XHJcblxyXG4gIGF1ZGlvOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQXVkaW9EaXNwbGF5U2Nyb2xsUGFuZSwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lITogQXVkaW9EaXNwbGF5U2Nyb2xsUGFuZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGVSZWY6RWxlbWVudFJlZikge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcImNvbnN0cnVjdG9yOiBcIit0aGlzLmFjKTtcclxuICAgICAgdGhpcy5wYXJlbnRFPXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24gPSBuZXcgQWN0aW9uKFwiU3RhcnRcIik7XHJcbiAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb249bmV3IEFjdGlvbihcIlBsYXkgc2VsZWN0ZWRcIik7XHJcbiAgICB0aGlzLnBsYXlTdG9wQWN0aW9uID0gbmV3IEFjdGlvbihcIlN0b3BcIik7XHJcbiAgICB0aGlzLnN0YXR1cz1cIlBsYXllciBjcmVhdGVkLlwiO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLnpvb21TZWxlY3RlZEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbVNlbGVjdGVkQWN0aW9uXHJcbiAgICB0aGlzLnpvb21GaXRUb1BhbmVsQWN0aW9uPXRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS56b29tRml0VG9QYW5lbEFjdGlvblxyXG4gICAgdGhpcy56b29tT3V0QWN0aW9uPXRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS56b29tT3V0QWN0aW9uXHJcbiAgICB0aGlzLnpvb21JbkFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUluQWN0aW9uXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICBsZXQgaGVpZ2h0TGlzdGVuZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG1yczpBcnJheTxNdXRhdGlvblJlY29yZD4sbW86TXV0YXRpb25PYnNlcnZlcik9PntcclxuICAgICAgICAgIG1ycy5mb3JFYWNoKChtcjpNdXRhdGlvblJlY29yZCk9PntcclxuICAgICAgICAgICAgICBpZignYXR0cmlidXRlcyc9PT1tci50eXBlICYmICgnY2xhc3MnPT09bXIuYXR0cmlidXRlTmFtZSB8fCAnc3R5bGUnPT09bXIuYXR0cmlidXRlTmFtZSkpe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHRMaXN0ZW5lci5vYnNlcnZlKHRoaXMucGFyZW50RSx7YXR0cmlidXRlczogdHJ1ZSxjaGlsZExpc3Q6IHRydWUsIGNoYXJhY3RlckRhdGE6IHRydWV9KTtcclxuICB9XHJcblxyXG5cclxuICBsYXlvdXQoKXtcclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5sYXlvdXQoKTtcclxuICB9XHJcblxyXG5cclxuICBzdGFydGVkKCkge1xyXG4gICAgY29uc29sZS5sb2coXCJQbGF5IHN0YXJ0ZWRcIik7XHJcbiAgICB0aGlzLnN0YXR1cyA9ICdQbGF5aW5nLi4uJztcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBhdWRpb0RhdGEoYXVkaW9CdWZmZXI6IEF1ZGlvQnVmZmVyKXtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLmF1ZGlvRGF0YSA9IGF1ZGlvQnVmZmVyO1xyXG4gICAgICBpZih0aGlzLnBsYXlTdGFydEFjdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSAoYXVkaW9CdWZmZXIgPT0gbnVsbClcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9DbGlwKGF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbCkge1xyXG5cclxuICAgIGxldCBhdWRpb0RhdGE6QXVkaW9CdWZmZXJ8bnVsbD1udWxsO1xyXG4gICAgbGV0IHNlbDpTZWxlY3Rpb258bnVsbD1udWxsO1xyXG4gICAgaWYoYXVkaW9DbGlwKXtcclxuICAgICAgYXVkaW9EYXRhPWF1ZGlvQ2xpcC5idWZmZXI7XHJcbiAgICAgIHNlbD1hdWRpb0NsaXAuc2VsZWN0aW9uO1xyXG4gICAgICB9XHJcbiAgICB0aGlzLl9hdWRpb0NsaXA9YXVkaW9DbGlwXHJcbiAgICB0aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuYXVkaW9DbGlwID0gYXVkaW9DbGlwO1xyXG4gICAgLy90aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCA9IChhdWRpb0RhdGEhPT1udWxsKVxyXG4gIH1cclxuXHJcbiAgZ2V0IGF1ZGlvQ2xpcCgpOkF1ZGlvQ2xpcHxudWxse1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQ2xpcFxyXG4gIH1cclxuXHJcbiAgc2V0IHBsYXlGcmFtZVBvc2l0aW9uKHBsYXlGcmFtZVBvc2l0aW9uOm51bWJlcil7XHJcbiAgICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5wbGF5RnJhbWVQb3NpdGlvbiA9IHBsYXlGcmFtZVBvc2l0aW9uXHJcbiAgfVxyXG5cclxuICBlcnJvcigpIHtcclxuICAgIHRoaXMuc3RhdHVzID0gJ0VSUk9SJztcclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9hdWRpby9hdWRpb19kaXNwbGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUVNLEtBQUssR0FDdkIsTUFBTSxlQUFlLENBQUE7QUFJdEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQTJDdEUsTUFBTSxPQUFPLFlBQVk7SUE0QnZCLFlBQW9CLEtBQXFCLEVBQVUsR0FBc0IsRUFBUyxJQUFlO1FBQTdFLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBekJ6RixlQUFVLEdBQWdCLElBQUksQ0FBQTtRQTBCcEMsdUNBQXVDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFDLGlCQUFpQixDQUFDO0lBRWhDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQTtRQUN0RSxJQUFJLENBQUMsb0JBQW9CLEdBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFv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QVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThDL0MsU0FBUztzQkFEWixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEFmdGVyVmlld0luaXQsIElucHV0LCBPbkluaXQsIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7QXVkaW9DbGlwLCBTZWxlY3Rpb259IGZyb20gJy4vcGVyc2lzdG9yJ1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVNjcm9sbFBhbmV9IGZyb20gXCIuL3VpL2F1ZGlvX2Rpc3BsYXlfc2Nyb2xsX3BhbmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpb2Rpc3BsYXknLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lICNhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lPjwvYXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZT5cclxuXHJcbiAgICA8YXVkaW8tZGlzcGxheS1jb250cm9sIFthdWRpb0NsaXBdPVwiYXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIlxyXG4gICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICBbem9vbUluQWN0aW9uXT1cInpvb21JbkFjdGlvblwiXHJcbiAgICBbem9vbU91dEFjdGlvbl09XCJ6b29tT3V0QWN0aW9uXCJcclxuICAgIFt6b29tU2VsZWN0ZWRBY3Rpb25dPVwiem9vbVNlbGVjdGVkQWN0aW9uXCJcclxuICAgIFt6b29tRml0VG9QYW5lbEFjdGlvbl09XCJ6b29tRml0VG9QYW5lbEFjdGlvblwiPjwvYXVkaW8tZGlzcGxheS1jb250cm9sPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICAgIGA6aG9zdCB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMwLCAyMzAsIDIzMCwgMS4wKVxyXG4gICAgfWAsYFxyXG4gICAgICAgICAgbGVnZW5ke1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07IHBhZGRpbmc6IDAuMmVtIDAuOGVtO2ZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICAgIH1gLGBcclxuICAgICAgICBmaWVsZHNldHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggZGFya2dyYXkgc29saWRcclxuICAgICAgfVxyXG4gICAgICBgXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1ZGlvRGlzcGxheSBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgcGFyZW50RTogSFRNTEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBfYXVkaW9DbGlwOkF1ZGlvQ2xpcHxudWxsPW51bGxcclxuXHJcbiAgQElucHV0KClcclxuICBwbGF5U3RhcnRBY3Rpb246IEFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KClcclxuICBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHBsYXlTZWxlY3Rpb25BY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb24hOkFjdGlvbjxib29sZWFuPnx1bmRlZmluZWQ7XHJcblxyXG4gIHpvb21GaXRUb1BhbmVsQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbVNlbGVjdGVkQWN0aW9uITpBY3Rpb248dm9pZD5cclxuICB6b29tSW5BY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuICB6b29tT3V0QWN0aW9uITpBY3Rpb248dm9pZD47XHJcblxyXG4gIGNsZWFyU2VsZWN0aW9uQWN0aW9uITpBY3Rpb248dm9pZD5cclxuXHJcbiAgc3RhdHVzOiBzdHJpbmc7XHJcblxyXG4gIGF1ZGlvOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQXVkaW9EaXNwbGF5U2Nyb2xsUGFuZSwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lITogQXVkaW9EaXNwbGF5U2Nyb2xsUGFuZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGVSZWY6RWxlbWVudFJlZikge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcImNvbnN0cnVjdG9yOiBcIit0aGlzLmFjKTtcclxuICAgICAgdGhpcy5wYXJlbnRFPXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24gPSBuZXcgQWN0aW9uKFwiU3RhcnRcIik7XHJcbiAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb249bmV3IEFjdGlvbihcIlBsYXkgc2VsZWN0ZWRcIik7XHJcbiAgICB0aGlzLnBsYXlTdG9wQWN0aW9uID0gbmV3IEFjdGlvbihcIlN0b3BcIik7XHJcbiAgICB0aGlzLnN0YXR1cz1cIlBsYXllciBjcmVhdGVkLlwiO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLnpvb21TZWxlY3RlZEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbVNlbGVjdGVkQWN0aW9uXHJcbiAgICB0aGlzLnpvb21GaXRUb1BhbmVsQWN0aW9uPXRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS56b29tRml0VG9QYW5lbEFjdGlvblxyXG4gICAgdGhpcy56b29tT3V0QWN0aW9uPXRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS56b29tT3V0QWN0aW9uXHJcbiAgICB0aGlzLnpvb21JbkFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUluQWN0aW9uXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICBsZXQgaGVpZ2h0TGlzdGVuZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG1yczpBcnJheTxNdXRhdGlvblJlY29yZD4sbW86TXV0YXRpb25PYnNlcnZlcik9PntcclxuICAgICAgICAgIG1ycy5mb3JFYWNoKChtcjpNdXRhdGlvblJlY29yZCk9PntcclxuICAgICAgICAgICAgICBpZignYXR0cmlidXRlcyc9PT1tci50eXBlICYmICgnY2xhc3MnPT09bXIuYXR0cmlidXRlTmFtZSB8fCAnc3R5bGUnPT09bXIuYXR0cmlidXRlTmFtZSkpe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHRMaXN0ZW5lci5vYnNlcnZlKHRoaXMucGFyZW50RSx7YXR0cmlidXRlczogdHJ1ZSxjaGlsZExpc3Q6IHRydWUsIGNoYXJhY3RlckRhdGE6IHRydWV9KTtcclxuICB9XHJcblxyXG5cclxuICBsYXlvdXQoKXtcclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5sYXlvdXQoKTtcclxuICB9XHJcblxyXG5cclxuICBzdGFydGVkKCkge1xyXG4gICAgY29uc29sZS5sb2coXCJQbGF5IHN0YXJ0ZWRcIik7XHJcbiAgICB0aGlzLnN0YXR1cyA9ICdQbGF5aW5nLi4uJztcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBhdWRpb0RhdGEoYXVkaW9CdWZmZXI6IEF1ZGlvQnVmZmVyKXtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLmF1ZGlvRGF0YSA9IGF1ZGlvQnVmZmVyO1xyXG4gICAgICBpZih0aGlzLnBsYXlTdGFydEFjdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSAoYXVkaW9CdWZmZXIgPT0gbnVsbClcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9DbGlwKGF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbCkge1xyXG5cclxuICAgIGxldCBhdWRpb0RhdGE6QXVkaW9CdWZmZXJ8bnVsbD1udWxsO1xyXG4gICAgbGV0IHNlbDpTZWxlY3Rpb258bnVsbD1udWxsO1xyXG4gICAgaWYoYXVkaW9DbGlwKXtcclxuICAgICAgYXVkaW9EYXRhPWF1ZGlvQ2xpcC5idWZmZXI7XHJcbiAgICAgIHNlbD1hdWRpb0NsaXAuc2VsZWN0aW9uO1xyXG4gICAgICB9XHJcbiAgICB0aGlzLl9hdWRpb0NsaXA9YXVkaW9DbGlwXHJcbiAgICB0aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuYXVkaW9DbGlwID0gYXVkaW9DbGlwO1xyXG4gICAgLy90aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCA9IChhdWRpb0RhdGEhPT1udWxsKVxyXG4gIH1cclxuXHJcbiAgZ2V0IGF1ZGlvQ2xpcCgpOkF1ZGlvQ2xpcHxudWxse1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQ2xpcFxyXG4gIH1cclxuXHJcbiAgc2V0IHBsYXlGcmFtZVBvc2l0aW9uKHBsYXlGcmFtZVBvc2l0aW9uOm51bWJlcil7XHJcbiAgICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5wbGF5RnJhbWVQb3NpdGlvbiA9IHBsYXlGcmFtZVBvc2l0aW9uXHJcbiAgfVxyXG5cclxuICBlcnJvcigpIHtcclxuICAgIHRoaXMuc3RhdHVzID0gJ0VSUk9SJztcclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { Component, ViewChild, Input, } from '@angular/core';
|
|
2
|
+
import { AudioClip } from './persistor';
|
|
3
|
+
import { AudioPlayer, EventType } from './playback/player';
|
|
4
|
+
import { Action } from "../action/action";
|
|
5
|
+
import { AudioDisplayScrollPane } from "./ui/audio_display_scroll_pane";
|
|
6
|
+
import { AudioContextProvider } from "./context";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
import * as i2 from "./ui/audio_display_scroll_pane";
|
|
10
|
+
import * as i3 from "./ui/audio_display_control";
|
|
11
|
+
export class AudioDisplayPlayer {
|
|
12
|
+
constructor(route, ref, eRef) {
|
|
13
|
+
this.route = route;
|
|
14
|
+
this.ref = ref;
|
|
15
|
+
this.eRef = eRef;
|
|
16
|
+
this._audioUrl = null;
|
|
17
|
+
this.aCtx = null;
|
|
18
|
+
this._audioClip = null;
|
|
19
|
+
this.currentLoader = null;
|
|
20
|
+
//console.log("constructor: "+this.ac);
|
|
21
|
+
this.parentE = this.eRef.nativeElement;
|
|
22
|
+
this.playStartAction = new Action("Start");
|
|
23
|
+
this.playSelectionAction = new Action("Play selected");
|
|
24
|
+
this.playStopAction = new Action("Stop");
|
|
25
|
+
this.status = "Player created.";
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
//console.log("OnInit: "+this.ac);
|
|
29
|
+
this.zoomSelectedAction = this.audioDisplayScrollPane.zoomSelectedAction;
|
|
30
|
+
this.zoomFitToPanelAction = this.audioDisplayScrollPane.zoomFitToPanelAction;
|
|
31
|
+
this.zoomOutAction = this.audioDisplayScrollPane.zoomOutAction;
|
|
32
|
+
this.zoomInAction = this.audioDisplayScrollPane.zoomInAction;
|
|
33
|
+
try {
|
|
34
|
+
this.aCtx = AudioContextProvider.audioContextInstance();
|
|
35
|
+
if (this.aCtx) {
|
|
36
|
+
this.ap = new AudioPlayer(this.aCtx, this);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
if (err instanceof Error) {
|
|
41
|
+
this.status = err.message;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
ngAfterContentInit() {
|
|
46
|
+
//console.log("AfterContentInit: "+this.ac);
|
|
47
|
+
}
|
|
48
|
+
ngAfterContentChecked() {
|
|
49
|
+
//console.log("AfterContentChecked: "+this.ac);
|
|
50
|
+
}
|
|
51
|
+
ngAfterViewInit() {
|
|
52
|
+
if (this.aCtx && this.ap) {
|
|
53
|
+
this.playStartAction.onAction = () => this.ap?.start();
|
|
54
|
+
this.playSelectionAction.onAction = () => this.ap?.startSelected();
|
|
55
|
+
this.playStopAction.onAction = () => this.ap?.stop();
|
|
56
|
+
}
|
|
57
|
+
this.layout();
|
|
58
|
+
let heightListener = new MutationObserver((mrs, mo) => {
|
|
59
|
+
mrs.forEach((mr) => {
|
|
60
|
+
if ('attributes' === mr.type && ('class' === mr.attributeName || 'style' === mr.attributeName)) {
|
|
61
|
+
this.layout();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
heightListener.observe(this.parentE, { attributes: true, childList: true, characterData: true });
|
|
66
|
+
this.route.queryParams.subscribe((params) => {
|
|
67
|
+
if (params['url']) {
|
|
68
|
+
this.audioUrl = params['url'];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
ngAfterViewChecked() {
|
|
73
|
+
//console.log("AfterViewChecked: "+this.ac);
|
|
74
|
+
}
|
|
75
|
+
init() {
|
|
76
|
+
}
|
|
77
|
+
layout() {
|
|
78
|
+
this.audioDisplayScrollPane.layout();
|
|
79
|
+
}
|
|
80
|
+
get audioUrl() {
|
|
81
|
+
return this._audioUrl;
|
|
82
|
+
}
|
|
83
|
+
set audioUrl(value) {
|
|
84
|
+
if (this.ap) {
|
|
85
|
+
this.ap.stop();
|
|
86
|
+
}
|
|
87
|
+
this._audioUrl = value;
|
|
88
|
+
this.load();
|
|
89
|
+
}
|
|
90
|
+
started() {
|
|
91
|
+
//console.debug("Play started");
|
|
92
|
+
this.status = 'Playing...';
|
|
93
|
+
}
|
|
94
|
+
load() {
|
|
95
|
+
if (this.currentLoader) {
|
|
96
|
+
this.currentLoader.abort();
|
|
97
|
+
this.currentLoader = null;
|
|
98
|
+
}
|
|
99
|
+
if (this._audioUrl) {
|
|
100
|
+
//this.statusMsg.innerHTML = 'Connecting...';
|
|
101
|
+
this.currentLoader = new XMLHttpRequest();
|
|
102
|
+
this.currentLoader.open("GET", this._audioUrl, true);
|
|
103
|
+
this.currentLoader.responseType = "arraybuffer";
|
|
104
|
+
this.currentLoader.onload = (e) => {
|
|
105
|
+
if (this.currentLoader) {
|
|
106
|
+
var data = this.currentLoader.response; // not responseText
|
|
107
|
+
//console.debug("Received data ", data.byteLength);
|
|
108
|
+
this.currentLoader = null;
|
|
109
|
+
this.loaded(data);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
this.currentLoader.onerror = (e) => {
|
|
113
|
+
console.error("Error downloading ...");
|
|
114
|
+
//this.statusMsg.innerHTML = 'Error loading audio file!';
|
|
115
|
+
this.currentLoader = null;
|
|
116
|
+
};
|
|
117
|
+
//this.statusMsg.innerHTML = 'Loading...';
|
|
118
|
+
this.currentLoader.send();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
loaded(data) {
|
|
122
|
+
//console.debug("Loaded");
|
|
123
|
+
this.status = 'Audio file loaded.';
|
|
124
|
+
//console.debug("Received data ", data.byteLength);
|
|
125
|
+
// Do not use Promise version, which does not work with Safari 13
|
|
126
|
+
if (this.aCtx) {
|
|
127
|
+
this.aCtx.decodeAudioData(data, (audioBuffer) => {
|
|
128
|
+
//console.debug("Audio Buffer Samplerate: ", audioBuffer.sampleRate)
|
|
129
|
+
this.audioClip = new AudioClip(audioBuffer);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
set audioData(audioBuffer) {
|
|
134
|
+
this.audioDisplayScrollPane.audioData = audioBuffer;
|
|
135
|
+
if (audioBuffer) {
|
|
136
|
+
let clip = new AudioClip(audioBuffer);
|
|
137
|
+
if (this.ap) {
|
|
138
|
+
this.ap.audioClip = clip;
|
|
139
|
+
this.playStartAction.disabled = false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this.playStartAction.disabled = true;
|
|
144
|
+
if (this.ap) {
|
|
145
|
+
this.ap.audioClip = null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this.playSelectionAction.disabled = true;
|
|
149
|
+
}
|
|
150
|
+
startSelectionDisabled() {
|
|
151
|
+
return !(this._audioClip && this.ap != null && !this.playStartAction.disabled && this._audioClip.selection);
|
|
152
|
+
}
|
|
153
|
+
set audioClip(audioClip) {
|
|
154
|
+
this._audioClip = audioClip;
|
|
155
|
+
let audioData = null;
|
|
156
|
+
let sel = null;
|
|
157
|
+
if (audioClip) {
|
|
158
|
+
audioData = audioClip.buffer;
|
|
159
|
+
sel = audioClip.selection;
|
|
160
|
+
if (this._audioClip) {
|
|
161
|
+
this._audioClip.addSelectionObserver((ac) => {
|
|
162
|
+
this.playSelectionAction.disabled = this.startSelectionDisabled();
|
|
163
|
+
// if(this.ap && ac.selection && this.autoplaySelectedCheckbox.checked){
|
|
164
|
+
// this.ap.startSelected()
|
|
165
|
+
// }
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (audioData) {
|
|
170
|
+
this.playStartAction.disabled = (!this.ap);
|
|
171
|
+
this.playSelectionAction.disabled = this.startSelectionDisabled();
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this.playStartAction.disabled = true;
|
|
175
|
+
this.playSelectionAction.disabled = true;
|
|
176
|
+
}
|
|
177
|
+
this.audioDisplayScrollPane.audioClip = audioClip;
|
|
178
|
+
if (this.ap) {
|
|
179
|
+
this.ap.audioClip = audioClip;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
get audioClip() {
|
|
183
|
+
return this._audioClip;
|
|
184
|
+
}
|
|
185
|
+
updatePlayPosition() {
|
|
186
|
+
if (this.ap && this.ap.playPositionFrames) {
|
|
187
|
+
this.audioDisplayScrollPane.playFramePosition = this.ap.playPositionFrames;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
audioPlayerUpdate(e) {
|
|
191
|
+
if (EventType.STARTED === e.type) {
|
|
192
|
+
this.status = 'Playback...';
|
|
193
|
+
this.updateTimerId = window.setInterval(() => this.updatePlayPosition(), 50);
|
|
194
|
+
this.playStartAction.disabled = true;
|
|
195
|
+
this.playSelectionAction.disabled = true;
|
|
196
|
+
this.playStopAction.disabled = false;
|
|
197
|
+
}
|
|
198
|
+
else if (EventType.ENDED === e.type) {
|
|
199
|
+
this.status = 'Ready.';
|
|
200
|
+
window.clearInterval(this.updateTimerId);
|
|
201
|
+
this.playStartAction.disabled = false;
|
|
202
|
+
this.playSelectionAction.disabled = this.startSelectionDisabled();
|
|
203
|
+
this.playStopAction.disabled = true;
|
|
204
|
+
}
|
|
205
|
+
this.ref.detectChanges();
|
|
206
|
+
}
|
|
207
|
+
error() {
|
|
208
|
+
this.status = 'ERROR';
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
AudioDisplayPlayer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplayPlayer, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
212
|
+
AudioDisplayPlayer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AudioDisplayPlayer, selector: "app-audiodisplayplayer", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
|
|
213
|
+
|
|
214
|
+
<audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
|
|
215
|
+
|
|
216
|
+
<audio-display-control [audioClip]="audioClip"
|
|
217
|
+
[playStartAction]="playStartAction"
|
|
218
|
+
[playSelectionAction]="playSelectionAction"
|
|
219
|
+
[playStopAction]="playStopAction"
|
|
220
|
+
[autoPlayOnSelectToggleAction]="ap?.autoPlayOnSelectToggleAction"
|
|
221
|
+
[zoomInAction]="zoomInAction"
|
|
222
|
+
[zoomOutAction]="zoomOutAction"
|
|
223
|
+
[zoomSelectedAction]="zoomSelectedAction"
|
|
224
|
+
[zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control><p>{{status}}
|
|
225
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0px;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#000000bf}\n"], components: [{ type: i2.AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: i3.AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplayPlayer, decorators: [{
|
|
227
|
+
type: Component,
|
|
228
|
+
args: [{
|
|
229
|
+
selector: 'app-audiodisplayplayer',
|
|
230
|
+
template: `
|
|
231
|
+
|
|
232
|
+
<audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
|
|
233
|
+
|
|
234
|
+
<audio-display-control [audioClip]="audioClip"
|
|
235
|
+
[playStartAction]="playStartAction"
|
|
236
|
+
[playSelectionAction]="playSelectionAction"
|
|
237
|
+
[playStopAction]="playStopAction"
|
|
238
|
+
[autoPlayOnSelectToggleAction]="ap?.autoPlayOnSelectToggleAction"
|
|
239
|
+
[zoomInAction]="zoomInAction"
|
|
240
|
+
[zoomOutAction]="zoomOutAction"
|
|
241
|
+
[zoomSelectedAction]="zoomSelectedAction"
|
|
242
|
+
[zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control><p>{{status}}
|
|
243
|
+
`,
|
|
244
|
+
styles: [
|
|
245
|
+
`:host {
|
|
246
|
+
display: flex;
|
|
247
|
+
flex-direction: column;
|
|
248
|
+
position: absolute;
|
|
249
|
+
bottom: 0px;
|
|
250
|
+
height: 100%;
|
|
251
|
+
width: 100%;
|
|
252
|
+
overflow: hidden;
|
|
253
|
+
padding: 20px;
|
|
254
|
+
z-index: 5;
|
|
255
|
+
box-sizing: border-box;
|
|
256
|
+
background-color: rgba(0, 0, 0, 0.75)
|
|
257
|
+
}`
|
|
258
|
+
]
|
|
259
|
+
}]
|
|
260
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { playStartAction: [{
|
|
261
|
+
type: Input
|
|
262
|
+
}], playStopAction: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], playSelectionAction: [{
|
|
265
|
+
type: Input
|
|
266
|
+
}], autoPlayOnSelectToggleAction: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], audioDisplayScrollPane: [{
|
|
269
|
+
type: ViewChild,
|
|
270
|
+
args: [AudioDisplayScrollPane, { static: true }]
|
|
271
|
+
}], audioData: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], audioClip: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}] } });
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fcGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL2F1ZGlvX3BsYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFFTSxLQUFLLEdBQ3ZCLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBQyxTQUFTLEVBQVksTUFBTSxhQUFhLENBQUE7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBeUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFFL0YsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFvQy9DLE1BQU0sT0FBTyxrQkFBa0I7SUFrQzdCLFlBQXNCLEtBQXFCLEVBQVksR0FBc0IsRUFBVyxJQUFlO1FBQWpGLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBakMvRixjQUFTLEdBQWMsSUFBSSxDQUFDO1FBbUJwQyxTQUFJLEdBQW9CLElBQUksQ0FBQztRQUNyQixlQUFVLEdBQWdCLElBQUksQ0FBQztRQUl2QyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFVeEMsdUNBQXVDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFDLGlCQUFpQixDQUFDO0lBRWhDLENBQUM7SUFFRCxRQUFRO1FBQ04sa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUE7UUFDcEUsSUFBSSxDQUFDLG9CQUFvQixHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUM3RSxJQUFJLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksR0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDO1FBQzFELElBQUk7WUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDeEQsSUFBRyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNaLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUM1QztTQUNGO1FBQUEsT0FBTSxHQUFHLEVBQUM7WUFDVCxJQUFHLEdBQUcsWUFBWSxLQUFLLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUMzQjtTQUNEO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQiw0Q0FBNEM7SUFDOUMsQ0FBQztJQUVELHFCQUFxQjtRQUNuQiwrQ0FBK0M7SUFDakQsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUNuRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxjQUFjLEdBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQXlCLEVBQUMsRUFBbUIsRUFBQyxFQUFFO1lBQ3JGLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFpQixFQUFDLEVBQUU7Z0JBQzdCLElBQUcsWUFBWSxLQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUcsRUFBRSxDQUFDLGFBQWEsSUFBSSxPQUFPLEtBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFDO29CQUNwRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ2pCO1lBQ0wsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUNsRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxrQkFBa0I7UUFDaEIsNENBQTRDO0lBQzlDLENBQUM7SUFHRCxJQUFJO0lBR0osQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBa0I7UUFDN0IsSUFBRyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFHRCxPQUFPO1FBQ0wsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFTyxJQUFJO1FBRVYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7UUFDRCxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUV0QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQjtvQkFDM0QsbURBQW1EO29CQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUE7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3ZDLHlEQUF5RDtnQkFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQyxDQUFBO1lBQ0QsMENBQTBDO1lBRTFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLElBQWlCO1FBRTlCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLG9CQUFvQixDQUFDO1FBQ25DLG1EQUFtRDtRQUVuRCxpRUFBaUU7UUFDakUsSUFBRyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzlDLG9FQUFvRTtnQkFDcEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUM3QyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELElBQ0ksU0FBUyxDQUFDLFdBQXdCO1FBQ2xDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ3BELElBQUcsV0FBVyxFQUFFO1lBQ1osSUFBSSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEMsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFDO2dCQUNSLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO2FBQ3hDO1NBQ047YUFBSTtZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtZQUNwQyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUM7Z0JBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQzVCO1NBQ0o7UUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQTtJQUN4QyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBRSxDQUFBO0lBQzVHLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxTQUEyQjtRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFDLFNBQVMsQ0FBQTtRQUN6QixJQUFJLFNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ3BDLElBQUksR0FBRyxHQUFnQixJQUFJLENBQUM7UUFDNUIsSUFBRyxTQUFTLEVBQUM7WUFDWCxTQUFTLEdBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUMzQixHQUFHLEdBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUN4QixJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFFMUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtvQkFDakUsd0VBQXdFO29CQUN4RSw0QkFBNEI7b0JBQzVCLElBQUk7Z0JBRU4sQ0FBQyxDQUFDLENBQUE7YUFDSDtTQUNGO1FBQ0QsSUFBRyxTQUFTLEVBQUU7WUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUE7U0FDaEU7YUFBSTtZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtZQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQTtTQUN6QztRQUVDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUMsU0FBUyxDQUFBO1FBQy9DLElBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtTQUM5QjtJQUNILENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUVELGtCQUFrQjtRQUVoQixJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUM1RTtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUFtQjtRQUNuQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFBO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN0QzthQUFNLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1lBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFM0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDOzsrR0FsUVUsa0JBQWtCO21HQUFsQixrQkFBa0Isa1dBK0JsQixzQkFBc0IsOERBN0R2Qjs7Ozs7Ozs7Ozs7OztHQWFUOzJGQWlCVSxrQkFBa0I7a0JBbEM5QixTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSx3QkFBd0I7b0JBRWxDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO29CQUNELE1BQU0sRUFBRTt3QkFDSjs7Ozs7Ozs7Ozs7O01BWUE7cUJBQUM7aUJBRU47OEpBT0MsZUFBZTtzQkFEZCxLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBR04sNEJBQTRCO3NCQUQzQixLQUFLO2dCQXFCRSxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQTZJL0MsU0FBUztzQkFEWixLQUFLO2dCQXVCRixTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBBZnRlclZpZXdJbml0LCBJbnB1dCwgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdDaGVja2VkLCBFbGVtZW50UmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5pbXBvcnQge0F1ZGlvQ2xpcCwgU2VsZWN0aW9ufSBmcm9tICcuL3BlcnNpc3RvcidcclxuaW1wb3J0IHtBdWRpb1BsYXllciwgQXVkaW9QbGF5ZXJMaXN0ZW5lciwgQXVkaW9QbGF5ZXJFdmVudCwgRXZlbnRUeXBlfSBmcm9tICcuL3BsYXliYWNrL3BsYXllcidcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVNjcm9sbFBhbmV9IGZyb20gXCIuL3VpL2F1ZGlvX2Rpc3BsYXlfc2Nyb2xsX3BhbmVcIjtcclxuaW1wb3J0IHtBdWRpb0NvbnRleHRQcm92aWRlcn0gZnJvbSBcIi4vY29udGV4dFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGlvZGlzcGxheXBsYXllcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPGF1ZGlvLWRpc3BsYXktc2Nyb2xsLXBhbmUgI2F1ZGlvRGlzcGxheVNjcm9sbFBhbmU+PC9hdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lPlxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LWNvbnRyb2wgW2F1ZGlvQ2xpcF09XCJhdWRpb0NsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXT1cImFwPy5hdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbUluQWN0aW9uXT1cInpvb21JbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21PdXRBY3Rpb25dPVwiem9vbU91dEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21TZWxlY3RlZEFjdGlvbl09XCJ6b29tU2VsZWN0ZWRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tRml0VG9QYW5lbEFjdGlvbl09XCJ6b29tRml0VG9QYW5lbEFjdGlvblwiPjwvYXVkaW8tZGlzcGxheS1jb250cm9sPjxwPnt7c3RhdHVzfX1cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gICAgICBgOmhvc3Qge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNzUpXHJcbiAgICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0Rpc3BsYXlQbGF5ZXIgaW1wbGVtZW50cyBBdWRpb1BsYXllckxpc3RlbmVyLCBPbkluaXQsQWZ0ZXJDb250ZW50SW5pdCxBZnRlckNvbnRlbnRDaGVja2VkLEFmdGVyVmlld0luaXQsQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgcHJpdmF0ZSBfYXVkaW9Vcmw6IHN0cmluZ3xudWxsPW51bGw7XHJcblxyXG4gIHBhcmVudEU6IEhUTUxFbGVtZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIEBJbnB1dCgpXHJcbiAgcGxheVN0b3BBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBASW5wdXQoKVxyXG4gIHBsYXlTZWxlY3Rpb25BY3Rpb246QWN0aW9uPHZvaWQ+XHJcbiAgQElucHV0KClcclxuICBhdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uITpBY3Rpb248Ym9vbGVhbj47XHJcblxyXG4gIHpvb21GaXRUb1BhbmVsQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbVNlbGVjdGVkQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbUluQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbU91dEFjdGlvbiE6QWN0aW9uPHZvaWQ+O1xyXG5cclxuXHJcbiAgYUN0eDogQXVkaW9Db250ZXh0fG51bGw9bnVsbDtcclxuICBwcml2YXRlIF9hdWRpb0NsaXA6QXVkaW9DbGlwfG51bGw9bnVsbDtcclxuICBhcDogQXVkaW9QbGF5ZXJ8dW5kZWZpbmVkO1xyXG4gIHN0YXR1czogc3RyaW5nO1xyXG5cclxuICBjdXJyZW50TG9hZGVyOiBYTUxIdHRwUmVxdWVzdCB8IG51bGw9bnVsbDtcclxuXHJcbiAgYXVkaW86IGFueTtcclxuICB1cGRhdGVUaW1lcklkOiBhbnk7XHJcblxyXG5cclxuICBAVmlld0NoaWxkKEF1ZGlvRGlzcGxheVNjcm9sbFBhbmUsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSBhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lITogQXVkaW9EaXNwbGF5U2Nyb2xsUGFuZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJvdGVjdGVkIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJvdGVjdGVkIGVSZWY6RWxlbWVudFJlZikge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcImNvbnN0cnVjdG9yOiBcIit0aGlzLmFjKTtcclxuICAgICAgdGhpcy5wYXJlbnRFPXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24gPSBuZXcgQWN0aW9uKFwiU3RhcnRcIik7XHJcbiAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb249bmV3IEFjdGlvbihcIlBsYXkgc2VsZWN0ZWRcIik7XHJcbiAgICB0aGlzLnBsYXlTdG9wQWN0aW9uID0gbmV3IEFjdGlvbihcIlN0b3BcIik7XHJcbiAgICB0aGlzLnN0YXR1cz1cIlBsYXllciBjcmVhdGVkLlwiO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiT25Jbml0OiBcIit0aGlzLmFjKTtcclxuICAgIHRoaXMuem9vbVNlbGVjdGVkQWN0aW9uPXRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS56b29tU2VsZWN0ZWRBY3Rpb25cclxuICAgICAgdGhpcy56b29tRml0VG9QYW5lbEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUZpdFRvUGFuZWxBY3Rpb247XHJcbiAgICB0aGlzLnpvb21PdXRBY3Rpb249dGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnpvb21PdXRBY3Rpb247XHJcbiAgICB0aGlzLnpvb21JbkFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUluQWN0aW9uO1xyXG4gICAgIHRyeSB7XHJcbiAgICAgICB0aGlzLmFDdHggPSBBdWRpb0NvbnRleHRQcm92aWRlci5hdWRpb0NvbnRleHRJbnN0YW5jZSgpO1xyXG4gICAgICAgaWYodGhpcy5hQ3R4KSB7XHJcbiAgICAgICAgIHRoaXMuYXAgPSBuZXcgQXVkaW9QbGF5ZXIodGhpcy5hQ3R4LCB0aGlzKTtcclxuICAgICAgIH1cclxuICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgIGlmKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XHJcbiAgICAgICAgIHRoaXMuc3RhdHVzID0gZXJyLm1lc3NhZ2U7XHJcbiAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpe1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIkFmdGVyQ29udGVudEluaXQ6IFwiK3RoaXMuYWMpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCl7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiQWZ0ZXJDb250ZW50Q2hlY2tlZDogXCIrdGhpcy5hYyk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgIGlmICh0aGlzLmFDdHggJiYgdGhpcy5hcCkge1xyXG4gICAgICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24ub25BY3Rpb24gPSAoKSA9PiB0aGlzLmFwPy5zdGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLm9uQWN0aW9uID0gKCkgPT4gdGhpcy5hcD8uc3RhcnRTZWxlY3RlZCgpO1xyXG4gICAgICAgICAgdGhpcy5wbGF5U3RvcEFjdGlvbi5vbkFjdGlvbiA9ICgpID0+IHRoaXMuYXA/LnN0b3AoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICBsZXQgaGVpZ2h0TGlzdGVuZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG1yczpBcnJheTxNdXRhdGlvblJlY29yZD4sbW86TXV0YXRpb25PYnNlcnZlcik9PntcclxuICAgICAgICAgIG1ycy5mb3JFYWNoKChtcjpNdXRhdGlvblJlY29yZCk9PntcclxuICAgICAgICAgICAgICBpZignYXR0cmlidXRlcyc9PT1tci50eXBlICYmICgnY2xhc3MnPT09bXIuYXR0cmlidXRlTmFtZSB8fCAnc3R5bGUnPT09bXIuYXR0cmlidXRlTmFtZSkpe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxheW91dCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHRMaXN0ZW5lci5vYnNlcnZlKHRoaXMucGFyZW50RSx7YXR0cmlidXRlczogdHJ1ZSxjaGlsZExpc3Q6IHRydWUsIGNoYXJhY3RlckRhdGE6IHRydWV9KTtcclxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IFBhcmFtcykgPT4ge1xyXG4gICAgICBpZiAocGFyYW1zWyd1cmwnXSkge1xyXG4gICAgICAgIHRoaXMuYXVkaW9VcmwgPSBwYXJhbXNbJ3VybCddO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKXtcclxuICAgIC8vY29uc29sZS5sb2coXCJBZnRlclZpZXdDaGVja2VkOiBcIit0aGlzLmFjKTtcclxuICB9XHJcblxyXG5cclxuICBpbml0KCkge1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBsYXlvdXQoKXtcclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5sYXlvdXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBhdWRpb1VybCgpOiBzdHJpbmd8bnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Vcmw7XHJcbiAgfVxyXG5cclxuICBzZXQgYXVkaW9VcmwodmFsdWU6IHN0cmluZ3xudWxsKSB7XHJcbiAgICBpZih0aGlzLmFwKSB7XHJcbiAgICAgIHRoaXMuYXAuc3RvcCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fYXVkaW9VcmwgPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXJ0ZWQoKSB7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJQbGF5IHN0YXJ0ZWRcIik7XHJcbiAgICB0aGlzLnN0YXR1cyA9ICdQbGF5aW5nLi4uJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50TG9hZGVyKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5hYm9ydCgpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5fYXVkaW9VcmwpIHtcclxuICAgICAgLy90aGlzLnN0YXR1c01zZy5pbm5lckhUTUwgPSAnQ29ubmVjdGluZy4uLic7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIub3BlbihcIkdFVFwiLCB0aGlzLl9hdWRpb1VybCwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5yZXNwb25zZVR5cGUgPSBcImFycmF5YnVmZmVyXCI7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2FkZXIpIHtcclxuXHJcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuY3VycmVudExvYWRlci5yZXNwb25zZTsgLy8gbm90IHJlc3BvbnNlVGV4dFxyXG4gICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUmVjZWl2ZWQgZGF0YSBcIiwgZGF0YS5ieXRlTGVuZ3RoKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudExvYWRlciA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZChkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50TG9hZGVyLm9uZXJyb3IgPSAoZSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkb3dubG9hZGluZyAuLi5cIik7XHJcbiAgICAgICAgLy90aGlzLnN0YXR1c01zZy5pbm5lckhUTUwgPSAnRXJyb3IgbG9hZGluZyBhdWRpbyBmaWxlISc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TG9hZGVyID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICAvL3RoaXMuc3RhdHVzTXNnLmlubmVySFRNTCA9ICdMb2FkaW5nLi4uJztcclxuXHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5zZW5kKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRlZChkYXRhOiBBcnJheUJ1ZmZlcikge1xyXG5cclxuICAgIC8vY29uc29sZS5kZWJ1ZyhcIkxvYWRlZFwiKTtcclxuICAgIHRoaXMuc3RhdHVzID0gJ0F1ZGlvIGZpbGUgbG9hZGVkLic7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJSZWNlaXZlZCBkYXRhIFwiLCBkYXRhLmJ5dGVMZW5ndGgpO1xyXG5cclxuICAgIC8vIERvIG5vdCB1c2UgUHJvbWlzZSB2ZXJzaW9uLCB3aGljaCBkb2VzIG5vdCB3b3JrIHdpdGggU2FmYXJpIDEzXHJcbiAgICBpZih0aGlzLmFDdHgpIHtcclxuICAgICAgdGhpcy5hQ3R4LmRlY29kZUF1ZGlvRGF0YShkYXRhLCAoYXVkaW9CdWZmZXIpID0+IHtcclxuICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJBdWRpbyBCdWZmZXIgU2FtcGxlcmF0ZTogXCIsIGF1ZGlvQnVmZmVyLnNhbXBsZVJhdGUpXHJcbiAgICAgICAgdGhpcy5hdWRpb0NsaXAgPSBuZXcgQXVkaW9DbGlwKGF1ZGlvQnVmZmVyKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGF1ZGlvRGF0YShhdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIpe1xyXG4gICAgICB0aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuYXVkaW9EYXRhID0gYXVkaW9CdWZmZXI7XHJcbiAgICAgIGlmKGF1ZGlvQnVmZmVyKSB7XHJcbiAgICAgICAgICBsZXQgY2xpcCA9IG5ldyBBdWRpb0NsaXAoYXVkaW9CdWZmZXIpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXApe1xyXG4gICAgICAgICAgICAgIHRoaXMuYXAuYXVkaW9DbGlwID0gY2xpcDtcclxuICAgICAgICAgICAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gZmFsc2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKHRoaXMuYXApe1xyXG4gICAgICAgICAgICAgIHRoaXMuYXAuYXVkaW9DbGlwID0gbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkPXRydWVcclxuICB9XHJcblxyXG4gIHN0YXJ0U2VsZWN0aW9uRGlzYWJsZWQoKXtcclxuICAgIHJldHVybiAhKHRoaXMuX2F1ZGlvQ2xpcCAmJiB0aGlzLmFwIT1udWxsICYmICF0aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCAmJiB0aGlzLl9hdWRpb0NsaXAuc2VsZWN0aW9uIClcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGF1ZGlvQ2xpcChhdWRpb0NsaXA6IEF1ZGlvQ2xpcCB8IG51bGwpIHtcclxuICAgIHRoaXMuX2F1ZGlvQ2xpcD1hdWRpb0NsaXBcclxuICAgIGxldCBhdWRpb0RhdGE6QXVkaW9CdWZmZXJ8bnVsbD1udWxsO1xyXG4gICAgbGV0IHNlbDpTZWxlY3Rpb258bnVsbD1udWxsO1xyXG4gICAgaWYoYXVkaW9DbGlwKXtcclxuICAgICAgYXVkaW9EYXRhPWF1ZGlvQ2xpcC5idWZmZXI7XHJcbiAgICAgIHNlbD1hdWRpb0NsaXAuc2VsZWN0aW9uO1xyXG4gICAgICBpZih0aGlzLl9hdWRpb0NsaXApIHtcclxuICAgICAgICB0aGlzLl9hdWRpb0NsaXAuYWRkU2VsZWN0aW9uT2JzZXJ2ZXIoKGFjKSA9PiB7XHJcblxyXG4gICAgICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkID0gdGhpcy5zdGFydFNlbGVjdGlvbkRpc2FibGVkKClcclxuICAgICAgICAgIC8vIGlmKHRoaXMuYXAgJiYgYWMuc2VsZWN0aW9uICYmIHRoaXMuYXV0b3BsYXlTZWxlY3RlZENoZWNrYm94LmNoZWNrZWQpe1xyXG4gICAgICAgICAgLy8gICB0aGlzLmFwLnN0YXJ0U2VsZWN0ZWQoKVxyXG4gICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZihhdWRpb0RhdGEpIHtcclxuICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSghdGhpcy5hcClcclxuICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkPXRoaXMuc3RhcnRTZWxlY3Rpb25EaXNhYmxlZCgpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSB0cnVlXHJcbiAgICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5kaXNhYmxlZD10cnVlXHJcbiAgfVxyXG5cclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5hdWRpb0NsaXA9YXVkaW9DbGlwXHJcbiAgICBpZih0aGlzLmFwKSB7XHJcbiAgICAgIHRoaXMuYXAuYXVkaW9DbGlwID0gYXVkaW9DbGlwXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9DbGlwKCk6QXVkaW9DbGlwfG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9DbGlwXHJcbiAgfVxyXG5cclxuICB1cGRhdGVQbGF5UG9zaXRpb24oKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuYXAgJiYgdGhpcy5hcC5wbGF5UG9zaXRpb25GcmFtZXMpIHtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnBsYXlGcmFtZVBvc2l0aW9uID0gdGhpcy5hcC5wbGF5UG9zaXRpb25GcmFtZXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhdWRpb1BsYXllclVwZGF0ZShlOiBBdWRpb1BsYXllckV2ZW50KSB7XHJcbiAgICBpZiAoRXZlbnRUeXBlLlNUQVJURUQgPT09IGUudHlwZSkge1xyXG4gICAgICB0aGlzLnN0YXR1cyA9ICdQbGF5YmFjay4uLic7XHJcbiAgICAgIHRoaXMudXBkYXRlVGltZXJJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB0aGlzLnVwZGF0ZVBsYXlQb3NpdGlvbigpLCA1MCk7XHJcbiAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkPXRydWVcclxuICAgICAgdGhpcy5wbGF5U3RvcEFjdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChFdmVudFR5cGUuRU5ERUQgPT09IGUudHlwZSkge1xyXG4gICAgICB0aGlzLnN0YXR1cyA9ICdSZWFkeS4nO1xyXG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLnVwZGF0ZVRpbWVySWQpO1xyXG4gICAgICB0aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb24uZGlzYWJsZWQ9dGhpcy5zdGFydFNlbGVjdGlvbkRpc2FibGVkKClcclxuICAgICAgdGhpcy5wbGF5U3RvcEFjdGlvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICB9XHJcblxyXG4gIGVycm9yKCkge1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnRVJST1InO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
|