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.
Files changed (85) hide show
  1. package/README.md +478 -12
  2. package/esm2022/lib/action/action.mjs +1 -1
  3. package/esm2022/lib/audio/array_audio_buffer.mjs +1 -1
  4. package/esm2022/lib/audio/array_audio_buffer_input_stream.mjs +1 -1
  5. package/esm2022/lib/audio/audio_data_holder.mjs +1 -1
  6. package/esm2022/lib/audio/audio_display.mjs +4 -4
  7. package/esm2022/lib/audio/audio_player.mjs +4 -4
  8. package/esm2022/lib/audio/capture/capture.mjs +1 -1
  9. package/esm2022/lib/audio/context.mjs +1 -1
  10. package/esm2022/lib/audio/dsp/level_measure.mjs +5 -4
  11. package/esm2022/lib/audio/impl/wavreader.mjs +1 -1
  12. package/esm2022/lib/audio/impl/wavwriter.mjs +1 -1
  13. package/esm2022/lib/audio/inddb_audio_buffer.mjs +1 -1
  14. package/esm2022/lib/audio/io/stream.mjs +1 -1
  15. package/esm2022/lib/audio/net_audio_buffer.mjs +1 -1
  16. package/esm2022/lib/audio/persistor.mjs +1 -1
  17. package/esm2022/lib/audio/playback/array_audio_buffer_source_node.mjs +1 -1
  18. package/esm2022/lib/audio/playback/audio_source_node.mjs +1 -1
  19. package/esm2022/lib/audio/playback/audio_source_worklet_module_loader.mjs +1 -1
  20. package/esm2022/lib/audio/playback/inddb_audio_buffer_source_node.mjs +1 -1
  21. package/esm2022/lib/audio/playback/net_audio_buffer_source_node.mjs +1 -1
  22. package/esm2022/lib/audio/playback/player.mjs +1 -1
  23. package/esm2022/lib/audio/ui/audio_canvas_layer_comp.mjs +7 -7
  24. package/esm2022/lib/audio/ui/audio_display_control.mjs +4 -4
  25. package/esm2022/lib/audio/ui/audio_display_scroll_pane.mjs +4 -4
  26. package/esm2022/lib/audio/ui/audiosignal.mjs +4 -4
  27. package/esm2022/lib/audio/ui/container.mjs +4 -4
  28. package/esm2022/lib/audio/ui/livelevel.mjs +4 -4
  29. package/esm2022/lib/audio/ui/scroll_pane_horizontal.mjs +3 -3
  30. package/esm2022/lib/audio/ui/sonagram.mjs +4 -4
  31. package/esm2022/lib/db/inddb.mjs +4 -4
  32. package/esm2022/lib/dsp/utils.mjs +1 -1
  33. package/esm2022/lib/io/BinaryReader.mjs +1 -1
  34. package/esm2022/lib/io/BinaryWriter.mjs +1 -1
  35. package/esm2022/lib/io/stream.mjs +1 -1
  36. package/esm2022/lib/math/complex.mjs +1 -1
  37. package/esm2022/lib/math/dft.mjs +1 -1
  38. package/esm2022/lib/net/uploader.mjs +1 -1
  39. package/esm2022/lib/recorder_component.mjs +1 -1
  40. package/esm2022/lib/speechrecorder/project/project.mjs +1 -1
  41. package/esm2022/lib/speechrecorder/project/project.service.mjs +4 -4
  42. package/esm2022/lib/speechrecorder/recording.mjs +1 -1
  43. package/esm2022/lib/speechrecorder/recordings/basic_recording.service.mjs +1 -1
  44. package/esm2022/lib/speechrecorder/recordings/recordings.service.mjs +4 -4
  45. package/esm2022/lib/speechrecorder/script/script.mjs +1 -1
  46. package/esm2022/lib/speechrecorder/script/script.service.mjs +4 -4
  47. package/esm2022/lib/speechrecorder/session/audiorecorder.mjs +7 -7
  48. package/esm2022/lib/speechrecorder/session/basicrecorder.mjs +1 -1
  49. package/esm2022/lib/speechrecorder/session/controlpanel.mjs +22 -22
  50. package/esm2022/lib/speechrecorder/session/item.mjs +1 -1
  51. package/esm2022/lib/speechrecorder/session/progress.mjs +4 -4
  52. package/esm2022/lib/speechrecorder/session/prompting.mjs +16 -16
  53. package/esm2022/lib/speechrecorder/session/recorder_combi_pane.mjs +3 -3
  54. package/esm2022/lib/speechrecorder/session/recording_file_cache.mjs +1 -1
  55. package/esm2022/lib/speechrecorder/session/recording_list.mjs +4 -4
  56. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +4 -4
  57. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +4 -4
  58. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +4 -4
  59. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +4 -4
  60. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file.mjs +1 -1
  61. package/esm2022/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +4 -4
  62. package/esm2022/lib/speechrecorder/session/session.service.mjs +4 -4
  63. package/esm2022/lib/speechrecorder/session/session_finished_dialog.mjs +3 -3
  64. package/esm2022/lib/speechrecorder/session/sessionmanager.mjs +4 -4
  65. package/esm2022/lib/speechrecorder/session/warning_bar.mjs +4 -4
  66. package/esm2022/lib/speechrecorder/spruploader.mjs +4 -4
  67. package/esm2022/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +4 -4
  68. package/esm2022/lib/speechrecorderng.component.mjs +4 -4
  69. package/esm2022/lib/speechrecorderng.module.mjs +9 -13
  70. package/esm2022/lib/spr.config.mjs +3 -3
  71. package/esm2022/lib/spr.module.version.mjs +2 -2
  72. package/esm2022/lib/ui/canvas_layer_comp.mjs +4 -4
  73. package/esm2022/lib/ui/intersection-observer.directive.mjs +4 -4
  74. package/esm2022/lib/ui/message_dialog.mjs +3 -3
  75. package/esm2022/lib/ui/recordingitem_display.mjs +7 -7
  76. package/esm2022/lib/ui/responsive_component.mjs +3 -3
  77. package/esm2022/lib/utils/scrollIntoViewToBottom.mjs +4 -4
  78. package/esm2022/lib/utils/ua-parser.mjs +1 -1
  79. package/esm2022/lib/utils/utils.mjs +1 -1
  80. package/esm2022/lib/utils/wake_lock.mjs +1 -1
  81. package/fesm2022/speechrecorderng.mjs +171 -174
  82. package/fesm2022/speechrecorderng.mjs.map +1 -1
  83. package/lib/speechrecorderng.module.d.ts +11 -12
  84. package/lib/spr.module.version.d.ts +1 -1
  85. package/package.json +13 -13
@@ -261,4 +261,4 @@ export class AudioBufferInputStream {
261
261
  return read;
262
262
  }
