tnx-shared 5.2.20 → 5.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app-context/component-context.service.d.ts.map +1 -1
- package/classes/base/component-base.d.ts +1 -1
- package/classes/public-function.d.ts +3 -2
- package/classes/public-function.d.ts.map +1 -1
- package/components/chat/chat-box/chat-box.component.d.ts +1 -1
- package/components/dropdown/services/dropdown.service.d.ts.map +1 -1
- package/components/file-explorer/services/file-explorer-new.service.d.ts.map +1 -1
- package/components/file-explorer/services/file-explorer.service.d.ts.map +1 -1
- package/components/file-explorer/services/file-version.service.d.ts.map +1 -1
- package/components/file-explorer/services/folder.service.d.ts.map +1 -1
- package/components/file-explorer/services/ky-so-sim-signPDF.service.d.ts.map +1 -1
- package/components/file-explorer/services/my-drive.service.d.ts.map +1 -1
- package/components/tn-app-help/services/path-name.service.d.ts.map +1 -1
- package/congviec/congviec/services/congviec-dinhkem.service.d.ts.map +1 -1
- package/esm2020/app-context/component-context.service.mjs +4 -5
- package/esm2020/classes/base/component-base.mjs +2 -2
- package/esm2020/components/common-app-component/common-app-component.mjs +2 -2
- package/esm2020/components/crud/crud-form/crud-form.component.mjs +1 -1
- package/esm2020/components/dropdown/services/dropdown.service.mjs +5 -5
- package/esm2020/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-manager/file-manager.component.mjs +2 -2
- package/esm2020/components/file-explorer/file-viewer/file-viewer.component.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-explorer-new.service.mjs +39 -40
- package/esm2020/components/file-explorer/services/file-explorer.service.mjs +48 -51
- package/esm2020/components/file-explorer/services/file-version.service.mjs +5 -4
- package/esm2020/components/file-explorer/services/folder.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/ky-so-sim-signPDF.service.mjs +3 -2
- package/esm2020/components/file-explorer/services/my-drive.service.mjs +34 -34
- package/esm2020/components/mask/mask.component.mjs +1 -1
- package/esm2020/components/number-picker-range/number-picker-range.component.mjs +1 -1
- package/esm2020/components/tn-app-help/services/path-name.service.mjs +4 -3
- package/esm2020/components/tn-tinymce/tn-tinymce.component.mjs +2 -2
- package/esm2020/components/user-picker/user-picker-box/user-picker-box.component.mjs +1 -1
- package/esm2020/components/workflow/workflow-history-new/workflow-history-new.component.mjs +1 -1
- package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow.component.mjs +1 -1
- package/esm2020/congviec/congviec/services/congviec-dinhkem.service.mjs +5 -4
- package/esm2020/services/article.service.mjs +10 -13
- package/esm2020/services/base.service.mjs +36 -41
- package/esm2020/services/custom-router.service.mjs +4 -5
- package/esm2020/services/entity-picker.service.mjs +4 -3
- package/esm2020/services/file-object-v4.service.mjs +5 -7
- package/esm2020/services/high-performance.service.mjs +4 -3
- package/esm2020/services/master-data.service.mjs +23 -30
- package/esm2020/services/organization.service.mjs +18 -23
- package/esm2020/services/template-v4.service.mjs +3 -2
- package/esm2020/services/template.service.mjs +19 -27
- package/esm2020/services/templateinstance.service.mjs +22 -31
- package/esm2020/services/tn-client.service.mjs +3 -3
- package/esm2020/services/unique-number.service.mjs +4 -3
- package/esm2020/services/user-v5.service.mjs +31 -39
- package/esm2020/services/user.service.mjs +32 -40
- package/fesm2015/tnx-shared.mjs +334 -409
- package/fesm2015/tnx-shared.mjs.map +1 -1
- package/fesm2020/tnx-shared.mjs +334 -409
- package/fesm2020/tnx-shared.mjs.map +1 -1
- package/package.json +2 -2
- package/services/article.service.d.ts.map +1 -1
- package/services/base.service.d.ts.map +1 -1
- package/services/common.service.d.ts +2 -2
- package/services/custom-router.service.d.ts.map +1 -1
- package/services/entity-picker.service.d.ts.map +1 -1
- package/services/file-object-v4.service.d.ts.map +1 -1
- package/services/high-performance.service.d.ts.map +1 -1
- package/services/master-data.service.d.ts.map +1 -1
- package/services/organization.service.d.ts.map +1 -1
- package/services/template-v4.service.d.ts.map +1 -1
- package/services/template.service.d.ts.map +1 -1
- package/services/templateinstance.service.d.ts.map +1 -1
- package/services/unique-number.service.d.ts.map +1 -1
- package/services/user-v5.service.d.ts.map +1 -1
- package/services/user.service.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-context.service.d.ts","sourceRoot":"","sources":["../../../projects/shared/src/lib/app-context/component-context.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAEzF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;;AAC3D,qBACa,uBAAuB;IAiB5B,OAAO,CAAC,cAAc;IAhB1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,uBAAuB,CAAC;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,MAAW;IACf,WAAW,EAAE,oBAAoB,CAAC;IAElC,eAAe,eAAsB;IACrC,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAM;IAChD,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAM;IAChD,cAAc,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;KAAE,CAAM;IAE5D,GAAG,EAAE,GAAG,CAAC;gBAGG,cAAc,EAAE,aAAa;IAKzC,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,gBAAgB;IAYxB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,GAAE,OAAe;IAOxE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,GAAE,OAAe;IAajE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,GAAE,OAAe;IAavE,aAAa,CAAC,IAAI,KAAA;IAMlB,mBAAmB,CAAC,IAAI,KAAA;IAMxB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,mBAAmB;IAQ3B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAW3C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAe/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC;IAKnC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAWrC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAezC,WAAW,CAAC,IAAI,EAAE,MAAM;IAOxB,kBAAkB,CAAC,IAAI,EAAE,MAAM;IAO/B,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,GAAG,GAAG,GAAG;IAK5D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,GAAG,GAAG,GAAG;IAIvD,OAAO,CAAC,eAAe;IASvB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAKvC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAInC,eAAe,CAAC,GAAG,KAAA,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;
|
|
1
|
+
{"version":3,"file":"component-context.service.d.ts","sourceRoot":"","sources":["../../../projects/shared/src/lib/app-context/component-context.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAEzF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;;AAC3D,qBACa,uBAAuB;IAiB5B,OAAO,CAAC,cAAc;IAhB1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,uBAAuB,CAAC;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,MAAW;IACf,WAAW,EAAE,oBAAoB,CAAC;IAElC,eAAe,eAAsB;IACrC,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAM;IAChD,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAM;IAChD,cAAc,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;KAAE,CAAM;IAE5D,GAAG,EAAE,GAAG,CAAC;gBAGG,cAAc,EAAE,aAAa;IAKzC,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,gBAAgB;IAYxB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,GAAE,OAAe;IAOxE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,GAAE,OAAe;IAajE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,GAAE,OAAe;IAavE,aAAa,CAAC,IAAI,KAAA;IAMlB,mBAAmB,CAAC,IAAI,KAAA;IAMxB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,mBAAmB;IAQ3B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAW3C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAe/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC;IAKnC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAWrC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAezC,WAAW,CAAC,IAAI,EAAE,MAAM;IAOxB,kBAAkB,CAAC,IAAI,EAAE,MAAM;IAO/B,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,GAAG,GAAG,GAAG;IAK5D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,GAAG,GAAG,GAAG;IAIvD,OAAO,CAAC,eAAe;IASvB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAKvC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAInC,eAAe,CAAC,GAAG,KAAA,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;IAIrD,cAAc;IAgBd,YAAY,CAAC,GAAG,EAAE,SAAS;yCArQlB,uBAAuB;6CAAvB,uBAAuB;CA0QnC"}
|
|
@@ -48,7 +48,7 @@ export declare abstract class ComponentBase implements OnDestroy {
|
|
|
48
48
|
handleResponse(res: ResponseResult, message?: string, callBack?: Function, callBackError?: Function): void;
|
|
49
49
|
handleResponseWithWaitBox(res: ResponseResult, message?: string, callBack?: Function, callBackError?: Function): void;
|
|
50
50
|
isNotNullArray(arr: any): boolean;
|
|
51
|
-
funcSortDefault(a: any, b: any): 1 |
|
|
51
|
+
funcSortDefault(a: any, b: any): 1 | -1 | 0;
|
|
52
52
|
export(data: ExportItem, version?: number): Promise<ResponseResult>;
|
|
53
53
|
exportExcelV5(data: any, templateCode: string, fileName: string): Promise<ResponseResult>;
|
|
54
54
|
exportV4(data: ExportItem): Promise<ResponseResult>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DatePipe, DecimalPipe } from '@angular/common';
|
|
2
|
-
import { HttpClient
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
3
4
|
import { BrowserModule } from '@angular/platform-browser';
|
|
4
5
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
5
6
|
import { ConfirmationService, MessageService } from 'tn-custom-primeng/api';
|
|
@@ -46,7 +47,7 @@ export declare class PublicFunction {
|
|
|
46
47
|
static createTranslateLoader(http: HttpClient): MultiTranslateHttpLoader;
|
|
47
48
|
static getSignalrConfig(environment: any): any;
|
|
48
49
|
static registerLocaleData(locale?: any, language?: any): void;
|
|
49
|
-
static importRootModule(environment: any): (typeof
|
|
50
|
+
static importRootModule(environment: any): (typeof FormsModule | typeof BrowserModule | import("@angular/core").ModuleWithProviders<TranslateModule>)[];
|
|
50
51
|
static useRootProvider(enviromment: any): (typeof DecimalPipe | typeof DatePipe | typeof ConfirmationService | typeof MessageService | typeof TranslateService | typeof NotifierService | typeof EntityPermissionService | typeof EntityWorkflowHistoryService | typeof EntityWorkflowSettingService | typeof HtmlFormatPipe | typeof MasterDataPipe | typeof OrganizationFormatPipe | typeof OrganizationsFormatPipe | typeof SafeHtmlPipe | typeof UserFormatPipe | typeof UsersFormatPipe | {
|
|
51
52
|
provide: import("@angular/core").InjectionToken<string>;
|
|
52
53
|
useValue: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-function.d.ts","sourceRoot":"","sources":["../../../projects/shared/src/lib/classes/public-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"public-function.d.ts","sourceRoot":"","sources":["../../../projects/shared/src/lib/classes/public-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAuC,MAAM,sBAAsB,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAuB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAmB,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIzF,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,uEAAuE,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,+BAA+B,EAAE,MAAM,2EAA2E,CAAC;AAC5H,OAAO,EAAE,4BAA4B,EAAE,MAAM,iEAAiE,CAAC;AAC/G,OAAO,EAAE,4BAA4B,EAAE,MAAM,iEAAiE,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,qBAAa,cAAc;IAEvB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;IAQ9B,MAAM,CAAC,YAAY;;;;;;;;;;;;;IAqBnB,MAAM,CAAC,aAAa;;;;IAMpB,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU;IAS7C,MAAM,CAAC,gBAAgB,CAAC,WAAW,KAAA;IAoBnC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAA,EAAE,QAAQ,CAAC,KAAA;IAW5C,MAAM,CAAC,gBAAgB,CAAC,WAAW,KAAA;IAyBnC,MAAM,CAAC,eAAe,CAAC,WAAW,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CrC"}
|
|
@@ -73,7 +73,7 @@ export declare class ChatBoxComponent extends ComponentBase implements OnInit, O
|
|
|
73
73
|
updateMessageStatus(message: any, status: any, errorMessage?: string): void;
|
|
74
74
|
getDisplayStatus(status: any): "" | "Đang gửi" | "Đã gửi";
|
|
75
75
|
ngOnDestroy(): void;
|
|
76
|
-
getTypeOfMessage(createdBy: any): "
|
|
76
|
+
getTypeOfMessage(createdBy: any): "own" | "from";
|
|
77
77
|
trackByFunc(index: any, item: any): any;
|
|
78
78
|
trackAttachmentByFunc(index: any, item: any): any;
|
|
79
79
|
handlePaste(event: ClipboardEvent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/dropdown/services/dropdown.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"dropdown.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/dropdown/services/dropdown.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;;AAEjE,qBAGa,eAAe;IAEZ,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,UAAU;IAE3C,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAG1D,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAInG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAQvG,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,wBAAwB;IAahC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;yCA5ChG,eAAe;6CAAf,eAAe;CAuD3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-explorer-new.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/file-explorer-new.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"file-explorer-new.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/file-explorer-new.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-explorer.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/file-explorer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"file-explorer.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/file-explorer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-version.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/file-version.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"file-version.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/file-version.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;;AAG3E,qBAGa,kBAAmB,SAAQ,WAAW;IAO3C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,mBAAmB;IAP/B,WAAW,SAAU;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAK;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAK;gBAE9B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,QAAQ,EACX,cAAc,EAAE,aAAa,EAC7B,mBAAmB,EAAE,kBAAkB;IAOnD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAoB7H,yBAAyB,CAAC,qBAAqB,EAAE,MAAM;IAIvD,0BAA0B;IAI1B,0BAA0B;IAI1B,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D,iBAAiB,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQzE,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKjE,WAAW,CAAC,KAAK,EAAE,GAAG;yCAhFb,kBAAkB;6CAAlB,kBAAkB;CAsF9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/folder.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"folder.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/folder.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;;AAEtE,qBAGa,aAAc,SAAQ,WAAW;IAKtC,OAAO,CAAC,mBAAmB;IAJ/B,WAAW,SAAU;IACrB,UAAU,SAAY;gBAElB,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAC5B,mBAAmB,EAAE,kBAAkB;IAOnD,aAAa;IAIb,kBAAkB,CAAC,SAAS,KAAA,EAAE,cAAc,KAAA;IAS5C,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAMvE,iBAAiB,CAAC,gBAAgB,KAAA,GAAG,OAAO,CAAC,cAAc,CAAC;IAM5D,iBAAiB,CAAC,KAAK,KAAA,GAAG,OAAO,CAAC,cAAc,CAAC;IAMjD,cAAc,CAAC,KAAK,KAAA,GAAG,OAAO,CAAC,cAAc,CAAC;IAM9C,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;yCAjDxE,aAAa;6CAAb,aAAa;CAqDzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ky-so-sim-signPDF.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/ky-so-sim-signPDF.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ky-so-sim-signPDF.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/ky-so-sim-signPDF.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;;AAE3E,qBAGa,qBAAsB,SAAQ,WAAW;IAGR,OAAO,CAAC,mBAAmB;IAFrE,WAAW,SAAU;gBAEjB,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAU,mBAAmB,EAAE,kBAAkB;IAOzF,OAAO,CAAC,IAAI,KAAA,GAAG,OAAO,CAAC,cAAc,CAAC;yCAV7B,qBAAqB;6CAArB,qBAAqB;CAcjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"my-drive.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/my-drive.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"my-drive.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/file-explorer/services/my-drive.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-name.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/tn-app-help/services/path-name.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"path-name.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/components/tn-app-help/services/path-name.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;;AAE3E,qBAGa,eAAgB,SAAQ,WAAW;IAIxC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,mBAAmB;IAJ/B,WAAW,SAAsB;IACjC,UAAU,SAAc;gBAEZ,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAC3C,mBAAmB,EAAE,kBAAkB;IAOnD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;yCAjBvD,eAAe;6CAAf,eAAe;CAqB3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congviec-dinhkem.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/congviec/congviec/services/congviec-dinhkem.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"congviec-dinhkem.service.d.ts","sourceRoot":"","sources":["../../../../../projects/shared/src/lib/congviec/congviec/services/congviec-dinhkem.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIrD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;;AAG3E,qBAGa,sBAAuB,SAAQ,WAAW;IAO/C,OAAO,CAAC,mBAAmB;IAN/B,WAAW,SAAc;IACzB,UAAU,SAA6B;IACvC,UAAU,SAAe;gBAGrB,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAC5B,mBAAmB,EAAE,kBAAkB;IAOnD,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAKvE,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiB9G,cAAc,CAChB,UAAU,EAAE;QACR,CAAC,WAAW,EAAE,MAAM,GAAG;YACnB,CAAC,MAAM,EAAE,MAAM,GAAG;gBACd,YAAY,EAAE,MAAM,CAAC;gBACrB,KAAK,EAAE,MAAM,EAAE,CAAA;aAClB,CAAA;SACJ,CAAA;KACJ;yCA5CI,sBAAsB;6CAAtB,sBAAsB;CA6FlC"}
|
|
@@ -64,12 +64,12 @@ export class ComponentContextService {
|
|
|
64
64
|
}
|
|
65
65
|
completeEvent(name) {
|
|
66
66
|
const subject = this.addSubject(name);
|
|
67
|
-
subject.next();
|
|
67
|
+
subject.next(1);
|
|
68
68
|
subject.complete();
|
|
69
69
|
}
|
|
70
70
|
completeReplayEvent(name) {
|
|
71
71
|
const subject = this.addReplaySubject(name);
|
|
72
|
-
subject.next();
|
|
72
|
+
subject.next(1);
|
|
73
73
|
subject.complete();
|
|
74
74
|
}
|
|
75
75
|
completeSubject(name) {
|
|
@@ -202,7 +202,6 @@ export class ComponentContextService {
|
|
|
202
202
|
return this.setDataInternal(this.data, keyPath, value);
|
|
203
203
|
}
|
|
204
204
|
setDataInternal(obj, keyPath, data) {
|
|
205
|
-
const root = this.root || this;
|
|
206
205
|
this._commonService.setValueByPath(obj, keyPath, data);
|
|
207
206
|
}
|
|
208
207
|
destroyContext() {
|
|
@@ -212,7 +211,7 @@ export class ComponentContextService {
|
|
|
212
211
|
for (const key in this.replaySubjects) {
|
|
213
212
|
this.completeReplaySubject(key);
|
|
214
213
|
}
|
|
215
|
-
this._unSubscribeAll.next();
|
|
214
|
+
this._unSubscribeAll.next(1);
|
|
216
215
|
this._unSubscribeAll.complete();
|
|
217
216
|
this.data = {};
|
|
218
217
|
this.root.fireEvent(ComCtxConstants.ROOT.DESTROY_COMPONENT, this);
|
|
@@ -228,4 +227,4 @@ ComponentContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.
|
|
|
228
227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ComponentContextService, decorators: [{
|
|
229
228
|
type: Injectable
|
|
230
229
|
}], ctorParameters: function () { return [{ type: i1.CommonService }]; } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFJeEUsTUFBTSxPQUFPLHVCQUF1QjtJQWdCaEMsWUFDWSxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVh6QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBR2Ysb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3JDLGFBQVEsR0FBcUMsRUFBRSxDQUFDO1FBQ2hELGFBQVEsR0FBcUMsRUFBRSxDQUFDO1FBQ2hELG1CQUFjLEdBQTJDLEVBQUUsQ0FBQztJQVE1RCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQVksRUFBRSxPQUFzQjtRQUNuRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRTtZQUN0RCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDaEM7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Q0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGNBQWM7UUFDVixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QjtRQUVELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7O29IQTFRUSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXhwb3J0Sm9iIH0gZnJvbSAnLi4vY29tcG9uZW50cy9yZXBvcnQtcXVldWUvYmFzZS1qb2Ivam9iLWl0ZW0nO1xyXG5pbXBvcnQgeyBSZXBvcnRRdWV1ZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVwb3J0LXF1ZXVlL3JlcG9ydC1xdWV1ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21DdHhDb25zdGFudHMgfSBmcm9tICcuLi9jb25maWdzL2NvbXBvbmVudC1jb250ZXh0LmNvbnN0YW50JztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRDb250ZXh0U2VydmljZSB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIHBhdGhUb1Jvb3Q6IHN0cmluZztcclxuICAgIHBhcmVudDogQ29tcG9uZW50Q29udGV4dFNlcnZpY2U7XHJcbiAgICByb290OiBDb21wb25lbnRDb250ZXh0U2VydmljZTtcclxuICAgIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZTtcclxuICAgIGRhdGEgPSA8YW55Pnt9O1xyXG4gICAgcmVwb3J0UXVldWU6IFJlcG9ydFF1ZXVlQ29tcG9uZW50O1xyXG5cclxuICAgIF91blN1YnNjcmliZUFsbCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgIHByb21pc2VzOiB7IFtuYW1lOiBzdHJpbmddOiBQcm9taXNlPGFueT4gfSA9IHt9O1xyXG4gICAgc3ViamVjdHM6IHsgW25hbWU6IHN0cmluZ106IFN1YmplY3Q8YW55PiB9ID0ge307XHJcbiAgICByZXBsYXlTdWJqZWN0czogeyBbbmFtZTogc3RyaW5nXTogUmVwbGF5U3ViamVjdDxhbnk+IH0gPSB7fTtcclxuXHJcbiAgICBzdWI6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRTdWJqZWN0KG5hbWU6IHN0cmluZywgc3ViamVjdD86IFN1YmplY3Q8YW55Pik6IFN1YmplY3Q8YW55PiB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gYCR7dGhpcy5rZXl9LiR7bmFtZX1gO1xyXG4gICAgICAgIGlmICghdGhpcy5zdWJqZWN0c1trZXldIHx8ICF0aGlzLnN1YmplY3RzW2tleV0ub2JzZXJ2ZXJzKSB7XHJcbiAgICAgICAgICAgIGlmICghc3ViamVjdCkge1xyXG4gICAgICAgICAgICAgICAgc3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnN1YmplY3RzW2tleV0gPSBzdWJqZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdHNba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZFJlcGxheVN1YmplY3QobmFtZTogc3RyaW5nLCBzdWJqZWN0PzogUmVwbGF5U3ViamVjdDxhbnk+KTogUmVwbGF5U3ViamVjdDxhbnk+IHtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmtleX0uJHtuYW1lfWA7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlcGxheVN1YmplY3RzW2tleV0gfHwgIXRoaXMucmVwbGF5U3ViamVjdHNba2V5XS5vYnNlcnZlcnMpIHtcclxuICAgICAgICAgICAgaWYgKCFzdWJqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICBzdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVwbGF5U3ViamVjdHNba2V5XSA9IHN1YmplY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5yZXBsYXlTdWJqZWN0c1trZXldO1xyXG4gICAgfVxyXG5cclxuICAgIGZpcmVFdmVudEZvcldhaXQobmFtZTogc3RyaW5nLCBkYXRhPzogYW55LCBjYW5jZWxCdWJibGU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSB0aGlzLmFkZFN1YmplY3QobmFtZSk7XHJcbiAgICAgICAgc3ViamVjdC5uZXh0KGRhdGEpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZmlyZUV2ZW50KG5hbWU6IHN0cmluZywgZGF0YT86IGFueSwgY2FuY2VsQnViYmxlOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5hZGRTdWJqZWN0KG5hbWUpO1xyXG4gICAgICAgIHN1YmplY3QubmV4dChkYXRhKTtcclxuICAgICAgICBpZiAoIWNhbmNlbEJ1YmJsZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQgIT09IHRoaXMucm9vdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQuZmlyZUV2ZW50KG5hbWUsIGRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLnBhcmVudCAmJiB0aGlzLnJvb3QgJiYgdGhpcyAhPT0gdGhpcy5yb290KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QuZmlyZUV2ZW50KG5hbWUsIGRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpcmVSZXBsYXlFdmVudChuYW1lOiBzdHJpbmcsIGRhdGE/OiBhbnksIGNhbmNlbEJ1YmJsZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IHRoaXMuYWRkUmVwbGF5U3ViamVjdChuYW1lKTtcclxuICAgICAgICBzdWJqZWN0Lm5leHQoZGF0YSk7XHJcbiAgICAgICAgaWYgKCFjYW5jZWxCdWJibGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50ICE9PSB0aGlzLnJvb3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50LmZpcmVSZXBsYXlFdmVudChuYW1lLCBkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICghdGhpcy5wYXJlbnQgJiYgdGhpcy5yb290ICYmIHRoaXMgIT09IHRoaXMucm9vdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb290LmZpcmVSZXBsYXlFdmVudChuYW1lLCBkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb21wbGV0ZUV2ZW50KG5hbWUpIHtcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5hZGRTdWJqZWN0KG5hbWUpO1xyXG4gICAgICAgIHN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wbGV0ZVJlcGxheUV2ZW50KG5hbWUpIHtcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5hZGRSZXBsYXlTdWJqZWN0KG5hbWUpO1xyXG4gICAgICAgIHN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbXBsZXRlU3ViamVjdChuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmtleX0uJHtuYW1lfWA7XHJcbiAgICAgICAgaWYgKHRoaXMuc3ViamVjdHNba2V5XSkge1xyXG4gICAgICAgICAgICB0aGlzLnN1YmplY3RzW2tleV0uY29tcGxldGUoKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc3ViamVjdHNba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb21wbGV0ZVJlcGxheVN1YmplY3QobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gYCR7dGhpcy5rZXl9LiR7bmFtZX1gO1xyXG4gICAgICAgIGlmICh0aGlzLnJlcGxheVN1YmplY3RzW2tleV0pIHtcclxuICAgICAgICAgICAgdGhpcy5yZXBsYXlTdWJqZWN0c1trZXldLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnJlcGxheVN1YmplY3RzW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U3ViamVjdChuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmtleX0uJHtuYW1lfWA7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zdWJqZWN0c1trZXldIHx8ICF0aGlzLnN1YmplY3RzW2tleV0ub2JzZXJ2ZXJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViamVjdHNba2V5XSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnN1YmplY3RzW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVTdWJqZWN0KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGAke3RoaXMua2V5fS4ke25hbWV9YDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc3ViamVjdHNba2V5XSkge1xyXG4gICAgICAgICAgICB0aGlzLnN1YmplY3RzW2tleV0udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRSZXBsYXlTdWJqZWN0KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGAke3RoaXMua2V5fS4ke25hbWV9YDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnJlcGxheVN1YmplY3RzW2tleV0gfHwgIXRoaXMucmVwbGF5U3ViamVjdHNba2V5XS5vYnNlcnZlcnMpIHtcclxuICAgICAgICAgICAgdGhpcy5yZXBsYXlTdWJqZWN0c1trZXldID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwbGF5U3ViamVjdHNba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbW92ZVJlcGxheVN1YmplY3QobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gYCR7dGhpcy5rZXl9LiR7bmFtZX1gO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5yZXBsYXlTdWJqZWN0c1trZXldKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVwbGF5U3ViamVjdHNba2V5XS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXBsYXlTdWJzY3JpYmUobmFtZTogc3RyaW5nLCBjYWxsQmFjazogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVwbGF5U3ViamVjdChuYW1lKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsQmFjayhycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCB7fTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVwbGF5U3Vic2NyaWJlT25jZShuYW1lOiBzdHJpbmcsIGNhbGxCYWNrOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnN1YiA9IHRoaXMuZ2V0UmVwbGF5U3ViamVjdChuYW1lKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsQmFjayhycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCB7fTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN1Yikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN1YjtcclxuICAgIH1cclxuXHJcbiAgICB3YWl0KG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3ViamVjdChuYW1lKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJzY3JpYmVBbGwpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmUobmFtZTogc3RyaW5nLCBjYWxsQmFjazogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3ViamVjdChuYW1lKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsQmFjayhycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCB7fTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlT25jZShuYW1lOiBzdHJpbmcsIGNhbGxCYWNrOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnN1YiA9IHRoaXMuZ2V0U3ViamVjdChuYW1lKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsQmFjayhycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCB7fTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN1Yikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN1YjtcclxuICAgIH1cclxuXHJcbiAgICB1blN1YnNjcmliZShuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJqZWN0c1tgJHt0aGlzLmtleX0uJHtuYW1lfWBdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViamVjdHNbYCR7dGhpcy5rZXl9LiR7bmFtZX1gXS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdWJqZWN0c1tgJHt0aGlzLmtleX0uJHtuYW1lfWBdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1blN1YnNjcmlibGVSZXBsYXkobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVwbGF5U3ViamVjdHNbYCR7dGhpcy5rZXl9LiR7bmFtZX1gXSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlcGxheVN1YmplY3RzW2Ake3RoaXMua2V5fS4ke25hbWV9YF0udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVwbGF5U3ViamVjdHNbYCR7dGhpcy5rZXl9LiR7bmFtZX1gXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Um9vdERhdGEoa2V5UGF0aD86IHN0cmluZywgZGVmYXVsdFZhbHVlSWZOdWxsPzogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCByb290ID0gdGhpcy5yb290IHx8IHRoaXM7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YUludGVybmFsKHJvb3QuZGF0YSwga2V5UGF0aCwgZGVmYXVsdFZhbHVlSWZOdWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhKGtleVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlSWZOdWxsPzogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhSW50ZXJuYWwodGhpcy5kYXRhLCBrZXlQYXRoLCBkZWZhdWx0VmFsdWVJZk51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGF0YUludGVybmFsKG9iaiwga2V5UGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWVJZk51bGw/OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmdldFZhbHVlQnlQYXRoKG9iaiwga2V5UGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChkZWZhdWx0VmFsdWVJZk51bGwgJiYgIWRhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29tbW9uU2VydmljZS5zZXRWYWx1ZUJ5UGF0aChvYmosIGtleVBhdGgsIGRlZmF1bHRWYWx1ZUlmTnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb21tb25TZXJ2aWNlLmdldFZhbHVlQnlQYXRoKG9iaiwga2V5UGF0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Um9vdERhdGEoa2V5UGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdCB8fCB0aGlzO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldERhdGFJbnRlcm5hbChyb290LmRhdGEsIGtleVBhdGgsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhKGtleVBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldERhdGFJbnRlcm5hbCh0aGlzLmRhdGEsIGtleVBhdGgsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhSW50ZXJuYWwob2JqLCBrZXlQYXRoOiBzdHJpbmcsIGRhdGE6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdCB8fCB0aGlzO1xyXG4gICAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2Uuc2V0VmFsdWVCeVBhdGgob2JqLCBrZXlQYXRoLCBkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95Q29udGV4dCgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnN1YmplY3RzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVTdWJqZWN0KGtleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnJlcGxheVN1YmplY3RzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVSZXBsYXlTdWJqZWN0KGtleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl91blN1YnNjcmliZUFsbC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5fdW5TdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhID0ge307XHJcbiAgICAgICAgdGhpcy5yb290LmZpcmVFdmVudChDb21DdHhDb25zdGFudHMuUk9PVC5ERVNUUk9ZX0NPTVBPTkVOVCwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkRXhwb3J0Sm9iKGpvYjogRXhwb3J0Sm9iKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucm9vdC5yZXBvcnRRdWV1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJvb3QucmVwb3J0UXVldWUuYWRkSm9iKGpvYik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFJeEUsTUFBTSxPQUFPLHVCQUF1QjtJQWdCaEMsWUFDWSxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVh6QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBR2Ysb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3JDLGFBQVEsR0FBcUMsRUFBRSxDQUFDO1FBQ2hELGFBQVEsR0FBcUMsRUFBRSxDQUFDO1FBQ2hELG1CQUFjLEdBQTJDLEVBQUUsQ0FBQztJQVE1RCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQVksRUFBRSxPQUFzQjtRQUNuRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRTtZQUN0RCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDaEM7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QyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxjQUFjO1FBQ1YsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25DO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFjO1FBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs7b0hBelFRLHVCQUF1Qjt3SEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFeHBvcnRKb2IgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlcG9ydC1xdWV1ZS9iYXNlLWpvYi9qb2ItaXRlbSc7XHJcbmltcG9ydCB7IFJlcG9ydFF1ZXVlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9yZXBvcnQtcXVldWUvcmVwb3J0LXF1ZXVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbUN0eENvbnN0YW50cyB9IGZyb20gJy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudENvbnRleHRTZXJ2aWNlIHtcclxuICAgIGtleTogc3RyaW5nO1xyXG4gICAgcGF0aFRvUm9vdDogc3RyaW5nO1xyXG4gICAgcGFyZW50OiBDb21wb25lbnRDb250ZXh0U2VydmljZTtcclxuICAgIHJvb3Q6IENvbXBvbmVudENvbnRleHRTZXJ2aWNlO1xyXG4gICAgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlO1xyXG4gICAgZGF0YSA9IDxhbnk+e307XHJcbiAgICByZXBvcnRRdWV1ZTogUmVwb3J0UXVldWVDb21wb25lbnQ7XHJcblxyXG4gICAgX3VuU3Vic2NyaWJlQWxsID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgcHJvbWlzZXM6IHsgW25hbWU6IHN0cmluZ106IFByb21pc2U8YW55PiB9ID0ge307XHJcbiAgICBzdWJqZWN0czogeyBbbmFtZTogc3RyaW5nXTogU3ViamVjdDxhbnk+IH0gPSB7fTtcclxuICAgIHJlcGxheVN1YmplY3RzOiB7IFtuYW1lOiBzdHJpbmddOiBSZXBsYXlTdWJqZWN0PGFueT4gfSA9IHt9O1xyXG5cclxuICAgIHN1YjogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2NvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2VcclxuICAgICkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZFN1YmplY3QobmFtZTogc3RyaW5nLCBzdWJqZWN0PzogU3ViamVjdDxhbnk+KTogU3ViamVjdDxhbnk+IHtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmtleX0uJHtuYW1lfWA7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN1YmplY3RzW2tleV0gfHwgIXRoaXMuc3ViamVjdHNba2V5XS5vYnNlcnZlcnMpIHtcclxuICAgICAgICAgICAgaWYgKCFzdWJqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc3ViamVjdHNba2V5XSA9IHN1YmplY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zdWJqZWN0c1trZXldO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkUmVwbGF5U3ViamVjdChuYW1lOiBzdHJpbmcsIHN1YmplY3Q/OiBSZXBsYXlTdWJqZWN0PGFueT4pOiBSZXBsYXlTdWJqZWN0PGFueT4ge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGAke3RoaXMua2V5fS4ke25hbWV9YDtcclxuICAgICAgICBpZiAoIXRoaXMucmVwbGF5U3ViamVjdHNba2V5XSB8fCAhdGhpcy5yZXBsYXlTdWJqZWN0c1trZXldLm9ic2VydmVycykge1xyXG4gICAgICAgICAgICBpZiAoIXN1YmplY3QpIHtcclxuICAgICAgICAgICAgICAgIHN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yZXBsYXlTdWJqZWN0c1trZXldID0gc3ViamVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcGxheVN1YmplY3RzW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgZmlyZUV2ZW50Rm9yV2FpdChuYW1lOiBzdHJpbmcsIGRhdGE/OiBhbnksIGNhbmNlbEJ1YmJsZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IHRoaXMuYWRkU3ViamVjdChuYW1lKTtcclxuICAgICAgICBzdWJqZWN0Lm5leHQoZGF0YSk7XHJcbiAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmaXJlRXZlbnQobmFtZTogc3RyaW5nLCBkYXRhPzogYW55LCBjYW5jZWxCdWJibGU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSB0aGlzLmFkZFN1YmplY3QobmFtZSk7XHJcbiAgICAgICAgc3ViamVjdC5uZXh0KGRhdGEpO1xyXG4gICAgICAgIGlmICghY2FuY2VsQnViYmxlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudCAhPT0gdGhpcy5yb290KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudC5maXJlRXZlbnQobmFtZSwgZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoIXRoaXMucGFyZW50ICYmIHRoaXMucm9vdCAmJiB0aGlzICE9PSB0aGlzLnJvb3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm9vdC5maXJlRXZlbnQobmFtZSwgZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZmlyZVJlcGxheUV2ZW50KG5hbWU6IHN0cmluZywgZGF0YT86IGFueSwgY2FuY2VsQnViYmxlOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5hZGRSZXBsYXlTdWJqZWN0KG5hbWUpO1xyXG4gICAgICAgIHN1YmplY3QubmV4dChkYXRhKTtcclxuICAgICAgICBpZiAoIWNhbmNlbEJ1YmJsZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQgIT09IHRoaXMucm9vdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQuZmlyZVJlcGxheUV2ZW50KG5hbWUsIGRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLnBhcmVudCAmJiB0aGlzLnJvb3QgJiYgdGhpcyAhPT0gdGhpcy5yb290KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QuZmlyZVJlcGxheUV2ZW50KG5hbWUsIGRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbXBsZXRlRXZlbnQobmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSB0aGlzLmFkZFN1YmplY3QobmFtZSk7XHJcbiAgICAgICAgc3ViamVjdC5uZXh0KDEpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wbGV0ZVJlcGxheUV2ZW50KG5hbWUpIHtcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5hZGRSZXBsYXlTdWJqZWN0KG5hbWUpO1xyXG4gICAgICAgIHN1YmplY3QubmV4dCgxKTtcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb21wbGV0ZVN1YmplY3QobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gYCR7dGhpcy5rZXl9LiR7bmFtZX1gO1xyXG4gICAgICAgIGlmICh0aGlzLnN1YmplY3RzW2tleV0pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJqZWN0c1trZXldLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnN1YmplY3RzW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29tcGxldGVSZXBsYXlTdWJqZWN0KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGAke3RoaXMua2V5fS4ke25hbWV9YDtcclxuICAgICAgICBpZiAodGhpcy5yZXBsYXlTdWJqZWN0c1trZXldKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVwbGF5U3ViamVjdHNba2V5XS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5yZXBsYXlTdWJqZWN0c1trZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFN1YmplY3QobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gYCR7dGhpcy5rZXl9LiR7bmFtZX1gO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc3ViamVjdHNba2V5XSB8fCAhdGhpcy5zdWJqZWN0c1trZXldLm9ic2VydmVycykge1xyXG4gICAgICAgICAgICB0aGlzLnN1YmplY3RzW2tleV0gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zdWJqZWN0c1trZXldO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlU3ViamVjdChuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmtleX0uJHtuYW1lfWA7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN1YmplY3RzW2tleV0pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJqZWN0c1trZXldLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UmVwbGF5U3ViamVjdChuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmtleX0uJHtuYW1lfWA7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5yZXBsYXlTdWJqZWN0c1trZXldIHx8ICF0aGlzLnJlcGxheVN1YmplY3RzW2tleV0ub2JzZXJ2ZXJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVwbGF5U3ViamVjdHNba2V5XSA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcGxheVN1YmplY3RzW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVSZXBsYXlTdWJqZWN0KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGAke3RoaXMua2V5fS4ke25hbWV9YDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVwbGF5U3ViamVjdHNba2V5XSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlcGxheVN1YmplY3RzW2tleV0udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVwbGF5U3Vic2NyaWJlKG5hbWU6IHN0cmluZywgY2FsbEJhY2s6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlcGxheVN1YmplY3QobmFtZSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocnMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbEJhY2socnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2gge307XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcGxheVN1YnNjcmliZU9uY2UobmFtZTogc3RyaW5nLCBjYWxsQmFjazogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zdWIgPSB0aGlzLmdldFJlcGxheVN1YmplY3QobmFtZSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocnMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbEJhY2socnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2gge307XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdWIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdWI7XHJcbiAgICB9XHJcblxyXG4gICAgd2FpdChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN1YmplY3QobmFtZSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3Vic2NyaWJlQWxsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlKG5hbWU6IHN0cmluZywgY2FsbEJhY2s6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN1YmplY3QobmFtZSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocnMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbEJhY2socnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2gge307XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN1YnNjcmliZU9uY2UobmFtZTogc3RyaW5nLCBjYWxsQmFjazogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zdWIgPSB0aGlzLmdldFN1YmplY3QobmFtZSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocnMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbEJhY2socnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2gge307XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdWIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdWI7XHJcbiAgICB9XHJcblxyXG4gICAgdW5TdWJzY3JpYmUobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3ViamVjdHNbYCR7dGhpcy5rZXl9LiR7bmFtZX1gXSkge1xyXG4gICAgICAgICAgICB0aGlzLnN1YmplY3RzW2Ake3RoaXMua2V5fS4ke25hbWV9YF0udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc3ViamVjdHNbYCR7dGhpcy5rZXl9LiR7bmFtZX1gXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdW5TdWJzY3JpYmxlUmVwbGF5KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh0aGlzLnJlcGxheVN1YmplY3RzW2Ake3RoaXMua2V5fS4ke25hbWV9YF0pIHtcclxuICAgICAgICAgICAgdGhpcy5yZXBsYXlTdWJqZWN0c1tgJHt0aGlzLmtleX0uJHtuYW1lfWBdLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnJlcGxheVN1YmplY3RzW2Ake3RoaXMua2V5fS4ke25hbWV9YF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFJvb3REYXRhKGtleVBhdGg/OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZUlmTnVsbD86IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdCB8fCB0aGlzO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGFJbnRlcm5hbChyb290LmRhdGEsIGtleVBhdGgsIGRlZmF1bHRWYWx1ZUlmTnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YShrZXlQYXRoOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZUlmTnVsbD86IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YUludGVybmFsKHRoaXMuZGF0YSwga2V5UGF0aCwgZGVmYXVsdFZhbHVlSWZOdWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERhdGFJbnRlcm5hbChvYmosIGtleVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlSWZOdWxsPzogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fY29tbW9uU2VydmljZS5nZXRWYWx1ZUJ5UGF0aChvYmosIGtleVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlSWZOdWxsICYmICFkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2Uuc2V0VmFsdWVCeVBhdGgob2JqLCBrZXlQYXRoLCBkZWZhdWx0VmFsdWVJZk51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fY29tbW9uU2VydmljZS5nZXRWYWx1ZUJ5UGF0aChvYmosIGtleVBhdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFJvb3REYXRhKGtleVBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3QgfHwgdGhpcztcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXREYXRhSW50ZXJuYWwocm9vdC5kYXRhLCBrZXlQYXRoLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGF0YShrZXlQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXREYXRhSW50ZXJuYWwodGhpcy5kYXRhLCBrZXlQYXRoLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGF0YUludGVybmFsKG9iaiwga2V5UGF0aDogc3RyaW5nLCBkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2Uuc2V0VmFsdWVCeVBhdGgob2JqLCBrZXlQYXRoLCBkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95Q29udGV4dCgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnN1YmplY3RzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVTdWJqZWN0KGtleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnJlcGxheVN1YmplY3RzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVSZXBsYXlTdWJqZWN0KGtleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl91blN1YnNjcmliZUFsbC5uZXh0KDEpO1xyXG4gICAgICAgIHRoaXMuX3VuU3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHt9O1xyXG4gICAgICAgIHRoaXMucm9vdC5maXJlRXZlbnQoQ29tQ3R4Q29uc3RhbnRzLlJPT1QuREVTVFJPWV9DT01QT05FTlQsIHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEV4cG9ydEpvYihqb2I6IEV4cG9ydEpvYikge1xyXG4gICAgICAgIGlmICh0aGlzLnJvb3QucmVwb3J0UXVldWUpIHtcclxuICAgICAgICAgICAgdGhpcy5yb290LnJlcG9ydFF1ZXVlLmFkZEpvYihqb2IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -67,7 +67,7 @@ export class ComponentBase {
|
|
|
67
67
|
*/
|
|
68
68
|
ngOnDestroy() {
|
|
69
69
|
// Unsubscribe from all subscriptions
|
|
70
|
-
this._unsubscribeAll.next();
|
|
70
|
+
this._unsubscribeAll.next(1);
|
|
71
71
|
this._unsubscribeAll.complete();
|
|
72
72
|
if (this.model.componentSubs) {
|
|
73
73
|
for (const sub of this.model.componentSubs) {
|
|
@@ -519,4 +519,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
519
519
|
}], parentContext: [{
|
|
520
520
|
type: Input
|
|
521
521
|
}] } });
|
|
522
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jbGFzc2VzL2Jhc2UvY29tcG9uZW50LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFB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dEYsSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLFNBQVMsSUFBSSxFQUFFLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDOzswR0FwaEJpQixhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEbEMsU0FBUztvSEFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNPLGFBQWE7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9hcHBsaWNhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2RlbFNoYXJlTGlua0J5UGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2hhcmUtbGluay1ieS1wZXJtaXNzaW9uL21vZGVscy9zaGFyZS1saW5rLWJ5LXBlcm1pc3Npb24nO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vY29uZmlncy9jb21wb25lbnQtY29udGFudHMnO1xyXG5pbXBvcnQgeyBDb21DdHhDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25maWdzL2NvbXBvbmVudC1jb250ZXh0LmNvbnN0YW50JztcclxuaW1wb3J0IHsgUGVybWlzc2lvbkJhc2UgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21tb24nO1xyXG5pbXBvcnQgeyBFeHBvcnRJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC1pdGVtJztcclxuaW1wb3J0IHsgRmlsdGVyLCBTb3J0LCBTdHJpbmdDb21wYXJlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jcnVkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVWNFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90ZW1wbGF0ZS12NC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVJbnN0YW5jZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90ZW1wbGF0ZWluc3RhbmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRTdHJpbmdEYXRlVk4gfSBmcm9tICcuLi8uLi91dGlscy9kYXRlJztcclxuaW1wb3J0IHsgRXhwb3J0SXRlbVR5cGUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gICAgQWRkcmVzc0NvbnRyb2xTY2hlbWEsIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEsXHJcbiAgICBDaGVja2JveENvbnRyb2xTY2hlbWEsIENvQ2F1VG9DaHVjQ29udHJvbFNjaGVtYSwgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hLFxyXG4gICAgQ3J1ZExpc3RTZXR0aW5nLFxyXG4gICAgRGF0ZVRpbWVDb250cm9sU2NoZW1hLCBEcm9wZG93bkNvbnRyb2xTY2hlbWEsIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSwgRmlsZVVwbG9hZENvbnRyb2xTY2hlbWEsXHJcbiAgICBGb3JtU2NoZW1hQmFzZSwgTW9kZWxTY2hlbWEsIE9wZXJhdG9yLCBQb3B1cFNpemUsIFN3aXRjaENvbnRyb2xTY2hlbWEsIFRhYmxlU2NoZW1hXHJcbn0gZnJvbSAnLi4vZm9ybS1zY2hlbWEnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYUE9SVF9WRVJTSU9OX1Y0ID0gNDtcclxuZXhwb3J0IGNvbnN0IEVYUE9SVF9WRVJTSU9OX1Y1ID0gNTtcclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIHBhcmVudE1vZGVsOiBhbnk7XHJcbiAgICBASW5wdXQoKSBzZXQgcGFyZW50Q29udGV4dCh2YWx1ZTogQ29tcG9uZW50Q29udGV4dFNlcnZpY2UpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnBhcmVudCA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBnZXQgcGFyZW50Q29udGV4dCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LnBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICBtb2RlbDogYW55O1xyXG4gICAgbW9kZWxTY2hlbWE6IE1vZGVsU2NoZW1hW10gPSBbXTtcclxuICAgIGNvbnRleHQ6IENvbXBvbmVudENvbnRleHRTZXJ2aWNlO1xyXG4gICAgcm9vdE1vZGVsOiBhbnk7XHJcbiAgICByb290Q29udGV4dDogQ29tcG9uZW50Q29udGV4dFNlcnZpY2U7XHJcbiAgICBndWlkRW1wdHkgPSAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJztcclxuXHJcbiAgICBwdWJsaWMgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT47XHJcbiAgICBwcm90ZWN0ZWQgX2NvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FwcENvbnRleHQ6IEFwcGxpY2F0aW9uQ29udGV4dFNlcnZpY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2NvbXBvbmVudENvbnRleHQ6IENvbXBvbmVudENvbnRleHRTZXJ2aWNlO1xyXG4gICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3I7XHJcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcclxuICAgIHByb3RlY3RlZCBfY3J1ZFNlcnZpY2U6IENydWRTZXJ2aWNlO1xyXG4gICAgcHJvdGVjdGVkIF9kYXRlUGlwZTogRGF0ZVBpcGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBjb21wb25lbnROYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgICAgIHRoaXMuX2luamVjdG9yID0gaW5qZWN0b3I7XHJcbiAgICAgICAgdGhpcy5fYXBwQ29udGV4dCA9IGluamVjdG9yLmdldChBcHBsaWNhdGlvbkNvbnRleHRTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLl9jb21wb25lbnRDb250ZXh0ID0gaW5qZWN0b3IuZ2V0KENvbXBvbmVudENvbnRleHRTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZSA9IGluamVjdG9yLmdldChBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ3J1ZFNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ29tbW9uU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5fZGF0ZVBpcGUgPSBpbmplY3Rvci5nZXQoRGF0ZVBpcGUpO1xyXG5cclxuICAgICAgICB0aGlzLl9jb21wb25lbnRDb250ZXh0ID0gdGhpcy5fYXBwQ29udGV4dC5hZGRDb21wb25lbnRDb250ZXh0KHRoaXMuX2NvbXBvbmVudENvbnRleHQsIHRoaXMuX2FjdGl2YXRlZFJvdXRlLCB0aGlzLmdldENvbXBvbmVudElkKCkpO1xyXG4gICAgICAgIGlmICh0aGlzLl9jb21wb25lbnRDb250ZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSB0aGlzLl9jb21wb25lbnRDb250ZXh0LmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuX2NvbXBvbmVudENvbnRleHQ7XHJcbiAgICAgICAgICAgIHRoaXMucm9vdENvbnRleHQgPSB0aGlzLl9jb21wb25lbnRDb250ZXh0LnJvb3Q7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJvb3RNb2RlbCA9IHRoaXMucm9vdENvbnRleHQuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5jb21wb25lbnRTdWJzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBPbiBkZXN0cm95XHJcbiAgICAqL1xyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVW5zdWJzY3JpYmUgZnJvbSBhbGwgc3Vic2NyaXB0aW9uc1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQoKTtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5jb21wbGV0ZSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5jb21wb25lbnRTdWJzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3ViIG9mIHRoaXMubW9kZWwuY29tcG9uZW50U3Vicykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHN1Yikgc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmRlc3Ryb3lDb250ZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldENvbXBvbmVudElkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbW1vblNlcnZpY2UucmFuZG9tU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlUm9vdChuYW1lOiBzdHJpbmcsIGNhbGxCYWNrOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmNvbXBvbmVudFN1YnMucHVzaCh0aGlzLnJvb3RDb250ZXh0LnN1YnNjcmliZShuYW1lLCBjYWxsQmFjaykpO1xyXG4gICAgfVxyXG5cclxuICAgIHN1YnNjcmliZShuYW1lOiBzdHJpbmcsIGNhbGxCYWNrOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmNvbXBvbmVudFN1YnMucHVzaCh0aGlzLmNvbnRleHQuc3Vic2NyaWJlKG5hbWUsIGNhbGxCYWNrKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlT25jZShuYW1lOiBzdHJpbmcsIGNhbGxCYWNrOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmNvbXBvbmVudFN1YnMucHVzaCh0aGlzLmNvbnRleHQuc3Vic2NyaWJlT25jZShuYW1lLCBjYWxsQmFjaykpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcGxheVN1YnNjcmliZShuYW1lOiBzdHJpbmcsIGNhbGxCYWNrOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmNvbXBvbmVudFN1YnMucHVzaCh0aGlzLmNvbnRleHQucmVwbGF5U3Vic2NyaWJlKG5hbWUsIGNhbGxCYWNrKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZ1bmNEZWZhdWx0KGluZGV4LCBpdGVtKSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGdW5jSWQoaW5kZXgsIGl0ZW0pIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVSZXNwb25zZShyZXM6IFJlc3BvbnNlUmVzdWx0LCBtZXNzYWdlPzogc3RyaW5nLCBjYWxsQmFjaz86IEZ1bmN0aW9uLCBjYWxsQmFja0Vycm9yPzogRnVuY3Rpb24pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3J1ZFNlcnZpY2UuaGFuZGxlUmVzcG9uc2UocmVzLCBtZXNzYWdlLCBjYWxsQmFjaywgY2FsbEJhY2tFcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlUmVzcG9uc2VXaXRoV2FpdEJveChyZXM6IFJlc3BvbnNlUmVzdWx0LCBtZXNzYWdlPzogc3RyaW5nLCBjYWxsQmFjaz86IEZ1bmN0aW9uLCBjYWxsQmFja0Vycm9yPzogRnVuY3Rpb24pIHtcclxuICAgICAgICB0aGlzLmhpZGVXYWl0Qm94KCk7XHJcbiAgICAgICAgaWYgKCFyZXMuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBpZiAocmVzLmVycm9yID09IFZhbGlkYXRpb24uRVJSX1NZU19ERVYpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5qZWN0b3IuZ2V0KE5vdGlmaWVyU2VydmljZSkuc2hvd1dhcm5pbmcoJ0PDsyBs4buXaSB44bqjeSByYS4gTGnDqm4gaOG7hyBxdeG6o24gdHLhu4sgdmnDqm4gxJHhu4MgYmnhur90IHRow6ptIGNoaSB0aeG6v3QuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLm1lc3NhZ2UgIT0gbnVsbCAmJiByZXMubWVzc2FnZSAhPSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpLnNob3dXYXJuaW5nKHJlcy5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpLnNob3dXYXJuaW5nKHJlcy5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNhbGxCYWNrRXJyb3IpIGNhbGxCYWNrRXJyb3IocmVzKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9pbmplY3Rvci5nZXQoTm90aWZpZXJTZXJ2aWNlKS5zaG93U3VjY2VzcyhtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNhbGxCYWNrKSBjYWxsQmFjayhyZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzTm90TnVsbEFycmF5KGFycikge1xyXG4gICAgICAgIHJldHVybiBhcnIgIT0gbnVsbCAmJiBhcnIubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jU29ydERlZmF1bHQoYSwgYikge1xyXG4gICAgICAgIGlmIChhID4gYikgcmV0dXJuIDE7XHJcbiAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIDA7XHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGFkZEV4cG9ydEpvYihqb2I6IEV4cG9ydEpvYikge1xyXG4gICAgLy8gICAgIHRoaXMuY29udGV4dC5hZGRFeHBvcnRKb2Ioam9iKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBleHBvcnQoZGF0YTogRXhwb3J0SXRlbSwgdmVyc2lvbiA9IEVYUE9SVF9WRVJTSU9OX1Y0KTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdleHBvcnQgdmVyc2lvbjogJyArIHZlcnNpb24pO1xyXG4gICAgICAgIHN3aXRjaCAodmVyc2lvbikge1xyXG4gICAgICAgICAgICBjYXNlIEVYUE9SVF9WRVJTSU9OX1Y0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXhwb3J0VjQoZGF0YSk7XHJcbiAgICAgICAgICAgIGNhc2UgRVhQT1JUX1ZFUlNJT05fVjU6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHBvcnRWNShkYXRhKTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEV4cG9ydCB2ZXJzaW9uOiAke3ZlcnNpb259IGlzIG5vdCBzdXBwb3J0ZWQhYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydEV4Y2VsVjUoZGF0YTogYW55LCB0ZW1wbGF0ZUNvZGU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBzaGVldCA9IG5ldyBFeHBvcnRJdGVtKHtcclxuICAgICAgICAgICAgdHlwZTogRXhwb3J0SXRlbVR5cGUuRXhjZWxTaGVldCxcclxuICAgICAgICAgICAgdGVtcGxhdGVDb2RlLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhKSxcclxuICAgICAgICAgICAgbmFtZTogJ1NoZWV0MSdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsZSA9IG5ldyBFeHBvcnRJdGVtKHtcclxuICAgICAgICAgICAgdHlwZTogRXhwb3J0SXRlbVR5cGUuRXhjZWxGaWxlLFxyXG4gICAgICAgICAgICBuYW1lOiBmaWxlTmFtZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGZpbGUuY2hpbGRyZW4gPSBbc2hlZXRdO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV4cG9ydChmaWxlLCBFWFBPUlRfVkVSU0lPTl9WNSk7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0VjQoZGF0YTogRXhwb3J0SXRlbSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVY0U2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChUZW1wbGF0ZVY0U2VydmljZSk7XHJcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlVjRTZXJ2aWNlLmV4cG9ydE5vcm1hbChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnRWNShkYXRhOiBFeHBvcnRJdGVtKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlSW5zdGFuY2VTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KFRlbXBsYXRlSW5zdGFuY2VTZXJ2aWNlKTtcclxuICAgICAgICByZXR1cm4gdGVtcGxhdGVJbnN0YW5jZVNlcnZpY2UuZXhwb3J0Tm9ybWFsKGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIG5ld0ZpbHRlckNvbnRhaW5lcihsb2dpYzogJ2FuZCcgfCAnb3InLCAuLi5maWx0ZXJzOiBGaWx0ZXJbXSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgbG9naWMsXHJcbiAgICAgICAgICAgIGZpbHRlcnM6IFsuLi5maWx0ZXJzXVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5ld0ZpbHRlcihmaWVsZDogc3RyaW5nLCBvcGVyYXRvcjogT3BlcmF0b3IsIHZhbHVlOiBhbnksIHZhbHVlSXNGaWVsZDogYm9vbGVhbiA9IGZhbHNlLCBzdHJpbmdDb21wYXJlT3B0aW9uOiBTdHJpbmdDb21wYXJlT3B0aW9uID0gU3RyaW5nQ29tcGFyZU9wdGlvbi5Ob3JtYWwpIHtcclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgIGZpZWxkLCBvcGVyYXRvcixcclxuICAgICAgICAgICAgdmFsdWU6IEpTT04uc3RyaW5naWZ5KHZhbHVlKSxcclxuICAgICAgICAgICAgdmFsdWVJc0ZpZWxkLFxyXG4gICAgICAgICAgICBzdHJpbmdDb21wYXJlT3B0aW9uLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5ld0ZpbHRlclY0KGZpZWxkOiBzdHJpbmcsIG9wZXJhdG9yOiBPcGVyYXRvciwgdmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgZmllbGQsIG9wZXJhdG9yLFxyXG4gICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5ld0JpbmRpbmdGaWx0ZXIoY29sdW1uOiBzdHJpbmcsIG9wZXJhdG9yOiBPcGVyYXRvciwgc291cmNlRmllbGQ6IHN0cmluZywgc3ViRmllbGQ/OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4sXHJcbiAgICAgICAgICAgIG9wZXJhdG9yLFxyXG4gICAgICAgICAgICBzb3VyY2VGaWVsZCxcclxuICAgICAgICAgICAgc3ViRmllbGRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZXdTb3J0KGZpZWxkOiBzdHJpbmcsIGRpcjogMSB8IC0xID0gMSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgU29ydCh7IGZpZWxkLCBkaXIgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV3UG9wdXBTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBtYXhpbWl6ZSA9IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQb3B1cFNpemUoe1xyXG4gICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBtYXhpbWl6ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dXYWl0Qm94KG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnJvb3RDb250ZXh0LmZpcmVFdmVudChDb21DdHhDb25zdGFudHMuUk9PVC5TSE9XX1dBSVRfQk9YLCB7XHJcbiAgICAgICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlV2FpdEJveCgpIHtcclxuICAgICAgICB0aGlzLnJvb3RDb250ZXh0LmZpcmVFdmVudChDb21DdHhDb25zdGFudHMuUk9PVC5TSE9XX1dBSVRfQk9YLCB7XHJcbiAgICAgICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29weVRvQ2xpcGJvYXJkID0gc3RyID0+IHtcclxuICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XHJcbiAgICAgICAgZWwudmFsdWUgPSBzdHI7XHJcbiAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdyZWFkb25seScsICcnKTtcclxuICAgICAgICBlbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgICAgZWwuc3R5bGUubGVmdCA9ICctOTk5OXB4JztcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTtcclxuICAgICAgICBlbC5zZWxlY3QoKTtcclxuICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIF9wcmludFBkZihiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsIGlkOiBzdHJpbmcsIHJvd0RhdGE6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1EZXRhaWwgPSAoYXdhaXQgYmFzZVNlcnZpY2UuZ2V0RGV0YWlsKGlkKSkuZGF0YTtcclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYmFzZVNlcnZpY2UuZ2V0RGF0YVRyaW5oS3koaXRlbURldGFpbCwgcm93RGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByaW50UGRmQmFzZShiYXNlU2VydmljZSwgaWQsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIF9wcmludFBkZkJ5U2NoZW1hKGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSwgbW9kZWw6IGFueSwgc2NoZW1hczogRm9ybVNjaGVtYUJhc2VbXSkge1xyXG4gICAgICAgIGNvbnN0IHRtcE1vZGVsID0geyAuLi5tb2RlbCB9O1xyXG4gICAgICAgIGRlbGV0ZSB0bXBNb2RlbC5wcmludEZpbGVJZDtcclxuICAgICAgICBjb25zdCBkYXRhID0gW107XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fZ2V0S2V5VmFsdWUoZGF0YSwgJycsIHNjaGVtYXMsIHRtcE1vZGVsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHJpbnRQZGZCYXNlKGJhc2VTZXJ2aWNlLCBtb2RlbC5pZCwgZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBfcHJpbnRQZGZCYXNlKGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSwgaWQ6IHN0cmluZywgZGF0YTogYW55W10pIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYmFzZVNlcnZpY2UuZXhwb3J0VG9QZGYoaWQsIEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgIHRpZXVEZTogYmFzZVNlcnZpY2Uub2JqZWN0TmFtZSxcclxuICAgICAgICAgICAgICAgIGRhdGFcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgcmV0dXJuIDxSZXNwb25zZVJlc3VsdD57XHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdDw7MgbOG7l2kgeOG6o3kgcmEnXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TGFiZWwocHJlZml4OiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gYCR7cHJlZml4fSR7bGFiZWx9YDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRWYWx1ZUZyb21EYXRhc291cmNlKGl0ZW1TZWxlY3RlZDogYW55LCBpc011bHRpcGxlOiBib29sZWFuLCBmdW5jR2V0TGFiZWw6IChpdGVtKSA9PiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIGlmIChpc011bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtU2VsZWN0ZWQgJiYgaXRlbVNlbGVjdGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gaXRlbVNlbGVjdGVkLm1hcChxID0+IGZ1bmNHZXRMYWJlbChxLnZhbHVlKSkuam9pbignLCAnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW1TZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBmdW5jR2V0TGFiZWwoaXRlbVNlbGVjdGVkLnZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgX2dldEtleVZhbHVlKHJlc3VsdDogYW55W10sIHByZWZpeDogc3RyaW5nLCBzY2hlbWFzOiBGb3JtU2NoZW1hQmFzZVtdLCBtb2RlbDogYW55KSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBzY2hlbWEgb2Ygc2NoZW1hcykge1xyXG4gICAgICAgICAgICBpZiAoIXNjaGVtYS5oaWRkZW5cclxuICAgICAgICAgICAgICAgICYmIHNjaGVtYS5maWVsZCAhPSAncHJpbnRGaWxlSWQnXHJcbiAgICAgICAgICAgICAgICAmJiBzY2hlbWEubGFiZWxcclxuICAgICAgICAgICAgICAgICYmICEoc2NoZW1hIGluc3RhbmNlb2YgRmlsZVVwbG9hZENvbnRyb2xTY2hlbWEpXHJcbiAgICAgICAgICAgICAgICAmJiAhKHNjaGVtYSBpbnN0YW5jZW9mIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSlcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBtb2RlbFtzY2hlbWEuZmllbGRdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHZhbHVlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbChwcmVmaXgsIHNjaGVtYS5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBUYWJsZVNjaGVtYSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcFNjaGVtYSA9IDxUYWJsZVNjaGVtYT5zY2hlbWE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHZhbHVlID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbChwcmVmaXgsIHNjaGVtYS5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByb3dEYXRhIG9mIHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9nZXRLZXlWYWx1ZShyZXN1bHQsIGAke3ByZWZpeH1cXHRgLCB0bXBTY2hlbWEucm93VGVtcGxhdGUsIHJvd0RhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNwbGljZShyZXN1bHQubGVuZ3RoIC0gMSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXBTY2hlbWEgPSA8QWRkcmVzc0NvbnRyb2xTY2hlbWE+c2NoZW1hO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0TGFiZWwocHJlZml4LCBzY2hlbWEubGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldEtleVZhbHVlKHJlc3VsdCwgYCR7cHJlZml4fVxcdGAsIHRtcFNjaGVtYS5fY29tcG9uZW50LnNldHRpbmcuc2NoZW1hLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2NoZW1hIGluc3RhbmNlb2YgRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0U3RyaW5nRGF0ZVZOKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1TZWxlY3RlZCA9IGF3YWl0IHNjaGVtYS5fY29tcG9uZW50LmNvbnRyb2xQaWNrZXIuX2NvbXBvbmVudC5nZXREYXRhU2VsZWN0ZWRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcFNjaGVtYSA9IDxDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWE+c2NoZW1hO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZnVuY0dldExhYmVsID0gdG1wU2NoZW1hLmZ1bmNHZXRMYWJlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmdW5jR2V0TGFiZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNHZXRMYWJlbCA9IGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnZhbHVlW3RtcFNjaGVtYS5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2dldFZhbHVlRnJvbURhdGFzb3VyY2UoaXRlbVNlbGVjdGVkLCBzY2hlbWEubXVsdGlwbGUsIGl0ZW0gPT4gaXRlbS50ZW4pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1TZWxlY3RlZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjaGVtYS5mdW5jR2V0TGFiZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtU2VsZWN0ZWQubWFwKHEgPT4gdG1wU2NoZW1hLmZ1bmNHZXRMYWJlbChxLnZhbHVlKSkuam9pbignLCAnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaXRlbVNlbGVjdGVkLm1hcChxID0+IHEudmFsdWVbdG1wU2NoZW1hLmRpc3BsYXlGaWVsZF0pLmpvaW4oJywgJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtU2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLmZ1bmNHZXRMYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNjaGVtYS5mdW5jR2V0TGFiZWwoaXRlbVNlbGVjdGVkLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaXRlbVNlbGVjdGVkLnZhbHVlW3NjaGVtYS5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1TZWxlY3RlZCA9IGF3YWl0IHNjaGVtYS5fY29tcG9uZW50LmdldERhdGFTZWxlY3RlZFZhbHVlKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wU2NoZW1hID0gPEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWE+c2NoZW1hO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZnVuY0dldExhYmVsID0gdG1wU2NoZW1hLmZ1bmNHZXRMYWJlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmdW5jR2V0TGFiZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNHZXRMYWJlbCA9IGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtW3RtcFNjaGVtYS5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2dldFZhbHVlRnJvbURhdGFzb3VyY2UoaXRlbVNlbGVjdGVkLCBzY2hlbWEubXVsdGlwbGUsIGZ1bmNHZXRMYWJlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIENvQ2F1VG9DaHVjQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXBTY2hlbWEgPSA8Q29DYXVUb0NodWNDb250cm9sU2NoZW1hPnNjaGVtYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnVuY0dldExhYmVsID0gaXRlbSA9PiBpdGVtLmxhYmVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YVNvdXJjZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtU2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wU2NoZW1hLl9jb21wb25lbnQubXVsdGlTZWxlY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSB0bXBTY2hlbWEuX2NvbXBvbmVudC5tdWx0aVNlbGVjdC5fb3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1TZWxlY3RlZCA9IGRhdGFTb3VyY2UuZmlsdGVyKHEgPT4gdmFsdWUuaW5kZXhPZih4ID0+IHggPT0gcS52YWx1ZSkpLm1hcChxID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSB0bXBTY2hlbWEuX2NvbXBvbmVudC5kcm9wZG93bi5fb3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1TZWxlY3RlZCA9IGRhdGFTb3VyY2UuZmluZChxID0+IHEudmFsdWUgPT0gdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1TZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1TZWxlY3RlZCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1TZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl9nZXRWYWx1ZUZyb21EYXRhc291cmNlKGl0ZW1TZWxlY3RlZCwgc2NoZW1hLm11bHRpcGxlLCBmdW5jR2V0TGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBEcm9wZG93bkNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wU2NoZW1hID0gPERyb3Bkb3duQ29udHJvbFNjaGVtYT5zY2hlbWE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtU2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtU2VsZWN0ZWQgPSBzY2hlbWEuX2NvbXBvbmVudC5kYXRhU291cmNlSW50ZXJuYWwuZmlsdGVyKHEgPT4gdmFsdWUuaW5kZXhPZih4ID0+IHggPT0gcS52YWx1ZVtxLnZhbHVlLl9kcm9wZG93bnZhbHVlXSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNlbGVjdGVkID0gc2NoZW1hLl9jb21wb25lbnQuZGF0YVNvdXJjZUludGVybmFsLmZpbmQocSA9PiBxLnZhbHVlW3EudmFsdWUuX2Ryb3Bkb3dudmFsdWVdID09IHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2dldFZhbHVlRnJvbURhdGFzb3VyY2UoaXRlbVNlbGVjdGVkLCBzY2hlbWEubXVsdGlwbGUsIHRtcFNjaGVtYS5mdW5jR2V0TGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBDaGVja2JveENvbnRyb2xTY2hlbWEgfHwgc2NoZW1hIGluc3RhbmNlb2YgU3dpdGNoQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB2YWx1ZSA9ICdLaMO0bmcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHZhbHVlID0gJ0PDsyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFZhbHVlID0gdW5kZWZpbmVkIHRow6wga2hpIHNlcmlhbGl6ZSBz4bq9IGLhu4sgbeG6pXQgcHJvcFxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB2YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbChwcmVmaXgsIHNjaGVtYS5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmdEYXRlKHZhbHVlKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnZGQvTU0veXl5eScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ2RkL01NL3l5eXknKTtcclxuICAgIH1cclxuICAgIC8vIGh0dHA6Ly9sb2NhbGhvc3Q6MjcyMzAvdW5pdmVyc2FsLWxpbms/c2VydmljZUNvZGU9Y29uZ3ZpZWMmZW50aXR5PURNX1ByaW9yaXR5JmVudGl0eUtleT0wOTExZjNlNy0zZGIwLTRiNjgtODdjZC0wN2Q0MjU3NDFlOWUmc3RhdGU9JnNvdXJjZVBhdGg9aHR0cDovL2xvY2FsaG9zdDoyNzIzMC9kbS1wcmlvcml0eVxyXG4gICAgcGFyc2VBdHRhY2hMaW5rKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBsaW5rcyA9IGNvbnRlbnQuc3BsaXQoJ1xcclxcbicpO1xyXG4gICAgICAgIGNvbnN0IG9wID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBsaW5rIG9mIGxpbmtzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFyciA9IGxpbmsuc3BsaXQoJz8nKTtcclxuICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0ZW1wID0gYXJyWzFdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnBhcnNlUXVlcnlTdHJpbmcodGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocXVlcnkgJiYgcXVlcnkuc2VydmljZUNvZGUgJiYgcXVlcnkuZW50aXR5ICYmIHF1ZXJ5LmVudGl0eUtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LnJhd0xpbmsgPSBsaW5rO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wLnB1c2gocXVlcnkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBsaW5rICR7bGlua30gaW52YWxpZCB0byBwYXJzZWApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvcDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgcGFyc2VRdWVyeVN0cmluZyhxdWVyeTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICBpZiAoIXF1ZXJ5KSByZXR1cm4gbnVsbDtcclxuICAgICAgICBpZiAocXVlcnkuc3RhcnRzV2l0aCgnPycpKSBxdWVyeSA9IHF1ZXJ5LnN1YnN0cmluZygxKTtcclxuICAgICAgICBjb25zdCBhcnIgPSBxdWVyeS5zcGxpdCgnJicpO1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xyXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnIpIHtcclxuICAgICAgICAgICAgY29uc3QgdGVtcCA9IGl0ZW0uc3BsaXQoJz0nKTtcclxuICAgICAgICAgICAgaWYgKHRlbXBbMV0pIHtcclxuICAgICAgICAgICAgICAgIG9ialt0ZW1wWzBdXSA9IGRlY29kZVVSSUNvbXBvbmVudCh0ZW1wWzFdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG9ialt0ZW1wWzBdXSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9iajtcclxuICAgIH1cclxuICAgIGFzeW5jIGdldENvcHlQYXRoKHNldHRpbmc6IENydWRMaXN0U2V0dGluZywgcm93RGF0YTogYW55LCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uQmFzZSA9IFBlcm1pc3Npb25CYXNlLlJFQUQpIHtcclxuICAgICAgICBjb25zdCBpdGVtU2hhcmVzOiBNb2RlbFNoYXJlTGlua0J5UGVybWlzc2lvbiA9IG5ldyBNb2RlbFNoYXJlTGlua0J5UGVybWlzc2lvbigpO1xyXG4gICAgICAgIGl0ZW1TaGFyZXMubGlua1RvTWVudSA9IGAke3RvcC5sb2NhdGlvbi5vcmlnaW59JHt0b3AubG9jYXRpb24ucGF0aG5hbWV9YDtcclxuICAgICAgICBpdGVtU2hhcmVzLnNvdXJjZVBhdGggPSBgJHtlbmNvZGVVUklDb21wb25lbnQodG9wLmxvY2F0aW9uLmhyZWYpfWA7XHJcbiAgICAgICAgaXRlbVNoYXJlcy50YXJnZXRQYXRoID0gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KHNldHRpbmcudGFyZ2V0UGF0aCl9YDtcclxuICAgICAgICBpdGVtU2hhcmVzLm9iamVjdERpc3BsYXlOYW1lID0gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KHNldHRpbmcub2JqZWN0TmFtZSl9YDtcclxuICAgICAgICBsZXQgZGlzcGxheUZpZWxkID0gJyc7XHJcbiAgICAgICAgaWYgKHNldHRpbmcuZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXlGaWVsZCA9IHRoaXMuX2NvbW1vblNlcnZpY2UuaXNTdHJpbmcoc2V0dGluZy5kaXNwbGF5RmllbGQpID8gc2V0dGluZy5kaXNwbGF5RmllbGQgOiAoc2V0dGluZy5kaXNwbGF5RmllbGQgYXMgYW55KSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsaW5rQ29sdW1uID0gc2V0dGluZy5jb2xzLmZpbmQoeCA9PiB4LnNob3dFZGl0TGluayk7XHJcbiAgICAgICAgICAgIGRpc3BsYXlGaWVsZCA9IGxpbmtDb2x1bW4/LmZpZWxkO1xyXG4gICAgICAgICAgICBpZiAoIWRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkID0gJ2lkJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpdGVtU2hhcmVzLmRpc3BsYXlGaWVsZCA9IGRpc3BsYXlGaWVsZDtcclxuICAgICAgICBpdGVtU2hhcmVzLmxzdEl0ZW1EYXRhID0gW107XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCB0aGlzLmdldExpbmtTdGF0ZShyb3dEYXRhKTtcclxuICAgICAgICBpdGVtU2hhcmVzLmxzdEl0ZW1EYXRhLnB1c2goe1xyXG4gICAgICAgICAgICBpdGVtSWQ6IHJvd0RhdGEuaWQsXHJcbiAgICAgICAgICAgIHBlcm1pc3Npb24sXHJcbiAgICAgICAgICAgIHN0YXRlOiBlbmNvZGVVUklDb21wb25lbnQoc3RhdGUpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgZGljUGVybWlzc2lvbklkID0gKGF3YWl0IHNldHRpbmcuYmFzZVNlcnZpY2UuZ2V0U2hhcmVkS2V5KGl0ZW1TaGFyZXMpKS5kYXRhO1xyXG4gICAgICAgIGlmICghZGljUGVybWlzc2lvbklkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpLnNob3dXYXJuaW5nKCdC4bqhbiBraMO0bmcgY8OzIHF1eeG7gW4gY2hpYSBz4bq7IGLhuqNuIGdoaScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcGF0aCA9ICcnO1xyXG4gICAgICAgIGl0ZW1TaGFyZXMubHN0SXRlbURhdGEuZm9yRWFjaChpdGVtRGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHBhdGggKz0gYCR7ZGljUGVybWlzc2lvbklkW2l0ZW1EYXRhLml0ZW1JZF19XFxuYDtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcGF0aDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRMaW5rU3RhdGUocm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERlZmF1bHRTZXR0aW5ncygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcclxuICAgICAgICBjb25zdCBsb2NhbERhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShDb21DdHhDb25zdGFudHMuTE9DQUxTVE9SQUdFX0tFWS5ERUZBVUxUX0RBVEEpO1xyXG4gICAgICAgIGlmIChsb2NhbERhdGEgIT0gbnVsbCAmJiBsb2NhbERhdGEgIT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobG9jYWxEYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
522
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jbGFzc2VzL2Jhc2UvY29tcG9uZW50LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFB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QyxDQUFDO1FBQ3RGLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksRUFBRSxFQUFFO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNoQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7MEdBcGhCaUIsYUFBYTs4RkFBYixhQUFhOzJGQUFiLGFBQWE7a0JBRGxDLFNBQVM7b0hBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDTyxhQUFhO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwLWNvbnRleHQvYXBwbGljYXRpb24tY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kZWxTaGFyZUxpbmtCeVBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlLWxpbmstYnktcGVybWlzc2lvbi9tb2RlbHMvc2hhcmUtbGluay1ieS1wZXJtaXNzaW9uJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRhbnRzJztcclxuaW1wb3J0IHsgQ29tQ3R4Q29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uZmlncy9jb21wb25lbnQtY29udGV4dC5jb25zdGFudCc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25CYXNlIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tbW9uJztcclxuaW1wb3J0IHsgRXhwb3J0SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQtaXRlbSc7XHJcbmltcG9ydCB7IEZpbHRlciwgU29ydCwgU3RyaW5nQ29tcGFyZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY3J1ZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlVjRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVtcGxhdGUtdjQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlSW5zdGFuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVtcGxhdGVpbnN0YW5jZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ2V0U3RyaW5nRGF0ZVZOIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGF0ZSc7XHJcbmltcG9ydCB7IEV4cG9ydEl0ZW1UeXBlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHtcclxuICAgIEFkZHJlc3NDb250cm9sU2NoZW1hLCBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hLFxyXG4gICAgQ2hlY2tib3hDb250cm9sU2NoZW1hLCBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEsIENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYSxcclxuICAgIENydWRMaXN0U2V0dGluZyxcclxuICAgIERhdGVUaW1lQ29udHJvbFNjaGVtYSwgRHJvcGRvd25Db250cm9sU2NoZW1hLCBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEsIEZpbGVVcGxvYWRDb250cm9sU2NoZW1hLFxyXG4gICAgRm9ybVNjaGVtYUJhc2UsIE1vZGVsU2NoZW1hLCBPcGVyYXRvciwgUG9wdXBTaXplLCBTd2l0Y2hDb250cm9sU2NoZW1hLCBUYWJsZVNjaGVtYVxyXG59IGZyb20gJy4uL2Zvcm0tc2NoZW1hJztcclxuXHJcbmV4cG9ydCBjb25zdCBFWFBPUlRfVkVSU0lPTl9WNCA9IDQ7XHJcbmV4cG9ydCBjb25zdCBFWFBPUlRfVkVSU0lPTl9WNSA9IDU7XHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBwYXJlbnRNb2RlbDogYW55O1xyXG4gICAgQElucHV0KCkgc2V0IHBhcmVudENvbnRleHQodmFsdWU6IENvbXBvbmVudENvbnRleHRTZXJ2aWNlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5wYXJlbnQgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgZ2V0IHBhcmVudENvbnRleHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5wYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbW9kZWw6IGFueTtcclxuICAgIG1vZGVsU2NoZW1hOiBNb2RlbFNjaGVtYVtdID0gW107XHJcbiAgICBjb250ZXh0OiBDb21wb25lbnRDb250ZXh0U2VydmljZTtcclxuICAgIHJvb3RNb2RlbDogYW55O1xyXG4gICAgcm9vdENvbnRleHQ6IENvbXBvbmVudENvbnRleHRTZXJ2aWNlO1xyXG4gICAgZ3VpZEVtcHR5ID0gJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCc7XHJcblxyXG4gICAgcHVibGljIF91bnN1YnNjcmliZUFsbDogU3ViamVjdDxhbnk+O1xyXG4gICAgcHJvdGVjdGVkIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBDb250ZXh0OiBBcHBsaWNhdGlvbkNvbnRleHRTZXJ2aWNlO1xyXG4gICAgcHJvdGVjdGVkIF9jb21wb25lbnRDb250ZXh0OiBDb21wb25lbnRDb250ZXh0U2VydmljZTtcclxuICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yO1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XHJcbiAgICBwcm90ZWN0ZWQgX2NydWRTZXJ2aWNlOiBDcnVkU2VydmljZTtcclxuICAgIHByb3RlY3RlZCBfZGF0ZVBpcGU6IERhdGVQaXBlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgY29tcG9uZW50TmFtZT86IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsID0gbmV3IFN1YmplY3QoKTtcclxuICAgICAgICB0aGlzLl9pbmplY3RvciA9IGluamVjdG9yO1xyXG4gICAgICAgIHRoaXMuX2FwcENvbnRleHQgPSBpbmplY3Rvci5nZXQoQXBwbGljYXRpb25Db250ZXh0U2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Q29udGV4dCA9IGluamVjdG9yLmdldChDb21wb25lbnRDb250ZXh0U2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZhdGVkUm91dGUgPSBpbmplY3Rvci5nZXQoQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KENydWRTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLl9jb21tb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KENvbW1vblNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuX2RhdGVQaXBlID0gaW5qZWN0b3IuZ2V0KERhdGVQaXBlKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Q29udGV4dCA9IHRoaXMuX2FwcENvbnRleHQuYWRkQ29tcG9uZW50Q29udGV4dCh0aGlzLl9jb21wb25lbnRDb250ZXh0LCB0aGlzLl9hY3RpdmF0ZWRSb3V0ZSwgdGhpcy5nZXRDb21wb25lbnRJZCgpKTtcclxuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50Q29udGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gdGhpcy5fY29tcG9uZW50Q29udGV4dC5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSB0aGlzLl9jb21wb25lbnRDb250ZXh0O1xyXG4gICAgICAgICAgICB0aGlzLnJvb3RDb250ZXh0ID0gdGhpcy5fY29tcG9uZW50Q29udGV4dC5yb290O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yb290TW9kZWwgPSB0aGlzLnJvb3RDb250ZXh0LmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwuY29tcG9uZW50U3VicyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogT24gZGVzdHJveVxyXG4gICAgKi9cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFVuc3Vic2NyaWJlIGZyb20gYWxsIHN1YnNjcmlwdGlvbnNcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KDEpO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmNvbXBvbmVudFN1YnMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzdWIgb2YgdGhpcy5tb2RlbC5jb21wb25lbnRTdWJzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3ViKSBzdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZGVzdHJveUNvbnRleHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29tcG9uZW50SWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29tbW9uU2VydmljZS5yYW5kb21TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmVSb290KG5hbWU6IHN0cmluZywgY2FsbEJhY2s6IGFueSkge1xyXG4gICAgICAgIHRoaXMubW9kZWwuY29tcG9uZW50U3Vicy5wdXNoKHRoaXMucm9vdENvbnRleHQuc3Vic2NyaWJlKG5hbWUsIGNhbGxCYWNrKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlKG5hbWU6IHN0cmluZywgY2FsbEJhY2s6IGFueSkge1xyXG4gICAgICAgIHRoaXMubW9kZWwuY29tcG9uZW50U3Vicy5wdXNoKHRoaXMuY29udGV4dC5zdWJzY3JpYmUobmFtZSwgY2FsbEJhY2spKTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmVPbmNlKG5hbWU6IHN0cmluZywgY2FsbEJhY2s6IGFueSkge1xyXG4gICAgICAgIHRoaXMubW9kZWwuY29tcG9uZW50U3Vicy5wdXNoKHRoaXMuY29udGV4dC5zdWJzY3JpYmVPbmNlKG5hbWUsIGNhbGxCYWNrKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVwbGF5U3Vic2NyaWJlKG5hbWU6IHN0cmluZywgY2FsbEJhY2s6IGFueSkge1xyXG4gICAgICAgIHRoaXMubW9kZWwuY29tcG9uZW50U3Vicy5wdXNoKHRoaXMuY29udGV4dC5yZXBsYXlTdWJzY3JpYmUobmFtZSwgY2FsbEJhY2spKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5RnVuY0RlZmF1bHQoaW5kZXgsIGl0ZW0pIHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZ1bmNJZChpbmRleCwgaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVJlc3BvbnNlKHJlczogUmVzcG9uc2VSZXN1bHQsIG1lc3NhZ2U/OiBzdHJpbmcsIGNhbGxCYWNrPzogRnVuY3Rpb24sIGNhbGxCYWNrRXJyb3I/OiBGdW5jdGlvbikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jcnVkU2VydmljZS5oYW5kbGVSZXNwb25zZShyZXMsIG1lc3NhZ2UsIGNhbGxCYWNrLCBjYWxsQmFja0Vycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVSZXNwb25zZVdpdGhXYWl0Qm94KHJlczogUmVzcG9uc2VSZXN1bHQsIG1lc3NhZ2U/OiBzdHJpbmcsIGNhbGxCYWNrPzogRnVuY3Rpb24sIGNhbGxCYWNrRXJyb3I/OiBGdW5jdGlvbikge1xyXG4gICAgICAgIHRoaXMuaGlkZVdhaXRCb3goKTtcclxuICAgICAgICBpZiAoIXJlcy5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXMuZXJyb3IgPT0gVmFsaWRhdGlvbi5FUlJfU1lTX0RFVikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZXMubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbmplY3Rvci5nZXQoTm90aWZpZXJTZXJ2aWNlKS5zaG93V2FybmluZygnQ8OzIGzhu5dpIHjhuqN5IHJhLiBMacOqbiBo4buHIHF14bqjbiB0cuG7iyB2acOqbiDEkeG7gyBiaeG6v3QgdGjDqm0gY2hpIHRp4bq/dC4nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMubWVzc2FnZSAhPSBudWxsICYmIHJlcy5tZXNzYWdlICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5qZWN0b3IuZ2V0KE5vdGlmaWVyU2VydmljZSkuc2hvd1dhcm5pbmcocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5qZWN0b3IuZ2V0KE5vdGlmaWVyU2VydmljZSkuc2hvd1dhcm5pbmcocmVzLmVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY2FsbEJhY2tFcnJvcikgY2FsbEJhY2tFcnJvcihyZXMpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpLnNob3dTdWNjZXNzKG1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKHJlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNOb3ROdWxsQXJyYXkoYXJyKSB7XHJcbiAgICAgICAgcmV0dXJuIGFyciAhPSBudWxsICYmIGFyci5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmNTb3J0RGVmYXVsdChhLCBiKSB7XHJcbiAgICAgICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcclxuICAgICAgICBpZiAoYSA9PSBiKSByZXR1cm4gMDtcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYWRkRXhwb3J0Sm9iKGpvYjogRXhwb3J0Sm9iKSB7XHJcbiAgICAvLyAgICAgdGhpcy5jb250ZXh0LmFkZEV4cG9ydEpvYihqb2IpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGV4cG9ydChkYXRhOiBFeHBvcnRJdGVtLCB2ZXJzaW9uID0gRVhQT1JUX1ZFUlNJT05fVjQpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2V4cG9ydCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XHJcbiAgICAgICAgc3dpdGNoICh2ZXJzaW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRVhQT1JUX1ZFUlNJT05fVjQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHBvcnRWNChkYXRhKTtcclxuICAgICAgICAgICAgY2FzZSBFWFBPUlRfVkVSU0lPTl9WNTpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV4cG9ydFY1KGRhdGEpO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXhwb3J0IHZlcnNpb246ICR7dmVyc2lvbn0gaXMgbm90IHN1cHBvcnRlZCFgKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0RXhjZWxWNShkYXRhOiBhbnksIHRlbXBsYXRlQ29kZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHNoZWV0ID0gbmV3IEV4cG9ydEl0ZW0oe1xyXG4gICAgICAgICAgICB0eXBlOiBFeHBvcnRJdGVtVHlwZS5FeGNlbFNoZWV0LFxyXG4gICAgICAgICAgICB0ZW1wbGF0ZUNvZGUsXHJcbiAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICAgICAgICBuYW1lOiAnU2hlZXQxJ1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBmaWxlID0gbmV3IEV4cG9ydEl0ZW0oe1xyXG4gICAgICAgICAgICB0eXBlOiBFeHBvcnRJdGVtVHlwZS5FeGNlbEZpbGUsXHJcbiAgICAgICAgICAgIG5hbWU6IGZpbGVOYW1lXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZmlsZS5jaGlsZHJlbiA9IFtzaGVldF07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwb3J0KGZpbGUsIEVYUE9SVF9WRVJTSU9OX1Y1KTtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnRWNChkYXRhOiBFeHBvcnRJdGVtKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlVjRTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KFRlbXBsYXRlVjRTZXJ2aWNlKTtcclxuICAgICAgICByZXR1cm4gdGVtcGxhdGVWNFNlcnZpY2UuZXhwb3J0Tm9ybWFsKGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydFY1KGRhdGE6IEV4cG9ydEl0ZW0pOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdGVtcGxhdGVJbnN0YW5jZVNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoVGVtcGxhdGVJbnN0YW5jZVNlcnZpY2UpO1xyXG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZUluc3RhbmNlU2VydmljZS5leHBvcnROb3JtYWwoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV3RmlsdGVyQ29udGFpbmVyKGxvZ2ljOiAnYW5kJyB8ICdvcicsIC4uLmZpbHRlcnM6IEZpbHRlcltdKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICBsb2dpYyxcclxuICAgICAgICAgICAgZmlsdGVyczogWy4uLmZpbHRlcnNdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV3RmlsdGVyKGZpZWxkOiBzdHJpbmcsIG9wZXJhdG9yOiBPcGVyYXRvciwgdmFsdWU6IGFueSwgdmFsdWVJc0ZpZWxkOiBib29sZWFuID0gZmFsc2UsIHN0cmluZ0NvbXBhcmVPcHRpb246IFN0cmluZ0NvbXBhcmVPcHRpb24gPSBTdHJpbmdDb21wYXJlT3B0aW9uLk5vcm1hbCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgZmllbGQsIG9wZXJhdG9yLFxyXG4gICAgICAgICAgICB2YWx1ZTogSlNPTi5zdHJpbmdpZnkodmFsdWUpLFxyXG4gICAgICAgICAgICB2YWx1ZUlzRmllbGQsXHJcbiAgICAgICAgICAgIHN0cmluZ0NvbXBhcmVPcHRpb24sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV3RmlsdGVyVjQoZmllbGQ6IHN0cmluZywgb3BlcmF0b3I6IE9wZXJhdG9yLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICBmaWVsZCwgb3BlcmF0b3IsXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV3QmluZGluZ0ZpbHRlcihjb2x1bW46IHN0cmluZywgb3BlcmF0b3I6IE9wZXJhdG9yLCBzb3VyY2VGaWVsZDogc3RyaW5nLCBzdWJGaWVsZD86IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgZmllbGQ6IGNvbHVtbixcclxuICAgICAgICAgICAgb3BlcmF0b3IsXHJcbiAgICAgICAgICAgIHNvdXJjZUZpZWxkLFxyXG4gICAgICAgICAgICBzdWJGaWVsZFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5ld1NvcnQoZmllbGQ6IHN0cmluZywgZGlyOiAxIHwgLTEgPSAxKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTb3J0KHsgZmllbGQsIGRpciB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZXdQb3B1cFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIG1heGltaXplID0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFBvcHVwU2l6ZSh7XHJcbiAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIG1heGltaXplXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd1dhaXRCb3gobWVzc2FnZT86IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucm9vdENvbnRleHQuZmlyZUV2ZW50KENvbUN0eENvbnN0YW50cy5ST09ULlNIT1dfV0FJVF9CT1gsIHtcclxuICAgICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVXYWl0Qm94KCkge1xyXG4gICAgICAgIHRoaXMucm9vdENvbnRleHQuZmlyZUV2ZW50KENvbUN0eENvbnN0YW50cy5ST09ULlNIT1dfV0FJVF9CT1gsIHtcclxuICAgICAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb3B5VG9DbGlwYm9hcmQgPSBzdHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgICAgICBlbC52YWx1ZSA9IHN0cjtcclxuICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JywgJycpO1xyXG4gICAgICAgIGVsLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gJy05OTk5cHgnO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpO1xyXG4gICAgICAgIGVsLnNlbGVjdCgpO1xyXG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgX3ByaW50UGRmKGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSwgaWQ6IHN0cmluZywgcm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgY29uc3QgaXRlbURldGFpbCA9IChhd2FpdCBiYXNlU2VydmljZS5nZXREZXRhaWwoaWQpKS5kYXRhO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBiYXNlU2VydmljZS5nZXREYXRhVHJpbmhLeShpdGVtRGV0YWlsLCByb3dEYXRhKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHJpbnRQZGZCYXNlKGJhc2VTZXJ2aWNlLCBpZCwgZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgX3ByaW50UGRmQnlTY2hlbWEoYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLCBtb2RlbDogYW55LCBzY2hlbWFzOiBGb3JtU2NoZW1hQmFzZVtdKSB7XHJcbiAgICAgICAgY29uc3QgdG1wTW9kZWwgPSB7IC4uLm1vZGVsIH07XHJcbiAgICAgICAgZGVsZXRlIHRtcE1vZGVsLnByaW50RmlsZUlkO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcclxuICAgICAgICBhd2FpdCB0aGlzLl9nZXRLZXlWYWx1ZShkYXRhLCAnJywgc2NoZW1hcywgdG1wTW9kZWwpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wcmludFBkZkJhc2UoYmFzZVNlcnZpY2UsIG1vZGVsLmlkLCBkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIF9wcmludFBkZkJhc2UoYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLCBpZDogc3RyaW5nLCBkYXRhOiBhbnlbXSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBiYXNlU2VydmljZS5leHBvcnRUb1BkZihpZCwgSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICAgICAgdGlldURlOiBiYXNlU2VydmljZS5vYmplY3ROYW1lLFxyXG4gICAgICAgICAgICAgICAgZGF0YVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICByZXR1cm4gPFJlc3BvbnNlUmVzdWx0PntcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0PDsyBs4buXaSB44bqjeSByYSdcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRMYWJlbChwcmVmaXg6IHN0cmluZywgbGFiZWw6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBgJHtwcmVmaXh9JHtsYWJlbH1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFZhbHVlRnJvbURhdGFzb3VyY2UoaXRlbVNlbGVjdGVkOiBhbnksIGlzTXVsdGlwbGU6IGJvb2xlYW4sIGZ1bmNHZXRMYWJlbDogKGl0ZW0pID0+IHN0cmluZykge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKGlzTXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW1TZWxlY3RlZCAmJiBpdGVtU2VsZWN0ZWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtU2VsZWN0ZWQubWFwKHEgPT4gZnVuY0dldExhYmVsKHEudmFsdWUpKS5qb2luKCcsICcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaXRlbVNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGZ1bmNHZXRMYWJlbChpdGVtU2VsZWN0ZWQudmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBfZ2V0S2V5VmFsdWUocmVzdWx0OiBhbnlbXSwgcHJlZml4OiBzdHJpbmcsIHNjaGVtYXM6IEZvcm1TY2hlbWFCYXNlW10sIG1vZGVsOiBhbnkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHNjaGVtYSBvZiBzY2hlbWFzKSB7XHJcbiAgICAgICAgICAgIGlmICghc2NoZW1hLmhpZGRlblxyXG4gICAgICAgICAgICAgICAgJiYgc2NoZW1hLmZpZWxkICE9ICdwcmludEZpbGVJZCdcclxuICAgICAgICAgICAgICAgICYmIHNjaGVtYS5sYWJlbFxyXG4gICAgICAgICAgICAgICAgJiYgIShzY2hlbWEgaW5zdGFuY2VvZiBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSlcclxuICAgICAgICAgICAgICAgICYmICEoc2NoZW1hIGluc3RhbmNlb2YgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IG1vZGVsW3NjaGVtYS5maWVsZF07XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgdmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKHByZWZpeCwgc2NoZW1hLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFRhYmxlU2NoZW1hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wU2NoZW1hID0gPFRhYmxlU2NoZW1hPnNjaGVtYTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgdmFsdWUgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKHByZWZpeCwgc2NoZW1hLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJvd0RhdGEgb2YgdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldEtleVZhbHVlKHJlc3VsdCwgYCR7cHJlZml4fVxcdGAsIHRtcFNjaGVtYS5yb3dUZW1wbGF0ZSwgcm93RGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3BsaWNlKHJlc3VsdC5sZW5ndGggLSAxLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBBZGRyZXNzQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcFNjaGVtYSA9IDxBZGRyZXNzQ29udHJvbFNjaGVtYT5zY2hlbWE7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbChwcmVmaXgsIHNjaGVtYS5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fZ2V0S2V5VmFsdWUocmVzdWx0LCBgJHtwcmVmaXh9XFx0YCwgdG1wU2NoZW1hLl9jb21wb25lbnQuc2V0dGluZy5zY2hlbWEsIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRTdHJpbmdEYXRlVk4odmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gYXdhaXQgc2NoZW1hLl9jb21wb25lbnQuY29udHJvbFBpY2tlci5fY29tcG9uZW50LmdldERhdGFTZWxlY3RlZFZhbHVlKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wU2NoZW1hID0gPENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYT5zY2hlbWE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmdW5jR2V0TGFiZWwgPSB0bXBTY2hlbWEuZnVuY0dldExhYmVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZ1bmNHZXRMYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY0dldExhYmVsID0gaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWVbdG1wU2NoZW1hLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5fZ2V0VmFsdWVGcm9tRGF0YXNvdXJjZShpdGVtU2VsZWN0ZWQsIHNjaGVtYS5tdWx0aXBsZSwgaXRlbSA9PiBpdGVtLnRlbik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVNlbGVjdGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NoZW1hLmZ1bmNHZXRMYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGl0ZW1TZWxlY3RlZC5tYXAocSA9PiB0bXBTY2hlbWEuZnVuY0dldExhYmVsKHEudmFsdWUpKS5qb2luKCcsICcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtU2VsZWN0ZWQubWFwKHEgPT4gcS52YWx1ZVt0bXBTY2hlbWEuZGlzcGxheUZpZWxkXSkuam9pbignLCAnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1TZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY2hlbWEuZnVuY0dldExhYmVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2NoZW1hLmZ1bmNHZXRMYWJlbChpdGVtU2VsZWN0ZWQudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtU2VsZWN0ZWQudmFsdWVbc2NoZW1hLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gYXdhaXQgc2NoZW1hLl9jb21wb25lbnQuZ2V0RGF0YVNlbGVjdGVkVmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXBTY2hlbWEgPSA8QXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYT5zY2hlbWE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmdW5jR2V0TGFiZWwgPSB0bXBTY2hlbWEuZnVuY0dldExhYmVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZ1bmNHZXRMYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY0dldExhYmVsID0gaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1bdG1wU2NoZW1hLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5fZ2V0VmFsdWVGcm9tRGF0YXNvdXJjZShpdGVtU2VsZWN0ZWQsIHNjaGVtYS5tdWx0aXBsZSwgZnVuY0dldExhYmVsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgQ29DYXVUb0NodWNDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcFNjaGVtYSA9IDxDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWE+c2NoZW1hO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmdW5jR2V0TGFiZWwgPSBpdGVtID0+IGl0ZW0ubGFiZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhU291cmNlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1TZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXBTY2hlbWEuX2NvbXBvbmVudC5tdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZSA9IHRtcFNjaGVtYS5fY29tcG9uZW50Lm11bHRpU2VsZWN0Ll9vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNlbGVjdGVkID0gZGF0YVNvdXJjZS5maWx0ZXIocSA9PiB2YWx1ZS5pbmRleE9mKHggPT4geCA9PSBxLnZhbHVlKSkubWFwKHEgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZSA9IHRtcFNjaGVtYS5fY29tcG9uZW50LmRyb3Bkb3duLl9vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNlbGVjdGVkID0gZGF0YVNvdXJjZS5maW5kKHEgPT4gcS52YWx1ZSA9PSB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNlbGVjdGVkID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2dldFZhbHVlRnJvbURhdGFzb3VyY2UoaXRlbVNlbGVjdGVkLCBzY2hlbWEubXVsdGlwbGUsIGZ1bmNHZXRMYWJlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIERyb3Bkb3duQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXBTY2hlbWEgPSA8RHJvcGRvd25Db250cm9sU2NoZW1hPnNjaGVtYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1TZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY2hlbWEubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1TZWxlY3RlZCA9IHNjaGVtYS5fY29tcG9uZW50LmRhdGFTb3VyY2VJbnRlcm5hbC5maWx0ZXIocSA9PiB2YWx1ZS5pbmRleE9mKHggPT4geCA9PSBxLnZhbHVlW3EudmFsdWUuX2Ryb3Bkb3dudmFsdWVdKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtU2VsZWN0ZWQgPSBzY2hlbWEuX2NvbXBvbmVudC5kYXRhU291cmNlSW50ZXJuYWwuZmluZChxID0+IHEudmFsdWVbcS52YWx1ZS5fZHJvcGRvd252YWx1ZV0gPT0gdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5fZ2V0VmFsdWVGcm9tRGF0YXNvdXJjZShpdGVtU2VsZWN0ZWQsIHNjaGVtYS5tdWx0aXBsZSwgdG1wU2NoZW1hLmZ1bmNHZXRMYWJlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIENoZWNrYm94Q29udHJvbFNjaGVtYSB8fCBzY2hlbWEgaW5zdGFuY2VvZiBTd2l0Y2hDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHZhbHVlID0gJ0tow7RuZyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgdmFsdWUgPSAnQ8OzJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVmFsdWUgPSB1bmRlZmluZWQgdGjDrCBraGkgc2VyaWFsaXplIHPhur0gYuG7iyBt4bqldCBwcm9wXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHZhbHVlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKHByZWZpeCwgc2NoZW1hLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0cmluZ0RhdGUodmFsdWUpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcclxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUsICdkZC9NTS95eXl5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCAnZGQvTU0veXl5eScpO1xyXG4gICAgfVxyXG4gICAgLy8gaHR0cDovL2xvY2FsaG9zdDoyNzIzMC91bml2ZXJzYWwtbGluaz9zZXJ2aWNlQ29kZT1jb25ndmllYyZlbnRpdHk9RE1fUHJpb3JpdHkmZW50aXR5S2V5PTA5MTFmM2U3LTNkYjAtNGI2OC04N2NkLTA3ZDQyNTc0MWU5ZSZzdGF0ZT0mc291cmNlUGF0aD1odHRwOi8vbG9jYWxob3N0OjI3MjMwL2RtLXByaW9yaXR5XHJcbiAgICBwYXJzZUF0dGFjaExpbmsoY29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGxpbmtzID0gY29udGVudC5zcGxpdCgnXFxyXFxuJyk7XHJcbiAgICAgICAgY29uc3Qgb3AgPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpbmsgb2YgbGlua3MpIHtcclxuICAgICAgICAgICAgY29uc3QgYXJyID0gbGluay5zcGxpdCgnPycpO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRlbXAgPSBhcnJbMV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMucGFyc2VRdWVyeVN0cmluZyh0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS5zZXJ2aWNlQ29kZSAmJiBxdWVyeS5lbnRpdHkgJiYgcXVlcnkuZW50aXR5S2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkucmF3TGluayA9IGxpbms7XHJcbiAgICAgICAgICAgICAgICAgICAgb3AucHVzaChxdWVyeSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYGxpbmsgJHtsaW5rfSBpbnZhbGlkIHRvIHBhcnNlYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9wO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBwYXJzZVF1ZXJ5U3RyaW5nKHF1ZXJ5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIGlmICghcXVlcnkpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGlmIChxdWVyeS5zdGFydHNXaXRoKCc/JykpIHF1ZXJ5ID0gcXVlcnkuc3Vic3RyaW5nKDEpO1xyXG4gICAgICAgIGNvbnN0IGFyciA9IHF1ZXJ5LnNwbGl0KCcmJyk7XHJcbiAgICAgICAgY29uc3Qgb2JqID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFycikge1xyXG4gICAgICAgICAgICBjb25zdCB0ZW1wID0gaXRlbS5zcGxpdCgnPScpO1xyXG4gICAgICAgICAgICBpZiAodGVtcFsxXSkge1xyXG4gICAgICAgICAgICAgICAgb2JqW3RlbXBbMF1dID0gZGVjb2RlVVJJQ29tcG9uZW50KHRlbXBbMV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb2JqW3RlbXBbMF1dID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgZ2V0Q29weVBhdGgoc2V0dGluZzogQ3J1ZExpc3RTZXR0aW5nLCByb3dEYXRhOiBhbnksIHBlcm1pc3Npb246IFBlcm1pc3Npb25CYXNlID0gUGVybWlzc2lvbkJhc2UuUkVBRCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1TaGFyZXM6IE1vZGVsU2hhcmVMaW5rQnlQZXJtaXNzaW9uID0gbmV3IE1vZGVsU2hhcmVMaW5rQnlQZXJtaXNzaW9uKCk7XHJcbiAgICAgICAgaXRlbVNoYXJlcy5saW5rVG9NZW51ID0gYCR7dG9wLmxvY2F0aW9uLm9yaWdpbn0ke3RvcC5sb2NhdGlvbi5wYXRobmFtZX1gO1xyXG4gICAgICAgIGl0ZW1TaGFyZXMuc291cmNlUGF0aCA9IGAke2VuY29kZVVSSUNvbXBvbmVudCh0b3AubG9jYXRpb24uaHJlZil9YDtcclxuICAgICAgICBpdGVtU2hhcmVzLnRhcmdldFBhdGggPSBgJHtlbmNvZGVVUklDb21wb25lbnQoc2V0dGluZy50YXJnZXRQYXRoKX1gO1xyXG4gICAgICAgIGl0ZW1TaGFyZXMub2JqZWN0RGlzcGxheU5hbWUgPSBgJHtlbmNvZGVVUklDb21wb25lbnQoc2V0dGluZy5vYmplY3ROYW1lKX1gO1xyXG4gICAgICAgIGxldCBkaXNwbGF5RmllbGQgPSAnJztcclxuICAgICAgICBpZiAoc2V0dGluZy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICAgICAgZGlzcGxheUZpZWxkID0gdGhpcy5fY29tbW9uU2VydmljZS5pc1N0cmluZyhzZXR0aW5nLmRpc3BsYXlGaWVsZCkgPyBzZXR0aW5nLmRpc3BsYXlGaWVsZCA6IChzZXR0aW5nLmRpc3BsYXlGaWVsZCBhcyBhbnkpKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmtDb2x1bW4gPSBzZXR0aW5nLmNvbHMuZmluZCh4ID0+IHguc2hvd0VkaXRMaW5rKTtcclxuICAgICAgICAgICAgZGlzcGxheUZpZWxkID0gbGlua0NvbHVtbj8uZmllbGQ7XHJcbiAgICAgICAgICAgIGlmICghZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQgPSAnaWQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGl0ZW1TaGFyZXMuZGlzcGxheUZpZWxkID0gZGlzcGxheUZpZWxkO1xyXG4gICAgICAgIGl0ZW1TaGFyZXMubHN0SXRlbURhdGEgPSBbXTtcclxuICAgICAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IHRoaXMuZ2V0TGlua1N0YXRlKHJvd0RhdGEpO1xyXG4gICAgICAgIGl0ZW1TaGFyZXMubHN0SXRlbURhdGEucHVzaCh7XHJcbiAgICAgICAgICAgIGl0ZW1JZDogcm93RGF0YS5pZCxcclxuICAgICAgICAgICAgcGVybWlzc2lvbixcclxuICAgICAgICAgICAgc3RhdGU6IGVuY29kZVVSSUNvbXBvbmVudChzdGF0ZSlcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBkaWNQZXJtaXNzaW9uSWQgPSAoYXdhaXQgc2V0dGluZy5iYXNlU2VydmljZS5nZXRTaGFyZWRLZXkoaXRlbVNoYXJlcykpLmRhdGE7XHJcbiAgICAgICAgaWYgKCFkaWNQZXJtaXNzaW9uSWQpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5qZWN0b3IuZ2V0KE5vdGlmaWVyU2VydmljZSkuc2hvd1dhcm5pbmcoJ0LhuqFuIGtow7RuZyBjw7MgcXV54buBbiBjaGlhIHPhursgYuG6o24gZ2hpJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBwYXRoID0gJyc7XHJcbiAgICAgICAgaXRlbVNoYXJlcy5sc3RJdGVtRGF0YS5mb3JFYWNoKGl0ZW1EYXRhID0+IHtcclxuICAgICAgICAgICAgcGF0aCArPSBgJHtkaWNQZXJtaXNzaW9uSWRbaXRlbURhdGEuaXRlbUlkXX1cXG5gO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBwYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldExpbmtTdGF0ZShyb3dEYXRhOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGVmYXVsdFNldHRpbmdzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xyXG4gICAgICAgIGNvbnN0IGxvY2FsRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKENvbUN0eENvbnN0YW50cy5MT0NBTFNUT1JBR0VfS0VZLkRFRkFVTFRfREFUQSk7XHJcbiAgICAgICAgaWYgKGxvY2FsRGF0YSAhPSBudWxsICYmIGxvY2FsRGF0YSAhPSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbERhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbn1cclxuIl19
|