@dcl/asset-packs 2.16.2 → 2.16.3

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 (47) hide show
  1. package/bin/index.js +445 -325
  2. package/dist/admin-toolkit-ui/Active.d.ts +3 -2
  3. package/dist/admin-toolkit-ui/Active.js +1 -1
  4. package/dist/admin-toolkit-ui/Card.d.ts +2 -1
  5. package/dist/admin-toolkit-ui/Card.js +1 -1
  6. package/dist/admin-toolkit-ui/FeedbackButton.js +2 -2
  7. package/dist/admin-toolkit-ui/Loading.d.ts +3 -2
  8. package/dist/admin-toolkit-ui/Loading.js +1 -1
  9. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.d.ts +1 -1
  10. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.js +1 -1
  11. package/dist/admin-toolkit-ui/ModerationControl/BanUserDescription.js +1 -1
  12. package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.js +4 -4
  13. package/dist/admin-toolkit-ui/ModerationControl/UsersList.js +16 -14
  14. package/dist/admin-toolkit-ui/ModerationControl/index.d.ts +0 -7
  15. package/dist/admin-toolkit-ui/ModerationControl/index.js +4 -9
  16. package/dist/admin-toolkit-ui/SmartItemsControl.js +15 -33
  17. package/dist/admin-toolkit-ui/TextAnnouncementsControl.js +14 -12
  18. package/dist/admin-toolkit-ui/VideoControl/DclCast/CompactDclCast.js +7 -9
  19. package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.js +4 -3
  20. package/dist/admin-toolkit-ui/VideoControl/DclCast/index.d.ts +0 -14
  21. package/dist/admin-toolkit-ui/VideoControl/DclCast/index.js +32 -136
  22. package/dist/admin-toolkit-ui/VideoControl/DclCast/presentation-detector.d.ts +2 -0
  23. package/dist/admin-toolkit-ui/VideoControl/DclCast/presentation-detector.js +116 -0
  24. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.d.ts +1 -1
  25. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.js +2 -2
  26. package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.d.ts +1 -1
  27. package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.js +2 -2
  28. package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.js +5 -4
  29. package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.js +2 -2
  30. package/dist/admin-toolkit-ui/VideoControl/api.d.ts +5 -2
  31. package/dist/admin-toolkit-ui/VideoControl/api.js +22 -12
  32. package/dist/admin-toolkit-ui/VideoControl/index.js +14 -15
  33. package/dist/admin-toolkit-ui/VideoControl/utils.d.ts +2 -0
  34. package/dist/admin-toolkit-ui/VideoControl/utils.js +15 -3
  35. package/dist/admin-toolkit-ui/actions.d.ts +42 -0
  36. package/dist/admin-toolkit-ui/actions.js +138 -0
  37. package/dist/admin-toolkit-ui/admin-message-bus.js +17 -2
  38. package/dist/admin-toolkit-ui/index.d.ts +0 -3
  39. package/dist/admin-toolkit-ui/index.js +20 -93
  40. package/dist/admin-toolkit-ui/store.d.ts +2 -0
  41. package/dist/admin-toolkit-ui/store.js +45 -0
  42. package/dist/admin-toolkit-ui/types.d.ts +22 -5
  43. package/dist/admin-toolkit-ui/types.js +1 -2
  44. package/dist/bin/index.js +445 -325
  45. package/package.json +1 -1
  46. package/dist/admin-toolkit-ui/RewardsControl.d.ts +0 -7
  47. package/dist/admin-toolkit-ui/RewardsControl.js +0 -95
@@ -11,7 +11,8 @@ import { LoadingDots } from '../../Loading';
11
11
  import { VideoControlVolume } from '../VolumeControl';
12
12
  import { getStreamKey } from '../api';
13
13
  import { createVideoPlayerControls } from '../utils';
14
- import { state } from '../..';
14
+ import { state } from '../../store';
15
+ import { setStream } from '../../actions';
15
16
  import { COLORS } from '..';
16
17
  const STREAM_ICONS = {
17
18
  get eyeShow() {
@@ -183,14 +184,14 @@ export function ShowStreamKey({ engine, video, entity, onReset, endsAt, }) {
183
184
  padding: { left: 8, right: 8 },
184
185
  }, onMouseDown: () => {
185
186
  controls.setSource('');
186
- state.videoControl.selectedStream = undefined;
187
+ setStream(undefined);
187
188
  } })) : (ReactEcs.createElement(Button, { id: "video_control_share_screen_share", value: "<b>Activate</b>", labelTransform: {
188
189
  margin: { left: 20, right: 20 },
189
190
  }, uiTransform: {
190
191
  minWidth: 120,
191
192
  }, fontSize: 16, uiBackground: { color: COLORS.SUCCESS }, color: Color4.Black(), onMouseDown: () => {
192
193
  controls.setSource(LIVEKIT_STREAM_SRC);
193
- state.videoControl.selectedStream = 'live';
194
+ setStream('live');
194
195
  } }))),
195
196
  ReactEcs.createElement(VideoControlVolume, { engine: engine, label: "<b>Stream Volume</b>", entity: entity, video: video }),
