speechrecorderng 3.9.7 → 3.9.9
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/README.md +478 -12
- package/esm2022/lib/action/action.mjs +1 -1
- package/esm2022/lib/audio/array_audio_buffer.mjs +1 -1
- package/esm2022/lib/audio/array_audio_buffer_input_stream.mjs +1 -1
- package/esm2022/lib/audio/audio_data_holder.mjs +1 -1
- package/esm2022/lib/audio/audio_display.mjs +4 -4
- package/esm2022/lib/audio/audio_player.mjs +4 -4
- package/esm2022/lib/audio/capture/capture.mjs +1 -1
- package/esm2022/lib/audio/context.mjs +1 -1
- package/esm2022/lib/audio/dsp/level_measure.mjs +5 -4
- package/esm2022/lib/audio/impl/wavreader.mjs +1 -1
- package/esm2022/lib/audio/impl/wavwriter.mjs +1 -1
- package/esm2022/lib/audio/inddb_audio_buffer.mjs +1 -1
- package/esm2022/lib/audio/io/stream.mjs +1 -1
- package/esm2022/lib/audio/net_audio_buffer.mjs +1 -1
- package/esm2022/lib/audio/persistor.mjs +1 -1
- package/esm2022/lib/audio/playback/array_audio_buffer_source_node.mjs +1 -1
- package/esm2022/lib/audio/playback/audio_source_node.mjs +1 -1
- package/esm2022/lib/audio/playback/audio_source_worklet_module_loader.mjs +1 -1
- package/esm2022/lib/audio/playback/inddb_audio_buffer_source_node.mjs +1 -1
- package/esm2022/lib/audio/playback/net_audio_buffer_source_node.mjs +1 -1
- package/esm2022/lib/audio/playback/player.mjs +1 -1
- package/esm2022/lib/audio/ui/audio_canvas_layer_comp.mjs +7 -7
- package/esm2022/lib/audio/ui/audio_display_control.mjs +4 -4
- package/esm2022/lib/audio/ui/audio_display_scroll_pane.mjs +4 -4
- package/esm2022/lib/audio/ui/audiosignal.mjs +4 -4
- package/esm2022/lib/audio/ui/container.mjs +4 -4
- package/esm2022/lib/audio/ui/livelevel.mjs +4 -4
- package/esm2022/lib/audio/ui/scroll_pane_horizontal.mjs +3 -3
- package/esm2022/lib/audio/ui/sonagram.mjs +4 -4
- package/esm2022/lib/db/inddb.mjs +4 -4
- package/esm2022/lib/dsp/utils.mjs +1 -1
- package/esm2022/lib/io/BinaryReader.mjs +1 -1
- package/esm2022/lib/io/BinaryWriter.mjs +1 -1
- package/esm2022/lib/io/stream.mjs +1 -1
- package/esm2022/lib/math/complex.mjs +1 -1
- package/esm2022/lib/math/dft.mjs +1 -1
- package/esm2022/lib/net/uploader.mjs +1 -1
- package/esm2022/lib/recorder_component.mjs +1 -1
- package/esm2022/lib/speechrecorder/project/project.mjs +1 -1
- package/esm2022/lib/speechrecorder/project/project.service.mjs +4 -4
- package/esm2022/lib/speechrecorder/recording.mjs +1 -1
- package/esm2022/lib/speechrecorder/recordings/basic_recording.service.mjs +1 -1
- package/esm2022/lib/speechrecorder/recordings/recordings.service.mjs +4 -4
- package/esm2022/lib/speechrecorder/script/script.mjs +1 -1
- package/esm2022/lib/speechrecorder/script/script.service.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/audiorecorder.mjs +7 -7
- package/esm2022/lib/speechrecorder/session/basicrecorder.mjs +1 -1
- package/esm2022/lib/speechrecorder/session/controlpanel.mjs +22 -22
- package/esm2022/lib/speechrecorder/session/item.mjs +1 -1
- package/esm2022/lib/speechrecorder/session/progress.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/prompting.mjs +16 -16
- package/esm2022/lib/speechrecorder/session/recorder_combi_pane.mjs +3 -3
- package/esm2022/lib/speechrecorder/session/recording_file_cache.mjs +1 -1
- package/esm2022/lib/speechrecorder/session/recording_list.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file.mjs +1 -1
- package/esm2022/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/session.service.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/session_finished_dialog.mjs +3 -3
- package/esm2022/lib/speechrecorder/session/sessionmanager.mjs +4 -4
- package/esm2022/lib/speechrecorder/session/warning_bar.mjs +4 -4
- package/esm2022/lib/speechrecorder/spruploader.mjs +4 -4
- package/esm2022/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +4 -4
- package/esm2022/lib/speechrecorderng.component.mjs +4 -4
- package/esm2022/lib/speechrecorderng.module.mjs +9 -13
- package/esm2022/lib/spr.config.mjs +3 -3
- package/esm2022/lib/spr.module.version.mjs +2 -2
- package/esm2022/lib/ui/canvas_layer_comp.mjs +4 -4
- package/esm2022/lib/ui/intersection-observer.directive.mjs +4 -4
- package/esm2022/lib/ui/message_dialog.mjs +3 -3
- package/esm2022/lib/ui/recordingitem_display.mjs +7 -7
- package/esm2022/lib/ui/responsive_component.mjs +3 -3
- package/esm2022/lib/utils/scrollIntoViewToBottom.mjs +4 -4
- package/esm2022/lib/utils/ua-parser.mjs +1 -1
- package/esm2022/lib/utils/utils.mjs +1 -1
- package/esm2022/lib/utils/wake_lock.mjs +1 -1
- package/fesm2022/speechrecorderng.mjs +171 -174
- package/fesm2022/speechrecorderng.mjs.map +1 -1
- package/lib/speechrecorderng.module.d.ts +11 -12
- package/lib/spr.module.version.d.ts +1 -1
- package/package.json +13 -13
|
@@ -82,4 +82,4 @@ export class BinaryByteReader {
|
|
|
82
82
|
return val;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5UmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO0lBS3pCLFlBQVksR0FBZ0I7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELEdBQUc7UUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBaUI7UUFDbEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFD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WixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2Qsc0VBQXNFO1FBQ3RFLHlCQUF5QjtRQUN6QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4gICAgZXhwb3J0IGNsYXNzIEJpbmFyeUJ5dGVSZWFkZXIge1xyXG4gICAgICAgIGJ1ZjogVWludDhBcnJheTtcclxuICAgICAgICBzYnVmOiBJbnQ4QXJyYXk7XHJcbiAgICAgICAgcHJpdmF0ZSBfcG9zOiBudW1iZXI7XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGJ1ZjogQXJyYXlCdWZmZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5idWYgPSBuZXcgVWludDhBcnJheShidWYpO1xyXG4gICAgICAgICAgICB0aGlzLnNidWYgPSBuZXcgSW50OEFycmF5KGJ1Zik7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcyA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnZXQgcG9zKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3M7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXQgcG9zKHBvczogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcyA9IHBvcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWYuYnl0ZUxlbmd0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVvZigpOiBib29sZWFuIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLl9wb3MgPj0gdGhpcy5idWYuYnl0ZUxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBza2lwKGJ5dGVDb3VuZDogbnVtYmVyKXtcclxuICAgICAgICAgICAgdGhpcy5wb3MgKz0gNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWRBc2NpaShzaXplOiBudW1iZXIpOiBTdHJpbmcge1xyXG4gICAgICAgICAgICBsZXQgaTtcclxuICAgICAgICAgICAgbGV0IHR4dCA9ICcnO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0eHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmJ1Zlt0aGlzLl9wb3MrK10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0eHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWFkSW50OCgpOiBudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuYnVmW3RoaXMuX3BvcysrXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWFkSW50MTZCRSgpOiBudW1iZXIge1xyXG4gICAgICAgICAgICBjb25zdCBiMCA9IHRoaXMuc2J1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICAgIGNvbnN0IGIxID0gdGhpcy5idWZbdGhpcy5fcG9zKytdO1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSAoIGIwIDw8IDggKSB8IGIxO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZWFkSW50MTZMRSgpOiBudW1iZXIge1xyXG4gICAgICAgICAgICBjb25zdCBiMCA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcclxuICAgICAgICAgICAgY29uc3QgYjEgPSB0aGlzLnNidWZbdGhpcy5fcG9zKytdO1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSAoIGIxIDw8IDggKSB8IGIwO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZWFkVWludDE2TEUoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VnID0gbmV3IFVpbnQ4QXJyYXkoMik7XHJcbiAgICAgICAgICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHNlZ1tpXSA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgdmFsID0gMDtcclxuICAgICAgICAgICAgdmFsIHw9IHNlZ1sxXSA8PCA4O1xyXG4gICAgICAgICAgICB2YWwgfD0gc2VnWzBdO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVhZEludDMyQkUoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VnID0gbmV3IFVpbnQ4QXJyYXkoNCk7XHJcbiAgICAgICAgICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHNlZ1tpXSA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSBzZWdbMF0gPDwgMjQgfCBzZWdbMV0gPDwgMTYgfCBzZWdbMl0gPDwgOCB8IHNlZ1szXTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWRVaW50MzJMRSgpOiBudW1iZXIge1xyXG4gICAgICAgICAgICAgLy8gdGhpcyBkaXJjZXQgZGF0YSB2aWV3IGRvZXMgbm90IHdvcmsgd2l0aCBub2RlanM6IGFsbCBhdmx1ZXMgYXJlIHplcm9cclxuICAgICAgICAgICAgLy8gdmFyIHNlZz1uZXcgVWludDhBcnJheSh0aGlzLmJ1Zix0aGlzLl9wb3MsNCk7XHJcbiAgICAgICAgICAgIC8vIC4uLiBjb3B5IHZhbHVlIGJ5IHZhbHVlXHJcbiAgICAgICAgICAgIGNvbnN0IHNlZyA9IG5ldyBVaW50OEFycmF5KDQpO1xyXG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBzZWdbaV0gPSB0aGlzLmJ1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJsZW46XCIsIHNlZy5sZW5ndGgsIFwiIFwiLCBzZWcuYnl0ZUxlbmd0aCwgXCIgXCIsIHNlZ1swXSwgXCIgXCIsIHNlZ1sxXSwgXCIgXCIsIHNlZ1syXSwgXCIgXCIsIHNlZ1szXSk7XHJcbiAgICAgICAgICAgIGxldCB2YWwgPSAwO1xyXG4gICAgICAgICAgICB2YWwgfD0gc2VnWzNdIDw8IDI0O1xyXG4gICAgICAgICAgICB2YWwgfD0gc2VnWzJdIDw8IDE2O1xyXG4gICAgICAgICAgICB2YWwgfD0gc2VnWzFdIDw8IDg7XHJcbiAgICAgICAgICAgIHZhbCB8PSBzZWdbMF07XHJcbiAgICAgICAgICAgIC8vIHZhciB2YWwgPSA8IDI0KHNlZ1szXSA8KSB8IChzZWdbMl0gPDwgMTYpIHwgKHNlZ1sxXSA8PCA4KSB8IHNlZ1swXTtcclxuICAgICAgICAgICAgLy8gdGhpcy5fcG9zPXRoaXMuX3Bvcys0O1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4iXX0=
|
|
@@ -71,4 +71,4 @@ export class BinaryByteWriter {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5V3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVdyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO2FBQ2xCLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQUkvQjtRQUNJLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBRTdCLE9BQVEsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUcsQ0FBQztZQUNyRCxtQkFBbUI7WUFDakIsSUFBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7WUFDNUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUM7Z0JBQ2pCLEdBQUcsR0FBRyxRQUFRLENBQUM7WUFDbkIsQ0FBQztZQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztZQUU1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQixJQUFJ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QyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDekUsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuICAgIGV4cG9ydCBjbGFzcyBCaW5hcnlCeXRlV3JpdGVyIHtcclxuICAgICAgICBzdGF0aWMgREVGQVVMVF9TSVpFX0lOQyA9IDEwMjQ7XHJcbiAgICAgICAgYnVmOiBBcnJheUJ1ZmZlcjtcclxuICAgICAgICBwcml2YXRlIF9wb3M6IG51bWJlcjtcclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSBCaW5hcnlCeXRlV3JpdGVyLkRFRkFVTFRfU0laRV9JTkM7XHJcbiAgICAgICAgICAgIHRoaXMuYnVmID0gbmV3IEFycmF5QnVmZmVyKHNpemUpO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3MgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0IHBvcygpOiBudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW5zdXJlQ2FwYWNpdHkobnVtQnl0ZXM6IG51bWJlcikge1xyXG5cclxuICAgICAgICAgIHdoaWxlICggdGhpcy5fcG9zICsgbnVtQnl0ZXMgPj0gdGhpcy5idWYuYnl0ZUxlbmd0aCApIHtcclxuICAgICAgICAgICAgLy8gYnVmZmVyIGluY3JlbWVudFxyXG4gICAgICAgICAgICAgIGxldCBpbmMgPSBCaW5hcnlCeXRlV3JpdGVyLkRFRkFVTFRfU0laRV9JTkM7XHJcbiAgICAgICAgICAgICAgaWYgKGluYyA8IG51bUJ5dGVzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGluYyA9IG51bUJ5dGVzO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBjb25zdCBuZXdTaXplID0gdGhpcy5idWYuYnl0ZUxlbmd0aCArIGluYztcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGFyck9sZCA9IG5ldyBVaW50OEFycmF5KHRoaXMuYnVmLCAwLCB0aGlzLl9wb3MpO1xyXG4gICAgICAgICAgICBjb25zdCBhcnJOZXcgPSBuZXcgVWludDhBcnJheShuZXdTaXplKTtcclxuICAgICAgICAgICAgYXJyTmV3LnNldChhcnJPbGQpO1xyXG4gICAgICAgICAgICB0aGlzLmJ1ZiA9IGFyck5ldy5idWZmZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB3cml0ZVVpbnQ4KHZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgICB0aGlzLmVuc3VyZUNhcGFjaXR5KDEpO1xyXG4gICAgICAgICAgY29uc3QgdmFsVmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZiwgdGhpcy5fcG9zLCAxKTtcclxuICAgICAgICAgIHZhbFZpZXcuc2V0VWludDgoMCwgdmFsKTtcclxuICAgICAgICAgIHRoaXMuX3BvcysrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIHdyaXRlVWludDE2KHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoMik7XHJcbiAgICAgICAgY29uc3QgdmFsVmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZiwgdGhpcy5fcG9zLCAyKTtcclxuICAgICAgICB2YWxWaWV3LnNldFVpbnQxNigwLCB2YWwsIGxlKTtcclxuICAgICAgICB0aGlzLl9wb3MgKz0gMjtcclxuXHJcbiAgICAgIH1cclxuICAgICAgd3JpdGVJbnQxNih2YWw6IG51bWJlciwgbGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVuc3VyZUNhcGFjaXR5KDIpO1xyXG4gICAgICAgIGNvbnN0IHZhbFZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIHRoaXMuX3BvcywgMik7XHJcbiAgICAgICAgdmFsVmlldy5zZXRJbnQxNigwLCB2YWwsIGxlKTtcclxuICAgICAgICB0aGlzLl9wb3MgKz0gMjtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIHdyaXRlVWludDMyKHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoNCk7XHJcbiAgICAgICAgY29uc3QgdmFsVmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZiwgdGhpcy5fcG9zLCA0KTtcclxuICAgICAgICB2YWxWaWV3LnNldFVpbnQzMigwLCB2YWwsIGxlKTtcclxuICAgICAgICB0aGlzLl9wb3MgKz0gNDtcclxuICAgICAgfVxyXG5cclxuICAgICAgd3JpdGVJbnQzMih2YWw6IG51bWJlciwgbGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVuc3VyZUNhcGFjaXR5KDQpO1xyXG4gICAgICAgIGNvbnN0IHZhbFZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIHRoaXMuX3BvcywgNCk7XHJcbiAgICAgICAgdmFsVmlldy5zZXRJbnQzMigwLCB2YWwsIGxlKTtcclxuICAgICAgICB0aGlzLl9wb3MgKz0gNDtcclxuICAgICAgfVxyXG4gICAgICAgIGZpbmlzaCgpOiBVaW50OEFycmF5IHtcclxuICAgICAgICAgIGNvbnN0IGZpbmFsQXJyID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fcG9zKTtcclxuICAgICAgICAgIGNvbnN0IGR2ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCAwLCB0aGlzLl9wb3MpO1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9wb3M7IGkrKykge1xyXG4gICAgICAgICAgICBmaW5hbEFycltpXSA9IGR2LmdldFVpbnQ4KGkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGZpbmFsQXJyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgd3JpdGVBc2NpaSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICAgICAgbGV0IGk7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgYXNjaWlDb2RlID0gdGV4dC5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICAgIGlmIChhc2NpaUNvZGUgPCAwIHx8IGFzY2lpQ29kZSA+IDI1NSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYW4gQVNDSUkgY2hhcmFjdGVyIGF0IGNoYXIgJyArIGkgKyAnIGluICcgKyB0ZXh0KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy53cml0ZVVpbnQ4KGFzY2lpQ29kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuIl19
|
|
@@ -256,4 +256,4 @@ export class Float32ArrayChunkerOutStream {
|
|
|
256
256
|
this.outStream.close();
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBY2hDLE1BQU0sT0FBTywyQkFBMkI7SUFHdEMsWUFBb0IsZUFBdUMsRUFBUyxTQUFjLENBQUMsRUFBUyxNQUF3QjtRQUFoRyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFGNUcsYUFBUSxHQUFDLENBQUMsQ0FBQztRQUNYLGVBQVUsR0FBQyxDQUFDLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQztZQUNkLE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7U0FDL0U7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDO1lBQzNDLE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFHLElBQUksQ0FBQyxRQUFRLElBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsUUFBUSxJQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQTRCO1FBQy9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBQyxDQUFDLENBQUM7UUFDWCxJQUFHLElBQUksQ0FBQyxN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QUksQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUVqQjthQUNGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUMxQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwRDtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUdELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXQzMkFycmF5SW5wdXRTdHJlYW17XHJcbiAgcmVhZChidWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+KTogbnVtYmVyO1xyXG4gIHNraXBGcmFtZXMobjpudW1iZXIpOnZvaWQ7XHJcbiAgY2xvc2UoKTp2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFzeW5jRmxvYXQzMkFycmF5SW5wdXRTdHJlYW17XHJcbiAgcmVhZE9icyhidWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+KTpPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgc2tpcEZyYW1lcyhuOm51bWJlcik6dm9pZDtcclxuICBjbG9zZSgpOnZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFZGl0RmxvYXQzMkFycmF5SW5wdXRTdHJlYW0gaW1wbGVtZW50cyBGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbXtcclxuICBwcml2YXRlIGZyYW1lUG9zPTA7XHJcbiAgcHJpdmF0ZSByZWFkRnJhbWVzPTA7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3JjSW5wdXRTdHJlYW06RmxvYXQzMkFycmF5SW5wdXRTdHJlYW0scHJpdmF0ZSBvZmZzZXQ6bnVtYmVyPTAscHJpdmF0ZSBsZW5ndGg/Om51bWJlcnx1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLm9mZnNldDwwKXtcclxuICAgICAgICB0aHJvdyBFcnJvcignUGFyYW1ldGVyIG9mZnNldCBtdXN0IGJlIHVuZGVmaW5lZCBvciBncmVhdGVyIG9yIGVxdWFsIHplcm8uJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sZW5ndGghPT11bmRlZmluZWQgJiYgdGhpcy5sZW5ndGg8MCl7XHJcbiAgICAgIHRocm93IEVycm9yKCdQYXJhbWV0ZXIgbGVuZ3RoIG11c3QgYmUgdW5kZWZpbmVkIG9yIGdyZWF0ZXIgb3IgZXF1YWwgemVyby4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2tpcFRvT2Zmc2V0KCl7XHJcbiAgICBpZih0aGlzLmZyYW1lUG9zPT0wICYmIHRoaXMub2Zmc2V0PjApe1xyXG4gICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5za2lwRnJhbWVzKHRoaXMub2Zmc2V0KTtcclxuICAgICAgdGhpcy5mcmFtZVBvcys9dGhpcy5vZmZzZXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWFkKGJ1ZmZlcnM6IEFycmF5PEZsb2F0MzJBcnJheT4pOiBudW1iZXJ7XHJcbiAgICB0aGlzLnNraXBUb09mZnNldCgpO1xyXG4gICAgbGV0IHJlYWQ9MDtcclxuICAgIGlmKHRoaXMubGVuZ3RoPT09dW5kZWZpbmVkKXtcclxuICAgICAgcmVhZCA9IHRoaXMuX3NyY0lucHV0U3RyZWFtLnJlYWQoYnVmZmVycyk7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIGlmIChidWZmZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgYnVmc0NoMCA9IGJ1ZmZlcnNbMF07XHJcbiAgICAgICAgbGV0IGJ1ZnNMZW4gPSBidWZzQ2gwLmxlbmd0aDtcclxuICAgICAgICBsZXQgYXZhaWwgPSB0aGlzLmxlbmd0aCAtIHRoaXMucmVhZEZyYW1lcztcclxuICAgICAgICBpZiAoYXZhaWwgPiAwKSB7XHJcbiAgICAgICAgICBpZiAoYXZhaWwgPiBidWZzTGVuKSB7XHJcbiAgICAgICAgICAgIHJlYWQgPSB0aGlzLl9zcmNJbnB1dFN0cmVhbS5yZWFkKGJ1ZmZlcnMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdGVtcG9yYXJ5IGJ1ZmZlcnMgcmVxdWlyZWRcclxuICAgICAgICAgICAgbGV0IHRtcEJ1ZnMgPSBuZXcgQXJyYXk8RmxvYXQzMkFycmF5PihidWZmZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCBidWZmZXJzLmxlbmd0aDsgY2grKykge1xyXG4gICAgICAgICAgICAgIHRtcEJ1ZnNbY2hdID0gbmV3IEZsb2F0MzJBcnJheShhdmFpbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVhZCA9IHRoaXMuX3NyY0lucHV0U3RyZWFtLnJlYWQodG1wQnVmcyk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCBidWZmZXJzLmxlbmd0aDsgY2grKykge1xyXG4gICAgICAgICAgICAgIGJ1ZmZlcnNbY2hdLnNldCh0bXBCdWZzW2NoXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucmVhZEZyYW1lcys9cmVhZDtcclxuICAgIHRoaXMuZnJhbWVQb3MrPXJlYWQ7XHJcbiAgICByZXR1cm4gcmVhZDtcclxuICB9XHJcblxyXG4gIHNraXBGcmFtZXMobjpudW1iZXIpOnZvaWR7XHJcbiAgICB0aGlzLnNraXBUb09mZnNldCgpO1xyXG4gICAgaWYodGhpcy5sZW5ndGg9PT11bmRlZmluZWQpe1xyXG4gICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5za2lwRnJhbWVzKG4pO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBsZXQgYXZhaWwgPSB0aGlzLmxlbmd0aCAtIHRoaXMucmVhZEZyYW1lcztcclxuICAgICAgaWYgKGF2YWlsID4gMCkge1xyXG4gICAgICAgIGlmIChhdmFpbCA+PSBuKSB7XHJcbiAgICAgICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5za2lwRnJhbWVzKG4pO1xyXG4gICAgICAgICAgdGhpcy5yZWFkRnJhbWVzICs9IG47XHJcbiAgICAgICAgICB0aGlzLmZyYW1lUG9zICs9IG47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRocm93IEVycm9yKCdUcmllZCB0byBza2lwIG91dCBvZiBib3VuZHMuJylcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCk6dm9pZHtcclxuICAgIHRoaXMuX3NyY0lucHV0U3RyZWFtLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFzeW5jRWRpdEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIGltcGxlbWVudHMgQXN5bmNGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbXtcclxuICBwcml2YXRlIGZyYW1lUG9zPTA7XHJcbiAgcHJpdmF0ZSByZWFkRnJhbWVzPTA7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3JjSW5wdXRTdHJlYW06QXN5bmNGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbSxwcml2YXRlIG9mZnNldDpudW1iZXI9MCxwcml2YXRlIGxlbmd0aD86bnVtYmVyfHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRoaXMub2Zmc2V0PDApe1xyXG4gICAgICB0aHJvdyBFcnJvcignUGFyYW1ldGVyIG9mZnNldCBtdXN0IGJlIHVuZGVmaW5lZCBvciBncmVhdGVyIG9yIGVxdWFsIHplcm8uJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sZW5ndGghPT11bmRlZmluZWQgJiYgdGhpcy5sZW5ndGg8MCl7XHJcbiAgICAgIHRocm93IEVycm9yKCdQYXJhbWV0ZXIgbGVuZ3RoIG11c3QgYmUgdW5kZWZpbmVkIG9yIGdyZWF0ZXIgb3IgZXF1YWwgemVyby4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2tpcFRvT2Zmc2V0KCl7XHJcbiAgICBpZih0aGlzLmZyYW1lUG9zPT0wICYmIHRoaXMub2Zmc2V0PjApe1xyXG4gICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5za2lwRnJhbWVzKHRoaXMub2Zmc2V0KTtcclxuICAgICAgdGhpcy5mcmFtZVBvcys9dGhpcy5vZmZzZXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWFkT2JzKGJ1ZmZlcnM6IEFycmF5PEZsb2F0MzJBcnJheT4pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPG51bWJlcj4oc3Vic2NyaWJlcj0+e1xyXG4gICAgICB0aGlzLnNraXBUb09mZnNldCgpO1xyXG4gICAgICBpZih0aGlzLmxlbmd0aD09PXVuZGVmaW5lZCl7XHJcbiAgICAgICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0ucmVhZE9icyhidWZmZXJzKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBpZiAoYnVmZmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBsZXQgYnVmc0NoMCA9IGJ1ZmZlcnNbMF07XHJcbiAgICAgICAgICBsZXQgYnVmc0xlbiA9IGJ1ZnNDaDAubGVuZ3RoO1xyXG4gICAgICAgICAgbGV0IGF2YWlsID0gdGhpcy5sZW5ndGggLSB0aGlzLnJlYWRGcmFtZXM7XHJcbiAgICAgICAgICBpZiAoYXZhaWwgPiAwKSB7XHJcbiAgICAgICAgICAgIGlmIChhdmFpbCA+IGJ1ZnNMZW4pIHtcclxuICAgICAgICAgICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5yZWFkT2JzKGJ1ZmZlcnMpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVhZCk9PntcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkRnJhbWVzKz1yZWFkO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lUG9zKz1yZWFkO1xyXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVhZCk7XHJcbiAgICAgICAgICAgICAgICB9LGNvbXBsZXRlOigpPT57XHJcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIC8vIHRlbXBvcmFyeSBidWZmZXJzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgbGV0IHRtcEJ1ZnMgPSBuZXcgQXJyYXk8RmxvYXQzMkFycmF5PihidWZmZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgICAgZm9yIChsZXQgY2ggPSAwOyBjaCA8IGJ1ZmZlcnMubGVuZ3RoOyBjaCsrKSB7XHJcbiAgICAgICAgICAgICAgICB0bXBCdWZzW2NoXSA9IG5ldyBGbG9hdDMyQXJyYXkoYXZhaWwpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5yZWFkT2JzKHRtcEJ1ZnMpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OihyZWFkKT0+e1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgY2ggPSAwOyBjaCA8IGJ1ZmZlcnMubGVuZ3RoOyBjaCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJ1ZmZlcnNbY2hdLnNldCh0bXBCdWZzW2NoXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWRGcmFtZXMrPXJlYWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyYW1lUG9zKz1yZWFkO1xyXG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHJlYWQpO1xyXG4gICAgICAgICAgICAgIH0sY29tcGxldGU6KCk9PntcclxuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgLy8gZW5kIG9mIHN0cmVhbVxyXG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoMCk7XHJcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHN1YnNjcmliZXIubmV4dCgwKTtcclxuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2tpcEZyYW1lcyhuOm51bWJlcik6dm9pZHtcclxuICAgIHRoaXMuc2tpcFRvT2Zmc2V0KCk7XHJcbiAgICBpZih0aGlzLmxlbmd0aD09PXVuZGVmaW5lZCl7XHJcbiAgICAgIHRoaXMuX3NyY0lucHV0U3RyZWFtLnNraXBGcmFtZXMobik7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIGxldCBhdmFpbCA9IHRoaXMubGVuZ3RoIC0gdGhpcy5yZWFkRnJhbWVzO1xyXG4gICAgICBpZiAoYXZhaWwgPiAwKSB7XHJcbiAgICAgICAgaWYgKGF2YWlsID49IG4pIHtcclxuICAgICAgICAgIHRoaXMuX3NyY0lucHV0U3RyZWFtLnNraXBGcmFtZXMobik7XHJcbiAgICAgICAgICB0aGlzLnJlYWRGcmFtZXMgKz0gbjtcclxuICAgICAgICAgIHRoaXMuZnJhbWVQb3MgKz0gbjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ1RyaWVkIHRvIHNraXAgb3V0IG9mIGJvdW5kcy4nKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTp2b2lke1xyXG4gICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0uY2xvc2UoKTtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGbG9hdDMyQXJyYXlPdXRTdHJlYW0ge1xyXG5cclxuICB3cml0ZShidWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+KTogbnVtYmVyO1xyXG5cclxuICBmbHVzaCgpOiB2b2lkO1xyXG5cclxuICBjbG9zZSgpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmxvYXQzMkFycmF5Q2h1bmtlck91dFN0cmVhbSBpbXBsZW1lbnRzIEZsb2F0MzJBcnJheU91dFN0cmVhbSB7XHJcblxyXG4gIHByaXZhdGUgYnVmcyA9IG5ldyBBcnJheTxGbG9hdDMyQXJyYXk+KCk7XHJcbiAgcHJpdmF0ZSBmaWxsZWQ6IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBfY2hhbm5lbHM6IG51bWJlcj0wO1xyXG4gIHByaXZhdGUgX2NodW5rU2l6ZTogbnVtYmVyPTA7XHJcblxyXG4gIHByaXZhdGUgcmVjZWl2ZWRGcmFtZXM6IG51bWJlcjtcclxuICBwcml2YXRlIHNlbnRGcmFtZXM6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdXRTdHJlYW06IEZsb2F0MzJBcnJheU91dFN0cmVhbSkge1xyXG4gICAgdGhpcy5maWxsZWQgPSAwO1xyXG4gICAgdGhpcy5yZWNlaXZlZEZyYW1lcyA9IDA7XHJcbiAgICB0aGlzLnNlbnRGcmFtZXMgPSAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVCdWZmZXJzKCkge1xyXG4gICAgdGhpcy5idWZzID0gbmV3IEFycmF5PEZsb2F0MzJBcnJheT4odGhpcy5fY2hhbm5lbHMpO1xyXG4gICAgZm9yIChsZXQgY2ggPSAwOyBjaCA8IHRoaXMuX2NoYW5uZWxzOyBjaCsrKSB7XHJcbiAgICAgIHRoaXMuYnVmc1tjaF0gPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMuX2NodW5rU2l6ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgY2h1bmtTaXplKGNodW5rU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jaHVua1NpemUgPSBjaHVua1NpemU7XHJcbiAgICB0aGlzLmNyZWF0ZUJ1ZmZlcnMoKTtcclxuICB9XHJcblxyXG4gIGdldCBjaHVua1NpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jaHVua1NpemU7XHJcbiAgfVxyXG5cclxuICBzZXQgY2hhbm5lbHMoY2hhbm5lbHM6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY2hhbm5lbHMgPSBjaGFubmVscztcclxuICAgIHRoaXMuY3JlYXRlQnVmZmVycygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoYW5uZWxzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2hhbm5lbHM7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXZhaWxhYmxlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2h1bmtTaXplLXRoaXMuZmlsbGVkO1xyXG4gIH1cclxuXHJcbiAgd3JpdGUoYnVmZmVyczogQXJyYXk8RmxvYXQzMkFycmF5Pik6IG51bWJlciB7XHJcblxyXG4gICAgbGV0IGNvcGllZCA9IDA7XHJcbiAgICBpZihidWZmZXJzLmxlbmd0aD4wKSB7XHJcbiAgICAgIGxldCBidWZmZXJzTGVuID0gYnVmZmVyc1swXS5sZW5ndGg7XHJcbiAgICAgIHRoaXMucmVjZWl2ZWRGcmFtZXMgKz0gYnVmZmVyc0xlbjtcclxuICAgICAgbGV0IGF2YWlsID0gYnVmZmVyc0xlbjtcclxuICAgICAgLy8gRmlsbCBvdXQgYnVmZmVycyB1bnRpbCBhbGwgdmFsdWVzIGNvcGllZFxyXG5cclxuICAgICAgd2hpbGUgKGF2YWlsID4gMCkge1xyXG4gICAgICAgIGxldCB0b0ZpbGwgPSB0aGlzLl9jaHVua1NpemUgLSB0aGlzLmZpbGxlZDtcclxuICAgICAgICBpZiAodG9GaWxsID4gYXZhaWwpIHtcclxuICAgICAgICAgIHRvRmlsbCA9IGF2YWlsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc2xpY2VFbmQgPSBjb3BpZWQgKyB0b0ZpbGw7XHJcblxyXG4gICAgICAgIC8vIEZpcmVmb3ggb24gQW5kcm9pZCBzZW5kcyBvbmx5IHRoZSBmaXJzdCBjaGFubmVsXHJcbiAgICAgICAgZm9yIChsZXQgY2ggPSAwOyBjaCA8IGJ1ZmZlcnNMZW47IGNoKyspIHtcclxuICAgICAgICAgIGlmKGJ1ZmZlcnNbY2hdKSB7XHJcbiAgICAgICAgICAgIGxldCBjcFBydCA9IGJ1ZmZlcnNbY2hdLnNsaWNlKGNvcGllZCwgc2xpY2VFbmQpO1xyXG4gICAgICAgICAgICBsZXQgYnVmID0gdGhpcy5idWZzW2NoXTtcclxuICAgICAgICAgICAgYnVmLnNldChjcFBydCwgdGhpcy5maWxsZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb3BpZWQgKz0gdG9GaWxsO1xyXG4gICAgICAgIGF2YWlsIC09IHRvRmlsbDtcclxuICAgICAgICB0aGlzLmZpbGxlZCArPSB0b0ZpbGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsbGVkID09IHRoaXMuX2NodW5rU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vdXRTdHJlYW0ud3JpdGUodGhpcy5idWZzKTtcclxuICAgICAgICAgIHRoaXMuc2VudEZyYW1lcyArPSB0aGlzLmZpbGxlZDtcclxuICAgICAgICAgIHRoaXMuZmlsbGVkID0gMDtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29waWVkO1xyXG4gIH1cclxuXHJcbiAgZmx1c2goKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWxsZWQgPiAwKSB7XHJcbiAgICAgIGxldCByZXN0QnVmcyA9IG5ldyBBcnJheTxGbG9hdDMyQXJyYXk+KHRoaXMuX2NoYW5uZWxzKTtcclxuICAgICAgZm9yIChsZXQgY2ggPSAwOyBjaCA8IHRoaXMuX2NoYW5uZWxzOyBjaCsrKSB7XHJcbiAgICAgICAgcmVzdEJ1ZnNbY2hdID0gdGhpcy5idWZzW2NoXS5zbGljZSgwLCB0aGlzLmZpbGxlZCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vdXRTdHJlYW0ud3JpdGUocmVzdEJ1ZnMpO1xyXG4gICAgICB0aGlzLm91dFN0cmVhbS5mbHVzaCgpO1xyXG4gICAgICB0aGlzLnNlbnRGcmFtZXMgKz0gdGhpcy5maWxsZWQ7XHJcbiAgICAgIHRoaXMuZmlsbGVkID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMub3V0U3RyZWFtLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBY2hDLE1BQU0sT0FBTywyQkFBMkI7SUFHdEMsWUFBb0IsZUFBdUMsRUFBUyxTQUFjLENBQUMsRUFBUyxNQUF3QjtRQUFoRyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFGNUcsYUFBUSxHQUFDLENBQUMsQ0FBQztRQUNYLGVBQVUsR0FBQyxDQUFDLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDO1lBQ2YsTUFBTSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFHLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDO1lBQzVDLE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDOUUsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsSUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQTRCO1FBQy9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBQyxD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Q0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFHRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0MzJBcnJheUlucHV0U3RyZWFte1xyXG4gIHJlYWQoYnVmZmVyczogQXJyYXk8RmxvYXQzMkFycmF5Pik6IG51bWJlcjtcclxuICBza2lwRnJhbWVzKG46bnVtYmVyKTp2b2lkO1xyXG4gIGNsb3NlKCk6dm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBc3luY0Zsb2F0MzJBcnJheUlucHV0U3RyZWFte1xyXG4gIHJlYWRPYnMoYnVmZmVyczogQXJyYXk8RmxvYXQzMkFycmF5Pik6T2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gIHNraXBGcmFtZXMobjpudW1iZXIpOnZvaWQ7XHJcbiAgY2xvc2UoKTp2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRWRpdEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIGltcGxlbWVudHMgRmxvYXQzMkFycmF5SW5wdXRTdHJlYW17XHJcbiAgcHJpdmF0ZSBmcmFtZVBvcz0wO1xyXG4gIHByaXZhdGUgcmVhZEZyYW1lcz0wO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NyY0lucHV0U3RyZWFtOkZsb2F0MzJBcnJheUlucHV0U3RyZWFtLHByaXZhdGUgb2Zmc2V0Om51bWJlcj0wLHByaXZhdGUgbGVuZ3RoPzpudW1iZXJ8dW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5vZmZzZXQ8MCl7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoJ1BhcmFtZXRlciBvZmZzZXQgbXVzdCBiZSB1bmRlZmluZWQgb3IgZ3JlYXRlciBvciBlcXVhbCB6ZXJvLicpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubGVuZ3RoIT09dW5kZWZpbmVkICYmIHRoaXMubGVuZ3RoPDApe1xyXG4gICAgICB0aHJvdyBFcnJvcignUGFyYW1ldGVyIGxlbmd0aCBtdXN0IGJlIHVuZGVmaW5lZCBvciBncmVhdGVyIG9yIGVxdWFsIHplcm8uJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNraXBUb09mZnNldCgpe1xyXG4gICAgaWYodGhpcy5mcmFtZVBvcz09MCAmJiB0aGlzLm9mZnNldD4wKXtcclxuICAgICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0uc2tpcEZyYW1lcyh0aGlzLm9mZnNldCk7XHJcbiAgICAgIHRoaXMuZnJhbWVQb3MrPXRoaXMub2Zmc2V0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVhZChidWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+KTogbnVtYmVye1xyXG4gICAgdGhpcy5za2lwVG9PZmZzZXQoKTtcclxuICAgIGxldCByZWFkPTA7XHJcbiAgICBpZih0aGlzLmxlbmd0aD09PXVuZGVmaW5lZCl7XHJcbiAgICAgIHJlYWQgPSB0aGlzLl9zcmNJbnB1dFN0cmVhbS5yZWFkKGJ1ZmZlcnMpO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBpZiAoYnVmZmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IGJ1ZnNDaDAgPSBidWZmZXJzWzBdO1xyXG4gICAgICAgIGxldCBidWZzTGVuID0gYnVmc0NoMC5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGF2YWlsID0gdGhpcy5sZW5ndGggLSB0aGlzLnJlYWRGcmFtZXM7XHJcbiAgICAgICAgaWYgKGF2YWlsID4gMCkge1xyXG4gICAgICAgICAgaWYgKGF2YWlsID4gYnVmc0xlbikge1xyXG4gICAgICAgICAgICByZWFkID0gdGhpcy5fc3JjSW5wdXRTdHJlYW0ucmVhZChidWZmZXJzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRlbXBvcmFyeSBidWZmZXJzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgIGxldCB0bXBCdWZzID0gbmV3IEFycmF5PEZsb2F0MzJBcnJheT4oYnVmZmVycy5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBjaCA9IDA7IGNoIDwgYnVmZmVycy5sZW5ndGg7IGNoKyspIHtcclxuICAgICAgICAgICAgICB0bXBCdWZzW2NoXSA9IG5ldyBGbG9hdDMyQXJyYXkoYXZhaWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJlYWQgPSB0aGlzLl9zcmNJbnB1dFN0cmVhbS5yZWFkKHRtcEJ1ZnMpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBjaCA9IDA7IGNoIDwgYnVmZmVycy5sZW5ndGg7IGNoKyspIHtcclxuICAgICAgICAgICAgICBidWZmZXJzW2NoXS5zZXQodG1wQnVmc1tjaF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlYWRGcmFtZXMrPXJlYWQ7XHJcbiAgICB0aGlzLmZyYW1lUG9zKz1yZWFkO1xyXG4gICAgcmV0dXJuIHJlYWQ7XHJcbiAgfVxyXG5cclxuICBza2lwRnJhbWVzKG46bnVtYmVyKTp2b2lke1xyXG4gICAgdGhpcy5za2lwVG9PZmZzZXQoKTtcclxuICAgIGlmKHRoaXMubGVuZ3RoPT09dW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0uc2tpcEZyYW1lcyhuKTtcclxuICAgIH1lbHNlIHtcclxuICAgICAgbGV0IGF2YWlsID0gdGhpcy5sZW5ndGggLSB0aGlzLnJlYWRGcmFtZXM7XHJcbiAgICAgIGlmIChhdmFpbCA+IDApIHtcclxuICAgICAgICBpZiAoYXZhaWwgPj0gbikge1xyXG4gICAgICAgICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0uc2tpcEZyYW1lcyhuKTtcclxuICAgICAgICAgIHRoaXMucmVhZEZyYW1lcyArPSBuO1xyXG4gICAgICAgICAgdGhpcy5mcmFtZVBvcyArPSBuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aHJvdyBFcnJvcignVHJpZWQgdG8gc2tpcCBvdXQgb2YgYm91bmRzLicpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOnZvaWR7XHJcbiAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBc3luY0VkaXRGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbSBpbXBsZW1lbnRzIEFzeW5jRmxvYXQzMkFycmF5SW5wdXRTdHJlYW17XHJcbiAgcHJpdmF0ZSBmcmFtZVBvcz0wO1xyXG4gIHByaXZhdGUgcmVhZEZyYW1lcz0wO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NyY0lucHV0U3RyZWFtOkFzeW5jRmxvYXQzMkFycmF5SW5wdXRTdHJlYW0scHJpdmF0ZSBvZmZzZXQ6bnVtYmVyPTAscHJpdmF0ZSBsZW5ndGg/Om51bWJlcnx1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLm9mZnNldDwwKXtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1BhcmFtZXRlciBvZmZzZXQgbXVzdCBiZSB1bmRlZmluZWQgb3IgZ3JlYXRlciBvciBlcXVhbCB6ZXJvLicpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubGVuZ3RoIT09dW5kZWZpbmVkICYmIHRoaXMubGVuZ3RoPDApe1xyXG4gICAgICB0aHJvdyBFcnJvcignUGFyYW1ldGVyIGxlbmd0aCBtdXN0IGJlIHVuZGVmaW5lZCBvciBncmVhdGVyIG9yIGVxdWFsIHplcm8uJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNraXBUb09mZnNldCgpe1xyXG4gICAgaWYodGhpcy5mcmFtZVBvcz09MCAmJiB0aGlzLm9mZnNldD4wKXtcclxuICAgICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0uc2tpcEZyYW1lcyh0aGlzLm9mZnNldCk7XHJcbiAgICAgIHRoaXMuZnJhbWVQb3MrPXRoaXMub2Zmc2V0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVhZE9icyhidWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+KTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxudW1iZXI+KHN1YnNjcmliZXI9PntcclxuICAgICAgdGhpcy5za2lwVG9PZmZzZXQoKTtcclxuICAgICAgaWYodGhpcy5sZW5ndGg9PT11bmRlZmluZWQpe1xyXG4gICAgICAgIHRoaXMuX3NyY0lucHV0U3RyZWFtLnJlYWRPYnMoYnVmZmVycykuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgaWYgKGJ1ZmZlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbGV0IGJ1ZnNDaDAgPSBidWZmZXJzWzBdO1xyXG4gICAgICAgICAgbGV0IGJ1ZnNMZW4gPSBidWZzQ2gwLmxlbmd0aDtcclxuICAgICAgICAgIGxldCBhdmFpbCA9IHRoaXMubGVuZ3RoIC0gdGhpcy5yZWFkRnJhbWVzO1xyXG4gICAgICAgICAgaWYgKGF2YWlsID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoYXZhaWwgPiBidWZzTGVuKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0ucmVhZE9icyhidWZmZXJzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlYWQpPT57XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVhZEZyYW1lcys9cmVhZDtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZVBvcys9cmVhZDtcclxuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHJlYWQpO1xyXG4gICAgICAgICAgICAgICAgfSxjb21wbGV0ZTooKT0+e1xyXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAvLyB0ZW1wb3JhcnkgYnVmZmVycyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIGxldCB0bXBCdWZzID0gbmV3IEFycmF5PEZsb2F0MzJBcnJheT4oYnVmZmVycy5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCBidWZmZXJzLmxlbmd0aDsgY2grKykge1xyXG4gICAgICAgICAgICAgICAgdG1wQnVmc1tjaF0gPSBuZXcgRmxvYXQzMkFycmF5KGF2YWlsKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5fc3JjSW5wdXRTdHJlYW0ucmVhZE9icyh0bXBCdWZzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDoocmVhZCk9PntcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCBidWZmZXJzLmxlbmd0aDsgY2grKykge1xyXG4gICAgICAgICAgICAgICAgICBidWZmZXJzW2NoXS5zZXQodG1wQnVmc1tjaF0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkRnJhbWVzKz1yZWFkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmFtZVBvcys9cmVhZDtcclxuICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZWFkKTtcclxuICAgICAgICAgICAgICB9LGNvbXBsZXRlOigpPT57XHJcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIC8vIGVuZCBvZiBzdHJlYW1cclxuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KDApO1xyXG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoMCk7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNraXBGcmFtZXMobjpudW1iZXIpOnZvaWR7XHJcbiAgICB0aGlzLnNraXBUb09mZnNldCgpO1xyXG4gICAgaWYodGhpcy5sZW5ndGg9PT11bmRlZmluZWQpe1xyXG4gICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5za2lwRnJhbWVzKG4pO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBsZXQgYXZhaWwgPSB0aGlzLmxlbmd0aCAtIHRoaXMucmVhZEZyYW1lcztcclxuICAgICAgaWYgKGF2YWlsID4gMCkge1xyXG4gICAgICAgIGlmIChhdmFpbCA+PSBuKSB7XHJcbiAgICAgICAgICB0aGlzLl9zcmNJbnB1dFN0cmVhbS5za2lwRnJhbWVzKG4pO1xyXG4gICAgICAgICAgdGhpcy5yZWFkRnJhbWVzICs9IG47XHJcbiAgICAgICAgICB0aGlzLmZyYW1lUG9zICs9IG47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRocm93IEVycm9yKCdUcmllZCB0byBza2lwIG91dCBvZiBib3VuZHMuJylcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCk6dm9pZHtcclxuICAgIHRoaXMuX3NyY0lucHV0U3RyZWFtLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXQzMkFycmF5T3V0U3RyZWFtIHtcclxuXHJcbiAgd3JpdGUoYnVmZmVyczogQXJyYXk8RmxvYXQzMkFycmF5Pik6IG51bWJlcjtcclxuXHJcbiAgZmx1c2goKTogdm9pZDtcclxuXHJcbiAgY2xvc2UoKTogdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZsb2F0MzJBcnJheUNodW5rZXJPdXRTdHJlYW0gaW1wbGVtZW50cyBGbG9hdDMyQXJyYXlPdXRTdHJlYW0ge1xyXG5cclxuICBwcml2YXRlIGJ1ZnMgPSBuZXcgQXJyYXk8RmxvYXQzMkFycmF5PigpO1xyXG4gIHByaXZhdGUgZmlsbGVkOiBudW1iZXI7XHJcblxyXG4gIHByaXZhdGUgX2NoYW5uZWxzOiBudW1iZXI9MDtcclxuICBwcml2YXRlIF9jaHVua1NpemU6IG51bWJlcj0wO1xyXG5cclxuICBwcml2YXRlIHJlY2VpdmVkRnJhbWVzOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBzZW50RnJhbWVzOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3V0U3RyZWFtOiBGbG9hdDMyQXJyYXlPdXRTdHJlYW0pIHtcclxuICAgIHRoaXMuZmlsbGVkID0gMDtcclxuICAgIHRoaXMucmVjZWl2ZWRGcmFtZXMgPSAwO1xyXG4gICAgdGhpcy5zZW50RnJhbWVzID0gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQnVmZmVycygpIHtcclxuICAgIHRoaXMuYnVmcyA9IG5ldyBBcnJheTxGbG9hdDMyQXJyYXk+KHRoaXMuX2NoYW5uZWxzKTtcclxuICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCB0aGlzLl9jaGFubmVsczsgY2grKykge1xyXG4gICAgICB0aGlzLmJ1ZnNbY2hdID0gbmV3IEZsb2F0MzJBcnJheSh0aGlzLl9jaHVua1NpemUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IGNodW5rU2l6ZShjaHVua1NpemU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY2h1bmtTaXplID0gY2h1bmtTaXplO1xyXG4gICAgdGhpcy5jcmVhdGVCdWZmZXJzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY2h1bmtTaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2h1bmtTaXplO1xyXG4gIH1cclxuXHJcbiAgc2V0IGNoYW5uZWxzKGNoYW5uZWxzOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2NoYW5uZWxzID0gY2hhbm5lbHM7XHJcbiAgICB0aGlzLmNyZWF0ZUJ1ZmZlcnMoKTtcclxuICB9XHJcblxyXG4gIGdldCBjaGFubmVscygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NoYW5uZWxzO1xyXG4gIH1cclxuXHJcblxyXG4gIGF2YWlsYWJsZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NodW5rU2l6ZS10aGlzLmZpbGxlZDtcclxuICB9XHJcblxyXG4gIHdyaXRlKGJ1ZmZlcnM6IEFycmF5PEZsb2F0MzJBcnJheT4pOiBudW1iZXIge1xyXG5cclxuICAgIGxldCBjb3BpZWQgPSAwO1xyXG4gICAgaWYoYnVmZmVycy5sZW5ndGg+MCkge1xyXG4gICAgICBsZXQgYnVmZmVyc0xlbiA9IGJ1ZmZlcnNbMF0ubGVuZ3RoO1xyXG4gICAgICB0aGlzLnJlY2VpdmVkRnJhbWVzICs9IGJ1ZmZlcnNMZW47XHJcbiAgICAgIGxldCBhdmFpbCA9IGJ1ZmZlcnNMZW47XHJcbiAgICAgIC8vIEZpbGwgb3V0IGJ1ZmZlcnMgdW50aWwgYWxsIHZhbHVlcyBjb3BpZWRcclxuXHJcbiAgICAgIHdoaWxlIChhdmFpbCA+IDApIHtcclxuICAgICAgICBsZXQgdG9GaWxsID0gdGhpcy5fY2h1bmtTaXplIC0gdGhpcy5maWxsZWQ7XHJcbiAgICAgICAgaWYgKHRvRmlsbCA+IGF2YWlsKSB7XHJcbiAgICAgICAgICB0b0ZpbGwgPSBhdmFpbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHNsaWNlRW5kID0gY29waWVkICsgdG9GaWxsO1xyXG5cclxuICAgICAgICAvLyBGaXJlZm94IG9uIEFuZHJvaWQgc2VuZHMgb25seSB0aGUgZmlyc3QgY2hhbm5lbFxyXG4gICAgICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCBidWZmZXJzTGVuOyBjaCsrKSB7XHJcbiAgICAgICAgICBpZihidWZmZXJzW2NoXSkge1xyXG4gICAgICAgICAgICBsZXQgY3BQcnQgPSBidWZmZXJzW2NoXS5zbGljZShjb3BpZWQsIHNsaWNlRW5kKTtcclxuICAgICAgICAgICAgbGV0IGJ1ZiA9IHRoaXMuYnVmc1tjaF07XHJcbiAgICAgICAgICAgIGJ1Zi5zZXQoY3BQcnQsIHRoaXMuZmlsbGVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29waWVkICs9IHRvRmlsbDtcclxuICAgICAgICBhdmFpbCAtPSB0b0ZpbGw7XHJcbiAgICAgICAgdGhpcy5maWxsZWQgKz0gdG9GaWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmZpbGxlZCA9PSB0aGlzLl9jaHVua1NpemUpIHtcclxuICAgICAgICAgIHRoaXMub3V0U3RyZWFtLndyaXRlKHRoaXMuYnVmcyk7XHJcbiAgICAgICAgICB0aGlzLnNlbnRGcmFtZXMgKz0gdGhpcy5maWxsZWQ7XHJcbiAgICAgICAgICB0aGlzLmZpbGxlZCA9IDA7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvcGllZDtcclxuICB9XHJcblxyXG4gIGZsdXNoKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsbGVkID4gMCkge1xyXG4gICAgICBsZXQgcmVzdEJ1ZnMgPSBuZXcgQXJyYXk8RmxvYXQzMkFycmF5Pih0aGlzLl9jaGFubmVscyk7XHJcbiAgICAgIGZvciAobGV0IGNoID0gMDsgY2ggPCB0aGlzLl9jaGFubmVsczsgY2grKykge1xyXG4gICAgICAgIHJlc3RCdWZzW2NoXSA9IHRoaXMuYnVmc1tjaF0uc2xpY2UoMCwgdGhpcy5maWxsZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3V0U3RyZWFtLndyaXRlKHJlc3RCdWZzKTtcclxuICAgICAgdGhpcy5vdXRTdHJlYW0uZmx1c2goKTtcclxuICAgICAgdGhpcy5zZW50RnJhbWVzICs9IHRoaXMuZmlsbGVkO1xyXG4gICAgICB0aGlzLmZpbGxlZCA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLm91dFN0cmVhbS5jbG9zZSgpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -55,4 +55,4 @@ export class Complex {
|
|
|
55
55
|
return 'Real: ' + this.real + ', Img: ' + this.img;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9tYXRoL2NvbXBsZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0ksTUFBTSxPQUFPLE9BQU87SUFLVCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQWlCLEVBQUUsUUFBZ0I7UUFDM0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDekMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDekMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFlBQVksSUFBWSxFQUFFLEdBQVc7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUNNLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLEdBQUcsQ0FBQyxJQUFhO1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lB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ICAgICAgcmVhbDogbnVtYmVyO1xyXG4gICAgICAgIGltZzogbnVtYmVyO1xyXG5cclxuICAgICAgICBwdWJsaWMgc3RhdGljIGZyb21Qb2xhckZvcm0obWFnbml0dWRlOiBudW1iZXIsIGFyZ3VtZW50OiBudW1iZXIpOiBDb21wbGV4IHtcclxuICAgICAgICAgICAgY29uc3QgciA9IE1hdGguY29zKGFyZ3VtZW50KSAqIG1hZ25pdHVkZTtcclxuICAgICAgICAgICAgY29uc3QgaSA9IE1hdGguc2luKGFyZ3VtZW50KSAqIG1hZ25pdHVkZTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KHIsIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdHJ1Y3RvcihyZWFsOiBudW1iZXIsIGltZzogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhbCA9IHJlYWw7XHJcbiAgICAgICAgICAgIHRoaXMuaW1nID0gaW1nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwdWJsaWMgbWFnbml0dWRlKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoKHRoaXMucmVhbCAqIHRoaXMucmVhbCkgKyAodGhpcy5pbWcgKiB0aGlzLmltZykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGFyZ3VtZW50KCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHRoaXMuaW1nLCB0aGlzLnJlYWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGFkZChhZGRDOiBDb21wbGV4KTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwgKyBhZGRDLnJlYWwsIHRoaXMuaW1nICsgYWRkQy5pbWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIHN1YihzdWJDOiBDb21wbGV4KTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwgLSBzdWJDLnJlYWwsIHRoaXMuaW1nIC0gc3ViQy5pbWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIG11bHQobXVsdEM6IENvbXBsZXgpOiBDb21wbGV4IHtcclxuICAgICAgICAgICAgY29uc3QgbXVsdFIgPSAodGhpcy5yZWFsICogbXVsdEMucmVhbCkgLSAodGhpcy5pbWcgKiBtdWx0Qy5pbWcpO1xyXG4gICAgICAgICAgICBjb25zdCBtdWx0SSA9ICh0aGlzLnJlYWwgKiBtdWx0Qy5pbWcpICsgKG11bHRDLnJlYWwgKiB0aGlzLmltZyk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleChtdWx0UiwgbXVsdEkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIG11bHRSZWFsKG11bHRGOiBudW1iZXIpOiBDb21wbGV4IHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KHRoaXMucmVhbCAqIG11bHRGLCB0aGlzLmltZyAqIG11bHRGKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBkaXYoZGl2aXNvcjogQ29tcGxleCk6IENvbXBsZXgge1xyXG4gICAgICAgICAgICBjb25zdCBkaXZSZWFsID0gZGl2aXNvci5yZWFsO1xyXG4gICAgICAgICAgICBjb25zdCBkaXZJbWcgPSBkaXZpc29yLmltZztcclxuICAgICAgICAgICAgY29uc3QgZGl2ID0gKGRpdlJlYWwgKiBkaXZSZWFsKSArIChkaXZJbWcgKiBkaXZJbWcpO1xyXG4gICAgICAgICAgICBjb25zdCBkaXZpc2lvblJlYWwgPSAoKHRoaXMucmVhbCAqIGRpdlJlYWwpICsgKHRoaXMuaW1nICogZGl2SW1nKSkgLyBkaXY7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpdmlzaW9uSW1nID0gKChkaXZSZWFsICogdGhpcy5pbWcpIC0gKHRoaXMucmVhbCAqIGRpdkltZykpIC8gZGl2O1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KGRpdmlzaW9uUmVhbCwgZGl2aXNpb25JbWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGRpdlJlYWwoZGl2aXNvcjogbnVtYmVyKTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRpdmlzb3IgKiBkaXZpc29yO1xyXG4gICAgICAgICAgICBjb25zdCBkaXZzaW9uUmVhbCA9ICh0aGlzLnJlYWwgKiBkaXZpc29yKSAvIGRpdjtcclxuICAgICAgICAgICAgY29uc3QgZGl2c2lvbkltZyA9IChkaXZpc29yICogdGhpcy5pbWcpIC8gZGl2O1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KGRpdnNpb25SZWFsLCBkaXZzaW9uSW1nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBjb25qdWdhdGUoKTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwsIC10aGlzLmltZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwdWJsaWMgZXF1YWxzKGM6IENvbXBsZXgpOiBib29sZWFuIHtcclxuICAgICAgICAgICAgaWYgKGMgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gKHRoaXMucmVhbCA9PT0gYy5yZWFsICYmIHRoaXMuaW1nID09PSBjLmltZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgICAgICAgICAgcmV0dXJuICdSZWFsOiAnICsgdGhpcy5yZWFsICsgJywgSW1nOiAnICsgdGhpcy5pbWc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4iXX0=
|
package/esm2022/lib/math/dft.mjs
CHANGED
|
@@ -193,4 +193,4 @@ export class DFT {
|
|
|
193
193
|
return trans;
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL21hdGgvZGZ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsTUFBTSxPQUFPLFVBQVU7SUFRbkIsWUFBWSxDQUFTO1FBQ2pCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkMsOEVBQThFO1FBRTlFLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQW9CO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFL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RSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wbGV4IH0gZnJvbSAnLi9jb21wbGV4JztcclxuXHJcbiAgICBleHBvcnQgY2xhc3MgREZURmxvYXQzMiB7XHJcblxyXG4gICAgICAgIHByaXZhdGUgbjogbnVtYmVyO1xyXG4gICAgICAgIHByaXZhdGUgbTogbnVtYmVyO1xyXG5cclxuICAgICAgICBwcml2YXRlIGNvc0xvb2t1cDogRmxvYXQzMkFycmF5O1xyXG4gICAgICAgIHByaXZhdGUgc2luTG9va3VwOiBGbG9hdDMyQXJyYXk7XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKG46IG51bWJlcikge1xyXG4gICAgICAgICAgICB0aGlzLm4gPSBuO1xyXG4gICAgICAgICAgICB0aGlzLm0gPSBNYXRoLmxvZyhuKSAvIE1hdGgubG9nKDIpO1xyXG5cclxuICAgICAgICAgICAgLy8gaWYobiAhPSAoMSA8PCBtKSl0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihcImxlbmd0aCBOIG11c3QgYmUgcG93ZXIgb2YgMlwiKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGxvb2t1cCB0YWJsZXNcclxuICAgICAgICAgICAgdGhpcy5jb3NMb29rdXAgPSBuZXcgRmxvYXQzMkFycmF5KG4gLyAyKTtcclxuICAgICAgICAgICAgdGhpcy5zaW5Mb29rdXAgPSBuZXcgRmxvYXQzMkFycmF5KG4gLyAyKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbiAvIDI7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYXJjID0gKC0yICogTWF0aC5QSSAqIGkpIC8gbjtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29zTG9va3VwW2ldID0gTWF0aC5jb3MoYXJjKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luTG9va3VwW2ldID0gTWF0aC5zaW4oYXJjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIHByb2Nlc3NSZWFsKHNyY0J1ZjogRmxvYXQzMkFycmF5KTogQXJyYXk8Q29tcGxleD4ge1xyXG4gICAgICAgICAgICBjb25zdCB4ID0gc3JjQnVmLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHkgPSBuZXcgRmxvYXQzMkFycmF5KHNyY0J1Zi5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCB5aSA9IDA7IHlpIDwgeS5sZW5ndGg7IHlpKyspIHtcclxuICAgICAgICAgICAgICAgIHlbeWldID0gMC4wO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmZ0Q29vbGV5VHVrZXkoeCwgeSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJjID0gbmV3IEFycmF5PENvbXBsZXg+KHgubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICByY1tpXSA9IG5ldyBDb21wbGV4KHhbaV0sIHlbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByYztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzUmVhbE1hZ25pdHVkZShzcmNCdWY6IEZsb2F0MzJBcnJheSk6IEZsb2F0MzJBcnJheSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHggPSBzcmNCdWYuc2xpY2UoKTtcclxuICAgICAgICAgICAgY29uc3QgeSA9IG5ldyBGbG9hdDMyQXJyYXkoc3JjQnVmLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHlpID0gMDsgeWkgPCB5Lmxlbmd0aDsgeWkrKykge1xyXG4gICAgICAgICAgICAgICAgeVt5aV0gPSAwLjA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleSh4LCB5KTtcclxuICAgICAgICAgICAgY29uc3QgcmMgPSBuZXcgRmxvYXQzMkFycmF5KHgubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByY2MgPSBuZXcgQ29tcGxleCh4W2ldLCB5W2ldKTtcclxuICAgICAgICAgICAgICAgIHJjW2ldID0gcmNjLm1hZ25pdHVkZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByYztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBmZnRDb29sZXlUdWtleShyZWFsOiBGbG9hdDMyQXJyYXksIGltZzogRmxvYXQzMkFycmF5KTogdm9pZCB7XHJcbiAgICAgICAgICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBqID0gMDtcclxuICAgICAgICAgICAgbGV0IGs6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IG4xOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBuMjogbnVtYmVyID0gdGhpcy5uIC8gMjtcclxuICAgICAgICAgICAgbGV0IGE6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IGM6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IHM6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IHQxOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCB0MjogbnVtYmVyO1xyXG5cclxuICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IHRoaXMubiAtIDE7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbjEgPSBuMjtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChqID49IG4xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaiA9IGogLSBuMTtcclxuICAgICAgICAgICAgICAgICAgICBuMSA9IG4xIC8gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGogPSBqICsgbjE7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGkgPCBqKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdDEgPSByZWFsW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlYWxbaV0gPSByZWFsW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlYWxbal0gPSB0MTtcclxuICAgICAgICAgICAgICAgICAgICB0MSA9IGltZ1tpXTtcclxuICAgICAgICAgICAgICAgICAgICBpbWdbaV0gPSBpbWdbal07XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nW2pdID0gdDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIG4xID0gMDtcclxuICAgICAgICAgICAgbjIgPSAxO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5tOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG4xID0gbjI7XHJcbiAgICAgICAgICAgICAgICBuMiA9IG4yICsgbjI7XHJcbiAgICAgICAgICAgICAgICBhID0gMDtcclxuICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBuMTsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYyA9IHRoaXMuY29zTG9va3VwW2FdO1xyXG4gICAgICAgICAgICAgICAgICAgIHMgPSB0aGlzLnNpbkxvb2t1cFthXTtcclxuICAgICAgICAgICAgICAgICAgICBhICs9ICggMSA8PCAodGhpcy5tIC0gaSAtIDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gajsgayA8IHRoaXMubjsgayA9IGsgKyBuMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0MSA9IGMgKiByZWFsW2sgKyBuMV0gLSBzICogaW1nW2sgKyBuMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHQyID0gcyAqIHJlYWxbayArIG4xXSArIGMgKiBpbWdbayArIG4xXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFtrICsgbjFdID0gcmVhbFtrXSAtIHQxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdbayArIG4xXSA9IGltZ1trXSAtIHQyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFsW2tdID0gcmVhbFtrXSArIHQxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdba10gPSBpbWdba10gKyB0MjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBwdWJsaWMgcHJvY2Vzcyh0OiBBcnJheTxDb21wbGV4Pik6IEFycmF5PENvbXBsZXg+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVhbHM6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkodGhpcy5uKTtcclxuICAgICAgICAgICAgY29uc3QgaW1nczogRmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheSh0aGlzLm4pO1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuczogQXJyYXk8Q29tcGxleD4gPSBuZXcgQXJyYXk8Q29tcGxleD4odGhpcy5uKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgcmVhbHNbaV0gPSB0W2ldLnJlYWw7XHJcbiAgICAgICAgICAgICAgICBpbWdzW2ldID0gdFtpXS5pbWc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleShyZWFscywgaW1ncyk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zW2ldID0gbmV3IENvbXBsZXgocmVhbHNbaV0sIGltZ3NbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cmFucztcclxuXHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICBleHBvcnQgY2xhc3MgREZUIHtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBuOiBudW1iZXI7XHJcbiAgICAgICAgcHJpdmF0ZSBtOiBudW1iZXI7XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29zTG9va3VwOiBBcnJheTxudW1iZXI+O1xyXG4gICAgICAgIHByaXZhdGUgc2luTG9va3VwOiBBcnJheTxudW1iZXI+O1xyXG5cclxuICAgICAgICBjb25zdHJ1Y3RvcihuOiBudW1iZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5uID0gbjtcclxuICAgICAgICAgICAgdGhpcy5tID0gTWF0aC5sb2cobikgLyBNYXRoLmxvZygyKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGlmKG4gIT0gKDEgPDwgbSkpdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oXCJsZW5ndGggTiBtdXN0IGJlIHBvd2VyIG9mIDJcIik7XHJcblxyXG4gICAgICAgICAgICAvLyBsb29rdXAgdGFibGVzXHJcbiAgICAgICAgICAgIHRoaXMuY29zTG9va3VwID0gbmV3IEFycmF5PG51bWJlcj4obiAvIDIpO1xyXG4gICAgICAgICAgICB0aGlzLnNpbkxvb2t1cCA9IG5ldyBBcnJheTxudW1iZXI+KG4gLyAyKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbiAvIDI7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYXJjID0gKC0yICogTWF0aC5QSSAqIGkpIC8gbjtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29zTG9va3VwW2ldID0gTWF0aC5jb3MoYXJjKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luTG9va3VwW2ldID0gTWF0aC5zaW4oYXJjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIHByb2Nlc3NSZWFsKHNyY0J1ZjogQXJyYXk8bnVtYmVyPik6IEFycmF5PENvbXBsZXg+IHtcclxuICAgICAgICAgICAgY29uc3QgeCA9IHNyY0J1Zi5zbGljZSgpO1xyXG4gICAgICAgICAgICBjb25zdCB5ID0gbmV3IEFycmF5PG51bWJlcj4oc3JjQnVmLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHlpID0gMDsgeWkgPCB5Lmxlbmd0aDsgeWkrKykge1xyXG4gICAgICAgICAgICAgICAgeVt5aV0gPSAwLjA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleSh4LCB5KTtcclxuICAgICAgICAgICAgY29uc3QgcmMgPSBuZXcgQXJyYXk8Q29tcGxleD4oeC5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHJjW2ldID0gbmV3IENvbXBsZXgoeFtpXSwgeVtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJjO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGZmdENvb2xleVR1a2V5KHJlYWw6IEFycmF5PG51bWJlcj4sIGltZzogQXJyYXk8bnVtYmVyPik6IHZvaWQge1xyXG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgaiA9IDA7XHJcbiAgICAgICAgICAgIGxldCBrOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBuMTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgbjI6IG51bWJlciA9IHRoaXMubiAvIDI7XHJcbiAgICAgICAgICAgIGxldCBhOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBjOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBzOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCB0MTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgdDI6IG51bWJlcjtcclxuXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCB0aGlzLm4gLSAxOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG4xID0gbjI7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAoaiA+PSBuMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGogPSBqIC0gbjE7XHJcbiAgICAgICAgICAgICAgICAgICAgbjEgPSBuMSAvIDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBqID0gaiArIG4xO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChpIDwgaikge1xyXG4gICAgICAgICAgICAgICAgICAgIHQxID0gcmVhbFtpXTtcclxuICAgICAgICAgICAgICAgICAgICByZWFsW2ldID0gcmVhbFtqXTtcclxuICAgICAgICAgICAgICAgICAgICByZWFsW2pdID0gdDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdDEgPSBpbWdbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nW2ldID0gaW1nW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZ1tqXSA9IHQxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBuMSA9IDA7XHJcbiAgICAgICAgICAgIG4yID0gMTtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBuMSA9IG4yO1xyXG4gICAgICAgICAgICAgICAgbjIgPSBuMiArIG4yO1xyXG4gICAgICAgICAgICAgICAgYSA9IDA7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbjE7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLmNvc0xvb2t1cFthXTtcclxuICAgICAgICAgICAgICAgICAgICBzID0gdGhpcy5zaW5Mb29rdXBbYV07XHJcbiAgICAgICAgICAgICAgICAgICAgYSArPSAxIDw8ICh0aGlzLm0gLSBpIC0gMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoayA9IGo7IGsgPCB0aGlzLm47IGsgPSBrICsgbjIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdDEgPSBjICogcmVhbFtrICsgbjFdIC0gcyAqIGltZ1trICsgbjFdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0MiA9IHMgKiByZWFsW2sgKyBuMV0gKyBjICogaW1nW2sgKyBuMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxbayArIG4xXSA9IHJlYWxba10gLSB0MTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nW2sgKyBuMV0gPSBpbWdba10gLSB0MjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFtrXSA9IHJlYWxba10gKyB0MTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nW2tdID0gaW1nW2tdICsgdDI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgcHVibGljIHByb2Nlc3ModDogQXJyYXk8Q29tcGxleD4pOiBBcnJheTxDb21wbGV4PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWxzOiBBcnJheTxudW1iZXI+ID0gbmV3IEFycmF5PG51bWJlcj4odGhpcy5uKTtcclxuICAgICAgICAgICAgY29uc3QgaW1nczogQXJyYXk8bnVtYmVyPiA9IG5ldyBBcnJheTxudW1iZXI+KHRoaXMubik7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zOiBBcnJheTxDb21wbGV4PiA9IG5ldyBBcnJheTxDb21wbGV4Pih0aGlzLm4pO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICByZWFsc1tpXSA9IHRbaV0ucmVhbDtcclxuICAgICAgICAgICAgICAgIGltZ3NbaV0gPSB0W2ldLmltZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmZmdENvb2xleVR1a2V5KHJlYWxzLCBpbWdzKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNbaV0gPSBuZXcgQ29tcGxleChyZWFsc1tpXSwgaW1nc1tpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL21hdGgvZGZ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsTUFBTSxPQUFPLFVBQVU7SUFRbkIsWUFBWSxDQUFTO1FBQ2pCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkMsOEVBQThFO1FBRTlFLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUFvQjtRQUNuQyxNQUFNLENBQUMsR0FBRyxNQUFN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LENBQWlCO1FBQzVCLE1BQU0sS0FBSyxHQUFrQixJQUFJLEtBQUssQ0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLEdBQWtCLElBQUksS0FBSyxDQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBbUIsSUFBSSxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGxleCB9IGZyb20gJy4vY29tcGxleCc7XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIERGVEZsb2F0MzIge1xyXG5cclxuICAgICAgICBwcml2YXRlIG46IG51bWJlcjtcclxuICAgICAgICBwcml2YXRlIG06IG51bWJlcjtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjb3NMb29rdXA6IEZsb2F0MzJBcnJheTtcclxuICAgICAgICBwcml2YXRlIHNpbkxvb2t1cDogRmxvYXQzMkFycmF5O1xyXG5cclxuICAgICAgICBjb25zdHJ1Y3RvcihuOiBudW1iZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5uID0gbjtcclxuICAgICAgICAgICAgdGhpcy5tID0gTWF0aC5sb2cobikgLyBNYXRoLmxvZygyKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGlmKG4gIT0gKDEgPDwgbSkpdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oXCJsZW5ndGggTiBtdXN0IGJlIHBvd2VyIG9mIDJcIik7XHJcblxyXG4gICAgICAgICAgICAvLyBsb29rdXAgdGFibGVzXHJcbiAgICAgICAgICAgIHRoaXMuY29zTG9va3VwID0gbmV3IEZsb2F0MzJBcnJheShuIC8gMik7XHJcbiAgICAgICAgICAgIHRoaXMuc2luTG9va3VwID0gbmV3IEZsb2F0MzJBcnJheShuIC8gMik7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG4gLyAyOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFyYyA9ICgtMiAqIE1hdGguUEkgKiBpKSAvIG47XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvc0xvb2t1cFtpXSA9IE1hdGguY29zKGFyYyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNpbkxvb2t1cFtpXSA9IE1hdGguc2luKGFyYyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzUmVhbChzcmNCdWY6IEZsb2F0MzJBcnJheSk6IEFycmF5PENvbXBsZXg+IHtcclxuICAgICAgICAgICAgY29uc3QgeCA9IHNyY0J1Zi5zbGljZSgpO1xyXG4gICAgICAgICAgICBjb25zdCB5ID0gbmV3IEZsb2F0MzJBcnJheShzcmNCdWYubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgeWkgPSAwOyB5aSA8IHkubGVuZ3RoOyB5aSsrKSB7XHJcbiAgICAgICAgICAgICAgICB5W3lpXSA9IDAuMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmZmdENvb2xleVR1a2V5KHgsIHkpO1xyXG4gICAgICAgICAgICBjb25zdCByYyA9IG5ldyBBcnJheTxDb21wbGV4Pih4Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgcmNbaV0gPSBuZXcgQ29tcGxleCh4W2ldLCB5W2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwdWJsaWMgcHJvY2Vzc1JlYWxNYWduaXR1ZGUoc3JjQnVmOiBGbG9hdDMyQXJyYXkpOiBGbG9hdDMyQXJyYXkge1xyXG4gICAgICAgICAgICBjb25zdCB4ID0gc3JjQnVmLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHkgPSBuZXcgRmxvYXQzMkFycmF5KHNyY0J1Zi5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCB5aSA9IDA7IHlpIDwgeS5sZW5ndGg7IHlpKyspIHtcclxuICAgICAgICAgICAgICAgIHlbeWldID0gMC4wO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmZ0Q29vbGV5VHVrZXkoeCwgeSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJjID0gbmV3IEZsb2F0MzJBcnJheSh4Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmNjID0gbmV3IENvbXBsZXgoeFtpXSwgeVtpXSk7XHJcbiAgICAgICAgICAgICAgICByY1tpXSA9IHJjYy5tYWduaXR1ZGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwdWJsaWMgZmZ0Q29vbGV5VHVrZXkocmVhbDogRmxvYXQzMkFycmF5LCBpbWc6IEZsb2F0MzJBcnJheSk6IHZvaWQge1xyXG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgaiA9IDA7XHJcbiAgICAgICAgICAgIGxldCBrOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBuMTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgbjI6IG51bWJlciA9IHRoaXMubiAvIDI7XHJcbiAgICAgICAgICAgIGxldCBhOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBjOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBzOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCB0MTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgdDI6IG51bWJlcjtcclxuXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCB0aGlzLm4gLSAxOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG4xID0gbjI7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAoaiA+PSBuMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGogPSBqIC0gbjE7XHJcbiAgICAgICAgICAgICAgICAgICAgbjEgPSBuMSAvIDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBqID0gaiArIG4xO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChpIDwgaikge1xyXG4gICAgICAgICAgICAgICAgICAgIHQxID0gcmVhbFtpXTtcclxuICAgICAgICAgICAgICAgICAgICByZWFsW2ldID0gcmVhbFtqXTtcclxuICAgICAgICAgICAgICAgICAgICByZWFsW2pdID0gdDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdDEgPSBpbWdbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nW2ldID0gaW1nW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZ1tqXSA9IHQxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBuMSA9IDA7XHJcbiAgICAgICAgICAgIG4yID0gMTtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBuMSA9IG4yO1xyXG4gICAgICAgICAgICAgICAgbjIgPSBuMiArIG4yO1xyXG4gICAgICAgICAgICAgICAgYSA9IDA7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbjE7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLmNvc0xvb2t1cFthXTtcclxuICAgICAgICAgICAgICAgICAgICBzID0gdGhpcy5zaW5Mb29rdXBbYV07XHJcbiAgICAgICAgICAgICAgICAgICAgYSArPSAoIDEgPDwgKHRoaXMubSAtIGkgLSAxKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoayA9IGo7IGsgPCB0aGlzLm47IGsgPSBrICsgbjIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdDEgPSBjICogcmVhbFtrICsgbjFdIC0gcyAqIGltZ1trICsgbjFdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0MiA9IHMgKiByZWFsW2sgKyBuMV0gKyBjICogaW1nW2sgKyBuMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxbayArIG4xXSA9IHJlYWxba10gLSB0MTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nW2sgKyBuMV0gPSBpbWdba10gLSB0MjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFtrXSA9IHJlYWxba10gKyB0MTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nW2tdID0gaW1nW2tdICsgdDI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgcHVibGljIHByb2Nlc3ModDogQXJyYXk8Q29tcGxleD4pOiBBcnJheTxDb21wbGV4PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWxzOiBGbG9hdDMyQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMubik7XHJcbiAgICAgICAgICAgIGNvbnN0IGltZ3M6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkodGhpcy5uKTtcclxuICAgICAgICAgICAgY29uc3QgdHJhbnM6IEFycmF5PENvbXBsZXg+ID0gbmV3IEFycmF5PENvbXBsZXg+KHRoaXMubik7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHJlYWxzW2ldID0gdFtpXS5yZWFsO1xyXG4gICAgICAgICAgICAgICAgaW1nc1tpXSA9IHRbaV0uaW1nO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmZ0Q29vbGV5VHVrZXkocmVhbHMsIGltZ3MpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc1tpXSA9IG5ldyBDb21wbGV4KHJlYWxzW2ldLCBpbWdzW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdHJhbnM7XHJcblxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZXhwb3J0IGNsYXNzIERGVCB7XHJcblxyXG4gICAgICAgIHByaXZhdGUgbjogbnVtYmVyO1xyXG4gICAgICAgIHByaXZhdGUgbTogbnVtYmVyO1xyXG5cclxuICAgICAgICBwcml2YXRlIGNvc0xvb2t1cDogQXJyYXk8bnVtYmVyPjtcclxuICAgICAgICBwcml2YXRlIHNpbkxvb2t1cDogQXJyYXk8bnVtYmVyPjtcclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IobjogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubiA9IG47XHJcbiAgICAgICAgICAgIHRoaXMubSA9IE1hdGgubG9nKG4pIC8gTWF0aC5sb2coMik7XHJcblxyXG4gICAgICAgICAgICAvLyBpZihuICE9ICgxIDw8IG0pKXRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKFwibGVuZ3RoIE4gbXVzdCBiZSBwb3dlciBvZiAyXCIpO1xyXG5cclxuICAgICAgICAgICAgLy8gbG9va3VwIHRhYmxlc1xyXG4gICAgICAgICAgICB0aGlzLmNvc0xvb2t1cCA9IG5ldyBBcnJheTxudW1iZXI+KG4gLyAyKTtcclxuICAgICAgICAgICAgdGhpcy5zaW5Mb29rdXAgPSBuZXcgQXJyYXk8bnVtYmVyPihuIC8gMik7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG4gLyAyOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFyYyA9ICgtMiAqIE1hdGguUEkgKiBpKSAvIG47XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvc0xvb2t1cFtpXSA9IE1hdGguY29zKGFyYyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNpbkxvb2t1cFtpXSA9IE1hdGguc2luKGFyYyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzUmVhbChzcmNCdWY6IEFycmF5PG51bWJlcj4pOiBBcnJheTxDb21wbGV4PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHggPSBzcmNCdWYuc2xpY2UoKTtcclxuICAgICAgICAgICAgY29uc3QgeSA9IG5ldyBBcnJheTxudW1iZXI+KHNyY0J1Zi5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCB5aSA9IDA7IHlpIDwgeS5sZW5ndGg7IHlpKyspIHtcclxuICAgICAgICAgICAgICAgIHlbeWldID0gMC4wO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmZ0Q29vbGV5VHVrZXkoeCwgeSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJjID0gbmV3IEFycmF5PENvbXBsZXg+KHgubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICByY1tpXSA9IG5ldyBDb21wbGV4KHhbaV0sIHlbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByYztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBmZnRDb29sZXlUdWtleShyZWFsOiBBcnJheTxudW1iZXI+LCBpbWc6IEFycmF5PG51bWJlcj4pOiB2b2lkIHtcclxuICAgICAgICAgICAgbGV0IGk6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IGogPSAwO1xyXG4gICAgICAgICAgICBsZXQgazogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgbjE6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IG4yOiBudW1iZXIgPSB0aGlzLm4gLyAyO1xyXG4gICAgICAgICAgICBsZXQgYTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgYzogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgczogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgdDE6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IHQyOiBudW1iZXI7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDwgdGhpcy5uIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBuMSA9IG4yO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKGogPj0gbjEpIHtcclxuICAgICAgICAgICAgICAgICAgICBqID0gaiAtIG4xO1xyXG4gICAgICAgICAgICAgICAgICAgIG4xID0gbjEgLyAyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaiA9IGogKyBuMTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaSA8IGopIHtcclxuICAgICAgICAgICAgICAgICAgICB0MSA9IHJlYWxbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgcmVhbFtpXSA9IHJlYWxbal07XHJcbiAgICAgICAgICAgICAgICAgICAgcmVhbFtqXSA9IHQxO1xyXG4gICAgICAgICAgICAgICAgICAgIHQxID0gaW1nW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZ1tpXSA9IGltZ1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpbWdbal0gPSB0MTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbjEgPSAwO1xyXG4gICAgICAgICAgICBuMiA9IDE7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLm07IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbjEgPSBuMjtcclxuICAgICAgICAgICAgICAgIG4yID0gbjIgKyBuMjtcclxuICAgICAgICAgICAgICAgIGEgPSAwO1xyXG4gICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IG4xOyBqKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjID0gdGhpcy5jb3NMb29rdXBbYV07XHJcbiAgICAgICAgICAgICAgICAgICAgcyA9IHRoaXMuc2luTG9va3VwW2FdO1xyXG4gICAgICAgICAgICAgICAgICAgIGEgKz0gMSA8PCAodGhpcy5tIC0gaSAtIDEpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGsgPSBqOyBrIDwgdGhpcy5uOyBrID0gayArIG4yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHQxID0gYyAqIHJlYWxbayArIG4xXSAtIHMgKiBpbWdbayArIG4xXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdDIgPSBzICogcmVhbFtrICsgbjFdICsgYyAqIGltZ1trICsgbjFdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFsW2sgKyBuMV0gPSByZWFsW2tdIC0gdDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZ1trICsgbjFdID0gaW1nW2tdIC0gdDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxba10gPSByZWFsW2tdICsgdDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZ1trXSA9IGltZ1trXSArIHQyO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzKHQ6IEFycmF5PENvbXBsZXg+KTogQXJyYXk8Q29tcGxleD4ge1xyXG4gICAgICAgICAgICBjb25zdCByZWFsczogQXJyYXk8bnVtYmVyPiA9IG5ldyBBcnJheTxudW1iZXI+KHRoaXMubik7XHJcbiAgICAgICAgICAgIGNvbnN0IGltZ3M6IEFycmF5PG51bWJlcj4gPSBuZXcgQXJyYXk8bnVtYmVyPih0aGlzLm4pO1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuczogQXJyYXk8Q29tcGxleD4gPSBuZXcgQXJyYXk8Q29tcGxleD4odGhpcy5uKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgcmVhbHNbaV0gPSB0W2ldLnJlYWw7XHJcbiAgICAgICAgICAgICAgICBpbWdzW2ldID0gdFtpXS5pbWc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleShyZWFscywgaW1ncyk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zW2ldID0gbmV3IENvbXBsZXgocmVhbHNbaV0sIGltZ3NbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cmFucztcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuIl19
|
|
@@ -364,4 +364,4 @@ export class Uploader {
|
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvbmV0L3VwbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV4QyxxQkFBcUI7QUFDckIsTUFBTSxDQUFOLElBQVksWUFBc0U7QUFBbEYsV0FBWSxZQUFZO0lBQUUsK0NBQVEsQ0FBQTtJQUFFLHlEQUFhLENBQUE7SUFBRyxpREFBUyxDQUFBO0lBQUUsK0NBQVEsQ0FBQTtJQUFFLDhDQUFRLENBQUE7QUFBQSxDQUFDLEVBQXRFLFlBQVksS0FBWixZQUFZLFFBQTBEO0FBRWxGLHdCQUF3QjtBQUN4Qiw0RkFBNEY7QUFDNUYsTUFBTSxDQUFOLElBQVksY0FBK0U7QUFBM0YsV0FBWSxjQUFjO0lBQUcsbURBQVEsQ0FBQTtJQUFFLDZEQUFhLENBQUE7SUFBRSxxRUFBaUIsQ0FBQTtJQUFDLG1EQUFRLENBQUE7SUFBRSxrREFBUSxDQUFBO0FBQUEsQ0FBQyxFQUEvRSxjQUFjLEtBQWQsY0FBYyxRQUFpRTtBQUUzRixNQUFNLE9BQU8seUJBQXlCO0lBTWxDLFlBQVksVUFBa0IsRUFBRSxRQUFnQixFQUFFLE1BQXNCO1FBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBQyxJQUFJLENBQUMsU0FB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QUNGO1NBQ0Y7UUFDRCxJQUFHLENBQUMsSUFBRSxDQUFDLEVBQUM7WUFDTiwrQkFBK0I7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBQyxjQUFjLENBQUMsSUFBSSxDQUFBO1NBQ2hDO1FBQ0QsSUFBSSxFQUFFLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVDLFdBQVcsQ0FBQyxFQUFVO1FBQ2xCLElBQUksRUFBRSxFQUFFO1lBQ0osSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2xCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbiAgICBpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuICAgIGltcG9ydCB7IHRpbWVvdXQgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuXHJcbiAgICAvLyBzdGF0ZSBvZiBhbiB1cGxvYWRcclxuICAgIGV4cG9ydCBlbnVtIFVwbG9hZFN0YXR1cyB7SURMRSA9IDEsIFVQTE9BRElORyA9IDIsICBBQk9SVCA9IDMsIERPTkUgPSAwLCBFUlIgPSAtMX1cclxuXHJcbiAgICAvLyBzdGF0ZSBvZiB0aGUgdXBsb2FkZXJcclxuICAgIC8vIFRSWV9VUExPQURJTkcgaXMgdXBsb2FkaW5nIHN0YXRlIGFmdGVyIGFuIGVycm9yIChmb3IgZXhhbXBsZSBpZiBkaXNjb25uZWN0ZWQgZnJvbSBzZXJ2ZXIpXHJcbiAgICBleHBvcnQgZW51bSBVcGxvYWRlclN0YXR1cyB7IERPTkUgPSAwLCBVUExPQURJTkcgPSAxLCBUUllfVVBMT0FESU5HID0gMixORVhUID0gMywgRVJSID0gLTF9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIFVwbG9hZGVyU3RhdHVzQ2hhbmdlRXZlbnQge1xyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3NpemVRdWV1ZWQ6bnVtYmVyO1xyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3NpemVEb25lOm51bWJlcjtcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXM6IFVwbG9hZGVyU3RhdHVzO1xyXG5cclxuXHJcbiAgICAgICAgY29uc3RydWN0b3Ioc2l6ZVF1ZXVlZDogbnVtYmVyLCBzaXplRG9uZTogbnVtYmVyLCBzdGF0dXM6IFVwbG9hZGVyU3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NpemVRdWV1ZWQgPSBzaXplUXVldWVkO1xyXG4gICAgICAgICAgICB0aGlzLl9zaXplRG9uZSA9IHNpemVEb25lO1xyXG4gICAgICAgICAgICB0aGlzLl9zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnZXQgc2l6ZVF1ZXVlZCgpOm51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zaXplUXVldWVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0IHNpemVEb25lKCk6bnVtYmVyIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NpemVEb25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2l6ZUluUXVldWUoKXtcclxuICAgICAgICAgIHJldHVybiB0aGlzLl9zaXplUXVldWVkLXRoaXMuX3NpemVEb25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0IHN0YXR1cygpOiBVcGxvYWRlclN0YXR1cyB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cGxvYWREb25lKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuX3NpemVEb25lID49IHRoaXMuX3NpemVRdWV1ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGVyY2VudERvbmUoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3NpemVRdWV1ZWQgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgLy8gbm8gZGF0YSBxdWV1ZWQsIHdlIGFyZSBcImRvbmVcIlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDEwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGVyY2VudCA9IE1hdGguZmxvb3IodGhpcy5fc2l6ZURvbmUgKiAxMDAgLyB0aGlzLl9zaXplUXVldWVkKTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlVwbG9hZCBzdGF0dXM6IHF1ZXVlZDogXCIrdGhpcy5fc2l6ZVF1ZXVlZCtcIiwgZG9uZTogXCIrdGhpcy5fc2l6ZURvbmUrXCIsIFwiK3BlcmNlbnQrXCIlXCIpXHJcbiAgICAgICAgICAgIHJldHVybiBwZXJjZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIFVwbG9hZCB7XHJcblxyXG4gICAgICBnZXQgc2VydmVyUGVyc2lzdGFibGUoKTogU2VydmVyUGVyc2lzdGFibGUgfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VydmVyUGVyc2lzdGFibGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGF0YTpCbG9ifEZvcm1EYXRhO1xyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3VybDpzdHJpbmc7XHJcblxyXG4gICAgICAgIHN0YXR1czogVXBsb2FkU3RhdHVzO1xyXG4gICAgICAgIG9uRG9uZTooKHVwbG9hZDpVcGxvYWQpPT52b2lkKSB8IG51bGw9bnVsbDtcclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYmxvYjpCbG9ifEZvcm1EYXRhLCB1cmw6c3RyaW5nLHByaXZhdGUgX3NlcnZlclBlcnNpc3RhYmxlOlNlcnZlclBlcnNpc3RhYmxlfG51bGw9bnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhID0gYmxvYjtcclxuICAgICAgICAgICAgdGhpcy5fdXJsID0gdXJsO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9IFVwbG9hZFN0YXR1cy5JRExFO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0IHVybCgpOnN0cmluZyB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnZXQgZGF0YSgpOkJsb2J8Rm9ybURhdGEge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRvbmUoKXtcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXM9VXBsb2FkU3RhdHVzLkRPTkU7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlNpbmdsZSB1cGxvYWQgZG9uZS5cIik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuX3NlcnZlclBlcnNpc3RhYmxlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fc2VydmVyUGVyc2lzdGFibGUuc2VydmVyUGVyc2lzdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJTaW5nbGUgdXBsb2FkIHNldCBzZXJ2ZXIgcGVyc2lzdGVkOiBcIit0aGlzLnNlcnZlclBlcnNpc3RhYmxlKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2VydmVyIHBlcnNpc3RhYmxlIG5vdCBzZXQuXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMub25Eb25lKXtcclxuICAgICAgICAgICAgICB0aGlzLm9uRG9uZSh0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgcHVibGljIHRvU3RyaW5nID0gKCkgOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGxldCBzPWBVcGxvYWQ6IFN0YXR1czogJHt0aGlzLnN0YXR1c30sIFVSTDogJHt0aGlzLl91cmx9YDtcclxuICAgICAgICBpZih0aGlzLl9kYXRhIGluc3RhbmNlb2YgQmxvYil7XHJcbiAgICAgICAgICAgIHM9cytgLCBTaXplOiAke3RoaXMuX2RhdGEuc2l6ZX1gO1xyXG4gICAgICAgIH1lbHNlIGlmKHRoaXMuX2RhdGEgaW5zdGFuY2VvZiAgRm9ybURhdGEpe1xyXG4gICAgICAgICAgIC8vIFRPRE8gKGl0ZXJhdGUgdGhyb3VnaCBwYXJ0cyA/PylcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgY2xhc3MgVXBsb2FkSG9sZGVye1xyXG5cclxuICAgICAgb25VcGxvYWRTZXQ6KCh1cGxvYWQ6VXBsb2FkKT0+dm9pZCl8bnVsbD1udWxsO1xyXG5cclxuICAgICAgZ2V0IHVwbG9hZCgpOiBVcGxvYWQgfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdXBsb2FkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzZXQgdXBsb2FkKHZhbHVlOiBVcGxvYWQgfCBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkID0gdmFsdWU7XHJcbiAgICAgICAgaWYodGhpcy5fdXBsb2FkICYmIHRoaXMub25VcGxvYWRTZXQpe1xyXG4gICAgICAgICAgdGhpcy5vblVwbG9hZFNldCh0aGlzLl91cGxvYWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBwcml2YXRlIF91cGxvYWQ6VXBsb2FkfG51bGw9bnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgY2xhc3MgVXBsb2FkU2V0e1xyXG5cclxuICAgICAgcHJpdmF0ZSB1cGxvYWRzOiBBcnJheTxVcGxvYWR8VXBsb2FkSG9sZGVyPj1uZXcgQXJyYXk8VXBsb2FkfFVwbG9hZEhvbGRlcj4oKTtcclxuICAgICAgcHJpdmF0ZSBfY29tcGxldGU9ZmFsc2U7XHJcblxyXG4gICAgICBwcml2YXRlIF9vbkRvbmU6KCh1cGxvYWRTZXQ6VXBsb2FkU2V0KT0+dm9pZCl8bnVsbD1udWxsO1xyXG5cclxuICAgICAgYWRkKHVwbG9hZDpVcGxvYWR8VXBsb2FkSG9sZGVyKXtcclxuICAgICAgICBpZih0aGlzLl9jb21wbGV0ZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWRkIHVwbG9hZCB0byB1cGxvYWQgc2V0LiBVcGxvYWQgc2V0IGFscmVhZHkgY29tcGxldGUuJylcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodXBsb2FkIGluc3RhbmNlb2YgVXBsb2FkSG9sZGVyKXtcclxuICAgICAgICAgIHVwbG9hZC5vblVwbG9hZFNldD0odXBsKT0+e1xyXG4gICAgICAgICAgICB1cGwub25Eb25lPSgpPT57XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja1VwbG9hZFN0YXRlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tVcGxvYWRTdGF0ZXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGxvYWRzLnB1c2godXBsb2FkKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbXBsZXRlKCl7XHJcbiAgICAgICAgLy8gTWFyayBzZXQgYXMgY29tcGxldGVcclxuICAgICAgICB0aGlzLl9jb21wbGV0ZT10cnVlO1xyXG5cclxuICAgICAgICAvLyBhZGQgbGlzdGVuZXJzIHRvIGVhY2ggdXBsb2FkXHJcbiAgICAgICAgZm9yKGxldCB1cGwgb2YgdGhpcy51cGxvYWRzKXtcclxuICAgICAgICAgIGlmKHVwbCBpbnN0YW5jZW9mIFVwbG9hZCkge1xyXG4gICAgICAgICAgICB1cGwub25Eb25lID0gKHVwbDogVXBsb2FkKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja1VwbG9hZFN0YXRlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZSBpZih1cGwgaW5zdGFuY2VvZiBVcGxvYWRIb2xkZXIpe1xyXG4gICAgICAgICAgICBpZih1cGwudXBsb2FkKXtcclxuICAgICAgICAgICAgICB1cGwudXBsb2FkLm9uRG9uZSA9ICh1cGw6IFVwbG9hZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1VwbG9hZFN0YXRlcygpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2hlY2sgaW1tZWRpYXRlbHkgaWYgYWxyZWFkeSBkb25lXHJcbiAgICAgICAgdGhpcy5jaGVja1VwbG9hZFN0YXRlcygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzZXQgb25Eb25lKHZhbHVlOiAoKHVwbG9hZFNldDogVXBsb2FkU2V0KSA9PiB2b2lkKSB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9vbkRvbmUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrVXBsb2FkU3RhdGVzKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHByaXZhdGUgY2hlY2tVcGxvYWRTdGF0ZXMoKXtcclxuICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJDaGVjayB1cGxvYWQgc3RhdGUuLi5cIilcclxuICAgICAgICBpZih0aGlzLl9jb21wbGV0ZSl7XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5fb25Eb25lKSB7XHJcbiAgICAgICAgICAgIGZvcihsZXQgdXBsIG9mIHRoaXMudXBsb2Fkcyl7XHJcbiAgICAgICAgICAgICAgaWYodXBsIGluc3RhbmNlb2YgVXBsb2FkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoVXBsb2FkU3RhdHVzLkRPTkUgIT09IHVwbC5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgICAgLy8gQXQgbGVhc3QgdGhpcyB1cGxvYWQgaXMgbm90IHlldCBkb25lXHJcbiAgICAgICAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcclxuICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQ2hlY2sgdXBsb2FkIHN0YXRlOiBVcGxvYWQgbm90IGRvbmUuXCIpXHJcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9ZWxzZSBpZih1cGwgaW5zdGFuY2VvZiBVcGxvYWRIb2xkZXIpe1xyXG4gICAgICAgICAgICAgICAgaWYodXBsLnVwbG9hZCl7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChVcGxvYWRTdGF0dXMuRE9ORSAhPT0gdXBsLnVwbG9hZC5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBBdCBsZWFzdCB0aGlzIHVwbG9hZCBpcyBub3QgeWV0IGRvbmVcclxuICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQ2hlY2sgdXBsb2FkIHN0YXRlOiBVcGxvYWQgKGhvbGRlcikgbm90IGRvbmUuXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgLy8gVGhlIGFjdHVhbCB1cGxvYWQgaXMgbm90IHlldCBzZXRcclxuICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQ2hlY2sgdXBsb2FkIHN0YXRlOiBVcGxvYWQgKGhvbGRlcik6IHVwbG9hZCBub3QgeWV0IHNldC5cIilcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBzZXQgaXMgY29tcGxldGUgYW5kIGFsbCB1cGxvYWQgcGFydHMgYXJlIGRvbmUsIGNhbGwgZG9uZSBjYWxsYmFja1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJDaGVjayB1cGxvYWQgc3RhdGU6IEFsbCBkb25lLlwiKVxyXG4gICAgICAgICAgICB0aGlzLl9vbkRvbmUodGhpcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJQZXJzaXN0YWJsZXtcclxuICAgICAgICBzZXJ2ZXJQZXJzaXN0ZWQ6Ym9vbGVhbjtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgY2xhc3MgVXBsb2FkZXIge1xyXG4gICAgICAgIFBPU1RfTUlOX1RJTUVPVVQgPSAxMjAwMDA7IC8vIDJtaW4gcGx1cyAuLi5cclxuICAgICAgICBQT1NUX1RJTUVPVVRfUEVSX0tCID0gMTAwMDsgIC8vIC4uLiAxcyBwZXIga0JcclxuXHJcbiAgICAgICAgUkVUUllfREVMQVk6IG51bWJlciA9IDMwMDAwOyAvLyByZXRyeSBldmVyeSAzMHNcclxuICAgICAgICBERUJVR19ERUxBWTogbnVtYmVyID0gMDtcclxuICAgICAgICAvL0RFQlVHX0RFTEFZOm51bWJlcj0wO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdHVzOiBVcGxvYWRlclN0YXR1cyA9IFVwbG9hZGVyU3RhdHVzLkRPTkU7XHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBxdWU6IEFycmF5PFVwbG9hZD47XHJcbiAgICAgICAgbGlzdGVuZXI6ICgodWU6IFVwbG9hZGVyU3RhdHVzQ2hhbmdlRXZlbnQpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcbiAgICAgICAgcHJpdmF0ZSBfc2l6ZVF1ZXVlZDogbnVtYmVyID0gMDtcclxuICAgICAgICBwcml2YXRlIF9zaXplRG9uZTogbnVtYmVyID0gMDtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSByZXRyeVRpbWVyUnVubmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHByaXZhdGUgcmV0cnlUaW1lcklkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSB0ZTpUZXh0RW5jb2Rlcj1uZXcgVGV4dEVuY29kZXIoKTtcclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucXVlID0gbmV3IEFycmF5PFVwbG9hZD4oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNpemUoZHQ6QmxvYnxGb3JtRGF0YSl7XHJcbiAgICAgICAgICAgIGxldCBzaT0wO1xyXG4gICAgICAgICAgICBpZihkdCBpbnN0YW5jZW9mIEJsb2Ipe1xyXG4gICAgICAgICAgICAgICAgc2k9ZHQuc2l6ZTtcclxuICAgICAgICAgICAgfWVsc2UgaWYoZHQgaW5zdGFuY2VvZiAgRm9ybURhdGEpe1xyXG4gICAgICAgICAgICAgICAgZHQuZm9yRWFjaCgodixrKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHYgaW5zdGFuY2VvZiBGaWxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2krPXYuc2l6ZTtcclxuICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZih0eXBlb2YgdiA9PT0nc3RyaW5nJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuY29kZSB0byBVVEYtOCB0byBnZXQgdXBsb2FkIHNpemVcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2krPSB0aGlzLnRlLmVuY29kZSgpLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBzaTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgIHVwbG9hZERvbmUodWw6VXBsb2FkKSB7XHJcblxyXG4gICAgICAgICAgICB1bC5kb25lKCk7XHJcblxyXG4gICAgICAgICAgICAvLyByZW1vdmUgdXBsb2FkIGZyb20gcXVldWVcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnF1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucXVlW2ldID09PSB1bCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kLCByZW1vdmVcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVsU2l6ZSA9IHRoaXMuZGF0YVNpemUodWwuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2l6ZURvbmUgKz0gdWxTaXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHNldCB0byBkb25lIGZvciBub3cuLi5cclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBVcGxvYWRlclN0YXR1cy5ORVhUO1xyXG4gICAgICAgICAgICAvLyBjb250aW51ZVxyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgc3RhcnRVcGxvYWQodWw6VXBsb2FkKSB7XHJcblxyXG4gICAgICAgICAgICB1bC5zdGF0dXMgPSBVcGxvYWRTdGF0dXMuVVBMT0FESU5HO1xyXG4gICAgICAgICAgICBpZiAoVXBsb2FkZXJTdGF0dXMuRVJSID09PSB0aGlzLnN0YXR1cykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBVcGxvYWRlclN0YXR1cy5UUllfVVBMT0FESU5HO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBVcGxvYWRlclN0YXR1cy5VUExPQURJTkc7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBkU2l6ZT10aGlzLmRhdGFTaXplKHVsLmRhdGEpO1xyXG4gICAgICAgICAgICBsZXQgdGltZW91dEZvckRhdGFTaXplPWRTaXplKnRoaXMuUE9TVF9USU1FT1VUX1BFUl9LQi8xMDAwO1xyXG4gICAgICAgICAgICBsZXQgdGltZW9WYWw6bnVtYmVyPU1hdGgucm91bmQodGhpcy5QT1NUX01JTl9USU1FT1VUK3RpbWVvdXRGb3JEYXRhU2l6ZSlcclxuICAgICAgICAgICAgLy8gcGlwZSh0aW1lb3V0KCkpIGlzIG5vdCB0aGUgc2FtZSBhcyB4aHIudGltZW91dFxyXG5cclxuICAgICAgICAgIGxldCB1cGxvYWRlZFVwbG9hZDpVcGxvYWR8bnVsbD1udWxsO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJQb3N0IHVwbG9hZDogXCIrdWwpXHJcbiAgICAgICAgICAgIHRoaXMuaHR0cC5wb3N0KHVsLnVybCx1bC5kYXRhLHt3aXRoQ3JlZGVudGlhbHM6dGhpcy53aXRoQ3JlZGVudGlhbHN9KS5waXBlKHRpbWVvdXQodGltZW9WYWwpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGEpPT5cclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkVXBsb2FkID0gdWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZygnTmV4dCBtZXRob2QgY2FsbGVkIGZvciB1cGxvYWQ6ICcrdXBsb2FkZWRVcGxvYWQpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICwgZXJyb3I6KGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5lcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuIEhhbmRsZSBpdCBhY2NvcmRpbmdseS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VwbG9hZCBlcnJvciBvY2N1cnJlZDonLCBlcnIuZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYmFja2VuZCByZXR1cm5lZCBhbiB1bnN1Y2Nlc3NmdWwgcmVzcG9uc2UgY29kZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSByZXNwb25zZSBib2R5IG1heSBjb250YWluIGNsdWVzIGFzIHRvIHdoYXQgd2VudCB3cm9uZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFVwbG9hZCBlcnJvcjogU2VydmVyIHJldHVybmVkIGNvZGUgJHtlcnIuc3RhdHVzfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKHVsKVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZygnVXBsb2FkIGNvbXBsZXRlIG1ldGhvZCBjYWxsZWQnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXBsb2FkZWRVcGxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLkRFQlVHX0RFTEFZID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWREb25lKHVsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLkRFQlVHX0RFTEFZKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWREb25lKHVwbG9hZGVkVXBsb2FkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVXBsb2FkIHBvc3QgY29tcGxldGUsIGJ1dCB1cGxvYWQgbm90IHNldCBpbiBuZXh0IG1ldGhvZCEnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIHByb2Nlc3NFcnJvcih1bDpVcGxvYWQpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUHJvY2VzcyB1cGxvYWQgZXJyb3IuLi5cIilcclxuICAgICAgICAgICAgdWwuc3RhdHVzPVVwbG9hZFN0YXR1cy5FUlJcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBVcGxvYWRlclN0YXR1cy5FUlI7XHJcblxyXG4gICAgICAgICAgICBsZXQgdWUgPSBuZXcgVXBsb2FkZXJTdGF0dXNDaGFuZ2VFdmVudCh0aGlzLl9zaXplUXVldWVkLCB0aGlzLl9zaXplRG9uZSwgdGhpcy5zdGF0dXMpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5saXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0ZW5lcih1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIHNldCByZXRyeSB0aW1lclxyXG4gICAgICAgICAgICB0aGlzLnJldHJ5VGltZXJJZD13aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJldHJ5VGltZXJSdW5uaW5nPWZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiVXBsb2FkIHJldHJ5IHRpbWVyIGV4cGlyZWQuIENvbnRpbnVlIHByb2Nlc3NpbmcuLi5cIilcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2VzcygpO1xyXG4gICAgICAgICAgICB9LCB0aGlzLlJFVFJZX0RFTEFZKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmV0cnlUaW1lclJ1bm5pbmc9dHJ1ZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU3RhcnRlZCB1cGxvYWQgcmV0cnkgdGltZXIgXCIrdGhpcy5SRVRSWV9ERUxBWStcIm1zIC4uLlwiKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIHByaXZhdGUgcHJvY2VzcygpIHtcclxuICAgICAgICAvLyBjbGVhciByZXRyeSB0aW1lciBpZiBzZXRcclxuICAgICAgICBpZih0aGlzLnJldHJ5VGltZXJSdW5uaW5nKXtcclxuICAgICAgICAgICAgaWYodGhpcy5yZXRyeVRpbWVySWQpIHtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5yZXRyeVRpbWVySWQpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucmV0cnlUaW1lclJ1bm5pbmc9ZmFsc2VcclxuICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkNsZWFyZWQgcmV0cnkgdGltZXIuXCIpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcHVsOiBVcGxvYWQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiVXBsb2FkZXIgc3RhdHVzOiBcIit0aGlzLnN0YXR1cylcclxuXHJcbiAgICAgICAgbGV0IHMgPSB0aGlzLnF1ZS5sZW5ndGg7XHJcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKHMrXCIgdXBsb2FkcyBhcmUgaW4gdGhlIHF1ZXVlLlwiKVxyXG5cclxuICAgICAgICBpZiAocz4wICYmIFVwbG9hZGVyU3RhdHVzLlVQTE9BRElORyAhPSB0aGlzLnN0YXR1cyAmJiBVcGxvYWRlclN0YXR1cy5UUllfVVBMT0FESU5HICE9IHRoaXMuc3RhdHVzKSB7XHJcblxyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHVsID0gdGhpcy5xdWVbaV07XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJVcGxvYWQgXCIrdWwrXCIgc3RhdHVzOlwiK3VsLnN0YXR1cylcclxuICAgICAgICAgICAgaWYgKHVsLnN0YXR1cyA9PT0gVXBsb2FkU3RhdHVzLklETEUpIHtcclxuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiVXBsb2FkIFwiK3VsK1wiIHN0YXJ0VXBsb2FkXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy5zdGFydFVwbG9hZCh1bCk7XHJcbiAgICAgICAgICAgICAgcHVsID0gdWw7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghcHVsKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJDaGVjayBFUlIgdXBsb2Fkcy4uLlwiKVxyXG4gICAgICAgICAgICAvLyBub3cgZmFpbGVkIHVwbG9hZHNcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiTm8gcmVndWxhciB1cGxvYWQgZm91bmQuIExvb2tpbmcgZm9yIGVycm9yIHN0YXRlIHVwbG9hZHMuXCIpXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgczsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHVsID0gdGhpcy5xdWVbaV07XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlVwbG9hZCBcIit1bCtcIiBzdGF0dXM6XCIrdWwuc3RhdHVzKVxyXG4gICAgICAgICAgICAgIGlmICh1bC5zdGF0dXMgPT09IFVwbG9hZFN0YXR1cy5FUlIpIHtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJVcGxvYWQgKEVSUikgXCIrdWwrXCIgc3RhcnRVcGxvYWRcIilcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlN0YXJ0IGVycm9yIHN0YXRlIHVwbG9hZCBcIit1bClcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRVcGxvYWQodWwpO1xyXG4gICAgICAgICAgICAgICAgcHVsID0gdWw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocz09MCl7XHJcbiAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJVcGxvYWQgZG9uZS5cIilcclxuICAgICAgICAgIHRoaXMuc3RhdHVzPVVwbG9hZGVyU3RhdHVzLkRPTkVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHVlID0gbmV3IFVwbG9hZGVyU3RhdHVzQ2hhbmdlRXZlbnQodGhpcy5fc2l6ZVF1ZXVlZCwgdGhpcy5fc2l6ZURvbmUsIHRoaXMuc3RhdHVzKTtcclxuICAgICAgICBpZiAodGhpcy5saXN0ZW5lcikge1xyXG4gICAgICAgICAgdGhpcy5saXN0ZW5lcih1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAgIHF1ZXVlVXBsb2FkKHVsOiBVcGxvYWQpIHtcclxuICAgICAgICAgICAgaWYgKHVsKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdWxTaXplID0gdGhpcy5kYXRhU2l6ZSh1bC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucXVlLnB1c2godWwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2l6ZVF1ZXVlZCArPSB1bFNpemU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4iXX0=
|
|
367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvbmV0L3VwbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV4QyxxQkFBcUI7QUFDckIsTUFBTSxDQUFOLElBQVksWUFBc0U7QUFBbEYsV0FBWSxZQUFZO0lBQUUsK0NBQVEsQ0FBQTtJQUFFLHlEQUFhLENBQUE7SUFBRyxpREFBUyxDQUFBO0lBQUUsK0NBQVEsQ0FBQTtJQUFFLDhDQUFRLENBQUE7QUFBQSxDQUFDLEVBQXRFLFlBQVksS0FBWixZQUFZLFFBQTBEO0FBRWxGLHdCQUF3QjtBQUN4Qiw0RkFBNEY7QUFDNUYsTUFBTSxDQUFOLElBQVksY0FBK0U7QUFBM0YsV0FBWSxjQUFjO0lBQUcsbURBQVEsQ0FBQTtJQUFFLDZEQUFhLENBQUE7SUFBRSxxRUFBaUIsQ0FBQTtJQUFDLG1EQUFRLENBQUE7SUFBRSxrREFBUSxDQUFBO0FBQUEsQ0FBQyxFQUEvRSxjQUFjLEtBQWQsY0FBYyxRQUFpRTtBQUUzRixNQUFNLE9BQU8seUJBQXlCO0lBTWxDLFlBQVksVUFBa0IsRUFBRSxRQUFnQixFQUFFLE1BQXNCO1FBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBQyxJQUFJLENBQUMsU0FB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QyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuICAgIGltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbiAgICBpbXBvcnQgeyB0aW1lb3V0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG4gICAgLy8gc3RhdGUgb2YgYW4gdXBsb2FkXHJcbiAgICBleHBvcnQgZW51bSBVcGxvYWRTdGF0dXMge0lETEUgPSAxLCBVUExPQURJTkcgPSAyLCAgQUJPUlQgPSAzLCBET05FID0gMCwgRVJSID0gLTF9XHJcblxyXG4gICAgLy8gc3RhdGUgb2YgdGhlIHVwbG9hZGVyXHJcbiAgICAvLyBUUllfVVBMT0FESU5HIGlzIHVwbG9hZGluZyBzdGF0ZSBhZnRlciBhbiBlcnJvciAoZm9yIGV4YW1wbGUgaWYgZGlzY29ubmVjdGVkIGZyb20gc2VydmVyKVxyXG4gICAgZXhwb3J0IGVudW0gVXBsb2FkZXJTdGF0dXMgeyBET05FID0gMCwgVVBMT0FESU5HID0gMSwgVFJZX1VQTE9BRElORyA9IDIsTkVYVCA9IDMsIEVSUiA9IC0xfVxyXG5cclxuICAgIGV4cG9ydCBjbGFzcyBVcGxvYWRlclN0YXR1c0NoYW5nZUV2ZW50IHtcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9zaXplUXVldWVkOm51bWJlcjtcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9zaXplRG9uZTpudW1iZXI7XHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzOiBVcGxvYWRlclN0YXR1cztcclxuXHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKHNpemVRdWV1ZWQ6IG51bWJlciwgc2l6ZURvbmU6IG51bWJlciwgc3RhdHVzOiBVcGxvYWRlclN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLl9zaXplUXVldWVkID0gc2l6ZVF1ZXVlZDtcclxuICAgICAgICAgICAgdGhpcy5fc2l6ZURvbmUgPSBzaXplRG9uZTtcclxuICAgICAgICAgICAgdGhpcy5fc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0IHNpemVRdWV1ZWQoKTpudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZVF1ZXVlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGdldCBzaXplRG9uZSgpOm51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zaXplRG9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNpemVJblF1ZXVlKCl7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZVF1ZXVlZC10aGlzLl9zaXplRG9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGdldCBzdGF0dXMoKTogVXBsb2FkZXJTdGF0dXMge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdXBsb2FkRG9uZSgpOiBib29sZWFuIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLl9zaXplRG9uZSA+PSB0aGlzLl9zaXplUXVldWVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBlcmNlbnREb25lKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaXplUXVldWVkID09IDApIHtcclxuICAgICAgICAgICAgICAgIC8vIG5vIGRhdGEgcXVldWVkLCB3ZSBhcmUgXCJkb25lXCJcclxuICAgICAgICAgICAgICAgIHJldHVybiAxMDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHBlcmNlbnQgPSBNYXRoLmZsb29yKHRoaXMuX3NpemVEb25lICogMTAwIC8gdGhpcy5fc2l6ZVF1ZXVlZCk7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJVcGxvYWQgc3RhdHVzOiBxdWV1ZWQ6IFwiK3RoaXMuX3NpemVRdWV1ZWQrXCIsIGRvbmU6IFwiK3RoaXMuX3NpemVEb25lK1wiLCBcIitwZXJjZW50K1wiJVwiKVxyXG4gICAgICAgICAgICByZXR1cm4gcGVyY2VudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBjbGFzcyBVcGxvYWQge1xyXG5cclxuICAgICAgZ2V0IHNlcnZlclBlcnNpc3RhYmxlKCk6IFNlcnZlclBlcnNpc3RhYmxlIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlcnZlclBlcnNpc3RhYmxlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2RhdGE6QmxvYnxGb3JtRGF0YTtcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF91cmw6c3RyaW5nO1xyXG5cclxuICAgICAgICBzdGF0dXM6IFVwbG9hZFN0YXR1cztcclxuICAgICAgICBvbkRvbmU6KCh1cGxvYWQ6VXBsb2FkKT0+dm9pZCkgfCBudWxsPW51bGw7XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGJsb2I6QmxvYnxGb3JtRGF0YSwgdXJsOnN0cmluZyxwcml2YXRlIF9zZXJ2ZXJQZXJzaXN0YWJsZTpTZXJ2ZXJQZXJzaXN0YWJsZXxudWxsPW51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fZGF0YSA9IGJsb2I7XHJcbiAgICAgICAgICAgIHRoaXMuX3VybCA9IHVybDtcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBVcGxvYWRTdGF0dXMuSURMRTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGdldCB1cmwoKTpzdHJpbmcge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdXJsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0IGRhdGEoKTpCbG9ifEZvcm1EYXRhIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkb25lKCl7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzPVVwbG9hZFN0YXR1cy5ET05FO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJTaW5nbGUgdXBsb2FkIGRvbmUuXCIpO1xyXG4gICAgICAgICAgICBpZih0aGlzLl9zZXJ2ZXJQZXJzaXN0YWJsZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3NlcnZlclBlcnNpc3RhYmxlLnNlcnZlclBlcnNpc3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2luZ2xlIHVwbG9hZCBzZXQgc2VydmVyIHBlcnNpc3RlZDogXCIrdGhpcy5zZXJ2ZXJQZXJzaXN0YWJsZSk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlNlcnZlciBwZXJzaXN0YWJsZSBub3Qgc2V0LlwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLm9uRG9uZSl7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkRvbmUodGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgIHB1YmxpYyB0b1N0cmluZyA9ICgpIDogc3RyaW5nID0+IHtcclxuICAgICAgICBsZXQgcz1gVXBsb2FkOiBTdGF0dXM6ICR7dGhpcy5zdGF0dXN9LCBVUkw6ICR7dGhpcy5fdXJsfWA7XHJcbiAgICAgICAgaWYodGhpcy5fZGF0YSBpbnN0YW5jZW9mIEJsb2Ipe1xyXG4gICAgICAgICAgICBzPXMrYCwgU2l6ZTogJHt0aGlzLl9kYXRhLnNpemV9YDtcclxuICAgICAgICB9ZWxzZSBpZih0aGlzLl9kYXRhIGluc3RhbmNlb2YgIEZvcm1EYXRhKXtcclxuICAgICAgICAgICAvLyBUT0RPIChpdGVyYXRlIHRocm91Z2ggcGFydHMgPz8pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIFVwbG9hZEhvbGRlcntcclxuXHJcbiAgICAgIG9uVXBsb2FkU2V0OigodXBsb2FkOlVwbG9hZCk9PnZvaWQpfG51bGw9bnVsbDtcclxuXHJcbiAgICAgIGdldCB1cGxvYWQoKTogVXBsb2FkIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwbG9hZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc2V0IHVwbG9hZCh2YWx1ZTogVXBsb2FkIHwgbnVsbCkge1xyXG4gICAgICAgIHRoaXMuX3VwbG9hZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmKHRoaXMuX3VwbG9hZCAmJiB0aGlzLm9uVXBsb2FkU2V0KXtcclxuICAgICAgICAgIHRoaXMub25VcGxvYWRTZXQodGhpcy5fdXBsb2FkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcHJpdmF0ZSBfdXBsb2FkOlVwbG9hZHxudWxsPW51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIFVwbG9hZFNldHtcclxuXHJcbiAgICAgIHByaXZhdGUgdXBsb2FkczogQXJyYXk8VXBsb2FkfFVwbG9hZEhvbGRlcj49bmV3IEFycmF5PFVwbG9hZHxVcGxvYWRIb2xkZXI+KCk7XHJcbiAgICAgIHByaXZhdGUgX2NvbXBsZXRlPWZhbHNlO1xyXG5cclxuICAgICAgcHJpdmF0ZSBfb25Eb25lOigodXBsb2FkU2V0OlVwbG9hZFNldCk9PnZvaWQpfG51bGw9bnVsbDtcclxuXHJcbiAgICAgIGFkZCh1cGxvYWQ6VXBsb2FkfFVwbG9hZEhvbGRlcil7XHJcbiAgICAgICAgaWYodGhpcy5fY29tcGxldGUpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFkZCB1cGxvYWQgdG8gdXBsb2FkIHNldC4gVXBsb2FkIHNldCBhbHJlYWR5IGNvbXBsZXRlLicpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHVwbG9hZCBpbnN0YW5jZW9mIFVwbG9hZEhvbGRlcil7XHJcbiAgICAgICAgICB1cGxvYWQub25VcGxvYWRTZXQ9KHVwbCk9PntcclxuICAgICAgICAgICAgdXBsLm9uRG9uZT0oKT0+e1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tVcGxvYWRTdGF0ZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrVXBsb2FkU3RhdGVzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBsb2Fkcy5wdXNoKHVwbG9hZCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb21wbGV0ZSgpe1xyXG4gICAgICAgIC8vIE1hcmsgc2V0IGFzIGNvbXBsZXRlXHJcbiAgICAgICAgdGhpcy5fY29tcGxldGU9dHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gYWRkIGxpc3RlbmVycyB0byBlYWNoIHVwbG9hZFxyXG4gICAgICAgIGZvcihsZXQgdXBsIG9mIHRoaXMudXBsb2Fkcyl7XHJcbiAgICAgICAgICBpZih1cGwgaW5zdGFuY2VvZiBVcGxvYWQpIHtcclxuICAgICAgICAgICAgdXBsLm9uRG9uZSA9ICh1cGw6IFVwbG9hZCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tVcGxvYWRTdGF0ZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2UgaWYodXBsIGluc3RhbmNlb2YgVXBsb2FkSG9sZGVyKXtcclxuICAgICAgICAgICAgaWYodXBsLnVwbG9hZCl7XHJcbiAgICAgICAgICAgICAgdXBsLnVwbG9hZC5vbkRvbmUgPSAodXBsOiBVcGxvYWQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tVcGxvYWRTdGF0ZXMoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNoZWNrIGltbWVkaWF0ZWx5IGlmIGFscmVhZHkgZG9uZVxyXG4gICAgICAgIHRoaXMuY2hlY2tVcGxvYWRTdGF0ZXMoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgc2V0IG9uRG9uZSh2YWx1ZTogKCh1cGxvYWRTZXQ6IFVwbG9hZFNldCkgPT4gdm9pZCkgfCBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5fb25Eb25lID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jaGVja1VwbG9hZFN0YXRlcygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBwcml2YXRlIGNoZWNrVXBsb2FkU3RhdGVzKCl7XHJcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQ2hlY2sgdXBsb2FkIHN0YXRlLi4uXCIpXHJcbiAgICAgICAgaWYodGhpcy5fY29tcGxldGUpe1xyXG5cclxuICAgICAgICAgIGlmKHRoaXMuX29uRG9uZSkge1xyXG4gICAgICAgICAgICBmb3IobGV0IHVwbCBvZiB0aGlzLnVwbG9hZHMpe1xyXG4gICAgICAgICAgICAgIGlmKHVwbCBpbnN0YW5jZW9mIFVwbG9hZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKFVwbG9hZFN0YXR1cy5ET05FICE9PSB1cGwuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIEF0IGxlYXN0IHRoaXMgdXBsb2FkIGlzIG5vdCB5ZXQgZG9uZVxyXG4gICAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nXHJcbiAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkNoZWNrIHVwbG9hZCBzdGF0ZTogVXBsb2FkIG5vdCBkb25lLlwiKVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfWVsc2UgaWYodXBsIGluc3RhbmNlb2YgVXBsb2FkSG9sZGVyKXtcclxuICAgICAgICAgICAgICAgIGlmKHVwbC51cGxvYWQpe1xyXG4gICAgICAgICAgICAgICAgICBpZiAoVXBsb2FkU3RhdHVzLkRPTkUgIT09IHVwbC51cGxvYWQuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQXQgbGVhc3QgdGhpcyB1cGxvYWQgaXMgbm90IHlldCBkb25lXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkNoZWNrIHVwbG9hZCBzdGF0ZTogVXBsb2FkIChob2xkZXIpIG5vdCBkb25lLlwiKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgIC8vIFRoZSBhY3R1YWwgdXBsb2FkIGlzIG5vdCB5ZXQgc2V0XHJcbiAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkNoZWNrIHVwbG9hZCBzdGF0ZTogVXBsb2FkIChob2xkZXIpOiB1cGxvYWQgbm90IHlldCBzZXQuXCIpXHJcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gc2V0IGlzIGNvbXBsZXRlIGFuZCBhbGwgdXBsb2FkIHBhcnRzIGFyZSBkb25lLCBjYWxsIGRvbmUgY2FsbGJhY2tcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQ2hlY2sgdXBsb2FkIHN0YXRlOiBBbGwgZG9uZS5cIilcclxuICAgICAgICAgICAgdGhpcy5fb25Eb25lKHRoaXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgU2VydmVyUGVyc2lzdGFibGV7XHJcbiAgICAgICAgc2VydmVyUGVyc2lzdGVkOmJvb2xlYW47XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGNsYXNzIFVwbG9hZGVyIHtcclxuICAgICAgICBQT1NUX01JTl9USU1FT1VUID0gMTIwMDAwOyAvLyAybWluIHBsdXMgLi4uXHJcbiAgICAgICAgUE9TVF9USU1FT1VUX1BFUl9LQiA9IDEwMDA7ICAvLyAuLi4gMXMgcGVyIGtCXHJcblxyXG4gICAgICAgIFJFVFJZX0RFTEFZOiBudW1iZXIgPSAzMDAwMDsgLy8gcmV0cnkgZXZlcnkgMzBzXHJcbiAgICAgICAgREVCVUdfREVMQVk6IG51bWJlciA9IDA7XHJcbiAgICAgICAgLy9ERUJVR19ERUxBWTpudW1iZXI9MDtcclxuICAgICAgICBwcml2YXRlIHN0YXR1czogVXBsb2FkZXJTdGF0dXMgPSBVcGxvYWRlclN0YXR1cy5ET05FO1xyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcXVlOiBBcnJheTxVcGxvYWQ+O1xyXG4gICAgICAgIGxpc3RlbmVyOiAoKHVlOiBVcGxvYWRlclN0YXR1c0NoYW5nZUV2ZW50KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgX3NpemVRdWV1ZWQ6IG51bWJlciA9IDA7XHJcbiAgICAgICAgcHJpdmF0ZSBfc2l6ZURvbmU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgICAgIHByaXZhdGUgcmV0cnlUaW1lclJ1bm5pbmcgPSBmYWxzZTtcclxuICAgICAgICBwcml2YXRlIHJldHJ5VGltZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICAgIHByaXZhdGUgdGU6VGV4dEVuY29kZXI9bmV3IFRleHRFbmNvZGVyKCk7XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLnF1ZSA9IG5ldyBBcnJheTxVcGxvYWQ+KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIGRhdGFTaXplKGR0OkJsb2J8Rm9ybURhdGEpe1xyXG4gICAgICAgICAgICBsZXQgc2k9MDtcclxuICAgICAgICAgICAgaWYoZHQgaW5zdGFuY2VvZiBCbG9iKXtcclxuICAgICAgICAgICAgICAgIHNpPWR0LnNpemU7XHJcbiAgICAgICAgICAgIH1lbHNlIGlmKGR0IGluc3RhbmNlb2YgIEZvcm1EYXRhKXtcclxuICAgICAgICAgICAgICAgIGR0LmZvckVhY2goKHYsayk9PntcclxuICAgICAgICAgICAgICAgICAgICBpZih2IGluc3RhbmNlb2YgRmlsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpKz12LnNpemU7XHJcbiAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYodHlwZW9mIHYgPT09J3N0cmluZycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbmNvZGUgdG8gVVRGLTggdG8gZ2V0IHVwbG9hZCBzaXplXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpKz0gdGhpcy50ZS5lbmNvZGUoKS5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc2k7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlICB1cGxvYWREb25lKHVsOlVwbG9hZCkge1xyXG5cclxuICAgICAgICAgICAgdWwuZG9uZSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gcmVtb3ZlIHVwbG9hZCBmcm9tIHF1ZXVlXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5xdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnF1ZVtpXSA9PT0gdWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCwgcmVtb3ZlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWUuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB1bFNpemUgPSB0aGlzLmRhdGFTaXplKHVsLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpemVEb25lICs9IHVsU2l6ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBzZXQgdG8gZG9uZSBmb3Igbm93Li4uXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gVXBsb2FkZXJTdGF0dXMuTkVYVDtcclxuICAgICAgICAgICAgLy8gY29udGludWVcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwcml2YXRlIHN0YXJ0VXBsb2FkKHVsOlVwbG9hZCkge1xyXG5cclxuICAgICAgICAgICAgdWwuc3RhdHVzID0gVXBsb2FkU3RhdHVzLlVQTE9BRElORztcclxuICAgICAgICAgICAgaWYgKFVwbG9hZGVyU3RhdHVzLkVSUiA9PT0gdGhpcy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gVXBsb2FkZXJTdGF0dXMuVFJZX1VQTE9BRElORztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gVXBsb2FkZXJTdGF0dXMuVVBMT0FESU5HO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgZFNpemU9dGhpcy5kYXRhU2l6ZSh1bC5kYXRhKTtcclxuICAgICAgICAgICAgbGV0IHRpbWVvdXRGb3JEYXRhU2l6ZT1kU2l6ZSp0aGlzLlBPU1RfVElNRU9VVF9QRVJfS0IvMTAwMDtcclxuICAgICAgICAgICAgbGV0IHRpbWVvVmFsOm51bWJlcj1NYXRoLnJvdW5kKHRoaXMuUE9TVF9NSU5fVElNRU9VVCt0aW1lb3V0Rm9yRGF0YVNpemUpXHJcbiAgICAgICAgICAgIC8vIHBpcGUodGltZW91dCgpKSBpcyBub3QgdGhlIHNhbWUgYXMgeGhyLnRpbWVvdXRcclxuXHJcbiAgICAgICAgICBsZXQgdXBsb2FkZWRVcGxvYWQ6VXBsb2FkfG51bGw9bnVsbDtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUG9zdCB1cGxvYWQ6IFwiK3VsKVxyXG4gICAgICAgICAgICB0aGlzLmh0dHAucG9zdCh1bC51cmwsdWwuZGF0YSx7d2l0aENyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzfSkucGlwZSh0aW1lb3V0KHRpbWVvVmFsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhKT0+XHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRlZFVwbG9hZCA9IHVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoJ05leHQgbWV0aG9kIGNhbGxlZCBmb3IgdXBsb2FkOiAnK3VwbG9hZGVkVXBsb2FkKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAsIGVycm9yOihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yIG9jY3VycmVkLiBIYW5kbGUgaXQgYWNjb3JkaW5nbHkuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdVcGxvYWQgZXJyb3Igb2NjdXJyZWQ6JywgZXJyLmVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGJhY2tlbmQgcmV0dXJuZWQgYW4gdW5zdWNjZXNzZnVsIHJlc3BvbnNlIGNvZGUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcmVzcG9uc2UgYm9keSBtYXkgY29udGFpbiBjbHVlcyBhcyB0byB3aGF0IHdlbnQgd3JvbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBVcGxvYWQgZXJyb3I6IFNlcnZlciByZXR1cm5lZCBjb2RlICR7ZXJyLnN0YXR1c31gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcih1bClcclxuICAgICAgICAgICAgICAgICAgICB9LCBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoJ1VwbG9hZCBjb21wbGV0ZSBtZXRob2QgY2FsbGVkJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVwbG9hZGVkVXBsb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ERUJVR19ERUxBWSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkRG9uZSh1bCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5ERUJVR19ERUxBWSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkRG9uZSh1cGxvYWRlZFVwbG9hZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VwbG9hZCBwb3N0IGNvbXBsZXRlLCBidXQgdXBsb2FkIG5vdCBzZXQgaW4gbmV4dCBtZXRob2QhJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHJpdmF0ZSBwcm9jZXNzRXJyb3IodWw6VXBsb2FkKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlByb2Nlc3MgdXBsb2FkIGVycm9yLi4uXCIpXHJcbiAgICAgICAgICAgIHVsLnN0YXR1cz1VcGxvYWRTdGF0dXMuRVJSXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gVXBsb2FkZXJTdGF0dXMuRVJSO1xyXG5cclxuICAgICAgICAgICAgbGV0IHVlID0gbmV3IFVwbG9hZGVyU3RhdHVzQ2hhbmdlRXZlbnQodGhpcy5fc2l6ZVF1ZXVlZCwgdGhpcy5fc2l6ZURvbmUsIHRoaXMuc3RhdHVzKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdGVuZXIodWUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBzZXQgcmV0cnkgdGltZXJcclxuICAgICAgICAgICAgdGhpcy5yZXRyeVRpbWVySWQ9d2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXRyeVRpbWVyUnVubmluZz1mYWxzZTtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlVwbG9hZCByZXRyeSB0aW1lciBleHBpcmVkLiBDb250aW51ZSBwcm9jZXNzaW5nLi4uXCIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3MoKTtcclxuICAgICAgICAgICAgfSwgdGhpcy5SRVRSWV9ERUxBWSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJldHJ5VGltZXJSdW5uaW5nPXRydWU7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlN0YXJ0ZWQgdXBsb2FkIHJldHJ5IHRpbWVyIFwiK3RoaXMuUkVUUllfREVMQVkrXCJtcyAuLi5cIilcclxuICAgICAgICB9XHJcblxyXG4gICAgICBwcml2YXRlIHByb2Nlc3MoKSB7XHJcbiAgICAgICAgLy8gY2xlYXIgcmV0cnkgdGltZXIgaWYgc2V0XHJcbiAgICAgICAgaWYodGhpcy5yZXRyeVRpbWVyUnVubmluZyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmV0cnlUaW1lcklkKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMucmV0cnlUaW1lcklkKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnJldHJ5VGltZXJSdW5uaW5nPWZhbHNlXHJcbiAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJDbGVhcmVkIHJldHJ5IHRpbWVyLlwiKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHB1bDogVXBsb2FkIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlVwbG9hZGVyIHN0YXR1czogXCIrdGhpcy5zdGF0dXMpXHJcblxyXG4gICAgICAgIGxldCBzID0gdGhpcy5xdWUubGVuZ3RoO1xyXG4gICAgICAgIC8vY29uc29sZS5kZWJ1ZyhzK1wiIHVwbG9hZHMgYXJlIGluIHRoZSBxdWV1ZS5cIilcclxuXHJcbiAgICAgICAgaWYgKHM+MCAmJiBVcGxvYWRlclN0YXR1cy5VUExPQURJTkcgIT0gdGhpcy5zdGF0dXMgJiYgVXBsb2FkZXJTdGF0dXMuVFJZX1VQTE9BRElORyAhPSB0aGlzLnN0YXR1cykge1xyXG5cclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgczsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCB1bCA9IHRoaXMucXVlW2ldO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiVXBsb2FkIFwiK3VsK1wiIHN0YXR1czpcIit1bC5zdGF0dXMpXHJcbiAgICAgICAgICAgIGlmICh1bC5zdGF0dXMgPT09IFVwbG9hZFN0YXR1cy5JRExFKSB7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlVwbG9hZCBcIit1bCtcIiBzdGFydFVwbG9hZFwiKVxyXG4gICAgICAgICAgICAgIHRoaXMuc3RhcnRVcGxvYWQodWwpO1xyXG4gICAgICAgICAgICAgIHB1bCA9IHVsO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIXB1bCkge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiQ2hlY2sgRVJSIHVwbG9hZHMuLi5cIilcclxuICAgICAgICAgICAgLy8gbm93IGZhaWxlZCB1cGxvYWRzXHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIk5vIHJlZ3VsYXIgdXBsb2FkIGZvdW5kLiBMb29raW5nIGZvciBlcnJvciBzdGF0ZSB1cGxvYWRzLlwiKVxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHM7IGkrKykge1xyXG4gICAgICAgICAgICAgIGxldCB1bCA9IHRoaXMucXVlW2ldO1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJVcGxvYWQgXCIrdWwrXCIgc3RhdHVzOlwiK3VsLnN0YXR1cylcclxuICAgICAgICAgICAgICBpZiAodWwuc3RhdHVzID09PSBVcGxvYWRTdGF0dXMuRVJSKSB7XHJcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiVXBsb2FkIChFUlIpIFwiK3VsK1wiIHN0YXJ0VXBsb2FkXCIpXHJcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJTdGFydCBlcnJvciBzdGF0ZSB1cGxvYWQgXCIrdWwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VXBsb2FkKHVsKTtcclxuICAgICAgICAgICAgICAgIHB1bCA9IHVsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHM9PTApe1xyXG4gICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiVXBsb2FkIGRvbmUuXCIpXHJcbiAgICAgICAgICB0aGlzLnN0YXR1cz1VcGxvYWRlclN0YXR1cy5ET05FXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB1ZSA9IG5ldyBVcGxvYWRlclN0YXR1c0NoYW5nZUV2ZW50KHRoaXMuX3NpemVRdWV1ZWQsIHRoaXMuX3NpemVEb25lLCB0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcclxuICAgICAgICAgIHRoaXMubGlzdGVuZXIodWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgICBxdWV1ZVVwbG9hZCh1bDogVXBsb2FkKSB7XHJcbiAgICAgICAgICAgIGlmICh1bCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVsU2l6ZSA9IHRoaXMuZGF0YVNpemUodWwuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZS5wdXNoKHVsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NpemVRdWV1ZWQgKz0gdWxTaXplO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuIl19
|
|
@@ -62,4 +62,4 @@ export class RecorderComponent {
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXJfY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3JlY29yZGVyX2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFReEUsTUFBTSxPQUFnQixpQkFBaUI7SUFLbkMsWUFBc0IsUUFBK0I7UUFBL0IsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFIckQsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVoQixrQ0FBNkIsR0FBbUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFekQsaUJBQWlCO1FBQ2YscURBQXFEO1FBQ3JELElBQUcsU0FBUyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsWUFBWSxRQUFRLEVBQUUsQ0FBQztZQUN2RSxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQyxLQUFLLEdBQUcsV0FBVyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLG1DQUFtQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQUksQ0FBQztZQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxzQkFBc0IsR0FBQyxLQUFLO1FBRWhDLElBQUcsc0JBQXNCLEVBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBQ0gsT0FBTyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNqQyxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3hCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO3dCQUNYLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQzt3QkFDeEgsZUFBZTt3QkFDZixJQUFJLENBQUMsNkJBQTZCLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDOzRCQUN2RCxJQUFJLEVBQUMsR0FBRSxFQUFFO2dDQUNQLFdBQVc7Z0NBQ1gsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUNwQixDQUFDOzRCQUNELFFBQVEsRUFBQyxHQUFFLEVBQUU7Z0NBQ1gsMkVBQTJFO2dDQUMzRSxPQUFPLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7Z0NBQy9ELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dDQUN6QixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7NEJBQ3hCLENBQUM7NEJBQ0QsS0FBSyxFQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7Z0NBQ1gsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDeEIsQ0FBQzt5QkFFRixDQUFDLENBQUM7d0JBRUgsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFOzRCQUN4QyxJQUFHLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO2dDQUNwQyxpRkFBaUY7Z0NBQ2pGLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0QkFDL0QsQ0FBQzt3QkFDTCxDQUFDLENBQUMsQ0FBQztvQkFFTCxDQUFDO29CQUNELEtBQUssRUFBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO3dCQUNYLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBSSxDQUFDO2dCQUNKLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNGLENBQUM7Q0FJSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3BlZWNoUmVjb3JkZXJVcGxvYWRlcn0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc3BydXBsb2FkZXJcIjtcclxuaW1wb3J0IHtTcHJEYn0gZnJvbSBcIi4vZGIvaW5kZGJcIjtcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1BlcnNpc3RlbnRBdWRpb1N0b3JhZ2VUYXJnZXR9IGZyb20gXCIuL2F1ZGlvL2luZGRiX2F1ZGlvX2J1ZmZlclwiO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVhZHlTdGF0ZVByb3ZpZGVyIHtcclxuICAgIHJlYWR5KCk6Ym9vbGVhbjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZWNvcmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIFJlYWR5U3RhdGVQcm92aWRlcntcclxuXHJcbiAgICBkYXRhU2F2ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByb3RlY3RlZCBfcGVyc2lzdGVudEF1ZGlvU3RvcmFnZVRhcmdldDpQZXJzaXN0ZW50QXVkaW9TdG9yYWdlVGFyZ2V0fG51bGw9bnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB1cGxvYWRlcjpTcGVlY2hSZWNvcmRlclVwbG9hZGVyKSB7fVxyXG5cclxuICAgIHByaW50U3RvcmFnZUluZm9zKCl7XHJcbiAgICAgIC8vIFNhZmFyaSBzZWVtcyBub3QgdG8gc3VwcG9ydCB0aGUgZXN0aW1hdGUgZnVuY3Rpb24uXHJcbiAgICAgIGlmKG5hdmlnYXRvci5zdG9yYWdlICYmIG5hdmlnYXRvci5zdG9yYWdlLmVzdGltYXRlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuICAgICAgICBuYXZpZ2F0b3Iuc3RvcmFnZS5lc3RpbWF0ZSgpLnRoZW4oKHNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmluZm8oXCJFc3RpbWF0ZWQgc3RvcmFnZSB1c2FnZTogXCIgKyBzZS51c2FnZSArIFwiLCBxdW90YTogXCIgKyBzZS5xdW90YSk7XHJcbiAgICAgICAgfSkuY2F0Y2goKGVycikgPT4gXCJDb3VsZCBub3QgZ2V0IGdldCBzdG9yYWdlIGluZm9zOiBcIiArIGVyci5tZXNzYWdlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc29sZS5pbmZvKFwiVXNlciBhZ2VudCBkb2VzIG5vdCBzdXBwb3J0IHN0b3JhZ2UgbWFuYWdlciBlc3RpbWF0ZSBmdW5jdGlvbi5cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcmVwYXJlKHBlcnNpc3RlbnRBdWRpb1N0b3JhZ2U9ZmFsc2UpOk9ic2VydmFibGU8dm9pZD57XHJcblxyXG4gICAgICAgIGlmKHBlcnNpc3RlbnRBdWRpb1N0b3JhZ2Upe1xyXG4gICAgICAgICAgICB0aGlzLnByaW50U3RvcmFnZUluZm9zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiB7XHJcbiAgICAgICAgaWYgKHBlcnNpc3RlbnRBdWRpb1N0b3JhZ2UpIHtcclxuICAgICAgICAgIFNwckRiLnByZXBhcmUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoZGIpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9wZXJzaXN0ZW50QXVkaW9TdG9yYWdlVGFyZ2V0ID0gbmV3IFBlcnNpc3RlbnRBdWRpb1N0b3JhZ2VUYXJnZXQoZGIsIFNwckRiLlJFQ09SRElOR19GSUxFX0NBQ0hFX09CSkVDVF9TVE9SRV9OQU1FKTtcclxuICAgICAgICAgICAgICAvL2xldCBkZWxDbnQ9MDtcclxuICAgICAgICAgICAgICB0aGlzLl9wZXJzaXN0ZW50QXVkaW9TdG9yYWdlVGFyZ2V0LmRlbGV0ZUFsbCgpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OigpPT57XHJcbiAgICAgICAgICAgICAgICAgIC8vZGVsQ250Kys7XHJcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOigpPT57XHJcbiAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5pbmZvKCdTdG9yYWdlIGluZm8gYWZ0ZXIgZGVsZXRpb24gb2YgYWxsICgnK2RlbENudCsnKSBlbnRyaWVzOicpO1xyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oJ1BlcnNpc3RlbnQgYXVkaW8gc3RvcmFnZSBvYmplY3Qgc3RvcmUgY2xlYXJlZC4nKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcmludFN0b3JhZ2VJbmZvcygpO1xyXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6KGVycik9PntcclxuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsKGUpPT57XHJcbiAgICAgICAgICAgICAgICAgIGlmKHRoaXMuX3BlcnNpc3RlbnRBdWRpb1N0b3JhZ2VUYXJnZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBvbiBwYWdlIGxlYXZlLiBEaSBub3QgcmVnaXN0ZXIgY2FsbGJhY2tzIHRvIHByZXZlbnQgcGFnZSBsZWF2ZSBibG9ja2luZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGVyc2lzdGVudEF1ZGlvU3RvcmFnZVRhcmdldC5kZWxldGVBbGwoKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6KGVycik9PntcclxuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFic3RyYWN0IHJlYWR5KCk6Ym9vbGVhbjtcclxuICAgIGFic3RyYWN0IGdldCBzY3JlZW5Mb2NrZWQoKTpib29sZWFuO1xyXG59XHJcblxyXG4iXX0=
|
|
@@ -46,4 +46,4 @@ export class ProjectUtil {
|
|
|
46
46
|
return chs;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9wcm9qZWN0L3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE1BQU0sQ0FBTixJQUFZLGNBQTRDO0FBQXhELFdBQVksY0FBYztJQUFFLGlDQUFhLENBQUE7SUFBQyxpQ0FBYSxDQUFBO0FBQUEsQ0FBQyxFQUE1QyxjQUFjLEtBQWQsY0FBYyxRQUE4QjtBQUFBLENBQUM7QUFFekQsTUFBTSxDQUFOLElBQVksUUFBMEU7QUFBdEYsV0FBWSxRQUFRO0lBQUUsMkJBQWEsQ0FBQTtJQUFDLDJCQUFhLENBQUE7SUFBQywrQkFBaUIsQ0FBQTtJQUFDLCtCQUFpQixDQUFBO0FBQUEsQ0FBQyxFQUExRSxRQUFRLEtBQVIsUUFBUSxRQUFrRTtBQUN0RixNQUFNLENBQU4sSUFBWSxXQUFpQztBQUE3QyxXQUFZLFdBQVc7SUFBRSxvQ0FBbUIsQ0FBQTtBQUFBLENBQUMsRUFBakMsV0FBVyxLQUFYLFdBQVcsUUFBc0I7QUFBQSxDQUFDO0FBQzlDLE1BQU0sQ0FBTixJQUFZLE9BQXlGO0FBQXJHLFdBQVksT0FBTztJQUFFLDhCQUFpQixDQUFBO0lBQUMsZ0NBQW1CLENBQUE7SUFBQyw0QkFBZSxDQUFBO0lBQUMsd0JBQVcsQ0FBQTtJQUFDLDBCQUFhLENBQUE7QUFBQSxDQUFDLEVBQXpGLE9BQU8sS0FBUCxPQUFPLFFBQWtGO0FBRXJHLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDMUIsNkNBQXVCLENBQUE7SUFDdkIsK0NBQXlCLENBQUE7SUFDekIsNkNBQXVCLENBQUE7SUFDdkIsK0NBQXlCLENBQUE7SUFDekIsK0VBQXlELENBQUE7SUFDekQsaUZBQTJELENBQUE7QUFDN0QsQ0FBQyxFQVBXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFPM0I7QUF3QkQsTUFBTSxPQUFPLFdBQVc7YUFFQyxnQ0FBMkIsR0FBQyxDQUFDLENBQUM7SUFFckQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQWU7UUFDdEMsSUFBSSxHQUFHLEdBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDO1FBQ2hELElBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFDLENBQUM7WUFDN0IsR0FBRyxHQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQztRQUNuRCxDQUFDO2FBQUssSUFBRyxPQUFPLENBQUMsV0FBVyxFQUFDLENBQUM7WUFDNUIsR0FBRyxHQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBBdWRpb0Zvcm1hdCB7XHJcbiAgY2hhbm5lbHM6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZWRpYUNhcHR1cmVGb3JtYXQge1xyXG4gIGF1ZGlvQ2hhbm5lbENvdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXVkaW9EZXZpY2Uge1xyXG4gIG5hbWUgOiBzdHJpbmcsXHJcbiAgcGxheWJhY2sgOiBib29sZWFuLFxyXG4gIHJlZ2V4IDogYm9vbGVhblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGVudW0gQ29uc3RyYWludFR5cGUge0V4YWN0PSdFWEFDVCcsSWRlYWw9J0lERUFMJ307XHJcblxyXG5leHBvcnQgZW51bSBQbGF0Zm9ybSB7TGludXg9J0xJTlVYJyxtYWNPUz0nTUFDT1MnLFdpbmRvd3M9J1dJTkRPV1MnLEFuZHJvaWQ9J0FORFJPSUQnfVxyXG5leHBvcnQgZW51bSBCcm93c2VyQmFzZSB7Q2hyb21pdW09J0NIUk9NSVVNJ307XHJcbmV4cG9ydCBlbnVtIEJyb3dzZXIge0ZpcmVmb3g9J0ZJUkVGT1gnLENocm9taXVtPSdDSFJPTUlVTScsQ2hyb21lPSdDSFJPTUUnLEVkZ2U9J0VER0UnLE9wZXJhPSdPUEVSQSd9XHJcblxyXG5leHBvcnQgZW51bSBBdWRpb1N0b3JhZ2VUeXBlIHtcclxuICBNRU1fRU5USVJFPSdNRU1fRU5USVJFJyxcclxuICBNRU1fQ0hVTktFRD0nTUVNX0NIVU5LRUQnLFxyXG4gIERCX0NIVU5LRUQ9J0RCX0NIVU5LRUQnLFxyXG4gIE5FVF9DSFVOS0VEPSdORVRfQ0hVTktFRCcsXHJcbiAgTUVNX0VOVElSRV9BVVRPX05FVF9DSFVOS0VEPSdNRU1fRU5USVJFX0FVVE9fTkVUX0NIVU5LRUQnLFxyXG4gIE1FTV9DSFVOS0VEX0FVVE9fTkVUX0NIVU5LRUQ9J01FTV9DSFVOS0VEX0FVVE9fTkVUX0NIVU5LRUQnXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0dhaW5Db250cm9sQ29uZmlnIHtcclxuICB2YWx1ZTogYm9vbGVhbixcclxuICAvL2NvbnN0cmFpbnRUeXBlIDogQ29uc3RyYWludFR5cGUsXHJcbiAgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gIC8vYnJvd3NlckJhc2U6QnJvd3NlckJhc2UsXHJcbiAgLy9icm93c2VyOkJyb3dzZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0IHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgcmVjb3JkaW5nRGV2aWNlV2FrZUxvY2s/OmJvb2xlYW4sXHJcbiAgYXVkaW9Gb3JtYXQ/OiBBdWRpb0Zvcm1hdCxcclxuICBtZWRpYUNhcHR1cmVGb3JtYXQ/OiBNZWRpYUNhcHR1cmVGb3JtYXQsXHJcbiAgYXV0b0dhaW5Db250cm9sQ29uZmlncz86QXJyYXk8QXV0b0dhaW5Db250cm9sQ29uZmlnPixcclxuICBhbGxvd0VjaG9DYW5jZWxsYXRpb24/OmJvb2xlYW4sXHJcbiAgYXVkaW9EZXZpY2VzPzogQXJyYXk8QXVkaW9EZXZpY2U+LFxyXG4gIGNodW5rZWRSZWNvcmRpbmc/OiBib29sZWFuLFxyXG4gIGNsaWVudEF1ZGlvU3RvcmFnZVR5cGU/OkF1ZGlvU3RvcmFnZVR5cGUsXHJcbiAgc2hvd1Nlc3Npb25Db21wbGV0ZU1lc3NhZ2U/OmJvb2xlYW47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgUHJvamVjdFV0aWwge1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQVVESU9fQ0hBTk5FTF9DT1VOVD0yO1xyXG5cclxuICBzdGF0aWMgYXVkaW9DaGFubmVsQ291bnQocHJvamVjdDpQcm9qZWN0KTogbnVtYmVye1xyXG4gICAgbGV0IGNocz1Qcm9qZWN0VXRpbC5ERUZBVUxUX0FVRElPX0NIQU5ORUxfQ09VTlQ7XHJcbiAgICBpZihwcm9qZWN0Lm1lZGlhQ2FwdHVyZUZvcm1hdCl7XHJcbiAgICAgIGNocz1wcm9qZWN0Lm1lZGlhQ2FwdHVyZUZvcm1hdC5hdWRpb0NoYW5uZWxDb3VudDtcclxuICAgIH1lbHNlIGlmKHByb2plY3QuYXVkaW9Gb3JtYXQpe1xyXG4gICAgICBjaHM9cHJvamVjdC5hdWRpb0Zvcm1hdC5jaGFubmVscztcclxuICAgIH1cclxuICAgIHJldHVybiBjaHM7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG4iXX0=
|