@sunbird-cb/utils 1.0.19-ang-13-16 → 1.0.20-ang-13-16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/esm2022/lib/components/image-crop/image-crop.component.mjs +172 -0
  2. package/esm2022/lib/components/image-crop/image-crop.module.mjs +55 -0
  3. package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.mjs +87 -0
  4. package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.module.mjs +20 -0
  5. package/{esm2015/lib/directives/default-thumbnail/default-thumbnail.directive.js → esm2022/lib/directives/default-thumbnail/default-thumbnail.directive.mjs} +4 -4
  6. package/esm2022/lib/directives/default-thumbnail/default-thumbnail.module.mjs +20 -0
  7. package/{esm2015/lib/directives/image-responsive/image-responsive.directive.js → esm2022/lib/directives/image-responsive/image-responsive.directive.mjs} +4 -4
  8. package/esm2022/lib/directives/image-responsive/image-responsive.module.mjs +20 -0
  9. package/{esm2015/lib/directives/in-view-port/in-view-port.directive.js → esm2022/lib/directives/in-view-port/in-view-port.directive.mjs} +4 -4
  10. package/esm2022/lib/directives/in-view-port/in-view-port.module.mjs +20 -0
  11. package/esm2022/lib/directives/navigation/navigation.directive.mjs +43 -0
  12. package/esm2022/lib/directives/navigation/navigation.module.mjs +20 -0
  13. package/{esm2015/lib/directives/permission/permission.directive.js → esm2022/lib/directives/permission/permission.directive.mjs} +4 -4
  14. package/esm2022/lib/directives/permission/permission.module.mjs +20 -0
  15. package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.component.mjs +96 -0
  16. package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.module.mjs +32 -0
  17. package/esm2022/lib/helpers/logout/logout.component.mjs +44 -0
  18. package/esm2022/lib/helpers/logout/logout.module.mjs +27 -0
  19. package/esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.mjs +18 -0
  20. package/{esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js → esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.mjs} +4 -4
  21. package/esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.module.mjs +20 -0
  22. package/{esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js → esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.mjs} +4 -4
  23. package/esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.module.mjs +20 -0
  24. package/{esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js → esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.mjs} +4 -4
  25. package/esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.mjs +20 -0
  26. package/{esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js → esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.mjs} +4 -4
  27. package/esm2022/lib/pipes/pipe-filter/pipe-filter.module.mjs +20 -0
  28. package/{esm2015/lib/pipes/pipe-filter/pipe-filter.pipe.js → esm2022/lib/pipes/pipe-filter/pipe-filter.pipe.mjs} +4 -4
  29. package/esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.module.mjs +20 -0
  30. package/{esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js → esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.mjs} +4 -4
  31. package/esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.mjs +20 -0
  32. package/{esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js → esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.mjs} +4 -4
  33. package/esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.module.mjs +20 -0
  34. package/{esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js → esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.mjs} +4 -4
  35. package/esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.module.mjs +20 -0
  36. package/{esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js → esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.mjs} +4 -4
  37. package/esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.module.mjs +20 -0
  38. package/{esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js → esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.mjs} +4 -4
  39. package/esm2022/lib/pipes/pipe-order-by/pipe-order-by.module.mjs +20 -0
  40. package/{esm2015/lib/pipes/pipe-order-by/pipe-order-by.pipe.js → esm2022/lib/pipes/pipe-order-by/pipe-order-by.pipe.mjs} +4 -4
  41. package/esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.module.mjs +20 -0
  42. package/{esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js → esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.mjs} +4 -4
  43. package/esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.module.mjs +20 -0
  44. package/{esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js → esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.mjs} +4 -4
  45. package/esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.mjs +20 -0
  46. package/{esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js → esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.mjs} +4 -4
  47. package/{esm2015/lib/resolvers/explore-detail.resolver.js → esm2022/lib/resolvers/explore-detail.resolver.mjs} +4 -4
  48. package/{esm2015/lib/resolvers/marketing-offering.resolve.js → esm2022/lib/resolvers/marketing-offering.resolve.mjs} +4 -4
  49. package/{esm2015/lib/resolvers/page.resolver.js → esm2022/lib/resolvers/page.resolver.mjs} +4 -4
  50. package/esm2022/lib/services/auth-keycloak.service.mjs +52 -0
  51. package/esm2022/lib/services/auth-microsoft.service.mjs +173 -0
  52. package/{esm2015/lib/services/configurations.service.js → esm2022/lib/services/configurations.service.mjs} +4 -4
  53. package/esm2022/lib/services/event.service.mjs +204 -0
  54. package/{esm2015/lib/services/logger.service.js → esm2022/lib/services/logger.service.mjs} +4 -4
  55. package/esm2022/lib/services/subapplication-respond.service.mjs +76 -0
  56. package/esm2022/lib/services/telemetry.service.mjs +502 -0
  57. package/esm2022/lib/services/user-preference.service.mjs +92 -0
  58. package/{esm2015/lib/services/utility.service.js → esm2022/lib/services/utility.service.mjs} +4 -4
  59. package/{esm2015/lib/services/value.service.js → esm2022/lib/services/value.service.mjs} +4 -4
  60. package/esm2022/lib/services/widget-content.service.mjs +182 -0
  61. package/{fesm2015/sunbird-cb-utils.js → fesm2022/sunbird-cb-utils.mjs} +573 -545
  62. package/fesm2022/sunbird-cb-utils.mjs.map +1 -0
  63. package/lib/components/image-crop/image-crop.component.d.ts +3 -3
  64. package/lib/components/image-crop/image-crop.component.d.ts.map +1 -1
  65. package/lib/components/image-crop/image-crop.module.d.ts +6 -6
  66. package/lib/components/image-crop/image-crop.module.d.ts.map +1 -1
  67. package/lib/constants/misc.constants.d.ts +2 -2
  68. package/lib/constants/misc.constants.d.ts.map +1 -1
  69. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +1 -1
  70. package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts +1 -1
  71. package/lib/directives/image-responsive/image-responsive.directive.d.ts +1 -1
  72. package/lib/directives/in-view-port/in-view-port.directive.d.ts +1 -1
  73. package/lib/directives/navigation/navigation.directive.d.ts +1 -1
  74. package/lib/directives/permission/permission.directive.d.ts +1 -1
  75. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts +1 -1
  76. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts +3 -3
  77. package/lib/helpers/logout/logout.component.d.ts +2 -2
  78. package/lib/helpers/logout/logout.component.d.ts.map +1 -1
  79. package/lib/helpers/logout/logout.module.d.ts +3 -3
  80. package/lib/helpers/logout/logout.module.d.ts.map +1 -1
  81. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts +1 -1
  82. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts +1 -1
  83. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts +1 -1
  84. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +1 -1
  85. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +1 -1
  86. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts +1 -1
  87. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts +1 -1
  88. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts +1 -1
  89. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +1 -1
  90. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts +1 -1
  91. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +5 -5
  92. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts +1 -1
  93. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +1 -1
  94. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts +1 -1
  95. package/lib/resolvers/explore-detail.resolver.d.ts +2 -2
  96. package/lib/resolvers/explore-detail.resolver.d.ts.map +1 -1
  97. package/lib/resolvers/marketing-offering.resolve.d.ts +2 -2
  98. package/lib/resolvers/marketing-offering.resolve.d.ts.map +1 -1
  99. package/lib/resolvers/page.resolver.d.ts +2 -2
  100. package/lib/resolvers/page.resolver.d.ts.map +1 -1
  101. package/lib/services/widget-resolver.model.d.ts +1 -1
  102. package/lib/services/widget-resolver.model.d.ts.map +1 -1
  103. package/package.json +26 -18
  104. package/sunbird-cb-utils-1.0.20-ang-13-16.tgz +0 -0
  105. package/bundles/sunbird-cb-utils.umd.js +0 -4785
  106. package/bundles/sunbird-cb-utils.umd.js.map +0 -1
  107. package/esm2015/lib/components/image-crop/image-crop.component.js +0 -166
  108. package/esm2015/lib/components/image-crop/image-crop.module.js +0 -58
  109. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +0 -87
  110. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +0 -22
  111. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.module.js +0 -22
  112. package/esm2015/lib/directives/image-responsive/image-responsive.module.js +0 -22
  113. package/esm2015/lib/directives/in-view-port/in-view-port.module.js +0 -22
  114. package/esm2015/lib/directives/navigation/navigation.directive.js +0 -43
  115. package/esm2015/lib/directives/navigation/navigation.module.js +0 -22
  116. package/esm2015/lib/directives/permission/permission.module.js +0 -22
  117. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +0 -100
  118. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +0 -34
  119. package/esm2015/lib/helpers/logout/logout.component.js +0 -48
  120. package/esm2015/lib/helpers/logout/logout.module.js +0 -30
  121. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +0 -18
  122. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +0 -22
  123. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +0 -22
  124. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +0 -22
  125. package/esm2015/lib/pipes/pipe-filter/pipe-filter.module.js +0 -22
  126. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +0 -22
  127. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +0 -22
  128. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +0 -22
  129. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +0 -22
  130. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +0 -22
  131. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.module.js +0 -22
  132. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +0 -22
  133. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +0 -22
  134. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +0 -22
  135. package/esm2015/lib/services/auth-keycloak.service.js +0 -57
  136. package/esm2015/lib/services/auth-microsoft.service.js +0 -184
  137. package/esm2015/lib/services/event.service.js +0 -199
  138. package/esm2015/lib/services/subapplication-respond.service.js +0 -70
  139. package/esm2015/lib/services/telemetry.service.js +0 -434
  140. package/esm2015/lib/services/user-preference.service.js +0 -82
  141. package/esm2015/lib/services/widget-content.service.js +0 -182
  142. package/fesm2015/sunbird-cb-utils.js.map +0 -1
  143. package/sunbird-cb-utils-1.0.19-ang-13-16.tgz +0 -0
  144. /package/{esm2015/lib/constants/features.enum.js → esm2022/lib/constants/features.enum.mjs} +0 -0
  145. /package/{esm2015/lib/constants/instances.enum.js → esm2022/lib/constants/instances.enum.mjs} +0 -0
  146. /package/{esm2015/lib/constants/misc.constants.js → esm2022/lib/constants/misc.constants.mjs} +0 -0
  147. /package/{esm2015/lib/helpers/functions/getStringifiedQueryParams.js → esm2022/lib/helpers/functions/getStringifiedQueryParams.mjs} +0 -0
  148. /package/{esm2015/lib/models/contentRating.model.js → esm2022/lib/models/contentRating.model.mjs} +0 -0
  149. /package/{esm2015/lib/resolvers/page.constant.js → esm2022/lib/resolvers/page.constant.mjs} +0 -0
  150. /package/{esm2015/lib/resolvers/page.model.js → esm2022/lib/resolvers/page.model.mjs} +0 -0
  151. /package/{esm2015/lib/resolvers/resolver.model.js → esm2022/lib/resolvers/resolver.model.mjs} +0 -0
  152. /package/{esm2015/lib/services/card-content.model.js → esm2022/lib/services/card-content.model.mjs} +0 -0
  153. /package/{esm2015/lib/services/configurations.model.js → esm2022/lib/services/configurations.model.mjs} +0 -0
  154. /package/{esm2015/lib/services/content-strip-multiple.model.js → esm2022/lib/services/content-strip-multiple.model.mjs} +0 -0
  155. /package/{esm2015/lib/services/event.model.js → esm2022/lib/services/event.model.mjs} +0 -0
  156. /package/{esm2015/lib/services/ms-office.model.js → esm2022/lib/services/ms-office.model.mjs} +0 -0
  157. /package/{esm2015/lib/services/user-preference.model.js → esm2022/lib/services/user-preference.model.mjs} +0 -0
  158. /package/{esm2015/lib/services/widget-content.model.js → esm2022/lib/services/widget-content.model.mjs} +0 -0
  159. /package/{esm2015/lib/services/widget-resolver.model.js → esm2022/lib/services/widget-resolver.model.mjs} +0 -0
  160. /package/{esm2015/lib/services/widget-search.model.js → esm2022/lib/services/widget-search.model.mjs} +0 -0
  161. /package/{esm2015/public-api.js → esm2022/public-api.mjs} +0 -0
  162. /package/{esm2015/sunbird-cb-utils.js → esm2022/sunbird-cb-utils.mjs} +0 -0
  163. /package/{sunbird-cb-utils.d.ts → index.d.ts} +0 -0