196
197
  ReactEcs.createElement(UiEntity, null,
@@ -213,4 +214,4 @@ function formatTimeRemaining(endsAt) {
213
214
  return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
214
215
  }
215
216
  }
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1N0cmVhbUtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9MaXZlU3RyZWFtL1Nob3dTdHJlYW1LZXkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztBQUU1QixNQUFNLFlBQVksR0FBRztJQUNuQixJQUFJLE9BQU87UUFDVCxPQUFPLEdB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3I0IH0gZnJvbSAnQGRjbC9zZGsvbWF0aCc7XG5pbXBvcnQgdHlwZSB7IERlZXBSZWFkb25seU9iamVjdCwgRW50aXR5LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyIH0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IFVpRW50aXR5LCBMYWJlbCB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IGNvcHlUb0NsaXBib2FyZCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuaW1wb3J0IHsgTElWRUtJVF9TVFJFQU1fU1JDIH0gZnJvbSAnLi4vLi4vLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgc3RhcnRUaW1lb3V0LCBzdG9wVGltZW91dCwgc3RhcnRJbnRlcnZhbCwgc3RvcEludGVydmFsIH0gZnJvbSAnLi4vLi4vLi4vdGltZXInO1xuaW1wb3J0IHsgZ2V0Q29udGVudFVybCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgRmVlZGJhY2tCdXR0b24gfSBmcm9tICcuLi8uLi9GZWVkYmFja0J1dHRvbic7XG5pbXBvcnQgeyBnZXRFcnJvckljb24gfSBmcm9tICcuLi8uLi9FcnJvcic7XG5pbXBvcnQgeyBMb2FkaW5nRG90cyB9IGZyb20gJy4uLy4uL0xvYWRpbmcnO1xuaW1wb3J0IHsgVmlkZW9Db250cm9sVm9sdW1lIH0gZnJvbSAnLi4vVm9sdW1lQ29udHJvbCc7XG5pbXBvcnQgeyBnZXRTdHJlYW1LZXkgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgY3JlYXRlVmlkZW9QbGF5ZXJDb250cm9scyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IHsgQ09MT1JTIH0gZnJvbSAnLi4nO1xuXG5jb25zdCBTVFJFQU1fSUNPTlMgPSB7XG4gIGdldCBleWVTaG93KCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2V5ZS5wbmdgO1xuICB9LFxuICBnZXQgZXllSGlkZSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9leWUtb2ZmLnBuZ2A7XG4gIH0sXG59O1xuXG5jb25zdCBBVVRPX0hJREVfRFVSQVRJT05fU0VDT05EUyA9IDMwO1xuY29uc3QgU1RSRUFNX0tFWV9USU1FT1VUX0FDVElPTiA9ICd2aWRlb19jb250cm9sX3N0cmVhbV9rZXlfdGltZW91dCc7XG5jb25zdCBTVFJFQU1fS0VZX0lOVEVSVkFMX0FDVElPTiA9ICd2aWRlb19jb250cm9sX3N0cmVhbV9rZXlfaW50ZXJ2YWwnO1xuY29uc3QgUlRNUF9TRVJWRVJfVVJMID0gJ3J0bXBzOi8vZGNsLnJ0bXAubGl2ZWtpdC5jbG91ZC94JztcblxuZXhwb3J0IGZ1bmN0aW9uIFNob3dTdHJlYW1LZXkoe1xuICBlbmdpbmUsXG4gIHZpZGVvLFxuICBlbnRpdHksXG4gIG9uUmVzZXQsXG4gIGVuZHNBdCxcbn06IHtcbiAgZW5kc0F0OiBudW1iZXI7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG4gIG9uUmVzZXQoKTogdm9pZDtcbn0pIHtcbiAgY29uc3QgY29udHJvbHMgPSBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzKGVudGl0eSwgZW5naW5lKTtcbiAgY29uc3QgW3Nob3dTdHJlYW1rZXksIHNldFNob3dTdHJlYW1rZXldID0gUmVhY3RFY3MudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBSZWFjdEVjcy51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzdHJlYW1LZXksIHNldFN0cmVhbUtleV0gPSBSZWFjdEVjcy51c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFt0aW1lUmVtYWluaW5nLCBzZXRUaW1lUmVtYWluaW5nXSA9IFJlYWN0RWNzLnVzZVN0YXRlKEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTKTtcblxuICAvLyBhdXRvLWhpZGUgc3RyZWFtIGtleSBhZnRlciBzcGVjaWZpZWQgZHVyYXRpb25cbiAgUmVhY3RFY3MudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3RyZWFtS2V5KSB7XG4gICAgICBzZXRUaW1lUmVtYWluaW5nKEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTKTtcblxuICAgICAgc3RhcnRUaW1lb3V0KFxuICAgICAgICBzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSxcbiAgICAgICAgU1RSRUFNX0tFWV9USU1FT1VUX0FDVElPTixcbiAgICAgICAgQVVUT19ISURFX0RVUkFUSU9OX1NFQ09ORFMsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzZXRTdHJlYW1LZXkodW5kZWZpbmVkKTtcbiAgICAgICAgICBzZXRTaG93U3RyZWFta2V5KGZhbHNlKTtcbiAgICAgICAgICBzZXRUaW1lUmVtYWluaW5nKDApO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgc3RhcnRJbnRlcnZhbChzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSwgU1RSRUFNX0tFWV9JTlRFUlZBTF9BQ1RJT04sIDAuMSwgKCkgPT4ge1xuICAgICAgICBzZXRUaW1lUmVtYWluaW5nKHByZXYgPT4gTWF0aC5tYXgoMCwgcHJldiAtIDAuMSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHN0b3BUaW1lb3V0KHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCBTVFJFQU1fS0VZX1RJTUVPVVRfQUNUSU9OKTtcbiAgICAgICAgc3RvcEludGVydmFsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCBTVFJFQU1fS0VZX0lOVEVSVkFMX0FDVElPTik7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lUmVtYWluaW5nKDApO1xuICAgIH1cbiAgfSwgW3N0cmVhbUtleV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nIH19PlxuICAgICAgPExhYmVsXG4gICAgICAgIHZhbHVlPVwiPGI+UlRNUCBTZXJ2ZXI8L2I+XCJcbiAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogMTYsIGJvdHRvbTogOCB9LFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgbWFyZ2luOiB7IGJvdHRvbTogOCwgdG9wOiA4IH0sXG4gICAgICAgICAgaGVpZ2h0OiA0MixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LldoaXRlKCkgfX1cbiAgICAgID5cbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IGxlZnQ6IDE2IH0gfX1cbiAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgdmFsdWU9e2A8Yj4ke1JUTVBfU0VSVkVSX1VSTH08L2I+YH1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgLz5cbiAgICAgICAgPEZlZWRiYWNrQnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2NvcHlfcnRtcF9zZXJ2ZXJcIlxuICAgICAgICAgIHZhbHVlPVwiPGI+Q29weTwvYj5cIlxuICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgICAgcGFkZGluZzogeyBsZWZ0OiA4LCByaWdodDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249e2FzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvcHlUb0NsaXBib2FyZCh7IHRleHQ6IFJUTVBfU0VSVkVSX1VSTCB9KTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT1cIjxiPlN0cmVhbSBLZXk8L2I+XCJcbiAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogMTYsIGJvdHRvbTogOCB9LFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgbWFyZ2luOiB7IGJvdHRvbTogOCwgdG9wOiA4IH0sXG4gICAgICAgICAgaGVpZ2h0OiA0MixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LldoaXRlKCkgfX1cbiAgICAgID5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7bG9hZGluZyA/IChcbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiAxNiB9LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8TG9hZGluZ0RvdHMgZW5naW5lPXtlbmdpbmV9IC8+XG4gICAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8TGFiZWxcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogMTYgfSxcbiAgICAgICAgICAgICAgICBmbGV4U2hyaW5rOiAxLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICAgIHZhbHVlPXtgPGI+JHtzaG93U3RyZWFta2V5ICYmIHN0cmVhbUtleSA/IHN0cmVhbUtleSA6ICcqKioqKioqKioqKionfTwvYj5gfVxuICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGZsZXhTaHJpbms6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDEwIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IHNob3dTdHJlYW1rZXkgJiYgc3RyZWFtS2V5ID8gU1RSRUFNX0lDT05TLmV5ZUhpZGUgOiBTVFJFQU1fSUNPTlMuZXllU2hvdyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY29sb3I6IENvbG9yNC5CbGFjaygpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXthc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghc3RyZWFtS2V5KSB7XG4gICAgICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBbZXJyb3IsIGRhdGFdID0gYXdhaXQgZ2V0U3RyZWFtS2V5KCk7XG4gICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBkYXRhPy5zdHJlYW1pbmdLZXkpIHtcbiAgICAgICAgICAgICAgICAgIHNldFN0cmVhbUtleShkYXRhLnN0cmVhbWluZ0tleSk7XG4gICAgICAgICAgICAgICAgICBzZXRTaG93U3RyZWFta2V5KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRTaG93U3RyZWFta2V5KCFzaG93U3RyZWFta2V5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxGZWVkYmFja0J1dHRvblxuICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2NvcHlfc3RyZWFtX2tleVwiXG4gICAgICAgICAgICB2YWx1ZT1cIjxiPkNvcHk8L2I+XCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgICAgICBwYWRkaW5nOiB7IGxlZnQ6IDgsIHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICAgIG1pbldpZHRoOiA2MCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoc3RyZWFtS2V5KSB7XG4gICAgICAgICAgICAgICAgY29weVRvQ2xpcGJvYXJkKHsgdGV4dDogc3RyZWFtS2V5IH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgW2Vycm9yLCBkYXRhXSA9IGF3YWl0IGdldFN0cmVhbUtleSgpO1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgZGF0YT8uc3RyZWFtaW5nS2V5KSB7XG4gICAgICAgICAgICAgICAgICBzZXRTdHJlYW1LZXkoZGF0YS5zdHJlYW1pbmdLZXkpO1xuICAgICAgICAgICAgICAgICAgY29weVRvQ2xpcGJvYXJkKHsgdGV4dDogZGF0YS5zdHJlYW1pbmdLZXkgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8L1VpRW50aXR5PlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGhlaWdodDogNCxcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiA4IH0sXG4gICAgICAgICAgZGlzcGxheTogc3RyZWFtS2V5ICYmIHRpbWVSZW1haW5pbmcgPiAwICYmIHNob3dTdHJlYW1rZXkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgIH19XG4gICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRkZGRkYxQScpIH19XG4gICAgICA+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogYCR7KHRpbWVSZW1haW5pbmcgLyBBVVRPX0hJREVfRFVSQVRJT05fU0VDT05EUykgKiAxMDB9JWAsXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyMwMEQzRkYnKSB9fVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBoZWlnaHQ6IDQwLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogMTAsIGJvdHRvbTogMTYgfSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2VuZHNBdCA+IERhdGUubm93KCkgPyAoXG4gICAgICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nIH19PlxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIHZhbHVlPVwiU3RyZWFtIGV4cGlyZXMgaW46XCJcbiAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkZGRkZGQjInKX1cbiAgICAgICAgICAgICAgZm9udFNpemU9ezE0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICB2YWx1ZT17Zm9ybWF0VGltZVJlbWFpbmluZyhlbmRzQXQpfVxuICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRkZGRkZCMicpfVxuICAgICAgICAgICAgICBmb250U2l6ZT17MTR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiAxMCB9LFxuICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMixcbiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IENvbG9yNC5HcmVlbigpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogMTUsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNSxcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDQsIHRvcDogNCB9LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICAgIHNyYzogZ2V0RXJyb3JJY29uKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8TGFiZWxcbiAgICAgICAgICAgICAgZm9udFNpemU9ezE0fVxuICAgICAgICAgICAgICB0ZXh0QWxpZ249XCJtaWRkbGUtbGVmdFwiXG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZGMDAwMCcpfVxuICAgICAgICAgICAgICB2YWx1ZT1cIlN0cmVhbSB0aW1lZCBvdXQuIFBsZWFzZSByZXN0YXJ0IHN0cmVhbSBpbiBicm9hZGNhc3Rpbmcgc29mdHdhcmUuXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgKX1cbiAgICAgICAge3ZpZGVvPy5zcmMgPT09IExJVkVLSVRfU1RSRUFNX1NSQyAmJiBzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRTdHJlYW0gPT09ICdsaXZlJyA/IChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfc2hhcmVfc2NyZWVuX2NsZWFyXCJcbiAgICAgICAgICAgIHZhbHVlPVwiPGI+RGVhY3RpdmF0ZTwvYj5cIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDEyMCxcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCwgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICBjb250cm9scy5zZXRTb3VyY2UoJycpO1xuICAgICAgICAgICAgICBzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRTdHJlYW0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3NoYXJlX3NjcmVlbl9zaGFyZVwiXG4gICAgICAgICAgICB2YWx1ZT1cIjxiPkFjdGl2YXRlPC9iPlwiXG4gICAgICAgICAgICBsYWJlbFRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogMjAsIHJpZ2h0OiAyMCB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1pbldpZHRoOiAxMjAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDT0xPUlMuU1VDQ0VTUyB9fVxuICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5CbGFjaygpfVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKExJVkVLSVRfU1RSRUFNX1NSQyk7XG4gICAgICAgICAgICAgIHN0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFN0cmVhbSA9ICdsaXZlJztcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8VmlkZW9Db250cm9sVm9sdW1lXG4gICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICBsYWJlbD1cIjxiPlN0cmVhbSBWb2x1bWU8L2I+XCJcbiAgICAgICAgZW50aXR5PXtlbnRpdHl9XG4gICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgIC8+XG4gICAgICA8VWlFbnRpdHk+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfcmVzZXRfc3RyZWFtX2tleVwiXG4gICAgICAgICAgdmFsdWU9XCI8Yj5SZXNldCBTdHJlYW0gS2V5PC9iPlwiXG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGQjNCM0InKX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4LCB0b3A6IDIwIH0sXG4gICAgICAgICAgICBwYWRkaW5nOiB7IGxlZnQ6IDgsIHJpZ2h0OiA4IH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gb25SZXNldCgpfVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cbiAgICA8L1VpRW50aXR5PlxuICApO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZm9ybWF0IHRpbWUgcmVtYWluaW5nIC0gc2hvd3MgZGF5cyBpZiA+IDEgZGF5LCBvdGhlcndpc2Ugc2hvd3MgaGg6bW06c3NcbmZ1bmN0aW9uIGZvcm1hdFRpbWVSZW1haW5pbmcoZW5kc0F0OiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBjb25zdCB0aW1lUmVtYWluaW5nID0gTWF0aC5tYXgoMCwgZW5kc0F0IC0gbm93KTtcblxuICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcih0aW1lUmVtYWluaW5nIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcblxuICBpZiAoZGF5cyA+PSAxKSB7XG4gICAgcmV0dXJuIGAke2RheXN9ICR7ZGF5cyA9PT0gMSA/ICdkYXknIDogJ2RheXMnfWA7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHRpbWVSZW1haW5pbmcgLyAoMTAwMCAqIDYwICogNjApKTtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigodGltZVJlbWFpbmluZyAlICgxMDAwICogNjAgKiA2MCkpIC8gKDEwMDAgKiA2MCkpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKCh0aW1lUmVtYWluaW5nICUgKDEwMDAgKiA2MCkpIC8gMTAwMCk7XG4gICAgcmV0dXJuIGAke2hvdXJzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHttaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHtzZWNvbmRzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICB9XG59XG4iXX0=
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1N0cmVhbUtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9MaXZlU3RyZWFtL1Nob3dTdHJlYW1LZXkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTVCLE1B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QUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRWhELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUvRCxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNkLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsRCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakUsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDOUgsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJztcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBFbnRpdHksIElFbmdpbmUsIFBCVmlkZW9QbGF5ZXIgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgUmVhY3RFY3MsIHsgVWlFbnRpdHksIExhYmVsIH0gZnJvbSAnQGRjbC9yZWFjdC1lY3MnO1xuaW1wb3J0IHsgY29weVRvQ2xpcGJvYXJkIH0gZnJvbSAnfnN5c3RlbS9SZXN0cmljdGVkQWN0aW9ucyc7XG5pbXBvcnQgeyBMSVZFS0lUX1NUUkVBTV9TUkMgfSBmcm9tICcuLi8uLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBzdGFydFRpbWVvdXQsIHN0b3BUaW1lb3V0LCBzdGFydEludGVydmFsLCBzdG9wSW50ZXJ2YWwgfSBmcm9tICcuLi8uLi8uLi90aW1lcic7XG5pbXBvcnQgeyBnZXRDb250ZW50VXJsIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL0J1dHRvbic7XG5pbXBvcnQgeyBGZWVkYmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL0ZlZWRiYWNrQnV0dG9uJztcbmltcG9ydCB7IGdldEVycm9ySWNvbiB9IGZyb20gJy4uLy4uL0Vycm9yJztcbmltcG9ydCB7IExvYWRpbmdEb3RzIH0gZnJvbSAnLi4vLi4vTG9hZGluZyc7XG5pbXBvcnQgeyBWaWRlb0NvbnRyb2xWb2x1bWUgfSBmcm9tICcuLi9Wb2x1bWVDb250cm9sJztcbmltcG9ydCB7IGdldFN0cmVhbUtleSB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICcuLi8uLi9zdG9yZSc7XG5pbXBvcnQgeyBzZXRTdHJlYW0gfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcbmltcG9ydCB7IENPTE9SUyB9IGZyb20gJy4uJztcblxuY29uc3QgU1RSRUFNX0lDT05TID0ge1xuICBnZXQgZXllU2hvdygpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9leWUucG5nYDtcbiAgfSxcbiAgZ2V0IGV5ZUhpZGUoKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvZXllLW9mZi5wbmdgO1xuICB9LFxufTtcblxuY29uc3QgQVVUT19ISURFX0RVUkFUSU9OX1NFQ09ORFMgPSAzMDtcbmNvbnN0IFNUUkVBTV9LRVlfVElNRU9VVF9BQ1RJT04gPSAndmlkZW9fY29udHJvbF9zdHJlYW1fa2V5X3RpbWVvdXQnO1xuY29uc3QgU1RSRUFNX0tFWV9JTlRFUlZBTF9BQ1RJT04gPSAndmlkZW9fY29udHJvbF9zdHJlYW1fa2V5X2ludGVydmFsJztcbmNvbnN0IFJUTVBfU0VSVkVSX1VSTCA9ICdydG1wczovL2RjbC5ydG1wLmxpdmVraXQuY2xvdWQveCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBTaG93U3RyZWFtS2V5KHtcbiAgZW5naW5lLFxuICB2aWRlbyxcbiAgZW50aXR5LFxuICBvblJlc2V0LFxuICBlbmRzQXQsXG59OiB7XG4gIGVuZHNBdDogbnVtYmVyO1xuICBlbmdpbmU6IElFbmdpbmU7XG4gIGVudGl0eTogRW50aXR5O1xuICB2aWRlbzogRGVlcFJlYWRvbmx5T2JqZWN0PFBCVmlkZW9QbGF5ZXI+IHwgdW5kZWZpbmVkO1xuICBvblJlc2V0KCk6IHZvaWQ7XG59KSB7XG4gIGNvbnN0IGNvbnRyb2xzID0gY3JlYXRlVmlkZW9QbGF5ZXJDb250cm9scyhlbnRpdHksIGVuZ2luZSk7XG4gIGNvbnN0IFtzaG93U3RyZWFta2V5LCBzZXRTaG93U3RyZWFta2V5XSA9IFJlYWN0RWNzLnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3RFY3MudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc3RyZWFtS2V5LCBzZXRTdHJlYW1LZXldID0gUmVhY3RFY3MudXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBbdGltZVJlbWFpbmluZywgc2V0VGltZVJlbWFpbmluZ10gPSBSZWFjdEVjcy51c2VTdGF0ZShBVVRPX0hJREVfRFVSQVRJT05fU0VDT05EUyk7XG5cbiAgLy8gYXV0by1oaWRlIHN0cmVhbSBrZXkgYWZ0ZXIgc3BlY2lmaWVkIGR1cmF0aW9uXG4gIFJlYWN0RWNzLnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0cmVhbUtleSkge1xuICAgICAgc2V0VGltZVJlbWFpbmluZyhBVVRPX0hJREVfRFVSQVRJT05fU0VDT05EUyk7XG5cbiAgICAgIHN0YXJ0VGltZW91dChcbiAgICAgICAgc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHksXG4gICAgICAgIFNUUkVBTV9LRVlfVElNRU9VVF9BQ1RJT04sXG4gICAgICAgIEFVVE9fSElERV9EVVJBVElPTl9TRUNPTkRTLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0U3RyZWFtS2V5KHVuZGVmaW5lZCk7XG4gICAgICAgICAgc2V0U2hvd1N0cmVhbWtleShmYWxzZSk7XG4gICAgICAgICAgc2V0VGltZVJlbWFpbmluZygwKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHN0YXJ0SW50ZXJ2YWwoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHksIFNUUkVBTV9LRVlfSU5URVJWQUxfQUNUSU9OLCAwLjEsICgpID0+IHtcbiAgICAgICAgc2V0VGltZVJlbWFpbmluZyhwcmV2ID0+IE1hdGgubWF4KDAsIHByZXYgLSAwLjEpKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBzdG9wVGltZW91dChzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSwgU1RSRUFNX0tFWV9USU1FT1VUX0FDVElPTik7XG4gICAgICAgIHN0b3BJbnRlcnZhbChzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSwgU1RSRUFNX0tFWV9JTlRFUlZBTF9BQ1RJT04pO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VGltZVJlbWFpbmluZygwKTtcbiAgICB9XG4gIH0sIFtzdHJlYW1LZXldKTtcblxuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9fT5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT1cIjxiPlJUTVAgU2VydmVyPC9iPlwiXG4gICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDE2LCBib3R0b206IDggfSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDgsIHRvcDogOCB9LFxuICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiAxMixcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IENvbG9yNC5XaGl0ZSgpIH19XG4gICAgICA+XG4gICAgICAgIDxMYWJlbFxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IG1hcmdpbjogeyBsZWZ0OiAxNiB9IH19XG4gICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgIHZhbHVlPXtgPGI+JHtSVE1QX1NFUlZFUl9VUkx9PC9iPmB9XG4gICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgIC8+XG4gICAgICAgIDxGZWVkYmFja0J1dHRvblxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9jb3B5X3J0bXBfc2VydmVyXCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPkNvcHk8L2I+XCJcbiAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCwgcmlnaHQ6IDggfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXthc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb3B5VG9DbGlwYm9hcmQoeyB0ZXh0OiBSVE1QX1NFUlZFUl9VUkwgfSk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCI8Yj5TdHJlYW0gS2V5PC9iPlwiXG4gICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDE2LCBib3R0b206IDggfSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDgsIHRvcDogOCB9LFxuICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiAxMixcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IENvbG9yNC5XaGl0ZSgpIH19XG4gICAgICA+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogMTYgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPExvYWRpbmdEb3RzIGVuZ2luZT17ZW5naW5lfSAvPlxuICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDE2IH0sXG4gICAgICAgICAgICAgICAgZmxleFNocmluazogMSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgICB2YWx1ZT17YDxiPiR7c2hvd1N0cmVhbWtleSAmJiBzdHJlYW1LZXkgPyBzdHJlYW1LZXkgOiAnKioqKioqKioqKioqJ308L2I+YH1cbiAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyNSxcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiAxMCB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBzaG93U3RyZWFta2V5ICYmIHN0cmVhbUtleSA/IFNUUkVBTV9JQ09OUy5leWVIaWRlIDogU1RSRUFNX0lDT05TLmV5ZVNob3csXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuQmxhY2soKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXN0cmVhbUtleSkge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgW2Vycm9yLCBkYXRhXSA9IGF3YWl0IGdldFN0cmVhbUtleSgpO1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgZGF0YT8uc3RyZWFtaW5nS2V5KSB7XG4gICAgICAgICAgICAgICAgICBzZXRTdHJlYW1LZXkoZGF0YS5zdHJlYW1pbmdLZXkpO1xuICAgICAgICAgICAgICAgICAgc2V0U2hvd1N0cmVhbWtleSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0U2hvd1N0cmVhbWtleSghc2hvd1N0cmVhbWtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RmVlZGJhY2tCdXR0b25cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9jb3B5X3N0cmVhbV9rZXlcIlxuICAgICAgICAgICAgdmFsdWU9XCI8Yj5Db3B5PC9iPlwiXG4gICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgcGFkZGluZzogeyBsZWZ0OiA4LCByaWdodDogOCB9LFxuICAgICAgICAgICAgICBtaW5XaWR0aDogNjAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249e2FzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHN0cmVhbUtleSkge1xuICAgICAgICAgICAgICAgIGNvcHlUb0NsaXBib2FyZCh7IHRleHQ6IHN0cmVhbUtleSB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtlcnJvciwgZGF0YV0gPSBhd2FpdCBnZXRTdHJlYW1LZXkoKTtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yICYmIGRhdGE/LnN0cmVhbWluZ0tleSkge1xuICAgICAgICAgICAgICAgICAgc2V0U3RyZWFtS2V5KGRhdGEuc3RyZWFtaW5nS2V5KTtcbiAgICAgICAgICAgICAgICAgIGNvcHlUb0NsaXBib2FyZCh7IHRleHQ6IGRhdGEuc3RyZWFtaW5nS2V5IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBoZWlnaHQ6IDQsXG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogOCB9LFxuICAgICAgICAgIGRpc3BsYXk6IHN0cmVhbUtleSAmJiB0aW1lUmVtYWluaW5nID4gMCAmJiBzaG93U3RyZWFta2V5ID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkZGRkZGMUEnKSB9fVxuICAgICAgPlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IGAkeyh0aW1lUmVtYWluaW5nIC8gQVVUT19ISURFX0RVUkFUSU9OX1NFQ09ORFMpICogMTAwfSVgLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjMDBEM0ZGJykgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA0MCxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDEwLCBib3R0b206IDE2IH0sXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtlbmRzQXQgPiBEYXRlLm5vdygpID8gKFxuICAgICAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9fT5cbiAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICB2YWx1ZT1cIlN0cmVhbSBleHBpcmVzIGluOlwiXG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZGRkZGRkIyJyl9XG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8TGFiZWxcbiAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1hdFRpbWVSZW1haW5pbmcoZW5kc0F0KX1cbiAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkZGRkZGQjInKX1cbiAgICAgICAgICAgICAgZm9udFNpemU9ezE0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogMTAgfSxcbiAgICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBDb2xvcjQuR3JlZW4oKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE1LFxuICAgICAgICAgICAgICAgIGhlaWdodDogMTUsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA0LCB0b3A6IDQgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgICBzcmM6IGdldEVycm9ySWNvbigpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICAgICAgdGV4dEFsaWduPVwibWlkZGxlLWxlZnRcIlxuICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRjAwMDAnKX1cbiAgICAgICAgICAgICAgdmFsdWU9XCJTdHJlYW0gdGltZWQgb3V0LiBQbGVhc2UgcmVzdGFydCBzdHJlYW0gaW4gYnJvYWRjYXN0aW5nIHNvZnR3YXJlLlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICl9XG4gICAgICAgIHt2aWRlbz8uc3JjID09PSBMSVZFS0lUX1NUUkVBTV9TUkMgJiYgc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkU3RyZWFtID09PSAnbGl2ZScgPyAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3NoYXJlX3NjcmVlbl9jbGVhclwiXG4gICAgICAgICAgICB2YWx1ZT1cIjxiPkRlYWN0aXZhdGU8L2I+XCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1pbldpZHRoOiAxMjAsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgICAgICBwYWRkaW5nOiB7IGxlZnQ6IDgsIHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKCcnKTtcbiAgICAgICAgICAgICAgc2V0U3RyZWFtKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3NoYXJlX3NjcmVlbl9zaGFyZVwiXG4gICAgICAgICAgICB2YWx1ZT1cIjxiPkFjdGl2YXRlPC9iPlwiXG4gICAgICAgICAgICBsYWJlbFRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogMjAsIHJpZ2h0OiAyMCB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1pbldpZHRoOiAxMjAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDT0xPUlMuU1VDQ0VTUyB9fVxuICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5CbGFjaygpfVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKExJVkVLSVRfU1RSRUFNX1NSQyk7XG4gICAgICAgICAgICAgIHNldFN0cmVhbSgnbGl2ZScpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDxWaWRlb0NvbnRyb2xWb2x1bWVcbiAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgIGxhYmVsPVwiPGI+U3RyZWFtIFZvbHVtZTwvYj5cIlxuICAgICAgICBlbnRpdHk9e2VudGl0eX1cbiAgICAgICAgdmlkZW89e3ZpZGVvfVxuICAgICAgLz5cbiAgICAgIDxVaUVudGl0eT5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9yZXNldF9zdHJlYW1fa2V5XCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPlJlc2V0IFN0cmVhbSBLZXk8L2I+XCJcbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZCM0IzQicpfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDgsIHRvcDogMjAgfSxcbiAgICAgICAgICAgIHBhZGRpbmc6IHsgbGVmdDogOCwgcmlnaHQ6IDggfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiBvblJlc2V0KCl9XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgIDwvVWlFbnRpdHk+XG4gICk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBmb3JtYXQgdGltZSByZW1haW5pbmcgLSBzaG93cyBkYXlzIGlmID4gMSBkYXksIG90aGVyd2lzZSBzaG93cyBoaDptbTpzc1xuZnVuY3Rpb24gZm9ybWF0VGltZVJlbWFpbmluZyhlbmRzQXQ6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGNvbnN0IHRpbWVSZW1haW5pbmcgPSBNYXRoLm1heCgwLCBlbmRzQXQgLSBub3cpO1xuXG4gIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKHRpbWVSZW1haW5pbmcgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuXG4gIGlmIChkYXlzID49IDEpIHtcbiAgICByZXR1cm4gYCR7ZGF5c30gJHtkYXlzID09PSAxID8gJ2RheScgOiAnZGF5cyd9YDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IodGltZVJlbWFpbmluZyAvICgxMDAwICogNjAgKiA2MCkpO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0aW1lUmVtYWluaW5nICUgKDEwMDAgKiA2MCAqIDYwKSkgLyAoMTAwMCAqIDYwKSk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRpbWVSZW1haW5pbmcgJSAoMTAwMCAqIDYwKSkgLyAxMDAwKTtcbiAgICByZXR1cm4gYCR7aG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke21pbnV0ZXMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke3NlY29uZHMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@ import ReactEcs, { UiEntity, Label } from '@dcl/react-ecs';
3
3
  import { openExternalUrl } from '~system/RestrictedActions';
4
4
  import { getComponents } from '../../../definitions';
5
5
  import { ICONS } from '..';
6
- import { state } from '../..';
6
+ import { state } from '../../store';
7
7
  import { getStreamKey } from '../api';
