@dcl/asset-packs 2.16.0 → 2.16.1

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.
@@ -1,7 +1,7 @@
1
1
  import ReactEcs from '@dcl/react-ecs';
2
2
  import type { DeepReadonlyObject, Entity, IEngine, PBVideoPlayer } from '@dcl/ecs';
3
3
  export declare const LIVEKIT_STREAM_SRC = "livekit-video://current-stream";
4
- export declare const STREAMING_SUPPORT_URL = "https://docs.decentraland.org//creator/editor/live-streaming";
4
+ export declare const STREAMING_SUPPORT_URL = "https://docs.decentraland.org/creator/scene-editor/operate-live/live-streaming";
5
5
  export declare function LiveStream({ engine, entity, video, }: {
6
6
  engine: IEngine;
7
7
  entity: Entity;
@@ -12,7 +12,7 @@ import { ShowStreamKey } from './ShowStreamKey';
12
12
  import { GenerateStreamKey } from './GenerateStreamKey';
13
13
  import { DeleteStreamKeyConfirmation } from './DeleteStreamKey';
14
14
  export const LIVEKIT_STREAM_SRC = 'livekit-video://current-stream';
15
- export const STREAMING_SUPPORT_URL = 'https://docs.decentraland.org//creator/editor/live-streaming';
15
+ export const STREAMING_SUPPORT_URL = 'https://docs.decentraland.org/creator/scene-editor/operate-live/live-streaming';
16
16
  export function LiveStream({ engine, entity, video, }) {
17
17
  const [showResetStreamKey, setResetStreamKey] = ReactEcs.useState(false);
18
18
  const [loading, setLoading] = ReactEcs.useState(false);
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvTGl2ZVN0cmVhbS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDM0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyw4REFBOEQsQ0FBQztBQUVwRyxNQUFNLFVBQVUsVUFBVSxDQUFDLEVBQ3pCLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUtOO0lBQ0MsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGlC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O1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUNULHVCQUFDLFdBQVcsSUFDVixXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQy9CLE1BQU0sRUFBRSxNQUFNLEdBQ2QsQ0FDSCxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ2pCLHVCQUFDLGFBQWEsSUFDWixNQUFNLEVBQUUsZUFBZSxJQUFJLENBQUMsRUFDNUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxLQUFLLEVBQ1osT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUN0QyxDQUNILENBQUMsQ0FBQyxDQUFDLENBQ0YsdUJBQUMsaUJBQWlCLElBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FDdkMsQ0FDSDtRQUNBLENBQUMsWUFBWSxJQUFJLENBQ2hCLHVCQUFDLEtBQUssSUFDSixRQUFRLEVBQUUsRUFBRSxFQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUN0QyxLQUFLLEVBQUMsdUdBQXVHLEdBQzdHLENBQ0gsQ0FDUSxDQUNaLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3I0IH0gZnJvbSAnQGRjbC9zZGsvbWF0aCc7XG5pbXBvcnQgUmVhY3RFY3MsIHsgVWlFbnRpdHksIExhYmVsIH0gZnJvbSAnQGRjbC9yZWFjdC1lY3MnO1xuaW1wb3J0IHR5cGUgeyBEZWVwUmVhZG9ubHlPYmplY3QsIEVudGl0eSwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB7IG9wZW5FeHRlcm5hbFVybCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuaW1wb3J0IHsgZ2V0Q29tcG9uZW50cyB9IGZyb20gJy4uLy4uLy4uL2RlZmluaXRpb25zJztcbmltcG9ydCB7IElDT05TIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgeyBnZXRTdHJlYW1LZXkgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgSGVhZGVyIH0gZnJvbSAnLi4vLi4vSGVhZGVyJztcbmltcG9ydCB7IExvYWRpbmdEb3RzIH0gZnJvbSAnLi4vLi4vTG9hZGluZyc7XG5pbXBvcnQgeyBnZXRIZWxwSWNvbiB9IGZyb20gJy4uL1ZpZGVvVXJsJztcbmltcG9ydCB7IFNob3dTdHJlYW1LZXkgfSBmcm9tICcuL1Nob3dTdHJlYW1LZXknO1xuaW1wb3J0IHsgR2VuZXJhdGVTdHJlYW1LZXkgfSBmcm9tICcuL0dlbmVyYXRlU3RyZWFtS2V5JztcbmltcG9ydCB7IERlbGV0ZVN0cmVhbUtleUNvbmZpcm1hdGlvbiB9IGZyb20gJy4vRGVsZXRlU3RyZWFtS2V5JztcblxuZXhwb3J0IGNvbnN0IExJVkVLSVRfU1RSRUFNX1NSQyA9ICdsaXZla2l0LXZpZGVvOi8vY3VycmVudC1zdHJlYW0nO1xuZXhwb3J0IGNvbnN0IFNUUkVBTUlOR19TVVBQT1JUX1VSTCA9ICdodHRwczovL2RvY3MuZGVjZW50cmFsYW5kLm9yZy8vY3JlYXRvci9lZGl0b3IvbGl2ZS1zdHJlYW1pbmcnO1xuXG5leHBvcnQgZnVuY3Rpb24gTGl2ZVN0cmVhbSh7XG4gIGVuZ2luZSxcbiAgZW50aXR5LFxuICB2aWRlbyxcbn06IHtcbiAgZW5naW5lOiBJRW5naW5lO1xuICBlbnRpdHk6IEVudGl0eTtcbiAgdmlkZW86IERlZXBSZWFkb25seU9iamVjdDxQQlZpZGVvUGxheWVyPiB8IHVuZGVmaW5lZDtcbn0pIHtcbiAgY29uc3QgW3Nob3dSZXNldFN0cmVhbUtleSwgc2V0UmVzZXRTdHJlYW1LZXldID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBSZWFjdEVjcy51c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtoYXNTdHJlYW1LZXksIHNldEhhc1N0cmVhbUtleV0gPSBSZWFjdEVjcy51c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IHsgVmlkZW9Db250cm9sU3RhdGUgfSA9IGdldENvbXBvbmVudHMoZW5naW5lKTtcbiAgY29uc3QgdmlkZW9Db250cm9sU3RhdGUgPSBWaWRlb0NvbnRyb2xTdGF0ZS5nZXRPck51bGwoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHkpO1xuICBjb25zdCBzdHJlYW1LZXlFbmRzQXQgPSB2aWRlb0NvbnRyb2xTdGF0ZT8uZW5kc0F0O1xuXG4gIFJlYWN0RWNzLnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXN5bmMgZnVuY3Rpb24gc3RyZWFtS2V5Rm4oKSB7XG4gICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgY29uc3QgW2Vycm9yLCBkYXRhXSA9IGF3YWl0IGdldFN0cmVhbUtleSgpO1xuICAgICAgY29uc3QgdmlkZW9Db250cm9sU3RhdGUgPSBWaWRlb0NvbnRyb2xTdGF0ZS5nZXRNdXRhYmxlKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB2aWRlb0NvbnRyb2xTdGF0ZS5lbmRzQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHNldEhhc1N0cmVhbUtleShmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2aWRlb0NvbnRyb2xTdGF0ZS5lbmRzQXQgPSBkYXRhPy5lbmRzQXQ7XG4gICAgICAgIHNldEhhc1N0cmVhbUtleSh0cnVlKTtcbiAgICAgIH1cbiAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgIH1cbiAgICBzdHJlYW1LZXlGbigpO1xuICB9LCBbXSk7XG5cbiAgaWYgKHNob3dSZXNldFN0cmVhbUtleSkge1xuICAgIHJldHVybiAoXG4gICAgICA8RGVsZXRlU3RyZWFtS2V5Q29uZmlybWF0aW9uXG4gICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0UmVzZXRTdHJlYW1LZXkoZmFsc2UpfVxuICAgICAgICBvblJlc2V0PXsoKSA9PiB7XG4gICAgICAgICAgc2V0UmVzZXRTdHJlYW1LZXkoZmFsc2UpO1xuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIHdpZHRoOiAnMTAwJScgfX0+XG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgd2lkdGg6ICcxMDAlJywganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyB9fT5cbiAgICAgICAgPEhlYWRlclxuICAgICAgICAgIGljb25TcmM9e0lDT05TLkxJVkVfU09VUkNFfVxuICAgICAgICAgIHRpdGxlPVwiU3RyZWFtXCJcbiAgICAgICAgLz5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IG9wZW5FeHRlcm5hbFVybCh7IHVybDogU1RSRUFNSU5HX1NVUFBPUlRfVVJMIH0pfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICBjb2xvcjogQ29sb3I0LldoaXRlKCksXG4gICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgIHNyYzogZ2V0SGVscEljb24oKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdGV4dEFsaWduPVwibWlkZGxlLWxlZnRcIlxuICAgICAgICB2YWx1ZT1cIlVzZSB0aGUgUlRNUCBzZXJ2ZXIgYW5kIHN0cmVhbSBrZXkgYmVsb3cgaW4geW91ciBicm9hZGNhc3Rpbmcgc29mdHdhcmUgdG8gc3RhcnQgc3RyZWFtaW5nIHRvIHRoaXMgc2NyZWVuLlwiXG4gICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAvPlxuICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgIDxMb2FkaW5nRG90c1xuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7IG1pbkhlaWdodDogNDAwIH19XG4gICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgIC8+XG4gICAgICApIDogaGFzU3RyZWFtS2V5ID8gKFxuICAgICAgICA8U2hvd1N0cmVhbUtleVxuICAgICAgICAgIGVuZHNBdD17c3RyZWFtS2V5RW5kc0F0ID8/IDB9XG4gICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgZW50aXR5PXtlbnRpdHl9XG4gICAgICAgICAgdmlkZW89e3ZpZGVvfVxuICAgICAgICAgIG9uUmVzZXQ9eygpID0+IHNldFJlc2V0U3RyZWFtS2V5KHRydWUpfVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPEdlbmVyYXRlU3RyZWFtS2V5XG4gICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgb25HZW5lcmF0ZT17KCkgPT4gc2V0SGFzU3RyZWFtS2V5KHRydWUpfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHshaGFzU3RyZWFtS2V5ICYmIChcbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgZm9udFNpemU9ezE0fVxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZGMkQ1NScpfVxuICAgICAgICAgIHZhbHVlPVwiRG8gbm90IHNoYXJlIHlvdXIgc3RyZWFtIGtleSB3aXRoIGFueW9uZSwgYW5kIGJlIGNhcmVmdWwgbm90IHRvIGRpc3BsYXkgaXQgb24gc2NyZWVuIHdoaWxlIHN0cmVhbWluZy5cIlxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L1VpRW50aXR5PlxuICApO1xufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvTGl2ZVN0cmVhbS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDM0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsZ0ZBQWdGLENBQUM7QUFFbkYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxFQUN6QixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssR0FLTjtJQUNDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxp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WjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDVCx1QkFBQyxXQUFXLElBQ1YsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUMvQixNQUFNLEVBQUUsTUFBTSxHQUNkLENBQ0gsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNqQix1QkFBQyxhQUFhLElBQ1osTUFBTSxFQUFFLGVBQWUsSUFBSSxDQUFDLEVBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsTUFBTSxFQUFFLE1BQU0sRUFDZCxLQUFLLEVBQUUsS0FBSyxFQUNaLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FDdEMsQ0FDSCxDQUFDLENBQUMsQ0FBQyxDQUNGLHVCQUFDLGlCQUFpQixJQUNoQixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQ3ZDLENBQ0g7UUFDQSxDQUFDLFlBQVksSUFBSSxDQUNoQix1QkFBQyxLQUFLLElBQ0osUUFBUSxFQUFFLEVBQUUsRUFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFDdEMsS0FBSyxFQUFDLHVHQUF1RyxHQUM3RyxDQUNILENBQ1EsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IFVpRW50aXR5LCBMYWJlbCB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBFbnRpdHksIElFbmdpbmUsIFBCVmlkZW9QbGF5ZXIgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgeyBvcGVuRXh0ZXJuYWxVcmwgfSBmcm9tICd+c3lzdGVtL1Jlc3RyaWN0ZWRBY3Rpb25zJztcbmltcG9ydCB7IGdldENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBJQ09OUyB9IGZyb20gJy4uJztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IHsgZ2V0U3RyZWFtS2V5IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gJy4uLy4uL0hlYWRlcic7XG5pbXBvcnQgeyBMb2FkaW5nRG90cyB9IGZyb20gJy4uLy4uL0xvYWRpbmcnO1xuaW1wb3J0IHsgZ2V0SGVscEljb24gfSBmcm9tICcuLi9WaWRlb1VybCc7XG5pbXBvcnQgeyBTaG93U3RyZWFtS2V5IH0gZnJvbSAnLi9TaG93U3RyZWFtS2V5JztcbmltcG9ydCB7IEdlbmVyYXRlU3RyZWFtS2V5IH0gZnJvbSAnLi9HZW5lcmF0ZVN0cmVhbUtleSc7XG5pbXBvcnQgeyBEZWxldGVTdHJlYW1LZXlDb25maXJtYXRpb24gfSBmcm9tICcuL0RlbGV0ZVN0cmVhbUtleSc7XG5cbmV4cG9ydCBjb25zdCBMSVZFS0lUX1NUUkVBTV9TUkMgPSAnbGl2ZWtpdC12aWRlbzovL2N1cnJlbnQtc3RyZWFtJztcbmV4cG9ydCBjb25zdCBTVFJFQU1JTkdfU1VQUE9SVF9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmRlY2VudHJhbGFuZC5vcmcvY3JlYXRvci9zY2VuZS1lZGl0b3Ivb3BlcmF0ZS1saXZlL2xpdmUtc3RyZWFtaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIExpdmVTdHJlYW0oe1xuICBlbmdpbmUsXG4gIGVudGl0eSxcbiAgdmlkZW8sXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG59KSB7XG4gIGNvbnN0IFtzaG93UmVzZXRTdHJlYW1LZXksIHNldFJlc2V0U3RyZWFtS2V5XSA9IFJlYWN0RWNzLnVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbaGFzU3RyZWFtS2V5LCBzZXRIYXNTdHJlYW1LZXldID0gUmVhY3RFY3MudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCB7IFZpZGVvQ29udHJvbFN0YXRlIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0T3JOdWxsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgY29uc3Qgc3RyZWFtS2V5RW5kc0F0ID0gdmlkZW9Db250cm9sU3RhdGU/LmVuZHNBdDtcblxuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGFzeW5jIGZ1bmN0aW9uIHN0cmVhbUtleUZuKCkge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IFtlcnJvciwgZGF0YV0gPSBhd2FpdCBnZXRTdHJlYW1LZXkoKTtcbiAgICAgIGNvbnN0IHZpZGVvQ29udHJvbFN0YXRlID0gVmlkZW9Db250cm9sU3RhdGUuZ2V0TXV0YWJsZShzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gdW5kZWZpbmVkO1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlkZW9Db250cm9sU3RhdGUuZW5kc0F0ID0gZGF0YT8uZW5kc0F0O1xuICAgICAgICBzZXRIYXNTdHJlYW1LZXkodHJ1ZSk7XG4gICAgICB9XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gICAgc3RyZWFtS2V5Rm4oKTtcbiAgfSwgW10pO1xuXG4gIGlmIChzaG93UmVzZXRTdHJlYW1LZXkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPERlbGV0ZVN0cmVhbUtleUNvbmZpcm1hdGlvblxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgb25DYW5jZWw9eygpID0+IHNldFJlc2V0U3RyZWFtS2V5KGZhbHNlKX1cbiAgICAgICAgb25SZXNldD17KCkgPT4ge1xuICAgICAgICAgIHNldFJlc2V0U3RyZWFtS2V5KGZhbHNlKTtcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IHdpZHRoOiAnMTAwJScsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfX0+XG4gICAgICAgIDxIZWFkZXJcbiAgICAgICAgICBpY29uU3JjPXtJQ09OUy5MSVZFX1NPVVJDRX1cbiAgICAgICAgICB0aXRsZT1cIlN0cmVhbVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiBvcGVuRXh0ZXJuYWxVcmwoeyB1cmw6IFNUUkVBTUlOR19TVVBQT1JUX1VSTCB9KX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IGdldEhlbHBJY29uKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPExhYmVsXG4gICAgICAgIHRleHRBbGlnbj1cIm1pZGRsZS1sZWZ0XCJcbiAgICAgICAgdmFsdWU9XCJVc2UgdGhlIFJUTVAgc2VydmVyIGFuZCBzdHJlYW0ga2V5IGJlbG93IGluIHlvdXIgYnJvYWRjYXN0aW5nIHNvZnR3YXJlIHRvIHN0YXJ0IHN0cmVhbWluZyB0byB0aGlzIHNjcmVlbi5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgLz5cbiAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICA8TG9hZGluZ0RvdHNcbiAgICAgICAgICB1aVRyYW5zZm9ybT17eyBtaW5IZWlnaHQ6IDQwMCB9fVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAvPlxuICAgICAgKSA6IGhhc1N0cmVhbUtleSA/IChcbiAgICAgICAgPFNob3dTdHJlYW1LZXlcbiAgICAgICAgICBlbmRzQXQ9e3N0cmVhbUtleUVuZHNBdCA/PyAwfVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIGVudGl0eT17ZW50aXR5fVxuICAgICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgICBvblJlc2V0PXsoKSA9PiBzZXRSZXNldFN0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxHZW5lcmF0ZVN0cmVhbUtleVxuICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgIG9uR2VuZXJhdGU9eygpID0+IHNldEhhc1N0cmVhbUtleSh0cnVlKX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7IWhhc1N0cmVhbUtleSAmJiAoXG4gICAgICAgIDxMYWJlbFxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNGRjJENTUnKX1cbiAgICAgICAgICB2YWx1ZT1cIkRvIG5vdCBzaGFyZSB5b3VyIHN0cmVhbSBrZXkgd2l0aCBhbnlvbmUsIGFuZCBiZSBjYXJlZnVsIG5vdCB0byBkaXNwbGF5IGl0IG9uIHNjcmVlbiB3aGlsZSBzdHJlYW1pbmcuXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
@@ -66,7 +66,7 @@ export function VideoControl({ engine, state, playerAddress, }) {
66
66
  ? 'video-url'
67
67
  : 'live');
68
68
  }, [state.videoControl.selectedVideoPlayer]);
69
- return (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column', width: '100%', height: '100%' } },
69
+ return (ReactEcs.createElement(UiEntity, { uiTransform: { flexDirection: 'column', width: '100%' } },
70
70
  ReactEcs.createElement(Card, { uiTransform: {
71
71
  padding: {
72
72
  top: 32,
@@ -77,7 +77,6 @@ export function VideoControl({ engine, state, playerAddress, }) {
77
77
  } },
78
78
  ReactEcs.createElement(UiEntity, { uiTransform: {
79
79
  width: '100%',
80
- height: '100%',
81
80
  flexDirection: 'column',
82
81
  } },
83
82
  ReactEcs.createElement(Header, { iconSrc: ICONS.VIDEO_CONTROL, title: "<b>VIDEO SCREENS</b>" }),
@@ -152,4 +151,4 @@ function CustomButton({ active, value, id, onClick, icon, selected, engine }) {
152
151
  } })),
153
152
  active && (ReactEcs.createElement(Active, { engine: engine, uiTransform: { width: '100%', margin: { top: 6 } } }))));
154
153
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLHNCQUFzQixHQUN2QixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8saUJBQWlCLE1BQU0sNkJBQTZCLENBQUM7QUFHNUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLElBQUksYUFBYTtRQUNmLE9BQU8sR0FBRyxhQUFhLEVBQUUsK0NBQStDLENBQUM7SUFDM0UsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLEdBQUcsYUFBYSxFQUFFLCtEQUErRCxDQUFDO0lBQzNGLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxHQUFHLGFBQWEsRUFBRSw4REFBOEQsQ0FBQztJ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aUJBQ3JCLEVBQ0QsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUNsRSxjQUFjLEVBQUU7b0JBQ2QsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztpQkFDbkUsRUFDRCxZQUFZLEVBQUU7b0JBQ1osS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztpQkFDbkUsRUFDRCxXQUFXLEVBQUU7b0JBQ1gsT0FBTyxFQUFFO3dCQUNQLEdBQUcsRUFBRSxDQUFDO3dCQUNOLE1BQU0sRUFBRSxDQUFDO3FCQUNWO29CQUNELFlBQVksRUFBRSxDQUFDO29CQUNmLFVBQVUsRUFBRSxRQUFRO29CQUNwQixjQUFjLEVBQUUsUUFBUTtvQkFDeEIsS0FBSyxFQUFFLE1BQU07b0JBQ2IsTUFBTSxFQUFFLEVBQUU7aUJBQ1gsR0FDRCxDQUNPO1FBRVYsTUFBTSxJQUFJLENBQ1QsdUJBQUMsTUFBTSxJQUNMLE1BQU0sRUFBRSxNQUFNLEVBQ2QsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FDbEQsQ0FDSCxDQUNRLENBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIElFbmdpbmUgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgUmVhY3RFY3MsIHsgTGFiZWwsIFVpRW50aXR5LCBEcm9wZG93biB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IGdldENvbnRlbnRVcmwgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdHlwZSBTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQWRtaW5Ub29scyB9IGZyb20gJy4uLy4uL2RlZmluaXRpb25zJztcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gJy4uL0hlYWRlcic7XG5pbXBvcnQgeyBBY3RpdmUgfSBmcm9tICcuLi9BY3RpdmUnO1xuaW1wb3J0IHsgQ2FyZCB9IGZyb20gJy4uL0NhcmQnO1xuaW1wb3J0IHtcbiAgZ2V0VmlkZW9QbGF5ZXJzLFxuICBpc0RjbENhc3QsXG4gIGlzTGl2ZVN0cmVhbSxcbiAgaXNWaWRlb1VybCxcbiAgdXNlU2VsZWN0ZWRWaWRlb1BsYXllcixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBWaWRlb0NvbnRyb2xVUkwgfSBmcm9tICcuL1ZpZGVvVXJsJztcbmltcG9ydCB7IExpdmVTdHJlYW0gfSBmcm9tICcuL0xpdmVTdHJlYW0nO1xuaW1wb3J0IERjbENhc3QgZnJvbSAnLi9EY2xDYXN0JztcbmltcG9ydCBQcmVzZW50YXRpb25QYW5lbCBmcm9tICcuL0RjbENhc3QvUHJlc2VudGF0aW9uUGFuZWwnO1xuXG4vLyBDb25zdGFudHNcbmV4cG9ydCBjb25zdCBJQ09OUyA9IHtcbiAgZ2V0IFZJREVPX0NPTlRST0woKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC5wbmdgO1xuICB9LFxuICBnZXQgUFJFVklPVVNfQlVUVE9OKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtcHJldmlvdXMtYnV0dG9uLnBuZ2A7XG4gIH0sXG4gIGdldCBGT1JXQVJEX0JVVFRPTigpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLWZvcndhcmQtYnV0dG9uLnBuZ2A7XG4gIH0sXG4gIGdldCBQTEFZX0JVVFRPTigpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLXBsYXktYnV0dG9uLnBuZ2A7XG4gIH0sXG4gIGdldCBNVVRFKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtbXV0ZS5wbmdgO1xuICB9LFxuICBnZXQgTE9PUCgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLWxvb3AucG5nYDtcbiAgfSxcbiAgZ2V0IFZPTFVNRV9NSU5VU19CVVRUT04oKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC12b2x1bWUtbWludXMtYnV0dG9uLnBuZ2A7XG4gIH0sXG4gIGdldCBWT0xVTUVfUExVU19CVVRUT04oKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvdmlkZW8tY29udHJvbC12b2x1bWUtcGx1cy1idXR0b24ucG5nYDtcbiAgfSxcbiAgZ2V0IFZJREVPX1NPVVJDRSgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy92aWRlby1jb250cm9sLXZpZGVvLWljb24ucG5nYDtcbiAgfSxcbiAgZ2V0IExJVkVfU09VUkNFKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtbGl2ZS5wbmdgO1xuICB9LFxuICBnZXQgRENMX0NBU1RfU09VUkNFKCkge1xuICAgIHJldHVybiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL3ZpZGVvLWNvbnRyb2wtZGNsLWNhc3QucG5nYDtcbiAgfSxcbiAgZ2V0IElORk8oKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvaW5mby5wbmdgO1xuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFZPTFVNRV9TVEVQID0gMC4xO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVk9MVU1FID0gMTtcblxuZXhwb3J0IGNvbnN0IENPTE9SUyA9IHtcbiAgV0hJVEU6IENvbG9yNC5XaGl0ZSgpLFxuICBHUkFZOiBDb2xvcjQuY3JlYXRlKDE2MCAvIDI1NSwgMTU1IC8gMjU1LCAxNjggLyAyNTUsIDEpLFxuICBTVUNDRVNTOiBDb2xvcjQuZnJvbUhleFN0cmluZygnIzM0Q0U3NycpLFxufSBhcyBjb25zdDtcblxuLy8gTWFpbiBjb21wb25lbnRcbmV4cG9ydCBmdW5jdGlvbiBWaWRlb0NvbnRyb2woe1xuICBlbmdpbmUsXG4gIHN0YXRlLFxuICBwbGF5ZXJBZGRyZXNzLFxufToge1xuICBlbmdpbmU6IElFbmdpbmU7XG4gIHN0YXRlOiBTdGF0ZTtcbiAgcGxheWVyQWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xufSkge1xuICBjb25zdCBbc2VsZWN0ZWRFbnRpdHksIHNlbGVjdGVkVmlkZW9dID0gdXNlU2VsZWN0ZWRWaWRlb1BsYXllcihlbmdpbmUpID8/IFtdO1xuICBjb25zdCB2aWRlb1BsYXllcnMgPSBnZXRWaWRlb1BsYXllcnMoZW5naW5lKTtcbiAgY29uc3QgW3NlbGVjdGVkLCBzZXRTZWxlY3RlZF0gPSBSZWFjdEVjcy51c2VTdGF0ZTwndmlkZW8tdXJsJyB8ICdsaXZlJyB8ICdkY2wtY2FzdCcgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcblxuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFNlbGVjdGVkKFxuICAgICAgc2VsZWN0ZWRWaWRlbyAmJiBpc0RjbENhc3Qoc2VsZWN0ZWRWaWRlby5zcmMpXG4gICAgICAgID8gJ2RjbC1jYXN0J1xuICAgICAgICA6IHNlbGVjdGVkVmlkZW8gJiYgaXNWaWRlb1VybChzZWxlY3RlZFZpZGVvLnNyYylcbiAgICAgICAgICA/ICd2aWRlby11cmwnXG4gICAgICAgICAgOiAnbGl2ZScsXG4gICAgKTtcbiAgfSwgW3N0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFZpZGVvUGxheWVyXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMCUnIH19PlxuICAgICAgPENhcmRcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICB0b3A6IDMyLFxuICAgICAgICAgICAgcmlnaHQ6IDMyLFxuICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgbGVmdDogMzIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7LyogSGVhZGVyICovfVxuICAgICAgICAgIDxIZWFkZXJcbiAgICAgICAgICAgIGljb25TcmM9e0lDT05TLlZJREVPX0NPTlRST0x9XG4gICAgICAgICAgICB0aXRsZT1cIjxiPlZJREVPIFNDUkVFTlM8L2I+XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHt2aWRlb1BsYXllcnMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICA8TGFiZWxcbiAgICAgICAgICAgICAgdmFsdWU9XCI8Yj5DdXJyZW50IFNjcmVlbjwvYj5cIlxuICAgICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IGJvdHRvbTogMTYgfSB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IGJvdHRvbTogMTYgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ZpZGVvUGxheWVycy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nIH19PlxuICAgICAgICAgICAgICAgIDxEcm9wZG93blxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17dmlkZW9QbGF5ZXJzLm1hcChcbiAgICAgICAgICAgICAgICAgICAgKHBsYXllcjogTm9uTnVsbGFibGU8QWRtaW5Ub29sc1sndmlkZW9Db250cm9sJ11bJ3ZpZGVvUGxheWVycyddPlswXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBgPGI+JHtwbGF5ZXIuY3VzdG9tTmFtZX08L2I+YCxcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4PXtzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRWaWRlb1BsYXllciA/PyAwfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2lkeCA9PiAoc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPSBpZHgpfVxuICAgICAgICAgICAgICAgICAgdGV4dEFsaWduPVwibWlkZGxlLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDb2xvcjQuV2hpdGUoKSB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgICAgdmFsdWU9XCI8Yj5NZWRpYSBTb3VyY2U8L2I+XCJcbiAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDIsIHRvcDogMTYgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxMCB9LFxuICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMzAlJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUJ1dHRvblxuICAgICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfdXJsXCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPVwiPGI+VklERU8gVVJMPC9iPlwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtJQ09OUy5WSURFT19TT1VSQ0V9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZCgndmlkZW8tdXJsJyl9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWQgPT09ICd2aWRlby11cmwnfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlPXtzZWxlY3RlZFZpZGVvICYmIGlzVmlkZW9Vcmwoc2VsZWN0ZWRWaWRlby5zcmMpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzMwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDdXN0b21CdXR0b25cbiAgICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX2RjbF9jYXN0XCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPVwiPGI+RENMIENBU1Q8L2I+XCJcbiAgICAgICAgICAgICAgICAgIGljb249e0lDT05TLkRDTF9DQVNUX1NPVVJDRX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkKCdkY2wtY2FzdCcpfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkID09PSAnZGNsLWNhc3QnfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlPXtzZWxlY3RlZFZpZGVvICYmIGlzRGNsQ2FzdChzZWxlY3RlZFZpZGVvLnNyYyl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMzAlJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUJ1dHRvblxuICAgICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfbGl2ZVwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cIjxiPlNUUkVBTTwvYj5cIlxuICAgICAgICAgICAgICAgICAgaWNvbj17SUNPTlMuTElWRV9TT1VSQ0V9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZCgnbGl2ZScpfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlPXtzZWxlY3RlZFZpZGVvICYmIGlzTGl2ZVN0cmVhbShzZWxlY3RlZFZpZGVvLnNyYyl9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWQgPT09ICdsaXZlJ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgPC9DYXJkPlxuICAgICAge3NlbGVjdGVkICYmIHNlbGVjdGVkRW50aXR5ICYmIChcbiAgICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgICAgIDxDYXJkPlxuICAgICAgICAgICAge3NlbGVjdGVkID09PSAndmlkZW8tdXJsJyAmJiAoXG4gICAgICAgICAgICAgIDxWaWRlb0NvbnRyb2xVUkxcbiAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICBlbnRpdHk9e3NlbGVjdGVkRW50aXR5fVxuICAgICAgICAgICAgICAgIHZpZGVvPXtzZWxlY3RlZFZpZGVvfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzZWxlY3RlZCA9PT0gJ2xpdmUnICYmIChcbiAgICAgICAgICAgICAgPExpdmVTdHJlYW1cbiAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICBlbnRpdHk9e3NlbGVjdGVkRW50aXR5fVxuICAgICAgICAgICAgICAgIHZpZGVvPXtzZWxlY3RlZFZpZGVvfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzZWxlY3RlZCA9PT0gJ2RjbC1jYXN0JyAmJiAoXG4gICAgICAgICAgICAgIDxEY2xDYXN0XG4gICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgc3RhdGU9e3N0YXRlfVxuICAgICAgICAgICAgICAgIGVudGl0eT17c2VsZWN0ZWRFbnRpdHl9XG4gICAgICAgICAgICAgICAgdmlkZW89e3NlbGVjdGVkVmlkZW99XG4gICAgICAgICAgICAgICAgcGxheWVyQWRkcmVzcz17cGxheWVyQWRkcmVzc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9DYXJkPlxuICAgICAgICAgIDxDYXJkXG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkID09PSAnZGNsLWNhc3QnICYmXG4gICAgICAgICAgICAgICAgISFzdGF0ZS52aWRlb0NvbnRyb2wucHJlc2VudGF0aW9uU3RhdGUgJiZcbiAgICAgICAgICAgICAgICAhc3RhdGUudmlkZW9Db250cm9sLmlzTWluaW1pemVkXG4gICAgICAgICAgICAgICAgICA/ICdmbGV4J1xuICAgICAgICAgICAgICAgICAgOiAnbm9uZScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxQcmVzZW50YXRpb25QYW5lbFxuICAgICAgICAgICAgICBwcmVzZW50YXRpb25TdGF0ZT17c3RhdGUudmlkZW9Db250cm9sLnByZXNlbnRhdGlvblN0YXRlfVxuICAgICAgICAgICAgICBvblN0b3BTaGFyaW5nPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RhdGUudmlkZW9Db250cm9sLnByZXNlbnRhdGlvblN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICApfVxuICAgIDwvVWlFbnRpdHk+XG4gICk7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG9uQ2xpY2soKTogdm9pZDtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGljb246IHN0cmluZztcbiAgZW5naW5lOiBJRW5naW5lO1xuICBhY3RpdmU/OiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBDdXN0b21CdXR0b24oeyBhY3RpdmUsIHZhbHVlLCBpZCwgb25DbGljaywgaWNvbiwgc2VsZWN0ZWQsIGVuZ2luZSB9OiBQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgaGVpZ2h0OiAnMTAwJScsIHdpZHRoOiAnMTAwJScgfX0+XG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBvbk1vdXNlRG93bj17b25DbGlja31cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgZm9udFNpemU9ezE0fVxuICAgICAgICAgIGljb249e2ljb259XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNCxcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgY29sb3I9e3NlbGVjdGVkID8gQ29sb3I0LkJsYWNrKCkgOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZDRkNGQycpfVxuICAgICAgICAgIGljb25CYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICBjb2xvcjogc2VsZWN0ZWQgPyBDb2xvcjQuQmxhY2soKSA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjRkNGQ0ZDJyksXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIGNvbG9yOiBzZWxlY3RlZCA/IENvbG9yNC5XaGl0ZSgpIDogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyM0MzQwNEEnKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICAgIHRvcDogNixcbiAgICAgICAgICAgICAgYm90dG9tOiA2LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogNixcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGhlaWdodDogMzYsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIHthY3RpdmUgJiYgKFxuICAgICAgICA8QWN0aXZlXG4gICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3sgd2lkdGg6ICcxMDAlJywgbWFyZ2luOiB7IHRvcDogNiB9IH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvVWlFbnRpdHk+XG4gICk7XG59XG4iXX0=
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
@@ -1,4 +1,5 @@
1
1
  import { Color4 } from '@dcl/sdk/math';
2
+ import { isMobile as detectIsMobile } from '@dcl/sdk/platform';
2
3
  import ReactEcs, { Label, Button as DCLButton, UiEntity, } from '@dcl/react-ecs';
3
4
  import { getComponents, } from '../definitions';
4
5
  import { VideoControl } from './VideoControl';
@@ -17,7 +18,16 @@ import SharePresentationModal from './VideoControl/DclCast/SharePresentationModa
17
18
  import { isPreview } from './fetch-utils';
18
19
  import { initAdminMessageBus, getAdminMessageBus } from './admin-message-bus';
19
20
  export const nextTickFunctions = [];
20
- const ADMIN_TOOLKIT_VIRTUAL_UI_SIZE = { virtualWidth: 1920, virtualHeight: 1080 };
21
+ const MOBILE_UI_SCALE = 2;
22
+ const BASE_VIRTUAL_UI_SIZE = { virtualWidth: 1920, virtualHeight: 1080 };
23
+ function getVirtualUiSize() {
24
+ return detectIsMobile()
25
+ ? {
26
+ virtualWidth: BASE_VIRTUAL_UI_SIZE.virtualWidth / MOBILE_UI_SCALE,
27
+ virtualHeight: BASE_VIRTUAL_UI_SIZE.virtualHeight / MOBILE_UI_SCALE,
28
+ }
29
+ : BASE_VIRTUAL_UI_SIZE;
30
+ }
21
31
  export const state = {
22
32
  adminToolkitUiEntity: 0,
23
33
  panelOpen: false,
@@ -149,7 +159,7 @@ export async function initializeAdminData(engine, sdkHelpers, playersHelper) {
149
159
  export function createAdminToolkitUI(engine, pointerEventsSystem, reactBasedUiSystem, sdkHelpers, playersHelper) {
150
160
  initializeAdminData(engine, sdkHelpers, playersHelper).then(() => {
151
161
  console.log('createAdminToolkitUI - initialized');
152
- reactBasedUiSystem.setUiRenderer(() => uiComponent(engine, pointerEventsSystem, sdkHelpers, playersHelper), ADMIN_TOOLKIT_VIRTUAL_UI_SIZE);
162
+ reactBasedUiSystem.setUiRenderer(() => uiComponent(engine, pointerEventsSystem, sdkHelpers, playersHelper), getVirtualUiSize());
153
163
  });
154
164
  }
155
165
  function isAllowedAdmin(_engine, adminToolkitEntitie, player) {
@@ -159,10 +169,14 @@ function isAllowedAdmin(_engine, adminToolkitEntitie, player) {
159
169
  const isAdmin = sceneAdminsCache.find($ => $.address === playerAddress);
160
170
  return isAdmin || isPreview();
161
171
  }
162
- const uiComponent = (engine, pointerEventsSystem, sdkHelpers, playersHelper) => {
172
+ const uiComponent = (engine, _pointerEventsSystem, _sdkHelpers, playersHelper) => {
163
173
  const adminToolkitEntity = getAdminToolkitComponent(engine);
164
174
  const player = playersHelper?.getPlayer();
165
175
  const isPlayerAdmin = isAllowedAdmin(engine, adminToolkitEntity, player);
176
+ const isMobile = detectIsMobile();
177
+ const outerPosition = isMobile ? { top: 16, left: 300 } : { top: 120, right: 14 };
178
+ const innerPosition = isMobile ? { left: 8, top: 2 } : { right: 8 };
179
+ const toggleBtnSize = isMobile ? 54 : 42;
166
180
  return [
167
181
  ReactEcs.createElement(UiEntity, { uiTransform: {
168
182
  positionType: 'absolute',
@@ -171,15 +185,15 @@ const uiComponent = (engine, pointerEventsSystem, sdkHelpers, playersHelper) =>
171
185
  } },
172
186
  isPlayerAdmin ? (ReactEcs.createElement(UiEntity, { uiTransform: {
173
187
  positionType: 'absolute',
174
- flexDirection: 'row',
175
- position: { top: 120, right: 14 },
188
+ flexDirection: isMobile ? 'row-reverse' : 'row',
189
+ position: outerPosition,
176
190
  } },
177
191
  ReactEcs.createElement(UiEntity, { uiTransform: {
178
192
  display: state.panelOpen ? 'flex' : 'none',
179
193
  width: 500,
180
194
  pointerFilter: 'block',
181
195
  flexDirection: 'column',
182
- margin: { right: 8 },
196
+ margin: innerPosition,
183
197
  } },
184
198
  ReactEcs.createElement(UiEntity, { uiTransform: {
185
199
  width: '100%',
@@ -290,14 +304,20 @@ const uiComponent = (engine, pointerEventsSystem, sdkHelpers, playersHelper) =>
290
304
  state.activeTab = TabType.NONE;
291
305
  }
292
306
  } })),
293
- state.activeTab === TabType.TEXT_ANNOUNCEMENT_CONTROL ? (ReactEcs.createElement(TextAnnouncementsControl, { engine: engine, state: state, player: player })) : null,
294
- state.activeTab === TabType.VIDEO_CONTROL ? (ReactEcs.createElement(VideoControl, { engine: engine, state: state, playerAddress: player?.userId })) : null,
295
- state.activeTab === TabType.SMART_ITEMS_CONTROL ? (ReactEcs.createElement(SmartItemsControl, { engine: engine, state: state })) : null,
296
- state.activeTab === TabType.MODERATION_CONTROL && (ReactEcs.createElement(ModerationControl, { engine: engine, player: player, sceneAdmins: sceneAdminsCache }))),
307
+ ReactEcs.createElement(UiEntity, { uiTransform: {
308
+ width: '100%',
309
+ flexDirection: 'column',
310
+ maxHeight: isMobile ? '85vh' : undefined,
311
+ overflow: isMobile ? 'scroll' : 'visible',
312
+ } },
313
+ state.activeTab === TabType.TEXT_ANNOUNCEMENT_CONTROL ? (ReactEcs.createElement(TextAnnouncementsControl, { engine: engine, state: state, player: player })) : null,
314
+ state.activeTab === TabType.VIDEO_CONTROL ? (ReactEcs.createElement(VideoControl, { engine: engine, state: state, playerAddress: player?.userId })) : null,
315
+ state.activeTab === TabType.SMART_ITEMS_CONTROL ? (ReactEcs.createElement(SmartItemsControl, { engine: engine, state: state })) : null,
316
+ state.activeTab === TabType.MODERATION_CONTROL && (ReactEcs.createElement(ModerationControl, { engine: engine, player: player, sceneAdmins: sceneAdminsCache })))),
297
317
  ReactEcs.createElement(UiEntity, { uiTransform: {
298
318
  display: 'flex',
299
- height: 42,
300
- width: 42,
319
+ height: toggleBtnSize,
320
+ width: toggleBtnSize,
301
321
  alignItems: 'center',
302
322
  alignContent: 'center',
303
323
  justifyContent: 'center',
@@ -310,8 +330,8 @@ const uiComponent = (engine, pointerEventsSystem, sdkHelpers, playersHelper) =>
310
330
  color: Color4.create(1, 1, 1, 1),
311
331
  } },
312
332
  ReactEcs.createElement(DCLButton, { value: "", uiTransform: {
313
- height: 40,
314
- width: 40,
333
+ height: toggleBtnSize - 2,
334
+ width: toggleBtnSize - 2,
315
335
  alignItems: 'center',
316
336
  alignContent: 'center',
317
337
  justifyContent: 'center',
@@ -334,4 +354,4 @@ const uiComponent = (engine, pointerEventsSystem, sdkHelpers, playersHelper) =>
334
354
  sharePresentationState.show && sharePresentationState.onClose && (ReactEcs.createElement(SharePresentationModal, { onClose: sharePresentationState.onClose, streamingKey: state.videoControl.dclCast?.streamingKey ?? '' })),
335
355
  ];
336
356
  };
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLFFBQVEsRUFBRSxFQUNmLEtBQUssRUFDTCxNQUFNLElBQUksU0FBUyxFQUNuQixRQUFRLEdBRVQsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsYUFBYSxHQUlkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQWMsT0FBTyxFQUEwQixNQUFNLFNBQVMsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixzQkFBc0IsR0FFdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxzQkFBc0IsTUFBTSwrQ0FBK0MsQ0FB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LE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLEdBQ3RCLENBQ0g7UUFDRCxhQUFhLENBQUMsSUFBSTtZQUNoQixhQUFhLENBQUMsYUFBYTtZQUMzQixhQUFhLENBQUMsWUFBWTtZQUMxQixhQUFhLENBQUMsT0FBTyxJQUFJLENBQ3ZCLHVCQUFDLGVBQWUsSUFDZCxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFDeEMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxjQUFjLEVBQzVDLGFBQWEsRUFBRSxhQUFhLENBQUMsYUFBYSxFQUMxQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFDeEMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLEdBQzlCLENBQ0g7UUFDSCxzQkFBc0IsQ0FBQyxJQUFJLElBQUksc0JBQXNCLENBQUMsT0FBTyxJQUFJLENBQy9ELHVCQUFDLHNCQUFzQixJQUNyQixPQUFPLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxFQUN2QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsWUFBWSxJQUFJLEVBQUUsR0FDNUQsQ0FDSDtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gUmVhY3RFY3MgaXMgcmVxdWlyZWQgZm9yIEpTWCBmYWN0b3J5XG5pbXBvcnQgUmVhY3RFY3MsIHtcbiAgTGFiZWwsXG4gIEJ1dHRvbiBhcyBEQ0xCdXR0b24sXG4gIFVpRW50aXR5LFxuICB0eXBlIFJlYWN0QmFzZWRVaVN5c3RlbSxcbn0gZnJvbSAnQGRjbC9yZWFjdC1lY3MnO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHksIHR5cGUgSUVuZ2luZSwgdHlwZSBQb2ludGVyRXZlbnRzU3lzdGVtIH0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IHtcbiAgZ2V0Q29tcG9uZW50cyxcbiAgdHlwZSBHZXRQbGF5ZXJEYXRhUmVzLFxuICB0eXBlIElQbGF5ZXJzSGVscGVyLFxuICB0eXBlIElTREtIZWxwZXJzLFxufSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBWaWRlb0NvbnRyb2wgfSBmcm9tICcuL1ZpZGVvQ29udHJvbCc7XG5pbXBvcnQgeyBUZXh0QW5ub3VuY2VtZW50c0NvbnRyb2wgfSBmcm9tICcuL1RleHRBbm5vdW5jZW1lbnRzQ29udHJvbCc7XG5pbXBvcnQgeyBTbWFydEl0ZW1zQ29udHJvbCB9IGZyb20gJy4vU21hcnRJdGVtc0NvbnRyb2wnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi9CdXR0b24nO1xuaW1wb3J0IHsgVGV4dEFubm91bmNlbWVudHMgfSBmcm9tICcuL1RleHRBbm5vdW5jZW1lbnRzJztcbmltcG9ydCB7IGdldENvbnRlbnRVcmwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB0eXBlIFN0YXRlLCBUYWJUeXBlLCB0eXBlIFNlbGVjdGVkU21hcnRJdGVtIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBnZXRCdG5Nb2RlcmF0aW9uQ29udHJvbCxcbiAgTW9kZXJhdGlvbkNvbnRyb2wsXG4gIG1vZGVyYXRpb25Db250cm9sU3RhdGUsXG4gIHR5cGUgU2NlbmVBZG1pbixcbn0gZnJvbSAnLi9Nb2RlcmF0aW9uQ29udHJvbCc7XG5pbXBvcnQgeyBnZXRTY2VuZUFkbWlucywgZ2V0U2NlbmVCYW5zLCB0eXBlIFNjZW5lQmFuVXNlciB9IGZyb20gJy4vTW9kZXJhdGlvbkNvbnRyb2wvYXBpJztcbmltcG9ydCB7IE1vZGFsVXNlckxpc3QsIFVzZXJMaXN0VHlwZSB9IGZyb20gJy4vTW9kZXJhdGlvbkNvbnRyb2wvVXNlcnNMaXN0JztcbmltcG9ydCB7IHNob3djYXNlU3RhdGUsIHNoYXJlUHJlc2VudGF0aW9uU3RhdGUgfSBmcm9tICcuL1ZpZGVvQ29udHJvbC9EY2xDYXN0JztcbmltcG9ydCB7IFNwZWFrZXJTaG93Y2FzZSB9IGZyb20gJy4vVmlkZW9Db250cm9sL0RjbENhc3QvU3BlYWtlclNob3djYXNlJztcbmltcG9ydCBTaGFyZVByZXNlbnRhdGlvbk1vZGFsIGZyb20gJy4vVmlkZW9Db250cm9sL0RjbENhc3QvU2hhcmVQcmVzZW50YXRpb25Nb2RhbCc7XG5pbXBvcnQgeyBpc1ByZXZpZXcgfSBmcm9tICcuL2ZldGNoLXV0aWxzJztcbmltcG9ydCB7IGluaXRBZG1pbk1lc3NhZ2VCdXMsIGdldEFkbWluTWVzc2FnZUJ1cyB9IGZyb20gJy4vYWRtaW4tbWVzc2FnZS1idXMnO1xuXG5leHBvcnQgY29uc3QgbmV4dFRpY2tGdW5jdGlvbnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5jb25zdCBBRE1JTl9UT09MS0lUX1ZJUlRVQUxfVUlfU0laRSA9IHsgdmlydHVhbFdpZHRoOiAxOTIwLCB2aXJ0dWFsSGVpZ2h0OiAxMDgwIH07XG5cbmV4cG9ydCBjb25zdCBzdGF0ZTogU3RhdGUgPSB7XG4gIGFkbWluVG9vbGtpdFVpRW50aXR5OiAwIGFzIEVudGl0eSxcbiAgcGFuZWxPcGVuOiBmYWxzZSxcbiAgYWN0aXZlVGFiOiBUYWJUeXBlLk5PTkUsXG4gIHZpZGVvQ29udHJvbDoge1xuICAgIHNlbGVjdGVkVmlkZW9QbGF5ZXI6IHVuZGVmaW5lZCxcbiAgICBzZWxlY3RlZFN0cmVhbTogdW5kZWZpbmVkLFxuICAgIGRjbENhc3Q6IHVuZGVmaW5lZCxcbiAgICBpc01pbmltaXplZDogZmFsc2UsXG4gICAgcHJlc2VudGF0aW9uU3RhdGU6IHVuZGVmaW5lZCxcbiAgfSxcbiAgc21hcnRJdGVtc0NvbnRyb2w6IHtcbiAgICBzZWxlY3RlZFNtYXJ0SXRlbTogdW5kZWZpbmVkLFxuICAgIHNtYXJ0SXRlbXM6IG5ldyBNYXA8RW50aXR5LCBTZWxlY3RlZFNtYXJ0SXRlbT4oKSxcbiAgfSxcbiAgdGV4dEFubm91bmNlbWVudENvbnRyb2w6IHtcbiAgICBlbnRpdHk6IHVuZGVmaW5lZCxcbiAgICB0ZXh0OiB1bmRlZmluZWQsXG4gICAgbWVzc2FnZVJhdGVUcmFja2VyOiBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpLFxuICAgIGFubm91bmNlbWVudHM6IFtdLFxuICAgIG1heEFubm91bmNlbWVudHM6IDQsXG4gIH0sXG4gIHJld2FyZHNDb250cm9sOiB7XG4gICAgc2VsZWN0ZWRSZXdhcmRJdGVtOiB1bmRlZmluZWQsXG4gIH0sXG59O1xuXG5sZXQgc2NlbmVBZG1pbnNDYWNoZTogU2NlbmVBZG1pbltdID0gW107XG5sZXQgc2NlbmVCYW5zQ2FjaGU6IFNjZW5lQmFuVXNlcltdID0gW107XG5cbi8vIGNvbnN0IEJUTl9SRVdBUkRTX0NPTlRST0wgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtcmV3YXJkcy1jb250cm9sLWJ1dHRvbi5wbmdgXG4vLyBjb25zdCBCVE5fUkVXQVJEU19DT05UUk9MX0FDVElWRSA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC1yZXdhcmRzLWNvbnRyb2wtYWN0aXZlLWJ1dHRvbi5wbmdgXG5cbmNvbnN0IEFETUlOX0lDT05TID0ge1xuICBnZXQgQlROX1ZJREVPX0NPTlRST0woKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtdmlkZW8tY29udHJvbC1idXR0b24ucG5nYDtcbiAgfSxcbiAgZ2V0IEJUTl9TTUFSVF9JVEVNX0NPTlRST0woKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtc21hcnQtaXRlbS1jb250cm9sLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgQlROX1RFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0woKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtdGV4dC1hbm5vdW5jZW1lbnQtY29udHJvbC1idXR0b24ucG5nYDtcbiAgfSxcbiAgZ2V0IEJUTl9BRE1JTl9UT09MS0lUX0NPTlRST0woKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtY29udHJvbC1idXR0b24ucG5nYDtcbiAgfSxcbiAgZ2V0IEJUTl9BRE1JTl9UT09MS0lUX0JBQ0tHUk9VTkQoKSB7XG4gICAgcmV0dXJuIGAke2dldENvbnRlbnRVcmwoKX0vYWRtaW5fdG9vbGtpdC9hc3NldHMvYmFja2dyb3VuZHMvYWRtaW4tdG9vbC1iYWNrZ3JvdW5kLnBuZ2A7XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgY29udGFpbmVyQmFja2dyb3VuZENvbG9yID0gQ29sb3I0LmNyZWF0ZSgwLCAwLCAwLCAwLjc1KTtcblxuLy8gVGhlIGVkaXRvciBzdGFydHMgdXNpbmcgZW50aXRpZXMgZnJvbSBbODAwMV0uXG5jb25zdCBBRE1JTl9UT09MU19FTlRJVFkgPSA4MDAwIGFzIEVudGl0eTtcblxuZnVuY3Rpb24gZ2V0QWRtaW5Ub29sa2l0RW50aXR5KGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCB7IEFkbWluVG9vbHMgfSA9IGdldENvbXBvbmVudHMoZW5naW5lKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oZW5naW5lLmdldEVudGl0aWVzV2l0aChBZG1pblRvb2xzKSlbMF1bMF07XG59XG5cbmZ1bmN0aW9uIGdldEFkbWluVG9vbGtpdENvbXBvbmVudChlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBBZG1pblRvb2xzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIHJldHVybiBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoQWRtaW5Ub29scykpWzBdWzFdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hTY2VuZUFkbWlucygpIHtcbiAgY29uc3QgW2Vycm9yLCByZXNwb25zZV0gPSBhd2FpdCBnZXRTY2VuZUFkbWlucygpO1xuXG4gIGlmIChlcnJvcikge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHsgZXJyb3IgfSkpO1xuICAgIHNjZW5lQWRtaW5zQ2FjaGUgPSBbXTtcbiAgICByZXR1cm47XG4gIH1cbiAgc2NlbmVBZG1pbnNDYWNoZSA9IChyZXNwb25zZSA/PyBbXSlcbiAgICAubWFwKCQgPT4gKHtcbiAgICAgIG5hbWU6ICQubmFtZSxcbiAgICAgIGFkZHJlc3M6ICQuYWRtaW4sXG4gICAgICByb2xlOiAnYWRtaW4nIGFzIGNvbnN0LFxuICAgICAgdmVyaWZpZWQ6ICEkLm5hbWUuaW5jbHVkZXMoJyMnKSxcbiAgICAgIGNhbkJlUmVtb3ZlZDogISEkLmNhbkJlUmVtb3ZlZCxcbiAgICB9KSlcbiAgICAuc29ydChhID0+IChhLmNhbkJlUmVtb3ZlZCA/IDEgOiAtMSkpO1xuICBpZiAoYWRtaW5EYXRhSW5pdGlhbGl6ZWQpIHtcbiAgICBnZXRBZG1pbk1lc3NhZ2VCdXMoKS51cGRhdGVBZG1pbkxpc3Qoc2NlbmVBZG1pbnNDYWNoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoQW5kU3luY1NjZW5lQWRtaW5zKCkge1xuICBhd2FpdCBmZXRjaFNjZW5lQWRtaW5zKCk7XG4gIGlmIChhZG1pbkRhdGFJbml0aWFsaXplZCkge1xuICAgIGdldEFkbWluTWVzc2FnZUJ1cygpLmVtaXRTeW5jQWRtaW5zKCk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoU2NlbmVCYW5zKCkge1xuICBjb25zdCBbZXJyb3IsIHJlc3BvbnNlXSA9IGF3YWl0IGdldFNjZW5lQmFucygpO1xuXG4gIGlmIChlcnJvcikge1xuICAgIHNjZW5lQmFuc0NhY2hlID0gW107XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2NlbmVCYW5zQ2FjaGUgPSByZXNwb25zZT8ucmVzdWx0cyA/PyBbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyU2NlbmVCYW5zQ2FjaGUoKSB7XG4gIHNjZW5lQmFuc0NhY2hlID0gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTbWFydEl0ZW1zKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCBhZG1pblRvb2xraXRDb21wb25lbnQgPSBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lKTtcblxuICByZXR1cm4gQXJyYXkuZnJvbShhZG1pblRvb2xraXRDb21wb25lbnQuc21hcnRJdGVtc0NvbnRyb2wuc21hcnRJdGVtcyA/PyBbXSk7XG59XG5cbmZ1bmN0aW9uIGluaXRUZXh0QW5ub3VuY2VtZW50U3luYyhlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBUZXh0QW5ub3VuY2VtZW50cyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpO1xuXG4gIFRleHRBbm5vdW5jZW1lbnRzLmNyZWF0ZU9yUmVwbGFjZShzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSwge1xuICAgIHRleHQ6ICcnLFxuICAgIGF1dGhvcjogJycsXG4gICAgaWQ6ICcnLFxuICB9KTtcbn1cblxuLy8gSW5pdGlhbGl6ZSBhZG1pbiBkYXRhIGJlZm9yZSBVSSByZW5kZXJpbmdcbmxldCBhZG1pbkRhdGFJbml0aWFsaXplZCA9IGZhbHNlO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemVBZG1pbkRhdGEoXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgc2RrSGVscGVycz86IElTREtIZWxwZXJzLFxuICBwbGF5ZXJzSGVscGVyPzogSVBsYXllcnNIZWxwZXIsXG4pIHtcbiAgaWYgKCFhZG1pbkRhdGFJbml0aWFsaXplZCkge1xuICAgIGNvbnN0IHsgVmlkZW9Db250cm9sU3RhdGUgfSA9IGdldENvbXBvbmVudHMoZW5naW5lKTtcblxuICAgIC8vIEluaXRpYWxpemUgQWRtaW5Ub29sa2l0VWlFbnRpdHlcbiAgICBzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSA9IGdldEFkbWluVG9vbGtpdEVudGl0eShlbmdpbmUpID8/IGVuZ2luZS5hZGRFbnRpdHkoKTtcblxuICAgIC8vIEluaXRpYWxpemUgVGV4dEFubm91bmNlbWVudHMgc3luYyBjb21wb25lbnRcbiAgICBpbml0VGV4dEFubm91bmNlbWVudFN5bmMoZW5naW5lKTtcblxuICAgIC8vIC8vIEluaXRpYWxpemUgUmV3YXJkcyBzeW5jXG4gICAgLy8gaW5pdFJld2FyZHNTeW5jKGVuZ2luZSwgc2RrSGVscGVycylcblxuICAgIGlmICghVmlkZW9Db250cm9sU3RhdGUuZ2V0T3JOdWxsKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5KSkge1xuICAgICAgVmlkZW9Db250cm9sU3RhdGUuY3JlYXRlKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgICB9XG5cbiAgICBzZGtIZWxwZXJzPy5zeW5jRW50aXR5Py4oXG4gICAgICBzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSxcbiAgICAgIFtWaWRlb0NvbnRyb2xTdGF0ZS5jb21wb25lbnRJZF0sXG4gICAgICBBRE1JTl9UT09MU19FTlRJVFksXG4gICAgKTtcblxuICAgIGVuZ2luZS5hZGRTeXN0ZW0oKCkgPT4ge1xuICAgICAgaWYgKG5leHRUaWNrRnVuY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbmV4dFRpY2sgPSBuZXh0VGlja0Z1bmN0aW9ucy5zaGlmdCgpO1xuICAgICAgICBpZiAobmV4dFRpY2spIHtcbiAgICAgICAgICBuZXh0VGljaygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtcblxuICAgIC8vIEluaXRpYWxpemUgc2NlbmUgZGF0YVxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtmZXRjaFNjZW5lQWRtaW5zKCksIGZldGNoU2NlbmVCYW5zKCldKTtcblxuICAgIC8vIEluaXRpYWxpemUgYWRtaW4gbWVzc2FnZSBidXMgd2l0aCBzZW5kZXIgdmFsaWRhdGlvblxuICAgIGluaXRBZG1pbk1lc3NhZ2VCdXMoXG4gICAgICBlbmdpbmUsXG4gICAgICBzY2VuZUFkbWluc0NhY2hlLFxuICAgICAgc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHksXG4gICAgICBwbGF5ZXJzSGVscGVyLFxuICAgICAgZmV0Y2hTY2VuZUFkbWlucyxcbiAgICApO1xuXG4gICAgYWRtaW5EYXRhSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgY29uc29sZS5sb2coJ2luaXRpYWxpemVBZG1pbkRhdGEgLSBpbml0aWFsaXplZCcpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBZG1pblRvb2xraXRVSShcbiAgZW5naW5lOiBJRW5naW5lLFxuICBwb2ludGVyRXZlbnRzU3lzdGVtOiBQb2ludGVyRXZlbnRzU3lzdGVtLFxuICByZWFjdEJhc2VkVWlTeXN0ZW06IFJlYWN0QmFzZWRVaVN5c3RlbSxcbiAgc2RrSGVscGVycz86IElTREtIZWxwZXJzLFxuICBwbGF5ZXJzSGVscGVyPzogSVBsYXllcnNIZWxwZXIsXG4pIHtcbiAgLy8gSW5pdGlhbGl6ZSBhZG1pbiBkYXRhIGJlZm9yZSBzZXR0aW5nIHVwIHRoZSBVSVxuICBpbml0aWFsaXplQWRtaW5EYXRhKGVuZ2luZSwgc2RrSGVscGVycywgcGxheWVyc0hlbHBlcikudGhlbigoKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ2NyZWF0ZUFkbWluVG9vbGtpdFVJIC0gaW5pdGlhbGl6ZWQnKTtcbiAgICByZWFjdEJhc2VkVWlTeXN0ZW0uc2V0VWlSZW5kZXJlcihcbiAgICAgICgpID0+IHVpQ29tcG9uZW50KGVuZ2luZSwgcG9pbnRlckV2ZW50c1N5c3RlbSwgc2RrSGVscGVycywgcGxheWVyc0hlbHBlciksXG4gICAgICBBRE1JTl9UT09MS0lUX1ZJUlRVQUxfVUlfU0laRSxcbiAgICApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNBbGxvd2VkQWRtaW4oXG4gIF9lbmdpbmU6IElFbmdpbmUsXG4gIGFkbWluVG9vbGtpdEVudGl0aWU6IFJldHVyblR5cGU8dHlwZW9mIGdldEFkbWluVG9vbGtpdENvbXBvbmVudD4sXG4gIHBsYXllcjogR2V0UGxheWVyRGF0YVJlcyB8IG51bGwgfCB1bmRlZmluZWQsXG4pIHtcbiAgaWYgKCFwbGF5ZXIpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBwbGF5ZXJBZGRyZXNzID0gcGxheWVyLnVzZXJJZC50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBpc0FkbWluID0gc2NlbmVBZG1pbnNDYWNoZS5maW5kKCQgPT4gJC5hZGRyZXNzID09PSBwbGF5ZXJBZGRyZXNzKTtcblxuICByZXR1cm4gaXNBZG1pbiB8fCBpc1ByZXZpZXcoKTtcbn1cblxuY29uc3QgdWlDb21wb25lbnQgPSAoXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgcG9pbnRlckV2ZW50c1N5c3RlbTogUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgc2RrSGVscGVycz86IElTREtIZWxwZXJzLFxuICBwbGF5ZXJzSGVscGVyPzogSVBsYXllcnNIZWxwZXIsXG4pID0+IHtcbiAgY29uc3QgYWRtaW5Ub29sa2l0RW50aXR5ID0gZ2V0QWRtaW5Ub29sa2l0Q29tcG9uZW50KGVuZ2luZSk7XG4gIGNvbnN0IHBsYXllciA9IHBsYXllcnNIZWxwZXI/LmdldFBsYXllcigpO1xuICBjb25zdCBpc1BsYXllckFkbWluID0gaXNBbGxvd2VkQWRtaW4oZW5naW5lLCBhZG1pblRvb2xraXRFbnRpdHksIHBsYXllcik7XG5cbiAgcmV0dXJuIFtcbiAgICA8VWlFbnRpdHlcbiAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtpc1BsYXllckFkbWluID8gKFxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyB0b3A6IDEyMCwgcmlnaHQ6IDE0IH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZGlzcGxheTogc3RhdGUucGFuZWxPcGVuID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgICB3aWR0aDogNTAwLFxuICAgICAgICAgICAgICBwb2ludGVyRmlsdGVyOiAnYmxvY2snLFxuICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MCxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICAgICAgICAgIGxlZnQ6IDEyLFxuICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogY29udGFpbmVyQmFja2dyb3VuZENvbG9yIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICAgIHZhbHVlPVwiQURNSU4gVE9PTFNcIlxuICAgICAgICAgICAgICAgIGZvbnRTaXplPXsyMH1cbiAgICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LmNyZWF0ZSgxNjAsIDE1NSwgMTY4LCAxKX1cbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17eyBmbGV4R3JvdzogMSB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJhZG1pbl90b29sa2l0X21vZGVyYXRpb25fY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLk1PREVSQVRJT05fQ09OVFJPTCA/ICdwcmltYXJ5JyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICBpY29uPXtnZXRCdG5Nb2RlcmF0aW9uQ29udHJvbCgpfVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6XG4gICAgICAgICAgICAgICAgICAgIGFkbWluVG9vbGtpdEVudGl0eS5tb2RlcmF0aW9uQ29udHJvbC5pc0VuYWJsZWQgJiYgIWlzUHJldmlldygpXG4gICAgICAgICAgICAgICAgICAgICAgPyAnZmxleCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvbkJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuTU9ERVJBVElPTl9DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgICAgPyBDb2xvcjQuQmxhY2soKVxuICAgICAgICAgICAgICAgICAgICAgIDogQ29sb3I0LldoaXRlKCksXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7IGhlaWdodDogJzEwMCUnLCB3aWR0aDogJzEwMCUnIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuTU9ERVJBVElPTl9DT05UUk9MKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuTk9ORTtcbiAgICAgICAgICAgICAgICAgICAgbmV4dFRpY2tGdW5jdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5NT0RFUkFUSU9OX0NPTlRST0w7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImFkbWluX3Rvb2xraXRfcGFuZWxfdmlkZW9fY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlZJREVPX0NPTlRST0wgPyAncHJpbWFyeScgOiAndGV4dCd9XG4gICAgICAgICAgICAgICAgaWNvbj17QURNSU5fSUNPTlMuQlROX1ZJREVPX0NPTlRST0x9XG4gICAgICAgICAgICAgICAgaWNvbkJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVklERU9fQ09OVFJPTCA/IENvbG9yNC5CbGFjaygpIDogQ29sb3I0LldoaXRlKCksXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbmx5SWNvblxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBhZG1pblRvb2xraXRFbnRpdHkudmlkZW9Db250cm9sLmlzRW5hYmxlZCA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVklERU9fQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICAgIG5leHRUaWNrRnVuY3Rpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuVklERU9fQ09OVFJPTDtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiYWRtaW5fdG9vbGtpdF9wYW5lbF9zbWFydF9pdGVtc19jb250cm9sXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuU01BUlRfSVRFTVNfQ09OVFJPTCA/ICdwcmltYXJ5JyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICBpY29uPXtBRE1JTl9JQ09OUy5CVE5fU01BUlRfSVRFTV9DT05UUk9MfVxuICAgICAgICAgICAgICAgIGljb25CYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgICA/IENvbG9yNC5CbGFjaygpXG4gICAgICAgICAgICAgICAgICAgICAgOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGFkbWluVG9vbGtpdEVudGl0eS5zbWFydEl0ZW1zQ29udHJvbC5pc0VuYWJsZWQgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuYWN0aXZlVGFiICE9PSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0wpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FO1xuICAgICAgICAgICAgICAgICAgICBuZXh0VGlja0Z1bmN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0w7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImFkbWluX3Rvb2xraXRfcGFuZWxfdGV4dF9hbm5vdW5jZW1lbnRfY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlRFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0wgPyAncHJpbWFyeScgOiAndGV4dCd9XG4gICAgICAgICAgICAgICAgaWNvbj17QURNSU5fSUNPTlMuQlROX1RFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0x9XG4gICAgICAgICAgICAgICAgaWNvbkJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTFxuICAgICAgICAgICAgICAgICAgICAgID8gQ29sb3I0LkJsYWNrKClcbiAgICAgICAgICAgICAgICAgICAgICA6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25seUljb25cbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYWRtaW5Ub29sa2l0RW50aXR5LnRleHRBbm5vdW5jZW1lbnRDb250cm9sLmlzRW5hYmxlZCA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICAgIG5leHRUaWNrRnVuY3Rpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTDtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICB7c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlRFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0wgPyAoXG4gICAgICAgICAgICAgIDxUZXh0QW5ub3VuY2VtZW50c0NvbnRyb2xcbiAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICBzdGF0ZT17c3RhdGV9XG4gICAgICAgICAgICAgICAgcGxheWVyPXtwbGF5ZXJ9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVklERU9fQ09OVFJPTCA/IChcbiAgICAgICAgICAgICAgPFZpZGVvQ29udHJvbFxuICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgIHN0YXRlPXtzdGF0ZX1cbiAgICAgICAgICAgICAgICBwbGF5ZXJBZGRyZXNzPXtwbGF5ZXI/LnVzZXJJZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3N0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5TTUFSVF9JVEVNU19DT05UUk9MID8gKFxuICAgICAgICAgICAgICA8U21hcnRJdGVtc0NvbnRyb2xcbiAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICBzdGF0ZT17c3RhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuTU9ERVJBVElPTl9DT05UUk9MICYmIChcbiAgICAgICAgICAgICAgPE1vZGVyYXRpb25Db250cm9sXG4gICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgcGxheWVyPXtwbGF5ZXJ9XG4gICAgICAgICAgICAgICAgc2NlbmVBZG1pbnM9e3NjZW5lQWRtaW5zQ2FjaGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICAgIHdpZHRoOiA0MixcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGFsaWduQ29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgcG9pbnRlckZpbHRlcjogJ2Jsb2NrJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgIHNyYzogQURNSU5fSUNPTlMuQlROX0FETUlOX1RPT0xLSVRfQkFDS0dST1VORCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgY29sb3I6IENvbG9yNC5jcmVhdGUoMSwgMSwgMSwgMSksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxEQ0xCdXR0b25cbiAgICAgICAgICAgICAgdmFsdWU9XCJcIlxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDAsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGFsaWduQ29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgICBzcmM6IEFETUlOX0lDT05TLkJUTl9BRE1JTl9UT09MS0lUX0NPTlRST0wsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuY3JlYXRlKDEsIDEsIDEsIDEpLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0YXRlLnBhbmVsT3BlbiA9ICFzdGF0ZS5wYW5lbE9wZW47XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICApIDogbnVsbH1cbiAgICAgIDxUZXh0QW5ub3VuY2VtZW50c1xuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgc3RhdGU9e3N0YXRlfVxuICAgICAgLz5cbiAgICA8L1VpRW50aXR5PixcbiAgICBtb2RlcmF0aW9uQ29udHJvbFN0YXRlLnNob3dNb2RhbEFkbWluTGlzdCAmJiAoXG4gICAgICA8TW9kYWxVc2VyTGlzdFxuICAgICAgICB1c2Vycz17c2NlbmVBZG1pbnNDYWNoZSA/PyBbXX1cbiAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgIHR5cGU9e1VzZXJMaXN0VHlwZS5BRE1JTn1cbiAgICAgIC8+XG4gICAgKSxcbiAgICBtb2RlcmF0aW9uQ29udHJvbFN0YXRlLnNob3dNb2RhbEJhbkxpc3QgJiYgKFxuICAgICAgPE1vZGFsVXNlckxpc3RcbiAgICAgICAgdXNlcnM9e3NjZW5lQmFuc0NhY2hlID8/IFtdfVxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgdHlwZT17VXNlckxpc3RUeXBlLkJBTn1cbiAgICAgIC8+XG4gICAgKSxcbiAgICBzaG93Y2FzZVN0YXRlLnNob3cgJiZcbiAgICAgIHNob3djYXNlU3RhdGUub25TZWxlY3RUcmFjayAmJlxuICAgICAgc2hvd2Nhc2VTdGF0ZS5vblNldERlZmF1bHQgJiZcbiAgICAgIHNob3djYXNlU3RhdGUub25DbG9zZSAmJiAoXG4gICAgICAgIDxTcGVha2VyU2hvd2Nhc2VcbiAgICAgICAgICBwYXJ0aWNpcGFudHM9e3Nob3djYXNlU3RhdGUucGFydGljaXBhbnRzfVxuICAgICAgICAgIGFjdGl2ZVRyYWNrU2lkPXtzaG93Y2FzZVN0YXRlLmFjdGl2ZVRyYWNrU2lkfVxuICAgICAgICAgIG9uU2VsZWN0VHJhY2s9e3Nob3djYXNlU3RhdGUub25TZWxlY3RUcmFja31cbiAgICAgICAgICBvblNldERlZmF1bHQ9e3Nob3djYXNlU3RhdGUub25TZXREZWZhdWx0fVxuICAgICAgICAgIG9uQ2xvc2U9e3Nob3djYXNlU3RhdGUub25DbG9zZX1cbiAgICAgICAgLz5cbiAgICAgICksXG4gICAgc2hhcmVQcmVzZW50YXRpb25TdGF0ZS5zaG93ICYmIHNoYXJlUHJlc2VudGF0aW9uU3RhdGUub25DbG9zZSAmJiAoXG4gICAgICA8U2hhcmVQcmVzZW50YXRpb25Nb2RhbFxuICAgICAgICBvbkNsb3NlPXtzaGFyZVByZXNlbnRhdGlvblN0YXRlLm9uQ2xvc2V9XG4gICAgICAgIHN0cmVhbWluZ0tleT17c3RhdGUudmlkZW9Db250cm9sLmRjbENhc3Q/LnN0cmVhbWluZ0tleSA/PyAnJ31cbiAgICAgIC8+XG4gICAgKSxcbiAgXTtcbn07XG4iXX0=
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxJQUFJLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9ELE9BQU8sUUFBUSxFQUFFLEVBQ2YsS0FBSyxFQUNMLE1BQU0sSUFBSSxTQUFTLEVBQ25CLFFBQVEsR0FFVCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCxhQUFhLEdBSWQsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBYyxPQUFPLEVBQTBCLE1BQU0sU0FBUyxDQUFDO0FBQ3RFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLHNCQUFzQixHQUV2QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVB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LEVBQUUsWUFBWSxDQUFDLEdBQUcsR0FDdEIsQ0FDSDtRQUNELGFBQWEsQ0FBQyxJQUFJO1lBQ2hCLGFBQWEsQ0FBQyxhQUFhO1lBQzNCLGFBQWEsQ0FBQyxZQUFZO1lBQzFCLGFBQWEsQ0FBQyxPQUFPLElBQUksQ0FDdkIsdUJBQUMsZUFBZSxJQUNkLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQWMsRUFDNUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxhQUFhLEVBQzFDLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sR0FDOUIsQ0FDSDtRQUNILHNCQUFzQixDQUFDLElBQUksSUFBSSxzQkFBc0IsQ0FBQyxPQUFPLElBQUksQ0FDL0QsdUJBQUMsc0JBQXNCLElBQ3JCLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLEVBQ3ZDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksRUFBRSxHQUM1RCxDQUNIO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHsgaXNNb2JpbGUgYXMgZGV0ZWN0SXNNb2JpbGUgfSBmcm9tICdAZGNsL3Nkay9wbGF0Zm9ybSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFJlYWN0RWNzIGlzIHJlcXVpcmVkIGZvciBKU1ggZmFjdG9yeVxuaW1wb3J0IFJlYWN0RWNzLCB7XG4gIExhYmVsLFxuICBCdXR0b24gYXMgRENMQnV0dG9uLFxuICBVaUVudGl0eSxcbiAgdHlwZSBSZWFjdEJhc2VkVWlTeXN0ZW0sXG59IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IHR5cGUgRW50aXR5LCB0eXBlIElFbmdpbmUsIHR5cGUgUG9pbnRlckV2ZW50c1N5c3RlbSB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB7XG4gIGdldENvbXBvbmVudHMsXG4gIHR5cGUgR2V0UGxheWVyRGF0YVJlcyxcbiAgdHlwZSBJUGxheWVyc0hlbHBlcixcbiAgdHlwZSBJU0RLSGVscGVycyxcbn0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgVmlkZW9Db250cm9sIH0gZnJvbSAnLi9WaWRlb0NvbnRyb2wnO1xuaW1wb3J0IHsgVGV4dEFubm91bmNlbWVudHNDb250cm9sIH0gZnJvbSAnLi9UZXh0QW5ub3VuY2VtZW50c0NvbnRyb2wnO1xuaW1wb3J0IHsgU21hcnRJdGVtc0NvbnRyb2wgfSBmcm9tICcuL1NtYXJ0SXRlbXNDb250cm9sJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4vQnV0dG9uJztcbmltcG9ydCB7IFRleHRBbm5vdW5jZW1lbnRzIH0gZnJvbSAnLi9UZXh0QW5ub3VuY2VtZW50cyc7XG5pbXBvcnQgeyBnZXRDb250ZW50VXJsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdHlwZSBTdGF0ZSwgVGFiVHlwZSwgdHlwZSBTZWxlY3RlZFNtYXJ0SXRlbSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZ2V0QnRuTW9kZXJhdGlvbkNvbnRyb2wsXG4gIE1vZGVyYXRpb25Db250cm9sLFxuICBtb2RlcmF0aW9uQ29udHJvbFN0YXRlLFxuICB0eXBlIFNjZW5lQWRtaW4sXG59IGZyb20gJy4vTW9kZXJhdGlvbkNvbnRyb2wnO1xuaW1wb3J0IHsgZ2V0U2NlbmVBZG1pbnMsIGdldFNjZW5lQmFucywgdHlwZSBTY2VuZUJhblVzZXIgfSBmcm9tICcuL01vZGVyYXRpb25Db250cm9sL2FwaSc7XG5pbXBvcnQgeyBNb2RhbFVzZXJMaXN0LCBVc2VyTGlzdFR5cGUgfSBmcm9tICcuL01vZGVyYXRpb25Db250cm9sL1VzZXJzTGlzdCc7XG5pbXBvcnQgeyBzaG93Y2FzZVN0YXRlLCBzaGFyZVByZXNlbnRhdGlvblN0YXRlIH0gZnJvbSAnLi9WaWRlb0NvbnRyb2wvRGNsQ2FzdCc7XG5pbXBvcnQgeyBTcGVha2VyU2hvd2Nhc2UgfSBmcm9tICcuL1ZpZGVvQ29udHJvbC9EY2xDYXN0L1NwZWFrZXJTaG93Y2FzZSc7XG5pbXBvcnQgU2hhcmVQcmVzZW50YXRpb25Nb2RhbCBmcm9tICcuL1ZpZGVvQ29udHJvbC9EY2xDYXN0L1NoYXJlUHJlc2VudGF0aW9uTW9kYWwnO1xuaW1wb3J0IHsgaXNQcmV2aWV3IH0gZnJvbSAnLi9mZXRjaC11dGlscyc7XG5pbXBvcnQgeyBpbml0QWRtaW5NZXNzYWdlQnVzLCBnZXRBZG1pbk1lc3NhZ2VCdXMgfSBmcm9tICcuL2FkbWluLW1lc3NhZ2UtYnVzJztcblxuZXhwb3J0IGNvbnN0IG5leHRUaWNrRnVuY3Rpb25zOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4vLyBNb2JpbGUgc2NhbGluZzogc2hyaW5rIHRoZSB2aXJ0dWFsIGNhbnZhcyBvblxuLy8gbW9iaWxlIHNvIHRoZSBTREsncyBnbG9iYWwgVUkgc2NhbGUgZmFjdG9yIOKAlCBtaW4oc2NyZWVuL3ZpcnR1YWwpLCBzZWVcbi8vIEBkY2wvcmVhY3QtZWNzIGdldFVpU2NhbGVGYWN0b3Ig4oCUIG11bHRpcGxpZXMgRVZFUllUSElORyAoZ2VvbWV0cnkgYW5kXG4vLyBmb250U2l6ZSkgdW5pZm9ybWx5IGJ5IE1PQklMRV9VSV9TQ0FMRS4gV2UgYXV0aG9yIGEgc2luZ2xlIGJhc2UgbGF5b3V0IGFuZFxuLy8gbW9iaWxlIGdldHMgdGhlIHpvb20gZm9yIGZyZWUsIGluY2x1ZGluZyBldmVyeSBjaGlsZCBjb21wb25lbnQncyB0ZXh0LlxuY29uc3QgTU9CSUxFX1VJX1NDQUxFID0gMjtcbmNvbnN0IEJBU0VfVklSVFVBTF9VSV9TSVpFID0geyB2aXJ0dWFsV2lkdGg6IDE5MjAsIHZpcnR1YWxIZWlnaHQ6IDEwODAgfTtcblxuZnVuY3Rpb24gZ2V0VmlydHVhbFVpU2l6ZSgpIHtcbiAgcmV0dXJuIGRldGVjdElzTW9iaWxlKClcbiAgICA/IHtcbiAgICAgICAgdmlydHVhbFdpZHRoOiBCQVNFX1ZJUlRVQUxfVUlfU0laRS52aXJ0dWFsV2lkdGggLyBNT0JJTEVfVUlfU0NBTEUsXG4gICAgICAgIHZpcnR1YWxIZWlnaHQ6IEJBU0VfVklSVFVBTF9VSV9TSVpFLnZpcnR1YWxIZWlnaHQgLyBNT0JJTEVfVUlfU0NBTEUsXG4gICAgICB9XG4gICAgOiBCQVNFX1ZJUlRVQUxfVUlfU0laRTtcbn1cblxuZXhwb3J0IGNvbnN0IHN0YXRlOiBTdGF0ZSA9IHtcbiAgYWRtaW5Ub29sa2l0VWlFbnRpdHk6IDAgYXMgRW50aXR5LFxuICBwYW5lbE9wZW46IGZhbHNlLFxuICBhY3RpdmVUYWI6IFRhYlR5cGUuTk9ORSxcbiAgdmlkZW9Db250cm9sOiB7XG4gICAgc2VsZWN0ZWRWaWRlb1BsYXllcjogdW5kZWZpbmVkLFxuICAgIHNlbGVjdGVkU3RyZWFtOiB1bmRlZmluZWQsXG4gICAgZGNsQ2FzdDogdW5kZWZpbmVkLFxuICAgIGlzTWluaW1pemVkOiBmYWxzZSxcbiAgICBwcmVzZW50YXRpb25TdGF0ZTogdW5kZWZpbmVkLFxuICB9LFxuICBzbWFydEl0ZW1zQ29udHJvbDoge1xuICAgIHNlbGVjdGVkU21hcnRJdGVtOiB1bmRlZmluZWQsXG4gICAgc21hcnRJdGVtczogbmV3IE1hcDxFbnRpdHksIFNlbGVjdGVkU21hcnRJdGVtPigpLFxuICB9LFxuICB0ZXh0QW5ub3VuY2VtZW50Q29udHJvbDoge1xuICAgIGVudGl0eTogdW5kZWZpbmVkLFxuICAgIHRleHQ6IHVuZGVmaW5lZCxcbiAgICBtZXNzYWdlUmF0ZVRyYWNrZXI6IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCksXG4gICAgYW5ub3VuY2VtZW50czogW10sXG4gICAgbWF4QW5ub3VuY2VtZW50czogNCxcbiAgfSxcbiAgcmV3YXJkc0NvbnRyb2w6IHtcbiAgICBzZWxlY3RlZFJld2FyZEl0ZW06IHVuZGVmaW5lZCxcbiAgfSxcbn07XG5cbmxldCBzY2VuZUFkbWluc0NhY2hlOiBTY2VuZUFkbWluW10gPSBbXTtcbmxldCBzY2VuZUJhbnNDYWNoZTogU2NlbmVCYW5Vc2VyW10gPSBbXTtcblxuLy8gY29uc3QgQlROX1JFV0FSRFNfQ09OVFJPTCA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC1yZXdhcmRzLWNvbnRyb2wtYnV0dG9uLnBuZ2Bcbi8vIGNvbnN0IEJUTl9SRVdBUkRTX0NPTlRST0xfQUNUSVZFID0gYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2FkbWluLXBhbmVsLXJld2FyZHMtY29udHJvbC1hY3RpdmUtYnV0dG9uLnBuZ2BcblxuY29uc3QgQURNSU5fSUNPTlMgPSB7XG4gIGdldCBCVE5fVklERU9fQ09OVFJPTCgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC12aWRlby1jb250cm9sLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgQlROX1NNQVJUX0lURU1fQ09OVFJPTCgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC1zbWFydC1pdGVtLWNvbnRyb2wtYnV0dG9uLnBuZ2A7XG4gIH0sXG4gIGdldCBCVE5fVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC10ZXh0LWFubm91bmNlbWVudC1jb250cm9sLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgQlROX0FETUlOX1RPT0xLSVRfQ09OVFJPTCgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC1jb250cm9sLWJ1dHRvbi5wbmdgO1xuICB9LFxuICBnZXQgQlROX0FETUlOX1RPT0xLSVRfQkFDS0dST1VORCgpIHtcbiAgICByZXR1cm4gYCR7Z2V0Q29udGVudFVybCgpfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9iYWNrZ3JvdW5kcy9hZG1pbi10b29sLWJhY2tncm91bmQucG5nYDtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBjb250YWluZXJCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvcjQuY3JlYXRlKDAsIDAsIDAsIDAuNzUpO1xuXG4vLyBUaGUgZWRpdG9yIHN0YXJ0cyB1c2luZyBlbnRpdGllcyBmcm9tIFs4MDAxXS5cbmNvbnN0IEFETUlOX1RPT0xTX0VOVElUWSA9IDgwMDAgYXMgRW50aXR5O1xuXG5mdW5jdGlvbiBnZXRBZG1pblRvb2xraXRFbnRpdHkoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IHsgQWRtaW5Ub29scyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpO1xuICByZXR1cm4gQXJyYXkuZnJvbShlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKEFkbWluVG9vbHMpKVswXVswXTtcbn1cblxuZnVuY3Rpb24gZ2V0QWRtaW5Ub29sa2l0Q29tcG9uZW50KGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCB7IEFkbWluVG9vbHMgfSA9IGdldENvbXBvbmVudHMoZW5naW5lKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oZW5naW5lLmdldEVudGl0aWVzV2l0aChBZG1pblRvb2xzKSlbMF1bMV07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFNjZW5lQWRtaW5zKCkge1xuICBjb25zdCBbZXJyb3IsIHJlc3BvbnNlXSA9IGF3YWl0IGdldFNjZW5lQWRtaW5zKCk7XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoeyBlcnJvciB9KSk7XG4gICAgc2NlbmVBZG1pbnNDYWNoZSA9IFtdO1xuICAgIHJldHVybjtcbiAgfVxuICBzY2VuZUFkbWluc0NhY2hlID0gKHJlc3BvbnNlID8/IFtdKVxuICAgIC5tYXAoJCA9PiAoe1xuICAgICAgbmFtZTogJC5uYW1lLFxuICAgICAgYWRkcmVzczogJC5hZG1pbixcbiAgICAgIHJvbGU6ICdhZG1pbicgYXMgY29uc3QsXG4gICAgICB2ZXJpZmllZDogISQubmFtZS5pbmNsdWRlcygnIycpLFxuICAgICAgY2FuQmVSZW1vdmVkOiAhISQuY2FuQmVSZW1vdmVkLFxuICAgIH0pKVxuICAgIC5zb3J0KGEgPT4gKGEuY2FuQmVSZW1vdmVkID8gMSA6IC0xKSk7XG4gIGlmIChhZG1pbkRhdGFJbml0aWFsaXplZCkge1xuICAgIGdldEFkbWluTWVzc2FnZUJ1cygpLnVwZGF0ZUFkbWluTGlzdChzY2VuZUFkbWluc0NhY2hlKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hBbmRTeW5jU2NlbmVBZG1pbnMoKSB7XG4gIGF3YWl0IGZldGNoU2NlbmVBZG1pbnMoKTtcbiAgaWYgKGFkbWluRGF0YUluaXRpYWxpemVkKSB7XG4gICAgZ2V0QWRtaW5NZXNzYWdlQnVzKCkuZW1pdFN5bmNBZG1pbnMoKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hTY2VuZUJhbnMoKSB7XG4gIGNvbnN0IFtlcnJvciwgcmVzcG9uc2VdID0gYXdhaXQgZ2V0U2NlbmVCYW5zKCk7XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgc2NlbmVCYW5zQ2FjaGUgPSBbXTtcbiAgICByZXR1cm47XG4gIH1cblxuICBzY2VuZUJhbnNDYWNoZSA9IHJlc3BvbnNlPy5yZXN1bHRzID8/IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJTY2VuZUJhbnNDYWNoZSgpIHtcbiAgc2NlbmVCYW5zQ2FjaGUgPSBbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNtYXJ0SXRlbXMoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IGFkbWluVG9vbGtpdENvbXBvbmVudCA9IGdldEFkbWluVG9vbGtpdENvbXBvbmVudChlbmdpbmUpO1xuXG4gIHJldHVybiBBcnJheS5mcm9tKGFkbWluVG9vbGtpdENvbXBvbmVudC5zbWFydEl0ZW1zQ29udHJvbC5zbWFydEl0ZW1zID8/IFtdKTtcbn1cblxuZnVuY3Rpb24gaW5pdFRleHRBbm5vdW5jZW1lbnRTeW5jKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCB7IFRleHRBbm5vdW5jZW1lbnRzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG5cbiAgVGV4dEFubm91bmNlbWVudHMuY3JlYXRlT3JSZXBsYWNlKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCB7XG4gICAgdGV4dDogJycsXG4gICAgYXV0aG9yOiAnJyxcbiAgICBpZDogJycsXG4gIH0pO1xufVxuXG4vLyBJbml0aWFsaXplIGFkbWluIGRhdGEgYmVmb3JlIFVJIHJlbmRlcmluZ1xubGV0IGFkbWluRGF0YUluaXRpYWxpemVkID0gZmFsc2U7XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5pdGlhbGl6ZUFkbWluRGF0YShcbiAgZW5naW5lOiBJRW5naW5lLFxuICBzZGtIZWxwZXJzPzogSVNES0hlbHBlcnMsXG4gIHBsYXllcnNIZWxwZXI/OiBJUGxheWVyc0hlbHBlcixcbikge1xuICBpZiAoIWFkbWluRGF0YUluaXRpYWxpemVkKSB7XG4gICAgY29uc3QgeyBWaWRlb0NvbnRyb2xTdGF0ZSB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBBZG1pblRvb2xraXRVaUVudGl0eVxuICAgIHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5ID0gZ2V0QWRtaW5Ub29sa2l0RW50aXR5KGVuZ2luZSkgPz8gZW5naW5lLmFkZEVudGl0eSgpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBUZXh0QW5ub3VuY2VtZW50cyBzeW5jIGNvbXBvbmVudFxuICAgIGluaXRUZXh0QW5ub3VuY2VtZW50U3luYyhlbmdpbmUpO1xuXG4gICAgLy8gLy8gSW5pdGlhbGl6ZSBSZXdhcmRzIHN5bmNcbiAgICAvLyBpbml0UmV3YXJkc1N5bmMoZW5naW5lLCBzZGtIZWxwZXJzKVxuXG4gICAgaWYgKCFWaWRlb0NvbnRyb2xTdGF0ZS5nZXRPck51bGwoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHkpKSB7XG4gICAgICBWaWRlb0NvbnRyb2xTdGF0ZS5jcmVhdGUoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHkpO1xuICAgIH1cblxuICAgIHNka0hlbHBlcnM/LnN5bmNFbnRpdHk/LihcbiAgICAgIHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LFxuICAgICAgW1ZpZGVvQ29udHJvbFN0YXRlLmNvbXBvbmVudElkXSxcbiAgICAgIEFETUlOX1RPT0xTX0VOVElUWSxcbiAgICApO1xuXG4gICAgZW5naW5lLmFkZFN5c3RlbSgoKSA9PiB7XG4gICAgICBpZiAobmV4dFRpY2tGdW5jdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBuZXh0VGljayA9IG5leHRUaWNrRnVuY3Rpb25zLnNoaWZ0KCk7XG4gICAgICAgIGlmIChuZXh0VGljaykge1xuICAgICAgICAgIG5leHRUaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBzY2VuZSBkYXRhXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW2ZldGNoU2NlbmVBZG1pbnMoKSwgZmV0Y2hTY2VuZUJhbnMoKV0pO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBhZG1pbiBtZXNzYWdlIGJ1cyB3aXRoIHNlbmRlciB2YWxpZGF0aW9uXG4gICAgaW5pdEFkbWluTWVzc2FnZUJ1cyhcbiAgICAgIGVuZ2luZSxcbiAgICAgIHNjZW5lQWRtaW5zQ2FjaGUsXG4gICAgICBzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSxcbiAgICAgIHBsYXllcnNIZWxwZXIsXG4gICAgICBmZXRjaFNjZW5lQWRtaW5zLFxuICAgICk7XG5cbiAgICBhZG1pbkRhdGFJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICBjb25zb2xlLmxvZygnaW5pdGlhbGl6ZUFkbWluRGF0YSAtIGluaXRpYWxpemVkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkbWluVG9vbGtpdFVJKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIHJlYWN0QmFzZWRVaVN5c3RlbTogUmVhY3RCYXNlZFVpU3lzdGVtLFxuICBzZGtIZWxwZXJzPzogSVNES0hlbHBlcnMsXG4gIHBsYXllcnNIZWxwZXI/OiBJUGxheWVyc0hlbHBlcixcbikge1xuICAvLyBJbml0aWFsaXplIGFkbWluIGRhdGEgYmVmb3JlIHNldHRpbmcgdXAgdGhlIFVJXG4gIGluaXRpYWxpemVBZG1pbkRhdGEoZW5naW5lLCBzZGtIZWxwZXJzLCBwbGF5ZXJzSGVscGVyKS50aGVuKCgpID0+IHtcbiAgICBjb25zb2xlLmxvZygnY3JlYXRlQWRtaW5Ub29sa2l0VUkgLSBpbml0aWFsaXplZCcpO1xuICAgIHJlYWN0QmFzZWRVaVN5c3RlbS5zZXRVaVJlbmRlcmVyKFxuICAgICAgKCkgPT4gdWlDb21wb25lbnQoZW5naW5lLCBwb2ludGVyRXZlbnRzU3lzdGVtLCBzZGtIZWxwZXJzLCBwbGF5ZXJzSGVscGVyKSxcbiAgICAgIGdldFZpcnR1YWxVaVNpemUoKSxcbiAgICApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNBbGxvd2VkQWRtaW4oXG4gIF9lbmdpbmU6IElFbmdpbmUsXG4gIGFkbWluVG9vbGtpdEVudGl0aWU6IFJldHVyblR5cGU8dHlwZW9mIGdldEFkbWluVG9vbGtpdENvbXBvbmVudD4sXG4gIHBsYXllcjogR2V0UGxheWVyRGF0YVJlcyB8IG51bGwgfCB1bmRlZmluZWQsXG4pIHtcbiAgaWYgKCFwbGF5ZXIpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBwbGF5ZXJBZGRyZXNzID0gcGxheWVyLnVzZXJJZC50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBpc0FkbWluID0gc2NlbmVBZG1pbnNDYWNoZS5maW5kKCQgPT4gJC5hZGRyZXNzID09PSBwbGF5ZXJBZGRyZXNzKTtcblxuICByZXR1cm4gaXNBZG1pbiB8fCBpc1ByZXZpZXcoKTtcbn1cblxuY29uc3QgdWlDb21wb25lbnQgPSAoXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgX3BvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIF9zZGtIZWxwZXJzPzogSVNES0hlbHBlcnMsXG4gIHBsYXllcnNIZWxwZXI/OiBJUGxheWVyc0hlbHBlcixcbikgPT4ge1xuICBjb25zdCBhZG1pblRvb2xraXRFbnRpdHkgPSBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lKTtcbiAgY29uc3QgcGxheWVyID0gcGxheWVyc0hlbHBlcj8uZ2V0UGxheWVyKCk7XG4gIGNvbnN0IGlzUGxheWVyQWRtaW4gPSBpc0FsbG93ZWRBZG1pbihlbmdpbmUsIGFkbWluVG9vbGtpdEVudGl0eSwgcGxheWVyKTtcbiAgY29uc3QgaXNNb2JpbGUgPSBkZXRlY3RJc01vYmlsZSgpO1xuXG4gIC8vIE1vYmlsZSBzYWZlIGFyZWEgKGZyb20gRGVjZW50cmFsYW5kIEJ1aWxkaW5nLWZvci1Nb2JpbGUgZ3VpZGUpOlxuICAvLyAgIFJFRCAodW5zYWZlKSB6b25lczpcbiAgLy8gICAtIExlZnQgMjUlICAoZnVsbCBoZWlnaHQpICDihpIgQ2hhdCwgU2VhcmNoLCBQcm9maWxlLCBKb3lzdGljaywgRW1vdGVzXG4gIC8vICAgLSBUb3AtcmlnaHQgIDI1JSDDlyAyMyUgICAg4oaSIFByb2ZpbGUgYWNjZXNzLCBjYW1lcmEgY29udHJvbGxlcnNcbiAgLy8gICAtIEJvdHRvbS1yaWdodCAyNSUgw5cgNTUlICDihpIgSW50ZXJhY3Rpb24gYnV0dG9uc1xuICAvLyAgIEdSRUVOIChzYWZlKSB6b25lID0gQ0VOVEVSIG9mIHNjcmVlblxuXG4gIC8vIERlc2t0b3A6IHJvdyBsYXlvdXQsIGFuY2hvcmVkIHRvcC1yaWdodCAodW5jaGFuZ2VkIGZyb20gb3JpZ2luYWwpLlxuICAvLyBNb2JpbGU6IHJvdyBsYXlvdXQsIGFuY2hvcmVkIHRvcC1sZWZ0IGluc2lkZSB0aGUgc2FmZSB6b25lLlxuICBjb25zdCBvdXRlclBvc2l0aW9uID0gaXNNb2JpbGUgPyB7IHRvcDogMTYsIGxlZnQ6IDMwMCB9IDogeyB0b3A6IDEyMCwgcmlnaHQ6IDE0IH07XG4gIGNvbnN0IGlubmVyUG9zaXRpb24gPSBpc01vYmlsZSA/IHsgbGVmdDogOCwgdG9wOiAyIH0gOiB7IHJpZ2h0OiA4IH07XG4gIGNvbnN0IHRvZ2dsZUJ0blNpemUgPSBpc01vYmlsZSA/IDU0IDogNDI7XG5cbiAgcmV0dXJuIFtcbiAgICA8VWlFbnRpdHlcbiAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtpc1BsYXllckFkbWluID8gKFxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogaXNNb2JpbGUgPyAncm93LXJldmVyc2UnIDogJ3JvdycsXG4gICAgICAgICAgICBwb3NpdGlvbjogb3V0ZXJQb3NpdGlvbixcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiBzdGF0ZS5wYW5lbE9wZW4gPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgICAgIHdpZHRoOiA1MDAsXG4gICAgICAgICAgICAgIHBvaW50ZXJGaWx0ZXI6ICdibG9jaycsXG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBtYXJnaW46IGlubmVyUG9zaXRpb24sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MCxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICAgICAgICAgIGxlZnQ6IDEyLFxuICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogY29udGFpbmVyQmFja2dyb3VuZENvbG9yIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMYWJlbFxuICAgICAgICAgICAgICAgIHZhbHVlPVwiQURNSU4gVE9PTFNcIlxuICAgICAgICAgICAgICAgIGZvbnRTaXplPXsyMH1cbiAgICAgICAgICAgICAgICBjb2xvcj17Q29sb3I0LmNyZWF0ZSgxNjAsIDE1NSwgMTY4LCAxKX1cbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17eyBmbGV4R3JvdzogMSB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJhZG1pbl90b29sa2l0X21vZGVyYXRpb25fY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLk1PREVSQVRJT05fQ09OVFJPTCA/ICdwcmltYXJ5JyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICBpY29uPXtnZXRCdG5Nb2RlcmF0aW9uQ29udHJvbCgpfVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6XG4gICAgICAgICAgICAgICAgICAgIGFkbWluVG9vbGtpdEVudGl0eS5tb2RlcmF0aW9uQ29udHJvbC5pc0VuYWJsZWQgJiYgIWlzUHJldmlldygpXG4gICAgICAgICAgICAgICAgICAgICAgPyAnZmxleCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvbkJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuTU9ERVJBVElPTl9DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgICAgPyBDb2xvcjQuQmxhY2soKVxuICAgICAgICAgICAgICAgICAgICAgIDogQ29sb3I0LldoaXRlKCksXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7IGhlaWdodDogJzEwMCUnLCB3aWR0aDogJzEwMCUnIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuTU9ERVJBVElPTl9DT05UUk9MKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuTk9ORTtcbiAgICAgICAgICAgICAgICAgICAgbmV4dFRpY2tGdW5jdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5NT0RFUkFUSU9OX0NPTlRST0w7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImFkbWluX3Rvb2xraXRfcGFuZWxfdmlkZW9fY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlZJREVPX0NPTlRST0wgPyAncHJpbWFyeScgOiAndGV4dCd9XG4gICAgICAgICAgICAgICAgaWNvbj17QURNSU5fSUNPTlMuQlROX1ZJREVPX0NPTlRST0x9XG4gICAgICAgICAgICAgICAgaWNvbkJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVklERU9fQ09OVFJPTCA/IENvbG9yNC5CbGFjaygpIDogQ29sb3I0LldoaXRlKCksXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbmx5SWNvblxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBhZG1pblRvb2xraXRFbnRpdHkudmlkZW9Db250cm9sLmlzRW5hYmxlZCA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVklERU9fQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICAgIG5leHRUaWNrRnVuY3Rpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuVklERU9fQ09OVFJPTDtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiYWRtaW5fdG9vbGtpdF9wYW5lbF9zbWFydF9pdGVtc19jb250cm9sXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuU01BUlRfSVRFTVNfQ09OVFJPTCA/ICdwcmltYXJ5JyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICBpY29uPXtBRE1JTl9JQ09OUy5CVE5fU01BUlRfSVRFTV9DT05UUk9MfVxuICAgICAgICAgICAgICAgIGljb25CYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgICA/IENvbG9yNC5CbGFjaygpXG4gICAgICAgICAgICAgICAgICAgICAgOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGFkbWluVG9vbGtpdEVudGl0eS5zbWFydEl0ZW1zQ29udHJvbC5pc0VuYWJsZWQgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4IH0sXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuYWN0aXZlVGFiICE9PSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0wpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FO1xuICAgICAgICAgICAgICAgICAgICBuZXh0VGlja0Z1bmN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0w7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImFkbWluX3Rvb2xraXRfcGFuZWxfdGV4dF9hbm5vdW5jZW1lbnRfY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlRFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0wgPyAncHJpbWFyeScgOiAndGV4dCd9XG4gICAgICAgICAgICAgICAgaWNvbj17QURNSU5fSUNPTlMuQlROX1RFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0x9XG4gICAgICAgICAgICAgICAgaWNvbkJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTFxuICAgICAgICAgICAgICAgICAgICAgID8gQ29sb3I0LkJsYWNrKClcbiAgICAgICAgICAgICAgICAgICAgICA6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25seUljb25cbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYWRtaW5Ub29sa2l0RW50aXR5LnRleHRBbm5vdW5jZW1lbnRDb250cm9sLmlzRW5hYmxlZCA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICAgIG5leHRUaWNrRnVuY3Rpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTDtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgIC8vIE1vYmlsZTogY2FwIHRoZSB0YWIgY29udGVudCB0byB0aGUgdmlld3BvcnQgYW5kIHNjcm9sbCB0aGVcbiAgICAgICAgICAgICAgICAvLyBvdmVyZmxvdywgc28gdGFsbCB0YWJzIChlLmcuIHBlcm1pc3Npb25zKSBzdGF5IGZ1bGx5IHJlYWNoYWJsZS5cbiAgICAgICAgICAgICAgICAvLyBUaGUgaGVhZGVyIGFib3ZlIHN0YXlzIGZpeGVkOyBkZXNrdG9wIGlzIGxlZnQgdW50b3VjaGVkLlxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogaXNNb2JpbGUgPyAnODV2aCcgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGlzTW9iaWxlID8gJ3Njcm9sbCcgOiAndmlzaWJsZScsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCA/IChcbiAgICAgICAgICAgICAgICA8VGV4dEFubm91bmNlbWVudHNDb250cm9sXG4gICAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICAgIHN0YXRlPXtzdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHBsYXllcj17cGxheWVyfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlZJREVPX0NPTlRST0wgPyAoXG4gICAgICAgICAgICAgICAgPFZpZGVvQ29udHJvbFxuICAgICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgICBzdGF0ZT17c3RhdGV9XG4gICAgICAgICAgICAgICAgICBwbGF5ZXJBZGRyZXNzPXtwbGF5ZXI/LnVzZXJJZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3N0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5TTUFSVF9JVEVNU19DT05UUk9MID8gKFxuICAgICAgICAgICAgICAgIDxTbWFydEl0ZW1zQ29udHJvbFxuICAgICAgICAgICAgICAgICAgZW5naW5lPXtlbmdpbmV9XG4gICAgICAgICAgICAgICAgICBzdGF0ZT17c3RhdGV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuTU9ERVJBVElPTl9DT05UUk9MICYmIChcbiAgICAgICAgICAgICAgICA8TW9kZXJhdGlvbkNvbnRyb2xcbiAgICAgICAgICAgICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICAgICAgICAgICAgcGxheWVyPXtwbGF5ZXJ9XG4gICAgICAgICAgICAgICAgICBzY2VuZUFkbWlucz17c2NlbmVBZG1pbnNDYWNoZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICBoZWlnaHQ6IHRvZ2dsZUJ0blNpemUsXG4gICAgICAgICAgICAgIHdpZHRoOiB0b2dnbGVCdG5TaXplLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBwb2ludGVyRmlsdGVyOiAnYmxvY2snLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBBRE1JTl9JQ09OUy5CVE5fQURNSU5fVE9PTEtJVF9CQUNLR1JPVU5ELFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICBjb2xvcjogQ29sb3I0LmNyZWF0ZSgxLCAxLCAxLCAxKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPERDTEJ1dHRvblxuICAgICAgICAgICAgICB2YWx1ZT1cIlwiXG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0b2dnbGVCdG5TaXplIC0gMixcbiAgICAgICAgICAgICAgICB3aWR0aDogdG9nZ2xlQnRuU2l6ZSAtIDIsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICAgIHNyYzogQURNSU5fSUNPTlMuQlROX0FETUlOX1RPT0xLSVRfQ09OVFJPTCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgICAgY29sb3I6IENvbG9yNC5jcmVhdGUoMSwgMSwgMSwgMSksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RhdGUucGFuZWxPcGVuID0gIXN0YXRlLnBhbmVsT3BlbjtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFRleHRBbm5vdW5jZW1lbnRzXG4gICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICBzdGF0ZT17c3RhdGV9XG4gICAgICAvPlxuICAgIDwvVWlFbnRpdHk+LFxuICAgIG1vZGVyYXRpb25Db250cm9sU3RhdGUuc2hvd01vZGFsQWRtaW5MaXN0ICYmIChcbiAgICAgIDxNb2RhbFVzZXJMaXN0XG4gICAgICAgIHVzZXJzPXtzY2VuZUFkbWluc0NhY2hlID8/IFtdfVxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgdHlwZT17VXNlckxpc3RUeXBlLkFETUlOfVxuICAgICAgLz5cbiAgICApLFxuICAgIG1vZGVyYXRpb25Db250cm9sU3RhdGUuc2hvd01vZGFsQmFuTGlzdCAmJiAoXG4gICAgICA8TW9kYWxVc2VyTGlzdFxuICAgICAgICB1c2Vycz17c2NlbmVCYW5zQ2FjaGUgPz8gW119XG4gICAgICAgIGVuZ2luZT17ZW5naW5lfVxuICAgICAgICB0eXBlPXtVc2VyTGlzdFR5cGUuQkFOfVxuICAgICAgLz5cbiAgICApLFxuICAgIHNob3djYXNlU3RhdGUuc2hvdyAmJlxuICAgICAgc2hvd2Nhc2VTdGF0ZS5vblNlbGVjdFRyYWNrICYmXG4gICAgICBzaG93Y2FzZVN0YXRlLm9uU2V0RGVmYXVsdCAmJlxuICAgICAgc2hvd2Nhc2VTdGF0ZS5vbkNsb3NlICYmIChcbiAgICAgICAgPFNwZWFrZXJTaG93Y2FzZVxuICAgICAgICAgIHBhcnRpY2lwYW50cz17c2hvd2Nhc2VTdGF0ZS5wYXJ0aWNpcGFudHN9XG4gICAgICAgICAgYWN0aXZlVHJhY2tTaWQ9e3Nob3djYXNlU3RhdGUuYWN0aXZlVHJhY2tTaWR9XG4gICAgICAgICAgb25TZWxlY3RUcmFjaz17c2hvd2Nhc2VTdGF0ZS5vblNlbGVjdFRyYWNrfVxuICAgICAgICAgIG9uU2V0RGVmYXVsdD17c2hvd2Nhc2VTdGF0ZS5vblNldERlZmF1bHR9XG4gICAgICAgICAgb25DbG9zZT17c2hvd2Nhc2VTdGF0ZS5vbkNsb3NlfVxuICAgICAgICAvPlxuICAgICAgKSxcbiAgICBzaGFyZVByZXNlbnRhdGlvblN0YXRlLnNob3cgJiYgc2hhcmVQcmVzZW50YXRpb25TdGF0ZS5vbkNsb3NlICYmIChcbiAgICAgIDxTaGFyZVByZXNlbnRhdGlvbk1vZGFsXG4gICAgICAgIG9uQ2xvc2U9e3NoYXJlUHJlc2VudGF0aW9uU3RhdGUub25DbG9zZX1cbiAgICAgICAgc3RyZWFtaW5nS2V5PXtzdGF0ZS52aWRlb0NvbnRyb2wuZGNsQ2FzdD8uc3RyZWFtaW5nS2V5ID8/ICcnfVxuICAgICAgLz5cbiAgICApLFxuICBdO1xufTtcbiJdfQ==