@@ -1,82 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { debounceTime, retry, catchError } from 'rxjs/operators';
4
- import { of } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- import * as i2 from "./configurations.service";
8
- const endpoints = {
9
- userPref: '/apis/protected/v8/user/preference',
10
- };
11
- export class UserPreferenceService {
12
- constructor(http, configurationSvc) {
13
- this.http = http;
14
- this.configurationSvc = configurationSvc;
15
- }
16
- initialize() {
17
- this.configurationSvc.prefChangeNotifier
18
- .pipe(debounceTime(250))
19
- .subscribe((changedUserPref) => {
20
- if (this.configurationSvc.isAuthenticated) {
21
- this.saveUserPreference(changedUserPref);
22
- }
23
- });
24
- }
25
- fetchUserPreference() {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const pref = yield this.http.get(endpoints.userPref).toPromise();
28
- return pref;
29
- });
30
- }
31
- saveUserPreference(changedUserPref) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- try {
34
- if (!changedUserPref) {
35
- return false;
36
- }
37
- const newUserPref = Object.assign(Object.assign(Object.assign(Object.assign({}, this.configurationSvc.userPreference), { pinnedApps: (changedUserPref && changedUserPref.pinnedApps) ||
38
- (this.configurationSvc.userPreference &&
39
- this.configurationSvc.userPreference.pinnedApps) ||
40
- '', isDarkMode: this.configurationSvc.isDarkMode, isRTL: this.configurationSvc.isRTL, selectedTheme: (this.configurationSvc.activeThemeObject &&
41
- this.configurationSvc.activeThemeObject.themeClass) ||
42
- '', selectedFont: (this.configurationSvc.activeFontObject &&
43
- this.configurationSvc.activeFontObject.fontClass) ||
44
- '', selectedLangGroup: (this.configurationSvc.userPreference &&
45
- this.configurationSvc.userPreference.selectedLangGroup) ||
46
- '', selectedLocale: (this.configurationSvc.userPreference &&
47
- this.configurationSvc.userPreference.selectedLocale) ||
48
- '', colorPallet: (this.configurationSvc.userPreference &&
49
- this.configurationSvc.userPreference.colorPallet) ||
50
- [], defaultCardType: (this.configurationSvc.userPreference &&
51
- this.configurationSvc.userPreference.defaultCardType) ||
52
- '', completedActivity: (this.configurationSvc.userPreference &&
53
- this.configurationSvc.userPreference.completedActivity) ||
54
- [] }), (changedUserPref || {})), { completedTour: this.configurationSvc.completedTour, profileSettings: (this.configurationSvc.userPreference &&
55
- this.configurationSvc.userPreference.profileSettings) ||
56
- this.configurationSvc.profileSettings });
57
- const oldUserPref = this.configurationSvc.userPreference;
58
- this.configurationSvc.userPreference = newUserPref;
59
- yield this.http
60
- .put(endpoints.userPref, newUserPref)
61
- .pipe(retry(3), catchError(err => {
62
- this.configurationSvc.userPreference = oldUserPref;
63
- return of(err);
64
- }))
65
- .toPromise();
66
- return true;
67
- }
68
- catch (err) {
69
- return false;
70
- }
71
- });
72
- }
73
- }
74
- UserPreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UserPreferenceService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Injectable });
75
- UserPreferenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UserPreferenceService, providedIn: 'root' });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UserPreferenceService, decorators: [{
77
- type: Injectable,
78
- args: [{
79
- providedIn: 'root',
80
- }]
81
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationsService }]; } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcmVmZXJlbmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdXRpbHMvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLXByZWZlcmVuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUkxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7O0FBQ3pCLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLFFBQVEsRUFBRSxvQ0FBb0M7Q0FDL0MsQ0FBQTtBQUlELE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBb0IsSUFBZ0IsRUFBVSxnQkFBdUM7UUFBakUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBdUI7SUFBSSxDQUFDO0lBRTFGLFVBQVU7UUFDUixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCO2FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLENBQUMsZUFBMEMsRUFBRSxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFBO2FBQ3pDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUssbUJBQW1COztZQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFrQixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDakYsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0tB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QUE7YUFDYjtRQUNILENBQUM7S0FBQTs7bUhBckZVLHFCQUFxQjt1SEFBckIscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IElVc2VyUHJlZmVyZW5jZSB9IGZyb20gJy4vdXNlci1wcmVmZXJlbmNlLm1vZGVsJ1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb25zLnNlcnZpY2UnXHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgcmV0cnksIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJ1xyXG5jb25zdCBlbmRwb2ludHMgPSB7XHJcbiAgdXNlclByZWY6ICcvYXBpcy9wcm90ZWN0ZWQvdjgvdXNlci9wcmVmZXJlbmNlJyxcclxufVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclByZWZlcmVuY2VTZXJ2aWNlIHtcclxuICAvLyBkbyBjaGFuZ2VzIGluIHRoZSBiYWNrZW5kIGFuZCB1cGRhdGUgdGhlIHN0b3JlXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjb25maWd1cmF0aW9uU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UpIHsgfVxyXG5cclxuICBpbml0aWFsaXplKCkge1xyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLnByZWZDaGFuZ2VOb3RpZmllclxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSlcclxuICAgICAgLnN1YnNjcmliZSgoY2hhbmdlZFVzZXJQcmVmPzogUGFydGlhbDxJVXNlclByZWZlcmVuY2U+KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvblN2Yy5pc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2F2ZVVzZXJQcmVmZXJlbmNlKGNoYW5nZWRVc2VyUHJlZilcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBmZXRjaFVzZXJQcmVmZXJlbmNlKCk6IFByb21pc2U8SVVzZXJQcmVmZXJlbmNlPiB7XHJcbiAgICBjb25zdCBwcmVmID0gYXdhaXQgdGhpcy5odHRwLmdldDxJVXNlclByZWZlcmVuY2U+KGVuZHBvaW50cy51c2VyUHJlZikudG9Qcm9taXNlKClcclxuICAgIHJldHVybiBwcmVmXHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlVXNlclByZWZlcmVuY2UoY2hhbmdlZFVzZXJQcmVmPzogUGFydGlhbDxJVXNlclByZWZlcmVuY2U+KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIWNoYW5nZWRVc2VyUHJlZikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5ld1VzZXJQcmVmOiBJVXNlclByZWZlcmVuY2UgPSB7XHJcbiAgICAgICAgLi4udGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlLFxyXG4gICAgICAgIHBpbm5lZEFwcHM6XHJcbiAgICAgICAgICAoY2hhbmdlZFVzZXJQcmVmICYmIGNoYW5nZWRVc2VyUHJlZi5waW5uZWRBcHBzKSB8fFxyXG4gICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSAmJlxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UucGlubmVkQXBwcykgfHxcclxuICAgICAgICAgICcnLFxyXG4gICAgICAgIGlzRGFya01vZGU6IHRoaXMuY29uZmlndXJhdGlvblN2Yy5pc0RhcmtNb2RlLFxyXG4gICAgICAgIGlzUlRMOiB0aGlzLmNvbmZpZ3VyYXRpb25TdmMuaXNSVEwsXHJcbiAgICAgICAgc2VsZWN0ZWRUaGVtZTpcclxuICAgICAgICAgICh0aGlzLmNvbmZpZ3VyYXRpb25TdmMuYWN0aXZlVGhlbWVPYmplY3QgJiZcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0LnRoZW1lQ2xhc3MpIHx8XHJcbiAgICAgICAgICAnJyxcclxuICAgICAgICBzZWxlY3RlZEZvbnQ6XHJcbiAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uU3ZjLmFjdGl2ZUZvbnRPYmplY3QgJiZcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLmFjdGl2ZUZvbnRPYmplY3QuZm9udENsYXNzKSB8fFxyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgc2VsZWN0ZWRMYW5nR3JvdXA6XHJcbiAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZS5zZWxlY3RlZExhbmdHcm91cCkgfHxcclxuICAgICAgICAgICcnLFxyXG4gICAgICAgIHNlbGVjdGVkTG9jYWxlOlxyXG4gICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSAmJlxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2Uuc2VsZWN0ZWRMb2NhbGUpIHx8XHJcbiAgICAgICAgICAnJyxcclxuICAgICAgICBjb2xvclBhbGxldDpcclxuICAgICAgICAgICh0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UgJiZcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlLmNvbG9yUGFsbGV0KSB8fFxyXG4gICAgICAgICAgW10sXHJcbiAgICAgICAgZGVmYXVsdENhcmRUeXBlOlxyXG4gICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSAmJlxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UuZGVmYXVsdENhcmRUeXBlKSB8fFxyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgY29tcGxldGVkQWN0aXZpdHk6XHJcbiAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZS5jb21wbGV0ZWRBY3Rpdml0eSkgfHxcclxuICAgICAgICAgIFtdLFxyXG4gICAgICAgIC4uLihjaGFuZ2VkVXNlclByZWYgfHwge30pLFxyXG4gICAgICAgIGNvbXBsZXRlZFRvdXI6IHRoaXMuY29uZmlndXJhdGlvblN2Yy5jb21wbGV0ZWRUb3VyLFxyXG4gICAgICAgIHByb2ZpbGVTZXR0aW5nczpcclxuICAgICAgICAgICh0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UgJiZcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlLnByb2ZpbGVTZXR0aW5ncykgfHxcclxuICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy5wcm9maWxlU2V0dGluZ3MsXHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgb2xkVXNlclByZWY6IElVc2VyUHJlZmVyZW5jZSB8IG51bGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2VcclxuICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlID0gbmV3VXNlclByZWZcclxuICAgICAgYXdhaXQgdGhpcy5odHRwXHJcbiAgICAgICAgLnB1dChlbmRwb2ludHMudXNlclByZWYsIG5ld1VzZXJQcmVmKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgcmV0cnkoMyksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSA9IG9sZFVzZXJQcmVmXHJcbiAgICAgICAgICAgIHJldHVybiBvZihlcnIpXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICApXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,182 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { of } from 'rxjs';
4
- import { catchError, retry } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- import * as i2 from "./configurations.service";
8
- const PROTECTED_SLAG_V8 = '/apis/protected/v8';
9
- const API_END_POINTS = {
10
- CONTENT: `${PROTECTED_SLAG_V8}/content`,
11
- AUTHORING_CONTENT: `/apis/authApi/hierarchy`,
12
- CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,
13
- SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,
14
- SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,
15
- FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,
16
- FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,
17
- MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,
18
- CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,
19
- CONTENT_SEARCH_V6: `${PROTECTED_SLAG_V8}/content/searchV6`,
20
- CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,
21
- CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,
22
- USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,
23
- CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,
24
- CONTENT_RATING_V2: `${PROTECTED_SLAG_V8}/user/rating/content/average-ratingInfo`,
25
- COLLECTION_HIERARCHY: (type, id) => `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`,
26
- REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,
27
- MARK_AS_COMPLETE_META: (contentId) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`,
28
- };
29
- export class WidgetContentService {
30
- constructor(http, configSvc) {
31
- this.http = http;
32
- this.configSvc = configSvc;
33
- }
34
- fetchMarkAsCompleteMeta(identifier) {
35
- const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier);
36
- return this.http.get(url).toPromise();
37
- }
38
- fetchContent(contentId, hierarchyType = 'detail', additionalFields = []) {
39
- const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`;
40
- return this.http
41
- .post(url, { additionalFields })
42
- .pipe(retry(1));
43
- }
44
- fetchAuthoringContent(contentId) {
45
- const url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}`;
46
- return this.http.get(url).pipe(retry(1));
47
- }
48
- fetchMultipleContent(ids) {
49
- return this.http.get(`${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`);
50
- }
51
- fetchCollectionHierarchy(type, id, pageNumber = 0, pageSize = 1) {
52
- return this.http.get(`${API_END_POINTS.COLLECTION_HIERARCHY(type, id)}?pageNumber=${pageNumber}&pageSize=${pageSize}`);
53
- }
54
- fetchContentLikes(contentIds) {
55
- return this.http
56
- .post(API_END_POINTS.CONTENT_LIKES, contentIds)
57
- .toPromise();
58
- }
59
- fetchContentRatings(contentIds) {
60
- return this.http
61
- .post(`${API_END_POINTS.CONTENT_RATING}/rating`, contentIds)
62
- .toPromise();
63
- }
64
- fetchContentRatingsV2(contentId) {
65
- return this.http
66
- .get(`${API_END_POINTS.CONTENT_RATING_V2}/${contentId}`);
67
- }
68
- fetchContentHistory(contentId) {
69
- return this.http.get(`${API_END_POINTS.CONTENT_HISTORY}/${contentId}`);
70
- }
71
- continueLearning(id, collectionId, collectionType) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
74
- if (collectionType &&
75
- collectionType.toLowerCase() === 'playlist') {
76
- const reqBody = {
77
- contextPathId: collectionId ? collectionId : id,
78
- resourceId: id,
79
- data: JSON.stringify({
80
- timestamp: Date.now(),
81
- contextFullPath: [collectionId, id],
82
- }),
83
- dateAccessed: Date.now(),
84
- contextType: 'playlist',
85
- };
86
- yield this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {
87
- resolve(true);
88
- });
89
- }
90
- else {
91
- const reqBody = {
92
- contextPathId: collectionId ? collectionId : id,
93
- resourceId: id,
94
- data: JSON.stringify({ timestamp: Date.now() }),
95
- dateAccessed: Date.now(),
96
- };
97
- yield this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {
98
- resolve(true);
99
- });
100
- }
101
- }));
102
- });
103
- }
104
- saveContinueLearning(content) {
105
- const url = API_END_POINTS.USER_CONTINUE_LEARNING;
106
- return this.http.post(url, content);
107
- }
108
- setS3Cookie(contentId) {
109
- return this.http
110
- .post(API_END_POINTS.SET_S3_COOKIE, { contentId })
111
- .pipe(catchError(_err => of(true)));
112
- }
113
- setS3ImageCookie() {
114
- return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError(_err => of(true)));
115
- }
116
- fetchManifest(url) {
117
- return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url });
118
- }
119
- fetchWebModuleContent(url) {
120
- return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`);
121
- }
122
- search(req) {
123
- req.query = req.query || '';
124
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_V5, {
125
- request: req,
126
- });
127
- }
128
- searchRegionRecommendation(req) {
129
- req.query = req.query || '';
130
- req.preLabelValue =
131
- (req.preLabelValue || '') +
132
- ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '');
133
- req.filters = Object.assign(Object.assign({}, req.filters), { labels: [req.preLabelValue || ''] });
134
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION, { request: req });
135
- }
136
- searchV6(req) {
137
- req.query = req.query || '';
138
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_V6, req);
139
- }
140
- fetchContentRating(contentId) {
141
- return this.http.get(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
142
- }
143
- deleteContentRating(contentId) {
144
- return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
145
- }
146
- addContentRating(contentId, data) {
147
- return this.http.post(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data);
148
- }
149
- getFirstChildInHierarchy(content) {
150
- if (!(content.children || []).length) {
151
- return content;
152
- }
153
- if (content.contentType === 'Learning Path' &&
154
- !(content.artifactUrl && content.artifactUrl.length)) {
155
- const child = content.children[0];
156
- return this.getFirstChildInHierarchy(child);
157
- }
158
- if (content.contentType === 'Resource' ||
159
- content.contentType === 'Knowledge Artifact' ||
160
- content.contentType === 'Learning Path') {
161
- return content;
162
- }
163
- const firstChild = content.children[0];
164
- const resultContent = this.getFirstChildInHierarchy(firstChild);
165
- return resultContent;
166
- }
167
- getRegistrationStatus(source) {
168
- return this.http.get(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise();
169
- }
170
- fetchConfig(url) {
171
- return this.http.get(url);
172
- }
173
- }
174
- WidgetContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WidgetContentService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Injectable });
175
- WidgetContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WidgetContentService, providedIn: 'root' });
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WidgetContentService, decorators: [{
177
- type: Injectable,
178
- args: [{
179
- providedIn: 'root',
180
- }]
181
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationsService }]; } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy9zcmMvbGliL3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7O0FBUWxELE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUE7QUFFOUMsTUFBTSxjQUFjLEdBQUc7SUFDckIsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLFVBQVU7SUFDdkMsaUJBQWlCLEVBQUUseUJBQXlCO0lBQzVDLGFBQWEsRUFBRSxHQUFHLGlCQUFpQixvQkFBb0I7SUFDdkQsYUFBYSxFQUFFLEdBQUcsaUJBQWlCLG9CQUFvQjtJQUN2RCxtQkFBbUIsRUFBRSxHQUFHLGlCQUFpQix5QkFBeUI7SUFDbEUsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLCtCQUErQjtJQUNuRSxzQkFBc0IsRUFBRSxHQUFHLGlCQUFpQiw0QkFBNEI7SUFDeEUsZ0JBQWdCLEVBQUUsR0FBRyxpQkFBaUIsbUJBQW1CO0lBQ3pELGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLG1CQUFtQjtJQUMxRCxpQkFBaUIsRUFBRSxHQUFHLGlCQUFpQixtQkFBbUI7SUFDMUQsb0NBQW9DLEVBQUUsR0FBRyxpQkFBaUIscUNBQXFDO0lBQy9GLGVBQWUsRUFBRSxHQUFHLGlCQUFpQixlQUFlO0lBQ3BELHNCQUFzQixFQUFFLEdBQUcsaUJBQWlCLHdCQUF3QjtJQUNwRSxjQUFjLEVBQUUsR0FBRyxpQkFBaUIsY0FBYztJQUNsRCxpQkFBaUIsRUFBRSxHQUFHLGlCQUFpQix5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TyxhQUFhLENBQUE7SUFDdEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQWM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQzFGLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7O2tIQXRMVSxvQkFBb0I7c0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IElDb250ZW50UmF0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnRlbnRSYXRpbmcubW9kZWwnXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbnMuc2VydmljZSdcclxuaW1wb3J0IHsgTnNDb250ZW50U3RyaXBNdWx0aXBsZSB9IGZyb20gJy4vY29udGVudC1zdHJpcC1tdWx0aXBsZS5tb2RlbCdcclxuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi93aWRnZXQtY29udGVudC5tb2RlbCdcclxuaW1wb3J0IHsgTlNTZWFyY2ggfSBmcm9tICcuL3dpZGdldC1zZWFyY2gubW9kZWwnXHJcblxyXG4vLyBUT0RPOiBtb3ZlIHRoaXMgaW4gc29tZSBjb21tb24gcGxhY2VcclxuY29uc3QgUFJPVEVDVEVEX1NMQUdfVjggPSAnL2FwaXMvcHJvdGVjdGVkL3Y4J1xyXG5cclxuY29uc3QgQVBJX0VORF9QT0lOVFMgPSB7XHJcbiAgQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnRgLFxyXG4gIEFVVEhPUklOR19DT05URU5UOiBgL2FwaXMvYXV0aEFwaS9oaWVyYXJjaHlgLFxyXG4gIENPTlRFTlRfTElLRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2xpa2VDb3VudGAsXHJcbiAgU0VUX1MzX0NPT0tJRTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvc2V0Q29va2llYCxcclxuICBTRVRfUzNfSU1BR0VfQ09PS0lFOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZXRJbWFnZUNvb2tpZWAsXHJcbiAgRkVUQ0hfTUFOSUZFU1Q6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZU1hbmlmZXN0YCxcclxuICBGRVRDSF9XRUJfTU9EVUxFX0ZJTEVTOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9nZXRXZWJNb2R1bGVGaWxlc2AsXHJcbiAgTVVMVElQTEVfQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvbXVsdGlwbGVgLFxyXG4gIENPTlRFTlRfU0VBUkNIX1Y1OiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZWFyY2hWNWAsXHJcbiAgQ09OVEVOVF9TRUFSQ0hfVjY6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFY2YCxcclxuICBDT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT046IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uYCxcclxuICBDT05URU5UX0hJU1RPUlk6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnlgLFxyXG4gIFVTRVJfQ09OVElOVUVfTEVBUk5JTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnkvY29udGludWVgLFxyXG4gIENPTlRFTlRfUkFUSU5HOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9yYXRpbmdgLFxyXG4gIENPTlRFTlRfUkFUSU5HX1YyOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9yYXRpbmcvY29udGVudC9hdmVyYWdlLXJhdGluZ0luZm9gLFxyXG4gIENPTExFQ1RJT05fSElFUkFSQ0hZOiAodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKSA9PlxyXG4gICAgYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvY29sbGVjdGlvbi8ke3R5cGV9LyR7aWR9YCxcclxuICBSRUdJU1RSQVRJT05fU1RBVFVTOiBgJHtQUk9URUNURURfU0xBR19WOH0vYWRtaW4vdXNlclJlZ2lzdHJhdGlvbi9jaGVja1VzZXJSZWdpc3RyYXRpb25Db250ZW50YCxcclxuICBNQVJLX0FTX0NPTVBMRVRFX01FVEE6IChjb250ZW50SWQ6IHN0cmluZykgPT4gYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvcHJvZ3Jlc3MvJHtjb250ZW50SWR9YCxcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldENvbnRlbnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBmZXRjaE1hcmtBc0NvbXBsZXRlTWV0YShpZGVudGlmaWVyOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gQVBJX0VORF9QT0lOVFMuTUFSS19BU19DT01QTEVURV9NRVRBKGlkZW50aWZpZXIpXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnQoXHJcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcclxuICAgIGhpZXJhcmNoeVR5cGU6ICdhbGwnIHwgJ21pbmltYWwnIHwgJ2RldGFpbCcgPSAnZGV0YWlsJyxcclxuICAgIGFkZGl0aW9uYWxGaWVsZHM6IHN0cmluZ1tdID0gW10sXHJcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlR9LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPSR7aGllcmFyY2h5VHlwZX1gXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PE5zQ29udGVudC5JQ29udGVudD4odXJsLCB7IGFkZGl0aW9uYWxGaWVsZHMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMSkpXHJcbiAgfVxyXG4gIGZldGNoQXV0aG9yaW5nQ29udGVudChjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5BVVRIT1JJTkdfQ09OVEVOVH0vJHtjb250ZW50SWR9YFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50Pih1cmwpLnBpcGUocmV0cnkoMSkpXHJcbiAgfVxyXG4gIGZldGNoTXVsdGlwbGVDb250ZW50KGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4oXHJcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLk1VTFRJUExFX0NPTlRFTlR9LyR7aWRzLmpvaW4oJywnKX1gLFxyXG4gICAgKVxyXG4gIH1cclxuICBmZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIgPSAwLCBwYWdlU2l6ZTogbnVtYmVyID0gMSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb2xsZWN0aW9uSGllcmFyY2h5UmVzcG9uc2U+KFxyXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT0xMRUNUSU9OX0hJRVJBUkNIWShcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIGlkLFxyXG4gICAgICApfT9wYWdlTnVtYmVyPSR7cGFnZU51bWJlcn0mcGFnZVNpemU9JHtwYWdlU2l6ZX1gLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50TGlrZXMoY29udGVudElkczogeyBjb250ZW50X2lkOiBzdHJpbmdbXSB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PHsgW2lkZW50aWZpZXI6IHN0cmluZ106IG51bWJlciB9PihBUElfRU5EX1BPSU5UUy5DT05URU5UX0xJS0VTLCBjb250ZW50SWRzKVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICB9XHJcbiAgZmV0Y2hDb250ZW50UmF0aW5ncyhjb250ZW50SWRzOiB7IGNvbnRlbnRJZHM6IHN0cmluZ1tdIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9L3JhdGluZ2AsIGNvbnRlbnRJZHMpXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50UmF0aW5nc1YyKGNvbnRlbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8SUNvbnRlbnRSYXRpbmc+KGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HX1YyfS8ke2NvbnRlbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50SGlzdG9yeShjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXHJcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfSElTVE9SWX0vJHtjb250ZW50SWR9YCxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFzeW5jIGNvbnRpbnVlTGVhcm5pbmcoaWQ6IHN0cmluZywgY29sbGVjdGlvbklkPzogc3RyaW5nLCBjb2xsZWN0aW9uVHlwZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgcmVzb2x2ZSA9PiB7XHJcbiAgICAgIGlmIChjb2xsZWN0aW9uVHlwZSAmJlxyXG4gICAgICAgIGNvbGxlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdwbGF5bGlzdCcpIHtcclxuICAgICAgICBjb25zdCByZXFCb2R5ID0ge1xyXG4gICAgICAgICAgY29udGV4dFBhdGhJZDogY29sbGVjdGlvbklkID8gY29sbGVjdGlvbklkIDogaWQsXHJcbiAgICAgICAgICByZXNvdXJjZUlkOiBpZCxcclxuICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICBjb250ZXh0RnVsbFBhdGg6IFtjb2xsZWN0aW9uSWQsIGlkXSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZGF0ZUFjY2Vzc2VkOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgY29udGV4dFR5cGU6ICdwbGF5bGlzdCcsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJlcUJvZHkgPSB7XHJcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcclxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxyXG4gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0aW1lc3RhbXA6IERhdGUubm93KCkgfSksXHJcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSlcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzYXZlQ29udGludWVMZWFybmluZyhjb250ZW50OiBOc0NvbnRlbnQuSVZpZXdlckNvbnRpbnVlTGVhcm5pbmdSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLlVTRVJfQ09OVElOVUVfTEVBUk5JTkdcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgY29udGVudClcclxuICB9XHJcblxyXG4gIHNldFMzQ29va2llKFxyXG4gICAgY29udGVudElkOiBzdHJpbmcsXHJcbiAgICAvLyBfcGF0aDogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLlNFVF9TM19DT09LSUUsIHsgY29udGVudElkIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoX2VyciA9PiBvZih0cnVlKSkpXHJcbiAgfVxyXG5cclxuICBzZXRTM0ltYWdlQ29va2llKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0lNQUdFX0NPT0tJRSwge30pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcclxuICB9XHJcblxyXG4gIGZldGNoTWFuaWZlc3QodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KEFQSV9FTkRfUE9JTlRTLkZFVENIX01BTklGRVNULCB7IHVybCB9KVxyXG4gIH1cclxuICBmZXRjaFdlYk1vZHVsZUNvbnRlbnQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7QVBJX0VORF9QT0lOVFMuRkVUQ0hfV0VCX01PRFVMRV9GSUxFU30/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YClcclxuICB9XHJcbiAgc2VhcmNoKHJlcTogTlNTZWFyY2guSVNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+IHtcclxuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJ1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y1LCB7XHJcbiAgICAgIHJlcXVlc3Q6IHJlcSxcclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uKFxyXG4gICAgcmVxOiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0LFxyXG4gICk6IE9ic2VydmFibGU8TnNDb250ZW50U3RyaXBNdWx0aXBsZS5JQ29udGVudFN0cmlwUmVzcG9uc2VBcGk+IHtcclxuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJ1xyXG4gICAgcmVxLnByZUxhYmVsVmFsdWUgPVxyXG4gICAgICAocmVxLnByZUxhYmVsVmFsdWUgfHwgJycpICtcclxuICAgICAgKCh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5jb3VudHJ5KSB8fCAnJylcclxuICAgIHJlcS5maWx0ZXJzID0ge1xyXG4gICAgICAuLi5yZXEuZmlsdGVycyxcclxuICAgICAgbGFiZWxzOiBbcmVxLnByZUxhYmVsVmFsdWUgfHwgJyddLFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPihcclxuICAgICAgQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0hfUkVHSU9OX1JFQ09NTUVOREFUSU9OLFxyXG4gICAgICB7IHJlcXVlc3Q6IHJlcSB9LFxyXG4gICAgKVxyXG4gIH1cclxuICBzZWFyY2hWNihyZXE6IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdD4ge1xyXG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0PihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9WNiwgcmVxKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50UmF0aW5nKGNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHJhdGluZzogbnVtYmVyIH0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgcmF0aW5nOiBudW1iZXIgfT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApXHJcbiAgfVxyXG4gIGRlbGV0ZUNvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApXHJcbiAgfVxyXG4gIGFkZENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcsIGRhdGE6IHsgcmF0aW5nOiBudW1iZXIgfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vJHtjb250ZW50SWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQpOiBOc0NvbnRlbnQuSUNvbnRlbnQge1xyXG4gICAgaWYgKCEoY29udGVudC5jaGlsZHJlbiB8fCBbXSkubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBjb250ZW50XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGNvbnRlbnQuY29udGVudFR5cGUgPT09ICdMZWFybmluZyBQYXRoJyAmJlxyXG4gICAgICAhKGNvbnRlbnQuYXJ0aWZhY3RVcmwgJiYgY29udGVudC5hcnRpZmFjdFVybC5sZW5ndGgpXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgY2hpbGQgPSBjb250ZW50LmNoaWxkcmVuWzBdXHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjaGlsZClcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY29udGVudC5jb250ZW50VHlwZSA9PT0gJ1Jlc291cmNlJyB8fFxyXG4gICAgICBjb250ZW50LmNvbnRlbnRUeXBlID09PSAnS25vd2xlZGdlIEFydGlmYWN0JyB8fFxyXG4gICAgICBjb250ZW50LmNvbnRlbnRUeXBlID09PSAnTGVhcm5pbmcgUGF0aCdcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gY29udGVudFxyXG4gICAgfVxyXG4gICAgY29uc3QgZmlyc3RDaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF1cclxuICAgIGNvbnN0IHJlc3VsdENvbnRlbnQgPSB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShmaXJzdENoaWxkKVxyXG4gICAgcmV0dXJuIHJlc3VsdENvbnRlbnRcclxuICB9XHJcblxyXG4gIGdldFJlZ2lzdHJhdGlvblN0YXR1cyhzb3VyY2U6IHN0cmluZyk6IFByb21pc2U8eyBoYXNBY2Nlc3M6IGJvb2xlYW47IHJlZ2lzdHJhdGlvblVybD86IHN0cmluZyB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLlJFR0lTVFJBVElPTl9TVEFUVVN9LyR7c291cmNlfWApLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbmZpZyh1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpXHJcbiAgfVxyXG59XHJcbiJdfQ==