8
8
  import { Header } from '../../Header';
9
9
  import { LoadingDots } from '../../Loading';
@@ -60,4 +60,4 @@ export function LiveStream({ engine, entity, video, }) {
60
60
  loading ? (ReactEcs.createElement(LoadingDots, { uiTransform: { minHeight: 400 }, engine: engine })) : hasStreamKey ? (ReactEcs.createElement(ShowStreamKey, { endsAt: streamKeyEndsAt ?? 0, engine: engine, entity: entity, video: video, onReset: () => setResetStreamKey(true) })) : (ReactEcs.createElement(GenerateStreamKey, { engine: engine, onGenerate: () => setHasStreamKey(true) })),
61
61
  !hasStreamKey && (ReactEcs.createElement(Label, { fontSize: 14, color: Color4.fromHexString('#FF2D55'), value: "Do not share your stream key with anyone, and be careful not to display it on screen while streaming." }))));
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvTGl2ZVN0cmVhbS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDM0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsZ0ZBQWdGLENBQUM7QUFFbkYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxFQUN6QixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssR0FLTjtJQUNDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbEYsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUMxRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDbEYsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBRWxELFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ3RCLEtBQUssVUFBVSxXQUFXO1lBQ3hCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sWUFBWSxFQUFFLENBQUM7WUFDM0MsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbkYsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO2dCQUNyQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDO2dCQUN4QyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUNELFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsV0FBVyxFQUFFLENBQUM7SUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sQ0FDTCx1QkFBQywyQkFBMkIsSUFDMUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ1osaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxHQUNELENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQ0wsdUJBQUMsUUFBUSxJQUFDLFdBQVcsRUFBRSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUMvRCx1QkFBQyxRQUFRLElBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFO1lBQ3ZFLHVCQUFDLE1BQU0sSUFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFDMUIsS0FBSyxFQUFDLFFBQVEsR0FDZDtZQUNGLHVCQUFDLFFBQVEsSUFDUCxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixFQUFFLENBQUMsRUFDbEUsV0FBVyxFQUFFO29CQUNYLEtBQUssRUFBRSxFQUFFO29CQUNULE1BQU0sRUFBRSxFQUFFO29CQUNWLFVBQVUsRUFBRSxRQUFRO2lCQUNyQixFQUNELFlBQVksRUFBRTtvQkFDWixXQUFXLEVBQUUsU0FBUztvQkFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUU7b0JBQ3JCLE9BQU8sRUFBRTt3QkFDUCxHQUFHLEVBQUUsV0FBVyxFQUFFO3FCQUNuQjtpQkFDRixHQUNELENBQ087UUFDWCx1QkFBQyxLQUFLLElBQ0osU0FBUyxFQUFDLGFBQWEsRUFDdkIsS0FBSyxFQUFDLDJHQUEyRyxFQUNqSCxLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFDdEMsUUFBUSxFQUFFLEVBQUUsR0FDWjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDVCx1QkFBQyxXQUFXLElBQ1YsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUMvQixNQUFNLEVBQUUsTUFBTSxHQUNkLENBQ0gsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNqQix1QkFBQyxhQUFhLElBQ1osTUFBTSxFQUFFLGVBQWUsSUFBSSxDQUFDLEVBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsTUFBTSxFQUFFLE1BQU0sRUFDZCxLQUFLLEVBQUUsS0FBSyxFQUNaLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FDdEMsQ0FDSCxDQUFDLENBQUMsQ0FBQyxDQUNGLHVCQUFDLGlCQUFpQixJQUNoQixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQ3ZDLENBQ0g7UUFDQSxDQUFDLFlBQVksSUFBSSxDQUNoQix1QkFBQyxLQUFLLElBQ0osUUFBUSxFQUFFLEVBQUUsRUFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFDdEMsS0FBSyxFQUFDLHVHQUF1RyxHQUM3RyxDQUNILENBQ1EsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IFVpRW50aXR5LCBMYWJlbCB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBFbnRpdHksIElFbmdpbmUsIFBCVmlkZW9QbGF5ZXIgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgeyBvcGVuRXh0ZXJuYWxVcmwgfSBmcm9tICd+c3lzdGVtL1Jlc3RyaWN0ZWRBY3Rpb25zJztcbmltcG9ydCB7IGdldENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBJQ09OUyB9IGZyb20gJy4uJztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IHsgZ2V0U3RyZWFtS2V5IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gJy4uLy4uL0hlYWRlcic7XG5pbXBvcnQgeyBMb2FkaW5nRG90cyB9IGZyb20gJy4uLy4uL0xvYWRpbmcnO1xuaW1wb3J0IHsgZ2V0SGVscEljb24gfSBmcm9tICcuLi9WaWRlb1VybCc7XG5pbXBvcnQgeyBTaG93U3RyZWFtS2V5IH0gZnJvbSAnLi9TaG93U3RyZWFtS2V5JztcbmltcG9ydCB7IEdlbmVyYXRlU3RyZWFtS2V5IH0gZnJvbSAnLi9HZW5lcmF0ZVN0cmVhbUtleSc7XG5pbXBvcnQgeyBEZWxldGVTdHJlYW1LZXlDb25maXJtYXRpb24gfSBmcm9tICcuL0RlbGV0ZVN0cmVhbUtleSc7XG5cbmV4cG9ydCBjb25zdCBMSVZFS0lUX1NUUkVBTV9TUkMgPSAnbGl2ZWtpdC12aWRlbzovL2N1cnJlbnQtc3RyZWFtJztcbmV4cG9ydCBjb25zdCBTVFJFQU1JTkdfU1VQUE9SVF9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmRlY2VudHJhbGFuZC5vcmcvY3JlYXRvci9zY2VuZS1lZGl0b3Ivb3BlcmF0ZS1saXZlL2xpdmUtc3RyZWFtaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIExpdmVTdHJlYW0oe1xuICBlbmdpbmUsXG4gIGVudGl0eSxcbiAgdmlkZW8sXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG59KSB7XG4gIGNvbnN0IFtzaG93UmVzZXRTdHJlYW1LZXksIHNldFJlc2V0U3RyZWFtS2V5XSA9IFJlYWN0RWNzLnVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbaGFzU3RyZWFtS2V5LCBzZXRIYXNTdHJlYW1LZXldID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCB7IFZpZGVvQ29udHJvbFN0YXRlIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0T3JOdWxsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgY29uc3Qgc3RyZWFtS2V5RW5kc0F0ID0gdmlkZW9Db250cm9sU3RhdGU/LmVuZHNBdDtcblxuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGFzeW5jIGZ1bmN0aW9uIHN0cmVhbUtleUZuKCkge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IFtlcnJvciwgZGF0YV0gPSBhd2FpdCBnZXRTdHJlYW1LZXkoKTtcbiAgICAgIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0TXV0YWJsZShzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gdW5kZWZpbmVkO1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gZGF0YT8uZW5kc0F0O1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkodHJ1ZSk7XG4gICAgICB9XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gICAgc3RyZWFtS2V5Rm4oKTtcbiAgfSwgW10pO1xuXG4gIGlmIChzaG93UmVzZXRTdHJlYW1LZXkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPERlbGV0ZVN0cmVhbUtleUNvbmZpcm1hdGlvblxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgb25DYW5jZWw9eygpID0+IHNldFJlc2V0U3RyZWFtS2V5KGZhbHNlKX1cbiAgICAgICAgb25SZXNldD17KCkgPT4ge1xuICAgICAgICAgIHNldFJlc2V0U3RyZWFtS2V5KGZhbHNlKTtcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IHdpZHRoOiAnMTAwJScsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfX0+XG4gICAgICAgIDxIZWFkZXJcbiAgICAgICAgICBpY29uU3JjPXtJQ09OUy5MSVZFX1NPVVJDRX1cbiAgICAgICAgICB0aXRsZT1cIlN0cmVhbVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiBvcGVuRXh0ZXJuYWxVcmwoeyB1cmw6IFNUUkVBTUlOR19TVVBQT1JUX1VSTCB9KX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IGdldEhlbHBJY29uKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHRleHRBbGlnbj1cIm1pZGRsZS1sZWZ0XCJcbiAgICAgICAgdmFsdWU9XCJVc2UgdGhlIFJUTVAgc2VydmVyIGFuZCBzdHJlYW0ga2V5IGJlbG93IGluIHlvdXIgYnJvYWRjYXN0aW5nIHNvZnR3YXJlIHRvIHN0YXJ0IHN0cmVhbWluZyB0byB0aGlzIHNjcmVlbi5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgLz5cbiAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICA8TG9hZGluZ0RvdHNcbiAgICAgICAgICB1aVRyYW5zZm9ybT17eyBtaW5IZWlnaHQ6IDQwMCB9fVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAvPlxuICAgICAgKSA6IGhhc1N0cmVhbUtleSA/IChcbiAgICAgICAgPFNob3dTdHJlYW1LZXlcbiAgICAgICAgICBlbmRzQXQ9e3N0cmVhbUtleUVuZHNBdCA/PyAwfVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIGVudGl0eT17ZW50aXR5fVxuICAgICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgICBvblJlc2V0PXsoKSA9PiBzZXRSZXNldFN0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxHZW5lcmF0ZVN0cmVhbUtleVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIG9uR2VuZXJhdGU9eygpID0+IHNldEhhc1N0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7IWhhc1N0cmVhbUtleSAmJiAoXG4gICAgICAgIDxMYWJlbFxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRjJENTUnKX1cbiAgICAgICAgICB2YWx1ZT1cIkRvIG5vdCBzaGFyZSB5b3VyIHN0cmVhbSBrZXkgd2l0aCBhbnlvbmUsIGFuZCBiZSBjYXJlZnVsIG5vdCB0byBkaXNwbGF5IGl0IG9uIHNjcmVlbiB3aGlsZSBzdHJlYW1pbmcuXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvTGl2ZVN0cmVhbS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDM0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsZ0ZBQWdGLENBQUM7QUFFbkYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxFQUN6QixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssR0FLTjtJQUNDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxp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WjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDVCx1QkFBQyxXQUFXLElBQ1YsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUMvQixNQUFNLEVBQUUsTUFBTSxHQUNkLENBQ0gsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNqQix1QkFBQyxhQUFhLElBQ1osTUFBTSxFQUFFLGVBQWUsSUFBSSxDQUFDLEVBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsTUFBTSxFQUFFLE1BQU0sRUFDZCxLQUFLLEVBQUUsS0FBSyxFQUNaLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FDdEMsQ0FDSCxDQUFDLENBQUMsQ0FBQyxDQUNGLHVCQUFDLGlCQUFpQixJQUNoQixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQ3ZDLENBQ0g7UUFDQSxDQUFDLFlBQVksSUFBSSxDQUNoQix1QkFBQyxLQUFLLElBQ0osUUFBUSxFQUFFLEVBQUUsRUFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFDdEMsS0FBSyxFQUFDLHVHQUF1RyxHQUM3RyxDQUNILENBQ1EsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IFVpRW50aXR5LCBMYWJlbCB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBFbnRpdHksIElFbmdpbmUsIFBCVmlkZW9QbGF5ZXIgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgeyBvcGVuRXh0ZXJuYWxVcmwgfSBmcm9tICd+c3lzdGVtL1Jlc3RyaWN0ZWRBY3Rpb25zJztcbmltcG9ydCB7IGdldENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBJQ09OUyB9IGZyb20gJy4uJztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnLi4vLi4vc3RvcmUnO1xuaW1wb3J0IHsgZ2V0U3RyZWFtS2V5IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gJy4uLy4uL0hlYWRlcic7XG5pbXBvcnQgeyBMb2FkaW5nRG90cyB9IGZyb20gJy4uLy4uL0xvYWRpbmcnO1xuaW1wb3J0IHsgZ2V0SGVscEljb24gfSBmcm9tICcuLi9WaWRlb1VybCc7XG5pbXBvcnQgeyBTaG93U3RyZWFtS2V5IH0gZnJvbSAnLi9TaG93U3RyZWFtS2V5JztcbmltcG9ydCB7IEdlbmVyYXRlU3RyZWFtS2V5IH0gZnJvbSAnLi9HZW5lcmF0ZVN0cmVhbUtleSc7XG5pbXBvcnQgeyBEZWxldGVTdHJlYW1LZXlDb25maXJtYXRpb24gfSBmcm9tICcuL0RlbGV0ZVN0cmVhbUtleSc7XG5cbmV4cG9ydCBjb25zdCBMSVZFS0lUX1NUUkVBTV9TUkMgPSAnbGl2ZWtpdC12aWRlbzovL2N1cnJlbnQtc3RyZWFtJztcbmV4cG9ydCBjb25zdCBTVFJFQU1JTkdfU1VQUE9SVF9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmRlY2VudHJhbGFuZC5vcmcvY3JlYXRvci9zY2VuZS1lZGl0b3Ivb3BlcmF0ZS1saXZlL2xpdmUtc3RyZWFtaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIExpdmVTdHJlYW0oe1xuICBlbmdpbmUsXG4gIGVudGl0eSxcbiAgdmlkZW8sXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG59KSB7XG4gIGNvbnN0IFtzaG93UmVzZXRTdHJlYW1LZXksIHNldFJlc2V0U3RyZWFtS2V5XSA9IFJlYWN0RWNzLnVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbaGFzU3RyZWFtS2V5LCBzZXRIYXNTdHJlYW1LZXldID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCB7IFZpZGVvQ29udHJvbFN0YXRlIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0T3JOdWxsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgY29uc3Qgc3RyZWFtS2V5RW5kc0F0ID0gdmlkZW9Db250cm9sU3RhdGU/LmVuZHNBdDtcblxuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGFzeW5jIGZ1bmN0aW9uIHN0cmVhbUtleUZuKCkge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IFtlcnJvciwgZGF0YV0gPSBhd2FpdCBnZXRTdHJlYW1LZXkoKTtcbiAgICAgIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0TXV0YWJsZShzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gdW5kZWZpbmVkO1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gZGF0YT8uZW5kc0F0O1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkodHJ1ZSk7XG4gICAgICB9XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gICAgc3RyZWFtS2V5Rm4oKTtcbiAgfSwgW10pO1xuXG4gIGlmIChzaG93UmVzZXRTdHJlYW1LZXkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPERlbGV0ZVN0cmVhbUtleUNvbmZpcm1hdGlvblxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgb25DYW5jZWw9eygpID0+IHNldFJlc2V0U3RyZWFtS2V5KGZhbHNlKX1cbiAgICAgICAgb25SZXNldD17KCkgPT4ge1xuICAgICAgICAgIHNldFJlc2V0U3RyZWFtS2V5KGZhbHNlKTtcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IHdpZHRoOiAnMTAwJScsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfX0+XG4gICAgICAgIDxIZWFkZXJcbiAgICAgICAgICBpY29uU3JjPXtJQ09OUy5MSVZFX1NPVVJDRX1cbiAgICAgICAgICB0aXRsZT1cIlN0cmVhbVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiBvcGVuRXh0ZXJuYWxVcmwoeyB1cmw6IFNUUkVBTUlOR19TVVBQT1JUX1VSTCB9KX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IGdldEhlbHBJY29uKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHRleHRBbGlnbj1cIm1pZGRsZS1sZWZ0XCJcbiAgICAgICAgdmFsdWU9XCJVc2UgdGhlIFJUTVAgc2VydmVyIGFuZCBzdHJlYW0ga2V5IGJlbG93IGluIHlvdXIgYnJvYWRjYXN0aW5nIHNvZnR3YXJlIHRvIHN0YXJ0IHN0cmVhbWluZyB0byB0aGlzIHNjcmVlbi5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgLz5cbiAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICA8TG9hZGluZ0RvdHNcbiAgICAgICAgICB1aVRyYW5zZm9ybT17eyBtaW5IZWlnaHQ6IDQwMCB9fVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAvPlxuICAgICAgKSA6IGhhc1N0cmVhbUtleSA/IChcbiAgICAgICAgPFNob3dTdHJlYW1LZXlcbiAgICAgICAgICBlbmRzQXQ9e3N0cmVhbUtleUVuZHNBdCA/PyAwfVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIGVudGl0eT17ZW50aXR5fVxuICAgICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgICBvblJlc2V0PXsoKSA9PiBzZXRSZXNldFN0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxHZW5lcmF0ZVN0cmVhbUtleVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIG9uR2VuZXJhdGU9eygpID0+IHNldEhhc1N0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7IWhhc1N0cmVhbUtleSAmJiAoXG4gICAgICAgIDxMYWJlbFxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRjJENTUnKX1cbiAgICAgICAgICB2YWx1ZT1cIkRvIG5vdCBzaGFyZSB5b3VyIHN0cmVhbSBrZXkgd2l0aCBhbnlvbmUsIGFuZCBiZSBjYXJlZnVsIG5vdCB0byBkaXNwbGF5IGl0IG9uIHNjcmVlbiB3aGlsZSBzdHJlYW1pbmcuXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
@@ -31,9 +31,12 @@ export type DclCastTracksResponse = {
31
31
  }[];
32
32
  };
33
33
  export declare function getDclCastInfo(): Promise<Result<DclCastResponse, string>>;
34
- export declare function getPresenters(): Promise<Result<string[], string>>;
34
+ export type PresentersResponse = {
35
+ presenters: string[];
36
+ };
37
+ export declare function getPresenters(): Promise<Result<PresentersResponse, string>>;
35
38
  export declare function promotePresenter(address: string): Promise<Result<void, string>>;
36
- export declare function ensurePresenterRole(playerAddress: string): Promise<void>;
39
+ export declare function ensurePresenterRole(playerAddress: string): Promise<boolean>;
37
40
  type PresentationBotTokenResponse = {
38
41
  url: string;
39
42
  token: string;
@@ -35,17 +35,16 @@ export async function promotePresenter(address) {
35
35
  });
36
36
  }
