tnx-shared 5.0.69 → 5.0.70
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/bundles/tnx-shared.umd.js +575 -807
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/data-form-base.d.ts +2 -2
- package/classes/base/data-form-base.d.ts.map +1 -1
- package/classes/base/data-list-base.d.ts +1 -3
- package/classes/base/data-list-base.d.ts.map +1 -1
- package/classes/constants.d.ts +0 -4
- package/classes/constants.d.ts.map +1 -1
- package/classes/form-schema.d.ts +4 -38
- package/classes/form-schema.d.ts.map +1 -1
- package/components/autocomplete-picker/autocomplete-picker.component.d.ts +0 -1
- package/components/autocomplete-picker/autocomplete-picker.component.d.ts.map +1 -1
- package/components/common-app-component/common-app-component.d.ts +1 -4
- package/components/common-app-component/common-app-component.d.ts.map +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
- package/components/crud/crud-list/crud-list.component.d.ts +1 -6
- package/components/crud/crud-list/crud-list.component.d.ts.map +1 -1
- package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts.map +1 -1
- package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts.map +1 -1
- package/components/file-explorer/file-manager/file-manager.component.d.ts +2 -0
- package/components/file-explorer/file-manager/file-manager.component.d.ts.map +1 -1
- package/components/file-explorer/services/download-link.service.d.ts +1 -0
- package/components/file-explorer/services/download-link.service.d.ts.map +1 -1
- package/components/file-explorer/services/file-explorer.service.d.ts +2 -0
- package/components/file-explorer/services/file-explorer.service.d.ts.map +1 -1
- package/components/file-explorer/services/file-object.service.d.ts +1 -0
- package/components/file-explorer/services/file-object.service.d.ts.map +1 -1
- package/components/file-explorer/signature-detail/signature-detail.component.d.ts +8 -0
- package/components/file-explorer/signature-detail/signature-detail.component.d.ts.map +1 -0
- package/components/file-explorer/signature-detail/signature-detail.component.ngfactory.d.ts.map +1 -0
- package/components/file-explorer/signature-detail/signature-detail.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/mask/mask.component.d.ts +0 -2
- package/components/mask/mask.component.d.ts.map +1 -1
- package/configs/component-context.constant.d.ts +0 -1
- package/configs/component-context.constant.d.ts.map +1 -1
- package/esm2015/classes/base/data-form-base.js +5 -5
- package/esm2015/classes/base/data-list-base.js +23 -48
- package/esm2015/classes/constants.js +1 -6
- package/esm2015/classes/form-schema.js +3 -34
- package/esm2015/components/autocomplete-picker/autocomplete-picker.component.js +16 -72
- package/esm2015/components/common-app-component/app.menu.component.js +2 -2
- package/esm2015/components/common-app-component/common-app-component.js +3 -26
- package/esm2015/components/crud/crud-form/crud-form.component.js +2 -9
- package/esm2015/components/crud/crud-list/crud-list.component.js +6 -71
- package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.js +3 -29
- package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.js +3 -29
- package/esm2015/components/file-explorer/file-manager/file-manager.component.js +151 -12
- package/esm2015/components/file-explorer/services/download-link.service.js +4 -1
- package/esm2015/components/file-explorer/services/file-explorer.service.js +22 -8
- package/esm2015/components/file-explorer/services/file-object.service.js +15 -1
- package/esm2015/components/file-explorer/signature-detail/signature-detail.component.js +66 -0
- package/esm2015/components/mask/mask.component.js +4 -8
- package/esm2015/components/workflow/services/entity-workflow-history.service.js +3 -3
- package/esm2015/components/workflow/services/entity-workflow-setting.service.js +4 -4
- package/esm2015/configs/component-context.constant.js +2 -3
- package/esm2015/models/grid-info.js +1 -1
- package/esm2015/pipes/tn-date.pipe.js +2 -12
- package/esm2015/public-api.js +7 -3
- package/esm2015/services/base.service.js +1 -16
- package/esm2015/services/common.service.js +1 -9
- package/esm2015/services/crud.service.js +4 -23
- package/esm2015/services/menu.service.js +3 -6
- package/esm2015/services/notifier.service.js +2 -2
- package/esm2015/services/permission.service.js +2 -9
- package/esm2015/services/template-text-v4.service.js +1 -1
- package/esm2015/services/user-v5.service.js +1 -1
- package/esm2015/services/user.service.js +2 -8
- package/esm2015/tnx-shared.js +22 -24
- package/esm2015/tnx-shared.module.js +4 -2
- package/fesm2015/tnx-shared.js +341 -530
- package/fesm2015/tnx-shared.js.map +1 -1
- package/models/grid-info.d.ts +0 -1
- package/models/grid-info.d.ts.map +1 -1
- package/package.json +2 -2
- package/pipes/tn-date.pipe.d.ts +0 -2
- package/pipes/tn-date.pipe.d.ts.map +1 -1
- package/public-api.d.ts +6 -2
- package/public-api.d.ts.map +1 -1
- package/services/base.service.d.ts +0 -1
- package/services/base.service.d.ts.map +1 -1
- package/services/common.service.d.ts +0 -4
- package/services/common.service.d.ts.map +1 -1
- package/services/crud.service.d.ts.map +1 -1
- package/services/menu.service.d.ts +1 -1
- package/services/menu.service.d.ts.map +1 -1
- package/services/permission.service.d.ts +0 -1
- package/services/permission.service.d.ts.map +1 -1
- package/services/template-text-v4.service.d.ts.map +1 -1
- package/services/user.service.d.ts.map +1 -1
- package/tnx-shared.d.ts +21 -23
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +2 -2
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
- package/components/file-explorer/models/file-settings.d.ts +0 -46
- package/components/file-explorer/models/file-settings.d.ts.map +0 -1
- package/esm2015/components/file-explorer/models/file-settings.js +0 -60
- package/esm2015/services/organization-base.service.js +0 -57
- package/services/organization-base.service.d.ts +0 -16
- package/services/organization-base.service.d.ts.map +0 -1
- package/services/organization-base.service.ngfactory.d.ts.map +0 -1
|
@@ -129,7 +129,6 @@ export class UserService extends BaseService {
|
|
|
129
129
|
}
|
|
130
130
|
else {
|
|
131
131
|
this._applicationContext.getRootContext().replaySubscribeOnce(ComCtxConstants.ROOT.USER_READY, rs => {
|
|
132
|
-
const firstTimeLogin = rs;
|
|
133
132
|
const accessToken = this._oauthService.getAccessToken();
|
|
134
133
|
const decoded = JWT.default(accessToken);
|
|
135
134
|
// Chuyển đổi sang dùng instanceId nếu đăng nhập bằng identityv4 nhưng phải sử dụng base userOrgv5
|
|
@@ -171,12 +170,7 @@ export class UserService extends BaseService {
|
|
|
171
170
|
localStorage.setItem(this.CURRENT_USER_KEY, JSON.stringify(user));
|
|
172
171
|
}
|
|
173
172
|
this._applicationContext.getRootContext().data.currentUser = user;
|
|
174
|
-
|
|
175
|
-
this._applicationContext.getRootContext().fireEvent(ComCtxConstants.ROOT.NEED_CLEAR_PERMISSION_CACHE);
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
this._applicationContext.getRootContext().fireReplayEvent(ComCtxConstants.ROOT.USER_LOADED, true);
|
|
179
|
-
}
|
|
173
|
+
this._applicationContext.getRootContext().fireReplayEvent(ComCtxConstants.ROOT.USER_LOADED, true);
|
|
180
174
|
}, err => {
|
|
181
175
|
});
|
|
182
176
|
});
|
|
@@ -564,4 +558,4 @@ UserService.ctorParameters = () => [
|
|
|
564
558
|
{ type: ExceptionHandlerService },
|
|
565
559
|
{ type: ApplicationContextService }
|
|
566
560
|
];
|
|
567
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxLQUFLLElBQUksTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd4RSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7O0FBRW5ELHFCQUFxQjtBQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFLakIsTUFB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T0FBTyxDQUFDLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDWCxPQUFPLENBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDOzs7O1lBcm5CSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQXpCUSxVQUFVO1lBQ0UsUUFBUTtZQWdCcEIsbUJBQW1CO1lBSm5CLGFBQWE7WUFYYixZQUFZO1lBZ0JaLGNBQWM7WUFGZCx1QkFBdUI7WUFYdkIseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgKiBhcyBKV1RfIGZyb20gJ2p3dC1kZWNvZGUnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5LCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBwbGljYXRpb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4uL2FwcC1jb250ZXh0L2FwcGxpY2F0aW9uLWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbUN0eENvbnN0YW50cyB9IGZyb20gJy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWcgfSBmcm9tICcuLi9jb25maWdzL21vZHVsZS1jb25maWcnO1xyXG5pbXBvcnQgeyBCYXNpY1VzZXJJbmZvIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2ljLXVzZXItaW5mbyc7XHJcbmltcG9ydCB7IEZpbHRlciwgR3JpZEluZm8gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1pbmZvJztcclxuaW1wb3J0IHsgUGFnZU9wdGlvbkJhc2UgfSBmcm9tICcuLi9tb2RlbHMvcGFnZS1vcHRpb24nO1xyXG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xyXG5pbXBvcnQgeyBUblVzZXIgfSBmcm9tICcuLi9tb2RlbHMvdG4tdXNlcic7XHJcbmltcG9ydCB7IEF1dGhlblNlcnZpY2UgfSBmcm9tICcuL2F1dGhlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXhjZXB0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL2V4Y2VwdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaWduYWxSU2VydmljZSB9IGZyb20gJy4vc2lnbmFsci5zZXJ2aWNlJztcclxuXHJcbi8vIGZpeCBmb3IgcHJvZCBidWlsZFxyXG5jb25zdCBKV1QgPSBKV1RfO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuICAgIHJlYWRvbmx5IFVTRVJfSU5GT19LRVkgPSAndXNlcl9pbmZvJztcclxuICAgIHJlYWRvbmx5IENVUlJFTlRfVVNFUl9LRVkgPSAnY3VycmVudF91c2VyX2luZm8nO1xyXG4gICAgcmVhZG9ubHkgUkVUUllfQ09VTlQ6IG51bWJlciA9IDA7XHJcbiAgICByZWFkb25seSBSRVBMQVlfQ09VTlQ6IG51bWJlciA9IDEwO1xyXG4gICAgcmVhZG9ubHkgREVGQVVMVF9BVkFUQVJfTUFMRTtcclxuICAgIHJlYWRvbmx5IERFRkFVTFRfQVZBVEFSX0ZFTUFMRTtcclxuICAgIHJlYWRvbmx5IG9yZ2FuaXphdGlvbkVuZHBvaW50O1xyXG4gICAgcmVhZG9ubHkgX21vZHVsZUNvbmZpZzogTW9kdWxlQ29uZmlnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2F1dGhlblNlcnZpY2U6IEF1dGhlblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2lnbmFsclNlcnZpY2U6IFNpZ25hbFJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2V4Y2VwdGlvbkhhbmRsZXJTZXJ2aWNlOiBFeGNlcHRpb25IYW5kbGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9hcHBsaWNhdGlvbkNvbnRleHQ6IEFwcGxpY2F0aW9uQ29udGV4dFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGh0dHAsIGluamVjdG9yLCBgJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4udXNlck9yZ0VuZHBvaW50fS8ke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaVZlcnNpb259L3VzZXJgKTtcclxuICAgICAgICB0aGlzLmVuZFBvaW50ID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLnVzZXJPcmdFbmRwb2ludDtcclxuXHJcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpID0gdGhpcy5nZXRTZXJ2aWNlVXJsKCk7XHJcbiAgICAgICAgdGhpcy5vcmdhbml6YXRpb25FbmRwb2ludCA9IHRoaXMuZ2V0U2VydmljZVVybCgpO1xyXG5cclxuICAgICAgICB0aGlzLkRFRkFVTFRfQVZBVEFSX01BTEUgPSB0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5kZWZhdWx0TWFsZUF2YXRhcjtcclxuICAgICAgICB0aGlzLkRFRkFVTFRfQVZBVEFSX0ZFTUFMRSA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLmRlZmF1bHRGZW1hbGVBdmF0YXI7XHJcblxyXG4gICAgICAgIGNvbnN0IHJvb3RDb250ZXh0U3ViID0gdGhpcy5fYXBwbGljYXRpb25Db250ZXh0LnJvb3RDb250ZXh0TG9hZGVkLnN1YnNjcmliZShyczEgPT4ge1xyXG4gICAgICAgICAgICBpZiAocnMxKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBiaW5kaW5nIGV2ZW50IHVzZXIgY2hhbmdlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQuZ2V0Um9vdENvbnRleHQoKS5zdWJzY3JpYmUoQ29tQ3R4Q29uc3RhbnRzLlJPT1QuVVNFUl9JTkZPX0NIQU5HRUQsIHJzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5DVVJSRU5UX1VTRVJfS0VZKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZUN1cnJlbnRVc2VyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcm9vdENvbnRleHRTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9zaWduYWxyU2VydmljZS5zdGFydChudWxsLCAnVVNFUl9JTkZPX0VESVRFRCcsIGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVVzZXJJbmZvQ2hhbmdlKGRhdGEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2VydmljZVVybCgpIHtcclxuICAgICAgICBpZiAodGhpcy5pc1VzZU9sZE9yZ2FuaXphdGlvbigpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHVzZXJPbGRPcmdhbml6YXRpb24gPSB0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuYXBpRG9tYWluLm9yZ2FuaXphdGlvbkVuZHBvaW50O1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dXNlck9sZE9yZ2FuaXphdGlvbn0vdXNlcmA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgdXNlck9yZ0VuZHBvaW50ID0gdGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwaURvbWFpbi51c2VyT3JnRW5kcG9pbnQ7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt1c2VyT3JnRW5kcG9pbnR9LyR7dGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwaVZlcnNpb259L3VzZXJgO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVXNlT2xkT3JnYW5pemF0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IHVzZU9sZE9yZ2FuaXphdGlvbiA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC51c2VPbGRPcmdhbml6YXRpb247XHJcbiAgICAgICAgaWYgKHVzZU9sZE9yZ2FuaXphdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFsbFdpdGhJbmZvKGZpbHRlcnM6IEZpbHRlcltdKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YUN1c3RvbVJvdXRlKCdXaXRoSW5mbycsIGZpbHRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBhZ2VXaXRoSW5mbyhncmlkSW5mbzogR3JpZEluZm8pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeUdyaWRSZXF1ZXN0KGdyaWRJbmZvLCAnV2l0aEluZm8nKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbmZvKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KGAke3RoaXMuc2VydmljZVVyaX0vR2V0SW5mby8ke2lkfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEluZm9Gb3JXb3JrZmxvdyhpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEdldChgJHt0aGlzLnNlcnZpY2VVcml9L0dldEluZm9Gb3JXb3JrZmxvdy8ke2lkfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENsYWltKGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IEpXVC5kZWZhdWx0KHRoaXMuX29hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpKTtcclxuICAgICAgICByZXR1cm4gZGVjb2RlZFtrZXldO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVVzZXJJbmZvQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgICBsZXQgZGF0YU9iajtcclxuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgZGF0YU9iaiA9IEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGluZm9Vc2VyID0gSlNPTi5wYXJzZShkYXRhT2JqLm1lc3NhZ2UuY29udGVudCk7XHJcbiAgICAgICAgaWYgKGluZm9Vc2VyLklkKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuVVNFUl9JTkZPX0tFWSArICdfJyArIGluZm9Vc2VyLklkKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRCYXNpY1VzZXJJbmZvKGluZm9Vc2VyLklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rm9yQXV0b0NvbXBsZXRlKGtleTogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0Rm9yQXV0b0NvbXBsZXRlP2tleT0ke2tleX1gO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KGFwaVVybClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9leGNlcHRpb25IYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSlcclxuICAgICAgICAgICAgKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwb3B1bGF0ZUN1cnJlbnRVc2VyKCkge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DVVJSRU5UX1VTRVJfS0VZKTtcclxuICAgICAgICBjb25zdCB1c2VyID0gPFRuVXNlcj5KU09OLnBhcnNlKHN0b3JhZ2VJdGVtKTtcclxuICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICBpZiAoIXVzZXIudXNlcklkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hdXRoZW5TZXJ2aWNlLmxvZ291dCgpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DVVJSRU5UX1VTRVJfS0VZLCBKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByYXdVc2VySWQgPSB1c2VyLnVzZXJJZDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJJZCA9IE51bWJlcihyYXdVc2VySWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc05hTih1c2VySWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXNlci5vcmlnaW5JZCA9IHVzZXIudXNlcklkO1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIudXNlcklkID0gdXNlci5pbnN0YW5jZWlkO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuQ1VSUkVOVF9VU0VSX0tFWSwgSlNPTi5zdHJpbmdpZnkodXNlcikpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmRhdGEuY3VycmVudFVzZXIgPSB1c2VyO1xyXG4gICAgICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQuZ2V0Um9vdENvbnRleHQoKS5maXJlUmVwbGF5RXZlbnQoQ29tQ3R4Q29uc3RhbnRzLlJPT1QuVVNFUl9MT0FERUQsIHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLnJlcGxheVN1YnNjcmliZU9uY2UoQ29tQ3R4Q29uc3RhbnRzLlJPT1QuVVNFUl9SRUFEWSwgcnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RUaW1lTG9naW4gPSBycztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5fb2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVkOiBhbnkgPSBKV1QuZGVmYXVsdChhY2Nlc3NUb2tlbik7XHJcbiAgICAgICAgICAgICAgICAvLyBDaHV54buDbiDEkeG7lWkgc2FuZyBkw7luZyBpbnN0YW5jZUlkIG7hur91IMSRxINuZyBuaOG6rXAgYuG6sW5nIGlkZW50aXR5djQgbmjGsG5nIHBo4bqjaSBz4butIGThu6VuZyBiYXNlIHVzZXJPcmd2NVxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmF3VXNlcklkID0gZGVjb2RlZC5zdWI7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VySWQgPSBOdW1iZXIocmF3VXNlcklkKTtcclxuICAgICAgICAgICAgICAgIGxldCB1c2VySWRSZXN1bHQgPSAnJztcclxuICAgICAgICAgICAgICAgIGlmICghaXNOYU4odXNlcklkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZFJlc3VsdCA9IGRlY29kZWQuaW5zdGFuY2VpZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZFJlc3VsdCA9IHJhd1VzZXJJZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3RhZmZJbmZvKHVzZXJJZFJlc3VsdCkudGhlbihyczEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZXIgPSBuZXcgVG5Vc2VyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJzMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLmlzc3VwZXJ1c2VyID0gZGVjb2RlZC5pc3N1cGVydXNlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5pc2FkbWluID0gZGVjb2RlZC5pc2FkbWluO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLnVzZXJJZCA9IHVzZXJJZFJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5mdWxsTmFtZSA9IGRlY29kZWQuZnVsbG5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIudXNlck5hbWUgPSBkZWNvZGVkLnVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLm1hQ2FuQm8gPSBkZWNvZGVkLm1hQ2FuQm87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIubWFOZ3VvaUhvYyA9IGRlY29kZWQubWFOZ3VvaUhvYztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5hdmF0YXIgPSByczEuYXZhdGFyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLnBvc2l0aW9uID0gcnMxLnBvc2l0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLnJvbGUgPSByczEucm9sZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5nZW5kZXIgPSByczEuZ2VuZGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLnBvc2l0aW9uQ29kZSA9IHJzMS5wb3NpdGlvbkNvZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuaW5zdGFuY2VpZCA9IGRlY29kZWQuaW5zdGFuY2VpZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5pZENhbkJvID0gZGVjb2RlZC5pZENhbkJvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLm9yaWdpbklkID0gZGVjb2RlZC5zdWI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXIuYXZhdGFyIHx8IHVzZXIuYXZhdGFyID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlci5nZW5kZXIgPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuYXZhdGFyID0gdGhpcy5ERUZBVUxUX0FWQVRBUl9GRU1BTEU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuYXZhdGFyID0gdGhpcy5ERUZBVUxUX0FWQVRBUl9NQUxFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuQ1VSUkVOVF9VU0VSX0tFWSwgSlNPTi5zdHJpbmdpZnkodXNlcikpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQuZ2V0Um9vdENvbnRleHQoKS5kYXRhLmN1cnJlbnRVc2VyID0gdXNlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0VGltZUxvZ2luKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmZpcmVFdmVudChDb21DdHhDb25zdGFudHMuUk9PVC5ORUVEX0NMRUFSX1BFUk1JU1NJT05fQ0FDSEUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25Db250ZXh0LmdldFJvb3RDb250ZXh0KCkuZmlyZVJlcGxheUV2ZW50KENvbUN0eENvbnN0YW50cy5ST09ULlVTRVJfTE9BREVELCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LCBlcnIgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZmlsZUluZm8oKSB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncHJvZmlsZXMnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNLaG9hVmllbihpZExvYWlEb25WaSkge1xyXG4gICAgICAgIHJldHVybiBpZExvYWlEb25WaSA9PSAnMjAnIHx8IGlkTG9haURvblZpID09ICc2MCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNCb01vbihpZExvYWlEb25WaSkge1xyXG4gICAgICAgIHJldHVybiBpZExvYWlEb25WaSA9PSAnMjEnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEN1cnJlbnRVc2VyKCk6IFRuVXNlciB7XHJcbiAgICAgICAgcmV0dXJuIDxUblVzZXI+KHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmRhdGEuY3VycmVudFVzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJJZENvbWJpbmUoKSB7XHJcbiAgICAgICAgY29uc3QgcmF3VXNlcklkID0gdGhpcy5nZXRJZCgpO1xyXG4gICAgICAgIGNvbnN0IHVzZXJJZCA9IE51bWJlcihyYXdVc2VySWQpO1xyXG4gICAgICAgIGxldCB1c2VySWRSZXN1bHQgPSAnJztcclxuICAgICAgICBpZiAoIWlzTmFOKHVzZXJJZCkpIHtcclxuICAgICAgICAgICAgdXNlcklkUmVzdWx0ID0gdGhpcy5nZXRJbnN0YW5jZUlkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB1c2VySWRSZXN1bHQgPSByYXdVc2VySWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1c2VySWRSZXN1bHQudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGFmZkluZm8odXNlcklkKTogUHJvbWlzZTxUblVzZXI+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9LyR7dXNlcklkfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJlc3BvbnNlUmVzdWx0Pih1cmwpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSksXHJcbiAgICAgICAgICAgICAgICBtYXAocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wID0gPFRuVXNlcj57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxOYW1lOiBycy5kYXRhID8gcnMuZGF0YS5mdWxsTmFtZSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBycy5kYXRhID8gcnMuZGF0YS5yb2xlIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogcnMuZGF0YSA/IHJzLmRhdGEuYXZhdGFyIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdlbmRlcjogcnMuZGF0YSA/IHJzLmRhdGEuZ2VuZGVyIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25Db2RlOiBycy5kYXRhLnBvc2l0aW9uQ29kZSA/IHJzLmRhdGEucG9zaXRpb25Db2RlIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlaWQ6IHJzLmRhdGEuaW5zdGFuY2VpZFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3AuYXZhdGFyIHx8IG9wLmF2YXRhciA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AuZ2VuZGVyID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLmF2YXRhciA9IHRoaXMuREVGQVVMVF9BVkFUQVJfRkVNQUxFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AuYXZhdGFyID0gdGhpcy5ERUZBVUxUX0FWQVRBUl9NQUxFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3A7XHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldElkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNVUlJFTlRfVVNFUl9LRVkpO1xyXG4gICAgICAgIGNvbnN0IHVzZXIgPSA8VG5Vc2VyPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1c2VyLnVzZXJJZDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50VXNlcigpLnVzZXJJZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW5zdGFuY2VJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DVVJSRU5UX1VTRVJfS0VZKTtcclxuICAgICAgICBjb25zdCB1c2VyID0gPFRuVXNlcj5KU09OLnBhcnNlKHN0b3JhZ2VJdGVtKTtcclxuICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdXNlci5pbnN0YW5jZWlkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRVc2VyKCkuaW5zdGFuY2VpZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbmxpbmUoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vcmVnaXN0ZXJPbmxpbmVgO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PFJlc3BvbnNlUmVzdWx0PihhcGlVcmwsIGZvcm1EYXRhKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2ljVXNlckluZm8odXNlcklkOiBudW1iZXIpOiBQcm9taXNlPEJhc2ljVXNlckluZm8+IHtcclxuXHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlVTRVJfSU5GT19LRVkgKyAnXycgKyB1c2VySWQpO1xyXG4gICAgICAgIC8vIGNvbnN0IHVzZXJJbmZvcyA9IDxCYXNpY1VzZXJJbmZvW10+SlNPTi5wYXJzZShzdG9yYWdlSXRlbSk7XHJcbiAgICAgICAgLy8gY29uc3QgdXNlciA9IHVzZXJJbmZvcyA/IHVzZXJJbmZvcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdXNlcklkKSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IDxCYXNpY1VzZXJJbmZvPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZXNvbHZlKHVzZXIpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHVzZXJJZCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KDxCYXNpY1VzZXJJbmZvPnt9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJJZCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldEJhc2ljVXNlckluZm8/aWQ9JHt1c2VySWR9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2h0dHAuZ2V0PFJlc3BvbnNlUmVzdWx0PihzdlVybCkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSh0aGlzLlJFUExBWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnkodGhpcy5SRVRSWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHJlcHNvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSByZXNwb25zZSB0byBsb2NhbCBzdG9yYWdlIGhlcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZICsgJ18nICsgcmVwc29uc2UuZGF0YS5pZCwgSlNPTi5zdHJpbmdpZnkocmVwc29uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEJhc2ljVXNlckluZm8+cmVwc29uc2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoPEJhc2ljVXNlckluZm8+e30pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QmFzaWNVc2Vyc0luZm8odXNlcklkczogc3RyaW5nKTogUHJvbWlzZTxCYXNpY1VzZXJJbmZvW10+IHtcclxuICAgICAgICBpZiAoIXVzZXJJZHMgfHwgdXNlcklkcyA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoPEJhc2ljVXNlckluZm9bXT5bXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdG9yYWdlSXRlbSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVVNFUl9JTkZPX0tFWSk7XHJcbiAgICAgICAgY29uc3QgdXNlckluZm9zID0gPEJhc2ljVXNlckluZm9bXT5KU09OLnBhcnNlKHN0b3JhZ2VJdGVtKTtcclxuXHJcbiAgICAgICAgLy8gY29uc3QgdXNlcnMgPSB1c2VySW5mb3MgPyB1c2VySW5mb3MuZmlsdGVyKGl0ZW0gPT4gdXNlcklkcy5pbmRleE9mKGAsJHtpdGVtLmlkfSxgKSA+IC0xKSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgY2hlY2sgPSB1c2VySW5mb3MgPyB1c2VySWRzLmluZGV4T2YodXNlckluZm9zWydpZCddKSA+IC0xIDogbnVsbDtcclxuICAgICAgICBpZiAoY2hlY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlc29sdmUodXNlckluZm9zKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN2VXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRCYXNpY1VzZXJzSW5mbz91c2VySWRzPSR7dXNlcklkc31gO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHN2VXJsKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KHRoaXMuUkVQTEFZX0NPVU5UKSxcclxuICAgICAgICAgICAgICAgICAgICByZXRyeSh0aGlzLlJFVFJZX0NPVU5UKSxcclxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSxcclxuICAgICAgICAgICAgICAgICAgICBtYXAocmVwc29uc2UgPT4gPEJhc2ljVXNlckluZm9bXT5yZXBzb25zZS5kYXRhKVxyXG4gICAgICAgICAgICAgICAgKS50b1Byb21pc2UoKS50aGVuKHN1Y2Nlc3MgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoc3VjY2Vzcyk7XHJcbiAgICAgICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoPEJhc2ljVXNlckluZm9bXT5bXSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2ljVXNlckluZm9CeVVzZXJOYW1lKHVzZXJOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJhc2ljVXNlckluZm8+IHtcclxuICAgICAgICBjb25zdCBzdG9yYWdlSXRlbSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVVNFUl9JTkZPX0tFWSArICdfJyArIHVzZXJOYW1lKTtcclxuICAgICAgICBjb25zdCB1c2VyID0gPEJhc2ljVXNlckluZm8+SlNPTi5wYXJzZShzdG9yYWdlSXRlbSk7XHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlc29sdmUodXNlcikpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodXNlck5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoPEJhc2ljVXNlckluZm8+e30pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXNlck5hbWUgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldEJhc2ljVXNlckluZm9CeVVzZXJOYW1lP3VzZXJOYW1lPSR7dXNlck5hbWV9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faHR0cC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHN2VXJsKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVSZXBsYXkodGhpcy5SRVBMQVlfQ09VTlQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnkodGhpcy5SRVRSWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAocmVwc29uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgcmVzcG9uc2UgdG8gbG9jYWwgc3RvcmFnZSBoZXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZICsgJ18nICsgcmVwc29uc2UuZGF0YS51c2VyTmFtZSwgSlNPTi5zdHJpbmdpZnkocmVwc29uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QmFzaWNVc2VySW5mbz5yZXBzb25zZS5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkudG9Qcm9taXNlKCkudGhlbihyc3MgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocnNzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVycnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoPGFueT57fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRCYXNpY1VzZXJzSW5mb0J5VXNlck5hbWUodXNlck5hbWVzOiBzdHJpbmcpOiBQcm9taXNlPEJhc2ljVXNlckluZm9bXT4ge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZKTtcclxuICAgICAgICBjb25zdCB1c2VySW5mb3MgPSA8QmFzaWNVc2VySW5mb1tdPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG4gICAgICAgIGNvbnN0IGNoZWNrID0gdXNlckluZm9zID8gdXNlck5hbWVzLmluZGV4T2YodXNlckluZm9zWyd1c2VyTmFtZSddKSA+IC0xIDogbnVsbDtcclxuICAgICAgICBpZiAoY2hlY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlc29sdmUodXNlckluZm9zKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN2VXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRCYXNpY1VzZXJzSW5mb0J5VXNlck5hbWU/dXNlck5hbWVzPSR7dXNlck5hbWVzfWA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9odHRwLmdldDxSZXNwb25zZVJlc3VsdD4oc3ZVcmwpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgc2hhcmVSZXBsYXkodGhpcy5SRVBMQVlfQ09VTlQpLFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHJ5KHRoaXMuUkVUUllfQ09VTlQpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcChyZXBzb25zZSA9PiA8QmFzaWNVc2VySW5mb1tdPnJlcHNvbnNlLmRhdGEpXHJcbiAgICAgICAgICAgICAgICApLnRvUHJvbWlzZSgpLnRoZW4oc3VjY2VzcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShzdWNjZXNzKTtcclxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShbXSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRMaXN0VXNlcklkVG9TdHJpbmcodXNlcklkczogbnVtYmVyW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh1c2VySWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAsJHt1c2VySWRzLmpvaW4oJywnKX0sYDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcsJztcclxuICAgIH1cclxuXHJcbiAgICBmaWxsQmFzaWNVc2VySW5mbyhkYXRhU291cmNlOiBhbnlbXSwgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHVzZXJzOiBCYXNpY1VzZXJJbmZvW10pOiBhbnlbXSB7XHJcbiAgICAgICAgZGF0YVNvdXJjZS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB1c2VySWQgPSBpdGVtW3Byb3BlcnR5TmFtZV0uaWQgPyBpdGVtW3Byb3BlcnR5TmFtZV0uaWQgOiBpdGVtW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1zaGFkb3dlZC12YXJpYWJsZVxyXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gdXNlcnMuZmluZCh1c2VyID0+IHVzZXIuaWQgPT09IHVzZXJJZCk7XHJcbiAgICAgICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtW3Byb3BlcnR5TmFtZV0gPSB1c2VyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhU291cmNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICByZXN0b3JlUGFzc3dvcmQoaXRlbTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFJlc3BvbnNlUmVzdWx0PihgJHt0aGlzLnNlcnZpY2VVcml9L3Jlc3RvcmVQYXNzd29yZGAsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlUGFzc3dvcmQodXNlcklkOiBzdHJpbmcsIGl0ZW06IGFueSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuXHJcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9DaGFuZ2VQYXNzd29yZGA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KGFwaVVybCwgaXRlbSlcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNldFBhc3N3b3JkKGl0ZW06IGFueSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuXHJcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9yZXNldFBhc3N3b3JkYDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucHV0PFJlc3BvbnNlUmVzdWx0PihhcGlVcmwsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgR2V0c0J5TWFuYWdlcklkQXJyYXlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0TG93ZXJTdGFmZnNCeVVzZXJJZD91c2VySWQ9JHtpZH1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRHZXQoYXBpVXJsKTtcclxuICAgIH1cclxuXHJcbiAgICBtYXJrQXNBZG1pbih1c2VySWQ6IG51bWJlciwgaXNBZG1pbjogYm9vbGVhbikge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vbWFya0FzQWRtaW4vJHt1c2VySWR9LyR7aXNBZG1pbn1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5wdXQ8UmVzcG9uc2VSZXN1bHQ+KHVybCwgaXNBZG1pbilcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBtYXJrQXNSZXByZXNlbnQodXNlcklkOiBudW1iZXIsIGlzUmVwcmVzZW50OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L21hcmtBc1JlcHJlc2VudC8ke3VzZXJJZH0vJHtpc1JlcHJlc2VudH1gO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucHV0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIGlzUmVwcmVzZW50KVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG4gICAgZ2V0c0J5T3JnYW5pemF0aW9uTGlzdElkKHBhZ2VPcHRpb246IFBhZ2VPcHRpb25CYXNlLCBmdW5HZXROYW1lOiBzdHJpbmcgPSAnJywgb3B0aW9uUGFyYW1ldGVyOiBzdHJpbmcgPSAnJywgZGVmYXVsdFBhcmFtZXRlcjogc3RyaW5nID0gJycpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcblxyXG4gICAgICAgIGxldCBxdWVyeVN0cmluZyA9IGA/a2V5PSR7cGFnZU9wdGlvbi5xdWVyeX1gO1xyXG5cclxuICAgICAgICBpZiAoIXBhZ2VPcHRpb24ub2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIHBhZ2VPcHRpb24ub2Zmc2V0ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHF1ZXJ5U3RyaW5nICs9IGAmb2Zmc2V0PSR7cGFnZU9wdGlvbi5vZmZzZXR9YDtcclxuXHJcblxyXG4gICAgICAgIGlmICghcGFnZU9wdGlvbi5saW1pdCkge1xyXG4gICAgICAgICAgICBwYWdlT3B0aW9uLmxpbWl0ID0gdGhpcy5MSU1JVF9ERUZBVUxUO1xyXG4gICAgICAgIH1cclxuICAgICAgICBxdWVyeVN0cmluZyArPSBgJmxpbWl0PSR7cGFnZU9wdGlvbi5saW1pdCArIDF9YDtcclxuXHJcblxyXG4gICAgICAgIGlmIChwYWdlT3B0aW9uLnNvcnRGaWVsZCkge1xyXG4gICAgICAgICAgICBxdWVyeVN0cmluZyArPSBgJnNvcnRGaWVsZD0ke3BhZ2VPcHRpb24uc29ydEZpZWxkfSZpc0FzYz0ke3BhZ2VPcHRpb24uaXNBc2N9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbWV0ZXIgIT0gJycpIHtcclxuICAgICAgICAgICAgcXVlcnlTdHJpbmcgKz0gYCYke2RlZmF1bHRQYXJhbWV0ZXJ9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9wdGlvblBhcmFtZXRlciAhPSAnJykge1xyXG4gICAgICAgICAgICBxdWVyeVN0cmluZyArPSBgJiR7b3B0aW9uUGFyYW1ldGVyfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMub3JnYW5pemF0aW9uRW5kcG9pbnR9JHtmdW5HZXROYW1lfSR7cXVlcnlTdHJpbmd9YDtcclxuICAgICAgICBpZiAocGFnZU9wdGlvbi5pc0lnbm9yZUNsaWVudENhY2hlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldElnbm9yZUNsaWVudENhY2hlKGFwaVVybCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KGFwaVVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0c0J5T3JnYW5pemF0aW9uSWQob3JnYW5pemF0aW9uSWQ6IHN0cmluZywga2V5d29yZD86IHN0cmluZywgb2Zmc2V0PzogbnVtYmVyLCBsaW1pdD86IG51bWJlcik6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuXHJcbiAgICAgICAgaWYgKCFrZXl3b3JkKSB7XHJcbiAgICAgICAgICAgIGtleXdvcmQgPSAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghb2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIG9mZnNldCA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIW9mZnNldCkge1xyXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsaW1pdCkge1xyXG4gICAgICAgICAgICBsaW1pdCA9IDEwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRzQnlPcmdhbml6YXRpb25JZGBcclxuICAgICAgICAgICAgKyBgP29yZ2FuaXphdGlvbklkPSR7b3JnYW5pemF0aW9uSWR9YFxyXG4gICAgICAgICAgICArIGAma2V5d29yZD0ke2tleXdvcmR9YFxyXG4gICAgICAgICAgICArIGAmb2Zmc2V0PSR7b2Zmc2V0fWBcclxuICAgICAgICAgICAgKyBgJmxpbWl0PSR7bGltaXR9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KGFwaVVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGVmYXVsdEF2YXRhcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ERUZBVUxUX0FWQVRBUl9NQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVycm9yKGVycm9yOiBhbnksIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIGNvbnN0IGNvbW1vblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ29tbW9uU2VydmljZSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyb3IsIGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2NrVXNlcihpdGVtOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcblxyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vbG9ja1VzZXJBY2NvdW50YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4oYXBpVXJsLCBpdGVtKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHVubG9ja1VzZXIoaXRlbTogYW55KTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG5cclxuICAgICAgICBjb25zdCBhcGlVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L3VubG9ja1VzZXJBY2NvdW50YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4oYXBpVXJsLCBpdGVtKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU3VwZXJVc2VyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQuZ2V0Um9vdENvbnRleHQoKS5kYXRhLmN1cnJlbnRVc2VyXHJcbiAgICAgICAgICAgICYmIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmRhdGEuY3VycmVudFVzZXIuaXNzdXBlcnVzZXIgPT09ICdUcnVlJztcclxuICAgIH1cclxuXHJcbiAgICBpc0FkbWluKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQuZ2V0Um9vdENvbnRleHQoKS5kYXRhLmN1cnJlbnRVc2VyXHJcbiAgICAgICAgICAgICYmIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmRhdGEuY3VycmVudFVzZXIuaXNhZG1pbiA9PT0gJ1RydWUnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVmFsaWRBY2Nlc3NUb2tlbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVc2Vyc0J5R3JvdXBDb2RlKGdyb3VwQ29kZTogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0VXNlcnNCeUdyb3VwQ29kZT9ncm91cENvZGU9JHtncm91cENvZGV9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KGFwaVVybClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9leGNlcHRpb25IYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSlcclxuICAgICAgICAgICAgKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTZXJ2aWNlRW5kcG9pbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZVVyaX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2luaFZpZW5BY2NvdW50KCkge1xyXG4gICAgICAgIGNvbnN0IHVzZXJMb2dpbiA9IHRoaXMuZ2V0Q3VycmVudFVzZXIoKTtcclxuICAgICAgICBpZiAodXNlckxvZ2luKSB7XHJcbiAgICAgICAgICAgIGlmICh1c2VyTG9naW4ubWFOZ3VvaUhvYykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBhZ2VVc2VySW5mbyh1c2VySWRzOiBzdHJpbmcpOiBQcm9taXNlPEJhc2ljVXNlckluZm9bXT4ge1xyXG4gICAgICAgIGlmICghdXNlcklkcyB8fCB1c2VySWRzID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSg8QmFzaWNVc2VySW5mb1tdPltdKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZKTtcclxuICAgICAgICBjb25zdCB1c2VySW5mb3MgPSA8QmFzaWNVc2VySW5mb1tdPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG5cclxuICAgICAgICAvLyBjb25zdCB1c2VycyA9IHVzZXJJbmZvcyA/IHVzZXJJbmZvcy5maWx0ZXIoaXRlbSA9PiB1c2VySWRzLmluZGV4T2YoYCwke2l0ZW0uaWR9LGApID4gLTEpIDogbnVsbDtcclxuICAgICAgICBjb25zdCBjaGVjayA9IHVzZXJJbmZvcyA/IHVzZXJJZHMuaW5kZXhPZih1c2VySW5mb3NbJ2lkJ10pID4gLTEgOiBudWxsO1xyXG4gICAgICAgIGlmIChjaGVjaykge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gcmVzb2x2ZSh1c2VySW5mb3MpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ZVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldFBhZ2VkYDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1GaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdpZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6ICdpbicsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVzZXJJZHNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goaXRlbUZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBncmlkSW5mbyA9IG5ldyBHcmlkSW5mbyh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBwYWdlSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogMTAwMDBcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNvcnRzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9odHRwLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHN2VXJsLCBncmlkSW5mbykucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSh0aGlzLlJFUExBWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0cnkodGhpcy5SRVRSWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSksXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlcHNvbnNlID0+IDxCYXNpY1VzZXJJbmZvW10+cmVwc29uc2UuZGF0YSlcclxuICAgICAgICAgICAgICAgICkudG9Qcm9taXNlKCkudGhlbihzdWNjZXNzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHN1Y2Nlc3MpO1xyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKDxCYXNpY1VzZXJJbmZvW10+W10pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
561
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxLQUFLLElBQUksTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd4RSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7O0FBRW5ELHFCQUFxQjtBQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFLakIsTUFB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QVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBekJRLFVBQVU7WUFDRSxRQUFRO1lBZ0JwQixtQkFBbUI7WUFKbkIsYUFBYTtZQVhiLFlBQVk7WUFnQlosY0FBYztZQUZkLHVCQUF1QjtZQVh2Qix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCAqIGFzIEpXVF8gZnJvbSAnand0LWRlY29kZSc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcmV0cnksIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwLWNvbnRleHQvYXBwbGljYXRpb24tY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tQ3R4Q29uc3RhbnRzIH0gZnJvbSAnLi4vY29uZmlncy9jb21wb25lbnQtY29udGV4dC5jb25zdGFudCc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XHJcbmltcG9ydCB7IEJhc2ljVXNlckluZm8gfSBmcm9tICcuLi9tb2RlbHMvYmFzaWMtdXNlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyLCBHcmlkSW5mbyB9IGZyb20gJy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBQYWdlT3B0aW9uQmFzZSB9IGZyb20gJy4uL21vZGVscy9wYWdlLW9wdGlvbic7XHJcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XHJcbmltcG9ydCB7IFRuVXNlciB9IGZyb20gJy4uL21vZGVscy90bi11c2VyJztcclxuaW1wb3J0IHsgQXV0aGVuU2VydmljZSB9IGZyb20gJy4vYXV0aGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4vY29tbW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFeGNlcHRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4vZXhjZXB0aW9uLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IFNpZ25hbFJTZXJ2aWNlIH0gZnJvbSAnLi9zaWduYWxyLnNlcnZpY2UnO1xyXG5cclxuLy8gZml4IGZvciBwcm9kIGJ1aWxkXHJcbmNvbnN0IEpXVCA9IEpXVF87XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xyXG4gICAgcmVhZG9ubHkgVVNFUl9JTkZPX0tFWSA9ICd1c2VyX2luZm8nO1xyXG4gICAgcmVhZG9ubHkgQ1VSUkVOVF9VU0VSX0tFWSA9ICdjdXJyZW50X3VzZXJfaW5mbyc7XHJcbiAgICByZWFkb25seSBSRVRSWV9DT1VOVDogbnVtYmVyID0gMDtcclxuICAgIHJlYWRvbmx5IFJFUExBWV9DT1VOVDogbnVtYmVyID0gMTA7XHJcbiAgICByZWFkb25seSBERUZBVUxUX0FWQVRBUl9NQUxFO1xyXG4gICAgcmVhZG9ubHkgREVGQVVMVF9BVkFUQVJfRkVNQUxFO1xyXG4gICAgcmVhZG9ubHkgb3JnYW5pemF0aW9uRW5kcG9pbnQ7XHJcbiAgICByZWFkb25seSBfbW9kdWxlQ29uZmlnOiBNb2R1bGVDb25maWc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfYXV0aGVuU2VydmljZTogQXV0aGVuU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9vYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9zaWduYWxyU2VydmljZTogU2lnbmFsUlNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZXhjZXB0aW9uSGFuZGxlclNlcnZpY2U6IEV4Y2VwdGlvbkhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2FwcGxpY2F0aW9uQ29udGV4dDogQXBwbGljYXRpb25Db250ZXh0U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaHR0cCwgaW5qZWN0b3IsIGAke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi51c2VyT3JnRW5kcG9pbnR9LyR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpVmVyc2lvbn0vdXNlcmApO1xyXG4gICAgICAgIHRoaXMuZW5kUG9pbnQgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4udXNlck9yZ0VuZHBvaW50O1xyXG5cclxuICAgICAgICB0aGlzLl9tb2R1bGVDb25maWcgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgPSB0aGlzLmdldFNlcnZpY2VVcmwoKTtcclxuICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbkVuZHBvaW50ID0gdGhpcy5nZXRTZXJ2aWNlVXJsKCk7XHJcblxyXG4gICAgICAgIHRoaXMuREVGQVVMVF9BVkFUQVJfTUFMRSA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLmRlZmF1bHRNYWxlQXZhdGFyO1xyXG4gICAgICAgIHRoaXMuREVGQVVMVF9BVkFUQVJfRkVNQUxFID0gdGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4uZGVmYXVsdEZlbWFsZUF2YXRhcjtcclxuXHJcbiAgICAgICAgY29uc3Qgcm9vdENvbnRleHRTdWIgPSB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQucm9vdENvbnRleHRMb2FkZWQuc3Vic2NyaWJlKHJzMSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyczEpIHtcclxuICAgICAgICAgICAgICAgIC8vIGJpbmRpbmcgZXZlbnQgdXNlciBjaGFuZ2VcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLnN1YnNjcmliZShDb21DdHhDb25zdGFudHMuUk9PVC5VU0VSX0lORk9fQ0hBTkdFRCwgcnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChycykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLkNVUlJFTlRfVVNFUl9LRVkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcHVsYXRlQ3VycmVudFVzZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByb290Q29udGV4dFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3NpZ25hbHJTZXJ2aWNlLnN0YXJ0KG51bGwsICdVU0VSX0lORk9fRURJVEVEJywgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlVXNlckluZm9DaGFuZ2UoZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZXJ2aWNlVXJsKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzVXNlT2xkT3JnYW5pemF0aW9uKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdXNlck9sZE9yZ2FuaXphdGlvbiA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcGlEb21haW4ub3JnYW5pemF0aW9uRW5kcG9pbnQ7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt1c2VyT2xkT3JnYW5pemF0aW9ufS91c2VyYDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCB1c2VyT3JnRW5kcG9pbnQgPSB0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuYXBpRG9tYWluLnVzZXJPcmdFbmRwb2ludDtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3VzZXJPcmdFbmRwb2ludH0vJHt0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuYXBpVmVyc2lvbn0vdXNlcmA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNVc2VPbGRPcmdhbml6YXRpb24oKSB7XHJcbiAgICAgICAgY29uc3QgdXNlT2xkT3JnYW5pemF0aW9uID0gdGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LnVzZU9sZE9yZ2FuaXphdGlvbjtcclxuICAgICAgICBpZiAodXNlT2xkT3JnYW5pemF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsV2l0aEluZm8oZmlsdGVyczogRmlsdGVyW10pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhQ3VzdG9tUm91dGUoJ1dpdGhJbmZvJywgZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGFnZVdpdGhJbmZvKGdyaWRJbmZvOiBHcmlkSW5mbykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEJ5R3JpZFJlcXVlc3QoZ3JpZEluZm8sICdXaXRoSW5mbycpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEluZm8oaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRHZXQoYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRJbmZvLyR7aWR9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW5mb0ZvcldvcmtmbG93KGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KGAke3RoaXMuc2VydmljZVVyaX0vR2V0SW5mb0ZvcldvcmtmbG93LyR7aWR9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2xhaW0oa2V5OiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBkZWNvZGVkID0gSldULmRlZmF1bHQodGhpcy5fb2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCkpO1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVkW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlVXNlckluZm9DaGFuZ2UoZGF0YSkge1xyXG4gICAgICAgIGxldCBkYXRhT2JqO1xyXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBkYXRhT2JqID0gSlNPTi5wYXJzZShkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaW5mb1VzZXIgPSBKU09OLnBhcnNlKGRhdGFPYmoubWVzc2FnZS5jb250ZW50KTtcclxuICAgICAgICBpZiAoaW5mb1VzZXIuSWQpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5VU0VSX0lORk9fS0VZICsgJ18nICsgaW5mb1VzZXIuSWQpO1xyXG4gICAgICAgICAgICB0aGlzLmdldEJhc2ljVXNlckluZm8oaW5mb1VzZXIuSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRGb3JBdXRvQ29tcGxldGUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRGb3JBdXRvQ29tcGxldGU/a2V5PSR7a2V5fWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxSZXNwb25zZVJlc3VsdD4oYXBpVXJsKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuX2V4Y2VwdGlvbkhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKVxyXG4gICAgICAgICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHBvcHVsYXRlQ3VycmVudFVzZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNVUlJFTlRfVVNFUl9LRVkpO1xyXG4gICAgICAgIGNvbnN0IHVzZXIgPSA8VG5Vc2VyPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIGlmICghdXNlci51c2VySWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2F1dGhlblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkNVUlJFTlRfVVNFUl9LRVksIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJhd1VzZXJJZCA9IHVzZXIudXNlcklkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXNlcklkID0gTnVtYmVyKHJhd1VzZXJJZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKHVzZXJJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLm9yaWdpbklkID0gdXNlci51c2VySWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdXNlci51c2VySWQgPSB1c2VyLmluc3RhbmNlaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DVVJSRU5UX1VTRVJfS0VZLCBKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25Db250ZXh0LmdldFJvb3RDb250ZXh0KCkuZGF0YS5jdXJyZW50VXNlciA9IHVzZXI7XHJcbiAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmZpcmVSZXBsYXlFdmVudChDb21DdHhDb25zdGFudHMuUk9PVC5VU0VSX0xPQURFRCwgdHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25Db250ZXh0LmdldFJvb3RDb250ZXh0KCkucmVwbGF5U3Vic2NyaWJlT25jZShDb21DdHhDb25zdGFudHMuUk9PVC5VU0VSX1JFQURZLCBycyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRoaXMuX29hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlZDogYW55ID0gSldULmRlZmF1bHQoYWNjZXNzVG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgLy8gQ2h1eeG7g24gxJHhu5VpIHNhbmcgZMO5bmcgaW5zdGFuY2VJZCBu4bq/dSDEkcSDbmcgbmjhuq1wIGLhurFuZyBpZGVudGl0eXY0IG5oxrBuZyBwaOG6o2kgc+G7rSBk4bulbmcgYmFzZSB1c2VyT3JndjVcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJhd1VzZXJJZCA9IGRlY29kZWQuc3ViO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXNlcklkID0gTnVtYmVyKHJhd1VzZXJJZCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlcklkUmVzdWx0ID0gJyc7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKHVzZXJJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB1c2VySWRSZXN1bHQgPSBkZWNvZGVkLmluc3RhbmNlaWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB1c2VySWRSZXN1bHQgPSByYXdVc2VySWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN0YWZmSW5mbyh1c2VySWRSZXN1bHQpLnRoZW4ocnMxID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VyID0gbmV3IFRuVXNlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyczEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5pc3N1cGVydXNlciA9IGRlY29kZWQuaXNzdXBlcnVzZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuaXNhZG1pbiA9IGRlY29kZWQuaXNhZG1pbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci51c2VySWQgPSB1c2VySWRSZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuZnVsbE5hbWUgPSBkZWNvZGVkLmZ1bGxuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLnVzZXJOYW1lID0gZGVjb2RlZC51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5tYUNhbkJvID0gZGVjb2RlZC5tYUNhbkJvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLm1hTmd1b2lIb2MgPSBkZWNvZGVkLm1hTmd1b2lIb2M7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuYXZhdGFyID0gcnMxLmF2YXRhcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5wb3NpdGlvbiA9IHJzMS5wb3NpdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5yb2xlID0gcnMxLnJvbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuZ2VuZGVyID0gcnMxLmdlbmRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5wb3NpdGlvbkNvZGUgPSByczEucG9zaXRpb25Db2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLmluc3RhbmNlaWQgPSBkZWNvZGVkLmluc3RhbmNlaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIuaWRDYW5CbyA9IGRlY29kZWQuaWRDYW5CbztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlci5vcmlnaW5JZCA9IGRlY29kZWQuc3ViO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyLmF2YXRhciB8fCB1c2VyLmF2YXRhciA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIuZ2VuZGVyID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyLmF2YXRhciA9IHRoaXMuREVGQVVMVF9BVkFUQVJfRkVNQUxFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyLmF2YXRhciA9IHRoaXMuREVGQVVMVF9BVkFUQVJfTUFMRTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkNVUlJFTlRfVVNFUl9LRVksIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25Db250ZXh0LmdldFJvb3RDb250ZXh0KCkuZGF0YS5jdXJyZW50VXNlciA9IHVzZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmZpcmVSZXBsYXlFdmVudChDb21DdHhDb25zdGFudHMuUk9PVC5VU0VSX0xPQURFRCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCBlcnIgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZmlsZUluZm8oKSB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncHJvZmlsZXMnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNLaG9hVmllbihpZExvYWlEb25WaSkge1xyXG4gICAgICAgIHJldHVybiBpZExvYWlEb25WaSA9PSAnMjAnIHx8IGlkTG9haURvblZpID09ICc2MCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNCb01vbihpZExvYWlEb25WaSkge1xyXG4gICAgICAgIHJldHVybiBpZExvYWlEb25WaSA9PSAnMjEnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEN1cnJlbnRVc2VyKCk6IFRuVXNlciB7XHJcbiAgICAgICAgcmV0dXJuIDxUblVzZXI+KHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmRhdGEuY3VycmVudFVzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJJZENvbWJpbmUoKSB7XHJcbiAgICAgICAgY29uc3QgcmF3VXNlcklkID0gdGhpcy5nZXRJZCgpO1xyXG4gICAgICAgIGNvbnN0IHVzZXJJZCA9IE51bWJlcihyYXdVc2VySWQpO1xyXG4gICAgICAgIGxldCB1c2VySWRSZXN1bHQgPSAnJztcclxuICAgICAgICBpZiAoIWlzTmFOKHVzZXJJZCkpIHtcclxuICAgICAgICAgICAgdXNlcklkUmVzdWx0ID0gdGhpcy5nZXRJbnN0YW5jZUlkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB1c2VySWRSZXN1bHQgPSByYXdVc2VySWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1c2VySWRSZXN1bHQudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGFmZkluZm8odXNlcklkKTogUHJvbWlzZTxUblVzZXI+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9LyR7dXNlcklkfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJlc3BvbnNlUmVzdWx0Pih1cmwpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSksXHJcbiAgICAgICAgICAgICAgICBtYXAocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wID0gPFRuVXNlcj57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxOYW1lOiBycy5kYXRhID8gcnMuZGF0YS5mdWxsTmFtZSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBycy5kYXRhID8gcnMuZGF0YS5yb2xlIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogcnMuZGF0YSA/IHJzLmRhdGEuYXZhdGFyIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdlbmRlcjogcnMuZGF0YSA/IHJzLmRhdGEuZ2VuZGVyIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25Db2RlOiBycy5kYXRhLnBvc2l0aW9uQ29kZSA/IHJzLmRhdGEucG9zaXRpb25Db2RlIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlaWQ6IHJzLmRhdGEuaW5zdGFuY2VpZFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3AuYXZhdGFyIHx8IG9wLmF2YXRhciA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AuZ2VuZGVyID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLmF2YXRhciA9IHRoaXMuREVGQVVMVF9BVkFUQVJfRkVNQUxFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AuYXZhdGFyID0gdGhpcy5ERUZBVUxUX0FWQVRBUl9NQUxFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3A7XHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldElkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNVUlJFTlRfVVNFUl9LRVkpO1xyXG4gICAgICAgIGNvbnN0IHVzZXIgPSA8VG5Vc2VyPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1c2VyLnVzZXJJZDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50VXNlcigpLnVzZXJJZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW5zdGFuY2VJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DVVJSRU5UX1VTRVJfS0VZKTtcclxuICAgICAgICBjb25zdCB1c2VyID0gPFRuVXNlcj5KU09OLnBhcnNlKHN0b3JhZ2VJdGVtKTtcclxuICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdXNlci5pbnN0YW5jZWlkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRVc2VyKCkuaW5zdGFuY2VpZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbmxpbmUoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vcmVnaXN0ZXJPbmxpbmVgO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PFJlc3BvbnNlUmVzdWx0PihhcGlVcmwsIGZvcm1EYXRhKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2ljVXNlckluZm8odXNlcklkOiBudW1iZXIpOiBQcm9taXNlPEJhc2ljVXNlckluZm8+IHtcclxuXHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlVTRVJfSU5GT19LRVkgKyAnXycgKyB1c2VySWQpO1xyXG4gICAgICAgIC8vIGNvbnN0IHVzZXJJbmZvcyA9IDxCYXNpY1VzZXJJbmZvW10+SlNPTi5wYXJzZShzdG9yYWdlSXRlbSk7XHJcbiAgICAgICAgLy8gY29uc3QgdXNlciA9IHVzZXJJbmZvcyA/IHVzZXJJbmZvcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdXNlcklkKSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IDxCYXNpY1VzZXJJbmZvPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZXNvbHZlKHVzZXIpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHVzZXJJZCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KDxCYXNpY1VzZXJJbmZvPnt9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJJZCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldEJhc2ljVXNlckluZm8/aWQ9JHt1c2VySWR9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2h0dHAuZ2V0PFJlc3BvbnNlUmVzdWx0PihzdlVybCkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSh0aGlzLlJFUExBWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnkodGhpcy5SRVRSWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHJlcHNvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSByZXNwb25zZSB0byBsb2NhbCBzdG9yYWdlIGhlcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZICsgJ18nICsgcmVwc29uc2UuZGF0YS5pZCwgSlNPTi5zdHJpbmdpZnkocmVwc29uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEJhc2ljVXNlckluZm8+cmVwc29uc2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoPEJhc2ljVXNlckluZm8+e30pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QmFzaWNVc2Vyc0luZm8odXNlcklkczogc3RyaW5nKTogUHJvbWlzZTxCYXNpY1VzZXJJbmZvW10+IHtcclxuICAgICAgICBpZiAoIXVzZXJJZHMgfHwgdXNlcklkcyA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoPEJhc2ljVXNlckluZm9bXT5bXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdG9yYWdlSXRlbSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVVNFUl9JTkZPX0tFWSk7XHJcbiAgICAgICAgY29uc3QgdXNlckluZm9zID0gPEJhc2ljVXNlckluZm9bXT5KU09OLnBhcnNlKHN0b3JhZ2VJdGVtKTtcclxuXHJcbiAgICAgICAgLy8gY29uc3QgdXNlcnMgPSB1c2VySW5mb3MgPyB1c2VySW5mb3MuZmlsdGVyKGl0ZW0gPT4gdXNlcklkcy5pbmRleE9mKGAsJHtpdGVtLmlkfSxgKSA+IC0xKSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgY2hlY2sgPSB1c2VySW5mb3MgPyB1c2VySWRzLmluZGV4T2YodXNlckluZm9zWydpZCddKSA+IC0xIDogbnVsbDtcclxuICAgICAgICBpZiAoY2hlY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlc29sdmUodXNlckluZm9zKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN2VXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRCYXNpY1VzZXJzSW5mbz91c2VySWRzPSR7dXNlcklkc31gO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHN2VXJsKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KHRoaXMuUkVQTEFZX0NPVU5UKSxcclxuICAgICAgICAgICAgICAgICAgICByZXRyeSh0aGlzLlJFVFJZX0NPVU5UKSxcclxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSxcclxuICAgICAgICAgICAgICAgICAgICBtYXAocmVwc29uc2UgPT4gPEJhc2ljVXNlckluZm9bXT5yZXBzb25zZS5kYXRhKVxyXG4gICAgICAgICAgICAgICAgKS50b1Byb21pc2UoKS50aGVuKHN1Y2Nlc3MgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoc3VjY2Vzcyk7XHJcbiAgICAgICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoPEJhc2ljVXNlckluZm9bXT5bXSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2ljVXNlckluZm9CeVVzZXJOYW1lKHVzZXJOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJhc2ljVXNlckluZm8+IHtcclxuICAgICAgICBjb25zdCBzdG9yYWdlSXRlbSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVVNFUl9JTkZPX0tFWSArICdfJyArIHVzZXJOYW1lKTtcclxuICAgICAgICBjb25zdCB1c2VyID0gPEJhc2ljVXNlckluZm8+SlNPTi5wYXJzZShzdG9yYWdlSXRlbSk7XHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlc29sdmUodXNlcikpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodXNlck5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoPEJhc2ljVXNlckluZm8+e30pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXNlck5hbWUgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldEJhc2ljVXNlckluZm9CeVVzZXJOYW1lP3VzZXJOYW1lPSR7dXNlck5hbWV9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faHR0cC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHN2VXJsKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVSZXBsYXkodGhpcy5SRVBMQVlfQ09VTlQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnkodGhpcy5SRVRSWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAocmVwc29uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgcmVzcG9uc2UgdG8gbG9jYWwgc3RvcmFnZSBoZXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZICsgJ18nICsgcmVwc29uc2UuZGF0YS51c2VyTmFtZSwgSlNPTi5zdHJpbmdpZnkocmVwc29uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QmFzaWNVc2VySW5mbz5yZXBzb25zZS5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkudG9Qcm9taXNlKCkudGhlbihyc3MgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocnNzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVycnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoPGFueT57fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRCYXNpY1VzZXJzSW5mb0J5VXNlck5hbWUodXNlck5hbWVzOiBzdHJpbmcpOiBQcm9taXNlPEJhc2ljVXNlckluZm9bXT4ge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZKTtcclxuICAgICAgICBjb25zdCB1c2VySW5mb3MgPSA8QmFzaWNVc2VySW5mb1tdPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG4gICAgICAgIGNvbnN0IGNoZWNrID0gdXNlckluZm9zID8gdXNlck5hbWVzLmluZGV4T2YodXNlckluZm9zWyd1c2VyTmFtZSddKSA+IC0xIDogbnVsbDtcclxuICAgICAgICBpZiAoY2hlY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlc29sdmUodXNlckluZm9zKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN2VXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRCYXNpY1VzZXJzSW5mb0J5VXNlck5hbWU/dXNlck5hbWVzPSR7dXNlck5hbWVzfWA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9odHRwLmdldDxSZXNwb25zZVJlc3VsdD4oc3ZVcmwpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgc2hhcmVSZXBsYXkodGhpcy5SRVBMQVlfQ09VTlQpLFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHJ5KHRoaXMuUkVUUllfQ09VTlQpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcChyZXBzb25zZSA9PiA8QmFzaWNVc2VySW5mb1tdPnJlcHNvbnNlLmRhdGEpXHJcbiAgICAgICAgICAgICAgICApLnRvUHJvbWlzZSgpLnRoZW4oc3VjY2VzcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShzdWNjZXNzKTtcclxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShbXSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRMaXN0VXNlcklkVG9TdHJpbmcodXNlcklkczogbnVtYmVyW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh1c2VySWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAsJHt1c2VySWRzLmpvaW4oJywnKX0sYDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcsJztcclxuICAgIH1cclxuXHJcbiAgICBmaWxsQmFzaWNVc2VySW5mbyhkYXRhU291cmNlOiBhbnlbXSwgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHVzZXJzOiBCYXNpY1VzZXJJbmZvW10pOiBhbnlbXSB7XHJcbiAgICAgICAgZGF0YVNvdXJjZS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB1c2VySWQgPSBpdGVtW3Byb3BlcnR5TmFtZV0uaWQgPyBpdGVtW3Byb3BlcnR5TmFtZV0uaWQgOiBpdGVtW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1zaGFkb3dlZC12YXJpYWJsZVxyXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gdXNlcnMuZmluZCh1c2VyID0+IHVzZXIuaWQgPT09IHVzZXJJZCk7XHJcbiAgICAgICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtW3Byb3BlcnR5TmFtZV0gPSB1c2VyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhU291cmNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICByZXN0b3JlUGFzc3dvcmQoaXRlbTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFJlc3BvbnNlUmVzdWx0PihgJHt0aGlzLnNlcnZpY2VVcml9L3Jlc3RvcmVQYXNzd29yZGAsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlUGFzc3dvcmQodXNlcklkOiBzdHJpbmcsIGl0ZW06IGFueSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuXHJcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9DaGFuZ2VQYXNzd29yZGA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KGFwaVVybCwgaXRlbSlcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNldFBhc3N3b3JkKGl0ZW06IGFueSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuXHJcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9yZXNldFBhc3N3b3JkYDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucHV0PFJlc3BvbnNlUmVzdWx0PihhcGlVcmwsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgR2V0c0J5TWFuYWdlcklkQXJyYXlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0TG93ZXJTdGFmZnNCeVVzZXJJZD91c2VySWQ9JHtpZH1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRHZXQoYXBpVXJsKTtcclxuICAgIH1cclxuXHJcbiAgICBtYXJrQXNBZG1pbih1c2VySWQ6IG51bWJlciwgaXNBZG1pbjogYm9vbGVhbikge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vbWFya0FzQWRtaW4vJHt1c2VySWR9LyR7aXNBZG1pbn1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5wdXQ8UmVzcG9uc2VSZXN1bHQ+KHVybCwgaXNBZG1pbilcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBtYXJrQXNSZXByZXNlbnQodXNlcklkOiBudW1iZXIsIGlzUmVwcmVzZW50OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L21hcmtBc1JlcHJlc2VudC8ke3VzZXJJZH0vJHtpc1JlcHJlc2VudH1gO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucHV0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIGlzUmVwcmVzZW50KVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG4gICAgZ2V0c0J5T3JnYW5pemF0aW9uTGlzdElkKHBhZ2VPcHRpb246IFBhZ2VPcHRpb25CYXNlLCBmdW5HZXROYW1lOiBzdHJpbmcgPSAnJywgb3B0aW9uUGFyYW1ldGVyOiBzdHJpbmcgPSAnJywgZGVmYXVsdFBhcmFtZXRlcjogc3RyaW5nID0gJycpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcblxyXG4gICAgICAgIGxldCBxdWVyeVN0cmluZyA9IGA/a2V5PSR7cGFnZU9wdGlvbi5xdWVyeX1gO1xyXG5cclxuICAgICAgICBpZiAoIXBhZ2VPcHRpb24ub2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIHBhZ2VPcHRpb24ub2Zmc2V0ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHF1ZXJ5U3RyaW5nICs9IGAmb2Zmc2V0PSR7cGFnZU9wdGlvbi5vZmZzZXR9YDtcclxuXHJcblxyXG4gICAgICAgIGlmICghcGFnZU9wdGlvbi5saW1pdCkge1xyXG4gICAgICAgICAgICBwYWdlT3B0aW9uLmxpbWl0ID0gdGhpcy5MSU1JVF9ERUZBVUxUO1xyXG4gICAgICAgIH1cclxuICAgICAgICBxdWVyeVN0cmluZyArPSBgJmxpbWl0PSR7cGFnZU9wdGlvbi5saW1pdCArIDF9YDtcclxuXHJcblxyXG4gICAgICAgIGlmIChwYWdlT3B0aW9uLnNvcnRGaWVsZCkge1xyXG4gICAgICAgICAgICBxdWVyeVN0cmluZyArPSBgJnNvcnRGaWVsZD0ke3BhZ2VPcHRpb24uc29ydEZpZWxkfSZpc0FzYz0ke3BhZ2VPcHRpb24uaXNBc2N9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbWV0ZXIgIT0gJycpIHtcclxuICAgICAgICAgICAgcXVlcnlTdHJpbmcgKz0gYCYke2RlZmF1bHRQYXJhbWV0ZXJ9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9wdGlvblBhcmFtZXRlciAhPSAnJykge1xyXG4gICAgICAgICAgICBxdWVyeVN0cmluZyArPSBgJiR7b3B0aW9uUGFyYW1ldGVyfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMub3JnYW5pemF0aW9uRW5kcG9pbnR9JHtmdW5HZXROYW1lfSR7cXVlcnlTdHJpbmd9YDtcclxuICAgICAgICBpZiAocGFnZU9wdGlvbi5pc0lnbm9yZUNsaWVudENhY2hlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldElnbm9yZUNsaWVudENhY2hlKGFwaVVybCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KGFwaVVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0c0J5T3JnYW5pemF0aW9uSWQob3JnYW5pemF0aW9uSWQ6IHN0cmluZywga2V5d29yZD86IHN0cmluZywgb2Zmc2V0PzogbnVtYmVyLCBsaW1pdD86IG51bWJlcik6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuXHJcbiAgICAgICAgaWYgKCFrZXl3b3JkKSB7XHJcbiAgICAgICAgICAgIGtleXdvcmQgPSAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghb2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIG9mZnNldCA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIW9mZnNldCkge1xyXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsaW1pdCkge1xyXG4gICAgICAgICAgICBsaW1pdCA9IDEwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9HZXRzQnlPcmdhbml6YXRpb25JZGBcclxuICAgICAgICAgICAgKyBgP29yZ2FuaXphdGlvbklkPSR7b3JnYW5pemF0aW9uSWR9YFxyXG4gICAgICAgICAgICArIGAma2V5d29yZD0ke2tleXdvcmR9YFxyXG4gICAgICAgICAgICArIGAmb2Zmc2V0PSR7b2Zmc2V0fWBcclxuICAgICAgICAgICAgKyBgJmxpbWl0PSR7bGltaXR9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KGFwaVVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGVmYXVsdEF2YXRhcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ERUZBVUxUX0FWQVRBUl9NQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVycm9yKGVycm9yOiBhbnksIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIGNvbnN0IGNvbW1vblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ29tbW9uU2VydmljZSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyb3IsIGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2NrVXNlcihpdGVtOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcblxyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vbG9ja1VzZXJBY2NvdW50YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4oYXBpVXJsLCBpdGVtKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHVubG9ja1VzZXIoaXRlbTogYW55KTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG5cclxuICAgICAgICBjb25zdCBhcGlVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L3VubG9ja1VzZXJBY2NvdW50YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4oYXBpVXJsLCBpdGVtKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU3VwZXJVc2VyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQuZ2V0Um9vdENvbnRleHQoKS5kYXRhLmN1cnJlbnRVc2VyXHJcbiAgICAgICAgICAgICYmIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmRhdGEuY3VycmVudFVzZXIuaXNzdXBlcnVzZXIgPT09ICdUcnVlJztcclxuICAgIH1cclxuXHJcbiAgICBpc0FkbWluKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvbkNvbnRleHQuZ2V0Um9vdENvbnRleHQoKS5kYXRhLmN1cnJlbnRVc2VyXHJcbiAgICAgICAgICAgICYmIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5nZXRSb290Q29udGV4dCgpLmRhdGEuY3VycmVudFVzZXIuaXNhZG1pbiA9PT0gJ1RydWUnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVmFsaWRBY2Nlc3NUb2tlbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVc2Vyc0J5R3JvdXBDb2RlKGdyb3VwQ29kZTogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0VXNlcnNCeUdyb3VwQ29kZT9ncm91cENvZGU9JHtncm91cENvZGV9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KGFwaVVybClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9leGNlcHRpb25IYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSlcclxuICAgICAgICAgICAgKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTZXJ2aWNlRW5kcG9pbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZVVyaX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2luaFZpZW5BY2NvdW50KCkge1xyXG4gICAgICAgIGNvbnN0IHVzZXJMb2dpbiA9IHRoaXMuZ2V0Q3VycmVudFVzZXIoKTtcclxuICAgICAgICBpZiAodXNlckxvZ2luKSB7XHJcbiAgICAgICAgICAgIGlmICh1c2VyTG9naW4ubWFOZ3VvaUhvYykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBhZ2VVc2VySW5mbyh1c2VySWRzOiBzdHJpbmcpOiBQcm9taXNlPEJhc2ljVXNlckluZm9bXT4ge1xyXG4gICAgICAgIGlmICghdXNlcklkcyB8fCB1c2VySWRzID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSg8QmFzaWNVc2VySW5mb1tdPltdKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0lORk9fS0VZKTtcclxuICAgICAgICBjb25zdCB1c2VySW5mb3MgPSA8QmFzaWNVc2VySW5mb1tdPkpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pO1xyXG5cclxuICAgICAgICAvLyBjb25zdCB1c2VycyA9IHVzZXJJbmZvcyA/IHVzZXJJbmZvcy5maWx0ZXIoaXRlbSA9PiB1c2VySWRzLmluZGV4T2YoYCwke2l0ZW0uaWR9LGApID4gLTEpIDogbnVsbDtcclxuICAgICAgICBjb25zdCBjaGVjayA9IHVzZXJJbmZvcyA/IHVzZXJJZHMuaW5kZXhPZih1c2VySW5mb3NbJ2lkJ10pID4gLTEgOiBudWxsO1xyXG4gICAgICAgIGlmIChjaGVjaykge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gcmVzb2x2ZSh1c2VySW5mb3MpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ZVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldFBhZ2VkYDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1GaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdpZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6ICdpbicsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVzZXJJZHNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goaXRlbUZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBncmlkSW5mbyA9IG5ldyBHcmlkSW5mbyh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBwYWdlSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogMTAwMDBcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNvcnRzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9odHRwLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHN2VXJsLCBncmlkSW5mbykucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSh0aGlzLlJFUExBWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0cnkodGhpcy5SRVRSWV9DT1VOVCksXHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSksXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlcHNvbnNlID0+IDxCYXNpY1VzZXJJbmZvW10+cmVwc29uc2UuZGF0YSlcclxuICAgICAgICAgICAgICAgICkudG9Qcm9taXNlKCkudGhlbihzdWNjZXNzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHN1Y2Nlc3MpO1xyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKDxCYXNpY1VzZXJJbmZvW10+W10pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2015/tnx-shared.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './public-api';
|
|
5
|
-
export { AccessDeniedV1Component as
|
|
6
|
-
export { AddNewsComponent as
|
|
5
|
+
export { AccessDeniedV1Component as ɵdo } from './components/access-denied-component/access-denied-v1/access-denied-v1.component';
|
|
6
|
+
export { AddNewsComponent as ɵdp } from './components/add-news/add-news.component';
|
|
7
7
|
export { AddressComponent as ɵa } from './components/address/address.component';
|
|
8
8
|
export { AfterViewCheckedComponent as ɵf } from './components/after-view-checked/after-view-checked.component';
|
|
9
9
|
export { AutoCompletePickerComponent as ɵo } from './components/autocomplete-picker/autocomplete-picker.component';
|
|
@@ -19,7 +19,7 @@ export { CongViecPickerComponent as ɵbp } from './components/congviec-picker/co
|
|
|
19
19
|
export { CongViecService as ɵbq } from './components/congviec-picker/services/congviec.service';
|
|
20
20
|
export { TaskWorkflowHistoriesService as ɵbr } from './components/congviec-picker/services/taskworkflowhistories.service';
|
|
21
21
|
export { AdvanceSearchComponent as ɵg } from './components/crud/advance-search/advance-search.component';
|
|
22
|
-
export { CheckReadyComponent as
|
|
22
|
+
export { CheckReadyComponent as ɵdt } from './components/crud/check-ready/check-ready.component';
|
|
23
23
|
export { TableDetailFormComponent as ɵcq } from './components/crud/table-detail-form/table-detail-form.component';
|
|
24
24
|
export { DatetimePickerRangeComponent as ɵt } from './components/datetime-picker-range/datetime-picker-range.component';
|
|
25
25
|
export { DatetimePickerComponent as ɵs } from './components/datetime-picker/datetime-picker.component';
|
|
@@ -33,17 +33,15 @@ export { EntityPickerSelectedComponent as ɵx } from './components/entity-picker
|
|
|
33
33
|
export { EntityPickerDialogComponent as ɵz } from './components/entity-picker/entity-picker-dialog/entity-picker-dialog.component';
|
|
34
34
|
export { EntityPickerComponent as ɵy } from './components/entity-picker/entity-picker.component';
|
|
35
35
|
export { EquationEditorComponent as ɵbe } from './components/equation-editor/equation-editor.component';
|
|
36
|
-
export { FileFormComponent as
|
|
37
|
-
export { FileVersionListComponent as
|
|
38
|
-
export { FileViewerComponent as
|
|
39
|
-
export { FolderFormComponent as
|
|
40
|
-
export {
|
|
41
|
-
export { FileVersionService as ɵdd } from './components/file-explorer/services/file-version.service';
|
|
42
|
-
export { MyDriveService as ɵdc } from './components/file-explorer/services/my-drive.service';
|
|
36
|
+
export { FileFormComponent as ɵdd } from './components/file-explorer/file-form/file-form.component';
|
|
37
|
+
export { FileVersionListComponent as ɵdf } from './components/file-explorer/file-version-list/file-version-list.component';
|
|
38
|
+
export { FileViewerComponent as ɵde } from './components/file-explorer/file-viewer/file-viewer.component';
|
|
39
|
+
export { FolderFormComponent as ɵdc } from './components/file-explorer/folder-form/folder-form.component';
|
|
40
|
+
export { SignatureDetailComponent as ɵds } from './components/file-explorer/signature-detail/signature-detail.component';
|
|
43
41
|
export { MaskComponent as ɵbf } from './components/mask/mask.component';
|
|
44
42
|
export { NumberPickerRangeComponent as ɵbg } from './components/number-picker-range/number-picker-range.component';
|
|
45
43
|
export { PagingNextBackOnlyComponent as ɵbh } from './components/paging-next-back-only/paging-next-back-only.component';
|
|
46
|
-
export { QrCodeGeneratorComponent as
|
|
44
|
+
export { QrCodeGeneratorComponent as ɵdn } from './components/qr-code-generator/qr-code-generator.component';
|
|
47
45
|
export { DM_ChucVuService as ɵbb } from './components/query-builders/services/dm-chucvu.service';
|
|
48
46
|
export { RadioButtonListComponent as ɵbi } from './components/radio-button-list/radio-button-list.component';
|
|
49
47
|
export { ReportQueueComponent as ɵq } from './components/report-queue/report-queue.component';
|
|
@@ -81,27 +79,27 @@ export { ProcessWorkflowFormComponent as ɵbx } from './components/workflow/proc
|
|
|
81
79
|
export { ProcessWorkflowTargetComponent as ɵbz } from './components/workflow/process-workflow-target/process-workflow-target.component';
|
|
82
80
|
export { CanBo_HoSoService as ɵe } from './components/workflow/services/canbo-hoso.service';
|
|
83
81
|
export { DmLoaiCongViecService as ɵcl } from './components/workflow/services/dm-loai-congviec.service';
|
|
84
|
-
export { EntityWorkflowHistoryService as
|
|
85
|
-
export { EntityWorkflowSettingService as
|
|
82
|
+
export { EntityWorkflowHistoryService as ɵdh } from './components/workflow/services/entity-workflow-history.service';
|
|
83
|
+
export { EntityWorkflowSettingService as ɵdl } from './components/workflow/services/entity-workflow-setting.service';
|
|
86
84
|
export { WorkflowHistoryService as ɵby } from './components/workflow/services/workflow-history.service';
|
|
87
85
|
export { WorkflowSettingsService as ɵcj } from './components/workflow/services/workflow-settings.service';
|
|
88
86
|
export { SimpleWorkflowFormComponent as ɵbw } from './components/workflow/simple-workflow-form/simple-workflow-form.component';
|
|
89
87
|
export { StartWorkflowComponent as ɵci } from './components/workflow/start-workflow/start-workflow.component';
|
|
90
|
-
export { WorkflowHistoryDialogComponent as
|
|
91
|
-
export { WorkflowHistoryNewComponent as
|
|
92
|
-
export { WorkflowHistoryComponent as
|
|
93
|
-
export { WorkflowSettingDialogComponent as
|
|
88
|
+
export { WorkflowHistoryDialogComponent as ɵdi } from './components/workflow/workflow-history-dialog/workflow-history-dialog.component';
|
|
89
|
+
export { WorkflowHistoryNewComponent as ɵdj } from './components/workflow/workflow-history-new/workflow-history-new.component';
|
|
90
|
+
export { WorkflowHistoryComponent as ɵdg } from './components/workflow/workflow-history/workflow-history.component';
|
|
91
|
+
export { WorkflowSettingDialogComponent as ɵdm } from './components/workflow/workflow-setting-dialog/workflow-setting-dialog.component';
|
|
94
92
|
export { WorkflowSettingNewComponent as ɵck } from './components/workflow/workflow-setting-new/workflow-setting-new.component';
|
|
95
|
-
export { WorkflowSettingComponent as
|
|
93
|
+
export { WorkflowSettingComponent as ɵdk } from './components/workflow/workflow-setting/workflow-setting.component';
|
|
96
94
|
export { PreventShiftTabDirective as ɵcu } from './directives/prevent-shift-tab.directive';
|
|
97
|
-
export { LogInterceptor as
|
|
98
|
-
export { PermissionUtilsInterceptor as
|
|
99
|
-
export { SendAccessTokenInterceptor as
|
|
95
|
+
export { LogInterceptor as ɵdv } from './intercepters/log.interceptor';
|
|
96
|
+
export { PermissionUtilsInterceptor as ɵdw } from './intercepters/permission-utils.interceptor';
|
|
97
|
+
export { SendAccessTokenInterceptor as ɵdu } from './intercepters/send-access-token.interceptor';
|
|
100
98
|
export { FileIconPipe as ɵcr } from './pipes/file-icon.pipe';
|
|
101
99
|
export { FileSizePipe as ɵcs } from './pipes/file-size.pipe';
|
|
102
|
-
export { ArticleService as
|
|
100
|
+
export { ArticleService as ɵdq } from './services/article.service';
|
|
103
101
|
export { EntityPickerService as ɵc } from './services/entity-picker.service';
|
|
104
102
|
export { ExceptionHandlerService as ɵd } from './services/exception-handler.service';
|
|
105
|
-
export { NewsCategoryService as
|
|
103
|
+
export { NewsCategoryService as ɵdr } from './services/newscategory.service';
|
|
106
104
|
export { RoleService as ɵbc } from './services/role.service';
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG54LXNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJ0bngtc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEdBQUcsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ2hJLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxHQUFHLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFDLDhCQUE4QixJQUFJLEVBQUUsRUFBQyxNQUFNLG9GQUFvRixDQUFDO0FBQ3hJLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDbkgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDdEgsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDdEcsT0FBTyxFQUFDLGVBQWUsSUFBSSxHQUFHLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUMsNEJBQTRCLElBQUksR0FBRyxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDaEgsT0FBTyxFQUFDLDRCQUE0QixJQUFJLEVBQUUsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3RILE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUMscUJBQXFCLElBQUksR0FBRyxFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUMseUJBQXlCLElBQUksR0FBRyxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDNUcsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEdBQUcsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQUN4SCxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sNEdBQTRHLENBQUM7QUFDM0osT0FBTyxFQUFDLDZCQUE2QixJQUFJLEVBQUUsRUFBQyxNQUFNLG9IQUFvSCxDQUFDO0FBQ3ZLLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUNqSSxPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDL0YsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEdBQUcsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUNsRyxPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFDekgsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEdBQUcsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUN4RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksR0FBRyxFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDNUcsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEdBQUcsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxjQUFjLElBQUksR0FBRyxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDM0YsT0FBTyxFQUFDLGFBQWEsSUFBSSxHQUFHLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsMEJBQTBCLElBQUksR0FBRyxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDakgsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3RILE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxHQUFHLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDL0YsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEdBQUcsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQzNHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUMsb0JBQW9CLElBQUksR0FBRyxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDdEcsT0FBTyxFQUFDLDRCQUE0QixJQUFJLEdBQUcsRUFBQyxNQUFNLCtGQUErRixDQUFDO0FBQ2xKLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSxHQUFHLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUNySCxPQUFPLEVBQUMsaUJBQWlCLElBQUksR0FBRyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLGlGQUFpRixDQUFDO0FBQ2xJLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUNsSSxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFDLGtEQUFrRCxJQUFJLEdBQUcsRUFBQyxNQUFNLGdJQUFnSSxDQUFDO0FBQ3pNLE9BQU8sRUFBQyw2Q0FBNkMsSUFBSSxHQUFHLEVBQUMsTUFBTSxzSEFBc0gsQ0FBQztBQUMxTCxPQUFPLEVBQUMsNENBQTRDLElBQUksR0FBRyxFQUFDLE1BQU0sb0hBQW9ILENBQUM7QUFDdkwsT0FBTyxFQUFDLDRDQUE0QyxJQUFJLEdBQUcsRUFBQyxNQUFNLG9IQUFvSCxDQUFDO0FBQ3ZMLE9BQU8sRUFBQyx3Q0FBd0MsSUFBSSxHQUFHLEVBQUMsTUFBTSwwR0FBMEcsQ0FBQztBQUN6SyxPQUFPLEVBQUMsc0NBQXNDLElBQUksR0FBRyxFQUFDLE1BQU0sc0dBQXNHLENBQUM7QUFDbkssT0FBTyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLDRFQUE0RSxDQUFDO0FBQzdILE9BQU8sRUFBQyxlQUFlLElBQUksR0FBRyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEdBQUcsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyw4QkFBOEIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4RkFBOEYsQ0FBQztBQUNuSixPQUFPLEVBQUMsMEJBQTBCLElBQUksR0FBRyxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDakgsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEdBQUcsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLElBQUksR0FBRyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEdBQUcsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNqSCxPQUFPLEVBQUMsbUJBQW1CLElBQUksR0FBRyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEdBQUcsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxlQUFlLElBQUksR0FBRyxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEdBQUcsRUFBQyxNQUFNLDBFQUEwRSxDQUFDO0FBQ3pILE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxHQUFHLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUN0SCxPQUFPLEVBQUMsMkJBQTJCLElBQUksR0FBRyxFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFDbEksT0FBTyxFQUFDLHFCQUFxQixJQUFJLEdBQUcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyw0QkFBNEIsSUFBSSxHQUFHLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUNoSSxPQUFPLEVBQUMsOEJBQThCLElBQUksR0FBRyxFQUFDLE1BQU0saUZBQWlGLENBQUM7QUFDdEksT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxHQUFHLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsNEJBQTRCLElBQUksR0FBRyxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDbkgsT0FBTyxFQUFDLDRCQUE0QixJQUFJLEdBQUcsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxHQUFHLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDeEcsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQzdILE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxHQUFHLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUM1RyxPQUFPLEVBQUMsOEJBQThCLElBQUksR0FBRyxFQUFDLE1BQU0saUZBQWlGLENBQUM7QUFDdEksT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQzdILE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUNsSCxPQUFPLEVBQUMsOEJBQThCLElBQUksR0FBRyxFQUFDLE1BQU0saUZBQWlGLENBQUM7QUFDdEksT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQzdILE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUNsSCxPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDekYsT0FBTyxFQUFDLGNBQWMsSUFBSSxHQUFHLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsMEJBQTBCLElBQUksR0FBRyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDOUYsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQy9GLE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksSUFBSSxHQUFHLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEdBQUcsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxXQUFXLElBQUksR0FBRyxFQUFDLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWNjZXNzRGVuaWVkVjFDb21wb25lbnQgYXMgybVkcn0gZnJvbSAnLi9jb21wb25lbnRzL2FjY2Vzcy1kZW5pZWQtY29tcG9uZW50L2FjY2Vzcy1kZW5pZWQtdjEvYWNjZXNzLWRlbmllZC12MS5jb21wb25lbnQnO1xuZXhwb3J0IHtBZGROZXdzQ29tcG9uZW50IGFzIMm1ZHN9IGZyb20gJy4vY29tcG9uZW50cy9hZGQtbmV3cy9hZGQtbmV3cy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZGRyZXNzQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9jb21wb25lbnRzL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZnRlclZpZXdDaGVja2VkQ29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9jb21wb25lbnRzL2FmdGVyLXZpZXctY2hlY2tlZC9hZnRlci12aWV3LWNoZWNrZWQuY29tcG9uZW50JztcbmV4cG9ydCB7QXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50IGFzIMm1b30gZnJvbSAnLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtDaGVja0JveExpc3RDb21wb25lbnQgYXMgybVwfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2stYm94LWxpc3QvY2hlY2stYm94LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCB7Q29DYXVUb0NodWNQaWNrZXJMaXN0Q29tcG9uZW50IGFzIMm1cn0gZnJvbSAnLi9jb21wb25lbnRzL2NvY2F1dG9jaHVjL2NvY2F1dG9jaHVjLXBpY2tlci1saXN0L2NvY2F1dG9jaHVjLXBpY2tlci1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0FwcFJvb3RNZW51Q29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbW1vbi1hcHAtY29tcG9uZW50L2FwcC1yb290LW1lbnUvYXBwLXJvb3QtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBUb3BCYXJWMUNvbXBvbmVudCBhcyDJtWp9IGZyb20gJy4vY29tcG9uZW50cy9jb21tb24tYXBwLWNvbXBvbmVudC9hcHAtdG9wYmFyLXYxL2FwcC10b3BiYXItdjEuY29tcG9uZW50JztcbmV4cG9ydCB7QXBwVG9wQmFyVjJDb21wb25lbnQgYXMgybVrfSBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uLWFwcC1jb21wb25lbnQvYXBwLXRvcGJhci12Mi9hcHAtdG9wYmFyLXYyLmNvbXBvbmVudCc7XG5leHBvcnQge0FwcE1lbnVDb21wb25lbnQgYXMgybVuLEFwcFN1Yk1lbnVDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uLWFwcC1jb21wb25lbnQvYXBwLm1lbnUuY29tcG9uZW50JztcbmV4cG9ydCB7QXBwUHJvZmlsZUNvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vY29tcG9uZW50cy9jb21tb24tYXBwLWNvbXBvbmVudC9hcHAucHJvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBUb3BCYXJDb21wb25lbnQgYXMgybVpfSBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uLWFwcC1jb21wb25lbnQvYXBwLnRvcGJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25nVmllY1BpY2tlckNvbXBvbmVudCBhcyDJtWJwfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZ3ZpZWMtcGlja2VyL2Nvbmd2aWVjLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25nVmllY1NlcnZpY2UgYXMgybVicX0gZnJvbSAnLi9jb21wb25lbnRzL2Nvbmd2aWVjLXBpY2tlci9zZXJ2aWNlcy9jb25ndmllYy5zZXJ2aWNlJztcbmV4cG9ydCB7VGFza1dvcmtmbG93SGlzdG9yaWVzU2VydmljZSBhcyDJtWJyfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZ3ZpZWMtcGlja2VyL3NlcnZpY2VzL3Rhc2t3b3JrZmxvd2hpc3Rvcmllcy5zZXJ2aWNlJztcbmV4cG9ydCB7QWR2YW5jZVNlYXJjaENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vY29tcG9uZW50cy9jcnVkL2FkdmFuY2Utc2VhcmNoL2FkdmFuY2Utc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQge0NoZWNrUmVhZHlDb21wb25lbnQgYXMgybVkdn0gZnJvbSAnLi9jb21wb25lbnRzL2NydWQvY2hlY2stcmVhZHkvY2hlY2stcmVhZHkuY29tcG9uZW50JztcbmV4cG9ydCB7VGFibGVEZXRhaWxGb3JtQ29tcG9uZW50IGFzIMm1Y3F9IGZyb20gJy4vY29tcG9uZW50cy9jcnVkL3RhYmxlLWRldGFpbC1mb3JtL3RhYmxlLWRldGFpbC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQge0RhdGV0aW1lUGlja2VyUmFuZ2VDb21wb25lbnQgYXMgybV0fSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyLXJhbmdlL2RhdGV0aW1lLXBpY2tlci1yYW5nZS5jb21wb25lbnQnO1xuZXhwb3J0IHtEYXRldGltZVBpY2tlckNvbXBvbmVudCBhcyDJtXN9IGZyb20gJy4vY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge1F1aWNrQWRkRm9ybUNvbXBvbmVudCBhcyDJtWN0fSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24vcXVpY2stYWRkLWZvcm0vcXVpY2stYWRkLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCB7RHJvcGRvd25TZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duL3NlcnZpY2VzL2Ryb3Bkb3duLnNlcnZpY2UnO1xuZXhwb3J0IHtFbnRpdHlQZXJtaXNzaW9uQ29tcG9uZW50IGFzIMm1YmF9IGZyb20gJy4vY29tcG9uZW50cy9lbnRpdHktcGVybWlzc2lvbi9lbnRpdHktcGVybWlzc2lvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtFbnRpdHlQZXJtaXNzaW9uU2VydmljZSBhcyDJtWJkfSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBlcm1pc3Npb24vc2VydmljZXMuY3MvZW50aXR5LXBlcm1pc3Npb24uc2VydmljZSc7XG5leHBvcnQge0VudGl0eVBpY2tlckJveENvbXBvbmVudCBhcyDJtXZ9IGZyb20gJy4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItYm94L2VudGl0eS1waWNrZXItYm94LmNvbXBvbmVudCc7XG5leHBvcnQge0VudGl0eVBpY2tlckRhdGFDb21wb25lbnQgYXMgybV3fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItZGF0YS9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50JztcbmV4cG9ydCB7RW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgYXMgybV4fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbnRpdHlQaWNrZXJEaWFsb2dDb21wb25lbnQgYXMgybV6fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9lbnRpdHktcGlja2VyLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0IHtFbnRpdHlQaWNrZXJDb21wb25lbnQgYXMgybV5fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge0VxdWF0aW9uRWRpdG9yQ29tcG9uZW50IGFzIMm1YmV9IGZyb20gJy4vY29tcG9uZW50cy9lcXVhdGlvbi1lZGl0b3IvZXF1YXRpb24tZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVGb3JtQ29tcG9uZW50IGFzIMm1ZGd9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL2ZpbGUtZm9ybS9maWxlLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVZlcnNpb25MaXN0Q29tcG9uZW50IGFzIMm1ZGl9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL2ZpbGUtdmVyc2lvbi1saXN0L2ZpbGUtdmVyc2lvbi1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVWaWV3ZXJDb21wb25lbnQgYXMgybVkaH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7Rm9sZGVyRm9ybUNvbXBvbmVudCBhcyDJtWRmfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9mb2xkZXItZm9ybS9mb2xkZXItZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlRXhwbG9yZXJOZXdTZXJ2aWNlIGFzIMm1ZGV9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZXhwbG9yZXItbmV3LnNlcnZpY2UnO1xuZXhwb3J0IHtGaWxlVmVyc2lvblNlcnZpY2UgYXMgybVkZH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS12ZXJzaW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtNeURyaXZlU2VydmljZSBhcyDJtWRjfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9zZXJ2aWNlcy9teS1kcml2ZS5zZXJ2aWNlJztcbmV4cG9ydCB7TWFza0NvbXBvbmVudCBhcyDJtWJmfSBmcm9tICcuL2NvbXBvbmVudHMvbWFzay9tYXNrLmNvbXBvbmVudCc7XG5leHBvcnQge051bWJlclBpY2tlclJhbmdlQ29tcG9uZW50IGFzIMm1Ymd9IGZyb20gJy4vY29tcG9uZW50cy9udW1iZXItcGlja2VyLXJhbmdlL251bWJlci1waWNrZXItcmFuZ2UuY29tcG9uZW50JztcbmV4cG9ydCB7UGFnaW5nTmV4dEJhY2tPbmx5Q29tcG9uZW50IGFzIMm1Ymh9IGZyb20gJy4vY29tcG9uZW50cy9wYWdpbmctbmV4dC1iYWNrLW9ubHkvcGFnaW5nLW5leHQtYmFjay1vbmx5LmNvbXBvbmVudCc7XG5leHBvcnQge1FyQ29kZUdlbmVyYXRvckNvbXBvbmVudCBhcyDJtWRxfSBmcm9tICcuL2NvbXBvbmVudHMvcXItY29kZS1nZW5lcmF0b3IvcXItY29kZS1nZW5lcmF0b3IuY29tcG9uZW50JztcbmV4cG9ydCB7RE1fQ2h1Y1Z1U2VydmljZSBhcyDJtWJifSBmcm9tICcuL2NvbXBvbmVudHMvcXVlcnktYnVpbGRlcnMvc2VydmljZXMvZG0tY2h1Y3Z1LnNlcnZpY2UnO1xuZXhwb3J0IHtSYWRpb0J1dHRvbkxpc3RDb21wb25lbnQgYXMgybViaX0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvLWJ1dHRvbi1saXN0L3JhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQge1JlcG9ydFF1ZXVlQ29tcG9uZW50IGFzIMm1cX0gZnJvbSAnLi9jb21wb25lbnRzL3JlcG9ydC1xdWV1ZS9yZXBvcnQtcXVldWUuY29tcG9uZW50JztcbmV4cG9ydCB7U2V0dGluZ3NSb3dDb21wb25lbnQgYXMgybVidH0gZnJvbSAnLi9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLXJvdy9zZXR0aW5ncy1yb3cuY29tcG9uZW50JztcbmV4cG9ydCB7U2V0dGluZ3NXb3JrZmxvd05vMUNvbXBvbmVudCBhcyDJtWJ2fSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3Mtd29ya2Zsb3cvc2V0dGluZ3Mtd29ya2Zsb3ctbm8xL3NldHRpbmdzLXdvcmtmbG93LW5vMS5jb21wb25lbnQnO1xuZXhwb3J0IHtTZXR0aW5nc1dvcmtmbG93Q29tcG9uZW50IGFzIMm1YnV9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy13b3JrZmxvdy9zZXR0aW5ncy13b3JrZmxvdy5jb21wb25lbnQnO1xuZXhwb3J0IHtTZXR0aW5nc0NvbXBvbmVudCBhcyDJtWJzfSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50JztcbmV4cG9ydCB7U3BsYXNoQ29tcG9uZW50VjFDb21wb25lbnQgYXMgybVjYX0gZnJvbSAnLi9jb21wb25lbnRzL3NwbGFzaC1jb21wb25lbnQvc3BsYXNoLWNvbXBvbmVudC12MS9zcGxhc2gtY29tcG9uZW50LXYxLmNvbXBvbmVudCc7XG5leHBvcnQge1NwbGFzaENvbXBvbmVudFYyQ29tcG9uZW50IGFzIMm1Y2J9IGZyb20gJy4vY29tcG9uZW50cy9zcGxhc2gtY29tcG9uZW50L3NwbGFzaC1jb21wb25lbnQtdjIvc3BsYXNoLWNvbXBvbmVudC12Mi5jb21wb25lbnQnO1xuZXhwb3J0IHtEeW5hbWljTm9kZUNvbXBvbmVudCBhcyDJtXV9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0ZW1hY2hpbmVzL2R5bmFtaWMtbm9kZS9keW5hbWljLW5vZGUuY29tcG9uZW50JztcbmV4cG9ydCB7U3RhdGVNYWNoaW5lc0Nvbm5lY3Rpb25SZWNlaXZlckRlcGFydG1lbnRDb21wb25lbnQgYXMgybVjZX0gZnJvbSAnLi9jb21wb25lbnRzL3N0YXRlbWFjaGluZXMvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLWRlcGFydG1lbnQvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLWRlcGFydG1lbnQuY29tcG9uZW50JztcbmV4cG9ydCB7U3RhdGVNYWNoaW5lc0Nvbm5lY3Rpb25SZWNlaXZlckdyb3VwQ29tcG9uZW50IGFzIMm1Y2Z9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0ZW1hY2hpbmVzL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci1ncm91cC9zdGF0ZW1hY2hpbmVzLWNvbm5lY3Rpb24tcmVjZWl2ZXItZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCB7U3RhdGVNYWNoaW5lc0Nvbm5lY3Rpb25SZWNlaXZlclJvbGVDb21wb25lbnQgYXMgybVjZ30gZnJvbSAnLi9jb21wb25lbnRzL3N0YXRlbWFjaGluZXMvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLXJvbGUvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLXJvbGUuY29tcG9uZW50JztcbmV4cG9ydCB7U3RhdGVNYWNoaW5lc0Nvbm5lY3Rpb25SZWNlaXZlclVzZXJDb21wb25lbnQgYXMgybVjZH0gZnJvbSAnLi9jb21wb25lbnRzL3N0YXRlbWFjaGluZXMvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLXVzZXIvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLXVzZXIuY29tcG9uZW50JztcbmV4cG9ydCB7U3RhdGVNYWNoaW5lc0Nvbm5lY3Rpb25SZWNlaXZlckNvbXBvbmVudCBhcyDJtWNjfSBmcm9tICcuL2NvbXBvbmVudHMvc3RhdGVtYWNoaW5lcy9zdGF0ZW1hY2hpbmVzLWNvbm5lY3Rpb24tcmVjZWl2ZXIvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLmNvbXBvbmVudCc7XG5leHBvcnQge1N0YXRlTWFjaGluZXNDb25uZWN0aW9uU2VuZGVyQ29tcG9uZW50IGFzIMm1Y2h9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0ZW1hY2hpbmVzL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1zZW5kZXIvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXNlbmRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtIZWxwZXJDdXJyZW50UGFnZUNvbXBvbmVudCBhcyDJtWN6fSBmcm9tICcuL2NvbXBvbmVudHMvdG4tYXBwLWhlbHAvaGVscGVyLWN1cnJlbnQtcGFnZS9oZWxwZXItY3VycmVudC1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQge1BhdGhOYW1lU2VydmljZSBhcyDJtWN5fSBmcm9tICcuL2NvbXBvbmVudHMvdG4tYXBwLWhlbHAvc2VydmljZXMvcGF0aC1uYW1lLnNlcnZpY2UnO1xuZXhwb3J0IHtUbkFwcEhlbHBDb21wb25lbnQgYXMgybVjeH0gZnJvbSAnLi9jb21wb25lbnRzL3RuLWFwcC1oZWxwL3RuLWFwcC1oZWxwLmNvbXBvbmVudCc7XG5leHBvcnQge1RuQXBwTm90aWZpY2F0aW9uTGlzdENvbXBvbmVudCBhcyDJtWRhfSBmcm9tICcuL2NvbXBvbmVudHMvdG4tYXBwLW5vdGlmaWNhdGlvbi90bi1hcHAtbm90aWZpY2F0aW9uLWxpc3QvdG4tYXBwLW5vdGlmaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQge1RuQXBwTm90aWZpY2F0aW9uQ29tcG9uZW50IGFzIMm1ZGJ9IGZyb20gJy4vY29tcG9uZW50cy90bi1hcHAtbm90aWZpY2F0aW9uL3RuLWFwcC1ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7VG5Db2xvclBpY2tlckNvbXBvbmVudCBhcyDJtWNufSBmcm9tICcuL2NvbXBvbmVudHMvdG4tY29sb3ItcGlja2VyL3RuLWNvbG9yLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUbkRpYWxvZ0NvbXBvbmVudCBhcyDJtWNtfSBmcm9tICcuL2NvbXBvbmVudHMvdG4tZGlhbG9nL3RuLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0IHtUblRhYlZpZXdDb21wb25lbnQgYXMgybVjcH0gZnJvbSAnLi9jb21wb25lbnRzL3RuLXRhYnZpZXcvdG4tdGFidmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtUblRpbnltY2VDb21wb25lbnQgYXMgybVjb30gZnJvbSAnLi9jb21wb25lbnRzL3RuLXRpbnltY2UvdG4tdGlueW1jZS5jb21wb25lbnQnO1xuZXhwb3J0IHtVc2VyUGlja2VyQm94Q29tcG9uZW50IGFzIMm1Y3d9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLXBpY2tlci91c2VyLXBpY2tlci1ib3gvdXNlci1waWNrZXItYm94LmNvbXBvbmVudCc7XG5leHBvcnQge1VzZXJQaWNrZXJDb21wb25lbnQgYXMgybVjdn0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItcGlja2VyL3VzZXItcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge1ZhbkJhbkRlblNlcnZpY2UgYXMgybVia30gZnJvbSAnLi9jb21wb25lbnRzL3ZhbmJhbi1waWNrZXIvc2VydmljZXMvdmFuYmFuLWRlbi5zZXJ2aWNlJztcbmV4cG9ydCB7VmFuQmFuRGlTZXJ2aWNlIGFzIMm1Ymx9IGZyb20gJy4vY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3NlcnZpY2VzL3ZhbmJhbi1kaS5zZXJ2aWNlJztcbmV4cG9ydCB7VmFuYmFuRGVuUGlja2VyQ29tcG9uZW50IGFzIMm1Ym99IGZyb20gJy4vY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge1ZhbmJhbkRpUGlja2VyQ29tcG9uZW50IGFzIMm1Ym59IGZyb20gJy4vY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1kaS1waWNrZXIvdmFuYmFuLWRpLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtWYW5CYW5QaWNrZXJEaWFsb2dDb21wb25lbnQgYXMgybVibX0gZnJvbSAnLi9jb21wb25lbnRzL3ZhbmJhbi1waWNrZXIvdmFuYmFuLXBpY2tlci1kaWFsb2cvdmFuYmFuLXBpY2tlci1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7VmFuQmFuUGlja2VyQ29tcG9uZW50IGFzIMm1Ymp9IGZyb20gJy4vY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7UHJvY2Vzc1dvcmtmbG93Rm9ybUNvbXBvbmVudCBhcyDJtWJ4fSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvcHJvY2Vzcy13b3JrZmxvdy1mb3JtL3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0IHtQcm9jZXNzV29ya2Zsb3dUYXJnZXRDb21wb25lbnQgYXMgybVien0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0L3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0LmNvbXBvbmVudCc7XG5leHBvcnQge0NhbkJvX0hvU29TZXJ2aWNlIGFzIMm1ZX0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3NlcnZpY2VzL2NhbmJvLWhvc28uc2VydmljZSc7XG5leHBvcnQge0RtTG9haUNvbmdWaWVjU2VydmljZSBhcyDJtWNsfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvc2VydmljZXMvZG0tbG9haS1jb25ndmllYy5zZXJ2aWNlJztcbmV4cG9ydCB7RW50aXR5V29ya2Zsb3dIaXN0b3J5U2VydmljZSBhcyDJtWRrfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvc2VydmljZXMvZW50aXR5LXdvcmtmbG93LWhpc3Rvcnkuc2VydmljZSc7XG5leHBvcnQge0VudGl0eVdvcmtmbG93U2V0dGluZ1NlcnZpY2UgYXMgybVkb30gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3NlcnZpY2VzL2VudGl0eS13b3JrZmxvdy1zZXR0aW5nLnNlcnZpY2UnO1xuZXhwb3J0IHtXb3JrZmxvd0hpc3RvcnlTZXJ2aWNlIGFzIMm1Ynl9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy9zZXJ2aWNlcy93b3JrZmxvdy1oaXN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0IHtXb3JrZmxvd1NldHRpbmdzU2VydmljZSBhcyDJtWNqfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvc2VydmljZXMvd29ya2Zsb3ctc2V0dGluZ3Muc2VydmljZSc7XG5leHBvcnQge1NpbXBsZVdvcmtmbG93Rm9ybUNvbXBvbmVudCBhcyDJtWJ3fSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvc2ltcGxlLXdvcmtmbG93LWZvcm0vc2ltcGxlLXdvcmtmbG93LWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCB7U3RhcnRXb3JrZmxvd0NvbXBvbmVudCBhcyDJtWNpfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvc3RhcnQtd29ya2Zsb3cvc3RhcnQtd29ya2Zsb3cuY29tcG9uZW50JztcbmV4cG9ydCB7V29ya2Zsb3dIaXN0b3J5RGlhbG9nQ29tcG9uZW50IGFzIMm1ZGx9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy93b3JrZmxvdy1oaXN0b3J5LWRpYWxvZy93b3JrZmxvdy1oaXN0b3J5LWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0IHtXb3JrZmxvd0hpc3RvcnlOZXdDb21wb25lbnQgYXMgybVkbX0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3dvcmtmbG93LWhpc3RvcnktbmV3L3dvcmtmbG93LWhpc3RvcnktbmV3LmNvbXBvbmVudCc7XG5leHBvcnQge1dvcmtmbG93SGlzdG9yeUNvbXBvbmVudCBhcyDJtWRqfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvd29ya2Zsb3ctaGlzdG9yeS93b3JrZmxvdy1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge1dvcmtmbG93U2V0dGluZ0RpYWxvZ0NvbXBvbmVudCBhcyDJtWRwfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvd29ya2Zsb3ctc2V0dGluZy1kaWFsb2cvd29ya2Zsb3ctc2V0dGluZy1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7V29ya2Zsb3dTZXR0aW5nTmV3Q29tcG9uZW50IGFzIMm1Y2t9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy93b3JrZmxvdy1zZXR0aW5nLW5ldy93b3JrZmxvdy1zZXR0aW5nLW5ldy5jb21wb25lbnQnO1xuZXhwb3J0IHtXb3JrZmxvd1NldHRpbmdDb21wb25lbnQgYXMgybVkbn0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3dvcmtmbG93LXNldHRpbmcvd29ya2Zsb3ctc2V0dGluZy5jb21wb25lbnQnO1xuZXhwb3J0IHtQcmV2ZW50U2hpZnRUYWJEaXJlY3RpdmUgYXMgybVjdX0gZnJvbSAnLi9kaXJlY3RpdmVzL3ByZXZlbnQtc2hpZnQtdGFiLmRpcmVjdGl2ZSc7XG5leHBvcnQge0xvZ0ludGVyY2VwdG9yIGFzIMm1ZHh9IGZyb20gJy4vaW50ZXJjZXB0ZXJzL2xvZy5pbnRlcmNlcHRvcic7XG5leHBvcnQge1Blcm1pc3Npb25VdGlsc0ludGVyY2VwdG9yIGFzIMm1ZHl9IGZyb20gJy4vaW50ZXJjZXB0ZXJzL3Blcm1pc3Npb24tdXRpbHMuaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtTZW5kQWNjZXNzVG9rZW5JbnRlcmNlcHRvciBhcyDJtWR3fSBmcm9tICcuL2ludGVyY2VwdGVycy9zZW5kLWFjY2Vzcy10b2tlbi5pbnRlcmNlcHRvcic7XG5leHBvcnQge0ZpbGVJY29uUGlwZSBhcyDJtWNyfSBmcm9tICcuL3BpcGVzL2ZpbGUtaWNvbi5waXBlJztcbmV4cG9ydCB7RmlsZVNpemVQaXBlIGFzIMm1Y3N9IGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuZXhwb3J0IHtBcnRpY2xlU2VydmljZSBhcyDJtWR0fSBmcm9tICcuL3NlcnZpY2VzL2FydGljbGUuc2VydmljZSc7XG5leHBvcnQge0VudGl0eVBpY2tlclNlcnZpY2UgYXMgybVjfSBmcm9tICcuL3NlcnZpY2VzL2VudGl0eS1waWNrZXIuc2VydmljZSc7XG5leHBvcnQge0V4Y2VwdGlvbkhhbmRsZXJTZXJ2aWNlIGFzIMm1ZH0gZnJvbSAnLi9zZXJ2aWNlcy9leGNlcHRpb24taGFuZGxlci5zZXJ2aWNlJztcbmV4cG9ydCB7TmV3c0NhdGVnb3J5U2VydmljZSBhcyDJtWR1fSBmcm9tICcuL3NlcnZpY2VzL25ld3NjYXRlZ29yeS5zZXJ2aWNlJztcbmV4cG9ydCB7Um9sZVNlcnZpY2UgYXMgybViY30gZnJvbSAnLi9zZXJ2aWNlcy9yb2xlLnNlcnZpY2UnOyJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG54LXNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJ0bngtc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEdBQUcsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ2hJLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxHQUFHLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFDLDhCQUE4QixJQUFJLEVBQUUsRUFBQyxNQUFNLG9GQUFvRixDQUFDO0FBQ3hJLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDbkgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDdEgsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx3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Q0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEdBQUcsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxXQUFXLElBQUksR0FBRyxFQUFDLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWNjZXNzRGVuaWVkVjFDb21wb25lbnQgYXMgybVkb30gZnJvbSAnLi9jb21wb25lbnRzL2FjY2Vzcy1kZW5pZWQtY29tcG9uZW50L2FjY2Vzcy1kZW5pZWQtdjEvYWNjZXNzLWRlbmllZC12MS5jb21wb25lbnQnO1xuZXhwb3J0IHtBZGROZXdzQ29tcG9uZW50IGFzIMm1ZHB9IGZyb20gJy4vY29tcG9uZW50cy9hZGQtbmV3cy9hZGQtbmV3cy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZGRyZXNzQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9jb21wb25lbnRzL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZnRlclZpZXdDaGVja2VkQ29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9jb21wb25lbnRzL2FmdGVyLXZpZXctY2hlY2tlZC9hZnRlci12aWV3LWNoZWNrZWQuY29tcG9uZW50JztcbmV4cG9ydCB7QXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50IGFzIMm1b30gZnJvbSAnLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtDaGVja0JveExpc3RDb21wb25lbnQgYXMgybVwfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2stYm94LWxpc3QvY2hlY2stYm94LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCB7Q29DYXVUb0NodWNQaWNrZXJMaXN0Q29tcG9uZW50IGFzIMm1cn0gZnJvbSAnLi9jb21wb25lbnRzL2NvY2F1dG9jaHVjL2NvY2F1dG9jaHVjLXBpY2tlci1saXN0L2NvY2F1dG9jaHVjLXBpY2tlci1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0FwcFJvb3RNZW51Q29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbW1vbi1hcHAtY29tcG9uZW50L2FwcC1yb290LW1lbnUvYXBwLXJvb3QtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBUb3BCYXJWMUNvbXBvbmVudCBhcyDJtWp9IGZyb20gJy4vY29tcG9uZW50cy9jb21tb24tYXBwLWNvbXBvbmVudC9hcHAtdG9wYmFyLXYxL2FwcC10b3BiYXItdjEuY29tcG9uZW50JztcbmV4cG9ydCB7QXBwVG9wQmFyVjJDb21wb25lbnQgYXMgybVrfSBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uLWFwcC1jb21wb25lbnQvYXBwLXRvcGJhci12Mi9hcHAtdG9wYmFyLXYyLmNvbXBvbmVudCc7XG5leHBvcnQge0FwcE1lbnVDb21wb25lbnQgYXMgybVuLEFwcFN1Yk1lbnVDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uLWFwcC1jb21wb25lbnQvYXBwLm1lbnUuY29tcG9uZW50JztcbmV4cG9ydCB7QXBwUHJvZmlsZUNvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vY29tcG9uZW50cy9jb21tb24tYXBwLWNvbXBvbmVudC9hcHAucHJvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBUb3BCYXJDb21wb25lbnQgYXMgybVpfSBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uLWFwcC1jb21wb25lbnQvYXBwLnRvcGJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25nVmllY1BpY2tlckNvbXBvbmVudCBhcyDJtWJwfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZ3ZpZWMtcGlja2VyL2Nvbmd2aWVjLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25nVmllY1NlcnZpY2UgYXMgybVicX0gZnJvbSAnLi9jb21wb25lbnRzL2Nvbmd2aWVjLXBpY2tlci9zZXJ2aWNlcy9jb25ndmllYy5zZXJ2aWNlJztcbmV4cG9ydCB7VGFza1dvcmtmbG93SGlzdG9yaWVzU2VydmljZSBhcyDJtWJyfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZ3ZpZWMtcGlja2VyL3NlcnZpY2VzL3Rhc2t3b3JrZmxvd2hpc3Rvcmllcy5zZXJ2aWNlJztcbmV4cG9ydCB7QWR2YW5jZVNlYXJjaENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vY29tcG9uZW50cy9jcnVkL2FkdmFuY2Utc2VhcmNoL2FkdmFuY2Utc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQge0NoZWNrUmVhZHlDb21wb25lbnQgYXMgybVkdH0gZnJvbSAnLi9jb21wb25lbnRzL2NydWQvY2hlY2stcmVhZHkvY2hlY2stcmVhZHkuY29tcG9uZW50JztcbmV4cG9ydCB7VGFibGVEZXRhaWxGb3JtQ29tcG9uZW50IGFzIMm1Y3F9IGZyb20gJy4vY29tcG9uZW50cy9jcnVkL3RhYmxlLWRldGFpbC1mb3JtL3RhYmxlLWRldGFpbC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQge0RhdGV0aW1lUGlja2VyUmFuZ2VDb21wb25lbnQgYXMgybV0fSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyLXJhbmdlL2RhdGV0aW1lLXBpY2tlci1yYW5nZS5jb21wb25lbnQnO1xuZXhwb3J0IHtEYXRldGltZVBpY2tlckNvbXBvbmVudCBhcyDJtXN9IGZyb20gJy4vY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge1F1aWNrQWRkRm9ybUNvbXBvbmVudCBhcyDJtWN0fSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24vcXVpY2stYWRkLWZvcm0vcXVpY2stYWRkLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCB7RHJvcGRvd25TZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duL3NlcnZpY2VzL2Ryb3Bkb3duLnNlcnZpY2UnO1xuZXhwb3J0IHtFbnRpdHlQZXJtaXNzaW9uQ29tcG9uZW50IGFzIMm1YmF9IGZyb20gJy4vY29tcG9uZW50cy9lbnRpdHktcGVybWlzc2lvbi9lbnRpdHktcGVybWlzc2lvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtFbnRpdHlQZXJtaXNzaW9uU2VydmljZSBhcyDJtWJkfSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBlcm1pc3Npb24vc2VydmljZXMuY3MvZW50aXR5LXBlcm1pc3Npb24uc2VydmljZSc7XG5leHBvcnQge0VudGl0eVBpY2tlckJveENvbXBvbmVudCBhcyDJtXZ9IGZyb20gJy4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItYm94L2VudGl0eS1waWNrZXItYm94LmNvbXBvbmVudCc7XG5leHBvcnQge0VudGl0eVBpY2tlckRhdGFDb21wb25lbnQgYXMgybV3fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItZGF0YS9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50JztcbmV4cG9ydCB7RW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgYXMgybV4fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbnRpdHlQaWNrZXJEaWFsb2dDb21wb25lbnQgYXMgybV6fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9lbnRpdHktcGlja2VyLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0IHtFbnRpdHlQaWNrZXJDb21wb25lbnQgYXMgybV5fSBmcm9tICcuL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge0VxdWF0aW9uRWRpdG9yQ29tcG9uZW50IGFzIMm1YmV9IGZyb20gJy4vY29tcG9uZW50cy9lcXVhdGlvbi1lZGl0b3IvZXF1YXRpb24tZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVGb3JtQ29tcG9uZW50IGFzIMm1ZGR9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL2ZpbGUtZm9ybS9maWxlLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCB7RmlsZVZlcnNpb25MaXN0Q29tcG9uZW50IGFzIMm1ZGZ9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL2ZpbGUtdmVyc2lvbi1saXN0L2ZpbGUtdmVyc2lvbi1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVWaWV3ZXJDb21wb25lbnQgYXMgybVkZX0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7Rm9sZGVyRm9ybUNvbXBvbmVudCBhcyDJtWRjfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9mb2xkZXItZm9ybS9mb2xkZXItZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0IHtTaWduYXR1cmVEZXRhaWxDb21wb25lbnQgYXMgybVkc30gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2lnbmF0dXJlLWRldGFpbC9zaWduYXR1cmUtZGV0YWlsLmNvbXBvbmVudCc7XG5leHBvcnQge01hc2tDb21wb25lbnQgYXMgybViZn0gZnJvbSAnLi9jb21wb25lbnRzL21hc2svbWFzay5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJQaWNrZXJSYW5nZUNvbXBvbmVudCBhcyDJtWJnfSBmcm9tICcuL2NvbXBvbmVudHMvbnVtYmVyLXBpY2tlci1yYW5nZS9udW1iZXItcGlja2VyLXJhbmdlLmNvbXBvbmVudCc7XG5leHBvcnQge1BhZ2luZ05leHRCYWNrT25seUNvbXBvbmVudCBhcyDJtWJofSBmcm9tICcuL2NvbXBvbmVudHMvcGFnaW5nLW5leHQtYmFjay1vbmx5L3BhZ2luZy1uZXh0LWJhY2stb25seS5jb21wb25lbnQnO1xuZXhwb3J0IHtRckNvZGVHZW5lcmF0b3JDb21wb25lbnQgYXMgybVkbn0gZnJvbSAnLi9jb21wb25lbnRzL3FyLWNvZGUtZ2VuZXJhdG9yL3FyLWNvZGUtZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge0RNX0NodWNWdVNlcnZpY2UgYXMgybViYn0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXJ5LWJ1aWxkZXJzL3NlcnZpY2VzL2RtLWNodWN2dS5zZXJ2aWNlJztcbmV4cG9ydCB7UmFkaW9CdXR0b25MaXN0Q29tcG9uZW50IGFzIMm1Yml9IGZyb20gJy4vY29tcG9uZW50cy9yYWRpby1idXR0b24tbGlzdC9yYWRpby1idXR0b24tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0IHtSZXBvcnRRdWV1ZUNvbXBvbmVudCBhcyDJtXF9IGZyb20gJy4vY29tcG9uZW50cy9yZXBvcnQtcXVldWUvcmVwb3J0LXF1ZXVlLmNvbXBvbmVudCc7XG5leHBvcnQge1NldHRpbmdzUm93Q29tcG9uZW50IGFzIMm1YnR9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy1yb3cvc2V0dGluZ3Mtcm93LmNvbXBvbmVudCc7XG5leHBvcnQge1NldHRpbmdzV29ya2Zsb3dObzFDb21wb25lbnQgYXMgybVidn0gZnJvbSAnLi9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLXdvcmtmbG93L3NldHRpbmdzLXdvcmtmbG93LW5vMS9zZXR0aW5ncy13b3JrZmxvdy1ubzEuY29tcG9uZW50JztcbmV4cG9ydCB7U2V0dGluZ3NXb3JrZmxvd0NvbXBvbmVudCBhcyDJtWJ1fSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3Mtd29ya2Zsb3cvc2V0dGluZ3Mtd29ya2Zsb3cuY29tcG9uZW50JztcbmV4cG9ydCB7U2V0dGluZ3NDb21wb25lbnQgYXMgybVic30gZnJvbSAnLi9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudCc7XG5leHBvcnQge1NwbGFzaENvbXBvbmVudFYxQ29tcG9uZW50IGFzIMm1Y2F9IGZyb20gJy4vY29tcG9uZW50cy9zcGxhc2gtY29tcG9uZW50L3NwbGFzaC1jb21wb25lbnQtdjEvc3BsYXNoLWNvbXBvbmVudC12MS5jb21wb25lbnQnO1xuZXhwb3J0IHtTcGxhc2hDb21wb25lbnRWMkNvbXBvbmVudCBhcyDJtWNifSBmcm9tICcuL2NvbXBvbmVudHMvc3BsYXNoLWNvbXBvbmVudC9zcGxhc2gtY29tcG9uZW50LXYyL3NwbGFzaC1jb21wb25lbnQtdjIuY29tcG9uZW50JztcbmV4cG9ydCB7RHluYW1pY05vZGVDb21wb25lbnQgYXMgybV1fSBmcm9tICcuL2NvbXBvbmVudHMvc3RhdGVtYWNoaW5lcy9keW5hbWljLW5vZGUvZHluYW1pYy1ub2RlLmNvbXBvbmVudCc7XG5leHBvcnQge1N0YXRlTWFjaGluZXNDb25uZWN0aW9uUmVjZWl2ZXJEZXBhcnRtZW50Q29tcG9uZW50IGFzIMm1Y2V9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0ZW1hY2hpbmVzL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci1kZXBhcnRtZW50L3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci1kZXBhcnRtZW50LmNvbXBvbmVudCc7XG5leHBvcnQge1N0YXRlTWFjaGluZXNDb25uZWN0aW9uUmVjZWl2ZXJHcm91cENvbXBvbmVudCBhcyDJtWNmfSBmcm9tICcuL2NvbXBvbmVudHMvc3RhdGVtYWNoaW5lcy9zdGF0ZW1hY2hpbmVzLWNvbm5lY3Rpb24tcmVjZWl2ZXItZ3JvdXAvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQge1N0YXRlTWFjaGluZXNDb25uZWN0aW9uUmVjZWl2ZXJSb2xlQ29tcG9uZW50IGFzIMm1Y2d9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0ZW1hY2hpbmVzL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci1yb2xlL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci1yb2xlLmNvbXBvbmVudCc7XG5leHBvcnQge1N0YXRlTWFjaGluZXNDb25uZWN0aW9uUmVjZWl2ZXJVc2VyQ29tcG9uZW50IGFzIMm1Y2R9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0ZW1hY2hpbmVzL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci11c2VyL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci11c2VyLmNvbXBvbmVudCc7XG5leHBvcnQge1N0YXRlTWFjaGluZXNDb25uZWN0aW9uUmVjZWl2ZXJDb21wb25lbnQgYXMgybVjY30gZnJvbSAnLi9jb21wb25lbnRzL3N0YXRlbWFjaGluZXMvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTdGF0ZU1hY2hpbmVzQ29ubmVjdGlvblNlbmRlckNvbXBvbmVudCBhcyDJtWNofSBmcm9tICcuL2NvbXBvbmVudHMvc3RhdGVtYWNoaW5lcy9zdGF0ZW1hY2hpbmVzLWNvbm5lY3Rpb24tc2VuZGVyL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1zZW5kZXIuY29tcG9uZW50JztcbmV4cG9ydCB7SGVscGVyQ3VycmVudFBhZ2VDb21wb25lbnQgYXMgybVjen0gZnJvbSAnLi9jb21wb25lbnRzL3RuLWFwcC1oZWxwL2hlbHBlci1jdXJyZW50LXBhZ2UvaGVscGVyLWN1cnJlbnQtcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0IHtQYXRoTmFtZVNlcnZpY2UgYXMgybVjeX0gZnJvbSAnLi9jb21wb25lbnRzL3RuLWFwcC1oZWxwL3NlcnZpY2VzL3BhdGgtbmFtZS5zZXJ2aWNlJztcbmV4cG9ydCB7VG5BcHBIZWxwQ29tcG9uZW50IGFzIMm1Y3h9IGZyb20gJy4vY29tcG9uZW50cy90bi1hcHAtaGVscC90bi1hcHAtaGVscC5jb21wb25lbnQnO1xuZXhwb3J0IHtUbkFwcE5vdGlmaWNhdGlvbkxpc3RDb21wb25lbnQgYXMgybVkYX0gZnJvbSAnLi9jb21wb25lbnRzL3RuLWFwcC1ub3RpZmljYXRpb24vdG4tYXBwLW5vdGlmaWNhdGlvbi1saXN0L3RuLWFwcC1ub3RpZmljYXRpb24tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0IHtUbkFwcE5vdGlmaWNhdGlvbkNvbXBvbmVudCBhcyDJtWRifSBmcm9tICcuL2NvbXBvbmVudHMvdG4tYXBwLW5vdGlmaWNhdGlvbi90bi1hcHAtbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge1RuQ29sb3JQaWNrZXJDb21wb25lbnQgYXMgybVjbn0gZnJvbSAnLi9jb21wb25lbnRzL3RuLWNvbG9yLXBpY2tlci90bi1jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VG5EaWFsb2dDb21wb25lbnQgYXMgybVjbX0gZnJvbSAnLi9jb21wb25lbnRzL3RuLWRpYWxvZy90bi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7VG5UYWJWaWV3Q29tcG9uZW50IGFzIMm1Y3B9IGZyb20gJy4vY29tcG9uZW50cy90bi10YWJ2aWV3L3RuLXRhYnZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7VG5UaW55bWNlQ29tcG9uZW50IGFzIMm1Y299IGZyb20gJy4vY29tcG9uZW50cy90bi10aW55bWNlL3RuLXRpbnltY2UuY29tcG9uZW50JztcbmV4cG9ydCB7VXNlclBpY2tlckJveENvbXBvbmVudCBhcyDJtWN3fSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1waWNrZXIvdXNlci1waWNrZXItYm94L3VzZXItcGlja2VyLWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtVc2VyUGlja2VyQ29tcG9uZW50IGFzIMm1Y3Z9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLXBpY2tlci91c2VyLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtWYW5CYW5EZW5TZXJ2aWNlIGFzIMm1Ymt9IGZyb20gJy4vY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3NlcnZpY2VzL3ZhbmJhbi1kZW4uc2VydmljZSc7XG5leHBvcnQge1ZhbkJhbkRpU2VydmljZSBhcyDJtWJsfSBmcm9tICcuL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci9zZXJ2aWNlcy92YW5iYW4tZGkuc2VydmljZSc7XG5leHBvcnQge1ZhbmJhbkRlblBpY2tlckNvbXBvbmVudCBhcyDJtWJvfSBmcm9tICcuL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHtWYW5iYW5EaVBpY2tlckNvbXBvbmVudCBhcyDJtWJufSBmcm9tICcuL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGktcGlja2VyL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VmFuQmFuUGlja2VyRGlhbG9nQ29tcG9uZW50IGFzIMm1Ym19IGZyb20gJy4vY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1waWNrZXItZGlhbG9nL3ZhbmJhbi1waWNrZXItZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge1ZhbkJhblBpY2tlckNvbXBvbmVudCBhcyDJtWJqfSBmcm9tICcuL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge1Byb2Nlc3NXb3JrZmxvd0Zvcm1Db21wb25lbnQgYXMgybVieH0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCB7UHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50IGFzIMm1Ynp9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy9wcm9jZXNzLXdvcmtmbG93LXRhcmdldC9wcm9jZXNzLXdvcmtmbG93LXRhcmdldC5jb21wb25lbnQnO1xuZXhwb3J0IHtDYW5Cb19Ib1NvU2VydmljZSBhcyDJtWV9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy9zZXJ2aWNlcy9jYW5iby1ob3NvLnNlcnZpY2UnO1xuZXhwb3J0IHtEbUxvYWlDb25nVmllY1NlcnZpY2UgYXMgybVjbH0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3NlcnZpY2VzL2RtLWxvYWktY29uZ3ZpZWMuc2VydmljZSc7XG5leHBvcnQge0VudGl0eVdvcmtmbG93SGlzdG9yeVNlcnZpY2UgYXMgybVkaH0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3NlcnZpY2VzL2VudGl0eS13b3JrZmxvdy1oaXN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0IHtFbnRpdHlXb3JrZmxvd1NldHRpbmdTZXJ2aWNlIGFzIMm1ZGx9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy9zZXJ2aWNlcy9lbnRpdHktd29ya2Zsb3ctc2V0dGluZy5zZXJ2aWNlJztcbmV4cG9ydCB7V29ya2Zsb3dIaXN0b3J5U2VydmljZSBhcyDJtWJ5fSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvc2VydmljZXMvd29ya2Zsb3ctaGlzdG9yeS5zZXJ2aWNlJztcbmV4cG9ydCB7V29ya2Zsb3dTZXR0aW5nc1NlcnZpY2UgYXMgybVjan0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3NlcnZpY2VzL3dvcmtmbG93LXNldHRpbmdzLnNlcnZpY2UnO1xuZXhwb3J0IHtTaW1wbGVXb3JrZmxvd0Zvcm1Db21wb25lbnQgYXMgybVid30gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3NpbXBsZS13b3JrZmxvdy1mb3JtL3NpbXBsZS13b3JrZmxvdy1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQge1N0YXJ0V29ya2Zsb3dDb21wb25lbnQgYXMgybVjaX0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3N0YXJ0LXdvcmtmbG93L3N0YXJ0LXdvcmtmbG93LmNvbXBvbmVudCc7XG5leHBvcnQge1dvcmtmbG93SGlzdG9yeURpYWxvZ0NvbXBvbmVudCBhcyDJtWRpfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvd29ya2Zsb3ctaGlzdG9yeS1kaWFsb2cvd29ya2Zsb3ctaGlzdG9yeS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7V29ya2Zsb3dIaXN0b3J5TmV3Q29tcG9uZW50IGFzIMm1ZGp9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy93b3JrZmxvdy1oaXN0b3J5LW5ldy93b3JrZmxvdy1oaXN0b3J5LW5ldy5jb21wb25lbnQnO1xuZXhwb3J0IHtXb3JrZmxvd0hpc3RvcnlDb21wb25lbnQgYXMgybVkZ30gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3dvcmtmbG93LWhpc3Rvcnkvd29ya2Zsb3ctaGlzdG9yeS5jb21wb25lbnQnO1xuZXhwb3J0IHtXb3JrZmxvd1NldHRpbmdEaWFsb2dDb21wb25lbnQgYXMgybVkbX0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93L3dvcmtmbG93LXNldHRpbmctZGlhbG9nL3dvcmtmbG93LXNldHRpbmctZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge1dvcmtmbG93U2V0dGluZ05ld0NvbXBvbmVudCBhcyDJtWNrfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya2Zsb3cvd29ya2Zsb3ctc2V0dGluZy1uZXcvd29ya2Zsb3ctc2V0dGluZy1uZXcuY29tcG9uZW50JztcbmV4cG9ydCB7V29ya2Zsb3dTZXR0aW5nQ29tcG9uZW50IGFzIMm1ZGt9IGZyb20gJy4vY29tcG9uZW50cy93b3JrZmxvdy93b3JrZmxvdy1zZXR0aW5nL3dvcmtmbG93LXNldHRpbmcuY29tcG9uZW50JztcbmV4cG9ydCB7UHJldmVudFNoaWZ0VGFiRGlyZWN0aXZlIGFzIMm1Y3V9IGZyb20gJy4vZGlyZWN0aXZlcy9wcmV2ZW50LXNoaWZ0LXRhYi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtMb2dJbnRlcmNlcHRvciBhcyDJtWR2fSBmcm9tICcuL2ludGVyY2VwdGVycy9sb2cuaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtQZXJtaXNzaW9uVXRpbHNJbnRlcmNlcHRvciBhcyDJtWR3fSBmcm9tICcuL2ludGVyY2VwdGVycy9wZXJtaXNzaW9uLXV0aWxzLmludGVyY2VwdG9yJztcbmV4cG9ydCB7U2VuZEFjY2Vzc1Rva2VuSW50ZXJjZXB0b3IgYXMgybVkdX0gZnJvbSAnLi9pbnRlcmNlcHRlcnMvc2VuZC1hY2Nlc3MtdG9rZW4uaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtGaWxlSWNvblBpcGUgYXMgybVjcn0gZnJvbSAnLi9waXBlcy9maWxlLWljb24ucGlwZSc7XG5leHBvcnQge0ZpbGVTaXplUGlwZSBhcyDJtWNzfSBmcm9tICcuL3BpcGVzL2ZpbGUtc2l6ZS5waXBlJztcbmV4cG9ydCB7QXJ0aWNsZVNlcnZpY2UgYXMgybVkcX0gZnJvbSAnLi9zZXJ2aWNlcy9hcnRpY2xlLnNlcnZpY2UnO1xuZXhwb3J0IHtFbnRpdHlQaWNrZXJTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9zZXJ2aWNlcy9lbnRpdHktcGlja2VyLnNlcnZpY2UnO1xuZXhwb3J0IHtFeGNlcHRpb25IYW5kbGVyU2VydmljZSBhcyDJtWR9IGZyb20gJy4vc2VydmljZXMvZXhjZXB0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5leHBvcnQge05ld3NDYXRlZ29yeVNlcnZpY2UgYXMgybVkcn0gZnJvbSAnLi9zZXJ2aWNlcy9uZXdzY2F0ZWdvcnkuc2VydmljZSc7XG5leHBvcnQge1JvbGVTZXJ2aWNlIGFzIMm1YmN9IGZyb20gJy4vc2VydmljZXMvcm9sZS5zZXJ2aWNlJzsiXX0=
|