@gravitee/ui-policy-studio-angular 14.1.1 → 14.1.2

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.
@@ -315,6 +315,7 @@ export class GioPolicyStudioFlowsMenuComponent {
315
315
  throw new Error(`Flow ${flowId} not found`);
316
316
  }
317
317
  const duplicatedFlow = cloneDeep(flowToDuplicate);
318
+ delete duplicatedFlow.id;
318
319
  duplicatedFlow._id = uniqueId('flow_');
319
320
  duplicatedFlow.name = `${duplicatedFlow.name} - Copy`;
320
321
  duplicatedFlow._hasChanged = true;
@@ -354,4 +355,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
354
355
  }], deleteFlow: [{
355
356
  type: Output
356
357
  }] } });
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFxQyxjQUFjLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFL0gsT0FBTyxFQUNMLDZDQUE2QyxHQUU5QyxNQUFNLHdGQUF3RixDQUFDO0FBR2hH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LCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIyIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZmxhdHRlbiwgaXNFbXB0eSwgdW5pcXVlSWQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgR0lPX0RJQUxPR19XSURUSCwgR2lvSWNvbnNNb2R1bGUsIEdpb0xvYWRlck1vZHVsZSB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgRHJhZ0Ryb3BNb2R1bGUsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxufSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbG93R3JvdXBWTSwgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vcG9saWN5LXN0dWRpby9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQgeyBBcGlUeXBlLCBDaGFubmVsU2VsZWN0b3IsIENvbmRpdGlvblNlbGVjdG9yLCBDb25uZWN0b3JJbmZvLCBGbG93RXhlY3V0aW9uLCBIdHRwU2VsZWN0b3IsIE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LW5hdGl2ZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1uYXRpdmUtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIEZsb3dHcm91cE1lbnVWTSBleHRlbmRzIEZsb3dHcm91cFZNIHtcbiAgZmxvd3M6IEZsb3dNZW51Vk1bXTtcbn1cblxuaW50ZXJmYWNlIEZsb3dNZW51Vk0gZXh0ZW5kcyBGbG93Vk0ge1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgbW91c2VPdmVyOiBib29sZWFuO1xuICBiYWRnZXM6IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGNsYXNzOiBzdHJpbmc7XG4gIH1bXTtcbiAgcGF0aE9yQ2hhbm5lbExhYmVsOiBzdHJpbmc7XG4gIGhhc0NvbmRpdGlvbjogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtHaW9JY29uc01vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBDb21tb25Nb2R1bGUsIEdpb0xvYWRlck1vZHVsZSwgTWF0TWVudU1vZHVsZSwgRHJhZ0Ryb3BNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2dpby1wcy1mbG93cy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvRmxvd3NNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZsb3dFeGVjdXRpb24hOiBGbG93RXhlY3V0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3dJZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW50cnlwb2ludHM6IENvbm5lY3RvckluZm9bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRyeXBvaW50c0luZm86IENvbm5lY3RvckluZm9bXSA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRGbG93SWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dzR3JvdXBzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93R3JvdXBWTVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd0V4ZWN1dGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd0V4ZWN1dGlvbj4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGRlbGV0ZUZsb3cgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBwdWJsaWMgZmxvd0dyb3VwTWVudUl0ZW1zOiBGbG93R3JvdXBNZW51Vk1bXSA9IFtdO1xuXG4gIHB1YmxpYyBlbnRlclByZWRpY2F0ZTogKGRyYWc6IENka0RyYWc8Rmxvd0dyb3VwTWVudVZNPiwgZHJvcDogQ2RrRHJvcExpc3Q8Rmxvd0dyb3VwTWVudVZNPikgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZsb3dzR3JvdXBzIHx8IGNoYW5nZXMuc2VsZWN0ZWRGbG93SWQpIHtcbiAgICAgIHRoaXMuZmxvd0dyb3VwTWVudUl0ZW1zID0gY2xvbmVEZWVwKHRoaXMuZmxvd3NHcm91cHMpLm1hcChmbG93R3JvdXAgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZsb3dHcm91cCxcbiAgICAgICAgICBmbG93czogZmxvd0dyb3VwLmZsb3dzLm1hcChmbG93ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJhZGdlczogRmxvd01lbnVWTVsnYmFkZ2VzJ10gPSBbXTtcbiAgICAgICAgICAgIGxldCBwYXRoT3JDaGFubmVsTGFiZWwgPSAnJztcbiAgICAgICAgICAgIGxldCBoYXNDb25kaXRpb24gPSBmYWxzZTtcblxuICAgICAgICAgICAgLy8gTUVTU0FHRSBBUEkgLSBDSEFOTkVMXG4gICAgICAgICAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NIQU5ORUwnKSBhcyBDaGFubmVsU2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoY2hhbm5lbFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvblRvQmFkZ2U6IFJlY29yZDxPcGVyYXRpb24sIHN0cmluZz4gPSB7XG4gICAgICAgICAgICAgICAgUFVCTElTSDogJ1BVQicsXG4gICAgICAgICAgICAgICAgU1VCU0NSSUJFOiAnU1VCJyxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgLy8gSWYgbm8gb3BlcmF0aW9ucyBhcmUgc2VsZWN0ZWQsIGFsbCBvcGVyYXRpb25zIGFyZSB2YWxpZFxuICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb25CYWRnZXMgPSAoXG4gICAgICAgICAgICAgICAgIWNoYW5uZWxTZWxlY3Rvci5vcGVyYXRpb25zIHx8IGlzRW1wdHkoY2hhbm5lbFNlbGVjdG9yLm9wZXJhdGlvbnMpXG4gICAgICAgICAgICAgICAgICA/IChbJ1BVQkxJU0gnLCAnU1VCU0NSSUJFJ10gYXMgY29uc3QpXG4gICAgICAgICAgICAgICAgICA6IGNoYW5uZWxTZWxlY3Rvci5vcGVyYXRpb25zXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAubWFwKG9wZXJhdGlvbiA9PiAoe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IG9wZXJhdGlvblRvQmFkZ2Vbb3BlcmF0aW9uXSxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpO1xuICAgICAgICAgICAgICBvcGVyYXRpb25CYWRnZXMgJiYgYmFkZ2VzLnB1c2goLi4ub3BlcmF0aW9uQmFkZ2VzKTtcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsID0gYCR7Y2hhbm5lbFNlbGVjdG9yLmNoYW5uZWx9JHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbE9wZXJhdG9yID09PSAnU1RBUlRTX1dJVEgnID8gJyoqJyA6ICcnfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEhUVFAgQVBJIC0gSFRUUFxuICAgICAgICAgICAgY29uc3QgaHR0cFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdIVFRQJykgYXMgSHR0cFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGh0dHBTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAvLyBLZWVwIG9ubHkgMiBmaXJzdCBodHRwIG1ldGhvZHMgYW5kIGFkZCArWCBiYWRnZSBpZiB0aGVyZSBhcmUgbW9yZVxuICAgICAgICAgICAgICBjb25zdCBodHRwTWV0aG9kc1RvS2VlcCA9IGh0dHBTZWxlY3Rvci5tZXRob2RzPy5zbGljZSgwLCAyKTtcbiAgICAgICAgICAgICAgY29uc3QgaHR0cE1ldGhvZHNMZW5ndGggPSBodHRwU2VsZWN0b3IubWV0aG9kcz8ubGVuZ3RoID8/IDA7XG4gICAgICAgICAgICAgIGh0dHBNZXRob2RzVG9LZWVwICYmXG4gICAgICAgICAgICAgICAgYmFkZ2VzLnB1c2goLi4uaHR0cE1ldGhvZHNUb0tlZXAubWFwKG1ldGhvZCA9PiAoeyBsYWJlbDogbWV0aG9kLCBjbGFzczogYGdpby1tZXRob2QtYmFkZ2UtJHttZXRob2QudG9Mb3dlckNhc2UoKX1gIH0pKSk7XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCAmJiBodHRwTWV0aG9kc0xlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGArJHtodHRwTWV0aG9kc0xlbmd0aCAtIDJ9YCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJhZGdlcz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ0FMTCcsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCA9IGAke2h0dHBTZWxlY3Rvci5wYXRofSR7aHR0cFNlbGVjdG9yLnBhdGhPcGVyYXRvciA9PT0gJ1NUQVJUU19XSVRIJyA/ICcvKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NPTkRJVElPTicpIGFzIENvbmRpdGlvblNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNvbmRpdGlvblNlbGVjdG9yICYmIGNvbmRpdGlvblNlbGVjdG9yLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgICBoYXNDb25kaXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5mbG93LFxuICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEZsb3dJZCA9PT0gZmxvdy5faWQsXG4gICAgICAgICAgICAgIG1vdXNlT3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgIGJhZGdlcyxcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsLFxuICAgICAgICAgICAgICBoYXNDb25kaXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZW50ZXJQcmVkaWNhdGUgPSAoX2RyYWc6IENka0RyYWc8Rmxvd0dyb3VwTWVudVZNPiwgZHJvcDogQ2RrRHJvcExpc3Q8Rmxvd0dyb3VwTWVudVZNPikgPT4ge1xuICAgICAgICBpZiAodGhpcy5hcGlUeXBlID09PSAnTkFUSVZFJykge1xuICAgICAgICAgIHJldHVybiBpc0VtcHR5KGRyb3AuZGF0YS5mbG93cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RGbG93KGdyb3VwSWQ6IHN0cmluZywgZmxvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmbG93ID0gdGhpcy5mbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZ3JvdXBJZCk/LmZsb3dzLmZpbmQoZiA9PiBmLl9pZCA9PT0gZmxvd0lkKTtcbiAgICBpZiAoZmxvdykge1xuICAgICAgdGhpcy5zZWxlY3RlZEZsb3dJZENoYW5nZS5lbWl0KGZsb3cuX2lkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BZGRGbG93KGZsb3dHcm91cDogRmxvd0dyb3VwVk0pOiB2b2lkIHtcbiAgICBsZXQgZGlhbG9nUmVzdWx0O1xuXG4gICAgc3dpdGNoICh0aGlzLmFwaVR5cGUpIHtcbiAgICAgIGNhc2UgJ01FU1NBR0UnOlxuICAgICAgICBkaWFsb2dSZXN1bHQgPSB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgIC5vcGVuPFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nRGF0YSxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0XG4gICAgICAgICAgPihHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgZmxvdzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBlbnRyeXBvaW50czogdGhpcy5lbnRyeXBvaW50cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BST1hZJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+KFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTkFUSVZFJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93TmF0aXZlRm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dEYXRhLCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4oXG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TmF0aXZlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHBhcmVudEdyb3VwTmFtZTogZmxvd0dyb3VwLm5hbWUsXG4gICAgICAgICAgICAgICAgZmxvdzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgICBpZDogJ2dpb1BzRmxvd0Zvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEFQSSB0eXBlICR7dGhpcy5hcGlUeXBlfWApO1xuICAgIH1cblxuICAgIGRpYWxvZ1Jlc3VsdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChjcmVhdGVkT3JFZGl0ZWQgPT4ge1xuICAgICAgICAgIGlmICghY3JlYXRlZE9yRWRpdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGVkaXRlZEZsb3dzR3JvdXBzID0gY2xvbmVEZWVwKHRoaXMuZmxvd3NHcm91cHMpO1xuXG4gICAgICAgICAgY29uc3QgZmxvd3NHcm91cFRvRWRpdCA9IGVkaXRlZEZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBmbG93R3JvdXAuX2lkKTtcbiAgICAgICAgICBpZiAoIWZsb3dzR3JvdXBUb0VkaXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyBncm91cCAke2Zsb3dHcm91cC5faWR9IG5vdCBmb3VuZGApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmbG93c0dyb3VwVG9FZGl0LmZsb3dzLnB1c2goY3JlYXRlZE9yRWRpdGVkKTtcblxuICAgICAgICAgIHRoaXMuZmxvd3NHcm91cHNDaGFuZ2UuZW1pdChlZGl0ZWRGbG93c0dyb3Vwcyk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZsb3dJZENoYW5nZS5lbWl0KGNyZWF0ZWRPckVkaXRlZC5faWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbmZpZ3VyZUV4ZWN1dGlvbihmbG93RXhlY3V0aW9uOiBGbG93RXhlY3V0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsIEZsb3dFeGVjdXRpb24gfCB1bmRlZmluZWQ+KFxuICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGZsb3dFeGVjdXRpb24sXG4gICAgICAgICAgICByZWFkT25seTogdGhpcy5yZWFkT25seSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nJyxcbiAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgICAuYWZ0ZXJDbG9zZWQoKTtcblxuICAgIGRpYWxvZ1Jlc3VsdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChlZGl0ZWQgPT4ge1xuICAgICAgICAgIGlmICghZWRpdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZmxvd0V4ZWN1dGlvbkNoYW5nZS5lbWl0KGVkaXRlZCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uRGlzYWJsZUZsb3coZmxvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmbG93VG9FZGl0ID0gZmxhdHRlbih0aGlzLmZsb3dzR3JvdXBzLm1hcChmbG93R3JvdXAgPT4gZmxvd0dyb3VwLmZsb3dzKSkuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIGlmICghZmxvd1RvRWRpdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGbG93ICR7Zmxvd0lkfSBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgZmxvd1RvRWRpdC5lbmFibGVkID0gIWZsb3dUb0VkaXQuZW5hYmxlZDtcbiAgICBmbG93VG9FZGl0Ll9oYXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQodGhpcy5mbG93c0dyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgb25Ecm9wRmxvdyhldmVudDogQ2RrRHJhZ0Ryb3A8Rmxvd0dyb3VwTWVudVZNPik6IHZvaWQge1xuICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XG4gICAgICAvLyBNb3ZlIGluc2lkZSB0aGUgc2FtZSBncm91cFxuICAgICAgY29uc3QgZmxvd3NHcm91cFRvRWRpdCA9IHRoaXMuZmxvd3NHcm91cHMuZmluZChmZyA9PiBmZy5faWQgPT09IGV2ZW50LmNvbnRhaW5lci5kYXRhLl9pZCk7XG4gICAgICBpZiAoIWZsb3dzR3JvdXBUb0VkaXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGbG93IGdyb3VwICR7ZXZlbnQuY29udGFpbmVyLmRhdGEuX2lkfSBub3QgZm91bmRgKTtcbiAgICAgIH1cbiAgICAgIG1vdmVJdGVtSW5BcnJheShmbG93c0dyb3VwVG9FZGl0LmZsb3dzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgdGhpcy5mbG93c0dyb3Vwc0NoYW5nZS5lbWl0KHRoaXMuZmxvd3NHcm91cHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBNb3ZlIGZyb20gYSBncm91cCB0byBhbm90aGVyXG4gICAgICBjb25zdCBwcmV2aW91c0Zsb3dzR3JvdXBUb0VkaXQgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLl9pZCk7XG4gICAgICBjb25zdCBmbG93c0dyb3VwVG9FZGl0ID0gdGhpcy5mbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZXZlbnQuY29udGFpbmVyLmRhdGEuX2lkKTtcbiAgICAgIGlmICghcHJldmlvdXNGbG93c0dyb3VwVG9FZGl0IHx8ICFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyBncm91cCAke2V2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEuX2lkfSBvciAke2V2ZW50LmNvbnRhaW5lci5kYXRhLl9pZH0gbm90IGZvdW5kYCk7XG4gICAgICB9XG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShwcmV2aW91c0Zsb3dzR3JvdXBUb0VkaXQuZmxvd3MsIGZsb3dzR3JvdXBUb0VkaXQuZmxvd3MsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG5cbiAgICAgIGZsb3dzR3JvdXBUb0VkaXQuZmxvd3NbZXZlbnQuY3VycmVudEluZGV4XS5faGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgICBmbG93c0dyb3VwVG9FZGl0LmZsb3dzW2V2ZW50LmN1cnJlbnRJbmRleF0uX3BhcmVudEZsb3dHcm91cE5hbWUgPSBmbG93c0dyb3VwVG9FZGl0Lm5hbWU7XG4gICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQodGhpcy5mbG93c0dyb3Vwcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRWRpdEZsb3coZmxvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmbG93VG9FZGl0ID0gZmxhdHRlbih0aGlzLmZsb3dzR3JvdXBzLm1hcChmbG93R3JvdXAgPT4gZmxvd0dyb3VwLmZsb3dzKSkuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuXG4gICAgbGV0IGRpYWxvZ1Jlc3VsdDtcblxuICAgIHN3aXRjaCAodGhpcy5hcGlUeXBlKSB7XG4gICAgICBjYXNlICdNRVNTQUdFJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgID4oR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGZsb3c6IGZsb3dUb0VkaXQsXG4gICAgICAgICAgICAgIGVudHJ5cG9pbnRzOiB0aGlzLmVudHJ5cG9pbnRzSW5mbyA/PyBbXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dNZXNzYWdlRm9ybURpYWxvZycsXG4gICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQUk9YWSc6XG4gICAgICAgIGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBmbG93OiBmbG93VG9FZGl0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgICBpZDogJ2dpb1BzRmxvd1Byb3h5Rm9ybURpYWxvZycsXG4gICAgICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ05BVElWRSc6XG4gICAgICAgIGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nRGF0YSwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+KFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBwYXJlbnRHcm91cE5hbWU6IGZsb3dUb0VkaXQhLl9wYXJlbnRGbG93R3JvdXBOYW1lLFxuICAgICAgICAgICAgICAgIGZsb3c6IGZsb3dUb0VkaXQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93TmF0aXZlRm9ybURpYWxvZycsXG4gICAgICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgQVBJIHR5cGUgJHt0aGlzLmFwaVR5cGV9YCk7XG4gICAgfVxuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGVkaXRlZEZsb3cgPT4ge1xuICAgICAgICAgIGlmICghZWRpdGVkRmxvdykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzID0gdGhpcy5mbG93c0dyb3Vwcy5tYXAoZmcgPT4gKHtcbiAgICAgICAgICAgIC4uLmZnLFxuICAgICAgICAgICAgZmxvd3M6IGZnLmZsb3dzLm1hcChmID0+IChmLl9pZCA9PT0gZWRpdGVkRmxvdy5faWQgPyBlZGl0ZWRGbG93IDogZikpLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQodGhpcy5mbG93c0dyb3Vwcyk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlRmxvdyhmbG93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZsb3dUb0VkaXQgPSBmbGF0dGVuKHRoaXMuZmxvd3NHcm91cHMubWFwKGZsb3dHcm91cCA9PiBmbG93R3JvdXAuZmxvd3MpKS5maW5kKGYgPT4gZi5faWQgPT09IGZsb3dJZCk7XG4gICAgdGhpcy5kZWxldGVGbG93LmVtaXQoZmxvd1RvRWRpdCk7XG4gIH1cblxuICBwdWJsaWMgb25EdXBsaWNhdGVGbG93KGZsb3dHcm91cElkOiBzdHJpbmcsIGZsb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZmxvd3NHcm91cFRvRWRpdCA9IHRoaXMuZmxvd3NHcm91cHMuZmluZChmZyA9PiBmZy5faWQgPT09IGZsb3dHcm91cElkKTtcbiAgICBpZiAoIWZsb3dzR3JvdXBUb0VkaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyBncm91cCAke2Zsb3dHcm91cElkfSBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgY29uc3QgZmxvd1RvRHVwbGljYXRlID0gZmxvd3NHcm91cFRvRWRpdC5mbG93cy5maW5kKGYgPT4gZi5faWQgPT09IGZsb3dJZCk7XG4gICAgaWYgKCFmbG93VG9EdXBsaWNhdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyAke2Zsb3dJZH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICAgIGNvbnN0IGR1cGxpY2F0ZWRGbG93ID0gY2xvbmVEZWVwKGZsb3dUb0R1cGxpY2F0ZSk7XG4gICAgZHVwbGljYXRlZEZsb3cuX2lkID0gdW5pcXVlSWQoJ2Zsb3dfJyk7XG4gICAgZHVwbGljYXRlZEZsb3cubmFtZSA9IGAke2R1cGxpY2F0ZWRGbG93Lm5hbWV9IC0gQ29weWA7XG4gICAgZHVwbGljYXRlZEZsb3cuX2hhc0NoYW5nZWQgPSB0cnVlO1xuICAgIGNvbnN0IGluZGV4ID0gZmxvd3NHcm91cFRvRWRpdC5mbG93cy5pbmRleE9mKGZsb3dUb0R1cGxpY2F0ZSk7XG4gICAgZmxvd3NHcm91cFRvRWRpdC5mbG93cy5zcGxpY2UoaW5kZXggKyAxLCAwLCBkdXBsaWNhdGVkRmxvdyk7XG4gICAgdGhpcy5mbG93c0dyb3Vwc0NoYW5nZS5lbWl0KHRoaXMuZmxvd3NHcm91cHMpO1xuICAgIHRoaXMuc2VsZWN0ZWRGbG93SWRDaGFuZ2UuZW1pdChkdXBsaWNhdGVkRmxvdy5faWQpO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAgICBcbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgICBcbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICAgIFxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cblxuPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19sYWJlbFwiPlxuICAgIEZsb3dzIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmluZm9cIiBtYXRUb29sdGlwPVwiRmxvd3MgYWxsb3cgeW91IHRvIGFwcGx5IGRpZmZlcmVudCBwb2xpY2llcyBvbiB5b3VyIEFQSSBldmVudCBwaGFzZXNcIj48L21hdC1pY29uPlxuICA8L2Rpdj5cbiAgQGlmIChhcGlUeXBlICE9PSAnTkFUSVZFJykge1xuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0blwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX2VkaXRcIiBtYXQtc3Ryb2tlZC1idXR0b24gW2Rpc2FibGVkXT1cImxvYWRpbmdcIiAoY2xpY2spPVwib25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbilcIj5cbiAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cInJlYWRPbmx5ID8gJ2dpbzpleWUtZW1wdHknIDogJ2dpbzpzZXR0aW5ncydcIj48L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibGlzdFwiICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ0xpc3RcIiBjZGtEcm9wTGlzdEdyb3VwPlxuICA8ZGl2XG4gICAgKm5nRm9yPVwibGV0IGZsb3dzR3JvdXAgb2YgZmxvd0dyb3VwTWVudUl0ZW1zXCJcbiAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIlxuICAgIGNka0Ryb3BMaXN0XG4gICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJmbG93c0dyb3VwXCJcbiAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJlbnRlclByZWRpY2F0ZVwiXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3BGbG93KCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fbGFiZWxcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiZmxvd3NHcm91cC5faWNvblwiIFtzdmdJY29uXT1cImZsb3dzR3JvdXAuX2ljb25cIj48L21hdC1pY29uPlxuICAgICAgICA8c3Bhbj57eyBmbG93c0dyb3VwLm5hbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19oZWFkZXJfX2FkZEJ0blwiPlxuICAgICAgICBAaWYgKGFwaVR5cGUgPT09ICdOQVRJVkUnKSB7XG4gICAgICAgICAgPHNwYW4gW21hdFRvb2x0aXBEaXNhYmxlZF09XCJmbG93c0dyb3VwLmZsb3dzLmxlbmd0aCA8IDFcIiBtYXRUb29sdGlwPVwiT25seSBvbmUgZmxvdyBpcyBhbGxvd2VkIGZvciBhIG5hdGl2ZSBBUElcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwicmVhZE9ubHkgfHwgZmxvd3NHcm91cC5mbG93cy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cIm9uQWRkRmxvdyhmbG93c0dyb3VwKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFtkaXNhYmxlZF09XCJyZWFkT25seVwiIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnBsdXNcIiBtYXRUb29sdGlwPVwiTmV3IGZsb3dcIj48L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c1wiPlxuICAgICAgQGZvciAoZmxvdyBvZiBmbG93c0dyb3VwLmZsb3dzOyB0cmFjayBmbG93Ll9pZCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c19fZmxvd1wiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZsb3cuc2VsZWN0ZWRcIlxuICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhZmxvdy5lbmFibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RmxvdyhmbG93c0dyb3VwLl9pZCwgZmxvdy5faWQpXCJcbiAgICAgICAgICAobW91c2VvdXQpPVwiZmxvdy5tb3VzZU92ZXIgPSBmYWxzZVwiXG4gICAgICAgICAgKG1vdXNlb3Zlcik9XCJmbG93Lm1vdXNlT3ZlciA9IHRydWVcIlxuICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c19fZmxvd19fbGVmdFwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZsb3cubmFtZVwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dfX2xlZnRfX25hbWVcIiBbYXR0ci50aXRsZV09XCJmbG93Lm5hbWVcIj5cbiAgICAgICAgICAgICAge3sgZmxvdy5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoYXBpVHlwZSAhPT0gJ05BVElWRScpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dzX19mbG93X19sZWZ0X19pbmZvc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c19fZmxvd19fbGVmdF9faW5mb3NfX2JhZGdlc1wiPlxuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJhZGdlIG9mIGZsb3cuYmFkZ2VzXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c19fZmxvd19fbGVmdF9faW5mb3NfX2JhZGdlc19fYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJiYWRnZS5jbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgID57eyBiYWRnZS5sYWJlbCB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c19fZmxvd19fbGVmdF9faW5mb3NfX3BhdGhPckNoYW5uZWxMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmbG93LnBhdGhPckNoYW5uZWxMYWJlbDsgZWxzZSBlbXB0eVBhdGhPckNoYW5uZWxMYWJlbFwiIFthdHRyLnRpdGxlXT1cImZsb3cucGF0aE9yQ2hhbm5lbExhYmVsXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgZmxvdy5wYXRoT3JDaGFubmVsTGFiZWxcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eVBhdGhPckNoYW5uZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGVtPkVtcHR5PC9lbT5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmbG93Lmhhc0NvbmRpdGlvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dzX19mbG93X19sZWZ0X19pbmZvc19fY29uZGl0aW9uQmFkZ2UgZ2lvLWJhZGdlLW5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkNvbmRpdGlvbmVkXCJcbiAgICAgICAgICAgICAgICAgID48bWF0LWljb24gc3ZnSWNvbj1cImdpbzppZlwiPjwvbWF0LWljb25cbiAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dfX3JpZ2h0XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dfX3JpZ2h0X19uYW1lX19tZW51XCJcbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZmxvd01lbnVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86bW9yZS12ZXJ0aWNhbFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjZmxvd01lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInJlYWRPbmx5XCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25EaXNhYmxlRmxvdyhmbG93Ll9pZClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiZmxvdy5lbmFibGVkID8gJ2dpbzpwcm9oaWJpdGlvbicgOiAnZ2lvOmNoZWNrLWNpcmNsZWQtb3V0bGluZSdcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZsb3cuZW5hYmxlZCA/ICdEaXNhYmxlJyA6ICdFbmFibGUnIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkVkaXRGbG93KGZsb3cuX2lkKVwiPjxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmVkaXQtcGVuY2lsXCI+PC9tYXQtaWNvbj4gRWRpdDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRGVsZXRlRmxvdyhmbG93Ll9pZClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzp0cmFzaFwiPjwvbWF0LWljb24+IERlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICBAaWYgKGFwaVR5cGUgIT09ICdOQVRJVkUnKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkR1cGxpY2F0ZUZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y29weVwiPjwvbWF0LWljb24+IER1cGxpY2F0ZVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nTGlzdD5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmdMaXN0XCI+XG4gICAgPGdpby1sb2FkZXI+PC9naW8tbG9hZGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFxQyxjQUFjLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFL0gsT0FBTyxFQUNMLDZDQUE2QyxHQUU5QyxNQUFNLHdGQUF3RixDQUFDO0FBR2hHLE9BQU8sRUFDTCwyQ0FBMkMsR0FFNUMsTUFBTSxvRkFBb0YsQ0FBQztBQUU1RixPQUFPLEVBQ0wsK0NBQStDLEdBRWhELE1BQU0sMkVBQTJFLENBQUM7QUFDbkYsT0FBTyxFQUNMLDRDQUE0QyxHQUU3QyxNQUFNLHNGQUFzRixDQUFDOzs7Ozs7Ozs7O0FBdUI5RixNQUFNLE9BQU8saUNBQWlDO0lBeUM1QyxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBdkMxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFTaEIsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBR2hDLG1CQUFjLEdBQVksU0FBUyxDQUFDO1FBR3BDLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUdsQyxvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFHdEMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdsRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUd0RCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUd4RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV4Qyx1QkFBa0IsR0FBc0IsRUFBRSxDQUFDO1FBRTNDLG1CQUFjLEdBQW9GLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUVoRSxDQUFDO0lBRTlDLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDcEUsT0FBTztvQkFDTCxHQUFHLFNBQVM7b0JBQ1osS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNoQyxNQUFNLE1BQU0sR0FBeUIsRUFBRSxDQUFDO3dCQUN4QyxJQUFJLGtCQUFrQixHQUFHLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUV6Qix3QkFBd0I7d0JBQ3hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQW9CLENBQUM7d0JBQzNGLElBQUksZUFBZSxFQUFFLENBQUM7NEJBQ3BCLE1BQU0sZ0JBQWdCLEdBQThCO2dDQUNsRCxPQUFPLEVBQUUsS0FBSztnQ0FDZCxTQUFTLEVBQUUsS0FBSzs2QkFDakIsQ0FBQzs0QkFDRiwwREFBMEQ7NEJBQzFELE1BQU0sZUFBZSxHQUFHLENBQ3RCLENBQUMsZUFBZSxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztnQ0FDaEUsQ0FBQyxDQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBVztnQ0FDckMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQy9CO2lDQUNFLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7Z0NBQ2pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7Z0NBQ2xDLEtBQUssRUFBRSxtQkFBbUI7NkJBQzNCLENBQUMsQ0FBQztpQ0FDRixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzs0QkFDbEQsZUFBZSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQzs0QkFDbkQsa0JBQWtCLEdBQUcsR0FBRyxlQUFlLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxlQUFlLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUNwSCxDQUFDO3dCQUVELGtCQUFrQjt3QkFDbEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBaUIsQ0FBQzt3QkFDbEYsSUFBSSxZQUFZLEVBQUUsQ0FBQzs0QkFDakIsb0VBQW9FOzRCQUNwRSxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDNUQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7NEJBQzVELGlCQUFpQjtnQ0FDZixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUMxSCxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixHQUFHLENBQUMsRUFBRSxDQUFDO2dDQUMvQyxNQUFNLEVBQUUsSUFBSSxDQUFDO29DQUNYLEtBQUssRUFBRSxJQUFJLGlCQUFpQixHQUFHLENBQUMsRUFBRTtvQ0FDbEMsS0FBSyxFQUFFLG1CQUFtQjtpQ0FDM0IsQ0FBQyxDQUFDOzRCQUNMLENBQUM7NEJBQ0QsSUFBSSxpQkFBaUIsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQ0FDNUIsTUFBTSxFQUFFLElBQUksQ0FBQztvQ0FDWCxLQUFLLEVBQUUsS0FBSztvQ0FDWixLQUFLLEVBQUUsbUJBQW1CO2lDQUMzQixDQUFDLENBQUM7NEJBQ0wsQ0FBQzs0QkFFRCxrQkFBa0IsR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFlBQVksS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7d0JBQ3pHLENBQUM7d0JBRUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFzQixDQUFDO3dCQUNqRyxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDOzRCQUNyRCxZQUFZLEdBQUcsSUFBSSxDQUFDO3dCQUN0QixDQUFDO3dCQUVELE9BQU87NEJBQ0wsR0FBRyxJQUFJOzRCQUNQLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxHQUFHOzRCQUMxQyxTQUFTLEVBQUUsS0FBSzs0QkFDaEIsTUFBTTs0QkFDTixrQkFBa0I7NEJBQ2xCLFlBQVk7eUJBQ2IsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEtBQStCLEVBQUUsSUFBa0MsRUFBRSxFQUFFO2dCQUM1RixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQzlCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlLEVBQUUsTUFBYztRQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDaEcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLFNBQXNCO1FBQ3JDLElBQUksWUFBWSxDQUFDO1FBRWpCLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLEtBQUssU0FBUztnQkFDWixZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVM7cUJBQzFCLElBQUksQ0FJSCw2Q0FBNkMsRUFBRTtvQkFDL0MsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxTQUFTO3dCQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztxQkFDOUI7b0JBQ0QsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLEVBQUUsRUFBRSxxQkFBcUI7b0JBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO2lCQUMvQixDQUFDO3FCQUNELFdBQVcsRUFBRSxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUztxQkFDMUIsSUFBSSxDQUNILDJDQUEyQyxFQUMzQztvQkFDRSxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNELElBQUksRUFBRSxhQUFhO29CQUNuQixFQUFFLEVBQUUscUJBQXFCO29CQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtpQkFDL0IsQ0FDRjtxQkFDQSxXQUFXLEVBQUUsQ0FBQztnQkFDakIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVM7cUJBQzFCLElBQUksQ0FDSCw0Q0FBNEMsRUFDNUM7b0JBQ0UsSUFBSSxFQUFFO3dCQUNKLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSTt3QkFDL0IsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNELElBQUksRUFBRSxhQUFhO29CQUNuQixFQUFFLEVBQUUscUJBQXFCO29CQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtpQkFDL0IsQ0FDRjtxQkFDQSxXQUFXLEVBQUUsQ0FBQztnQkFDakIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFFRCxZQUFZO2FBQ1QsSUFBSSxDQUNILEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXRELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxTQUFTLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUU3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsYUFBNEI7UUFDdEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVM7YUFDaEMsSUFBSSxDQUNILCtDQUErQyxFQUMvQztZQUNFLElBQUksRUFBRTtnQkFDSixhQUFhO2dCQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QjtZQUNELElBQUksRUFBRSxhQUFhO1lBQ25CLEVBQUUsRUFBRSw4QkFBOEI7WUFDbEMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU07U0FDL0IsQ0FDRjthQUNBLFdBQVcsRUFBRSxDQUFDO1FBRWpCLFlBQVk7YUFDVCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBYztRQUNqQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsTUFBTSxZQUFZLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDekMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFtQztRQUNuRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEQsNkJBQTZCO1lBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUN0RSxDQUFDO1lBQ0QsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLCtCQUErQjtZQUMvQixNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFHLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO1lBQzdHLENBQUM7WUFDRCxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRW5ILGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUM5RCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN4RixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFjO1FBQzlCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFM0csSUFBSSxZQUFZLENBQUM7UUFFakIsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsS0FBSyxTQUFTO2dCQUNaLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUztxQkFDMUIsSUFBSSxDQUlILDZDQUE2QyxFQUFFO29CQUMvQyxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUU7cUJBQ3hDO29CQUNELElBQUksRUFBRSxhQUFhO29CQUNuQixFQUFFLEVBQUUsNEJBQTRCO29CQUNoQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtpQkFDL0IsQ0FBQztxQkFDRCxXQUFXLEVBQUUsQ0FBQztnQkFDakIsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVM7cUJBQzFCLElBQUksQ0FDSCwyQ0FBMkMsRUFDM0M7b0JBQ0UsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxVQUFVO3FCQUNqQjtvQkFDRCxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsRUFBRSxFQUFFLDBCQUEwQjtvQkFDOUIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU07aUJBQy9CLENBQ0Y7cUJBQ0EsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTO3FCQUMxQixJQUFJLENBQ0gsNENBQTRDLEVBQzVDO29CQUNFLElBQUksRUFBRTt3QkFDSixlQUFlLEVBQUUsVUFBVyxDQUFDLG9CQUFvQjt3QkFDakQsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO29CQUNELElBQUksRUFBRSxhQUFhO29CQUNuQixFQUFFLEVBQUUsMkJBQTJCO29CQUMvQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtpQkFDL0IsQ0FDRjtxQkFDQSxXQUFXLEVBQUUsQ0FBQztnQkFDakIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFFRCxZQUFZO2FBQ1QsSUFBSSxDQUNILEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDN0MsR0FBRyxFQUFFO2dCQUNMLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RFLENBQUMsQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQW1CLEVBQUUsTUFBYztRQUN4RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsV0FBVyxZQUFZLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxNQUFNLFlBQVksQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsT0FBTyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBRXpCLGNBQWMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDdEQsY0FBYyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBalhVLGlDQUFpQztrR0FBakMsaUNBQWlDLG1mQ25FOUMsKzVMQTBJQSx3ckdENUVZLGNBQWMsbUxBQUUsZ0JBQWdCLDRUQUFFLGVBQWUsMk5BQUUsWUFBWSw2VkFBRSxlQUFlLDBHQUFFLGFBQWEsNnZCQUFFLGNBQWM7OzJGQUs5RyxpQ0FBaUM7a0JBTjdDLFNBQVM7OEJBQ0MsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxZQUNoSCxtQkFBbUI7OEVBTXRCLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTTtnQkFJQSxVQUFVO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGZsYXR0ZW4sIGlzRW1wdHksIHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEdJT19ESUFMT0dfV0lEVEgsIEdpb0ljb25zTW9kdWxlLCBHaW9Mb2FkZXJNb2R1bGUgfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIERyYWdEcm9wTW9kdWxlLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd0dyb3VwVk0sIEZsb3dWTSB9IGZyb20gJy4uLy4uL3BvbGljeS1zdHVkaW8vZ2lvLXBvbGljeS1zdHVkaW8ubW9kZWwnO1xuaW1wb3J0IHsgQXBpVHlwZSwgQ2hhbm5lbFNlbGVjdG9yLCBDb25kaXRpb25TZWxlY3RvciwgQ29ubmVjdG9ySW5mbywgRmxvd0V4ZWN1dGlvbiwgSHR0cFNlbGVjdG9yLCBPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1wcm94eS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQgfSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWZvcm0tZGlhbG9nLXJlc3VsdC5tb2RlbCc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLFxufSBmcm9tICcuLi9mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1leGVjdXRpb24tZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93TmF0aXZlRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1uYXRpdmUtZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctbmF0aXZlLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBGbG93R3JvdXBNZW51Vk0gZXh0ZW5kcyBGbG93R3JvdXBWTSB7XG4gIGZsb3dzOiBGbG93TWVudVZNW107XG59XG5cbmludGVyZmFjZSBGbG93TWVudVZNIGV4dGVuZHMgRmxvd1ZNIHtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG1vdXNlT3ZlcjogYm9vbGVhbjtcbiAgYmFkZ2VzOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBjbGFzczogc3RyaW5nO1xuICB9W107XG4gIHBhdGhPckNoYW5uZWxMYWJlbDogc3RyaW5nO1xuICBoYXNDb25kaXRpb246IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbR2lvSWNvbnNNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgQ29tbW9uTW9kdWxlLCBHaW9Mb2FkZXJNb2R1bGUsIE1hdE1lbnVNb2R1bGUsIERyYWdEcm9wTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvd3MtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0Zsb3dzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkT25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uITogRmxvd0V4ZWN1dGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHM6IEZsb3dHcm91cFZNW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRGbG93SWQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVudHJ5cG9pbnRzOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW50cnlwb2ludHNJbmZvOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkRmxvd0lkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbG93c0dyb3Vwc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd0dyb3VwVk1bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dFeGVjdXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dFeGVjdXRpb24+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBkZWxldGVGbG93ID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93Vk0+KCk7XG5cbiAgcHVibGljIGZsb3dHcm91cE1lbnVJdGVtczogRmxvd0dyb3VwTWVudVZNW10gPSBbXTtcblxuICBwdWJsaWMgZW50ZXJQcmVkaWNhdGU6IChkcmFnOiBDZGtEcmFnPEZsb3dHcm91cE1lbnVWTT4sIGRyb3A6IENka0Ryb3BMaXN0PEZsb3dHcm91cE1lbnVWTT4pID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5mbG93c0dyb3VwcyB8fCBjaGFuZ2VzLnNlbGVjdGVkRmxvd0lkKSB7XG4gICAgICB0aGlzLmZsb3dHcm91cE1lbnVJdGVtcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKS5tYXAoZmxvd0dyb3VwID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5mbG93R3JvdXAsXG4gICAgICAgICAgZmxvd3M6IGZsb3dHcm91cC5mbG93cy5tYXAoZmxvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCBiYWRnZXM6IEZsb3dNZW51Vk1bJ2JhZGdlcyddID0gW107XG4gICAgICAgICAgICBsZXQgcGF0aE9yQ2hhbm5lbExhYmVsID0gJyc7XG4gICAgICAgICAgICBsZXQgaGFzQ29uZGl0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIE1FU1NBR0UgQVBJIC0gQ0hBTk5FTFxuICAgICAgICAgICAgY29uc3QgY2hhbm5lbFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDSEFOTkVMJykgYXMgQ2hhbm5lbFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNoYW5uZWxTZWxlY3Rvcikge1xuICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb25Ub0JhZGdlOiBSZWNvcmQ8T3BlcmF0aW9uLCBzdHJpbmc+ID0ge1xuICAgICAgICAgICAgICAgIFBVQkxJU0g6ICdQVUInLFxuICAgICAgICAgICAgICAgIFNVQlNDUklCRTogJ1NVQicsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIC8vIElmIG5vIG9wZXJhdGlvbnMgYXJlIHNlbGVjdGVkLCBhbGwgb3BlcmF0aW9ucyBhcmUgdmFsaWRcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uQmFkZ2VzID0gKFxuICAgICAgICAgICAgICAgICFjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9ucyB8fCBpc0VtcHR5KGNoYW5uZWxTZWxlY3Rvci5vcGVyYXRpb25zKVxuICAgICAgICAgICAgICAgICAgPyAoWydQVUJMSVNIJywgJ1NVQlNDUklCRSddIGFzIGNvbnN0KVxuICAgICAgICAgICAgICAgICAgOiBjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9uc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLm1hcChvcGVyYXRpb24gPT4gKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBvcGVyYXRpb25Ub0JhZGdlW29wZXJhdGlvbl0sXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubGFiZWwpKTtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uQmFkZ2VzICYmIGJhZGdlcy5wdXNoKC4uLm9wZXJhdGlvbkJhZGdlcyk7XG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCA9IGAke2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsfSR7Y2hhbm5lbFNlbGVjdG9yLmNoYW5uZWxPcGVyYXRvciA9PT0gJ1NUQVJUU19XSVRIJyA/ICcqKicgOiAnJ31gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIVFRQIEFQSSAtIEhUVFBcbiAgICAgICAgICAgIGNvbnN0IGh0dHBTZWxlY3RvciA9IGZsb3cuc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnSFRUUCcpIGFzIEh0dHBTZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChodHRwU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgLy8gS2VlcCBvbmx5IDIgZmlyc3QgaHR0cCBtZXRob2RzIGFuZCBhZGQgK1ggYmFkZ2UgaWYgdGhlcmUgYXJlIG1vcmVcbiAgICAgICAgICAgICAgY29uc3QgaHR0cE1ldGhvZHNUb0tlZXAgPSBodHRwU2VsZWN0b3IubWV0aG9kcz8uc2xpY2UoMCwgMik7XG4gICAgICAgICAgICAgIGNvbnN0IGh0dHBNZXRob2RzTGVuZ3RoID0gaHR0cFNlbGVjdG9yLm1ldGhvZHM/Lmxlbmd0aCA/PyAwO1xuICAgICAgICAgICAgICBodHRwTWV0aG9kc1RvS2VlcCAmJlxuICAgICAgICAgICAgICAgIGJhZGdlcy5wdXNoKC4uLmh0dHBNZXRob2RzVG9LZWVwLm1hcChtZXRob2QgPT4gKHsgbGFiZWw6IG1ldGhvZCwgY2xhc3M6IGBnaW8tbWV0aG9kLWJhZGdlLSR7bWV0aG9kLnRvTG93ZXJDYXNlKCl9YCB9KSkpO1xuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggJiYgaHR0cE1ldGhvZHNMZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAgICAgYmFkZ2VzPy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBgKyR7aHR0cE1ldGhvZHNMZW5ndGggLSAyfWAsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBTEwnLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtodHRwU2VsZWN0b3IucGF0aH0ke2h0dHBTZWxlY3Rvci5wYXRoT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnLyoqJyA6ICcnfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvblNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDT05ESVRJT04nKSBhcyBDb25kaXRpb25TZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChjb25kaXRpb25TZWxlY3RvciAmJiBjb25kaXRpb25TZWxlY3Rvci5jb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgaGFzQ29uZGl0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uZmxvdyxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRGbG93SWQgPT09IGZsb3cuX2lkLFxuICAgICAgICAgICAgICBtb3VzZU92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICBiYWRnZXMsXG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCxcbiAgICAgICAgICAgICAgaGFzQ29uZGl0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVudGVyUHJlZGljYXRlID0gKF9kcmFnOiBDZGtEcmFnPEZsb3dHcm91cE1lbnVWTT4sIGRyb3A6IENka0Ryb3BMaXN0PEZsb3dHcm91cE1lbnVWTT4pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYXBpVHlwZSA9PT0gJ05BVElWRScpIHtcbiAgICAgICAgICByZXR1cm4gaXNFbXB0eShkcm9wLmRhdGEuZmxvd3MpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0Rmxvdyhncm91cElkOiBzdHJpbmcsIGZsb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZmxvdyA9IHRoaXMuZmxvd3NHcm91cHMuZmluZChmZyA9PiBmZy5faWQgPT09IGdyb3VwSWQpPy5mbG93cy5maW5kKGYgPT4gZi5faWQgPT09IGZsb3dJZCk7XG4gICAgaWYgKGZsb3cpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGbG93SWRDaGFuZ2UuZW1pdChmbG93Ll9pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQWRkRmxvdyhmbG93R3JvdXA6IEZsb3dHcm91cFZNKTogdm9pZCB7XG4gICAgbGV0IGRpYWxvZ1Jlc3VsdDtcblxuICAgIHN3aXRjaCAodGhpcy5hcGlUeXBlKSB7XG4gICAgICBjYXNlICdNRVNTQUdFJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgID4oR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgZW50cnlwb2ludHM6IHRoaXMuZW50cnlwb2ludHMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93Rm9ybURpYWxvZycsXG4gICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQUk9YWSc6XG4gICAgICAgIGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBmbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93Rm9ybURpYWxvZycsXG4gICAgICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ05BVElWRSc6XG4gICAgICAgIGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nRGF0YSwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+KFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBwYXJlbnRHcm91cE5hbWU6IGZsb3dHcm91cC5uYW1lLFxuICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBBUEkgdHlwZSAke3RoaXMuYXBpVHlwZX1gKTtcbiAgICB9XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBlZGl0ZWRGbG93c0dyb3VwcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKTtcblxuICAgICAgICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSBlZGl0ZWRGbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZmxvd0dyb3VwLl9pZCk7XG4gICAgICAgICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtmbG93R3JvdXAuX2lkfSBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvd3NHcm91cFRvRWRpdC5mbG93cy5wdXNoKGNyZWF0ZWRPckVkaXRlZCk7XG5cbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQoZWRpdGVkRmxvd3NHcm91cHMpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG93SWRDaGFuZ2UuZW1pdChjcmVhdGVkT3JFZGl0ZWQuX2lkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLCBGbG93RXhlY3V0aW9uIHwgdW5kZWZpbmVkPihcbiAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBmbG93RXhlY3V0aW9uLFxuICAgICAgICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZE9ubHksXG4gICAgICAgICAgfSxcbiAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgIGlkOiAnZ2lvUHNGbG93RXhlY3V0aW9uRm9ybURpYWxvZycsXG4gICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICB9LFxuICAgICAgKVxuICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZsb3dFeGVjdXRpb25DaGFuZ2UuZW1pdChlZGl0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRpc2FibGVGbG93KGZsb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZmxvd1RvRWRpdCA9IGZsYXR0ZW4odGhpcy5mbG93c0dyb3Vwcy5tYXAoZmxvd0dyb3VwID0+IGZsb3dHcm91cC5mbG93cykpLmZpbmQoZiA9PiBmLl9pZCA9PT0gZmxvd0lkKTtcbiAgICBpZiAoIWZsb3dUb0VkaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyAke2Zsb3dJZH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICAgIGZsb3dUb0VkaXQuZW5hYmxlZCA9ICFmbG93VG9FZGl0LmVuYWJsZWQ7XG4gICAgZmxvd1RvRWRpdC5faGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgdGhpcy5mbG93c0dyb3Vwc0NoYW5nZS5lbWl0KHRoaXMuZmxvd3NHcm91cHMpO1xuICB9XG5cbiAgcHVibGljIG9uRHJvcEZsb3coZXZlbnQ6IENka0RyYWdEcm9wPEZsb3dHcm91cE1lbnVWTT4pOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgLy8gTW92ZSBpbnNpZGUgdGhlIHNhbWUgZ3JvdXBcbiAgICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBldmVudC5jb250YWluZXIuZGF0YS5faWQpO1xuICAgICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyBncm91cCAke2V2ZW50LmNvbnRhaW5lci5kYXRhLl9pZH0gbm90IGZvdW5kYCk7XG4gICAgICB9XG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZmxvd3NHcm91cFRvRWRpdC5mbG93cywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgIHRoaXMuZmxvd3NHcm91cHNDaGFuZ2UuZW1pdCh0aGlzLmZsb3dzR3JvdXBzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTW92ZSBmcm9tIGEgZ3JvdXAgdG8gYW5vdGhlclxuICAgICAgY29uc3QgcHJldmlvdXNGbG93c0dyb3VwVG9FZGl0ID0gdGhpcy5mbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YS5faWQpO1xuICAgICAgY29uc3QgZmxvd3NHcm91cFRvRWRpdCA9IHRoaXMuZmxvd3NHcm91cHMuZmluZChmZyA9PiBmZy5faWQgPT09IGV2ZW50LmNvbnRhaW5lci5kYXRhLl9pZCk7XG4gICAgICBpZiAoIXByZXZpb3VzRmxvd3NHcm91cFRvRWRpdCB8fCAhZmxvd3NHcm91cFRvRWRpdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLl9pZH0gb3IgJHtldmVudC5jb250YWluZXIuZGF0YS5faWR9IG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0ocHJldmlvdXNGbG93c0dyb3VwVG9FZGl0LmZsb3dzLCBmbG93c0dyb3VwVG9FZGl0LmZsb3dzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuXG4gICAgICBmbG93c0dyb3VwVG9FZGl0LmZsb3dzW2V2ZW50LmN1cnJlbnRJbmRleF0uX2hhc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgZmxvd3NHcm91cFRvRWRpdC5mbG93c1tldmVudC5jdXJyZW50SW5kZXhdLl9wYXJlbnRGbG93R3JvdXBOYW1lID0gZmxvd3NHcm91cFRvRWRpdC5uYW1lO1xuICAgICAgdGhpcy5mbG93c0dyb3Vwc0NoYW5nZS5lbWl0KHRoaXMuZmxvd3NHcm91cHMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkVkaXRGbG93KGZsb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZmxvd1RvRWRpdCA9IGZsYXR0ZW4odGhpcy5mbG93c0dyb3Vwcy5tYXAoZmxvd0dyb3VwID0+IGZsb3dHcm91cC5mbG93cykpLmZpbmQoZiA9PiBmLl9pZCA9PT0gZmxvd0lkKTtcblxuICAgIGxldCBkaWFsb2dSZXN1bHQ7XG5cbiAgICBzd2l0Y2ggKHRoaXMuYXBpVHlwZSkge1xuICAgICAgY2FzZSAnTUVTU0FHRSc6XG4gICAgICAgIGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgLm9wZW48XG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHRcbiAgICAgICAgICA+KEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBmbG93OiBmbG93VG9FZGl0LFxuICAgICAgICAgICAgICBlbnRyeXBvaW50czogdGhpcy5lbnRyeXBvaW50c0luZm8gPz8gW10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93TWVzc2FnZUZvcm1EaWFsb2cnLFxuICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUFJPWFknOlxuICAgICAgICBkaWFsb2dSZXN1bHQgPSB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4oXG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZmxvdzogZmxvd1RvRWRpdCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dQcm94eUZvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdOQVRJVkUnOlxuICAgICAgICBkaWFsb2dSZXN1bHQgPSB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93TmF0aXZlRm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgcGFyZW50R3JvdXBOYW1lOiBmbG93VG9FZGl0IS5fcGFyZW50Rmxvd0dyb3VwTmFtZSxcbiAgICAgICAgICAgICAgICBmbG93OiBmbG93VG9FZGl0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgICBpZDogJ2dpb1BzRmxvd05hdGl2ZUZvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEFQSSB0eXBlICR7dGhpcy5hcGlUeXBlfWApO1xuICAgIH1cblxuICAgIGRpYWxvZ1Jlc3VsdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChlZGl0ZWRGbG93ID0+IHtcbiAgICAgICAgICBpZiAoIWVkaXRlZEZsb3cpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mbG93c0dyb3VwcyA9IHRoaXMuZmxvd3NHcm91cHMubWFwKGZnID0+ICh7XG4gICAgICAgICAgICAuLi5mZyxcbiAgICAgICAgICAgIGZsb3dzOiBmZy5mbG93cy5tYXAoZiA9PiAoZi5faWQgPT09IGVkaXRlZEZsb3cuX2lkID8gZWRpdGVkRmxvdyA6IGYpKSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgdGhpcy5mbG93c0dyb3Vwc0NoYW5nZS5lbWl0KHRoaXMuZmxvd3NHcm91cHMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlbGV0ZUZsb3coZmxvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmbG93VG9FZGl0ID0gZmxhdHRlbih0aGlzLmZsb3dzR3JvdXBzLm1hcChmbG93R3JvdXAgPT4gZmxvd0dyb3VwLmZsb3dzKSkuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIHRoaXMuZGVsZXRlRmxvdy5lbWl0KGZsb3dUb0VkaXQpO1xuICB9XG5cbiAgcHVibGljIG9uRHVwbGljYXRlRmxvdyhmbG93R3JvdXBJZDogc3RyaW5nLCBmbG93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBmbG93R3JvdXBJZCk7XG4gICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtmbG93R3JvdXBJZH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICAgIGNvbnN0IGZsb3dUb0R1cGxpY2F0ZSA9IGZsb3dzR3JvdXBUb0VkaXQuZmxvd3MuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIGlmICghZmxvd1RvRHVwbGljYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgJHtmbG93SWR9IG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICBjb25zdCBkdXBsaWNhdGVkRmxvdyA9IGNsb25lRGVlcChmbG93VG9EdXBsaWNhdGUpO1xuICAgIGRlbGV0ZSBkdXBsaWNhdGVkRmxvdy5pZDtcblxuICAgIGR1cGxpY2F0ZWRGbG93Ll9pZCA9IHVuaXF1ZUlkKCdmbG93XycpO1xuICAgIGR1cGxpY2F0ZWRGbG93Lm5hbWUgPSBgJHtkdXBsaWNhdGVkRmxvdy5uYW1lfSAtIENvcHlgO1xuICAgIGR1cGxpY2F0ZWRGbG93Ll9oYXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICBjb25zdCBpbmRleCA9IGZsb3dzR3JvdXBUb0VkaXQuZmxvd3MuaW5kZXhPZihmbG93VG9EdXBsaWNhdGUpO1xuICAgIGZsb3dzR3JvdXBUb0VkaXQuZmxvd3Muc3BsaWNlKGluZGV4ICsgMSwgMCwgZHVwbGljYXRlZEZsb3cpO1xuICAgIHRoaXMuZmxvd3NHcm91cHNDaGFuZ2UuZW1pdCh0aGlzLmZsb3dzR3JvdXBzKTtcbiAgICB0aGlzLnNlbGVjdGVkRmxvd0lkQ2hhbmdlLmVtaXQoZHVwbGljYXRlZEZsb3cuX2lkKTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGFiZWxcIj5cbiAgICBGbG93cyA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzppbmZvXCIgbWF0VG9vbHRpcD1cIkZsb3dzIGFsbG93IHlvdSB0byBhcHBseSBkaWZmZXJlbnQgcG9saWNpZXMgb24geW91ciBBUEkgZXZlbnQgcGhhc2VzXCI+PC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIEBpZiAoYXBpVHlwZSAhPT0gJ05BVElWRScpIHtcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5cIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0bl9lZGl0XCIgbWF0LXN0cm9rZWQtYnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgKGNsaWNrKT1cIm9uQ29uZmlndXJlRXhlY3V0aW9uKGZsb3dFeGVjdXRpb24pXCI+XG4gICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJyZWFkT25seSA/ICdnaW86ZXllLWVtcHR5JyA6ICdnaW86c2V0dGluZ3MnXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImxpc3RcIiAqbmdJZj1cIiFsb2FkaW5nOyBlbHNlIGxvYWRpbmdMaXN0XCIgY2RrRHJvcExpc3RHcm91cD5cbiAgPGRpdlxuICAgICpuZ0Zvcj1cImxldCBmbG93c0dyb3VwIG9mIGZsb3dHcm91cE1lbnVJdGVtc1wiXG4gICAgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwXCJcbiAgICBjZGtEcm9wTGlzdFxuICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZmxvd3NHcm91cFwiXG4gICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiZW50ZXJQcmVkaWNhdGVcIlxuICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wRmxvdygkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19oZWFkZXJfX2xhYmVsXCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImZsb3dzR3JvdXAuX2ljb25cIiBbc3ZnSWNvbl09XCJmbG93c0dyb3VwLl9pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+e3sgZmxvd3NHcm91cC5uYW1lIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19hZGRCdG5cIj5cbiAgICAgICAgQGlmIChhcGlUeXBlID09PSAnTkFUSVZFJykge1xuICAgICAgICAgIDxzcGFuIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiZmxvd3NHcm91cC5mbG93cy5sZW5ndGggPCAxXCIgbWF0VG9vbHRpcD1cIk9ubHkgb25lIGZsb3cgaXMgYWxsb3dlZCBmb3IgYSBuYXRpdmUgQVBJXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW2Rpc2FibGVkXT1cInJlYWRPbmx5IHx8IGZsb3dzR3JvdXAuZmxvd3MubGVuZ3RoID4gMFwiIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86cGx1c1wiIG1hdFRvb2x0aXA9XCJOZXcgZmxvd1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIiAoY2xpY2spPVwib25BZGRGbG93KGZsb3dzR3JvdXApXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NcIj5cbiAgICAgIEBmb3IgKGZsb3cgb2YgZmxvd3NHcm91cC5mbG93czsgdHJhY2sgZmxvdy5faWQpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dcIlxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJmbG93LnNlbGVjdGVkXCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWZsb3cuZW5hYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiXG4gICAgICAgICAgKG1vdXNlb3V0KT1cImZsb3cubW91c2VPdmVyID0gZmFsc2VcIlxuICAgICAgICAgIChtb3VzZW92ZXIpPVwiZmxvdy5tb3VzZU92ZXIgPSB0cnVlXCJcbiAgICAgICAgICBjZGtEcmFnXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dfX2xlZnRcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmbG93Lm5hbWVcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dzX19mbG93X19sZWZ0X19uYW1lXCIgW2F0dHIudGl0bGVdPVwiZmxvdy5uYW1lXCI+XG4gICAgICAgICAgICAgIHt7IGZsb3cubmFtZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKGFwaVR5cGUgIT09ICdOQVRJVkUnKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c19fZmxvd19fbGVmdF9faW5mb3NcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dfX2xlZnRfX2luZm9zX19iYWRnZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBmbG93LmJhZGdlc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dfX2xlZnRfX2luZm9zX19iYWRnZXNfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYmFkZ2UuY2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICA+e3sgYmFkZ2UubGFiZWwgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd3NfX2Zsb3dfX2xlZnRfX2luZm9zX19wYXRoT3JDaGFubmVsTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmxvdy5wYXRoT3JDaGFubmVsTGFiZWw7IGVsc2UgZW1wdHlQYXRoT3JDaGFubmVsTGFiZWxcIiBbYXR0ci50aXRsZV09XCJmbG93LnBhdGhPckNoYW5uZWxMYWJlbFwiPnt7XG4gICAgICAgICAgICAgICAgICAgIGZsb3cucGF0aE9yQ2hhbm5lbExhYmVsXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlQYXRoT3JDaGFubmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxlbT5FbXB0eTwvZW0+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmxvdy5oYXNDb25kaXRpb25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93c19fZmxvd19fbGVmdF9faW5mb3NfX2NvbmRpdGlvbkJhZGdlIGdpby1iYWRnZS1uZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJDb25kaXRpb25lZFwiXG4gICAgICAgICAgICAgICAgICA+PG1hdC1pY29uIHN2Z0ljb249XCJnaW86aWZcIj48L21hdC1pY29uXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dzX19mbG93X19yaWdodFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dzX19mbG93X19yaWdodF9fbmFtZV9fbWVudVwiXG4gICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZsb3dNZW51XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOm1vcmUtdmVydGljYWxcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bWF0LW1lbnUgI2Zsb3dNZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJyZWFkT25seVwiIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRGlzYWJsZUZsb3coZmxvdy5faWQpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImZsb3cuZW5hYmxlZCA/ICdnaW86cHJvaGliaXRpb24nIDogJ2dpbzpjaGVjay1jaXJjbGVkLW91dGxpbmUnXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBmbG93LmVuYWJsZWQgPyAnRGlzYWJsZScgOiAnRW5hYmxlJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25FZGl0RmxvdyhmbG93Ll9pZClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzplZGl0LXBlbmNpbFwiPjwvbWF0LWljb24+IEVkaXQ8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkRlbGV0ZUZsb3coZmxvdy5faWQpXCI+PG1hdC1pY29uIHN2Z0ljb249XCJnaW86dHJhc2hcIj48L21hdC1pY29uPiBEZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgQGlmIChhcGlUeXBlICE9PSAnTkFUSVZFJykge1xuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25EdXBsaWNhdGVGbG93KGZsb3dzR3JvdXAuX2lkLCBmbG93Ll9pZClcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmNvcHlcIj48L21hdC1pY29uPiBEdXBsaWNhdGVcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0xpc3Q+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nTGlzdFwiPlxuICAgIDxnaW8tbG9hZGVyPjwvZ2lvLWxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL21vZGVscy9mbG93L0Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBTZWxlY3RvciB9IGZyb20gJy4vU2VsZWN0b3InO1xuaW1wb3J0IHsgU3RlcCB9IGZyb20gJy4vU3RlcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvdyB7XG4gIC8qKlxuICAgKiBGbG93J3MgbmFtZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJcyB0aGUgZmxvdyBlbmFibGVkLlxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgc2VsZWN0b3JzPzogU2VsZWN0b3JbXTtcblxuICBjb25uZWN0PzogU3RlcFtdO1xuICBpbnRlcmFjdD86IFN0ZXBbXTtcbiAgcmVxdWVzdD86IFN0ZXBbXTtcbiAgcmVzcG9uc2U/OiBTdGVwW107XG4gIHN1YnNjcmliZT86IFN0ZXBbXTtcbiAgcHVibGlzaD86IFN0ZXBbXTtcbiAgLyoqXG4gICAqIEZsb3cncyB0YWdzLlxuICAgKi9cbiAgdGFncz86IHN0cmluZ1tdO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL21vZGVscy9mbG93L0Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBTZWxlY3RvciB9IGZyb20gJy4vU2VsZWN0b3InO1xuaW1wb3J0IHsgU3RlcCB9IGZyb20gJy4vU3RlcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvdyB7XG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogRmxvdydzIG5hbWUuXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogSXMgdGhlIGZsb3cgZW5hYmxlZC5cbiAgICovXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIHNlbGVjdG9ycz86IFNlbGVjdG9yW107XG5cbiAgY29ubmVjdD86IFN0ZXBbXTtcbiAgaW50ZXJhY3Q/OiBTdGVwW107XG4gIHJlcXVlc3Q/OiBTdGVwW107XG4gIHJlc3BvbnNlPzogU3RlcFtdO1xuICBzdWJzY3JpYmU/OiBTdGVwW107XG4gIHB1Ymxpc2g/OiBTdGVwW107XG4gIC8qKlxuICAgKiBGbG93J3MgdGFncy5cbiAgICovXG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL21vZGVscy9mbG93L0Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBTZWxlY3RvciB9IGZyb20gJy4vU2VsZWN0b3InO1xuaW1wb3J0IHsgU3RlcCB9IGZyb20gJy4vU3RlcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvdyB7XG4gIC8qKlxuICAgKiBGbG93J3MgbmFtZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJcyB0aGUgZmxvdyBlbmFibGVkLlxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgc2VsZWN0b3JzPzogU2VsZWN0b3JbXTtcblxuICBjb25uZWN0PzogU3RlcFtdO1xuICBpbnRlcmFjdD86IFN0ZXBbXTtcbiAgcmVxdWVzdD86IFN0ZXBbXTtcbiAgcmVzcG9uc2U/OiBTdGVwW107XG4gIHN1YnNjcmliZT86IFN0ZXBbXTtcbiAgcHVibGlzaD86IFN0ZXBbXTtcbiAgLyoqXG4gICAqIEZsb3cncyB0YWdzLlxuICAgKi9cbiAgdGFncz86IHN0cmluZ1tdO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL21vZGVscy9mbG93L0Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBTZWxlY3RvciB9IGZyb20gJy4vU2VsZWN0b3InO1xuaW1wb3J0IHsgU3RlcCB9IGZyb20gJy4vU3RlcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvdyB7XG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogRmxvdydzIG5hbWUuXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogSXMgdGhlIGZsb3cgZW5hYmxlZC5cbiAgICovXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIHNlbGVjdG9ycz86IFNlbGVjdG9yW107XG5cbiAgY29ubmVjdD86IFN0ZXBbXTtcbiAgaW50ZXJhY3Q/OiBTdGVwW107XG4gIHJlcXVlc3Q/OiBTdGVwW107XG4gIHJlc3BvbnNlPzogU3RlcFtdO1xuICBzdWJzY3JpYmU/OiBTdGVwW107XG4gIHB1Ymxpc2g/OiBTdGVwW107XG4gIC8qKlxuICAgKiBGbG93J3MgdGFncy5cbiAgICovXG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cbiJdfQ==
@@ -916,6 +916,7 @@ class GioPolicyStudioFlowsMenuComponent {
916
916
  throw new Error(`Flow ${flowId} not found`);
917
917
  }
918
918
  const duplicatedFlow = cloneDeep(flowToDuplicate);
919
+ delete duplicatedFlow.id;
919
920
  duplicatedFlow._id = uniqueId('flow_');
920
921
  duplicatedFlow.name = `${duplicatedFlow.name} - Copy`;
921
922
  duplicatedFlow._hasChanged = true;