37
37
  export async function ensurePresenterRole(playerAddress) {
38
- const [error, presenters] = await getPresenters();
39
- console.log('[DclCast] ensurePresenterRole - error:', error, 'presenters:', JSON.stringify(presenters), 'playerAddress:', playerAddress);
40
- if (error || !presenters)
41
- return;
38
+ const [error, response] = await getPresenters();
39
+ if (error || !response)
40
+ return false;
42
41
  const addr = playerAddress.toLowerCase();
43
- const isPresenter = Array.isArray(presenters) ? presenters.includes(addr) : false;
44
- console.log('[DclCast] isPresenter:', isPresenter, 'addr:', addr);
45
- if (!isPresenter) {
46
- const [promoteError] = await promotePresenter(addr);
47
- console.log('[DclCast] promotePresenter result - error:', promoteError);
48
- }
42
+ const presenters = Array.isArray(response.presenters) ? response.presenters : [];
43
+ const isPresenter = presenters.some(p => p.toLowerCase() === addr);
44
+ if (isPresenter)
45
+ return true;
46
+ const [promoteError] = await promotePresenter(addr);
47
+ return !promoteError;
49
48
  }
50
49
  export async function getPresentationBotToken(streamingKey) {
51
50
  return wrapSignedFetch({
@@ -138,9 +137,20 @@ export function requestPresentationState() {
138
137
  data: JSON.stringify({ type: 'presentation:get-state' }),
139
138
  });
140
139
  }
140
+ function isRecord(value) {
141
+ return typeof value === 'object' && value !== null;
142
+ }
143
+ function extractMessages(response) {
144
+ const raw = Array.isArray(response)
145
+ ? response
146
+ : isRecord(response) && Array.isArray(response.messages)
147
+ ? response.messages
148
+ : [];
149
+ return raw.filter((m) => isRecord(m) && typeof m.data === 'string');
150
+ }
141
151
  export async function consumePresentationMessages() {
142
152
  try {
143
- const { messages } = await consumeMessages({ topic: PRESENTATION_TOPIC });
153
+ const messages = extractMessages(await consumeMessages({ topic: PRESENTATION_TOPIC }));
144
154
  let latestState;
145
155
  for (const msg of messages) {
146
156
  try {
@@ -205,4 +215,4 @@ export function stopPresentation() {
205
215
  data: JSON.stringify({ type: 'presentation:stop' }),
206
216
  });
207
217
  }
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkbWluLXRvb2xraXQtdWkvVmlkZW9Db250cm9sL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsZUFBZSxHQUNoQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNsQixVQUFVLEVBQUUseUNBQXlDLFNBQVMsRUFBRSxzQkFBc0I7SUFDdEYsaUJBQWlCLEVBQUUseUNBQXlDLFNBQVMsRUFBRSw0QkFBNEI7SUFDbkcsVUFBVSxFQUFFLHlDQUF5QyxTQUFTLEVBQUUsa0JBQWtCO0lBQ2xGLHNCQUFzQixFQUFFLHlDQUF5QyxTQUFTLEVBQUUsOEJBQThCO0lBQzFHLG1CQUFtQixFQUFFLCtDQUErQyxTQUFTLEVBQUUsZ0JBQWdCO0NBQ2hHLENBQUMsQ0FBQztBQW1CSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVk7SUFDaEMsT0FBTyxlQUFlLENBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDL0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCO0lBQ3JDLE9BQU8sZUFBZSxDQUNwQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDakUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlO0lBQ25DLE9BQU8sZUFBZSxDQUFvQjtRQUN4QyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsVUFBVTtRQUN0QixJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7S0FDeEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYztJQUNsQyxPQUFPLGVBQWUsQ0FDcEIsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2hFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUN0QixDQUFDO0FBQ0osQ0FBQztBQWNELE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYztJQUNsQyxPQUFPLGVBQWUsQ0FBa0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3BHLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWE7SUFDakMsT0FBTyxlQUFlLENBQVcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxPQUFlO0lBQ3BELE9BQU8sZUFBZSxDQUFPO1FBQzNCLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7UUFDdEMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO0tBQ3JDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLGFBQXFCO0lBQzdELE1BQU0sQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUcsTUFBTSxhQUFhLEVBQUUsQ0FBQztJQUNsRCxPQUFPLENBQUMsR0FBRyxDQUNULHdDQUF3QyxFQUN4QyxLQUFLLEVBQ0wsYUFBYSxFQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQzFCLGdCQUFnQixFQUNoQixhQUFhLENBQ2QsQ0FBQztJQUNGLElBQUksS0FBSyxJQUFJLENBQUMsVUFBVTtRQUFFLE9BQU87SUFFakMsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsRixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFbEUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxNQUFNLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQztBQUNILENBQUM7QUFRRCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUMzQyxZQUFvQjtJQUVwQixPQUFPLGVBQWUsQ0FDcEI7UUFDRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsc0JBQXNCO1FBQ2xDLElBQUksRUFBRTtZQUNKLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1lBQy9DLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUM7U0FDdkM7S0FDRixFQUNELEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEdBQVcsRUFDWCxZQUFvQixFQUNwQixVQUFrQjtJQUVsQixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRTtZQUN2RCxNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7U0FDeEQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxPQUFPLENBQUMsSUFBSSxJQUFJLDhCQUE4QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQTRCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBRSxLQUFlLENBQUMsT0FBTyxJQUFJLDhCQUE4QixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7QUFDSCxDQUFDO0FBZ0JELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUEyQjtJQUN4RCxDQUFDLEVBQUUsUUFBUTtJQUNYLENBQUMsRUFBRSxRQUFRO0lBQ1gsQ0FBQyxFQUFFLGNBQWM7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUVsRyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUMxQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUNuQyxNQUFNLHVCQUF1QixHQUFHLGtCQUFrQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBd0I7SUFDM0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssd0JBQXdCLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUN4RixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF3QjtJQUMvRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztJQUMzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNsQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sY0FBYyxDQUFDO0lBQ25ELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCO0lBQ3BDLE1BQU0sY0FBYyxHQUFHLE1BQU0scUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLGNBQWM7UUFBRSxPQUFPO0lBQzVCLE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQy9CLENBQUMsTUFBaUYsRUFBRSxFQUFFO1FBQ3BGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsT0FBTztZQUNMLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUNwQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLEdBQUcsV0FBVyxNQUFNLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7U0FDcEUsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztTQUM1QyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBRVQsd0JBQXdCLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0I7SUFDdEMsV0FBVyxDQUFDO1FBQ1YsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxDQUFDO0tBQ3pELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQjtJQUcvQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLElBQUksV0FBc0QsQ0FBQztRQUMzRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7b0JBQ3pDLFdBQVcsR0FBRzt3QkFDWixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7d0JBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO3dCQUN6QixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7d0JBQ2pDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTt3QkFDN0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO3dCQUN6QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFO3dCQUNyQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNO3FCQUN4QyxDQUFDO2dCQUNKLENBQUM7cUJBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFzQixFQUFFLENBQUM7b0JBQ2xELFdBQVcsR0FBRyxTQUFTLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDO1lBQUMsTUFBTSxDQUFDO1lBRVQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUVmLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDdkIsV0FBVyxDQUFDO1FBQ1YsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7S0FDeEUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLFdBQVcsQ0FBQztRQUNWLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0tBQ3hFLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsVUFBa0I7SUFDdEQsV0FBVyxDQUFDO1FBQ1YsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztLQUN0RSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxXQUFXLENBQUM7UUFDVixLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFLENBQUM7S0FDM0QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsV0FBVyxDQUFDO1FBQ1YsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxDQUFDO0tBQzFELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLFdBQVcsQ0FBQztRQUNWLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztLQUNwRCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0QWN0aXZlVmlkZW9TdHJlYW1zLFxuICBzdWJzY3JpYmVUb1RvcGljLFxuICBwdWJsaXNoRGF0YSxcbiAgY29uc3VtZU1lc3NhZ2VzLFxufSBmcm9tICd+c3lzdGVtL0NvbW1zQXBpJztcbmltcG9ydCB7IGdldERvbWFpbiwgd3JhcFNpZ25lZEZldGNoIH0gZnJvbSAnLi4vZmV0Y2gtdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSZXN1bHQgfSBmcm9tICcuLi9mZXRjaC11dGlscyc7XG5pbXBvcnQgdHlwZSB7IFByZXNlbnRhdGlvblN0YXRlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBVUkxTID0gKCkgPT4gKHtcbiAgU1RSRUFNX0tFWTogYGh0dHBzOi8vY29tbXMtZ2F0ZWtlZXBlci5kZWNlbnRyYWxhbmQuJHtnZXREb21haW4oKX0vc2NlbmUtc3RyZWFtLWFjY2Vzc2AsXG4gIEdFVF9EQ0xfQ0FTVF9JTkZPOiBgaHR0cHM6Ly9jb21tcy1nYXRla2VlcGVyLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9jYXN0L2dlbmVyYXRlLXN0cmVhbS1saW5rYCxcbiAgUFJFU0VOVEVSUzogYGh0dHBzOi8vY29tbXMtZ2F0ZWtlZXBlci5kZWNlbnRyYWxhbmQuJHtnZXREb21haW4oKX0vY2FzdC9wcmVzZW50ZXJzYCxcbiAgUFJFU0VOVEFUSU9OX0JPVF9UT0tFTjogYGh0dHBzOi8vY29tbXMtZ2F0ZWtlZXBlci5kZWNlbnRyYWxhbmQuJHtnZXREb21haW4oKX0vY2FzdC9wcmVzZW50YXRpb24tYm90LXRva2VuYCxcbiAgUFJFU0VOVEFUSU9OX1NFUlZFUjogYGh0dHBzOi8vY2FzdC1wcmVzZW50ZXItc2VydmljZS5kZWNlbnRyYWxhbmQuJHtnZXREb21haW4oKX0vcHJlc2VudGF0aW9uc2AsXG59KTtcblxudHlwZSBTdHJlYW1LZXlSZXNwb25zZSA9IHtcbiAgc3RyZWFtaW5nVXJsOiBzdHJpbmc7XG4gIHN0cmVhbWluZ0tleTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IG51bWJlcjtcbiAgZW5kc0F0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBEY2xDYXN0UmVzcG9uc2UgPSB7XG4gIHN0cmVhbUxpbms6IHN0cmluZztcbiAgd2F0Y2hlckxpbms6IHN0cmluZztcbiAgc3RyZWFtaW5nS2V5OiBzdHJpbmc7XG4gIHBsYWNlSWQ6IHN0cmluZztcbiAgcGxhY2VOYW1lOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xuICBleHBpcmVzSW5EYXlzOiBudW1iZXI7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U3RyZWFtS2V5KCk6IFByb21pc2U8UmVzdWx0PFN0cmVhbUtleVJlc3BvbnNlLCBzdHJpbmc+PiB7XG4gIHJldHVybiB3cmFwU2lnbmVkRmV0Y2g8U3RyZWFtS2V5UmVzcG9uc2U+KHsgdXJsOiBVUkxTKCkuU1RSRUFNX0tFWSB9LCB7IHRvQ2FtZWxDYXNlOiB0cnVlIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVTdHJlYW1LZXkoKTogUHJvbWlzZTxSZXN1bHQ8U3RyZWFtS2V5UmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxTdHJlYW1LZXlSZXNwb25zZT4oXG4gICAgeyB1cmw6IFVSTFMoKS5TVFJFQU1fS0VZLCBpbml0OiB7IG1ldGhvZDogJ1BPU1QnLCBoZWFkZXJzOiB7fSB9IH0sXG4gICAgeyB0b0NhbWVsQ2FzZTogdHJ1ZSB9LFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV2b2tlU3RyZWFtS2V5KCk6IFByb21pc2U8UmVzdWx0PFN0cmVhbUtleVJlc3BvbnNlLCBzdHJpbmc+PiB7XG4gIHJldHVybiB3cmFwU2lnbmVkRmV0Y2g8U3RyZWFtS2V5UmVzcG9uc2U+KHtcbiAgICB1cmw6IFVSTFMoKS5TVFJFQU1fS0VZLFxuICAgIGluaXQ6IHsgbWV0aG9kOiAnREVMRVRFJywgaGVhZGVyczoge30gfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNldFN0cmVhbUtleSgpOiBQcm9taXNlPFJlc3VsdDxTdHJlYW1LZXlSZXNwb25zZSwgc3RyaW5nPj4ge1xuICByZXR1cm4gd3JhcFNpZ25lZEZldGNoPFN0cmVhbUtleVJlc3BvbnNlPihcbiAgICB7IHVybDogVVJMUygpLlNUUkVBTV9LRVksIGluaXQ6IHsgbWV0aG9kOiAnUFVUJywgaGVhZGVyczoge30gfSB9LFxuICAgIHsgdG9DYW1lbENhc2U6IHRydWUgfSxcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgRGNsQ2FzdFRyYWNrc1Jlc3BvbnNlID0ge1xuICBwYXJ0aWNpcGFudHM6IHtcbiAgICBpZGVudGl0eTogc3RyaW5nO1xuICAgIHRyYWNrczoge1xuICAgICAgc2lkOiBzdHJpbmc7XG4gICAgICB0eXBlOiAnQVVESU8nIHwgJ1ZJREVPJztcbiAgICAgIHNvdXJjZTogJ01JQ1JPUEhPTkUnIHwgJ0NBTUVSQScgfCAnU0NSRUVOX1NIQVJFJztcbiAgICB9W107XG4gICAgbmFtZTogc3RyaW5nO1xuICB9W107XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGNsQ2FzdEluZm8oKTogUHJvbWlzZTxSZXN1bHQ8RGNsQ2FzdFJlc3BvbnNlLCBzdHJpbmc+PiB7XG4gIHJldHVybiB3cmFwU2lnbmVkRmV0Y2g8RGNsQ2FzdFJlc3BvbnNlPih7IHVybDogVVJMUygpLkdFVF9EQ0xfQ0FTVF9JTkZPIH0sIHsgdG9DYW1lbENhc2U6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQcmVzZW50ZXJzKCk6IFByb21pc2U8UmVzdWx0PHN0cmluZ1tdLCBzdHJpbmc+PiB7XG4gIHJldHVybiB3cmFwU2lnbmVkRmV0Y2g8c3RyaW5nW10+KHsgdXJsOiBVUkxTKCkuUFJFU0VOVEVSUyB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb21vdGVQcmVzZW50ZXIoYWRkcmVzczogc3RyaW5nKTogUHJvbWlzZTxSZXN1bHQ8dm9pZCwgc3RyaW5nPj4ge1xuICByZXR1cm4gd3JhcFNpZ25lZEZldGNoPHZvaWQ+KHtcbiAgICB1cmw6IGAke1VSTFMoKS5QUkVTRU5URVJTfS8ke2FkZHJlc3N9YCxcbiAgICBpbml0OiB7IG1ldGhvZDogJ1BVVCcsIGhlYWRlcnM6IHt9IH0sXG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlUHJlc2VudGVyUm9sZShwbGF5ZXJBZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgW2Vycm9yLCBwcmVzZW50ZXJzXSA9IGF3YWl0IGdldFByZXNlbnRlcnMoKTtcbiAgY29uc29sZS5sb2coXG4gICAgJ1tEY2xDYXN0XSBlbnN1cmVQcmVzZW50ZXJSb2xlIC0gZXJyb3I6JyxcbiAgICBlcnJvcixcbiAgICAncHJlc2VudGVyczonLFxuICAgIEpTT04uc3RyaW5naWZ5KHByZXNlbnRlcnMpLFxuICAgICdwbGF5ZXJBZGRyZXNzOicsXG4gICAgcGxheWVyQWRkcmVzcyxcbiAgKTtcbiAgaWYgKGVycm9yIHx8ICFwcmVzZW50ZXJzKSByZXR1cm47XG5cbiAgY29uc3QgYWRkciA9IHBsYXllckFkZHJlc3MudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgaXNQcmVzZW50ZXIgPSBBcnJheS5pc0FycmF5KHByZXNlbnRlcnMpID8gcHJlc2VudGVycy5pbmNsdWRlcyhhZGRyKSA6IGZhbHNlO1xuICBjb25zb2xlLmxvZygnW0RjbENhc3RdIGlzUHJlc2VudGVyOicsIGlzUHJlc2VudGVyLCAnYWRkcjonLCBhZGRyKTtcblxuICBpZiAoIWlzUHJlc2VudGVyKSB7XG4gICAgY29uc3QgW3Byb21vdGVFcnJvcl0gPSBhd2FpdCBwcm9tb3RlUHJlc2VudGVyKGFkZHIpO1xuICAgIGNvbnNvbGUubG9nKCdbRGNsQ2FzdF0gcHJvbW90ZVByZXNlbnRlciByZXN1bHQgLSBlcnJvcjonLCBwcm9tb3RlRXJyb3IpO1xuICB9XG59XG5cbnR5cGUgUHJlc2VudGF0aW9uQm90VG9rZW5SZXNwb25zZSA9IHtcbiAgdXJsOiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHJvb21JZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByZXNlbnRhdGlvbkJvdFRva2VuKFxuICBzdHJlYW1pbmdLZXk6IHN0cmluZyxcbik6IFByb21pc2U8UmVzdWx0PFByZXNlbnRhdGlvbkJvdFRva2VuUmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxQcmVzZW50YXRpb25Cb3RUb2tlblJlc3BvbnNlPihcbiAgICB7XG4gICAgICB1cmw6IFVSTFMoKS5QUkVTRU5UQVRJT05fQk9UX1RPS0VOLFxuICAgICAgaW5pdDoge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgc3RyZWFtaW5nS2V5IH0pLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHsgdG9DYW1lbENhc2U6IHRydWUgfSxcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UHJlc2VudGF0aW9uKFxuICB1cmw6IHN0cmluZyxcbiAgbGl2ZWtpdFRva2VuOiBzdHJpbmcsXG4gIGxpdmVraXRVcmw6IHN0cmluZyxcbik6IFByb21pc2U8UmVzdWx0PHZvaWQsIHN0cmluZz4+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFVSTFMoKS5QUkVTRU5UQVRJT05fU0VSVkVSLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyB1cmwsIGxpdmVraXRUb2tlbiwgbGl2ZWtpdFVybCB9KSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgcmV0dXJuIFtib2R5IHx8ICdGYWlsZWQgdG8gc3RhcnQgcHJlc2VudGF0aW9uJywgbnVsbF07XG4gICAgfVxuICAgIHJldHVybiBbbnVsbCwgdW5kZWZpbmVkIGFzIHVua25vd24gYXMgdm9pZF07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFsoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgPz8gJ0ZhaWxlZCB0byBzdGFydCBwcmVzZW50YXRpb24nLCBudWxsXTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBGbGF0dGVuZWRUcmFjayA9IHtcbiAgc2lkOiBzdHJpbmc7XG4gIGlkZW50aXR5OiBzdHJpbmc7XG4gIHNvdXJjZVR5cGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXN0b21OYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQYXJ0aWNpcGFudCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZGVudGl0eTogc3RyaW5nO1xuICB0cmFja3M6IEZsYXR0ZW5lZFRyYWNrW107XG59O1xuXG5leHBvcnQgY29uc3QgU09VUkNFX1RZUEVfTEFCRUxTOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xuICAxOiAnQ2FtZXJhJyxcbiAgMjogJ1NjcmVlbicsXG4gIDM6ICdQcmVzZW50YXRpb24nLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldFNvdXJjZUxhYmVsID0gKHNvdXJjZVR5cGU6IG51bWJlcikgPT4gU09VUkNFX1RZUEVfTEFCRUxTW3NvdXJjZVR5cGVdID8/ICdVbmtub3duJztcblxuY29uc3QgUFJFU0VOVEFUSU9OX1RPUElDID0gJ3ByZXNlbnRhdGlvbic7XG5jb25zdCBQUkVTRU5UQVRJT05fU09VUkNFX1RZUEUgPSAzO1xuY29uc3QgUFJFU0VOVEFUSU9OX0JPVF9QUkVGSVggPSAncHJlc2VudGF0aW9uLWJvdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnRhdGlvbkJvdChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIG5hbWUuc3RhcnRzV2l0aChQUkVTRU5UQVRJT05fQk9UX1BSRUZJWCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcmVzZW50YXRpb25UcmFjayh0cmFja3M6IEZsYXR0ZW5lZFRyYWNrW10pOiBib29sZWFuIHtcbiAgcmV0dXJuIHRyYWNrcy5zb21lKFxuICAgIHRyYWNrID0+IHRyYWNrLnNvdXJjZVR5cGUgPT09IFBSRVNFTlRBVElPTl9TT1VSQ0VfVFlQRSB8fCBpc1ByZXNlbnRhdGlvbkJvdCh0cmFjay5uYW1lKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwVHJhY2tzQnlQYXJ0aWNpcGFudCh0cmFja3M6IEZsYXR0ZW5lZFRyYWNrW10pOiBQYXJ0aWNpcGFudFtdIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFBhcnRpY2lwYW50PigpO1xuICBmb3IgKGNvbnN0IHRyYWNrIG9mIHRyYWNrcykge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gbWFwLmdldCh0cmFjay5uYW1lKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGV4aXN0aW5nLnRyYWNrcy5wdXNoKHRyYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWFwLnNldCh0cmFjay5uYW1lLCB7IG5hbWU6IHRyYWNrLm5hbWUsIGlkZW50aXR5OiB0cmFjay5pZGVudGl0eSwgdHJhY2tzOiBbdHJhY2tdIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpO1xufVxuXG5mdW5jdGlvbiBnZXREaXNwbGF5TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoaXNQcmVzZW50YXRpb25Cb3QobmFtZSkpIHJldHVybiAnUHJlc2VudGF0aW9uJztcbiAgcmV0dXJuIG5hbWU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY3RpdmVTdHJlYW1zKCk6IFByb21pc2U8RmxhdHRlbmVkVHJhY2tbXSB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBydW50aW1lU3RyZWFtcyA9IGF3YWl0IGdldEFjdGl2ZVZpZGVvU3RyZWFtcyh7fSk7XG4gIGlmICghcnVudGltZVN0cmVhbXMpIHJldHVybjtcbiAgcmV0dXJuIHJ1bnRpbWVTdHJlYW1zLnN0cmVhbXMubWFwKFxuICAgIChzdHJlYW06IHsgdHJhY2tTaWQ6IHN0cmluZzsgaWRlbnRpdHk6IHN0cmluZzsgc291cmNlVHlwZTogbnVtYmVyOyBuYW1lPzogc3RyaW5nIH0pID0+IHtcbiAgICAgIGNvbnN0IHJhd05hbWUgPSBzdHJlYW0ubmFtZSA/PyBzdHJlYW0uaWRlbnRpdHk7XG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGdldERpc3BsYXlOYW1lKHJhd05hbWUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2lkOiBzdHJlYW0udHJhY2tTaWQsXG4gICAgICAgIGlkZW50aXR5OiBzdHJlYW0uaWRlbnRpdHksXG4gICAgICAgIHNvdXJjZVR5cGU6IHN0cmVhbS5zb3VyY2VUeXBlLFxuICAgICAgICBuYW1lOiByYXdOYW1lLFxuICAgICAgICBjdXN0b21OYW1lOiBgJHtkaXNwbGF5TmFtZX0gLSAke2dldFNvdXJjZUxhYmVsKHN0cmVhbS5zb3VyY2VUeXBlKX1gLFxuICAgICAgfTtcbiAgICB9LFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic2NyaWJlVG9QcmVzZW50YXRpb25Ub3BpYygpOiB2b2lkIHtcbiAgc3Vic2NyaWJlVG9Ub3BpYyh7IHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMgfSlcbiAgICAudGhlbigoKSA9PiB7XG4gICAgICAvLyBSZXF1ZXN0IGN1cnJlbnQgc3RhdGUgZnJvbSBib3Qgc28gbGF0ZSBqb2luZXJzIGdldCB0aGUgcHJlc2VudGF0aW9uIHN0YXRlXG4gICAgICByZXF1ZXN0UHJlc2VudGF0aW9uU3RhdGUoKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnW0RjbENhc3RdIEZhaWxlZCB0byBzdWJzY3JpYmUgdG8gcHJlc2VudGF0aW9uIHRvcGljJyk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0UHJlc2VudGF0aW9uU3RhdGUoKTogdm9pZCB7XG4gIHB1Ymxpc2hEYXRhKHtcbiAgICB0b3BpYzogUFJFU0VOVEFUSU9OX1RPUElDLFxuICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3ByZXNlbnRhdGlvbjpnZXQtc3RhdGUnIH0pLFxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnN1bWVQcmVzZW50YXRpb25NZXNzYWdlcygpOiBQcm9taXNlPFxuICBQcmVzZW50YXRpb25TdGF0ZSB8ICdzdG9wcGVkJyB8IHVuZGVmaW5lZFxuPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgeyBtZXNzYWdlcyB9ID0gYXdhaXQgY29uc3VtZU1lc3NhZ2VzKHsgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyB9KTtcblxuICAgIGxldCBsYXRlc3RTdGF0ZTogUHJlc2VudGF0aW9uU3RhdGUgfCAnc3RvcHBlZCcgfCB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBtc2cgb2YgbWVzc2FnZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UobXNnLmRhdGEpO1xuICAgICAgICBpZiAocGFyc2VkLnR5cGUgPT09ICdwcmVzZW50YXRpb246c3RhdGUnKSB7XG4gICAgICAgICAgbGF0ZXN0U3RhdGUgPSB7XG4gICAgICAgICAgICBpZDogcGFyc2VkLmlkLFxuICAgICAgICAgICAgZmlsZU5hbWU6IHBhcnNlZC5maWxlTmFtZSxcbiAgICAgICAgICAgIGN1cnJlbnRTbGlkZTogcGFyc2VkLmN1cnJlbnRTbGlkZSxcbiAgICAgICAgICAgIHNsaWRlQ291bnQ6IHBhcnNlZC5zbGlkZUNvdW50LFxuICAgICAgICAgICAgZmlsZVR5cGU6IHBhcnNlZC5maWxlVHlwZSxcbiAgICAgICAgICAgIHNsaWRlVmlkZW9zOiBwYXJzZWQuc2xpZGVWaWRlb3MgPz8gW10sXG4gICAgICAgICAgICB2aWRlb1N0YXRlOiBwYXJzZWQudmlkZW9TdGF0ZSA/PyAnaWRsZScsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChwYXJzZWQudHlwZSA9PT0gJ3ByZXNlbnRhdGlvbjpzdG9wcGVkJykge1xuICAgICAgICAgIGxhdGVzdFN0YXRlID0gJ3N0b3BwZWQnO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gU2tpcCBtYWxmb3JtZWQgaW5kaXZpZHVhbCBtZXNzYWdlc1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGF0ZXN0U3RhdGU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gY29uc3VtZU1lc3NhZ2VzIGZhaWxlZCBvciBvdXRlciBKU09OIHBhcnNlIGZhaWxlZCDigJQgcmV0dXJuIHVuZGVmaW5lZFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5leHRTbGlkZSgpOiB2b2lkIHtcbiAgcHVibGlzaERhdGEoe1xuICAgIHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAncHJlc2VudGF0aW9uOm5hdmlnYXRlJywgYWN0aW9uOiAnbmV4dCcgfSksXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJldlNsaWRlKCk6IHZvaWQge1xuICBwdWJsaXNoRGF0YSh7XG4gICAgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyxcbiAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwcmVzZW50YXRpb246bmF2aWdhdGUnLCBhY3Rpb246ICdwcmV2JyB9KSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwbGF5UHJlc2VudGF0aW9uVmlkZW8odmlkZW9JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gIHB1Ymxpc2hEYXRhKHtcbiAgICB0b3BpYzogUFJFU0VOVEFUSU9OX1RPUElDLFxuICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3ByZXNlbnRhdGlvbjp2aWRlbzpwbGF5JywgdmlkZW9JbmRleCB9KSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXVzZVByZXNlbnRhdGlvblZpZGVvKCk6IHZvaWQge1xuICBwdWJsaXNoRGF0YSh7XG4gICAgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyxcbiAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwcmVzZW50YXRpb246dmlkZW86cGF1c2UnIH0pLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BQcmVzZW50YXRpb25WaWRlbygpOiB2b2lkIHtcbiAgcHVibGlzaERhdGEoe1xuICAgIHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAncHJlc2VudGF0aW9uOnZpZGVvOnN0b3AnIH0pLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BQcmVzZW50YXRpb24oKTogdm9pZCB7XG4gIHB1Ymxpc2hEYXRhKHtcbiAgICB0b3BpYzogUFJFU0VOVEFUSU9OX1RPUElDLFxuICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3ByZXNlbnRhdGlvbjpzdG9wJyB9KSxcbiAgfSk7XG59XG4iXX0=
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkbWluLXRvb2xraXQtdWkvVmlkZW9Db250cm9sL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsZUFBZSxHQUNoQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNsQixVQUFVLEVBQUUseUNBQXlDLFNBQVMsRUFBRSxzQkFBc0I7SUFDdEYsaUJBQWlCLEVBQUUseUNBQXlDLFNBQVMsRUFBRSw0QkFBNEI7SUFDbkcsVUFBVSxFQUFFLHlDQUF5QyxTQUFTLEVBQUUsa0JBQWtCO0lBQ2xGLHNCQUFzQixFQUFFLHlDQUF5QyxTQUFTLEVBQUUsOEJBQThCO0lBQzFHLG1CQUFtQixFQUFFLCtDQUErQyxTQUFTLEVBQUUsZ0JBQWdCO0NBQ2hHLENBQUMsQ0FBQztBQW1CSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVk7SUFDaEMsT0FBTyxlQUFlLENBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDL0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCO0lBQ3JDLE9BQU8sZUFBZSxDQUNwQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDakUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFB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RSxJQUFJLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQztLQUMzRCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxXQUFXLENBQUM7UUFDVixLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLENBQUM7S0FDMUQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsV0FBVyxDQUFDO1FBQ1YsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0tBQ3BELENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRBY3RpdmVWaWRlb1N0cmVhbXMsXG4gIHN1YnNjcmliZVRvVG9waWMsXG4gIHB1Ymxpc2hEYXRhLFxuICBjb25zdW1lTWVzc2FnZXMsXG59IGZyb20gJ35zeXN0ZW0vQ29tbXNBcGknO1xuaW1wb3J0IHsgZ2V0RG9tYWluLCB3cmFwU2lnbmVkRmV0Y2ggfSBmcm9tICcuLi9mZXRjaC11dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJlc3VsdCB9IGZyb20gJy4uL2ZldGNoLXV0aWxzJztcbmltcG9ydCB0eXBlIHsgUHJlc2VudGF0aW9uU3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IFVSTFMgPSAoKSA9PiAoe1xuICBTVFJFQU1fS0VZOiBgaHR0cHM6Ly9jb21tcy1nYXRla2VlcGVyLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9zY2VuZS1zdHJlYW0tYWNjZXNzYCxcbiAgR0VUX0RDTF9DQVNUX0lORk86IGBodHRwczovL2NvbW1zLWdhdGVrZWVwZXIuZGVjZW50cmFsYW5kLiR7Z2V0RG9tYWluKCl9L2Nhc3QvZ2VuZXJhdGUtc3RyZWFtLWxpbmtgLFxuICBQUkVTRU5URVJTOiBgaHR0cHM6Ly9jb21tcy1nYXRla2VlcGVyLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9jYXN0L3ByZXNlbnRlcnNgLFxuICBQUkVTRU5UQVRJT05fQk9UX1RPS0VOOiBgaHR0cHM6Ly9jb21tcy1nYXRla2VlcGVyLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9jYXN0L3ByZXNlbnRhdGlvbi1ib3QtdG9rZW5gLFxuICBQUkVTRU5UQVRJT05fU0VSVkVSOiBgaHR0cHM6Ly9jYXN0LXByZXNlbnRlci1zZXJ2aWNlLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9wcmVzZW50YXRpb25zYCxcbn0pO1xuXG50eXBlIFN0cmVhbUtleVJlc3BvbnNlID0ge1xuICBzdHJlYW1pbmdVcmw6IHN0cmluZztcbiAgc3RyZWFtaW5nS2V5OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogbnVtYmVyO1xuICBlbmRzQXQ6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIERjbENhc3RSZXNwb25zZSA9IHtcbiAgc3RyZWFtTGluazogc3RyaW5nO1xuICB3YXRjaGVyTGluazogc3RyaW5nO1xuICBzdHJlYW1pbmdLZXk6IHN0cmluZztcbiAgcGxhY2VJZDogc3RyaW5nO1xuICBwbGFjZU5hbWU6IHN0cmluZztcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIGV4cGlyZXNJbkRheXM6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdHJlYW1LZXkoKTogUHJvbWlzZTxSZXN1bHQ8U3RyZWFtS2V5UmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxTdHJlYW1LZXlSZXNwb25zZT4oeyB1cmw6IFVSTFMoKS5TVFJFQU1fS0VZIH0sIHsgdG9DYW1lbENhc2U6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVN0cmVhbUtleSgpOiBQcm9taXNlPFJlc3VsdDxTdHJlYW1LZXlSZXNwb25zZSwgc3RyaW5nPj4ge1xuICByZXR1cm4gd3JhcFNpZ25lZEZldGNoPFN0cmVhbUtleVJlc3BvbnNlPihcbiAgICB7IHVybDogVVJMUygpLlNUUkVBTV9LRVksIGluaXQ6IHsgbWV0aG9kOiAnUE9TVCcsIGhlYWRlcnM6IHt9IH0gfSxcbiAgICB7IHRvQ2FtZWxDYXNlOiB0cnVlIH0sXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXZva2VTdHJlYW1LZXkoKTogUHJvbWlzZTxSZXN1bHQ8U3RyZWFtS2V5UmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxTdHJlYW1LZXlSZXNwb25zZT4oe1xuICAgIHVybDogVVJMUygpLlNUUkVBTV9LRVksXG4gICAgaW5pdDogeyBtZXRob2Q6ICdERUxFVEUnLCBoZWFkZXJzOiB7fSB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2V0U3RyZWFtS2V5KCk6IFByb21pc2U8UmVzdWx0PFN0cmVhbUtleVJlc3BvbnNlLCBzdHJpbmc+PiB7XG4gIHJldHVybiB3cmFwU2lnbmVkRmV0Y2g8U3RyZWFtS2V5UmVzcG9uc2U+KFxuICAgIHsgdXJsOiBVUkxTKCkuU1RSRUFNX0tFWSwgaW5pdDogeyBtZXRob2Q6ICdQVVQnLCBoZWFkZXJzOiB7fSB9IH0sXG4gICAgeyB0b0NhbWVsQ2FzZTogdHJ1ZSB9LFxuICApO1xufVxuXG5leHBvcnQgdHlwZSBEY2xDYXN0VHJhY2tzUmVzcG9uc2UgPSB7XG4gIHBhcnRpY2lwYW50czoge1xuICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgdHJhY2tzOiB7XG4gICAgICBzaWQ6IHN0cmluZztcbiAgICAgIHR5cGU6ICdBVURJTycgfCAnVklERU8nO1xuICAgICAgc291cmNlOiAnTUlDUk9QSE9ORScgfCAnQ0FNRVJBJyB8ICdTQ1JFRU5fU0hBUkUnO1xuICAgIH1bXTtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH1bXTtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREY2xDYXN0SW5mbygpOiBQcm9taXNlPFJlc3VsdDxEY2xDYXN0UmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxEY2xDYXN0UmVzcG9uc2U+KHsgdXJsOiBVUkxTKCkuR0VUX0RDTF9DQVNUX0lORk8gfSwgeyB0b0NhbWVsQ2FzZTogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IHR5cGUgUHJlc2VudGVyc1Jlc3BvbnNlID0geyBwcmVzZW50ZXJzOiBzdHJpbmdbXSB9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJlc2VudGVycygpOiBQcm9taXNlPFJlc3VsdDxQcmVzZW50ZXJzUmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxQcmVzZW50ZXJzUmVzcG9uc2U+KHsgdXJsOiBVUkxTKCkuUFJFU0VOVEVSUyB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb21vdGVQcmVzZW50ZXIoYWRkcmVzczogc3RyaW5nKTogUHJvbWlzZTxSZXN1bHQ8dm9pZCwgc3RyaW5nPj4ge1xuICByZXR1cm4gd3JhcFNpZ25lZEZldGNoPHZvaWQ+KHtcbiAgICB1cmw6IGAke1VSTFMoKS5QUkVTRU5URVJTfS8ke2FkZHJlc3N9YCxcbiAgICBpbml0OiB7IG1ldGhvZDogJ1BVVCcsIGhlYWRlcnM6IHt9IH0sXG4gIH0pO1xufVxuXG4vLyBSZXNvbHZlcyB0cnVlIGlmIHRoZSBwbGF5ZXIgaXMgKG9yIHdhcyBzdWNjZXNzZnVsbHkgcHJvbW90ZWQgdG8pIGEgcHJlc2VudGVyLFxuLy8gZmFsc2UgaWYgdGhlIGxvb2t1cCBvciBwcm9tb3Rpb24gZmFpbGVkLiBDYWxsZXJzIHRoYXQgZ2F0ZSBvbiBwcmVzZW50ZXItb25seVxuLy8gZGF0YSAodGhlIHByZXNlbnRhdGlvbjpzdGF0ZSB0b3BpYykgc2hvdWxkIHJldHJ5IHdoZW4gdGhpcyBpcyBmYWxzZS5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVQcmVzZW50ZXJSb2xlKHBsYXllckFkZHJlc3M6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBbZXJyb3IsIHJlc3BvbnNlXSA9IGF3YWl0IGdldFByZXNlbnRlcnMoKTtcbiAgaWYgKGVycm9yIHx8ICFyZXNwb25zZSkgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIFRoZSBlbmRwb2ludCByZXR1cm5zIHsgcHJlc2VudGVyczogc3RyaW5nW10gfSwgYW5kIGFkZHJlc3NlcyBtYXkgYmVcbiAgLy8gY2hlY2tzdW1tZWQg4oCUIGNvbXBhcmUgY2FzZS1pbnNlbnNpdGl2ZWx5IGFnYWluc3QgdGhlIGxvd2VyY2FzZWQgcGxheWVyLlxuICBjb25zdCBhZGRyID0gcGxheWVyQWRkcmVzcy50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBwcmVzZW50ZXJzID0gQXJyYXkuaXNBcnJheShyZXNwb25zZS5wcmVzZW50ZXJzKSA/IHJlc3BvbnNlLnByZXNlbnRlcnMgOiBbXTtcbiAgY29uc3QgaXNQcmVzZW50ZXIgPSBwcmVzZW50ZXJzLnNvbWUocCA9PiBwLnRvTG93ZXJDYXNlKCkgPT09IGFkZHIpO1xuICBpZiAoaXNQcmVzZW50ZXIpIHJldHVybiB0cnVlO1xuXG4gIGNvbnN0IFtwcm9tb3RlRXJyb3JdID0gYXdhaXQgcHJvbW90ZVByZXNlbnRlcihhZGRyKTtcbiAgcmV0dXJuICFwcm9tb3RlRXJyb3I7XG59XG5cbnR5cGUgUHJlc2VudGF0aW9uQm90VG9rZW5SZXNwb25zZSA9IHtcbiAgdXJsOiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHJvb21JZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByZXNlbnRhdGlvbkJvdFRva2VuKFxuICBzdHJlYW1pbmdLZXk6IHN0cmluZyxcbik6IFByb21pc2U8UmVzdWx0PFByZXNlbnRhdGlvbkJvdFRva2VuUmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxQcmVzZW50YXRpb25Cb3RUb2tlblJlc3BvbnNlPihcbiAgICB7XG4gICAgICB1cmw6IFVSTFMoKS5QUkVTRU5UQVRJT05fQk9UX1RPS0VOLFxuICAgICAgaW5pdDoge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgc3RyZWFtaW5nS2V5IH0pLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHsgdG9DYW1lbENhc2U6IHRydWUgfSxcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UHJlc2VudGF0aW9uKFxuICB1cmw6IHN0cmluZyxcbiAgbGl2ZWtpdFRva2VuOiBzdHJpbmcsXG4gIGxpdmVraXRVcmw6IHN0cmluZyxcbik6IFByb21pc2U8UmVzdWx0PHZvaWQsIHN0cmluZz4+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFVSTFMoKS5QUkVTRU5UQVRJT05fU0VSVkVSLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyB1cmwsIGxpdmVraXRUb2tlbiwgbGl2ZWtpdFVybCB9KSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgcmV0dXJuIFtib2R5IHx8ICdGYWlsZWQgdG8gc3RhcnQgcHJlc2VudGF0aW9uJywgbnVsbF07XG4gICAgfVxuICAgIHJldHVybiBbbnVsbCwgdW5kZWZpbmVkIGFzIHVua25vd24gYXMgdm9pZF07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFsoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgPz8gJ0ZhaWxlZCB0byBzdGFydCBwcmVzZW50YXRpb24nLCBudWxsXTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBGbGF0dGVuZWRUcmFjayA9IHtcbiAgc2lkOiBzdHJpbmc7XG4gIGlkZW50aXR5OiBzdHJpbmc7XG4gIHNvdXJjZVR5cGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXN0b21OYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQYXJ0aWNpcGFudCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZGVudGl0eTogc3RyaW5nO1xuICB0cmFja3M6IEZsYXR0ZW5lZFRyYWNrW107XG59O1xuXG5leHBvcnQgY29uc3QgU09VUkNFX1RZUEVfTEFCRUxTOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xuICAxOiAnQ2FtZXJhJyxcbiAgMjogJ1NjcmVlbicsXG4gIDM6ICdQcmVzZW50YXRpb24nLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldFNvdXJjZUxhYmVsID0gKHNvdXJjZVR5cGU6IG51bWJlcikgPT4gU09VUkNFX1RZUEVfTEFCRUxTW3NvdXJjZVR5cGVdID8/ICdVbmtub3duJztcblxuY29uc3QgUFJFU0VOVEFUSU9OX1RPUElDID0gJ3ByZXNlbnRhdGlvbic7XG5jb25zdCBQUkVTRU5UQVRJT05fU09VUkNFX1RZUEUgPSAzO1xuY29uc3QgUFJFU0VOVEFUSU9OX0JPVF9QUkVGSVggPSAncHJlc2VudGF0aW9uLWJvdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnRhdGlvbkJvdChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIG5hbWUuc3RhcnRzV2l0aChQUkVTRU5UQVRJT05fQk9UX1BSRUZJWCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcmVzZW50YXRpb25UcmFjayh0cmFja3M6IEZsYXR0ZW5lZFRyYWNrW10pOiBib29sZWFuIHtcbiAgcmV0dXJuIHRyYWNrcy5zb21lKFxuICAgIHRyYWNrID0+IHRyYWNrLnNvdXJjZVR5cGUgPT09IFBSRVNFTlRBVElPTl9TT1VSQ0VfVFlQRSB8fCBpc1ByZXNlbnRhdGlvbkJvdCh0cmFjay5uYW1lKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwVHJhY2tzQnlQYXJ0aWNpcGFudCh0cmFja3M6IEZsYXR0ZW5lZFRyYWNrW10pOiBQYXJ0aWNpcGFudFtdIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFBhcnRpY2lwYW50PigpO1xuICBmb3IgKGNvbnN0IHRyYWNrIG9mIHRyYWNrcykge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gbWFwLmdldCh0cmFjay5uYW1lKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGV4aXN0aW5nLnRyYWNrcy5wdXNoKHRyYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWFwLnNldCh0cmFjay5uYW1lLCB7IG5hbWU6IHRyYWNrLm5hbWUsIGlkZW50aXR5OiB0cmFjay5pZGVudGl0eSwgdHJhY2tzOiBbdHJhY2tdIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpO1xufVxuXG5mdW5jdGlvbiBnZXREaXNwbGF5TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoaXNQcmVzZW50YXRpb25Cb3QobmFtZSkpIHJldHVybiAnUHJlc2VudGF0aW9uJztcbiAgcmV0dXJuIG5hbWU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY3RpdmVTdHJlYW1zKCk6IFByb21pc2U8RmxhdHRlbmVkVHJhY2tbXSB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBydW50aW1lU3RyZWFtcyA9IGF3YWl0IGdldEFjdGl2ZVZpZGVvU3RyZWFtcyh7fSk7XG4gIGlmICghcnVudGltZVN0cmVhbXMpIHJldHVybjtcbiAgcmV0dXJuIHJ1bnRpbWVTdHJlYW1zLnN0cmVhbXMubWFwKFxuICAgIChzdHJlYW06IHsgdHJhY2tTaWQ6IHN0cmluZzsgaWRlbnRpdHk6IHN0cmluZzsgc291cmNlVHlwZTogbnVtYmVyOyBuYW1lPzogc3RyaW5nIH0pID0+IHtcbiAgICAgIGNvbnN0IHJhd05hbWUgPSBzdHJlYW0ubmFtZSA/PyBzdHJlYW0uaWRlbnRpdHk7XG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGdldERpc3BsYXlOYW1lKHJhd05hbWUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2lkOiBzdHJlYW0udHJhY2tTaWQsXG4gICAgICAgIGlkZW50aXR5OiBzdHJlYW0uaWRlbnRpdHksXG4gICAgICAgIHNvdXJjZVR5cGU6IHN0cmVhbS5zb3VyY2VUeXBlLFxuICAgICAgICBuYW1lOiByYXdOYW1lLFxuICAgICAgICBjdXN0b21OYW1lOiBgJHtkaXNwbGF5TmFtZX0gLSAke2dldFNvdXJjZUxhYmVsKHN0cmVhbS5zb3VyY2VUeXBlKX1gLFxuICAgICAgfTtcbiAgICB9LFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic2NyaWJlVG9QcmVzZW50YXRpb25Ub3BpYygpOiB2b2lkIHtcbiAgc3Vic2NyaWJlVG9Ub3BpYyh7IHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMgfSlcbiAgICAudGhlbigoKSA9PiB7XG4gICAgICAvLyBSZXF1ZXN0IGN1cnJlbnQgc3RhdGUgZnJvbSB0aGUgYm90IHNvIGxhdGUgam9pbmVycyBnZXQgdGhlIHByZXNlbnRhdGlvbiBzdGF0ZVxuICAgICAgcmVxdWVzdFByZXNlbnRhdGlvblN0YXRlKCk7XG4gICAgfSlcbiAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1tEY2xDYXN0XSBGYWlsZWQgdG8gc3Vic2NyaWJlIHRvIHByZXNlbnRhdGlvbiB0b3BpYycpO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdFByZXNlbnRhdGlvblN0YXRlKCk6IHZvaWQge1xuICBwdWJsaXNoRGF0YSh7XG4gICAgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyxcbiAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwcmVzZW50YXRpb246Z2V0LXN0YXRlJyB9KSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzUmVjb3JkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbDtcbn1cblxuLy8gY29uc3VtZU1lc3NhZ2VzIHJlc29sdmVzIHRvIGEgYmFyZSBhcnJheSBvZiB7IHNlbmRlciwgZGF0YSB9OyB0b2xlcmF0ZSBhXG4vLyB7IG1lc3NhZ2VzOiBbLi4uXSB9IHdyYXBwZXIgdG9vIGluIGNhc2UgdGhlIHJ1bnRpbWUgc2hhcGUgY2hhbmdlcy4gTmFycm93XG4vLyBlYWNoIGVudHJ5IHRvIGEgc3RyaW5nIGBkYXRhYCBiZWZvcmUgaXQgcmVhY2hlcyBKU09OLnBhcnNlLlxuZnVuY3Rpb24gZXh0cmFjdE1lc3NhZ2VzKHJlc3BvbnNlOiB1bmtub3duKTogeyBkYXRhOiBzdHJpbmcgfVtdIHtcbiAgY29uc3QgcmF3ID0gQXJyYXkuaXNBcnJheShyZXNwb25zZSlcbiAgICA/IHJlc3BvbnNlXG4gICAgOiBpc1JlY29yZChyZXNwb25zZSkgJiYgQXJyYXkuaXNBcnJheShyZXNwb25zZS5tZXNzYWdlcylcbiAgICAgID8gcmVzcG9uc2UubWVzc2FnZXNcbiAgICAgIDogW107XG4gIHJldHVybiByYXcuZmlsdGVyKChtKTogbSBpcyB7IGRhdGE6IHN0cmluZyB9ID0+IGlzUmVjb3JkKG0pICYmIHR5cGVvZiBtLmRhdGEgPT09ICdzdHJpbmcnKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnN1bWVQcmVzZW50YXRpb25NZXNzYWdlcygpOiBQcm9taXNlPFxuICBQcmVzZW50YXRpb25TdGF0ZSB8ICdzdG9wcGVkJyB8IHVuZGVmaW5lZFxuPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBleHRyYWN0TWVzc2FnZXMoYXdhaXQgY29uc3VtZU1lc3NhZ2VzKHsgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyB9KSk7XG5cbiAgICBsZXQgbGF0ZXN0U3RhdGU6IFByZXNlbnRhdGlvblN0YXRlIHwgJ3N0b3BwZWQnIHwgdW5kZWZpbmVkO1xuICAgIGZvciAoY29uc3QgbXNnIG9mIG1lc3NhZ2VzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG1zZy5kYXRhKTtcbiAgICAgICAgaWYgKHBhcnNlZC50eXBlID09PSAncHJlc2VudGF0aW9uOnN0YXRlJykge1xuICAgICAgICAgIGxhdGVzdFN0YXRlID0ge1xuICAgICAgICAgICAgaWQ6IHBhcnNlZC5pZCxcbiAgICAgICAgICAgIGZpbGVOYW1lOiBwYXJzZWQuZmlsZU5hbWUsXG4gICAgICAgICAgICBjdXJyZW50U2xpZGU6IHBhcnNlZC5jdXJyZW50U2xpZGUsXG4gICAgICAgICAgICBzbGlkZUNvdW50OiBwYXJzZWQuc2xpZGVDb3VudCxcbiAgICAgICAgICAgIGZpbGVUeXBlOiBwYXJzZWQuZmlsZVR5cGUsXG4gICAgICAgICAgICBzbGlkZVZpZGVvczogcGFyc2VkLnNsaWRlVmlkZW9zID8/IFtdLFxuICAgICAgICAgICAgdmlkZW9TdGF0ZTogcGFyc2VkLnZpZGVvU3RhdGUgPz8gJ2lkbGUnLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09ICdwcmVzZW50YXRpb246c3RvcHBlZCcpIHtcbiAgICAgICAgICBsYXRlc3RTdGF0ZSA9ICdzdG9wcGVkJztcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIFNraXAgbWFsZm9ybWVkIGluZGl2aWR1YWwgbWVzc2FnZXNcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxhdGVzdFN0YXRlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGNvbnN1bWVNZXNzYWdlcyBmYWlsZWQgb3Igb3V0ZXIgSlNPTiBwYXJzZSBmYWlsZWQg4oCUIHJldHVybiB1bmRlZmluZWRcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0U2xpZGUoKTogdm9pZCB7XG4gIHB1Ymxpc2hEYXRhKHtcbiAgICB0b3BpYzogUFJFU0VOVEFUSU9OX1RPUElDLFxuICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3ByZXNlbnRhdGlvbjpuYXZpZ2F0ZScsIGFjdGlvbjogJ25leHQnIH0pLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXZTbGlkZSgpOiB2b2lkIHtcbiAgcHVibGlzaERhdGEoe1xuICAgIHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAncHJlc2VudGF0aW9uOm5hdmlnYXRlJywgYWN0aW9uOiAncHJldicgfSksXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxheVByZXNlbnRhdGlvblZpZGVvKHZpZGVvSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICBwdWJsaXNoRGF0YSh7XG4gICAgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyxcbiAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwcmVzZW50YXRpb246dmlkZW86cGxheScsIHZpZGVvSW5kZXggfSksXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF1c2VQcmVzZW50YXRpb25WaWRlbygpOiB2b2lkIHtcbiAgcHVibGlzaERhdGEoe1xuICAgIHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAncHJlc2VudGF0aW9uOnZpZGVvOnBhdXNlJyB9KSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wUHJlc2VudGF0aW9uVmlkZW8oKTogdm9pZCB7XG4gIHB1Ymxpc2hEYXRhKHtcbiAgICB0b3BpYzogUFJFU0VOVEFUSU9OX1RPUElDLFxuICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3ByZXNlbnRhdGlvbjp2aWRlbzpzdG9wJyB9KSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wUHJlc2VudGF0aW9uKCk6IHZvaWQge1xuICBwdWJsaXNoRGF0YSh7XG4gICAgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyxcbiAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwcmVzZW50YXRpb246c3RvcCcgfSksXG4gIH0pO1xufVxuIl19
@@ -5,6 +5,7 @@ import { getContentUrl } from '../constants';
5
5
  import { Header } from '../Header';
6
6
  import { Active } from '../Active';
7
7
  import { Card } from '../Card';
8
+ import { selectVideoSubTab, selectVideoPlayer, dismissPresentation } from '../actions';
8
9
  import { getVideoPlayers, isDclCast, isLiveStream, isVideoUrl, useSelectedVideoPlayer, } from './utils';
9
10
  import { VideoControlURL } from './VideoUrl';
10
11
  import { LiveStream } from './LiveStream';
@@ -58,14 +59,14 @@ export const COLORS = {
58
59
  export function VideoControl({ engine, state, playerAddress, }) {
59
60
  const [selectedEntity, selectedVideo] = useSelectedVideoPlayer(engine) ?? [];
60
61
  const videoPlayers = getVideoPlayers(engine);
61
- const [selected, setSelected] = ReactEcs.useState(undefined);
62
+ const selected = state.videoControl.selectedTab;
62
63
  ReactEcs.useEffect(() => {
63
- setSelected(selectedVideo && isDclCast(selectedVideo.src)
64
- ? 'dcl-cast'
65
- : selectedVideo && isVideoUrl(selectedVideo.src)
66
- ? 'video-url'
67
- : 'live');
68
- }, [state.videoControl.selectedVideoPlayer]);
64
+ if (state.videoControl.selectedStream === 'dcl-cast') {
65
+ selectVideoSubTab('dcl-cast');
66
+ return;
67
+ }
68
+ selectVideoSubTab(selectedVideo && isVideoUrl(selectedVideo.src) ? 'video-url' : 'live');
69
+ }, [state.videoControl.selectedVideoPlayer, state.videoControl.selectedStream]);
69
70
  return (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column', width: '100%' } },
70
71
  ReactEcs.createElement(Card, { uiTransform: {
71
72
  padding: {
@@ -86,7 +87,7 @@ export function VideoControl({ engine, state, playerAddress, }) {
86
87
  margin: { bottom: 16 },
87
88
  } },
88
89
  videoPlayers.length > 1 && (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column' } },
89
- ReactEcs.createElement(Dropdown, { options: videoPlayers.map((player) => `<b>${player.customName}</b>`), selectedIndex: state.videoControl.selectedVideoPlayer ?? 0, onChange: idx => (state.videoControl.selectedVideoPlayer = idx), textAlign: "middle-left", fontSize: 16, uiTransform: {
90
+ ReactEcs.createElement(Dropdown, { options: videoPlayers.map((player) => `<b>${player.customName}</b>`), selectedIndex: state.videoControl.selectedVideoPlayer ?? 0, onChange: idx => selectVideoPlayer(idx), textAlign: "middle-left", fontSize: 16, uiTransform: {
90
91
  margin: { right: 8 },
91
92
  width: '100%',
92
93
  }, uiBackground: { color: Color4.White() } }))),
@@ -102,15 +103,15 @@ export function VideoControl({ engine, state, playerAddress, }) {
102
103
  ReactEcs.createElement(UiEntity, { uiTransform: {
103
104
  width: '30%',
104
105
  } },
105
- ReactEcs.createElement(CustomButton, { engine: engine, id: "video_control_url", value: "<b>VIDEO URL</b>", icon: ICONS.VIDEO_SOURCE, onClick: () => setSelected('video-url'), selected: selected === 'video-url', active: selectedVideo && isVideoUrl(selectedVideo.src) })),
106
+ ReactEcs.createElement(CustomButton, { engine: engine, id: "video_control_url", value: "<b>VIDEO URL</b>", icon: ICONS.VIDEO_SOURCE, onClick: () => selectVideoSubTab('video-url'), selected: selected === 'video-url', active: selectedVideo && isVideoUrl(selectedVideo.src) })),
106
107
  ReactEcs.createElement(UiEntity, { uiTransform: {
107
108
  width: '30%',
108
109
  } },
109
- ReactEcs.createElement(CustomButton, { engine: engine, id: "video_control_dcl_cast", value: "<b>DCL CAST</b>", icon: ICONS.DCL_CAST_SOURCE, onClick: () => setSelected('dcl-cast'), selected: selected === 'dcl-cast', active: selectedVideo && isDclCast(selectedVideo.src) })),
110
+ ReactEcs.createElement(CustomButton, { engine: engine, id: "video_control_dcl_cast", value: "<b>DCL CAST</b>", icon: ICONS.DCL_CAST_SOURCE, onClick: () => selectVideoSubTab('dcl-cast'), selected: selected === 'dcl-cast', active: selectedVideo && isDclCast(selectedVideo.src) })),
110
111
  ReactEcs.createElement(UiEntity, { uiTransform: {
111
112
  width: '30%',
112
113
  } },
113
- ReactEcs.createElement(CustomButton, { engine: engine, id: "video_control_live", value: "<b>STREAM</b>", icon: ICONS.LIVE_SOURCE, onClick: () => setSelected('live'), active: selectedVideo && isLiveStream(selectedVideo.src), selected: selected === 'live' })))))),
114
+ ReactEcs.createElement(CustomButton, { engine: engine, id: "video_control_live", value: "<b>STREAM</b>", icon: ICONS.LIVE_SOURCE, onClick: () => selectVideoSubTab('live'), active: selectedVideo && isLiveStream(selectedVideo.src), selected: selected === 'live' })))))),
114
115
  selected && selectedEntity && (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column', width: '100%' } },
115
116
  ReactEcs.createElement(Card, null,
116
117
  selected === 'video-url' && (ReactEcs.createElement(VideoControlURL, { engine: engine, entity: selectedEntity, video: selectedVideo })),
@@ -123,9 +124,7 @@ export function VideoControl({ engine, state, playerAddress, }) {
123
124
  ? 'flex'
124
125
  : 'none',
125
126
  } },
126
- ReactEcs.createElement(PresentationPanel, { presentationState: state.videoControl.presentationState, onStopSharing: () => {
127
- state.videoControl.presentationState = undefined;
128
- } }))))));
127
+ ReactEcs.createElement(PresentationPanel, { presentationState: state.videoControl.presentationState, onStopSharing: () => dismissPresentation() }))))));
129
128
  }