263
263
  }
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGF0YV9ob2xkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvYXVkaW8vYXVkaW9fZGF0YV9ob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQWlCaEMsTUFBTSxPQUFnQixnQkFBZ0I7SUFBdEM7UUFDWSxXQUFNLEdBQVMsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFxQixJQUFJLEtBQUssRUFBYyxDQUFDO0lBbUR6RSxDQUFDO0lBakRDLGtCQUFrQixDQUFDLE9BQXFCO1FBQ3RDLDBCQUEwQjtRQUMxQix3Q0FBd0M7UUFDeEMsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6QixhQUFhO1FBQ2IsTUFBTTtRQUNOLElBQUk7UUFDSixzQkFBc0I7UUFDdEIseUNBQXlDO1FBQ3pDLElBQUk7UUFFSixJQUFHLENBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQSxFQUFFLEtBQUcsT0FBTyxDQUFDLENBQUMsRUFBQztZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBRyxJQUFJLENBQUMsTUFBTSxFQUFDO1lBQ2IsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxPQUFxQjtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUEsRUFBRSxLQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUM7UUFDakIsS0FBSSxJQUFJLE9B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LENBQUMsQ0FBQztJQUduQixDQUFDO0lBRUQsS0FBSztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBUztRQUNsQixJQUFJLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQTRCO1FBQy9CLElBQUksSUFBSSxHQUFDLENBQUMsQ0FBQztRQUNYLElBQUksTUFBTSxHQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBRyxJQUFJLENBQUMsUUFBUSxHQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBQztZQUM5QyxNQUFNLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUM5QztRQUNELEtBQUksSUFBSSxFQUFFLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxPQUFPLENBQUMsTUFBTSxFQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9CLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JFO1NBQ0Y7UUFDRCxJQUFJLEdBQUMsTUFBTSxDQUFDO1FBQ1osSUFBSSxDQUFDLFFBQVEsSUFBRSxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jRmxvYXQzMkFycmF5SW5wdXRTdHJlYW0sIEZsb2F0MzJBcnJheUlucHV0U3RyZWFtfSBmcm9tIFwiLi4vaW8vc3RyZWFtXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXVkaW9Tb3VyY2Uge1xyXG4gIGdldCBkdXJhdGlvbigpOm51bWJlcjtcclxuICBnZXQgc2FtcGxlUmF0ZSgpOiBudW1iZXI7XHJcbiAgZ2V0IG51bWJlck9mQ2hhbm5lbHMoKTogbnVtYmVyO1xyXG4gIGdldCBmcmFtZUxlbigpOiBudW1iZXI7XHJcbiAgc2FtcGxlQ291bnRzKCk6IG51bWJlcjtcclxuICBhdWRpb0lucHV0U3RyZWFtKCk6IEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbDtcclxuICBhc3luY0F1ZGlvSW5wdXRTdHJlYW0oKTogQXN5bmNGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbSB8IG51bGw7XHJcbiAgcmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0oKTpSYW5kb21BY2Nlc3NBdWRpb1N0cmVhbTtcclxuICByZWxlYXNlQXVkaW9EYXRhKCk6IE9ic2VydmFibGU8dm9pZD47XHJcbiAgYWRkT25SZWFkeUxpc3RlbmVyKG9uUmVhZHk6KCgpPT52b2lkKXxudWxsKTp2b2lkO1xyXG4gIHJlbW92ZU9uUmVhZHlMaXN0ZW5lcihvblJlYWR5OigoKT0+dm9pZCl8bnVsbCk6dm9pZDtcclxuICByZWFkeSgpOnZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNpY0F1ZGlvU291cmNlIGltcGxlbWVudHMgQXVkaW9Tb3VyY2V7XHJcbiAgcHJvdGVjdGVkIF9yZWFkeTpib29sZWFuPWZhbHNlO1xyXG4gIHByb3RlY3RlZCBvblJlYWR5TGlzdGVuZXJzOkFycmF5PCgoKSA9PiB2b2lkKT49bmV3IEFycmF5PCgpID0+IHZvaWQ+KCk7XHJcblxyXG4gIGFkZE9uUmVhZHlMaXN0ZW5lcihvblJlYWR5OiAoKCkgPT4gdm9pZCkpOiB2b2lkIHtcclxuICAgIC8vIGxldCBhbHJlYWR5QWRkZWQ9ZmFsc2U7XHJcbiAgICAvLyBmb3IobGV0IG9yIG9mIHRoaXMub25SZWFkeUxpc3RlbmVycyl7XHJcbiAgICAvLyAgIGlmKG9yPT09b25SZWFkeSl7XHJcbiAgICAvLyAgICAgYWxyZWFkeUFkZGVkPXRydWU7XHJcbiAgICAvLyAgICAgYnJlYWs7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGlmKCFhbHJlYWR5QWRkZWQpIHtcclxuICAgIC8vICAgdGhpcy5vblJlYWR5TGlzdGVuZXJzLnB1c2gob25SZWFkeSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgaWYoISAodGhpcy5vblJlYWR5TGlzdGVuZXJzLmZpbmQoKG9yKT0+b3I9PT1vblJlYWR5KSkpe1xyXG4gICAgICB0aGlzLm9uUmVhZHlMaXN0ZW5lcnMucHVzaChvblJlYWR5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLl9yZWFkeSl7XHJcbiAgICAgIG9uUmVhZHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZU9uUmVhZHlMaXN0ZW5lcihvblJlYWR5OiAoKCkgPT4gdm9pZCkpOnZvaWQge1xyXG4gICAgdGhpcy5vblJlYWR5TGlzdGVuZXJzPXRoaXMub25SZWFkeUxpc3RlbmVycy5maWx0ZXIoKG9yKT0+b3IhPT1vblJlYWR5KTtcclxuICB9XHJcblxyXG4gIHJlYWR5KCk6dm9pZHtcclxuICAgIHRoaXMuX3JlYWR5PXRydWU7XHJcbiAgICBmb3IobGV0IG9uUmVhZHkgb2YgdGhpcy5vblJlYWR5TGlzdGVuZXJzKXtcclxuICAgICAgb25SZWFkeS5jYWxsKHRoaXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgYXN5bmNBdWRpb0lucHV0U3RyZWFtKCk6IEFzeW5jRmxvYXQzMkFycmF5SW5wdXRTdHJlYW0gfCBudWxsO1xyXG5cclxuICBhYnN0cmFjdCBhdWRpb0lucHV0U3RyZWFtKCk6IEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbDtcclxuXHJcbiAgYWJzdHJhY3QgIGdldCBkdXJhdGlvbigpOiBudW1iZXI7XHJcblxyXG4gIGFic3RyYWN0IGdldCBmcmFtZUxlbigpOiBudW1iZXI7XHJcblxyXG4gIGFic3RyYWN0IGdldCBudW1iZXJPZkNoYW5uZWxzKCk6IG51bWJlcjtcclxuXHJcbiAgYWJzdHJhY3QgcmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0oKTogUmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0gO1xyXG5cclxuICBhYnN0cmFjdCByZWxlYXNlQXVkaW9EYXRhKCk6IE9ic2VydmFibGU8dm9pZD4gO1xyXG5cclxuICBhYnN0cmFjdCBzYW1wbGVDb3VudHMoKTogbnVtYmVyO1xyXG5cclxuICBhYnN0cmFjdCBnZXQgc2FtcGxlUmF0ZSgpOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0J1ZmZlclNvdXJjZSBleHRlbmRzIEJhc2ljQXVkaW9Tb3VyY2V7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZHVyYXRpb246bnVtYmVyO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2F1ZGlvQnVmZmVyOkF1ZGlvQnVmZmVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5fZHVyYXRpb249dGhpcy5fYXVkaW9CdWZmZXIubGVuZ3RoL3RoaXMuX2F1ZGlvQnVmZmVyLnNhbXBsZVJhdGU7XHJcbiAgICB0aGlzLnJlYWR5KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9CdWZmZXIoKTogQXVkaW9CdWZmZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQnVmZmVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGR1cmF0aW9uKCk6IG51bWJlciB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kdXJhdGlvbjtcclxuICAgIH1cclxuICAgIGdldCBzYW1wbGVSYXRlKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvQnVmZmVyLnNhbXBsZVJhdGU7XHJcbiAgICB9XHJcbiAgICBnZXQgbnVtYmVyT2ZDaGFubmVscygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdWRpb0J1ZmZlci5udW1iZXJPZkNoYW5uZWxzO1xyXG4gICAgfVxyXG4gICAgZ2V0IGZyYW1lTGVuKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvQnVmZmVyLmxlbmd0aDtcclxuICAgIH1cclxuICAgIHNhbXBsZUNvdW50cygpOiBudW1iZXIge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYXVkaW9CdWZmZXIubnVtYmVyT2ZDaGFubmVscyp0aGlzLl9hdWRpb0J1ZmZlci5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBhdWRpb0lucHV0U3RyZWFtKCk6IEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBdWRpb0J1ZmZlcklucHV0U3RyZWFtKHRoaXMuX2F1ZGlvQnVmZmVyKTtcclxuICAgIH1cclxuICAgIGFzeW5jQXVkaW9JbnB1dFN0cmVhbSgpOiBBc3luY0Zsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZWxlYXNlQXVkaW9EYXRhKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgcmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0oKTogUmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0ge1xyXG4gICAgcmV0dXJuIG5ldyBSYW5kb21BY2Nlc3NBdWRpb0J1ZmZlclN0cmVhbSh0aGlzLl9hdWRpb0J1ZmZlcik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFte1xyXG4gIGZyYW1lc09icyhmcmFtZVBvczpudW1iZXIsZnJhbWVMZW46bnVtYmVyLGJ1ZnM6RmxvYXQzMkFycmF5W10pOk9ic2VydmFibGU8bnVtYmVyPjtcclxuICBjbG9zZSgpOnZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0RhdGFIb2xkZXJ7XHJcbiAgZ2V0IGF1ZGlvU291cmNlKCk6IEF1ZGlvU291cmNlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Tb3VyY2U7XHJcbiAgfVxyXG4gIGdldCBkdXJhdGlvbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2R1cmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbnVtYmVyT2ZDaGFubmVsczpudW1iZXI9MDtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zYW1wbGVSYXRlOm51bWJlcj0wO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZyYW1lTGVuOm51bWJlcj0wO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2R1cmF0aW9uOm51bWJlcj0wO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdWRpb1NvdXJjZTpBdWRpb1NvdXJjZXxudWxsKSB7XHJcbiAgICBpZih0aGlzLl9hdWRpb1NvdXJjZSkge1xyXG4gICAgICB0aGlzLl9udW1iZXJPZkNoYW5uZWxzID0gdGhpcy5fYXVkaW9Tb3VyY2UubnVtYmVyT2ZDaGFubmVscztcclxuICAgICAgdGhpcy5fc2FtcGxlUmF0ZSA9IHRoaXMuX2F1ZGlvU291cmNlLnNhbXBsZVJhdGU7XHJcbiAgICAgIHRoaXMuX2ZyYW1lTGVuID0gdGhpcy5fYXVkaW9Tb3VyY2UuZnJhbWVMZW47XHJcbiAgICAgIHRoaXMuX2R1cmF0aW9uID0gdGhpcy5fZnJhbWVMZW4gLyB0aGlzLl9zYW1wbGVSYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkT25SZWFkeUxpc3RlbmVyKG9uUmVhZHk6KCgpPT52b2lkKXxudWxsKTp2b2lke1xyXG4gICAgdGhpcy5fYXVkaW9Tb3VyY2U/LmFkZE9uUmVhZHlMaXN0ZW5lcihvblJlYWR5KTtcclxuICB9XHJcblxyXG4gIGdldCBzYW1wbGVSYXRlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2FtcGxlUmF0ZTtcclxuICB9XHJcbiAgZ2V0IG51bWJlck9mQ2hhbm5lbHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9udW1iZXJPZkNoYW5uZWxzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZyYW1lTGVuKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnJhbWVMZW47XHJcbiAgfVxyXG5cclxuICBzYW1wbGVDb3VudHMoKTpudW1iZXJ7XHJcbiAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZDaGFubmVscyp0aGlzLl9mcmFtZUxlbjtcclxuICB9XHJcblxyXG4gIHJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFtKCk6UmFuZG9tQWNjZXNzQXVkaW9TdHJlYW17XHJcblxyXG4gICAgICBpZih0aGlzLl9hdWRpb1NvdXJjZSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvU291cmNlLnJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFtKCk7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aHJvdyBFcnJvcignTm8gYXVkaW8gc291cmNlIHNldCcpO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gcHJpdmF0ZSBmcmFtZXMoZnJhbWVQb3M6bnVtYmVyLGZyYW1lTGVuOm51bWJlcixidWZzOkZsb2F0MzJBcnJheVtdKTpudW1iZXJ7XHJcbiAgLy8gICBsZXQgcmVhZD0wO1xyXG4gIC8vICAgaWYodGhpcy5fYnVmZmVyKXtcclxuICAvLyAgICAgbGV0IHRvUmVhZD1mcmFtZUxlbjtcclxuICAvLyAgICAgaWYodGhpcy5fYnVmZmVyLmxlbmd0aDxmcmFtZVBvcytmcmFtZUxlbil7XHJcbiAgLy8gICAgICAgdG9SZWFkPXRoaXMuX2J1ZmZlci5sZW5ndGgtZnJhbWVQb3M7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgZm9yKGxldCBjaD0wO2NoPGJ1ZnMubGVuZ3RoO2NoKyspe1xyXG4gIC8vICAgICAgIGxldCBjaERhdGE9dGhpcy5fYnVmZmVyLmdldENoYW5uZWxEYXRhKGNoKTtcclxuICAvLyAgICAgICBmb3IobGV0IGk9MDtpPHRvUmVhZDtpKyspe1xyXG4gIC8vICAgICAgICAgYnVmc1tjaF1baV09Y2hEYXRhW2ZyYW1lUG9zK2ldO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgICByZWFkPXRvUmVhZDtcclxuICAvLyAgIH1lbHNlIGlmKHRoaXMuX2FycmF5QnVmZmVyKXtcclxuICAvLyAgICAgcmVhZD10aGlzLl9hcnJheUJ1ZmZlci5mcmFtZXMoZnJhbWVQb3MsZnJhbWVMZW4sYnVmcyk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gcmVhZDtcclxuICAvLyB9XHJcblxyXG4gIGF1ZGlvSW5wdXRTdHJlYW0oKTpGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbXxudWxse1xyXG4gICAgLy8gaWYodGhpcy5fYnVmZmVyKXtcclxuICAgIC8vICAgcmV0dXJuIG5ldyBBdWRpb0J1ZmZlcklucHV0U3RyZWFtKHRoaXMuX2J1ZmZlcik7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZih0aGlzLl9hcnJheUJ1ZmZlcil7XHJcbiAgICAvLyAgIHJldHVybiBuZXcgQXJyYXlBdWRpb0J1ZmZlcklucHV0U3RyZWFtKHRoaXMuX2FycmF5QnVmZmVyKTtcclxuICAgIC8vIH1cclxuICAgIC8vIHJldHVybiBudWxsO1xyXG4gICAgaWYodGhpcy5fYXVkaW9Tb3VyY2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvU291cmNlLmF1ZGlvSW5wdXRTdHJlYW0oKTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jQXVkaW9JbnB1dFN0cmVhbSgpOiBBc3luY0Zsb2F0MzJBcnJheUlucHV0U3RyZWFtfG51bGx7XHJcbiAgICAvLyBpZih0aGlzLl9pbmRkYkF1ZGlvQnVmZmVyKXtcclxuICAgIC8vICAgcmV0dXJuIG5ldyBJbmRleGVkRGJBdWRpb0lucHV0U3RyZWFtKHRoaXMuX2luZGRiQXVkaW9CdWZmZXIpO1xyXG4gICAgLy8gfWVsc2UgaWYodGhpcy5fbmV0QXVkaW9CdWZmZXIpe1xyXG4gICAgLy8gICByZXR1cm4gbmV3IE5ldEF1ZGlvSW5wdXRTdHJlYW0odGhpcy5fbmV0QXVkaW9CdWZmZXIpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYodGhpcy5fYXVkaW9Tb3VyY2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvU291cmNlLmFzeW5jQXVkaW9JbnB1dFN0cmVhbSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZ2V0IGJ1ZmZlcigpOiBBdWRpb0J1ZmZlciB8IG51bGwge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuX2J1ZmZlcjtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyBnZXQgYXJyYXlCdWZmZXIoKTogQXJyYXlBdWRpb0J1ZmZlciB8IG51bGwge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuX2FycmF5QnVmZmVyO1xyXG4gIC8vIH1cclxuICAvL1xyXG4gIC8vIGdldCBpbmRkYkJ1ZmZlcigpOkluZGV4ZWREYkF1ZGlvQnVmZmVyfG51bGx7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faW5kZGJBdWRpb0J1ZmZlcjtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyBnZXQgbmV0QnVmZmVyKCk6TmV0QXVkaW9CdWZmZXJ8bnVsbHtcclxuICAvLyAgIHJldHVybiB0aGlzLl9uZXRBdWRpb0J1ZmZlcjtcclxuICAvLyB9XHJcblxyXG4gIHJlbGVhc2VBdWRpb0RhdGEoKTpPYnNlcnZhYmxlPHZvaWQ+e1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHZvaWQ+KHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICAvL2lmICh0aGlzLl9hdWRpb1NvdXJjZSBpbnN0YW5jZW9mICBJbmRleGVkRGJBdWRpb0J1ZmZlcikge1xyXG4gICAgICBpZih0aGlzLl9hdWRpb1NvdXJjZSkge1xyXG4gICAgICAgIHRoaXMuX2F1ZGlvU291cmNlLnJlbGVhc2VBdWRpb0RhdGEoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9hdWRpb1NvdXJjZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIH1lbHNle1xyXG4gICAgICAvLyAgIC8vIE90aGVycyBoYXZlIG5vIHBlcnNpc3RlbnQgcmVzcGVjdGl2ZWx5IGFzeW5jIGRlbGV0YWJsZSBzdG9yYWdlLCB0aGV5IHNob3VsZCBiZSBmaW5hbGx5IHJlbW92ZWQgYnkgdGhlIEdDXHJcbiAgICAgIC8vICAgLy90aGlzLl9idWZmZXI9bnVsbDtcclxuICAgICAgLy8gICAvL3RoaXMuX2FycmF5QnVmZmVyPW51bGw7XHJcbiAgICAgIC8vICAgdGhpcy5fYXVkaW9Tb3VyY2U9bnVsbDtcclxuICAgICAgLy8gICBzdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgLy8gICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIC8vIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYW5kb21BY2Nlc3NBdWRpb0J1ZmZlclN0cmVhbSBpbXBsZW1lbnRzIFJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFte1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9idWZmZXI6QXVkaW9CdWZmZXIpIHtcclxuICB9XHJcblxyXG4gIGNsb3NlKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZnJhbWVzT2JzKGZyYW1lUG9zOiBudW1iZXIsIGZyYW1lTGVuOiBudW1iZXIsIGJ1ZnM6IEZsb2F0MzJBcnJheVtdKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8bnVtYmVyPihzdWJzY3JpYmVyID0+IHtcclxuICAgICAgbGV0IHJlYWQ9MDtcclxuICAgICAgICBsZXQgdG9SZWFkPWZyYW1lTGVuO1xyXG4gICAgICAgIGlmKHRoaXMuX2J1ZmZlci5sZW5ndGg8ZnJhbWVQb3MrZnJhbWVMZW4pe1xyXG4gICAgICAgICAgdG9SZWFkPXRoaXMuX2J1ZmZlci5sZW5ndGgtZnJhbWVQb3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcihsZXQgY2g9MDtjaDxidWZzLmxlbmd0aDtjaCsrKXtcclxuICAgICAgICAgIGxldCBjaERhdGE9dGhpcy5fYnVmZmVyLmdldENoYW5uZWxEYXRhKGNoKTtcclxuICAgICAgICAgIGZvcihsZXQgaT0wO2k8dG9SZWFkO2krKyl7XHJcbiAgICAgICAgICAgIGJ1ZnNbY2hdW2ldPWNoRGF0YVtmcmFtZVBvcytpXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVhZD10b1JlYWQ7XHJcblxyXG4gICAgICAgIHN1YnNjcmliZXIubmV4dChyZWFkKTtcclxuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0J1ZmZlcklucHV0U3RyZWFtIGltcGxlbWVudHMgRmxvYXQzMkFycmF5SW5wdXRTdHJlYW17XHJcbiAgcHJpdmF0ZSBmcmFtZVBvcz0wO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1ZGlvQnVmZmVyOkF1ZGlvQnVmZmVyKSB7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHNraXBGcmFtZXMobjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZyYW1lUG9zKz1uO1xyXG4gIH1cclxuXHJcbiAgcmVhZChidWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+KTogbnVtYmVyIHtcclxuICAgIGxldCByZWFkPTA7XHJcbiAgICBsZXQgdG9SZWFkPWJ1ZmZlcnNbMF0ubGVuZ3RoO1xyXG4gICAgaWYodGhpcy5mcmFtZVBvcyt0b1JlYWQ+dGhpcy5hdWRpb0J1ZmZlci5sZW5ndGgpe1xyXG4gICAgICB0b1JlYWQ9dGhpcy5hdWRpb0J1ZmZlci5sZW5ndGgtdGhpcy5mcmFtZVBvcztcclxuICAgIH1cclxuICAgIGZvcihsZXQgY2g9MDtjaDxidWZmZXJzLmxlbmd0aDtjaCsrKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9SZWFkOyBpKyspIHtcclxuICAgICAgICBidWZmZXJzW2NoXVtpXT10aGlzLmF1ZGlvQnVmZmVyLmdldENoYW5uZWxEYXRhKGNoKVt0aGlzLmZyYW1lUG9zK2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZWFkPXRvUmVhZDtcclxuICAgIHRoaXMuZnJhbWVQb3MrPXRvUmVhZDtcclxuICAgIHJldHVybiByZWFkO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGF0YV9ob2xkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvYXVkaW8vYXVkaW9fZGF0YV9ob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQWlCaEMsTUFBTSxPQUFnQixnQkFBZ0I7SUFBdEM7UUFDWSxXQUFNLEdBQVMsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFxQixJQUFJLEtBQUssRUFBYyxDQUFDO0lBbUR6RSxDQUFDO0lBakRDLGtCQUFrQixDQUFDLE9BQXFCO1FBQ3RDLDBCQUEwQjtRQUMxQix3Q0FBd0M7UUFDeEMsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6QixhQUFhO1FBQ2IsTUFBTTtRQUNOLElBQUk7UUFDSixzQkFBc0I7UUFDdEIseUNBQXlDO1FBQ3pDLElBQUk7UUFFSixJQUFHLENBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQSxFQUFFLEtBQUcsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDO1lBQ2QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQXFCO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQSxFQUFFLEtBQUcsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FB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QUFJLENBQUM7SUFDZCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jRmxvYXQzMkFycmF5SW5wdXRTdHJlYW0sIEZsb2F0MzJBcnJheUlucHV0U3RyZWFtfSBmcm9tIFwiLi4vaW8vc3RyZWFtXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXVkaW9Tb3VyY2Uge1xyXG4gIGdldCBkdXJhdGlvbigpOm51bWJlcjtcclxuICBnZXQgc2FtcGxlUmF0ZSgpOiBudW1iZXI7XHJcbiAgZ2V0IG51bWJlck9mQ2hhbm5lbHMoKTogbnVtYmVyO1xyXG4gIGdldCBmcmFtZUxlbigpOiBudW1iZXI7XHJcbiAgc2FtcGxlQ291bnRzKCk6IG51bWJlcjtcclxuICBhdWRpb0lucHV0U3RyZWFtKCk6IEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbDtcclxuICBhc3luY0F1ZGlvSW5wdXRTdHJlYW0oKTogQXN5bmNGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbSB8IG51bGw7XHJcbiAgcmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0oKTpSYW5kb21BY2Nlc3NBdWRpb1N0cmVhbTtcclxuICByZWxlYXNlQXVkaW9EYXRhKCk6IE9ic2VydmFibGU8dm9pZD47XHJcbiAgYWRkT25SZWFkeUxpc3RlbmVyKG9uUmVhZHk6KCgpPT52b2lkKXxudWxsKTp2b2lkO1xyXG4gIHJlbW92ZU9uUmVhZHlMaXN0ZW5lcihvblJlYWR5OigoKT0+dm9pZCl8bnVsbCk6dm9pZDtcclxuICByZWFkeSgpOnZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNpY0F1ZGlvU291cmNlIGltcGxlbWVudHMgQXVkaW9Tb3VyY2V7XHJcbiAgcHJvdGVjdGVkIF9yZWFkeTpib29sZWFuPWZhbHNlO1xyXG4gIHByb3RlY3RlZCBvblJlYWR5TGlzdGVuZXJzOkFycmF5PCgoKSA9PiB2b2lkKT49bmV3IEFycmF5PCgpID0+IHZvaWQ+KCk7XHJcblxyXG4gIGFkZE9uUmVhZHlMaXN0ZW5lcihvblJlYWR5OiAoKCkgPT4gdm9pZCkpOiB2b2lkIHtcclxuICAgIC8vIGxldCBhbHJlYWR5QWRkZWQ9ZmFsc2U7XHJcbiAgICAvLyBmb3IobGV0IG9yIG9mIHRoaXMub25SZWFkeUxpc3RlbmVycyl7XHJcbiAgICAvLyAgIGlmKG9yPT09b25SZWFkeSl7XHJcbiAgICAvLyAgICAgYWxyZWFkeUFkZGVkPXRydWU7XHJcbiAgICAvLyAgICAgYnJlYWs7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGlmKCFhbHJlYWR5QWRkZWQpIHtcclxuICAgIC8vICAgdGhpcy5vblJlYWR5TGlzdGVuZXJzLnB1c2gob25SZWFkeSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgaWYoISAodGhpcy5vblJlYWR5TGlzdGVuZXJzLmZpbmQoKG9yKT0+b3I9PT1vblJlYWR5KSkpe1xyXG4gICAgICB0aGlzLm9uUmVhZHlMaXN0ZW5lcnMucHVzaChvblJlYWR5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLl9yZWFkeSl7XHJcbiAgICAgIG9uUmVhZHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZU9uUmVhZHlMaXN0ZW5lcihvblJlYWR5OiAoKCkgPT4gdm9pZCkpOnZvaWQge1xyXG4gICAgdGhpcy5vblJlYWR5TGlzdGVuZXJzPXRoaXMub25SZWFkeUxpc3RlbmVycy5maWx0ZXIoKG9yKT0+b3IhPT1vblJlYWR5KTtcclxuICB9XHJcblxyXG4gIHJlYWR5KCk6dm9pZHtcclxuICAgIHRoaXMuX3JlYWR5PXRydWU7XHJcbiAgICBmb3IobGV0IG9uUmVhZHkgb2YgdGhpcy5vblJlYWR5TGlzdGVuZXJzKXtcclxuICAgICAgb25SZWFkeS5jYWxsKHRoaXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgYXN5bmNBdWRpb0lucHV0U3RyZWFtKCk6IEFzeW5jRmxvYXQzMkFycmF5SW5wdXRTdHJlYW0gfCBudWxsO1xyXG5cclxuICBhYnN0cmFjdCBhdWRpb0lucHV0U3RyZWFtKCk6IEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbDtcclxuXHJcbiAgYWJzdHJhY3QgIGdldCBkdXJhdGlvbigpOiBudW1iZXI7XHJcblxyXG4gIGFic3RyYWN0IGdldCBmcmFtZUxlbigpOiBudW1iZXI7XHJcblxyXG4gIGFic3RyYWN0IGdldCBudW1iZXJPZkNoYW5uZWxzKCk6IG51bWJlcjtcclxuXHJcbiAgYWJzdHJhY3QgcmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0oKTogUmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0gO1xyXG5cclxuICBhYnN0cmFjdCByZWxlYXNlQXVkaW9EYXRhKCk6IE9ic2VydmFibGU8dm9pZD4gO1xyXG5cclxuICBhYnN0cmFjdCBzYW1wbGVDb3VudHMoKTogbnVtYmVyO1xyXG5cclxuICBhYnN0cmFjdCBnZXQgc2FtcGxlUmF0ZSgpOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0J1ZmZlclNvdXJjZSBleHRlbmRzIEJhc2ljQXVkaW9Tb3VyY2V7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZHVyYXRpb246bnVtYmVyO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2F1ZGlvQnVmZmVyOkF1ZGlvQnVmZmVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5fZHVyYXRpb249dGhpcy5fYXVkaW9CdWZmZXIubGVuZ3RoL3RoaXMuX2F1ZGlvQnVmZmVyLnNhbXBsZVJhdGU7XHJcbiAgICB0aGlzLnJlYWR5KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9CdWZmZXIoKTogQXVkaW9CdWZmZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQnVmZmVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGR1cmF0aW9uKCk6IG51bWJlciB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kdXJhdGlvbjtcclxuICAgIH1cclxuICAgIGdldCBzYW1wbGVSYXRlKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvQnVmZmVyLnNhbXBsZVJhdGU7XHJcbiAgICB9XHJcbiAgICBnZXQgbnVtYmVyT2ZDaGFubmVscygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdWRpb0J1ZmZlci5udW1iZXJPZkNoYW5uZWxzO1xyXG4gICAgfVxyXG4gICAgZ2V0IGZyYW1lTGVuKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvQnVmZmVyLmxlbmd0aDtcclxuICAgIH1cclxuICAgIHNhbXBsZUNvdW50cygpOiBudW1iZXIge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYXVkaW9CdWZmZXIubnVtYmVyT2ZDaGFubmVscyp0aGlzLl9hdWRpb0J1ZmZlci5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBhdWRpb0lucHV0U3RyZWFtKCk6IEZsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBdWRpb0J1ZmZlcklucHV0U3RyZWFtKHRoaXMuX2F1ZGlvQnVmZmVyKTtcclxuICAgIH1cclxuICAgIGFzeW5jQXVkaW9JbnB1dFN0cmVhbSgpOiBBc3luY0Zsb2F0MzJBcnJheUlucHV0U3RyZWFtIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZWxlYXNlQXVkaW9EYXRhKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgcmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0oKTogUmFuZG9tQWNjZXNzQXVkaW9TdHJlYW0ge1xyXG4gICAgcmV0dXJuIG5ldyBSYW5kb21BY2Nlc3NBdWRpb0J1ZmZlclN0cmVhbSh0aGlzLl9hdWRpb0J1ZmZlcik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFte1xyXG4gIGZyYW1lc09icyhmcmFtZVBvczpudW1iZXIsZnJhbWVMZW46bnVtYmVyLGJ1ZnM6RmxvYXQzMkFycmF5W10pOk9ic2VydmFibGU8bnVtYmVyPjtcclxuICBjbG9zZSgpOnZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0RhdGFIb2xkZXJ7XHJcbiAgZ2V0IGF1ZGlvU291cmNlKCk6IEF1ZGlvU291cmNlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Tb3VyY2U7XHJcbiAgfVxyXG4gIGdldCBkdXJhdGlvbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2R1cmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbnVtYmVyT2ZDaGFubmVsczpudW1iZXI9MDtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zYW1wbGVSYXRlOm51bWJlcj0wO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZyYW1lTGVuOm51bWJlcj0wO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2R1cmF0aW9uOm51bWJlcj0wO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdWRpb1NvdXJjZTpBdWRpb1NvdXJjZXxudWxsKSB7XHJcbiAgICBpZih0aGlzLl9hdWRpb1NvdXJjZSkge1xyXG4gICAgICB0aGlzLl9udW1iZXJPZkNoYW5uZWxzID0gdGhpcy5fYXVkaW9Tb3VyY2UubnVtYmVyT2ZDaGFubmVscztcclxuICAgICAgdGhpcy5fc2FtcGxlUmF0ZSA9IHRoaXMuX2F1ZGlvU291cmNlLnNhbXBsZVJhdGU7XHJcbiAgICAgIHRoaXMuX2ZyYW1lTGVuID0gdGhpcy5fYXVkaW9Tb3VyY2UuZnJhbWVMZW47XHJcbiAgICAgIHRoaXMuX2R1cmF0aW9uID0gdGhpcy5fZnJhbWVMZW4gLyB0aGlzLl9zYW1wbGVSYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkT25SZWFkeUxpc3RlbmVyKG9uUmVhZHk6KCgpPT52b2lkKXxudWxsKTp2b2lke1xyXG4gICAgdGhpcy5fYXVkaW9Tb3VyY2U/LmFkZE9uUmVhZHlMaXN0ZW5lcihvblJlYWR5KTtcclxuICB9XHJcblxyXG4gIGdldCBzYW1wbGVSYXRlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2FtcGxlUmF0ZTtcclxuICB9XHJcbiAgZ2V0IG51bWJlck9mQ2hhbm5lbHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9udW1iZXJPZkNoYW5uZWxzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZyYW1lTGVuKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnJhbWVMZW47XHJcbiAgfVxyXG5cclxuICBzYW1wbGVDb3VudHMoKTpudW1iZXJ7XHJcbiAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZDaGFubmVscyp0aGlzLl9mcmFtZUxlbjtcclxuICB9XHJcblxyXG4gIHJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFtKCk6UmFuZG9tQWNjZXNzQXVkaW9TdHJlYW17XHJcblxyXG4gICAgICBpZih0aGlzLl9hdWRpb1NvdXJjZSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvU291cmNlLnJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFtKCk7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aHJvdyBFcnJvcignTm8gYXVkaW8gc291cmNlIHNldCcpO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gcHJpdmF0ZSBmcmFtZXMoZnJhbWVQb3M6bnVtYmVyLGZyYW1lTGVuOm51bWJlcixidWZzOkZsb2F0MzJBcnJheVtdKTpudW1iZXJ7XHJcbiAgLy8gICBsZXQgcmVhZD0wO1xyXG4gIC8vICAgaWYodGhpcy5fYnVmZmVyKXtcclxuICAvLyAgICAgbGV0IHRvUmVhZD1mcmFtZUxlbjtcclxuICAvLyAgICAgaWYodGhpcy5fYnVmZmVyLmxlbmd0aDxmcmFtZVBvcytmcmFtZUxlbil7XHJcbiAgLy8gICAgICAgdG9SZWFkPXRoaXMuX2J1ZmZlci5sZW5ndGgtZnJhbWVQb3M7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgZm9yKGxldCBjaD0wO2NoPGJ1ZnMubGVuZ3RoO2NoKyspe1xyXG4gIC8vICAgICAgIGxldCBjaERhdGE9dGhpcy5fYnVmZmVyLmdldENoYW5uZWxEYXRhKGNoKTtcclxuICAvLyAgICAgICBmb3IobGV0IGk9MDtpPHRvUmVhZDtpKyspe1xyXG4gIC8vICAgICAgICAgYnVmc1tjaF1baV09Y2hEYXRhW2ZyYW1lUG9zK2ldO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgICByZWFkPXRvUmVhZDtcclxuICAvLyAgIH1lbHNlIGlmKHRoaXMuX2FycmF5QnVmZmVyKXtcclxuICAvLyAgICAgcmVhZD10aGlzLl9hcnJheUJ1ZmZlci5mcmFtZXMoZnJhbWVQb3MsZnJhbWVMZW4sYnVmcyk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gcmVhZDtcclxuICAvLyB9XHJcblxyXG4gIGF1ZGlvSW5wdXRTdHJlYW0oKTpGbG9hdDMyQXJyYXlJbnB1dFN0cmVhbXxudWxse1xyXG4gICAgLy8gaWYodGhpcy5fYnVmZmVyKXtcclxuICAgIC8vICAgcmV0dXJuIG5ldyBBdWRpb0J1ZmZlcklucHV0U3RyZWFtKHRoaXMuX2J1ZmZlcik7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZih0aGlzLl9hcnJheUJ1ZmZlcil7XHJcbiAgICAvLyAgIHJldHVybiBuZXcgQXJyYXlBdWRpb0J1ZmZlcklucHV0U3RyZWFtKHRoaXMuX2FycmF5QnVmZmVyKTtcclxuICAgIC8vIH1cclxuICAgIC8vIHJldHVybiBudWxsO1xyXG4gICAgaWYodGhpcy5fYXVkaW9Tb3VyY2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvU291cmNlLmF1ZGlvSW5wdXRTdHJlYW0oKTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jQXVkaW9JbnB1dFN0cmVhbSgpOiBBc3luY0Zsb2F0MzJBcnJheUlucHV0U3RyZWFtfG51bGx7XHJcbiAgICAvLyBpZih0aGlzLl9pbmRkYkF1ZGlvQnVmZmVyKXtcclxuICAgIC8vICAgcmV0dXJuIG5ldyBJbmRleGVkRGJBdWRpb0lucHV0U3RyZWFtKHRoaXMuX2luZGRiQXVkaW9CdWZmZXIpO1xyXG4gICAgLy8gfWVsc2UgaWYodGhpcy5fbmV0QXVkaW9CdWZmZXIpe1xyXG4gICAgLy8gICByZXR1cm4gbmV3IE5ldEF1ZGlvSW5wdXRTdHJlYW0odGhpcy5fbmV0QXVkaW9CdWZmZXIpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYodGhpcy5fYXVkaW9Tb3VyY2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvU291cmNlLmFzeW5jQXVkaW9JbnB1dFN0cmVhbSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZ2V0IGJ1ZmZlcigpOiBBdWRpb0J1ZmZlciB8IG51bGwge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuX2J1ZmZlcjtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyBnZXQgYXJyYXlCdWZmZXIoKTogQXJyYXlBdWRpb0J1ZmZlciB8IG51bGwge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuX2FycmF5QnVmZmVyO1xyXG4gIC8vIH1cclxuICAvL1xyXG4gIC8vIGdldCBpbmRkYkJ1ZmZlcigpOkluZGV4ZWREYkF1ZGlvQnVmZmVyfG51bGx7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faW5kZGJBdWRpb0J1ZmZlcjtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyBnZXQgbmV0QnVmZmVyKCk6TmV0QXVkaW9CdWZmZXJ8bnVsbHtcclxuICAvLyAgIHJldHVybiB0aGlzLl9uZXRBdWRpb0J1ZmZlcjtcclxuICAvLyB9XHJcblxyXG4gIHJlbGVhc2VBdWRpb0RhdGEoKTpPYnNlcnZhYmxlPHZvaWQ+e1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHZvaWQ+KHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICAvL2lmICh0aGlzLl9hdWRpb1NvdXJjZSBpbnN0YW5jZW9mICBJbmRleGVkRGJBdWRpb0J1ZmZlcikge1xyXG4gICAgICBpZih0aGlzLl9hdWRpb1NvdXJjZSkge1xyXG4gICAgICAgIHRoaXMuX2F1ZGlvU291cmNlLnJlbGVhc2VBdWRpb0RhdGEoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9hdWRpb1NvdXJjZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIH1lbHNle1xyXG4gICAgICAvLyAgIC8vIE90aGVycyBoYXZlIG5vIHBlcnNpc3RlbnQgcmVzcGVjdGl2ZWx5IGFzeW5jIGRlbGV0YWJsZSBzdG9yYWdlLCB0aGV5IHNob3VsZCBiZSBmaW5hbGx5IHJlbW92ZWQgYnkgdGhlIEdDXHJcbiAgICAgIC8vICAgLy90aGlzLl9idWZmZXI9bnVsbDtcclxuICAgICAgLy8gICAvL3RoaXMuX2FycmF5QnVmZmVyPW51bGw7XHJcbiAgICAgIC8vICAgdGhpcy5fYXVkaW9Tb3VyY2U9bnVsbDtcclxuICAgICAgLy8gICBzdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgLy8gICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIC8vIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYW5kb21BY2Nlc3NBdWRpb0J1ZmZlclN0cmVhbSBpbXBsZW1lbnRzIFJhbmRvbUFjY2Vzc0F1ZGlvU3RyZWFte1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9idWZmZXI6QXVkaW9CdWZmZXIpIHtcclxuICB9XHJcblxyXG4gIGNsb3NlKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZnJhbWVzT2JzKGZyYW1lUG9zOiBudW1iZXIsIGZyYW1lTGVuOiBudW1iZXIsIGJ1ZnM6IEZsb2F0MzJBcnJheVtdKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8bnVtYmVyPihzdWJzY3JpYmVyID0+IHtcclxuICAgICAgbGV0IHJlYWQ9MDtcclxuICAgICAgICBsZXQgdG9SZWFkPWZyYW1lTGVuO1xyXG4gICAgICAgIGlmKHRoaXMuX2J1ZmZlci5sZW5ndGg8ZnJhbWVQb3MrZnJhbWVMZW4pe1xyXG4gICAgICAgICAgdG9SZWFkPXRoaXMuX2J1ZmZlci5sZW5ndGgtZnJhbWVQb3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcihsZXQgY2g9MDtjaDxidWZzLmxlbmd0aDtjaCsrKXtcclxuICAgICAgICAgIGxldCBjaERhdGE9dGhpcy5fYnVmZmVyLmdldENoYW5uZWxEYXRhKGNoKTtcclxuICAgICAgICAgIGZvcihsZXQgaT0wO2k8dG9SZWFkO2krKyl7XHJcbiAgICAgICAgICAgIGJ1ZnNbY2hdW2ldPWNoRGF0YVtmcmFtZVBvcytpXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVhZD10b1JlYWQ7XHJcblxyXG4gICAgICAgIHN1YnNjcmliZXIubmV4dChyZWFkKTtcclxuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0J1ZmZlcklucHV0U3RyZWFtIGltcGxlbWVudHMgRmxvYXQzMkFycmF5SW5wdXRTdHJlYW17XHJcbiAgcHJpdmF0ZSBmcmFtZVBvcz0wO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1ZGlvQnVmZmVyOkF1ZGlvQnVmZmVyKSB7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHNraXBGcmFtZXMobjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZyYW1lUG9zKz1uO1xyXG4gIH1cclxuXHJcbiAgcmVhZChidWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+KTogbnVtYmVyIHtcclxuICAgIGxldCByZWFkPTA7XHJcbiAgICBsZXQgdG9SZWFkPWJ1ZmZlcnNbMF0ubGVuZ3RoO1xyXG4gICAgaWYodGhpcy5mcmFtZVBvcyt0b1JlYWQ+dGhpcy5hdWRpb0J1ZmZlci5sZW5ndGgpe1xyXG4gICAgICB0b1JlYWQ9dGhpcy5hdWRpb0J1ZmZlci5sZW5ndGgtdGhpcy5mcmFtZVBvcztcclxuICAgIH1cclxuICAgIGZvcihsZXQgY2g9MDtjaDxidWZmZXJzLmxlbmd0aDtjaCsrKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9SZWFkOyBpKyspIHtcclxuICAgICAgICBidWZmZXJzW2NoXVtpXT10aGlzLmF1ZGlvQnVmZmVyLmdldENoYW5uZWxEYXRhKGNoKVt0aGlzLmZyYW1lUG9zK2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZWFkPXRvUmVhZDtcclxuICAgIHRoaXMuZnJhbWVQb3MrPXRvUmVhZDtcclxuICAgIHJldHVybiByZWFkO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -67,8 +67,8 @@ export class AudioDisplay {
67
67
  error() {
68
68
  this.status = 'ERROR';
69
69
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AudioDisplay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: AudioDisplay, selector: "app-audiodisplay", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AudioDisplay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AudioDisplay, selector: "app-audiodisplay", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
72
72
 
73
73
  <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
74
74
 
@@ -83,7 +83,7 @@ export class AudioDisplay {
83
83
  [zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control>
84
84
  `, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#e6e6e6}\n", "legend{margin-left:1em;padding:.2em .8em;font-size:.8em}\n", "fieldset{border:1px darkgray solid}\n"], dependencies: [{ kind: "component", type: i1.AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { kind: "component", type: i2.AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] }); }
85
85
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AudioDisplay, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AudioDisplay, decorators: [{
87
87
  type: Component,
88
88
  args: [{ selector: 'app-audiodisplay', template: `
89
89
 
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
115
115
  }], audioClip: [{
116
116
  type: Input
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9hdWRpby9hdWRpb19kaXNwbGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUVNLEtBQUssR0FDdkIsTUFBTSxlQUFlLENBQUE7QUFHdEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBNEN0RSxNQUFNLE9BQU8sWUFBWTtJQTRCdkIsWUFBb0IsR0FBc0IsRUFBUyxJQUFlO1FBQTlDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBVztRQXpCMUQsZUFBVSxHQUFnQixJQUFJLENBQUE7UUEwQnBDLHVDQUF1QztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLG1CQUFtQixHQUFDLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBQyxpQkFBaUIsQ0FBQztJQUVoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUE7UUFDdEUsSUFBSSxDQUFDLG9CQUFvQixHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQTtRQUMxRSxJQUFJLENBQUMsYUFBYSxHQUFDLElBQUks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IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEFmdGVyVmlld0luaXQsIElucHV0LCBPbkluaXQsIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7QXVkaW9DbGlwLCBTZWxlY3Rpb259IGZyb20gJy4vcGVyc2lzdG9yJ1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lfSBmcm9tIFwiLi91aS9hdWRpb19kaXNwbGF5X3Njcm9sbF9wYW5lXCI7XHJcbmltcG9ydCB7QXVkaW9EYXRhSG9sZGVyfSBmcm9tIFwiLi9hdWRpb19kYXRhX2hvbGRlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGlvZGlzcGxheScsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPGF1ZGlvLWRpc3BsYXktc2Nyb2xsLXBhbmUgI2F1ZGlvRGlzcGxheVNjcm9sbFBhbmU+PC9hdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lPlxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LWNvbnRyb2wgW2F1ZGlvQ2xpcF09XCJhdWRpb0NsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiXHJcbiAgICBbYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbl09XCJhdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXCJcclxuICAgIFt6b29tSW5BY3Rpb25dPVwiem9vbUluQWN0aW9uXCJcclxuICAgIFt6b29tT3V0QWN0aW9uXT1cInpvb21PdXRBY3Rpb25cIlxyXG4gICAgW3pvb21TZWxlY3RlZEFjdGlvbl09XCJ6b29tU2VsZWN0ZWRBY3Rpb25cIlxyXG4gICAgW3pvb21GaXRUb1BhbmVsQWN0aW9uXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uXCI+PC9hdWRpby1kaXNwbGF5LWNvbnRyb2w+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgICAgYDpob3N0IHtcclxuICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgICAgICAgei1pbmRleDogNTtcclxuICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMCwgMjMwLCAyMzAsIDEuMClcclxuICAgICAgICAgICB9YCxgXHJcbiAgICAgICAgICBsZWdlbmR7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTsgcGFkZGluZzogMC4yZW0gMC44ZW07Zm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgfWAsYFxyXG4gICAgICAgIGZpZWxkc2V0e1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBkYXJrZ3JheSBzb2xpZFxyXG4gICAgICB9XHJcbiAgICAgIGBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXVkaW9EaXNwbGF5IGltcGxlbWVudHMgT25Jbml0LEFmdGVyVmlld0luaXQge1xyXG5cclxuICBwYXJlbnRFOiBIVE1MRWxlbWVudDtcclxuICBwcml2YXRlIF9hdWRpb0NsaXA6QXVkaW9DbGlwfG51bGw9bnVsbFxyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHBsYXlTdG9wQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGxheVNlbGVjdGlvbkFjdGlvbjpBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbiE6QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuXHJcbiAgem9vbUZpdFRvUGFuZWxBY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuICB6b29tU2VsZWN0ZWRBY3Rpb24hOkFjdGlvbjx2b2lkPlxyXG4gIHpvb21JbkFjdGlvbiE6QWN0aW9uPHZvaWQ+O1xyXG4gIHpvb21PdXRBY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuXHJcbiAgY2xlYXJTZWxlY3Rpb25BY3Rpb24hOkFjdGlvbjx2b2lkPlxyXG5cclxuICBzdGF0dXM6IHN0cmluZztcclxuXHJcbiAgYXVkaW86IGFueTtcclxuXHJcbiAgQFZpZXdDaGlsZChBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGF1ZGlvRGlzcGxheVNjcm9sbFBhbmUhOiBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBlUmVmOkVsZW1lbnRSZWYpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJjb25zdHJ1Y3RvcjogXCIrdGhpcy5hYyk7XHJcbiAgICAgIHRoaXMucGFyZW50RT10aGlzLmVSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uID0gbmV3IEFjdGlvbihcIlN0YXJ0XCIpO1xyXG4gICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uPW5ldyBBY3Rpb24oXCJQbGF5IHNlbGVjdGVkXCIpO1xyXG4gICAgdGhpcy5wbGF5U3RvcEFjdGlvbiA9IG5ldyBBY3Rpb24oXCJTdG9wXCIpO1xyXG4gICAgdGhpcy5zdGF0dXM9XCJQbGF5ZXIgY3JlYXRlZC5cIjtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy56b29tU2VsZWN0ZWRBY3Rpb249dGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnpvb21TZWxlY3RlZEFjdGlvblxyXG4gICAgdGhpcy56b29tRml0VG9QYW5lbEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUZpdFRvUGFuZWxBY3Rpb25cclxuICAgIHRoaXMuem9vbU91dEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbU91dEFjdGlvblxyXG4gICAgdGhpcy56b29tSW5BY3Rpb249dGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnpvb21JbkFjdGlvblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICAgICAgdGhpcy5sYXlvdXQoKTtcclxuICAgICAgbGV0IGhlaWdodExpc3RlbmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKChtcnM6QXJyYXk8TXV0YXRpb25SZWNvcmQ+LG1vOk11dGF0aW9uT2JzZXJ2ZXIpPT57XHJcbiAgICAgICAgICBtcnMuZm9yRWFjaCgobXI6TXV0YXRpb25SZWNvcmQpPT57XHJcbiAgICAgICAgICAgICAgaWYoJ2F0dHJpYnV0ZXMnPT09bXIudHlwZSAmJiAoJ2NsYXNzJz09PW1yLmF0dHJpYnV0ZU5hbWUgfHwgJ3N0eWxlJz09PW1yLmF0dHJpYnV0ZU5hbWUpKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgICAgaGVpZ2h0TGlzdGVuZXIub2JzZXJ2ZSh0aGlzLnBhcmVudEUse2F0dHJpYnV0ZXM6IHRydWUsY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgbGF5b3V0KCl7XHJcbiAgICB0aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhcnRlZCgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUGxheSBzdGFydGVkXCIpO1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnUGxheWluZy4uLic7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9EYXRhKGF1ZGlvRGF0YTogQXVkaW9EYXRhSG9sZGVyKXtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLmF1ZGlvRGF0YSA9IGF1ZGlvRGF0YTtcclxuICAgICAgaWYodGhpcy5wbGF5U3RhcnRBY3Rpb24pIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiUGxheSBzdGFydCBhY3Rpb24gKGJ5IEF1ZGlvRGlzcGxheTo6c2V0IGF1ZGlvRGF0YSkgZGlzYWJsZWQ6IFwiKyhhdWRpb0RhdGE9PW51bGwpKTtcclxuICAgICAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gKGF1ZGlvRGF0YSA9PSBudWxsKVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9DbGlwKGF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbCkge1xyXG5cclxuICAgIC8vbGV0IGF1ZGlvRGF0YTpBdWRpb0J1ZmZlcnxudWxsPW51bGw7XHJcbiAgICBsZXQgc2VsOlNlbGVjdGlvbnxudWxsPW51bGw7XHJcbiAgICBpZihhdWRpb0NsaXApe1xyXG4gICAgICAvL2F1ZGlvRGF0YT1hdWRpb0NsaXAuYXVkaW9EYXRhSG9sZGVyLmJ1ZmZlcjtcclxuICAgICAgc2VsPWF1ZGlvQ2xpcC5zZWxlY3Rpb247XHJcbiAgICAgIH1cclxuICAgIHRoaXMuX2F1ZGlvQ2xpcD1hdWRpb0NsaXBcclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5hdWRpb0NsaXAgPSBhdWRpb0NsaXA7XHJcbiAgICAvL3RoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gKGF1ZGlvRGF0YSE9PW51bGwpXHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9DbGlwKCk6QXVkaW9DbGlwfG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9DbGlwXHJcbiAgfVxyXG5cclxuICBzZXQgcGxheUZyYW1lUG9zaXRpb24ocGxheUZyYW1lUG9zaXRpb246bnVtYmVyKXtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnBsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb25cclxuICB9XHJcblxyXG4gIGVycm9yKCkge1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnRVJST1InO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9hdWRpby9hdWRpb19kaXNwbGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUVNLEtBQUssR0FDdkIsTUFBTSxlQUFlLENBQUE7QUFHdEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBNEN0RSxNQUFNLE9BQU8sWUFBWTtJQTRCdkIsWUFBb0IsR0FBc0IsRUFBUyxJQUFlO1FBQTlDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBVztRQXpCMUQsZUFBVSxHQUFnQixJQUFJLENBQUE7UUEwQnBDLHVDQUF1QztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLG1CQUFtQixHQUFDLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBQyxpQkFBaUIsQ0FBQztJQUVoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUE7UUFDdEUsSUFBSSxDQUFDLG9CQUFvQixHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQTtRQUMxRSxJQUFJLENBQUMsYUFBYSxHQUFDLElBQUks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QVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEFmdGVyVmlld0luaXQsIElucHV0LCBPbkluaXQsIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7QXVkaW9DbGlwLCBTZWxlY3Rpb259IGZyb20gJy4vcGVyc2lzdG9yJ1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lfSBmcm9tIFwiLi91aS9hdWRpb19kaXNwbGF5X3Njcm9sbF9wYW5lXCI7XHJcbmltcG9ydCB7QXVkaW9EYXRhSG9sZGVyfSBmcm9tIFwiLi9hdWRpb19kYXRhX2hvbGRlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGlvZGlzcGxheScsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPGF1ZGlvLWRpc3BsYXktc2Nyb2xsLXBhbmUgI2F1ZGlvRGlzcGxheVNjcm9sbFBhbmU+PC9hdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lPlxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LWNvbnRyb2wgW2F1ZGlvQ2xpcF09XCJhdWRpb0NsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiXHJcbiAgICBbYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbl09XCJhdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXCJcclxuICAgIFt6b29tSW5BY3Rpb25dPVwiem9vbUluQWN0aW9uXCJcclxuICAgIFt6b29tT3V0QWN0aW9uXT1cInpvb21PdXRBY3Rpb25cIlxyXG4gICAgW3pvb21TZWxlY3RlZEFjdGlvbl09XCJ6b29tU2VsZWN0ZWRBY3Rpb25cIlxyXG4gICAgW3pvb21GaXRUb1BhbmVsQWN0aW9uXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uXCI+PC9hdWRpby1kaXNwbGF5LWNvbnRyb2w+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgICAgYDpob3N0IHtcclxuICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgICAgICAgei1pbmRleDogNTtcclxuICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMCwgMjMwLCAyMzAsIDEuMClcclxuICAgICAgICAgICB9YCxgXHJcbiAgICAgICAgICBsZWdlbmR7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTsgcGFkZGluZzogMC4yZW0gMC44ZW07Zm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgfWAsYFxyXG4gICAgICAgIGZpZWxkc2V0e1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBkYXJrZ3JheSBzb2xpZFxyXG4gICAgICB9XHJcbiAgICAgIGBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXVkaW9EaXNwbGF5IGltcGxlbWVudHMgT25Jbml0LEFmdGVyVmlld0luaXQge1xyXG5cclxuICBwYXJlbnRFOiBIVE1MRWxlbWVudDtcclxuICBwcml2YXRlIF9hdWRpb0NsaXA6QXVkaW9DbGlwfG51bGw9bnVsbFxyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHBsYXlTdG9wQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGxheVNlbGVjdGlvbkFjdGlvbjpBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbiE6QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuXHJcbiAgem9vbUZpdFRvUGFuZWxBY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuICB6b29tU2VsZWN0ZWRBY3Rpb24hOkFjdGlvbjx2b2lkPlxyXG4gIHpvb21JbkFjdGlvbiE6QWN0aW9uPHZvaWQ+O1xyXG4gIHpvb21PdXRBY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuXHJcbiAgY2xlYXJTZWxlY3Rpb25BY3Rpb24hOkFjdGlvbjx2b2lkPlxyXG5cclxuICBzdGF0dXM6IHN0cmluZztcclxuXHJcbiAgYXVkaW86IGFueTtcclxuXHJcbiAgQFZpZXdDaGlsZChBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGF1ZGlvRGlzcGxheVNjcm9sbFBhbmUhOiBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBlUmVmOkVsZW1lbnRSZWYpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJjb25zdHJ1Y3RvcjogXCIrdGhpcy5hYyk7XHJcbiAgICAgIHRoaXMucGFyZW50RT10aGlzLmVSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uID0gbmV3IEFjdGlvbihcIlN0YXJ0XCIpO1xyXG4gICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uPW5ldyBBY3Rpb24oXCJQbGF5IHNlbGVjdGVkXCIpO1xyXG4gICAgdGhpcy5wbGF5U3RvcEFjdGlvbiA9IG5ldyBBY3Rpb24oXCJTdG9wXCIpO1xyXG4gICAgdGhpcy5zdGF0dXM9XCJQbGF5ZXIgY3JlYXRlZC5cIjtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy56b29tU2VsZWN0ZWRBY3Rpb249dGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnpvb21TZWxlY3RlZEFjdGlvblxyXG4gICAgdGhpcy56b29tRml0VG9QYW5lbEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUZpdFRvUGFuZWxBY3Rpb25cclxuICAgIHRoaXMuem9vbU91dEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbU91dEFjdGlvblxyXG4gICAgdGhpcy56b29tSW5BY3Rpb249dGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnpvb21JbkFjdGlvblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICAgICAgdGhpcy5sYXlvdXQoKTtcclxuICAgICAgbGV0IGhlaWdodExpc3RlbmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKChtcnM6QXJyYXk8TXV0YXRpb25SZWNvcmQ+LG1vOk11dGF0aW9uT2JzZXJ2ZXIpPT57XHJcbiAgICAgICAgICBtcnMuZm9yRWFjaCgobXI6TXV0YXRpb25SZWNvcmQpPT57XHJcbiAgICAgICAgICAgICAgaWYoJ2F0dHJpYnV0ZXMnPT09bXIudHlwZSAmJiAoJ2NsYXNzJz09PW1yLmF0dHJpYnV0ZU5hbWUgfHwgJ3N0eWxlJz09PW1yLmF0dHJpYnV0ZU5hbWUpKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgICAgaGVpZ2h0TGlzdGVuZXIub2JzZXJ2ZSh0aGlzLnBhcmVudEUse2F0dHJpYnV0ZXM6IHRydWUsY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgbGF5b3V0KCl7XHJcbiAgICB0aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhcnRlZCgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUGxheSBzdGFydGVkXCIpO1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnUGxheWluZy4uLic7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9EYXRhKGF1ZGlvRGF0YTogQXVkaW9EYXRhSG9sZGVyKXtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLmF1ZGlvRGF0YSA9IGF1ZGlvRGF0YTtcclxuICAgICAgaWYodGhpcy5wbGF5U3RhcnRBY3Rpb24pIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiUGxheSBzdGFydCBhY3Rpb24gKGJ5IEF1ZGlvRGlzcGxheTo6c2V0IGF1ZGlvRGF0YSkgZGlzYWJsZWQ6IFwiKyhhdWRpb0RhdGE9PW51bGwpKTtcclxuICAgICAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gKGF1ZGlvRGF0YSA9PSBudWxsKVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9DbGlwKGF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbCkge1xyXG5cclxuICAgIC8vbGV0IGF1ZGlvRGF0YTpBdWRpb0J1ZmZlcnxudWxsPW51bGw7XHJcbiAgICBsZXQgc2VsOlNlbGVjdGlvbnxudWxsPW51bGw7XHJcbiAgICBpZihhdWRpb0NsaXApe1xyXG4gICAgICAvL2F1ZGlvRGF0YT1hdWRpb0NsaXAuYXVkaW9EYXRhSG9sZGVyLmJ1ZmZlcjtcclxuICAgICAgc2VsPWF1ZGlvQ2xpcC5zZWxlY3Rpb247XHJcbiAgICAgIH1cclxuICAgIHRoaXMuX2F1ZGlvQ2xpcD1hdWRpb0NsaXBcclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5hdWRpb0NsaXAgPSBhdWRpb0NsaXA7XHJcbiAgICAvL3RoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gKGF1ZGlvRGF0YSE9PW51bGwpXHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9DbGlwKCk6QXVkaW9DbGlwfG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9DbGlwXHJcbiAgfVxyXG5cclxuICBzZXQgcGxheUZyYW1lUG9zaXRpb24ocGxheUZyYW1lUG9zaXRpb246bnVtYmVyKXtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnBsYXlGcmFtZVBvc2l0aW9uID0gcGxheUZyYW1lUG9zaXRpb25cclxuICB9XHJcblxyXG4gIGVycm9yKCkge1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnRVJST1InO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
@@ -187,8 +187,8 @@ export class AudioDisplayPlayer {
187
187
  error() {
188
188
  this.status = 'ERROR';
189
189
  }
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AudioDisplayPlayer, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: AudioDisplayPlayer, selector: "app-audiodisplayplayer", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
190
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AudioDisplayPlayer, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
191
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AudioDisplayPlayer, selector: "app-audiodisplayplayer", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
192
192
 
193
193
  <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
194
194
 
@@ -203,7 +203,7 @@ export class AudioDisplayPlayer {
203
203
  [zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control><p>{{status}}
204
204
  `, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#000000bf}\n"], dependencies: [{ kind: "component", type: i2.AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { kind: "component", type: i3.AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] }); }
205
205
  }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AudioDisplayPlayer, decorators: [{
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AudioDisplayPlayer, decorators: [{
207
207
  type: Component,
208
208
  args: [{ selector: 'app-audiodisplayplayer', template: `
209
209
 
@@ -235,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
235
235
  }], audioClip: [{
236
236
  type: Input
237
237
  }] } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fcGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL2F1ZGlvX3BsYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFFTSxLQUFLLEdBQ3ZCLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFDckMsT0FBTyxFQUFDLFdBQVcsRUFBeUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFFL0YsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBb0N2RSxNQUFNLE9BQU8sa0JBQWtCO0lBK0I3QixZQUFzQixLQUFxQixFQUFZLEdBQXNCLEVBQVcsSUFBZTtRQUFqRixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFZLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBVztRQTlCL0YsY0FBUyxHQUFjLElBQUksQ0FBQztRQWtCNUIsZUFBVSxHQUFnQixJQUFJLENBQUM7UUFJdkMsa0JBQWEsR0FBd0IsSUFBSSxDQUFDO1FBU3hDLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQTtRQUN0RSxJQUFJLENBQUMsb0JBQW9CLEdBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUM7UUFDM0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNULElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtnQkFDbkMsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsR0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQy9DLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFBO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLGNBQWMsR0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsR0FBeUIsRUFBQyxFQUFtQixFQUFDLEVBQUU7WUFDckYsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQWlCLEVBQUMsRUFBRTtnQkFDN0IsSUFBRyxZQUFZLEtBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBRyxFQUFFLENBQUMsYUFBYSxJQUFJLE9BQU8sS0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUM7b0JBQ3BGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDakI7WUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQy9GLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ2xELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBa0I7UUFDN0IsSUFBRyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFHRCxPQUFPO1FBQ0wsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFTyxJQUFJO1FBRVYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7UUFDRCxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUV0QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQjtvQkFDM0QsbURBQW1EO29CQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUE7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzVCLENBQUMsQ0FBQTtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLElBQWlCO1FBRTlCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLG9CQUFvQixDQUFDO1FBQ25DLG1EQUFtRDtRQUVuRCxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVELG9FQUFvRTtZQUNwRSxJQUFJLEVBQUUsR0FBQyxJQUFJLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksR0FBRyxHQUFDLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQsSUFDSSxTQUFTLENBQUMsU0FBMEI7UUFDcEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDbEQsSUFBRyxTQUFTLEVBQUU7WUFDVixJQUFJLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUM7Z0JBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7YUFDeEM7U0FDTjthQUFJO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1lBQ3BDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBQztnQkFDUixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDNUI7U0FDSjtRQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFBO0lBQ3hDLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFFLENBQUE7SUFDNUcsQ0FBQztJQUVELElBQ0ksU0FBUyxDQUFDLFNBQTJCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUMsU0FBUyxDQUFBO1FBQ3pCLElBQUksU0FBUyxHQUF1QixJQUFJLENBQUM7UUFDekMsSUFBRyxTQUFTLEVBQUM7WUFDWCxTQUFTLEdBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztZQUNwQyxJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtnQkFDbkUsQ0FBQyxDQUFDLENBQUE7YUFDSDtTQUNGO1FBQ0QsSUFBRyxTQUFTLEVBQUU7WUFDWixrR0FBa0c7WUFDbEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1NBQ2hFO2FBQUk7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUE7U0FDekM7UUFFQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxHQUFDLFNBQVMsQ0FBQTtRQUMvQyxJQUFHLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7U0FDOUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7UUFFaEIsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUU7WUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDNUU7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsQ0FBbUI7UUFDbkMsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQTtZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdEM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN2QixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDckM7YUFBSyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN2QixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDckM7UUFHRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRTNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs4R0FqT1Usa0JBQWtCO2tHQUFsQixrQkFBa0Isa1dBNEJsQixzQkFBc0IsOERBMUR2Qjs7Ozs7Ozs7Ozs7OztHQWFUOzsyRkFpQlUsa0JBQWtCO2tCQWxDOUIsU0FBUzsrQkFFRSx3QkFBd0IsWUFFeEI7Ozs7Ozs7Ozs7Ozs7R0FhVDs0SUF1QkQsZUFBZTtzQkFEZCxLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBR04sNEJBQTRCO3NCQUQzQixLQUFLO2dCQWtCRSxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThHL0MsU0FBUztzQkFEWixLQUFLO2dCQXVCRixTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBBZnRlclZpZXdJbml0LCBJbnB1dCwgT25Jbml0LCBFbGVtZW50UmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5pbXBvcnQge0F1ZGlvQ2xpcH0gZnJvbSAnLi9wZXJzaXN0b3InXHJcbmltcG9ydCB7QXVkaW9QbGF5ZXIsIEF1ZGlvUGxheWVyTGlzdGVuZXIsIEF1ZGlvUGxheWVyRXZlbnQsIEV2ZW50VHlwZX0gZnJvbSAnLi9wbGF5YmFjay9wbGF5ZXInXHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFBhcmFtc30gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lfSBmcm9tIFwiLi91aS9hdWRpb19kaXNwbGF5X3Njcm9sbF9wYW5lXCI7XHJcbmltcG9ydCB7QXVkaW9Db250ZXh0UHJvdmlkZXJ9IGZyb20gXCIuL2NvbnRleHRcIjtcclxuaW1wb3J0IHtBdWRpb0J1ZmZlclNvdXJjZSwgQXVkaW9EYXRhSG9sZGVyfSBmcm9tIFwiLi9hdWRpb19kYXRhX2hvbGRlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGlvZGlzcGxheXBsYXllcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPGF1ZGlvLWRpc3BsYXktc2Nyb2xsLXBhbmUgI2F1ZGlvRGlzcGxheVNjcm9sbFBhbmU+PC9hdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lPlxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LWNvbnRyb2wgW2F1ZGlvQ2xpcF09XCJhdWRpb0NsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXT1cImFwPy5hdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbUluQWN0aW9uXT1cInpvb21JbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21PdXRBY3Rpb25dPVwiem9vbU91dEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21TZWxlY3RlZEFjdGlvbl09XCJ6b29tU2VsZWN0ZWRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tRml0VG9QYW5lbEFjdGlvbl09XCJ6b29tRml0VG9QYW5lbEFjdGlvblwiPjwvYXVkaW8tZGlzcGxheS1jb250cm9sPjxwPnt7c3RhdHVzfX1cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gICAgICBgOmhvc3Qge1xyXG4gICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICBib3R0b206IDBweDtcclxuICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgICAgICAgICB6LWluZGV4OiA1O1xyXG4gICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSlcclxuICAgICAgICAgICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0Rpc3BsYXlQbGF5ZXIgaW1wbGVtZW50cyBBdWRpb1BsYXllckxpc3RlbmVyLCBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSBfYXVkaW9Vcmw6IHN0cmluZ3xudWxsPW51bGw7XHJcblxyXG4gIHBhcmVudEU6IEhUTUxFbGVtZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIEBJbnB1dCgpXHJcbiAgcGxheVN0b3BBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBASW5wdXQoKVxyXG4gIHBsYXlTZWxlY3Rpb25BY3Rpb246QWN0aW9uPHZvaWQ+XHJcbiAgQElucHV0KClcclxuICBhdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uITpBY3Rpb248Ym9vbGVhbj47XHJcblxyXG4gIHpvb21GaXRUb1BhbmVsQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbVNlbGVjdGVkQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbUluQWN0aW9uITpBY3Rpb248dm9pZD47XHJcbiAgem9vbU91dEFjdGlvbiE6QWN0aW9uPHZvaWQ+O1xyXG5cclxuICBwcml2YXRlIF9hdWRpb0NsaXA6QXVkaW9DbGlwfG51bGw9bnVsbDtcclxuICBhcDogQXVkaW9QbGF5ZXJ8dW5kZWZpbmVkO1xyXG4gIHN0YXR1czogc3RyaW5nO1xyXG5cclxuICBjdXJyZW50TG9hZGVyOiBYTUxIdHRwUmVxdWVzdCB8IG51bGw9bnVsbDtcclxuXHJcbiAgYXVkaW86IGFueTtcclxuICB1cGRhdGVUaW1lcklkOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQXVkaW9EaXNwbGF5U2Nyb2xsUGFuZSwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIGF1ZGlvRGlzcGxheVNjcm9sbFBhbmUhOiBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcm90ZWN0ZWQgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixwcm90ZWN0ZWQgZVJlZjpFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLnBhcmVudEU9dGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLnBsYXlTdGFydEFjdGlvbiA9IG5ldyBBY3Rpb24oXCJTdGFydFwiKTtcclxuICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbj1uZXcgQWN0aW9uKFwiUGxheSBzZWxlY3RlZFwiKTtcclxuICAgIHRoaXMucGxheVN0b3BBY3Rpb24gPSBuZXcgQWN0aW9uKFwiU3RvcFwiKTtcclxuICAgIHRoaXMuc3RhdHVzPVwiUGxheWVyIGNyZWF0ZWQuXCI7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy56b29tU2VsZWN0ZWRBY3Rpb249dGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnpvb21TZWxlY3RlZEFjdGlvblxyXG4gICAgdGhpcy56b29tRml0VG9QYW5lbEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUZpdFRvUGFuZWxBY3Rpb247XHJcbiAgICB0aGlzLnpvb21PdXRBY3Rpb249dGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnpvb21PdXRBY3Rpb247XHJcbiAgICB0aGlzLnpvb21JbkFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbUluQWN0aW9uO1xyXG4gICAgdGhpcy5hcCA9IG5ldyBBdWRpb1BsYXllcih0aGlzKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgaWYgKHRoaXMuYXApIHtcclxuICAgICAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLm9uQWN0aW9uID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKFwiU3RhcnQgYWN0aW9uLCBwbGF5ZXI6IFwiK3RoaXMuYXApXHJcbiAgICAgICAgICAgIHRoaXMuYXA/LnN0YXJ0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb24ub25BY3Rpb24gPSAoKSA9PiB0aGlzLmFwPy5zdGFydFNlbGVjdGVkKCk7XHJcbiAgICAgICAgICB0aGlzLnBsYXlTdG9wQWN0aW9uLm9uQWN0aW9uID0gKCkgPT4gdGhpcy5hcD8uc3RvcCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICAgIGxldCBoZWlnaHRMaXN0ZW5lcj1uZXcgTXV0YXRpb25PYnNlcnZlcigobXJzOkFycmF5PE11dGF0aW9uUmVjb3JkPixtbzpNdXRhdGlvbk9ic2VydmVyKT0+e1xyXG4gICAgICAgICAgbXJzLmZvckVhY2goKG1yOk11dGF0aW9uUmVjb3JkKT0+e1xyXG4gICAgICAgICAgICAgIGlmKCdhdHRyaWJ1dGVzJz09PW1yLnR5cGUgJiYgKCdjbGFzcyc9PT1tci5hdHRyaWJ1dGVOYW1lIHx8ICdzdHlsZSc9PT1tci5hdHRyaWJ1dGVOYW1lKSl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICAgIGhlaWdodExpc3RlbmVyLm9ic2VydmUodGhpcy5wYXJlbnRFLHthdHRyaWJ1dGVzOiB0cnVlLGNoaWxkTGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogdHJ1ZX0pO1xyXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogUGFyYW1zKSA9PiB7XHJcbiAgICAgIGlmIChwYXJhbXNbJ3VybCddKSB7XHJcbiAgICAgICAgdGhpcy5hdWRpb1VybCA9IHBhcmFtc1sndXJsJ107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbGF5b3V0KCl7XHJcbiAgICB0aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9VcmwoKTogc3RyaW5nfG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvVXJsO1xyXG4gIH1cclxuXHJcbiAgc2V0IGF1ZGlvVXJsKHZhbHVlOiBzdHJpbmd8bnVsbCkge1xyXG4gICAgaWYodGhpcy5hcCkge1xyXG4gICAgICB0aGlzLmFwLnN0b3AoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2F1ZGlvVXJsID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWQoKTtcclxuICB9XHJcblxyXG5cclxuICBzdGFydGVkKCkge1xyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwiUGxheSBzdGFydGVkXCIpO1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnUGxheWluZy4uLic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWQoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudExvYWRlcikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIuYWJvcnQoKTtcclxuICAgICAgdGhpcy5jdXJyZW50TG9hZGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuX2F1ZGlvVXJsKSB7XHJcbiAgICAgIC8vdGhpcy5zdGF0dXNNc2cuaW5uZXJIVE1MID0gJ0Nvbm5lY3RpbmcuLi4nO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgICAgdGhpcy5jdXJyZW50TG9hZGVyLm9wZW4oXCJHRVRcIiwgdGhpcy5fYXVkaW9VcmwsIHRydWUpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIucmVzcG9uc2VUeXBlID0gXCJhcnJheWJ1ZmZlclwiO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIub25sb2FkID0gKGUpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50TG9hZGVyKSB7XHJcblxyXG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLmN1cnJlbnRMb2FkZXIucmVzcG9uc2U7IC8vIG5vdCByZXNwb25zZVRleHRcclxuICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlJlY2VpdmVkIGRhdGEgXCIsIGRhdGEuYnl0ZUxlbmd0aCk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMb2FkZXIgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5sb2FkZWQoZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5vbmVycm9yID0gKGUpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZG93bmxvYWRpbmcgLi4uXCIpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExvYWRlciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50TG9hZGVyLnNlbmQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZGVkKGRhdGE6IEFycmF5QnVmZmVyKSB7XHJcblxyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwiTG9hZGVkXCIpO1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnQXVkaW8gZmlsZSBsb2FkZWQuJztcclxuICAgIC8vY29uc29sZS5kZWJ1ZyhcIlJlY2VpdmVkIGRhdGEgXCIsIGRhdGEuYnl0ZUxlbmd0aCk7XHJcblxyXG4gICAgQXVkaW9Db250ZXh0UHJvdmlkZXIuZGVjb2RlQXVkaW9EYXRhKGRhdGEpLnRoZW4oYXVkaW9CdWZmZXIgPT4ge1xyXG4gICAgICAvL2NvbnNvbGUuZGVidWcoXCJBdWRpbyBCdWZmZXIgU2FtcGxlcmF0ZTogXCIsIGF1ZGlvQnVmZmVyLnNhbXBsZVJhdGUpXHJcbiAgICAgIGxldCBhcz1uZXcgQXVkaW9CdWZmZXJTb3VyY2UoYXVkaW9CdWZmZXIpO1xyXG4gICAgICBsZXQgYWRoPW5ldyBBdWRpb0RhdGFIb2xkZXIoYXMpO1xyXG4gICAgICB0aGlzLmF1ZGlvQ2xpcCA9IG5ldyBBdWRpb0NsaXAoYWRoKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGF1ZGlvRGF0YShhdWRpb0RhdGE6IEF1ZGlvRGF0YUhvbGRlcil7XHJcbiAgICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5hdWRpb0RhdGEgPSBhdWRpb0RhdGE7XHJcbiAgICAgIGlmKGF1ZGlvRGF0YSkge1xyXG4gICAgICAgICAgbGV0IGNsaXAgPSBuZXcgQXVkaW9DbGlwKGF1ZGlvRGF0YSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5hcCl7XHJcbiAgICAgICAgICAgICAgdGhpcy5hcC5hdWRpb0NsaXAgPSBjbGlwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSB0cnVlXHJcbiAgICAgICAgICBpZiAodGhpcy5hcCl7XHJcbiAgICAgICAgICAgICAgdGhpcy5hcC5hdWRpb0NsaXAgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb24uZGlzYWJsZWQ9dHJ1ZVxyXG4gIH1cclxuXHJcbiAgc3RhcnRTZWxlY3Rpb25EaXNhYmxlZCgpe1xyXG4gICAgcmV0dXJuICEodGhpcy5fYXVkaW9DbGlwICYmIHRoaXMuYXAhPW51bGwgJiYgIXRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkICYmIHRoaXMuX2F1ZGlvQ2xpcC5zZWxlY3Rpb24gKVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9DbGlwKGF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fYXVkaW9DbGlwPWF1ZGlvQ2xpcFxyXG4gICAgbGV0IGF1ZGlvRGF0YTpBdWRpb0RhdGFIb2xkZXJ8IG51bGw9bnVsbDtcclxuICAgIGlmKGF1ZGlvQ2xpcCl7XHJcbiAgICAgIGF1ZGlvRGF0YT1hdWRpb0NsaXAuYXVkaW9EYXRhSG9sZGVyO1xyXG4gICAgICBpZih0aGlzLl9hdWRpb0NsaXApIHtcclxuICAgICAgICB0aGlzLl9hdWRpb0NsaXAuYWRkU2VsZWN0aW9uT2JzZXJ2ZXIoKGFjKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb24uZGlzYWJsZWQgPSB0aGlzLnN0YXJ0U2VsZWN0aW9uRGlzYWJsZWQoKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKGF1ZGlvRGF0YSkge1xyXG4gICAgICAvL2NvbnNvbGUuZGVidWcoXCJQbGF5IHN0YXJ0IGFjdGlvbiAoYnkgQXVkaW9EaXNwbGF5UGxheWVyOjpzZXQgYXVkaW9DbGlwKSBkaXNhYmxlZDogXCIrKCF0aGlzLmFwKSk7XHJcbiAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0oIXRoaXMuYXApXHJcbiAgICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5kaXNhYmxlZD10aGlzLnN0YXJ0U2VsZWN0aW9uRGlzYWJsZWQoKVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gdHJ1ZVxyXG4gICAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb24uZGlzYWJsZWQ9dHJ1ZVxyXG4gIH1cclxuXHJcbiAgICB0aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuYXVkaW9DbGlwPWF1ZGlvQ2xpcFxyXG4gICAgaWYodGhpcy5hcCkge1xyXG4gICAgICB0aGlzLmFwLmF1ZGlvQ2xpcCA9IGF1ZGlvQ2xpcFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGF1ZGlvQ2xpcCgpOkF1ZGlvQ2xpcHxudWxse1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQ2xpcFxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUGxheVBvc2l0aW9uKCkge1xyXG5cclxuICAgIGlmICh0aGlzLmFwICYmIHRoaXMuYXAucGxheVBvc2l0aW9uRnJhbWVzKSB7XHJcbiAgICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5wbGF5RnJhbWVQb3NpdGlvbiA9IHRoaXMuYXAucGxheVBvc2l0aW9uRnJhbWVzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXVkaW9QbGF5ZXJVcGRhdGUoZTogQXVkaW9QbGF5ZXJFdmVudCkge1xyXG4gICAgaWYgKEV2ZW50VHlwZS5TVEFSVEVEID09PSBlLnR5cGUpIHtcclxuICAgICAgdGhpcy5zdGF0dXMgPSAnUGxheWJhY2suLi4nO1xyXG4gICAgICB0aGlzLnVwZGF0ZVRpbWVySWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy51cGRhdGVQbGF5UG9zaXRpb24oKSwgNTApO1xyXG4gICAgICB0aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5kaXNhYmxlZD10cnVlXHJcbiAgICAgIHRoaXMucGxheVN0b3BBY3Rpb24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAoRXZlbnRUeXBlLkVOREVEID09PSBlLnR5cGUpIHtcclxuICAgICAgdGhpcy5zdGF0dXMgPSAnUmVhZHkuJztcclxuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcklkKTtcclxuICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkPXRoaXMuc3RhcnRTZWxlY3Rpb25EaXNhYmxlZCgpXHJcbiAgICAgIHRoaXMucGxheVN0b3BBY3Rpb24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfWVsc2UgaWYgKEV2ZW50VHlwZS5FUlJPUiA9PT0gZS50eXBlKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzID0gJ0Vycm9yLic7XHJcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMudXBkYXRlVGltZXJJZCk7XHJcbiAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5kaXNhYmxlZD10aGlzLnN0YXJ0U2VsZWN0aW9uRGlzYWJsZWQoKVxyXG4gICAgICB0aGlzLnBsYXlTdG9wQWN0aW9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICB9XHJcblxyXG4gIGVycm9yKCkge1xyXG4gICAgdGhpcy5zdGF0dXMgPSAnRVJST1InO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fcGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL2F1ZGlvX3BsYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFFTSxLQUFLLEdBQ3ZCLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFDckMsT0FBTyxFQUFDLFdBQVcsRUFBeUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFFL0YsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBb0N2RSxNQUFNLE9BQU8sa0JBQWtCO0lBK0I3QixZQUFzQixLQUFxQixFQUFZLEdBQXNCLEVBQVcsSUFBZTtRQUFqRixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFZLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBVztRQTlCL0YsY0FBUyxHQUFjLElBQUksQ0FBQztRQWtCNUIsZUFBVSxHQUFnQixJQUFJLENBQUM7UUFJdkMsa0JBQWEsR0FBd0IsSUFBSSxDQUFDO1FBU3hDLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENB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O1lBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO2FBQUssSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN2QixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztRQUdELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFM0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDOzhHQWpPVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixrV0E0QmxCLHNCQUFzQiw4REExRHZCOzs7Ozs7Ozs7Ozs7O0dBYVQ7OzJGQWlCVSxrQkFBa0I7a0JBbEM5QixTQUFTOytCQUVFLHdCQUF3QixZQUV4Qjs7Ozs7Ozs7Ozs7OztHQWFUOzRJQXVCRCxlQUFlO3NCQURkLEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFHTiw0QkFBNEI7c0JBRDNCLEtBQUs7Z0JBa0JFLHNCQUFzQjtzQkFEN0IsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBOEcvQyxTQUFTO3NCQURaLEtBQUs7Z0JBdUJGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEFmdGVyVmlld0luaXQsIElucHV0LCBPbkluaXQsIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7QXVkaW9DbGlwfSBmcm9tICcuL3BlcnNpc3RvcidcclxuaW1wb3J0IHtBdWRpb1BsYXllciwgQXVkaW9QbGF5ZXJMaXN0ZW5lciwgQXVkaW9QbGF5ZXJFdmVudCwgRXZlbnRUeXBlfSBmcm9tICcuL3BsYXliYWNrL3BsYXllcidcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVNjcm9sbFBhbmV9IGZyb20gXCIuL3VpL2F1ZGlvX2Rpc3BsYXlfc2Nyb2xsX3BhbmVcIjtcclxuaW1wb3J0IHtBdWRpb0NvbnRleHRQcm92aWRlcn0gZnJvbSBcIi4vY29udGV4dFwiO1xyXG5pbXBvcnQge0F1ZGlvQnVmZmVyU291cmNlLCBBdWRpb0RhdGFIb2xkZXJ9IGZyb20gXCIuL2F1ZGlvX2RhdGFfaG9sZGVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtYXVkaW9kaXNwbGF5cGxheWVyJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICA8YXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZSAjYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZT48L2F1ZGlvLWRpc3BsYXktc2Nyb2xsLXBhbmU+XHJcblxyXG4gICAgPGF1ZGlvLWRpc3BsYXktY29udHJvbCBbYXVkaW9DbGlwXT1cImF1ZGlvQ2xpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U2VsZWN0aW9uQWN0aW9uXT1cInBsYXlTZWxlY3Rpb25BY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXA/LmF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tSW5BY3Rpb25dPVwiem9vbUluQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbU91dEFjdGlvbl09XCJ6b29tT3V0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbVNlbGVjdGVkQWN0aW9uXT1cInpvb21TZWxlY3RlZEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21GaXRUb1BhbmVsQWN0aW9uXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uXCI+PC9hdWRpby1kaXNwbGF5LWNvbnRyb2w+PHA+e3tzdGF0dXN9fVxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICAgIGA6aG9zdCB7XHJcbiAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjc1KVxyXG4gICAgICAgICAgIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1ZGlvRGlzcGxheVBsYXllciBpbXBsZW1lbnRzIEF1ZGlvUGxheWVyTGlzdGVuZXIsIE9uSW5pdCxBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIF9hdWRpb1VybDogc3RyaW5nfG51bGw9bnVsbDtcclxuXHJcbiAgcGFyZW50RTogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGxheVN0YXJ0QWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgQElucHV0KClcclxuICBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIEBJbnB1dCgpXHJcbiAgcGxheVNlbGVjdGlvbkFjdGlvbjpBY3Rpb248dm9pZD5cclxuICBASW5wdXQoKVxyXG4gIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb24hOkFjdGlvbjxib29sZWFuPjtcclxuXHJcbiAgem9vbUZpdFRvUGFuZWxBY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuICB6b29tU2VsZWN0ZWRBY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuICB6b29tSW5BY3Rpb24hOkFjdGlvbjx2b2lkPjtcclxuICB6b29tT3V0QWN0aW9uITpBY3Rpb248dm9pZD47XHJcblxyXG4gIHByaXZhdGUgX2F1ZGlvQ2xpcDpBdWRpb0NsaXB8bnVsbD1udWxsO1xyXG4gIGFwOiBBdWRpb1BsYXllcnx1bmRlZmluZWQ7XHJcbiAgc3RhdHVzOiBzdHJpbmc7XHJcblxyXG4gIGN1cnJlbnRMb2FkZXI6IFhNTEh0dHBSZXF1ZXN0IHwgbnVsbD1udWxsO1xyXG5cclxuICBhdWRpbzogYW55O1xyXG4gIHVwZGF0ZVRpbWVySWQ6IGFueTtcclxuXHJcbiAgQFZpZXdDaGlsZChBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZSE6IEF1ZGlvRGlzcGxheVNjcm9sbFBhbmU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByb3RlY3RlZCByZWY6IENoYW5nZURldGVjdG9yUmVmLHByb3RlY3RlZCBlUmVmOkVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMucGFyZW50RT10aGlzLmVSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uID0gbmV3IEFjdGlvbihcIlN0YXJ0XCIpO1xyXG4gICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uPW5ldyBBY3Rpb24oXCJQbGF5IHNlbGVjdGVkXCIpO1xyXG4gICAgdGhpcy5wbGF5U3RvcEFjdGlvbiA9IG5ldyBBY3Rpb24oXCJTdG9wXCIpO1xyXG4gICAgdGhpcy5zdGF0dXM9XCJQbGF5ZXIgY3JlYXRlZC5cIjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLnpvb21TZWxlY3RlZEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbVNlbGVjdGVkQWN0aW9uXHJcbiAgICB0aGlzLnpvb21GaXRUb1BhbmVsQWN0aW9uPXRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS56b29tRml0VG9QYW5lbEFjdGlvbjtcclxuICAgIHRoaXMuem9vbU91dEFjdGlvbj10aGlzLmF1ZGlvRGlzcGxheVNjcm9sbFBhbmUuem9vbU91dEFjdGlvbjtcclxuICAgIHRoaXMuem9vbUluQWN0aW9uPXRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS56b29tSW5BY3Rpb247XHJcbiAgICB0aGlzLmFwID0gbmV3IEF1ZGlvUGxheWVyKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICBpZiAodGhpcy5hcCkge1xyXG4gICAgICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24ub25BY3Rpb24gPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJTdGFydCBhY3Rpb24sIHBsYXllcjogXCIrdGhpcy5hcClcclxuICAgICAgICAgICAgdGhpcy5hcD8uc3RhcnQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5vbkFjdGlvbiA9ICgpID0+IHRoaXMuYXA/LnN0YXJ0U2VsZWN0ZWQoKTtcclxuICAgICAgICAgIHRoaXMucGxheVN0b3BBY3Rpb24ub25BY3Rpb24gPSAoKSA9PiB0aGlzLmFwPy5zdG9wKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sYXlvdXQoKTtcclxuICAgICAgbGV0IGhlaWdodExpc3RlbmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKChtcnM6QXJyYXk8TXV0YXRpb25SZWNvcmQ+LG1vOk11dGF0aW9uT2JzZXJ2ZXIpPT57XHJcbiAgICAgICAgICBtcnMuZm9yRWFjaCgobXI6TXV0YXRpb25SZWNvcmQpPT57XHJcbiAgICAgICAgICAgICAgaWYoJ2F0dHJpYnV0ZXMnPT09bXIudHlwZSAmJiAoJ2NsYXNzJz09PW1yLmF0dHJpYnV0ZU5hbWUgfHwgJ3N0eWxlJz09PW1yLmF0dHJpYnV0ZU5hbWUpKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgICAgaGVpZ2h0TGlzdGVuZXIub2JzZXJ2ZSh0aGlzLnBhcmVudEUse2F0dHJpYnV0ZXM6IHRydWUsY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlfSk7XHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgaWYgKHBhcmFtc1sndXJsJ10pIHtcclxuICAgICAgICB0aGlzLmF1ZGlvVXJsID0gcGFyYW1zWyd1cmwnXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsYXlvdXQoKXtcclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5sYXlvdXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBhdWRpb1VybCgpOiBzdHJpbmd8bnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Vcmw7XHJcbiAgfVxyXG5cclxuICBzZXQgYXVkaW9VcmwodmFsdWU6IHN0cmluZ3xudWxsKSB7XHJcbiAgICBpZih0aGlzLmFwKSB7XHJcbiAgICAgIHRoaXMuYXAuc3RvcCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fYXVkaW9VcmwgPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXJ0ZWQoKSB7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJQbGF5IHN0YXJ0ZWRcIik7XHJcbiAgICB0aGlzLnN0YXR1cyA9ICdQbGF5aW5nLi4uJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50TG9hZGVyKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5hYm9ydCgpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5fYXVkaW9VcmwpIHtcclxuICAgICAgLy90aGlzLnN0YXR1c01zZy5pbm5lckhUTUwgPSAnQ29ubmVjdGluZy4uLic7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIub3BlbihcIkdFVFwiLCB0aGlzLl9hdWRpb1VybCwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5yZXNwb25zZVR5cGUgPSBcImFycmF5YnVmZmVyXCI7XHJcbiAgICAgIHRoaXMuY3VycmVudExvYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2FkZXIpIHtcclxuXHJcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuY3VycmVudExvYWRlci5yZXNwb25zZTsgLy8gbm90IHJlc3BvbnNlVGV4dFxyXG4gICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUmVjZWl2ZWQgZGF0YSBcIiwgZGF0YS5ieXRlTGVuZ3RoKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudExvYWRlciA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZChkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50TG9hZGVyLm9uZXJyb3IgPSAoZSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkb3dubG9hZGluZyAuLi5cIik7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TG9hZGVyID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1cnJlbnRMb2FkZXIuc2VuZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkZWQoZGF0YTogQXJyYXlCdWZmZXIpIHtcclxuXHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJMb2FkZWRcIik7XHJcbiAgICB0aGlzLnN0YXR1cyA9ICdBdWRpbyBmaWxlIGxvYWRlZC4nO1xyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwiUmVjZWl2ZWQgZGF0YSBcIiwgZGF0YS5ieXRlTGVuZ3RoKTtcclxuXHJcbiAgICBBdWRpb0NvbnRleHRQcm92aWRlci5kZWNvZGVBdWRpb0RhdGEoZGF0YSkudGhlbihhdWRpb0J1ZmZlciA9PiB7XHJcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkF1ZGlvIEJ1ZmZlciBTYW1wbGVyYXRlOiBcIiwgYXVkaW9CdWZmZXIuc2FtcGxlUmF0ZSlcclxuICAgICAgbGV0IGFzPW5ldyBBdWRpb0J1ZmZlclNvdXJjZShhdWRpb0J1ZmZlcik7XHJcbiAgICAgIGxldCBhZGg9bmV3IEF1ZGlvRGF0YUhvbGRlcihhcyk7XHJcbiAgICAgIHRoaXMuYXVkaW9DbGlwID0gbmV3IEF1ZGlvQ2xpcChhZGgpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXVkaW9EYXRhKGF1ZGlvRGF0YTogQXVkaW9EYXRhSG9sZGVyKXtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLmF1ZGlvRGF0YSA9IGF1ZGlvRGF0YTtcclxuICAgICAgaWYoYXVkaW9EYXRhKSB7XHJcbiAgICAgICAgICBsZXQgY2xpcCA9IG5ldyBBdWRpb0NsaXAoYXVkaW9EYXRhKTtcclxuICAgICAgICAgIGlmICh0aGlzLmFwKXtcclxuICAgICAgICAgICAgICB0aGlzLmFwLmF1ZGlvQ2xpcCA9IGNsaXA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCA9IGZhbHNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCA9IHRydWVcclxuICAgICAgICAgIGlmICh0aGlzLmFwKXtcclxuICAgICAgICAgICAgICB0aGlzLmFwLmF1ZGlvQ2xpcCA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5kaXNhYmxlZD10cnVlXHJcbiAgfVxyXG5cclxuICBzdGFydFNlbGVjdGlvbkRpc2FibGVkKCl7XHJcbiAgICByZXR1cm4gISh0aGlzLl9hdWRpb0NsaXAgJiYgdGhpcy5hcCE9bnVsbCAmJiAhdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgJiYgdGhpcy5fYXVkaW9DbGlwLnNlbGVjdGlvbiApXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBhdWRpb0NsaXAoYXVkaW9DbGlwOiBBdWRpb0NsaXAgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9hdWRpb0NsaXA9YXVkaW9DbGlwXHJcbiAgICBsZXQgYXVkaW9EYXRhOkF1ZGlvRGF0YUhvbGRlcnwgbnVsbD1udWxsO1xyXG4gICAgaWYoYXVkaW9DbGlwKXtcclxuICAgICAgYXVkaW9EYXRhPWF1ZGlvQ2xpcC5hdWRpb0RhdGFIb2xkZXI7XHJcbiAgICAgIGlmKHRoaXMuX2F1ZGlvQ2xpcCkge1xyXG4gICAgICAgIHRoaXMuX2F1ZGlvQ2xpcC5hZGRTZWxlY3Rpb25PYnNlcnZlcigoYWMpID0+IHtcclxuICAgICAgICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5kaXNhYmxlZCA9IHRoaXMuc3RhcnRTZWxlY3Rpb25EaXNhYmxlZCgpXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYoYXVkaW9EYXRhKSB7XHJcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlBsYXkgc3RhcnQgYWN0aW9uIChieSBBdWRpb0Rpc3BsYXlQbGF5ZXI6OnNldCBhdWRpb0NsaXApIGRpc2FibGVkOiBcIisoIXRoaXMuYXApKTtcclxuICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSghdGhpcy5hcClcclxuICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkPXRoaXMuc3RhcnRTZWxlY3Rpb25EaXNhYmxlZCgpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSB0cnVlXHJcbiAgICAgIHRoaXMucGxheVNlbGVjdGlvbkFjdGlvbi5kaXNhYmxlZD10cnVlXHJcbiAgfVxyXG5cclxuICAgIHRoaXMuYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZS5hdWRpb0NsaXA9YXVkaW9DbGlwXHJcbiAgICBpZih0aGlzLmFwKSB7XHJcbiAgICAgIHRoaXMuYXAuYXVkaW9DbGlwID0gYXVkaW9DbGlwXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgYXVkaW9DbGlwKCk6QXVkaW9DbGlwfG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9DbGlwXHJcbiAgfVxyXG5cclxuICB1cGRhdGVQbGF5UG9zaXRpb24oKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuYXAgJiYgdGhpcy5hcC5wbGF5UG9zaXRpb25GcmFtZXMpIHtcclxuICAgICAgdGhpcy5hdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLnBsYXlGcmFtZVBvc2l0aW9uID0gdGhpcy5hcC5wbGF5UG9zaXRpb25GcmFtZXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhdWRpb1BsYXllclVwZGF0ZShlOiBBdWRpb1BsYXllckV2ZW50KSB7XHJcbiAgICBpZiAoRXZlbnRUeXBlLlNUQVJURUQgPT09IGUudHlwZSkge1xyXG4gICAgICB0aGlzLnN0YXR1cyA9ICdQbGF5YmFjay4uLic7XHJcbiAgICAgIHRoaXMudXBkYXRlVGltZXJJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB0aGlzLnVwZGF0ZVBsYXlQb3NpdGlvbigpLCA1MCk7XHJcbiAgICAgIHRoaXMucGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkPXRydWVcclxuICAgICAgdGhpcy5wbGF5U3RvcEFjdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChFdmVudFR5cGUuRU5ERUQgPT09IGUudHlwZSkge1xyXG4gICAgICB0aGlzLnN0YXR1cyA9ICdSZWFkeS4nO1xyXG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLnVwZGF0ZVRpbWVySWQpO1xyXG4gICAgICB0aGlzLnBsYXlTdGFydEFjdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBsYXlTZWxlY3Rpb25BY3Rpb24uZGlzYWJsZWQ9dGhpcy5zdGFydFNlbGVjdGlvbkRpc2FibGVkKClcclxuICAgICAgdGhpcy5wbGF5U3RvcEFjdGlvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB9ZWxzZSBpZiAoRXZlbnRUeXBlLkVSUk9SID09PSBlLnR5cGUpIHtcclxuICAgICAgdGhpcy5zdGF0dXMgPSAnRXJyb3IuJztcclxuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcklkKTtcclxuICAgICAgdGhpcy5wbGF5U3RhcnRBY3Rpb24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wbGF5U2VsZWN0aW9uQWN0aW9uLmRpc2FibGVkPXRoaXMuc3RhcnRTZWxlY3Rpb25EaXNhYmxlZCgpXHJcbiAgICAgIHRoaXMucGxheVN0b3BBY3Rpb24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZXJyb3IoKSB7XHJcbiAgICB0aGlzLnN0YXR1cyA9ICdFUlJPUic7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19