130
129
  function CustomButton({ active, value, id, onClick, icon, selected, engine }) {
131
130
  return (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column', height: '100%', width: '100%' } },
@@ -151,4 +150,4 @@ function CustomButton({ active, value, id, onClick, icon, selected, engine }) {
151
150
  } })),
152
151
  active && (ReactEcs.createElement(Active, { engine: engine, uiTransform: { width: '100%', margin: { top: 6 } } }))));
153
152
  }
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLHNCQUFzQixHQUN2QixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8saUJBQWlCLE1BQU0sNkJBQTZCLENBQUM7QUFHNUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLElBQUksYUFBYTtRQUNmLE9BQU8sR0FBRyxhQUFhLEVBQUUsK0NBQStDLENBQUM7SUFDM0UsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLEdBQUcsYUFBYSxFQUFFLCtEQUErRCxDQUFDO0lBQzNGLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxHQUFHLGFBQWEsRUFBRSw4REFBOEQsQ0FBQztJ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LE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFDbEUsY0FBYyxFQUFFO29CQUNkLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7aUJBQ25FLEVBQ0QsWUFBWSxFQUFFO29CQUNaLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7aUJBQ25FLEVBQ0QsV0FBVyxFQUFFO29CQUNYLE9BQU8sRUFBRTt3QkFDUCxHQUFHLEVBQUUsQ0FBQzt3QkFDTixNQUFNLEVBQUUsQ0FBQztxQkFDVjtvQkFDRCxZQUFZLEVBQUUsQ0FBQztvQkFDZixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsY0FBYyxFQUFFLFFBQVE7b0JBQ3hCLEtBQUssRUFBRSxNQUFNO29CQUNiLE1BQU0sRUFBRSxFQUFFO2lCQUNYLEdBQ0QsQ0FDTztRQUVWLE1BQU0sSUFBSSxDQUNULHVCQUFDLE1BQU0sSUFDTCxNQUFNLEVBQUUsTUFBTSxFQUNkLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQ2xELENBQ0gsQ0FDUSxDQUNaLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBJRW5naW5lIH0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IExhYmVsLCBVaUVudGl0eSwgRHJvcGRvd24gfSBmcm9tICdAZGNsL3JlYWN0LWVjcyc7XG5pbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBnZXRDb250ZW50VXJsIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHR5cGUgU3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEFkbWluVG9vbHMgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBIZWFkZXIgfSBmcm9tICcuLi9IZWFkZXInO1xuaW1wb3J0IHsgQWN0aXZlIH0gZnJvbSAnLi4vQWN0aXZlJztcbmltcG9ydCB7IENhcmQgfSBmcm9tICcuLi9DYXJkJztcbmltcG9ydCB7XG4gIGdldFZpZGVvUGxheWVycyxcbiAgaXNEY2xDYXN0LFxuICBpc0xpdmVTdHJlYW0sXG4gIGlzVmlkZW9VcmwsXG4gIHVzZVNlbGVjdGVkVmlkZW9QbGF5ZXIsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVmlkZW9Db250cm9sVVJMIH0gZnJvbSAnLi9WaWRlb1VybCc7XG5pbXBvcnQgeyBMaXZlU3RyZWFtIH0gZnJvbSAnLi9MaXZlU3RyZWFtJztcbmltcG9ydCBEY2xDYXN0IGZyb20gJy4vRGNsQ2FzdCc7XG5pbXBvcnQgUHJlc2VudGF0aW9uUGFuZWwgZnJvbSAnLi9EY2xDYXN0L1ByZXNlbnRhdGlvblBhbmVsJztcblxuLy8gQ29uc3RhbnRzXG5leHBvcnQgY29uc3QgSUNPTlMgPSB7XG4gIGdldCBWSURFT19DT05UUk9MKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wucG5nYDtcbiAgfSxcbiAgZ2V0IFBSRVZJT1VTX0JVVFRPTigpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLXByZXZpb3VzLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgRk9SV0FSRF9CVVRUT04oKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC1mb3J3YXJkLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgUExBWV9CVVRUT04oKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC1wbGF5LWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgTVVURSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLW11dGUucG5nYDtcbiAgfSxcbiAgZ2V0IExPT1AoKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC1sb29wLnBuZ2A7XG4gIH0sXG4gIGdldCBWT0xVTUVfTUlOVVNfQlVUVE9OKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtdm9sdW1lLW1pbnVzLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgVk9MVU1FX1BMVVNfQlVUVE9OKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtdm9sdW1lLXBsdXMtYnV0dG9uLnBuZ2A7XG4gIH0sXG4gIGdldCBWSURFT19TT1VSQ0UoKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC12aWRlby1pY29uLnBuZ2A7XG4gIH0sXG4gIGdldCBMSVZFX1NPVVJDRSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLWxpdmUucG5nYDtcbiAgfSxcbiAgZ2V0IERDTF9DQVNUX1NPVVJDRSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLWRjbC1jYXN0LnBuZ2A7XG4gIH0sXG4gIGdldCBJTkZPKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2luZm8ucG5nYDtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBWT0xVTUVfU1RFUCA9IDAuMTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZPTFVNRSA9IDE7XG5cbmV4cG9ydCBjb25zdCBDT0xPUlMgPSB7XG4gIFdISVRFOiBDb2xvcjQuV2hpdGUoKSxcbiAgR1JBWTogQ29sb3I0LmNyZWF0ZSgxNjAgLyAyNTUsIDE1NSAvIDI1NSwgMTY4IC8gMjU1LCAxKSxcbiAgU1VDQ0VTUzogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyMzNENFNzcnKSxcbn0gYXMgY29uc3Q7XG5cbi8vIE1haW4gY29tcG9uZW50XG5leHBvcnQgZnVuY3Rpb24gVmlkZW9Db250cm9sKHtcbiAgZW5naW5lLFxuICBzdGF0ZSxcbiAgcGxheWVyQWRkcmVzcyxcbn06IHtcbiAgZW5naW5lOiBJRW5naW5lO1xuICBzdGF0ZTogU3RhdGU7XG4gIHBsYXllckFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn0pIHtcbiAgY29uc3QgW3NlbGVjdGVkRW50aXR5LCBzZWxlY3RlZFZpZGVvXSA9IHVzZVNlbGVjdGVkVmlkZW9QbGF5ZXIoZW5naW5lKSA/PyBbXTtcbiAgY29uc3QgdmlkZW9QbGF5ZXJzID0gZ2V0VmlkZW9QbGF5ZXJzKGVuZ2luZSk7XG4gIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gUmVhY3RFY3MudXNlU3RhdGU8J3ZpZGVvLXVybCcgfCAnbGl2ZScgfCAnZGNsLWNhc3QnIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWQsXG4gICk7XG5cbiAgUmVhY3RFY3MudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZChcbiAgICAgIHNlbGVjdGVkVmlkZW8gJiYgaXNEY2xDYXN0KHNlbGVjdGVkVmlkZW8uc3JjKVxuICAgICAgICA/ICdkY2wtY2FzdCdcbiAgICAgICAgOiBzZWxlY3RlZFZpZGVvICYmIGlzVmlkZW9Vcmwoc2VsZWN0ZWRWaWRlby5zcmMpXG4gICAgICAgICAgPyAndmlkZW8tdXJsJ1xuICAgICAgICAgIDogJ2xpdmUnLFxuICAgICk7XG4gIH0sIFtzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRWaWRlb1BsYXllcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPENhcmRcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICB0b3A6IDMyLFxuICAgICAgICAgICAgcmlnaHQ6IDMyLFxuICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgbGVmdDogMzIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgICA8SGVhZGVyXG4gICAgICAgICAgICBpY29uU3JjPXtJQ09OUy5WSURFT19DT05UUk9MfVxuICAgICAgICAgICAgdGl0bGU9XCI8Yj5WSURFTyBTQ1JFRU5TPC9iPlwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dmlkZW9QbGF5ZXJzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIHZhbHVlPVwiPGI+Q3VycmVudCBTY3JlZW48L2I+XCJcbiAgICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IG1hcmdpbjogeyBib3R0b206IDE2IH0gfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDE2IH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt2aWRlb1BsYXllcnMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9fT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3ZpZGVvUGxheWVycy5tYXAoXG4gICAgICAgICAgICAgICAgICAgIChwbGF5ZXI6IE5vbk51bGxhYmxlPEFkbWluVG9vbHNbJ3ZpZGVvQ29udHJvbCddWyd2aWRlb1BsYXllcnMnXT5bMF0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgYDxiPiR7cGxheWVyLmN1c3RvbU5hbWV9PC9iPmAsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleD17c3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPz8gMH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtpZHggPT4gKHN0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFZpZGVvUGxheWVyID0gaWR4KX1cbiAgICAgICAgICAgICAgICAgIHRleHRBbGlnbj1cIm1pZGRsZS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LldoaXRlKCkgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICAgIHZhbHVlPVwiPGI+TWVkaWEgU291cmNlPC9iPlwiXG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgYm90dG9tOiAyLCB0b3A6IDE2IH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMTAgfSxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzMwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDdXN0b21CdXR0b25cbiAgICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3VybFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cIjxiPlZJREVPIFVSTDwvYj5cIlxuICAgICAgICAgICAgICAgICAgaWNvbj17SUNPTlMuVklERU9fU09VUkNFfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWQoJ3ZpZGVvLXVybCcpfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkID09PSAndmlkZW8tdXJsJ31cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17c2VsZWN0ZWRWaWRlbyAmJiBpc1ZpZGVvVXJsKHNlbGVjdGVkVmlkZW8uc3JjKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgd2lkdGg6ICczMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q3VzdG9tQnV0dG9uXG4gICAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9kY2xfY2FzdFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cIjxiPkRDTCBDQVNUPC9iPlwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtJQ09OUy5EQ0xfQ0FTVF9TT1VSQ0V9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZCgnZGNsLWNhc3QnKX1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZCA9PT0gJ2RjbC1jYXN0J31cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17c2VsZWN0ZWRWaWRlbyAmJiBpc0RjbENhc3Qoc2VsZWN0ZWRWaWRlby5zcmMpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzMwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDdXN0b21CdXR0b25cbiAgICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2xpdmVcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9XCI8Yj5TVFJFQU08L2I+XCJcbiAgICAgICAgICAgICAgICAgIGljb249e0lDT05TLkxJVkVfU09VUkNFfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWQoJ2xpdmUnKX1cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17c2VsZWN0ZWRWaWRlbyAmJiBpc0xpdmVTdHJlYW0oc2VsZWN0ZWRWaWRlby5zcmMpfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkID09PSAnbGl2ZSd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDwvQ2FyZD5cbiAgICAgIHtzZWxlY3RlZCAmJiBzZWxlY3RlZEVudGl0eSAmJiAoXG4gICAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgICAgICA8Q2FyZD5cbiAgICAgICAgICAgIHtzZWxlY3RlZCA9PT0gJ3ZpZGVvLXVybCcgJiYgKFxuICAgICAgICAgICAgICA8VmlkZW9Db250cm9sVVJMXG4gICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgZW50aXR5PXtzZWxlY3RlZEVudGl0eX1cbiAgICAgICAgICAgICAgICB2aWRlbz17c2VsZWN0ZWRWaWRlb31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2VsZWN0ZWQgPT09ICdsaXZlJyAmJiAoXG4gICAgICAgICAgICAgIDxMaXZlU3RyZWFtXG4gICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgZW50aXR5PXtzZWxlY3RlZEVudGl0eX1cbiAgICAgICAgICAgICAgICB2aWRlbz17c2VsZWN0ZWRWaWRlb31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2VsZWN0ZWQgPT09ICdkY2wtY2FzdCcgJiYgKFxuICAgICAgICAgICAgICA8RGNsQ2FzdFxuICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgIHN0YXRlPXtzdGF0ZX1cbiAgICAgICAgICAgICAgICBlbnRpdHk9e3NlbGVjdGVkRW50aXR5fVxuICAgICAgICAgICAgICAgIHZpZGVvPXtzZWxlY3RlZFZpZGVvfVxuICAgICAgICAgICAgICAgIHBsYXllckFkZHJlc3M9e3BsYXllckFkZHJlc3N9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgICA8Q2FyZFxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZGlzcGxheTpcbiAgICAgICAgICAgICAgICBzZWxlY3RlZCA9PT0gJ2RjbC1jYXN0JyAmJlxuICAgICAgICAgICAgICAgICEhc3RhdGUudmlkZW9Db250cm9sLnByZXNlbnRhdGlvblN0YXRlICYmXG4gICAgICAgICAgICAgICAgIXN0YXRlLnZpZGVvQ29udHJvbC5pc01pbmltaXplZFxuICAgICAgICAgICAgICAgICAgPyAnZmxleCdcbiAgICAgICAgICAgICAgICAgIDogJ25vbmUnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8UHJlc2VudGF0aW9uUGFuZWxcbiAgICAgICAgICAgICAgcHJlc2VudGF0aW9uU3RhdGU9e3N0YXRlLnZpZGVvQ29udHJvbC5wcmVzZW50YXRpb25TdGF0ZX1cbiAgICAgICAgICAgICAgb25TdG9wU2hhcmluZz17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0YXRlLnZpZGVvQ29udHJvbC5wcmVzZW50YXRpb25TdGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9DYXJkPlxuICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgKX1cbiAgICA8L1VpRW50aXR5PlxuICApO1xufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNsaWNrKCk6IHZvaWQ7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBpY29uOiBzdHJpbmc7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gQ3VzdG9tQnV0dG9uKHsgYWN0aXZlLCB2YWx1ZSwgaWQsIG9uQ2xpY2ssIGljb24sIHNlbGVjdGVkLCBlbmdpbmUgfTogUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGhlaWdodDogJzEwMCUnLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IHdpZHRoOiAnMTAwJScgfX0+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgb25Nb3VzZURvd249e29uQ2xpY2t9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICBpY29uPXtpY29ufVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNCxcbiAgICAgICAgICAgIGhlaWdodDogMjQsXG4gICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNvbG9yPXtzZWxlY3RlZCA/IENvbG9yNC5CbGFjaygpIDogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyNGQ0ZDRkMnKX1cbiAgICAgICAgICBpY29uQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgY29sb3I6IHNlbGVjdGVkID8gQ29sb3I0LkJsYWNrKCkgOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZDRkNGQycpLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICBjb2xvcjogc2VsZWN0ZWQgPyBDb2xvcjQuV2hpdGUoKSA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjNDM0MDRBJyksXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgICAgICB0b3A6IDYsXG4gICAgICAgICAgICAgIGJvdHRvbTogNixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBoZWlnaHQ6IDM2LFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuXG4gICAgICB7YWN0aXZlICYmIChcbiAgICAgICAgPEFjdGl2ZVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IHdpZHRoOiAnMTAwJScsIG1hcmdpbjogeyB0b3A6IDYgfSB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L1VpRW50aXR5PlxuICApO1xufVxuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixzQkFBc0IsR0FDdkIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sT0FBTyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLGlCQUFpQixNQUFNLDZCQUE2QixDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRztJQUNuQixJQUFJLGFBQWE7UUFDZixPQUFPLEdBQUcsYUFBYSxFQUFFLCtDQUErQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxHQUFHLGFBQWEsRUFBRSwrREFBK0QsQ0FB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RTtpQkFDckIsRUFDRCxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQ2xFLGNBQWMsRUFBRTtvQkFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO2lCQUNuRSxFQUNELFlBQVksRUFBRTtvQkFDWixLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO2lCQUNuRSxFQUNELFdBQVcsRUFBRTtvQkFDWCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxFQUFFLENBQUM7d0JBQ04sTUFBTSxFQUFFLENBQUM7cUJBQ1Y7b0JBQ0QsWUFBWSxFQUFFLENBQUM7b0JBQ2YsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLGNBQWMsRUFBRSxRQUFRO29CQUN4QixLQUFLLEVBQUUsTUFBTTtvQkFDYixNQUFNLEVBQUUsRUFBRTtpQkFDWCxHQUNELENBQ087UUFFVixNQUFNLElBQUksQ0FDVCx1QkFBQyxNQUFNLElBQ0wsTUFBTSxFQUFFLE1BQU0sRUFDZCxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUNsRCxDQUNILENBQ1EsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgSUVuZ2luZSB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCBSZWFjdEVjcywgeyBMYWJlbCwgVWlFbnRpdHksIERyb3Bkb3duIH0gZnJvbSAnQGRjbC9yZWFjdC1lY3MnO1xuaW1wb3J0IHsgQ29sb3I0IH0gZnJvbSAnQGRjbC9zZGsvbWF0aCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgZ2V0Q29udGVudFVybCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB0eXBlIFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBBZG1pblRvb2xzIH0gZnJvbSAnLi4vLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgSGVhZGVyIH0gZnJvbSAnLi4vSGVhZGVyJztcbmltcG9ydCB7IEFjdGl2ZSB9IGZyb20gJy4uL0FjdGl2ZSc7XG5pbXBvcnQgeyBDYXJkIH0gZnJvbSAnLi4vQ2FyZCc7XG5pbXBvcnQgeyBzZWxlY3RWaWRlb1N1YlRhYiwgc2VsZWN0VmlkZW9QbGF5ZXIsIGRpc21pc3NQcmVzZW50YXRpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIGdldFZpZGVvUGxheWVycyxcbiAgaXNEY2xDYXN0LFxuICBpc0xpdmVTdHJlYW0sXG4gIGlzVmlkZW9VcmwsXG4gIHVzZVNlbGVjdGVkVmlkZW9QbGF5ZXIsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVmlkZW9Db250cm9sVVJMIH0gZnJvbSAnLi9WaWRlb1VybCc7XG5pbXBvcnQgeyBMaXZlU3RyZWFtIH0gZnJvbSAnLi9MaXZlU3RyZWFtJztcbmltcG9ydCBEY2xDYXN0IGZyb20gJy4vRGNsQ2FzdCc7XG5pbXBvcnQgUHJlc2VudGF0aW9uUGFuZWwgZnJvbSAnLi9EY2xDYXN0L1ByZXNlbnRhdGlvblBhbmVsJztcblxuLy8gQ29uc3RhbnRzXG5leHBvcnQgY29uc3QgSUNPTlMgPSB7XG4gIGdldCBWSURFT19DT05UUk9MKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wucG5nYDtcbiAgfSxcbiAgZ2V0IFBSRVZJT1VTX0JVVFRPTigpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLXByZXZpb3VzLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgRk9SV0FSRF9CVVRUT04oKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC1mb3J3YXJkLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgUExBWV9CVVRUT04oKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC1wbGF5LWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgTVVURSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLW11dGUucG5nYDtcbiAgfSxcbiAgZ2V0IExPT1AoKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC1sb29wLnBuZ2A7XG4gIH0sXG4gIGdldCBWT0xVTUVfTUlOVVNfQlVUVE9OKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtdm9sdW1lLW1pbnVzLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgVk9MVU1FX1BMVVNfQlVUVE9OKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtdm9sdW1lLXBsdXMtYnV0dG9uLnBuZ2A7XG4gIH0sXG4gIGdldCBWSURFT19TT1VSQ0UoKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC12aWRlby1pY29uLnBuZ2A7XG4gIH0sXG4gIGdldCBMSVZFX1NPVVJDRSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLWxpdmUucG5nYDtcbiAgfSxcbiAgZ2V0IERDTF9DQVNUX1NPVVJDRSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLWRjbC1jYXN0LnBuZ2A7XG4gIH0sXG4gIGdldCBJTkZPKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2luZm8ucG5nYDtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBWT0xVTUVfU1RFUCA9IDAuMTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZPTFVNRSA9IDE7XG5cbmV4cG9ydCBjb25zdCBDT0xPUlMgPSB7XG4gIFdISVRFOiBDb2xvcjQuV2hpdGUoKSxcbiAgR1JBWTogQ29sb3I0LmNyZWF0ZSgxNjAgLyAyNTUsIDE1NSAvIDI1NSwgMTY4IC8gMjU1LCAxKSxcbiAgU1VDQ0VTUzogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyMzNENFNzcnKSxcbn0gYXMgY29uc3Q7XG5cbi8vIE1haW4gY29tcG9uZW50XG5leHBvcnQgZnVuY3Rpb24gVmlkZW9Db250cm9sKHtcbiAgZW5naW5lLFxuICBzdGF0ZSxcbiAgcGxheWVyQWRkcmVzcyxcbn06IHtcbiAgZW5naW5lOiBJRW5naW5lO1xuICBzdGF0ZTogU3RhdGU7XG4gIHBsYXllckFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn0pIHtcbiAgY29uc3QgW3NlbGVjdGVkRW50aXR5LCBzZWxlY3RlZFZpZGVvXSA9IHVzZVNlbGVjdGVkVmlkZW9QbGF5ZXIoZW5naW5lKSA/PyBbXTtcbiAgY29uc3QgdmlkZW9QbGF5ZXJzID0gZ2V0VmlkZW9QbGF5ZXJzKGVuZ2luZSk7XG4gIGNvbnN0IHNlbGVjdGVkID0gc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkVGFiO1xuXG4gIFJlYWN0RWNzLnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQW4gZXhwbGljaXQgRENMIENhc3QgY29udGV4dCAoYXV0by1vcGVuIG9uIGEgcHJlc2VudGF0aW9uLCBvciBhbiBhY3RpdmUgY2FzdFxuICAgIC8vIHN0cmVhbSkgd2lucyBvdmVyIHNyYy1kZXJpdmF0aW9uLCBzbyB0aGUgcGFuZWwgbGFuZHMgb24gRENMIENhc3QgZXZlbiB3aGVuIG5vXG4gICAgLy8gc2NlbmUgc2NyZWVuIGlzIGNhc3RpbmcgeWV0LiBPdGhlcndpc2UgcmVmbGVjdCB0aGUgc2VsZWN0ZWQgc2NyZWVuJ3Mgc291cmNlLlxuICAgIGlmIChzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRTdHJlYW0gPT09ICdkY2wtY2FzdCcpIHtcbiAgICAgIHNlbGVjdFZpZGVvU3ViVGFiKCdkY2wtY2FzdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZWxlY3RWaWRlb1N1YlRhYihzZWxlY3RlZFZpZGVvICYmIGlzVmlkZW9Vcmwoc2VsZWN0ZWRWaWRlby5zcmMpID8gJ3ZpZGVvLXVybCcgOiAnbGl2ZScpO1xuICB9LCBbc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkVmlkZW9QbGF5ZXIsIHN0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFN0cmVhbV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPENhcmRcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICB0b3A6IDMyLFxuICAgICAgICAgICAgcmlnaHQ6IDMyLFxuICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgbGVmdDogMzIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgICA8SGVhZGVyXG4gICAgICAgICAgICBpY29uU3JjPXtJQ09OUy5WSURFT19DT05UUk9MfVxuICAgICAgICAgICAgdGl0bGU9XCI8Yj5WSURFTyBTQ1JFRU5TPC9iPlwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dmlkZW9QbGF5ZXJzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIHZhbHVlPVwiPGI+Q3VycmVudCBTY3JlZW48L2I+XCJcbiAgICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IG1hcmdpbjogeyBib3R0b206IDE2IH0gfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDE2IH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt2aWRlb1BsYXllcnMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9fT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3ZpZGVvUGxheWVycy5tYXAoXG4gICAgICAgICAgICAgICAgICAgIChwbGF5ZXI6IE5vbk51bGxhYmxlPEFkbWluVG9vbHNbJ3ZpZGVvQ29udHJvbCddWyd2aWRlb1BsYXllcnMnXT5bMF0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgYDxiPiR7cGxheWVyLmN1c3RvbU5hbWV9PC9iPmAsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleD17c3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPz8gMH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtpZHggPT4gc2VsZWN0VmlkZW9QbGF5ZXIoaWR4KX1cbiAgICAgICAgICAgICAgICAgIHRleHRBbGlnbj1cIm1pZGRsZS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LldoaXRlKCkgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICAgIHZhbHVlPVwiPGI+TWVkaWEgU291cmNlPC9iPlwiXG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgYm90dG9tOiAyLCB0b3A6IDE2IH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMTAgfSxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzMwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDdXN0b21CdXR0b25cbiAgICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3VybFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cIjxiPlZJREVPIFVSTDwvYj5cIlxuICAgICAgICAgICAgICAgICAgaWNvbj17SUNPTlMuVklERU9fU09VUkNFfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2VsZWN0VmlkZW9TdWJUYWIoJ3ZpZGVvLXVybCcpfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkID09PSAndmlkZW8tdXJsJ31cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17c2VsZWN0ZWRWaWRlbyAmJiBpc1ZpZGVvVXJsKHNlbGVjdGVkVmlkZW8uc3JjKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgd2lkdGg6ICczMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q3VzdG9tQnV0dG9uXG4gICAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9kY2xfY2FzdFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cIjxiPkRDTCBDQVNUPC9iPlwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtJQ09OUy5EQ0xfQ0FTVF9TT1VSQ0V9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZWxlY3RWaWRlb1N1YlRhYignZGNsLWNhc3QnKX1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZCA9PT0gJ2RjbC1jYXN0J31cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17c2VsZWN0ZWRWaWRlbyAmJiBpc0RjbENhc3Qoc2VsZWN0ZWRWaWRlby5zcmMpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzMwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDdXN0b21CdXR0b25cbiAgICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2xpdmVcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9XCI8Yj5TVFJFQU08L2I+XCJcbiAgICAgICAgICAgICAgICAgIGljb249e0lDT05TLkxJVkVfU09VUkNFfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2VsZWN0VmlkZW9TdWJUYWIoJ2xpdmUnKX1cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17c2VsZWN0ZWRWaWRlbyAmJiBpc0xpdmVTdHJlYW0oc2VsZWN0ZWRWaWRlby5zcmMpfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkID09PSAnbGl2ZSd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDwvQ2FyZD5cbiAgICAgIHtzZWxlY3RlZCAmJiBzZWxlY3RlZEVudGl0eSAmJiAoXG4gICAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgICAgICA8Q2FyZD5cbiAgICAgICAgICAgIHtzZWxlY3RlZCA9PT0gJ3ZpZGVvLXVybCcgJiYgKFxuICAgICAgICAgICAgICA8VmlkZW9Db250cm9sVVJMXG4gICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgZW50aXR5PXtzZWxlY3RlZEVudGl0eX1cbiAgICAgICAgICAgICAgICB2aWRlbz17c2VsZWN0ZWRWaWRlb31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2VsZWN0ZWQgPT09ICdsaXZlJyAmJiAoXG4gICAgICAgICAgICAgIDxMaXZlU3RyZWFtXG4gICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgZW50aXR5PXtzZWxlY3RlZEVudGl0eX1cbiAgICAgICAgICAgICAgICB2aWRlbz17c2VsZWN0ZWRWaWRlb31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2VsZWN0ZWQgPT09ICdkY2wtY2FzdCcgJiYgKFxuICAgICAgICAgICAgICA8RGNsQ2FzdFxuICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgIHN0YXRlPXtzdGF0ZX1cbiAgICAgICAgICAgICAgICBlbnRpdHk9e3NlbGVjdGVkRW50aXR5fVxuICAgICAgICAgICAgICAgIHZpZGVvPXtzZWxlY3RlZFZpZGVvfVxuICAgICAgICAgICAgICAgIHBsYXllckFkZHJlc3M9e3BsYXllckFkZHJlc3N9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgICA8Q2FyZFxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZGlzcGxheTpcbiAgICAgICAgICAgICAgICBzZWxlY3RlZCA9PT0gJ2RjbC1jYXN0JyAmJlxuICAgICAgICAgICAgICAgICEhc3RhdGUudmlkZW9Db250cm9sLnByZXNlbnRhdGlvblN0YXRlICYmXG4gICAgICAgICAgICAgICAgIXN0YXRlLnZpZGVvQ29udHJvbC5pc01pbmltaXplZFxuICAgICAgICAgICAgICAgICAgPyAnZmxleCdcbiAgICAgICAgICAgICAgICAgIDogJ25vbmUnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8UHJlc2VudGF0aW9uUGFuZWxcbiAgICAgICAgICAgICAgcHJlc2VudGF0aW9uU3RhdGU9e3N0YXRlLnZpZGVvQ29udHJvbC5wcmVzZW50YXRpb25TdGF0ZX1cbiAgICAgICAgICAgICAgb25TdG9wU2hhcmluZz17KCkgPT4gZGlzbWlzc1ByZXNlbnRhdGlvbigpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICApfVxuICAgIDwvVWlFbnRpdHk+XG4gICk7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG9uQ2xpY2soKTogdm9pZDtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGljb246IHN0cmluZztcbiAgZW5naW5lOiBJRW5naW5lO1xuICBhY3RpdmU/OiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBDdXN0b21CdXR0b24oeyBhY3RpdmUsIHZhbHVlLCBpZCwgb25DbGljaywgaWNvbiwgc2VsZWN0ZWQsIGVuZ2luZSB9OiBQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgaGVpZ2h0OiAnMTAwJScsIHdpZHRoOiAnMTAwJScgfX0+XG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBvbk1vdXNlRG93bj17b25DbGlja31cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgZm9udFNpemU9ezE0fVxuICAgICAgICAgIGljb249e2ljb259XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNCxcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgY29sb3I9e3NlbGVjdGVkID8gQ29sb3I0LkJsYWNrKCkgOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZDRkNGQycpfVxuICAgICAgICAgIGljb25CYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICBjb2xvcjogc2VsZWN0ZWQgPyBDb2xvcjQuQmxhY2soKSA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkNGQ0ZDJyksXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIGNvbG9yOiBzZWxlY3RlZCA/IENvbG9yNC5XaGl0ZSgpIDogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyM0MzQwNEEnKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICAgIHRvcDogNixcbiAgICAgICAgICAgICAgYm90dG9tOiA2LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogNixcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGhlaWdodDogMzYsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIHthY3RpdmUgJiYgKFxuICAgICAgICA8QWN0aXZlXG4gICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3sgd2lkdGg6ICcxMDAlJywgbWFyZ2luOiB7IHRvcDogNiB9IH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvVWlFbnRpdHk+XG4gICk7XG59XG4iXX0=
@@ -21,6 +21,8 @@ export declare function getAdminToolkitVideoControl(engine: IEngine): DeepReadon
21
21
  export declare function getVideoPlayers(engine: IEngine): NonNullable<AdminTools['videoControl']['videoPlayers']>;
22
22
  export declare function createVideoPlayerControls(entity: Entity, engine: IEngine): VideoPlayerControls;
23
23
  export declare function useSelectedVideoPlayer(engine: IEngine): [Entity, DeepReadonlyObject<PBVideoPlayer>] | null;
24
+ export declare const CAST_SRC_PREFIX = "livekit-video://";
25
+ export declare function findActiveCastScreenIndex(engine: IEngine): number | undefined;
24
26
  export declare function isDclCast(url: string): boolean;
25
27
  export declare function isLiveStream(url: string): boolean;
26
28
  export declare function isVideoUrl(url: string): boolean;