geonetwork-ui 2.7.2-dev.a33d4e84e → 2.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,7 +20,7 @@ export class AuthService {
20
20
  baseUrl = baseUrl.replace('?', '&');
21
21
  }
22
22
  return baseUrl
23
- .replace('${current_url}', new URL(this.location.path(), window.location.href).toString())
23
+ .replace('${current_url}', new URL(this.location.prepareExternalUrl(this.location.path()), window.location.href).toString())
24
24
  .replace('${lang2}', toLang2(this.translateService.currentLang))
25
25
  .replace('${lang3}', toLang3(this.translateService.currentLang));
26
26
  }
@@ -64,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
64
64
  type: Inject,
65
65
  args: [SETTINGS_URL]
66
66
  }] }, { type: i1.TranslateService }, { type: i2.Location }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLG1FQUFtRSxDQUFBO0FBQ3hHLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxVQUFVLENBQUMsQ0FBQTtBQUUvRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQTtBQUMzRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQVMsV0FBVyxDQUFDLENBQUE7QUFFakUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsMEVBQTBFLENBQUE7QUFDbEgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGFBQWEsQ0FBQyxDQUFBO0FBS3JFLE1BQU0sT0FBTyxXQUFXO0lBS3RCLElBQUksUUFBUTtRQUNWLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDL0IsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyQixDQUFDLE1BQU0sQ0FBQTtRQUNSLDBFQUEwRTtRQUMxRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQ3BFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FBQ0QsT0FBTyxPQUFPO2FBQ1gsT0FBTyxDQUNOLGdCQUFnQixFQUNoQixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQy9EO2FBQ0EsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQy9ELE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUE7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQ2pDLFVBQVUsRUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFlBQ3lDLGlCQUF5QixFQUN4QixrQkFBMEIsRUFDeEIsb0JBQTRCLEVBQzlELGdCQUFrQyxFQUNsQyxRQUFrQjtRQUphLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVE7UUFDeEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFRO1FBQzlELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXZDNUIsaUJBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLElBQUkscUJBQXFCLENBQUE7UUFDOUQsa0JBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLElBQUksc0JBQXNCLENBQUE7UUFDakUsb0JBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLElBQUksd0JBQXdCLENBQUE7SUFzQ3BFLENBQUM7K0dBekNPLFdBQVcsa0JBb0NBLFNBQVMsNkJBQ1QsVUFBVSw2QkFDVixZQUFZO21IQXRDdkIsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFxQ0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxTQUFTOzswQkFDNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxVQUFVOzswQkFDN0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgdG9MYW5nMiwgdG9MYW5nMyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0dONF9MT0dJTl9VUkwgPSBgL2dlb25ldHdvcmsvc3J2L1xcJHtsYW5nM30vY2F0YWxvZy5zaWduaW4/cmVkaXJlY3Q9XFwke2N1cnJlbnRfdXJsfWBcbmV4cG9ydCBjb25zdCBMT0dJTl9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignbG9naW5VcmwnKVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9HTjRfTE9HT1VUX1VSTCA9IGAvZ2VvbmV0d29yay9zaWdub3V0YFxuZXhwb3J0IGNvbnN0IExPR09VVF9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignbG9nb3V0VXJsJylcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfR040X1NFVFRJTkdTX1VSTCA9IGAvZ2VvbmV0d29yay9zcnYvXFwke2xhbmczfS9hZG1pbi5jb25zb2xlIy9vcmdhbml6YXRpb24vdXNlcnM/dXNlck9yR3JvdXA9YFxuZXhwb3J0IGNvbnN0IFNFVFRJTkdTX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdzZXR0aW5nc1VybCcpXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIGJhc2VMb2dpblVybCA9IHRoaXMuYmFzZUxvZ2luVXJsVG9rZW4gfHwgREVGQVVMVF9HTjRfTE9HSU5fVVJMXG4gIGJhc2VMb2dvdXRVcmwgPSB0aGlzLmJhc2VMb2dvdXRVcmxUb2tlbiB8fCBERUZBVUxUX0dONF9MT0dPVVRfVVJMXG4gIGJhc2VTZXR0aW5nc1VybCA9IHRoaXMuYmFzZVNldHRpbmdzVXJsVG9rZW4gfHwgREVGQVVMVF9HTjRfU0VUVElOR1NfVVJMXG5cbiAgZ2V0IGxvZ2luVXJsKCkge1xuICAgIGxldCBiYXNlVXJsID0gdGhpcy5iYXNlTG9naW5VcmxcbiAgICBjb25zdCBsb2NhdGlvbkhhc1F1ZXJ5UGFyYW1zID0gISFuZXcgVVJMKFxuICAgICAgdGhpcy5sb2NhdGlvbi5wYXRoKCksXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgICkuc2VhcmNoXG4gICAgLy8gdGhpcyBpcyBzcGVjaWZpYyB0byBnZW9yY2hlc3RyYSBsb2dpbiBVUkwgYmFzZWQgb24gYSA/bG9naW4gcXVlcnkgcGFyYW1cbiAgICBpZiAoYmFzZVVybC5zdGFydHNXaXRoKCcke2N1cnJlbnRfdXJsfT8nKSAmJiBsb2NhdGlvbkhhc1F1ZXJ5UGFyYW1zKSB7XG4gICAgICBiYXNlVXJsID0gYmFzZVVybC5yZXBsYWNlKCc/JywgJyYnKVxuICAgIH1cbiAgICByZXR1cm4gYmFzZVVybFxuICAgICAgLnJlcGxhY2UoXG4gICAgICAgICcke2N1cnJlbnRfdXJsfScsXG4gICAgICAgIG5ldyBVUkwodGhpcy5sb2NhdGlvbi5wYXRoKCksIHdpbmRvdy5sb2NhdGlvbi5ocmVmKS50b1N0cmluZygpXG4gICAgICApXG4gICAgICAucmVwbGFjZSgnJHtsYW5nMn0nLCB0b0xhbmcyKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZykpXG4gICAgICAucmVwbGFjZSgnJHtsYW5nM30nLCB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZykpXG4gIH1cblxuICBnZXQgbG9nb3V0VXJsKCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VMb2dvdXRVcmxcbiAgfVxuXG4gIGdldCBzZXR0aW5nc1VybCgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlU2V0dGluZ3NVcmwucmVwbGFjZShcbiAgICAgICcke2xhbmczfScsXG4gICAgICB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPR0lOX1VSTCkgcHJpdmF0ZSBiYXNlTG9naW5VcmxUb2tlbjogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9HT1VUX1VSTCkgcHJpdmF0ZSBiYXNlTG9nb3V0VXJsVG9rZW46IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNFVFRJTkdTX1VSTCkgcHJpdmF0ZSBiYXNlU2V0dGluZ3NVcmxUb2tlbjogc3RyaW5nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvblxuICApIHt9XG59XG4iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLG1FQUFtRSxDQUFBO0FBQ3hHLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxVQUFVLENBQUMsQ0FBQTtBQUUvRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQTtBQUMzRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQVMsV0FBVyxDQUFDLENBQUE7QUFFakUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsMEVBQTBFLENBQUE7QUFDbEgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGFBQWEsQ0FBQyxDQUFBO0FBS3JFLE1BQU0sT0FBTyxXQUFXO0lBS3RCLElBQUksUUFBUTtRQUNWLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDL0IsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyQixDQUFDLE1BQU0sQ0FBQTtRQUNSLDBFQUEwRTtRQUMxRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQ3BFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FBQ0QsT0FBTyxPQUFPO2FBQ1gsT0FBTyxDQUNOLGdCQUFnQixFQUNoQixJQUFJLEdBQUcsQ0FDTCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsRUFDdEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3JCLENBQUMsUUFBUSxFQUFFLENBQ2I7YUFDQSxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDL0QsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQTtJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FDakMsVUFBVSxFQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQzNDLENBQUE7SUFDSCxDQUFDO0lBRUQsWUFDeUMsaUJBQXlCLEVBQ3hCLGtCQUEwQixFQUN4QixvQkFBNEIsRUFDOUQsZ0JBQWtDLEVBQ2xDLFFBQWtCO1FBSmEsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBQ3hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtRQUN4Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVE7UUFDOUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBMUM1QixpQkFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxxQkFBcUIsQ0FBQTtRQUM5RCxrQkFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxzQkFBc0IsQ0FBQTtRQUNqRSxvQkFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSSx3QkFBd0IsQ0FBQTtJQXlDcEUsQ0FBQzsrR0E1Q08sV0FBVyxrQkF1Q0EsU0FBUyw2QkFDVCxVQUFVLDZCQUNWLFlBQVk7bUhBekN2QixXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXdDSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUM3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyB0b0xhbmcyLCB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfR040X0xPR0lOX1VSTCA9IGAvZ2VvbmV0d29yay9zcnYvXFwke2xhbmczfS9jYXRhbG9nLnNpZ25pbj9yZWRpcmVjdD1cXCR7Y3VycmVudF91cmx9YFxuZXhwb3J0IGNvbnN0IExPR0lOX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdsb2dpblVybCcpXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0dONF9MT0dPVVRfVVJMID0gYC9nZW9uZXR3b3JrL3NpZ25vdXRgXG5leHBvcnQgY29uc3QgTE9HT1VUX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdsb2dvdXRVcmwnKVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9HTjRfU0VUVElOR1NfVVJMID0gYC9nZW9uZXR3b3JrL3Nydi9cXCR7bGFuZzN9L2FkbWluLmNvbnNvbGUjL29yZ2FuaXphdGlvbi91c2Vycz91c2VyT3JHcm91cD1gXG5leHBvcnQgY29uc3QgU0VUVElOR1NfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3NldHRpbmdzVXJsJylcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgYmFzZUxvZ2luVXJsID0gdGhpcy5iYXNlTG9naW5VcmxUb2tlbiB8fCBERUZBVUxUX0dONF9MT0dJTl9VUkxcbiAgYmFzZUxvZ291dFVybCA9IHRoaXMuYmFzZUxvZ291dFVybFRva2VuIHx8IERFRkFVTFRfR040X0xPR09VVF9VUkxcbiAgYmFzZVNldHRpbmdzVXJsID0gdGhpcy5iYXNlU2V0dGluZ3NVcmxUb2tlbiB8fCBERUZBVUxUX0dONF9TRVRUSU5HU19VUkxcblxuICBnZXQgbG9naW5VcmwoKSB7XG4gICAgbGV0IGJhc2VVcmwgPSB0aGlzLmJhc2VMb2dpblVybFxuICAgIGNvbnN0IGxvY2F0aW9uSGFzUXVlcnlQYXJhbXMgPSAhIW5ldyBVUkwoXG4gICAgICB0aGlzLmxvY2F0aW9uLnBhdGgoKSxcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmXG4gICAgKS5zZWFyY2hcbiAgICAvLyB0aGlzIGlzIHNwZWNpZmljIHRvIGdlb3JjaGVzdHJhIGxvZ2luIFVSTCBiYXNlZCBvbiBhID9sb2dpbiBxdWVyeSBwYXJhbVxuICAgIGlmIChiYXNlVXJsLnN0YXJ0c1dpdGgoJyR7Y3VycmVudF91cmx9PycpICYmIGxvY2F0aW9uSGFzUXVlcnlQYXJhbXMpIHtcbiAgICAgIGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoJz8nLCAnJicpXG4gICAgfVxuICAgIHJldHVybiBiYXNlVXJsXG4gICAgICAucmVwbGFjZShcbiAgICAgICAgJyR7Y3VycmVudF91cmx9JyxcbiAgICAgICAgbmV3IFVSTChcbiAgICAgICAgICB0aGlzLmxvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybCh0aGlzLmxvY2F0aW9uLnBhdGgoKSksXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICAgICAgKS50b1N0cmluZygpXG4gICAgICApXG4gICAgICAucmVwbGFjZSgnJHtsYW5nMn0nLCB0b0xhbmcyKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZykpXG4gICAgICAucmVwbGFjZSgnJHtsYW5nM30nLCB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZykpXG4gIH1cblxuICBnZXQgbG9nb3V0VXJsKCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VMb2dvdXRVcmxcbiAgfVxuXG4gIGdldCBzZXR0aW5nc1VybCgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlU2V0dGluZ3NVcmwucmVwbGFjZShcbiAgICAgICcke2xhbmczfScsXG4gICAgICB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPR0lOX1VSTCkgcHJpdmF0ZSBiYXNlTG9naW5VcmxUb2tlbjogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9HT1VUX1VSTCkgcHJpdmF0ZSBiYXNlTG9nb3V0VXJsVG9rZW46IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNFVFRJTkdTX1VSTCkgcHJpdmF0ZSBiYXNlU2V0dGluZ3NVcmxUb2tlbjogc3RyaW5nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvblxuICApIHt9XG59XG4iXX0=
@@ -1,14 +1,14 @@
1
+ import { HttpClient, HttpEventType } from '@angular/common/http';
1
2
  import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
- import { catchError, filter, map, mergeMap, shareReplay, tap, } from 'rxjs/operators';
3
3
  import { MeApiService, RecordsApiService, RegistriesApiService, ToolsApiService, UserfeedbackApiService, UsersApiService, } from '../../../../../../../libs/data-access/gn4/src';
4
- import { Gn4PlatformMapper } from './gn4-platform.mapper';
5
- import { ltr } from 'semver';
6
- import { HttpClient, HttpEventType } from '@angular/common/http';
4
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src';
7
5
  import { noDuplicateFileName } from '../../../../../../../libs/util/shared/src';
8
- import { combineLatest, forkJoin, of, switchMap, throwError, } from 'rxjs';
9
6
  import { TranslateService } from '@ngx-translate/core';
10
- import { toLang3 } from '../../../../../../../libs/util/i18n/src';
7
+ import { combineLatest, forkJoin, of, switchMap, throwError, } from 'rxjs';
8
+ import { catchError, filter, map, mergeMap, shareReplay, tap, } from 'rxjs/operators';
9
+ import { ltr } from 'semver';
11
10
  import { Gn4SettingsService } from '../settings/gn4-settings.service';
11
+ import { Gn4PlatformMapper } from './gn4-platform.mapper';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "../../../../../../../libs/data-access/gn4/src";
14
14
  import * as i2 from "./gn4-platform.mapper";
@@ -43,6 +43,9 @@ export class Gn4PlatformService {
43
43
  console.warn('Error while loading gnui language package');
44
44
  return of({});
45
45
  }), shareReplay(1));
46
+ this.me$ = this.disableAuth
47
+ ? of(null)
48
+ : of(true).pipe(switchMap(() => this.meApi.getMe()), switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
46
49
  /**
47
50
  * A map of already loaded thesauri (groups of keywords); the key is a URI
48
51
  * @private
@@ -53,9 +56,6 @@ export class Gn4PlatformService {
53
56
  .pipe(map((thesaurus) => {
54
57
  return thesaurus[0];
55
58
  }), shareReplay(1));
56
- this.me$ = this.disableAuth
57
- ? of(null)
58
- : this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
59
59
  this.isUserAnonymous$ = this.me$.pipe(map((user) => !user || !('id' in user)));
60
60
  this.users$ = this.usersApi.getUsers().pipe(map((users) => users.map((user) => this.mapper.userFromApi(user))), shareReplay());
61
61
  }
@@ -267,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
267
267
  }, {
268
268
  type: Optional
269
269
  }] }] });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDNUUsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsZUFBZSxHQUNoQixNQUFNLCtDQUErQyxDQUFBO0FBWXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQU1oRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUMvRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFFBQVEsRUFFUixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLE1BQU0sQ0FBQTtBQUNiLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTs7Ozs7OztBQUVyRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUE7QUFFN0IsTUFB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QUUxQixJQUFJLGVBQWUsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDbEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFDaEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBQzlELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNyRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUMxQixDQUFDOytHQW5ZVSxrQkFBa0Isb1ZBcUNuQixZQUFZO21IQXJDWCxrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7OzBCQXNDTixNQUFNOzJCQUFDLFlBQVk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgbWVyZ2VNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgTWVBcGlTZXJ2aWNlLFxuICBSZWNvcmRzQXBpU2VydmljZSxcbiAgUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gIFRvb2xzQXBpU2VydmljZSxcbiAgVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgVXNlcnNBcGlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQge1xuICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gIFVwbG9hZEV2ZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3VzZXIvdXNlci5tb2RlbCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIEtleXdvcmQsXG4gIE9yZ2FuaXphdGlvbixcbiAgVXNlckZlZWRiYWNrLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBHbjRQbGF0Zm9ybU1hcHBlciB9IGZyb20gJy4vZ240LXBsYXRmb3JtLm1hcHBlcidcbmltcG9ydCB7IGx0ciB9IGZyb20gJ3NlbXZlcidcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7XG4gIEtleXdvcmRBcGlSZXNwb25zZSxcbiAgVGhlc2F1cnVzQXBpUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3RoZXNhdXJ1cydcbmltcG9ydCB7IG5vRHVwbGljYXRlRmlsZU5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZvcmtKb2luLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgR240U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2V0dGluZ3MvZ240LXNldHRpbmdzLnNlcnZpY2UnXG5cbmNvbnN0IG1pbkFwaVZlcnNpb24gPSAnNC4yLjInXG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX0FVVEggPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ2duRGlzYWJsZUF1dGgnLCB7XG4gIGZhY3Rvcnk6ICgpID0+IGZhbHNlLFxufSlcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEduNFBsYXRmb3JtU2VydmljZSBpbXBsZW1lbnRzIFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZSA9ICdHZW9OZXR3b3JrJ1xuICBwcml2YXRlIHJlYWRvbmx5IG1lJDogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPlxuICBwcml2YXRlIHJlYWRvbmx5IGlzVXNlckFub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgcHJpdmF0ZSByZWFkb25seSBnblBhcnNlVmVyc2lvbiA9ICc0LjIuNSdcblxuICBwcml2YXRlIGtleVRyYW5zbGF0aW9ucyQgPSB0aGlzLnRvb2xzQXBpU2VydmljZVxuICAgIC5nZXRUcmFuc2xhdGlvbnNQYWNrYWdlMSgnZ251aScpXG4gICAgLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGlsZSBsb2FkaW5nIGdudWkgbGFuZ3VhZ2UgcGFja2FnZScpXG4gICAgICAgIHJldHVybiBvZih7fSlcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBhbHJlYWR5IGxvYWRlZCB0aGVzYXVyaSAoZ3JvdXBzIG9mIGtleXdvcmRzKTsgdGhlIGtleSBpcyBhIFVSSVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBrZXl3b3Jkc0J5VGhlc2F1cmk6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8S2V5d29yZFtdPj4gPSB7fVxuXG4gIHByaXZhdGUgZ2V0IGxhbmczKCkge1xuICAgIHJldHVybiB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVBcGk6IE1lQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzQXBpOiBVc2Vyc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBwZXI6IEduNFBsYXRmb3JtTWFwcGVyLFxuICAgIHByaXZhdGUgdG9vbHNBcGlTZXJ2aWNlOiBUb29sc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RyaWVzQXBpU2VydmljZTogUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcmZlZWRiYWNrQXBpU2VydmljZTogVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWNvcmRzQXBpU2VydmljZTogUmVjb3Jkc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXR0aW5nc1NlcnZpY2U6IEduNFNldHRpbmdzU2VydmljZSxcbiAgICBASW5qZWN0KERJU0FCTEVfQVVUSCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkaXNhYmxlQXV0aDogYm9vbGVhblxuICApIHtcbiAgICB0aGlzLm1lJCA9IHRoaXMuZGlzYWJsZUF1dGhcbiAgICAgID8gb2YobnVsbClcbiAgICAgIDogdGhpcy5tZUFwaS5nZXRNZSgpLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChhcGlVc2VyKSA9PiB0aGlzLm1hcHBlci51c2VyRnJvbU1lQXBpKGFwaVVzZXIpKSxcbiAgICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICAgIClcblxuICAgIHRoaXMuaXNVc2VyQW5vbnltb3VzJCA9IHRoaXMubWUkLnBpcGUoXG4gICAgICBtYXAoKHVzZXIpID0+ICF1c2VyIHx8ICEoJ2lkJyBpbiB1c2VyKSlcbiAgICApXG5cbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMudXNlcnNBcGkuZ2V0VXNlcnMoKS5waXBlKFxuICAgICAgbWFwKCh1c2VycykgPT4gdXNlcnMubWFwKCh1c2VyKSA9PiB0aGlzLm1hcHBlci51c2VyRnJvbUFwaSh1c2VyKSkpLFxuICAgICAgc2hhcmVSZXBsYXkoKVxuICAgIClcbiAgfVxuXG4gIGdldEZlZWRiYWNrc0FsbG93ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFsbG93RmVlZGJhY2tzJFxuICB9XG5cbiAgZ2V0QWxsb3dFZGl0SGFydmVzdGVkTWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFsbG93RWRpdEhhcnZlc3RlZCRcbiAgfVxuXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlXG4gIH1cblxuICBnZXRBcGlWZXJzaW9uKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb24kLnBpcGUoXG4gICAgICB0YXAoKHZlcnNpb24pID0+IHtcbiAgICAgICAgaWYgKGx0cih2ZXJzaW9uLCBtaW5BcGlWZXJzaW9uKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBHbjQgQVBJIHZlcnNpb24gaXMgbm90IGNvbXBhdGlibGUuXFxuTWluaW11bTogJHttaW5BcGlWZXJzaW9ufVxcbllvdXIgdmVyc2lvbjogJHt2ZXJzaW9ufWBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0TWUoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5tZSRcbiAgfVxuXG4gIGlzQW5vbnltb3VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzVXNlckFub255bW91cyRcbiAgfVxuXG4gIGdldE9yZ2FuaXphdGlvbnMoKTogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25bXT4ge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGdldFVzZXJzQnlPcmdhbml6YXRpb24ob3JnYW5pc2F0aW9uOiBPcmdhbml6YXRpb24pOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0VXNlcnMoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJzJFxuICB9XG5cbiAgdHJhbnNsYXRlS2V5KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAvLyBpZiB0aGUga2V5IGlzIGEgVVJJLCB1c2UgdGhlIHJlZ2lzdHJpZXMgQVBJIHRvIGxvb2sgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgIGlmIChrZXkubWF0Y2goL15odHRwcz86XFwvXFwvLykpIHtcbiAgICAgIC8vIHRoZSB0aGVzYXVydXMgVVJJIGlzIGluZmVycmVkIGJ5IHJlbW92aW5nIGEgcGFydCBvZiB0aGUga2V5d29yZCBVUklcbiAgICAgIC8vIHRoaXMgaXMgbm90IGV4YWN0IHNjaWVuY2UgYnV0IGl0J3MgT0ssIHdlJ2xsIHN0aWxsIGVuZCB1cCBsb2FkaW5nIGEgYnVuY2ggb2Yga2V5d29yZHMgYXQgb25jZSBhbnl3YXlcbiAgICAgIGNvbnN0IHRoZXNhdXJ1c1VyaSA9IGtleS5yZXBsYWNlKC9cXC8oW14vXSspJC8sICcvJylcbiAgICAgIHJldHVybiB0aGlzLmdldEtleXdvcmRzQnlVcmkodGhlc2F1cnVzVXJpKS5waXBlKFxuICAgICAgICBtYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGVzYXVydXMpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmtleSA9PT0ga2V5KSByZXR1cm4gaXRlbS5sYWJlbFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ga2V5XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmtleVRyYW5zbGF0aW9ucyQucGlwZShtYXAoKHRyYW5zbGF0aW9ucykgPT4gdHJhbnNsYXRpb25zW2tleV0pKVxuICB9XG5cbiAgcHJpdmF0ZSBhbGxUaGVzYXVydXMkID0gdGhpcy5odHRwQ2xpZW50XG4gICAgLmdldChcbiAgICAgIGAke3RoaXMucmVnaXN0cmllc0FwaVNlcnZpY2UuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0vdGhlc2F1cnVzP19jb250ZW50X3R5cGU9anNvbmBcbiAgICApXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICByZXR1cm4gdGhlc2F1cnVzWzBdIGFzIFRoZXNhdXJ1c0FwaVJlc3BvbnNlW11cbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgc2VhcmNoS2V5d29yZHMoXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBrZXl3b3JkVHlwZXM6IEtleXdvcmRUeXBlW11cbiAgKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+IHtcbiAgICBjb25zdCBrZXl3b3JkcyQ6IE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+ID0gdGhpcy5hbGxUaGVzYXVydXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRoZXNhdXJ1cykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRoZXNhdXJpID0gW11cbiAgICAgICAga2V5d29yZFR5cGVzLm1hcCgoa2V5d29yZFR5cGUpID0+IHtcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLnB1c2goXG4gICAgICAgICAgICAuLi50aGVzYXVydXMuZmlsdGVyKCh0aGVzKSA9PiB0aGVzLmRuYW1lID09PSBrZXl3b3JkVHlwZSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMoXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdGhpcy5sYW5nMyxcbiAgICAgICAgICAxMCxcbiAgICAgICAgICAwLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWRUaGVzYXVyaS5tYXAoKHRoZXMpID0+IHRoZXMua2V5KSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGAqJHtxdWVyeX0qYFxuICAgICAgICApIGFzIE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+XG4gICAgICB9KVxuICAgIClcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtrZXl3b3JkcyQsIHRoaXMuYWxsVGhlc2F1cnVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtrZXl3b3JkcywgdGhlc2F1cnVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVydXMsIHRoaXMubGFuZzMpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldEtleXdvcmRzQnlVcmkodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEtleXdvcmRbXT4ge1xuICAgIGlmICh0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldKSB7XG4gICAgICByZXR1cm4gdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXVxuICAgIH1cbiAgICBjb25zdCBrZXl3b3JkcyQgPSB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLnNlYXJjaEtleXdvcmRzKFxuICAgICAgbnVsbCxcbiAgICAgIHRoaXMubGFuZzMsXG4gICAgICAxMDAwLFxuICAgICAgMCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIGAke3VyaX0qYFxuICAgICkgYXMgT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT5cblxuICAgIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV0gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIGtleXdvcmRzJCxcbiAgICAgIHRoaXMuYWxsVGhlc2F1cnVzJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChba2V5d29yZHMsIHRoZXNhdXJ1c10pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cnVzLCB0aGlzLmxhbmczKVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICAgIHJldHVybiB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldXG4gIH1cblxuICBzZWFyY2hLZXl3b3Jkc0luVGhlc2F1cnVzKHF1ZXJ5OiBzdHJpbmcsIHRoZXNhdXJ1c0lkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hbGxUaGVzYXVydXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRoZXNhdXJpKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmlwcGVkVGhlc2F1cnVzSWQgPSB0aGVzYXVydXNJZC5yZXBsYWNlKFxuICAgICAgICAgICdnZW9uZXR3b3JrLnRoZXNhdXJ1cy4nLFxuICAgICAgICAgICcnXG4gICAgICAgIClcbiAgICAgICAgaWYgKCF0aGVzYXVyaS5maW5kKCh0aGVzKSA9PiB0aGVzLmtleSA9PT0gc3RyaXBwZWRUaGVzYXVydXNJZCkpXG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZVxuICAgICAgICAgIC5zZWFyY2hLZXl3b3JkcyhcbiAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgdGhpcy5sYW5nMyxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgW3N0cmlwcGVkVGhlc2F1cnVzSWRdLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgIClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoa2V5d29yZHM6IEtleXdvcmRBcGlSZXNwb25zZVtdKSA9PlxuICAgICAgICAgICAgICB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJpLCB0aGlzLmxhbmczKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0VXNlckZlZWRiYWNrcyh1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJGZWVkYmFja1tdPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcmZlZWRiYWNrQXBpU2VydmljZS5nZXRVc2VyQ29tbWVudHModXVpZCkucGlwZShcbiAgICAgIG1hcCgodXNlckZlZWRiYWNrcykgPT5cbiAgICAgICAgdXNlckZlZWRiYWNrcy5tYXAodGhpcy5tYXBwZXIudXNlckZlZWRiYWNrc0Zyb21BcGkpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgdXNlciBmZWVkYmFja3M6JywgZXJyb3IpXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHBvc3RVc2VyRmVlZGJhY2tzKHVzZXJGZWVkYmFjazogVXNlckZlZWRiYWNrKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgbWFwcGVkVXNlckZlZWRCYWNrID0gdGhpcy5tYXBwZXIudXNlckZlZWRiYWNrc1RvQXBpKHVzZXJGZWVkYmFjaylcbiAgICByZXR1cm4gdGhpcy51c2VyZmVlZGJhY2tBcGlTZXJ2aWNlLm5ld1VzZXJGZWVkYmFjayhtYXBwZWRVc2VyRmVlZEJhY2spLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBvc3RpbmcgdXNlciBmZWVkYmFjazonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0UmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QWxsUmVzb3VyY2VzKHJlY29yZFV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHJlc291cmNlcykgPT5cbiAgICAgICAgcmVzb3VyY2VzLm1hcCgocikgPT4gKHtcbiAgICAgICAgICB1cmw6IG5ldyBVUkwoci51cmwpLFxuICAgICAgICAgIGZpbGVOYW1lOiByLmZpbGVuYW1lLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBjbGVhblJlY29yZEF0dGFjaG1lbnRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QXNzb2NpYXRlZFJlc291cmNlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllciksXG4gICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFsbFJlc291cmNlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllciksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2Fzc29jaWF0ZWQsIGF0dGFjaG1lbnRzXSkgPT4ge1xuICAgICAgICBjb25zdCB7IG9ubGluZXMgPSBbXSwgdGh1bWJuYWlscyA9IFtdIH0gPSBhc3NvY2lhdGVkXG5cbiAgICAgICAgY29uc3QgdXJsc1RvS2VlcCA9IFtcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShvbmxpbmVzKSA/IG9ubGluZXMgOiBbXSksXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkodGh1bWJuYWlscykgPyB0aHVtYm5haWxzIDogW10pLFxuICAgICAgICBdLm1hcCgocmVzb3VyY2UpID0+IE9iamVjdC52YWx1ZXMocmVzb3VyY2UudXJsKVswXSlcbiAgICAgICAgY29uc3QgZmlsZVRvRGVsZXRlID0gYXR0YWNobWVudHMucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBhdHRhY2htZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXVybHNUb0tlZXAuaW5jbHVkZXMoYXR0YWNobWVudC51cmwpICYmXG4gICAgICAgICAgICBhdHRhY2htZW50LmZpbGVuYW1lICE9PSAnZGF0YXZpekNvbmZpZy5qc29uJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgYWNjLnB1c2goYXR0YWNobWVudC5maWxlbmFtZSlcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LCBbXSlcblxuICAgICAgICByZXR1cm4gZmlsZVRvRGVsZXRlXG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKChmaWxlc1RvRGVsZXRlKSA9PlxuICAgICAgICBmaWxlc1RvRGVsZXRlLmxlbmd0aFxuICAgICAgICAgID8gZm9ya0pvaW4oXG4gICAgICAgICAgICAgIGZpbGVzVG9EZWxldGUubWFwKChmaWxlbmFtZSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmRlbFJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgcmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKS5waXBlKG1hcCgoKSA9PiB1bmRlZmluZWQpKVxuICAgICAgICAgIDogb2YodW5kZWZpbmVkKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdoaWxlIGNsZWFuaW5nIGF0dGFjaG1lbnRzOicsIGVycm9yKVxuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHVwbG9hZEZpbGUocmVjb3JkVXVpZDogc3RyaW5nLCBmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxVcGxvYWRFdmVudD4ge1xuICAgIGxldCBzaXplQnl0ZXMgPSAtMVxuICAgIHJldHVybiB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlXG4gICAgICAucHV0UmVzb3VyY2UocmVjb3JkVXVpZCwgZmlsZSwgJ3B1YmxpYycsIHVuZGVmaW5lZCwgJ2V2ZW50cycsIHRydWUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgICAgICBzaXplQnl0ZXMgPSBldmVudC50b3RhbFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3Byb2dyZXNzJyxcbiAgICAgICAgICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICAgICAgPyBNYXRoLnJvdW5kKCgxMDAgKiBldmVudC5sb2FkZWQpIC8gZXZlbnQudG90YWwpXG4gICAgICAgICAgICAgICAgOiAwLFxuICAgICAgICAgICAgfSBhcyBVcGxvYWRFdmVudFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKGV2ZW50LmJvZHkudXJsKSxcbiAgICAgICAgICAgICAgICBmaWxlTmFtZTogZXZlbnQuYm9keS5maWxlbmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2l6ZUJ5dGVzLFxuICAgICAgICAgICAgfSBhcyBVcGxvYWRFdmVudFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiAhIWV2ZW50KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvcj8ubWVzc2FnZSA/PyBlcnJvci5tZXNzYWdlKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuICBnZXRGaWxlQ29udGVudCh1cmw6IFVSTCB8IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5odHRwQ2xpZW50LmdldCh1cmwudG9TdHJpbmcoKSwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KSxcbiAgICAgIHRoaXMuZ2V0QXBpVmVyc2lvbigpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt0ZXh0LCB2ZXJzaW9uXSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHRleHQpXG5cbiAgICAgICAgaWYgKHZlcnNpb24gPiB0aGlzLmduUGFyc2VWZXJzaW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlZFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IHRoaXMuZGVjb2RlQmFzZTY0KHBhcnNlZClcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZGVjb2RlQmFzZTY0KGJhc2U2NCkge1xuICAgIGNvbnN0IHRleHQgPSBhdG9iKGJhc2U2NClcbiAgICBjb25zdCBsZW5ndGggPSB0ZXh0Lmxlbmd0aFxuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ5dGVzW2ldID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgfVxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShieXRlcylcbiAgfVxuXG4gIGF0dGFjaEZpbGVUb1JlY29yZChcbiAgICByZWNvcmRVdWlkOiBzdHJpbmcsXG4gICAgZmlsZTogRmlsZSxcbiAgICByZW1vdmVEdXBsaWNhdGUgPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVjb3JkQXR0YWNobWVudHMpID0+IHJlY29yZEF0dGFjaG1lbnRzLm1hcCgocikgPT4gci5maWxlTmFtZSkpLFxuICAgICAgc3dpdGNoTWFwKChmaWxlTmFtZXMpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWVcblxuICAgICAgICBpZiAocmVtb3ZlRHVwbGljYXRlICYmIGZpbGVOYW1lcy5pbmNsdWRlcyhmaWxlLm5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UocmVjb3JkVXVpZCwgZmlsZU5hbWUpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlQ29weSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmaW5hbEZpbGVOYW1lID0gbm9EdXBsaWNhdGVGaWxlTmFtZShmaWxlTmFtZSwgZmlsZU5hbWVzKVxuICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaW5hbEZpbGVOYW1lLCB7IHR5cGU6IGZpbGUudHlwZSB9KVxuICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgc3VwcG9ydHNBdXRoZW50aWNhdGlvbigpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZUF1dGhcbiAgfVxufVxuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQWlCNUUsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsZUFBZSxHQUNoQixNQUFNLCtDQUErQyxDQUFBO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLFFBQVEsRUFFUixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLE1BQU0sQ0FBQTtBQUNiLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsV0FBVyxFQUNYLEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7Ozs7Ozs7QUFFekQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFBO0FBRTdCLE1B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cENsaWVudCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgS2V5d29yZEFwaVJlc3BvbnNlLFxuICBUaGVzYXVydXNBcGlSZXNwb25zZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYydcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIEtleXdvcmQsXG4gIE9yZ2FuaXphdGlvbixcbiAgVXNlckZlZWRiYWNrLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3RoZXNhdXJ1cydcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3VzZXIvdXNlci5tb2RlbCdcbmltcG9ydCB7XG4gIFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgVXBsb2FkRXZlbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgTWVBcGlTZXJ2aWNlLFxuICBSZWNvcmRzQXBpU2VydmljZSxcbiAgUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gIFRvb2xzQXBpU2VydmljZSxcbiAgVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgVXNlcnNBcGlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgbm9EdXBsaWNhdGVGaWxlTmFtZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBsdHIgfSBmcm9tICdzZW12ZXInXG5pbXBvcnQgeyBHbjRTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXR0aW5ncy9nbjQtc2V0dGluZ3Muc2VydmljZSdcbmltcG9ydCB7IEduNFBsYXRmb3JtTWFwcGVyIH0gZnJvbSAnLi9nbjQtcGxhdGZvcm0ubWFwcGVyJ1xuXG5jb25zdCBtaW5BcGlWZXJzaW9uID0gJzQuMi4yJ1xuXG5leHBvcnQgY29uc3QgRElTQUJMRV9BVVRIID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdnbkRpc2FibGVBdXRoJywge1xuICBmYWN0b3J5OiAoKSA9PiBmYWxzZSxcbn0pXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHbjRQbGF0Zm9ybVNlcnZpY2UgaW1wbGVtZW50cyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHR5cGUgPSAnR2VvTmV0d29yaydcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VycyQ6IE9ic2VydmFibGU8VXNlck1vZGVsW10+XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNVc2VyQW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBwcml2YXRlIHJlYWRvbmx5IGduUGFyc2VWZXJzaW9uID0gJzQuMi41J1xuXG4gIHByaXZhdGUga2V5VHJhbnNsYXRpb25zJCA9IHRoaXMudG9vbHNBcGlTZXJ2aWNlXG4gICAgLmdldFRyYW5zbGF0aW9uc1BhY2thZ2UxKCdnbnVpJylcbiAgICAucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ251aSBsYW5ndWFnZSBwYWNrYWdlJylcbiAgICAgICAgcmV0dXJuIG9mKHt9KVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBwcml2YXRlIG1lJCA9IHRoaXMuZGlzYWJsZUF1dGhcbiAgICA/IG9mKG51bGwpXG4gICAgOiBvZih0cnVlKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5tZUFwaS5nZXRNZSgpKSxcbiAgICAgICAgc3dpdGNoTWFwKChhcGlVc2VyKSA9PiB0aGlzLm1hcHBlci51c2VyRnJvbU1lQXBpKGFwaVVzZXIpKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICAgKVxuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBhbHJlYWR5IGxvYWRlZCB0aGVzYXVyaSAoZ3JvdXBzIG9mIGtleXdvcmRzKTsgdGhlIGtleSBpcyBhIFVSSVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBrZXl3b3Jkc0J5VGhlc2F1cmk6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8S2V5d29yZFtdPj4gPSB7fVxuXG4gIHByaXZhdGUgZ2V0IGxhbmczKCkge1xuICAgIHJldHVybiB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVBcGk6IE1lQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzQXBpOiBVc2Vyc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBwZXI6IEduNFBsYXRmb3JtTWFwcGVyLFxuICAgIHByaXZhdGUgdG9vbHNBcGlTZXJ2aWNlOiBUb29sc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RyaWVzQXBpU2VydmljZTogUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcmZlZWRiYWNrQXBpU2VydmljZTogVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWNvcmRzQXBpU2VydmljZTogUmVjb3Jkc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXR0aW5nc1NlcnZpY2U6IEduNFNldHRpbmdzU2VydmljZSxcbiAgICBASW5qZWN0KERJU0FCTEVfQVVUSCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkaXNhYmxlQXV0aDogYm9vbGVhblxuICApIHtcbiAgICB0aGlzLmlzVXNlckFub255bW91cyQgPSB0aGlzLm1lJC5waXBlKFxuICAgICAgbWFwKCh1c2VyKSA9PiAhdXNlciB8fCAhKCdpZCcgaW4gdXNlcikpXG4gICAgKVxuXG4gICAgdGhpcy51c2VycyQgPSB0aGlzLnVzZXJzQXBpLmdldFVzZXJzKCkucGlwZShcbiAgICAgIG1hcCgodXNlcnMpID0+IHVzZXJzLm1hcCgodXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21BcGkodXNlcikpKSxcbiAgICAgIHNoYXJlUmVwbGF5KClcbiAgICApXG4gIH1cblxuICBnZXRGZWVkYmFja3NBbGxvd2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzU2VydmljZS5hbGxvd0ZlZWRiYWNrcyRcbiAgfVxuXG4gIGdldEFsbG93RWRpdEhhcnZlc3RlZE1kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzU2VydmljZS5hbGxvd0VkaXRIYXJ2ZXN0ZWQkXG4gIH1cblxuICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHlwZVxuICB9XG5cbiAgZ2V0QXBpVmVyc2lvbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9uJC5waXBlKFxuICAgICAgdGFwKCh2ZXJzaW9uKSA9PiB7XG4gICAgICAgIGlmIChsdHIodmVyc2lvbiwgbWluQXBpVmVyc2lvbikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgR240IEFQSSB2ZXJzaW9uIGlzIG5vdCBjb21wYXRpYmxlLlxcbk1pbmltdW06ICR7bWluQXBpVmVyc2lvbn1cXG5Zb3VyIHZlcnNpb246ICR7dmVyc2lvbn1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldE1lKCk6IE9ic2VydmFibGU8VXNlck1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMubWUkXG4gIH1cblxuICBpc0Fub255bW91cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5pc1VzZXJBbm9ueW1vdXMkXG4gIH1cblxuICBnZXRPcmdhbml6YXRpb25zKCk6IE9ic2VydmFibGU8T3JnYW5pemF0aW9uW10+IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRVc2Vyc0J5T3JnYW5pemF0aW9uKG9yZ2FuaXNhdGlvbjogT3JnYW5pemF0aW9uKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGdldFVzZXJzKCk6IE9ic2VydmFibGU8VXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VycyRcbiAgfVxuXG4gIHRyYW5zbGF0ZUtleShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgLy8gaWYgdGhlIGtleSBpcyBhIFVSSSwgdXNlIHRoZSByZWdpc3RyaWVzIEFQSSB0byBsb29rIGZvciB0aGUgdHJhbnNsYXRpb25cbiAgICBpZiAoa2V5Lm1hdGNoKC9eaHR0cHM/OlxcL1xcLy8pKSB7XG4gICAgICAvLyB0aGUgdGhlc2F1cnVzIFVSSSBpcyBpbmZlcnJlZCBieSByZW1vdmluZyBhIHBhcnQgb2YgdGhlIGtleXdvcmQgVVJJXG4gICAgICAvLyB0aGlzIGlzIG5vdCBleGFjdCBzY2llbmNlIGJ1dCBpdCdzIE9LLCB3ZSdsbCBzdGlsbCBlbmQgdXAgbG9hZGluZyBhIGJ1bmNoIG9mIGtleXdvcmRzIGF0IG9uY2UgYW55d2F5XG4gICAgICBjb25zdCB0aGVzYXVydXNVcmkgPSBrZXkucmVwbGFjZSgvXFwvKFteL10rKSQvLCAnLycpXG4gICAgICByZXR1cm4gdGhpcy5nZXRLZXl3b3Jkc0J5VXJpKHRoZXNhdXJ1c1VyaSkucGlwZShcbiAgICAgICAgbWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhlc2F1cnVzKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgPT09IGtleSkgcmV0dXJuIGl0ZW0ubGFiZWxcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGtleVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5rZXlUcmFuc2xhdGlvbnMkLnBpcGUobWFwKCh0cmFuc2xhdGlvbnMpID0+IHRyYW5zbGF0aW9uc1trZXldKSlcbiAgfVxuXG4gIHByaXZhdGUgYWxsVGhlc2F1cnVzJCA9IHRoaXMuaHR0cENsaWVudFxuICAgIC5nZXQoXG4gICAgICBgJHt0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLmNvbmZpZ3VyYXRpb24uYmFzZVBhdGh9L3RoZXNhdXJ1cz9fY29udGVudF90eXBlPWpzb25gXG4gICAgKVxuICAgIC5waXBlKFxuICAgICAgbWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoZXNhdXJ1c1swXSBhcyBUaGVzYXVydXNBcGlSZXNwb25zZVtdXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gIHNlYXJjaEtleXdvcmRzKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAga2V5d29yZFR5cGVzOiBLZXl3b3JkVHlwZVtdXG4gICk6IE9ic2VydmFibGU8S2V5d29yZFtdPiB7XG4gICAgY29uc3Qga2V5d29yZHMkOiBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPiA9IHRoaXMuYWxsVGhlc2F1cnVzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUaGVzYXVyaSA9IFtdXG4gICAgICAgIGtleXdvcmRUeXBlcy5tYXAoKGtleXdvcmRUeXBlKSA9PiB7XG4gICAgICAgICAgc2VsZWN0ZWRUaGVzYXVyaS5wdXNoKFxuICAgICAgICAgICAgLi4udGhlc2F1cnVzLmZpbHRlcigodGhlcykgPT4gdGhlcy5kbmFtZSA9PT0ga2V5d29yZFR5cGUpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLnNlYXJjaEtleXdvcmRzKFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHRoaXMubGFuZzMsXG4gICAgICAgICAgMTAsXG4gICAgICAgICAgMCxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIHNlbGVjdGVkVGhlc2F1cmkubWFwKCh0aGVzKSA9PiB0aGVzLmtleSksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBgKiR7cXVlcnl9KmBcbiAgICAgICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuICAgICAgfSlcbiAgICApXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChba2V5d29yZHMkLCB0aGlzLmFsbFRoZXNhdXJ1cyRdKS5waXBlKFxuICAgICAgbWFwKChba2V5d29yZHMsIHRoZXNhdXJ1c10pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cnVzLCB0aGlzLmxhbmczKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRLZXl3b3Jkc0J5VXJpKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+IHtcbiAgICBpZiAodGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSkge1xuICAgICAgcmV0dXJuIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV1cbiAgICB9XG4gICAgY29uc3Qga2V5d29yZHMkID0gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5zZWFyY2hLZXl3b3JkcyhcbiAgICAgIG51bGwsXG4gICAgICB0aGlzLmxhbmczLFxuICAgICAgMTAwMCxcbiAgICAgIDAsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBgJHt1cml9KmBcbiAgICApIGFzIE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+XG5cbiAgICB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldID0gY29tYmluZUxhdGVzdChbXG4gICAgICBrZXl3b3JkcyQsXG4gICAgICB0aGlzLmFsbFRoZXNhdXJ1cyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJ1cywgdGhpcy5sYW5nMylcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgICByZXR1cm4gdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXVxuICB9XG5cbiAgc2VhcmNoS2V5d29yZHNJblRoZXNhdXJ1cyhxdWVyeTogc3RyaW5nLCB0aGVzYXVydXNJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsVGhlc2F1cnVzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0aGVzYXVyaSkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpcHBlZFRoZXNhdXJ1c0lkID0gdGhlc2F1cnVzSWQucmVwbGFjZShcbiAgICAgICAgICAnZ2VvbmV0d29yay50aGVzYXVydXMuJyxcbiAgICAgICAgICAnJ1xuICAgICAgICApXG4gICAgICAgIGlmICghdGhlc2F1cmkuZmluZCgodGhlcykgPT4gdGhlcy5rZXkgPT09IHN0cmlwcGVkVGhlc2F1cnVzSWQpKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2VcbiAgICAgICAgICAuc2VhcmNoS2V5d29yZHMoXG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgIHRoaXMubGFuZzMsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIFtzdHJpcHBlZFRoZXNhdXJ1c0lkXSxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgICApXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGtleXdvcmRzOiBLZXl3b3JkQXBpUmVzcG9uc2VbXSkgPT5cbiAgICAgICAgICAgICAgdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVyaSwgdGhpcy5sYW5nMylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldFVzZXJGZWVkYmFja3ModXVpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyRmVlZGJhY2tbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJmZWVkYmFja0FwaVNlcnZpY2UuZ2V0VXNlckNvbW1lbnRzKHV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJGZWVkYmFja3MpID0+XG4gICAgICAgIHVzZXJGZWVkYmFja3MubWFwKHRoaXMubWFwcGVyLnVzZXJGZWVkYmFja3NGcm9tQXBpKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHVzZXIgZmVlZGJhY2tzOicsIGVycm9yKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwb3N0VXNlckZlZWRiYWNrcyh1c2VyRmVlZGJhY2s6IFVzZXJGZWVkYmFjayk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IG1hcHBlZFVzZXJGZWVkQmFjayA9IHRoaXMubWFwcGVyLnVzZXJGZWVkYmFja3NUb0FwaSh1c2VyRmVlZGJhY2spXG4gICAgcmV0dXJuIHRoaXMudXNlcmZlZWRiYWNrQXBpU2VydmljZS5uZXdVc2VyRmVlZGJhY2sobWFwcGVkVXNlckZlZWRCYWNrKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwb3N0aW5nIHVzZXIgZmVlZGJhY2s6JywgZXJyb3IpXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldFJlY29yZEF0dGFjaG1lbnRzKHJlY29yZFV1aWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFsbFJlc291cmNlcyhyZWNvcmRVdWlkKS5waXBlKFxuICAgICAgbWFwKChyZXNvdXJjZXMpID0+XG4gICAgICAgIHJlc291cmNlcy5tYXAoKHIpID0+ICh7XG4gICAgICAgICAgdXJsOiBuZXcgVVJMKHIudXJsKSxcbiAgICAgICAgICBmaWxlTmFtZTogci5maWxlbmFtZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgY2xlYW5SZWNvcmRBdHRhY2htZW50cyhyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFzc29jaWF0ZWRSZXNvdXJjZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpLFxuICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBbGxSZXNvdXJjZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFthc3NvY2lhdGVkLCBhdHRhY2htZW50c10pID0+IHtcbiAgICAgICAgY29uc3QgeyBvbmxpbmVzID0gW10sIHRodW1ibmFpbHMgPSBbXSB9ID0gYXNzb2NpYXRlZFxuXG4gICAgICAgIGNvbnN0IHVybHNUb0tlZXAgPSBbXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkob25saW5lcykgPyBvbmxpbmVzIDogW10pLFxuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KHRodW1ibmFpbHMpID8gdGh1bWJuYWlscyA6IFtdKSxcbiAgICAgICAgXS5tYXAoKHJlc291cmNlKSA9PiBPYmplY3QudmFsdWVzKHJlc291cmNlLnVybClbMF0pXG4gICAgICAgIGNvbnN0IGZpbGVUb0RlbGV0ZSA9IGF0dGFjaG1lbnRzLnJlZHVjZTxzdHJpbmdbXT4oKGFjYywgYXR0YWNobWVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICF1cmxzVG9LZWVwLmluY2x1ZGVzKGF0dGFjaG1lbnQudXJsKSAmJlxuICAgICAgICAgICAgYXR0YWNobWVudC5maWxlbmFtZSAhPT0gJ2RhdGF2aXpDb25maWcuanNvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKGF0dGFjaG1lbnQuZmlsZW5hbWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSwgW10pXG5cbiAgICAgICAgcmV0dXJuIGZpbGVUb0RlbGV0ZVxuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoZmlsZXNUb0RlbGV0ZSkgPT5cbiAgICAgICAgZmlsZXNUb0RlbGV0ZS5sZW5ndGhcbiAgICAgICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgICAgICBmaWxlc1RvRGVsZXRlLm1hcCgoZmlsZW5hbWUpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5kZWxSZXNvdXJjZShcbiAgICAgICAgICAgICAgICAgIHJlY29yZC51bmlxdWVJZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkucGlwZShtYXAoKCkgPT4gdW5kZWZpbmVkKSlcbiAgICAgICAgICA6IG9mKHVuZGVmaW5lZClcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB3aGlsZSBjbGVhbmluZyBhdHRhY2htZW50czonLCBlcnJvcilcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSB1cGxvYWRGaWxlKHJlY29yZFV1aWQ6IHN0cmluZywgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+IHtcbiAgICBsZXQgc2l6ZUJ5dGVzID0gLTFcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZVxuICAgICAgLnB1dFJlc291cmNlKHJlY29yZFV1aWQsIGZpbGUsICdwdWJsaWMnLCB1bmRlZmluZWQsICdldmVudHMnLCB0cnVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgICAgc2l6ZUJ5dGVzID0gZXZlbnQudG90YWxcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdwcm9ncmVzcycsXG4gICAgICAgICAgICAgIHByb2dyZXNzOiBldmVudC50b3RhbFxuICAgICAgICAgICAgICAgID8gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKVxuICAgICAgICAgICAgICAgIDogMCxcbiAgICAgICAgICAgIH0gYXMgVXBsb2FkRXZlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgYXR0YWNobWVudDoge1xuICAgICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5ib2R5LnVybCksXG4gICAgICAgICAgICAgICAgZmlsZU5hbWU6IGV2ZW50LmJvZHkuZmlsZW5hbWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHNpemVCeXRlcyxcbiAgICAgICAgICAgIH0gYXMgVXBsb2FkRXZlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9KSxcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gISFldmVudCksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PiBuZXcgRXJyb3IoZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgPz8gZXJyb3IubWVzc2FnZSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cbiAgZ2V0RmlsZUNvbnRlbnQodXJsOiBVUkwgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQodXJsLnRvU3RyaW5nKCksIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSksXG4gICAgICB0aGlzLmdldEFwaVZlcnNpb24oKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdGV4dCwgdmVyc2lvbl0pID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0ZXh0KVxuXG4gICAgICAgIGlmICh2ZXJzaW9uID4gdGhpcy5nblBhcnNlVmVyc2lvbikge1xuICAgICAgICAgIHJldHVybiBwYXJzZWRcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLmRlY29kZUJhc2U2NChwYXJzZWQpXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGRlY29kZUJhc2U2NChiYXNlNjQpIHtcbiAgICBjb25zdCB0ZXh0ID0gYXRvYihiYXNlNjQpXG4gICAgY29uc3QgbGVuZ3RoID0gdGV4dC5sZW5ndGhcbiAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGxlbmd0aClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBieXRlc1tpXSA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIH1cbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKClcbiAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoYnl0ZXMpXG4gIH1cblxuICBhdHRhY2hGaWxlVG9SZWNvcmQoXG4gICAgcmVjb3JkVXVpZDogc3RyaW5nLFxuICAgIGZpbGU6IEZpbGUsXG4gICAgcmVtb3ZlRHVwbGljYXRlID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxVcGxvYWRFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLmdldFJlY29yZEF0dGFjaG1lbnRzKHJlY29yZFV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHJlY29yZEF0dGFjaG1lbnRzKSA9PiByZWNvcmRBdHRhY2htZW50cy5tYXAoKHIpID0+IHIuZmlsZU5hbWUpKSxcbiAgICAgIHN3aXRjaE1hcCgoZmlsZU5hbWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5uYW1lXG5cbiAgICAgICAgaWYgKHJlbW92ZUR1cGxpY2F0ZSAmJiBmaWxlTmFtZXMuaW5jbHVkZXMoZmlsZS5uYW1lKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmRlbFJlc291cmNlKHJlY29yZFV1aWQsIGZpbGVOYW1lKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZUNvcHkgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGVOYW1lLCB7IHR5cGU6IGZpbGUudHlwZSB9KVxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRGaWxlKHJlY29yZFV1aWQsIGZpbGVDb3B5KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZmluYWxGaWxlTmFtZSA9IG5vRHVwbGljYXRlRmlsZU5hbWUoZmlsZU5hbWUsIGZpbGVOYW1lcylcbiAgICAgICAgICBjb25zdCBmaWxlQ29weSA9IG5ldyBGaWxlKFtmaWxlXSwgZmluYWxGaWxlTmFtZSwgeyB0eXBlOiBmaWxlLnR5cGUgfSlcbiAgICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRGaWxlKHJlY29yZFV1aWQsIGZpbGVDb3B5KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHN1cHBvcnRzQXV0aGVudGljYXRpb24oKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVBdXRoXG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { SiteApiService } from '../../../../../../../libs/data-access/gn4/src';
3
+ import { of, switchMap } from 'rxjs';
3
4
  import { map, shareReplay } from 'rxjs/operators';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../../../../../../../libs/data-access/gn4/src";
@@ -12,7 +13,7 @@ export class Gn4SettingsService {
12
13
  this.apiVersion$ = this.getSettingsSetValueByKey('system/platform/version');
13
14
  }
14
15
  getSettingsSetValueByKey(key) {
15
- return this.siteApiService.getSettingsSet(null, [key]).pipe(map((v) => v[key]), shareReplay({ bufferSize: 1, refCount: true }));
16
+ return of(true).pipe(switchMap(() => this.siteApiService.getSettingsSet(null, [key])), map((v) => v[key]), shareReplay({ bufferSize: 1, refCount: true }));
16
17
  }
17
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, deps: [{ token: i1.SiteApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
18
19
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, providedIn: 'root' }); }
@@ -23,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
23
24
  providedIn: 'root',
24
25
  }]
25
26
  }], ctorParameters: () => [{ type: i1.SiteApiService }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXNldHRpbmdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3NldHRpbmdzL2duNC1zZXR0aW5ncy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQU1qRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFmM0MsZUFBVSxHQUF1QixJQUFJLENBQUMsd0JBQXdCLENBQ25FLHdCQUF3QixDQUN6QixDQUFBO1FBRU0sd0JBQW1CLEdBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBRTFELG9CQUFlLEdBQXdCLElBQUksQ0FBQyx3QkFBd0IsQ0FDekUsNEJBQTRCLENBQzdCLENBQUE7UUFFTSxnQkFBVyxHQUF1QixJQUFJLENBQUMsd0JBQXdCLENBQ3BFLHlCQUF5QixDQUMxQixDQUFBO0lBRW9ELENBQUM7SUFFOUMsd0JBQXdCLENBQUMsR0FBVztRQUMxQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNsQixXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFBO0lBQ0gsQ0FBQzsrR0F2QlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU2l0ZUFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEduNFNldHRpbmdzU2VydmljZSB7XG4gIHB1YmxpYyBpZGVudGljb24kOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmdldFNldHRpbmdzU2V0VmFsdWVCeUtleShcbiAgICAnc3lzdGVtL3VzZXJzL2lkZW50aWNvbidcbiAgKVxuXG4gIHB1YmxpYyBhbGxvd0VkaXRIYXJ2ZXN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID1cbiAgICB0aGlzLmdldFNldHRpbmdzU2V0VmFsdWVCeUtleSgnc3lzdGVtL2hhcnZlc3Rlci9lbmFibGVFZGl0aW5nJylcblxuICBwdWJsaWMgYWxsb3dGZWVkYmFja3MkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5nZXRTZXR0aW5nc1NldFZhbHVlQnlLZXkoXG4gICAgJ3N5c3RlbS91c2VyRmVlZGJhY2svZW5hYmxlJ1xuICApXG5cbiAgcHVibGljIGFwaVZlcnNpb24kOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmdldFNldHRpbmdzU2V0VmFsdWVCeUtleShcbiAgICAnc3lzdGVtL3BsYXRmb3JtL3ZlcnNpb24nXG4gIClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNpdGVBcGlTZXJ2aWNlOiBTaXRlQXBpU2VydmljZSkge31cblxuICBwcml2YXRlIGdldFNldHRpbmdzU2V0VmFsdWVCeUtleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnNpdGVBcGlTZXJ2aWNlLmdldFNldHRpbmdzU2V0KG51bGwsIFtrZXldKS5waXBlKFxuICAgICAgbWFwKCh2KSA9PiB2W2tleV0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcbiAgfVxufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXNldHRpbmdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3NldHRpbmdzL2duNC1zZXR0aW5ncy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQzlFLE9BQU8sRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQUtqRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFmM0MsZUFBVSxHQUF1QixJQUFJLENBQUMsd0JBQXdCLENBQ25FLHdCQUF3QixDQUN6QixDQUFBO1FBRU0sd0JBQW1CLEdBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBRTFELG9CQUFlLEdBQXdCLElBQUksQ0FBQyx3QkFBd0IsQ0FDekUsNEJBQTRCLENBQzdCLENBQUE7UUFFTSxnQkFBVyxHQUF1QixJQUFJLENBQUMsd0JBQXdCLENBQ3BFLHlCQUF5QixDQUMxQixDQUFBO0lBRW9ELENBQUM7SUFFOUMsd0JBQXdCLENBQUMsR0FBVztRQUMxQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2xCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xCLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUE7SUFDSCxDQUFDOytHQXhCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTaXRlQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR240U2V0dGluZ3NTZXJ2aWNlIHtcbiAgcHVibGljIGlkZW50aWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZ2V0U2V0dGluZ3NTZXRWYWx1ZUJ5S2V5KFxuICAgICdzeXN0ZW0vdXNlcnMvaWRlbnRpY29uJ1xuICApXG5cbiAgcHVibGljIGFsbG93RWRpdEhhcnZlc3RlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPVxuICAgIHRoaXMuZ2V0U2V0dGluZ3NTZXRWYWx1ZUJ5S2V5KCdzeXN0ZW0vaGFydmVzdGVyL2VuYWJsZUVkaXRpbmcnKVxuXG4gIHB1YmxpYyBhbGxvd0ZlZWRiYWNrcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmdldFNldHRpbmdzU2V0VmFsdWVCeUtleShcbiAgICAnc3lzdGVtL3VzZXJGZWVkYmFjay9lbmFibGUnXG4gIClcblxuICBwdWJsaWMgYXBpVmVyc2lvbiQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZ2V0U2V0dGluZ3NTZXRWYWx1ZUJ5S2V5KFxuICAgICdzeXN0ZW0vcGxhdGZvcm0vdmVyc2lvbidcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2l0ZUFwaVNlcnZpY2U6IFNpdGVBcGlTZXJ2aWNlKSB7fVxuXG4gIHByaXZhdGUgZ2V0U2V0dGluZ3NTZXRWYWx1ZUJ5S2V5KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG9mKHRydWUpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zaXRlQXBpU2VydmljZS5nZXRTZXR0aW5nc1NldChudWxsLCBba2V5XSkpLFxuICAgICAgbWFwKCh2KSA9PiB2W2tleV0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcbiAgfVxufVxuIl19
@@ -30,6 +30,7 @@ export class MapViewComponent {
30
30
  set exceedsLimit(value) {
31
31
  this.excludeWfs$.next(value);
32
32
  }
33
+ // FIXME the map view component should not need a selectedView
33
34
  set selectedView(value) {
34
35
  this.selectedView$.next(value);
35
36
  }
@@ -345,4 +346,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
345
346
  type: ViewChild,
346
347
  args: ['mapContainer']
347
348
  }] } });
348
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLElBQUksRUFFSixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBRVQsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUt4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9B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MUIsb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxPQUFPO2FBQ2QsQ0FBQztTQUNIOzs0RkFFVSxnQkFBZ0I7a0JBM0I1QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNuQixpQkFDYzt3QkFDYixZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQzt3QkFDMUIsb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxPQUFPO3lCQUNkLENBQUM7cUJBQ0g7d01BR1ksWUFBWTtzQkFBeEIsS0FBSztnQkFRTyxZQUFZO3NCQUF4QixLQUFLO2dCQUdPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBV0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ29CLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjJ1xuaW1wb3J0IHsgZ2V0TGlua0lkLCBnZXRMaW5rTGFiZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgdGhyb3dFcnJvcixcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IE1kVmlld0ZhY2FkZSB9IGZyb20gJy4uL3N0YXRlL21kdmlldy5mYWNhZGUnXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9kYXRhdml6L3NyYydcbmltcG9ydCB7XG4gIERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIGNyZWF0ZVZpZXdGcm9tTGF5ZXIsXG4gIE1hcENvbnRleHQsXG4gIE1hcENvbnRleHRMYXllcixcbiAgU291cmNlTG9hZEVycm9yRXZlbnQsXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHtcbiAgRmVhdHVyZURldGFpbENvbXBvbmVudCxcbiAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICBNYXBMZWdlbmRDb21wb25lbnQsXG4gIHByaW9yaXRpemVQYWdlU2Nyb2xsLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRDbG9zZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVQaXBlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgRXh0ZXJuYWxWaWV3ZXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9leHRlcm5hbC12aWV3ZXItYnV0dG9uL2V4dGVybmFsLXZpZXdlci1idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gIFBvcHVwQWxlcnRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBGZXRjaEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMnXG5cbm1hcmtlcignbWFwLmRyb3Bkb3duLnBsYWNlaG9sZGVyJylcbm1hcmtlcignd2ZzLmZlYXR1cmUubGltaXQnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnJlc3RyaWN0ZWRBY2Nlc3MnKVxubWFya2VyKCdtYXAuc2VsZWN0LnN0eWxlJylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWFwLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtdmlldy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gICAgUG9wdXBBbGVydENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgRXh0ZXJuYWxWaWV3ZXJCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE1hcExlZ2VuZENvbXBvbmVudCxcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7IG1hdENsb3NlIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc2V0IGV4Y2VlZHNMaW1pdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhjbHVkZVdmcyQubmV4dCh2YWx1ZSlcbiAgfVxuICBsaW5rRnJvbUNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIF9zZWxlY3RlZENob2ljZSA9IG51bGxcbiAgX3N0eWxlRnJvbUNvbmZpZyA9IG51bGxcblxuICBsaW5rTWFwOiBNYXA8c3RyaW5nLCBEYXRhc2V0T25saW5lUmVzb3VyY2U+ID0gbmV3IE1hcCgpXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFZpZXcodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3JC5uZXh0KHZhbHVlKVxuICB9XG4gIEBJbnB1dCgpIHNldCBkYXRhdml6Q29uZmlnKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUudmlldyA9PT0gJ21hcCcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3JC5uZXh0KHZhbHVlLnZpZXcpXG4gICAgICBpZiAodmFsdWUuc3R5bGVUTVNJbmRleCkge1xuICAgICAgICB0aGlzLl9zdHlsZUZyb21Db25maWcgPSB2YWx1ZS5zdHlsZVRNU0luZGV4XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUuc291cmNlKSB7XG4gICAgICAgIHRoaXMubGlua0Zyb21Db25maWckLm5leHQodmFsdWUuc291cmNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBASW5wdXQoKSBkaXNwbGF5U291cmNlID0gdHJ1ZVxuICBAT3V0cHV0KCkgbGlua1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhc2V0T25saW5lUmVzb3VyY2U+KClcbiAgQE91dHB1dCgpIHN0eWxlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKVxuICBAVmlld0NoaWxkKCdtYXBDb250YWluZXInKSBtYXBDb250YWluZXI6IE1hcENvbnRhaW5lckNvbXBvbmVudFxuXG4gIGV4Y2x1ZGVXZnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSlcbiAgaGlkZVByZXZpZXcgPSBmYWxzZVxuICBzZWxlY3Rpb246IEZlYXR1cmVcbiAgc2hvd0xlZ2VuZCA9IHRydWVcbiAgbGVnZW5kRXhpc3RzID0gZmFsc2VcbiAgbG9hZGluZyA9IGZhbHNlXG4gIGVycm9yID0gbnVsbFxuXG4gIHNlbGVjdExpbmtUb0Rpc3BsYXkoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSWQkLm5leHQoaWQpXG4gIH1cblxuICBzZWxlY3RTdHlsZVRvRGlzcGxheShpOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3R5bGVJZCQubmV4dChpKVxuICAgIHRoaXMuc3R5bGVTZWxlY3RlZC5lbWl0KGkpXG4gIH1cblxuICB0b2dnbGVMZWdlbmQoKSB7XG4gICAgdGhpcy5zaG93TGVnZW5kID0gIXRoaXMuc2hvd0xlZ2VuZFxuICB9XG4gIG9uTGVnZW5kU3RhdHVzQ2hhbmdlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxlZ2VuZEV4aXN0cyA9IHZcbiAgfVxuXG4gIGNvbXBhdGlibGVNYXBMaW5rcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5tYXBBcGlMaW5rcyQsXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZ2VvRGF0YUxpbmtzV2l0aEdlb21ldHJ5JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFttYXBBcGlMaW5rcywgZ2VvRGF0YUxpbmtzV2l0aEdlb21ldHJ5XSkgPT4gW1xuICAgICAgLi4ubWFwQXBpTGlua3MsXG4gICAgICAuLi5nZW9EYXRhTGlua3NXaXRoR2VvbWV0cnksXG4gICAgXSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGRyb3Bkb3duQ2hvaWNlcyQgPSB0aGlzLmNvbXBhdGlibGVNYXBMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PiB7XG4gICAgICB0aGlzLmxpbmtNYXAuY2xlYXIoKVxuICAgICAgbGlua3MuZm9yRWFjaCgobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKSA9PlxuICAgICAgICB0aGlzLmxpbmtNYXAuc2V0KGdldExpbmtJZChsaW5rKSwgbGluaylcbiAgICAgIClcbiAgICAgIHJldHVybiBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmspID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogZ2V0TGlua0xhYmVsKGxpbmspLFxuICAgICAgICAgICAgdmFsdWU6IGdldExpbmtJZChsaW5rKSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbeyBsYWJlbDogJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicsIHZhbHVlOiAnJyB9XVxuICAgIH0pXG4gIClcblxuICBzZWxlY3RlZFZpZXckID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKVxuICBzZWxlY3RlZExpbmtJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIHNlbGVjdGVkU3R5bGVJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG5cbiAgc2VsZWN0ZWRTb3VyY2VMaW5rJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJCxcbiAgICB0aGlzLmxpbmtGcm9tQ29uZmlnJCxcbiAgICB0aGlzLnNlbGVjdGVkTGlua0lkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgIHRoaXMuc2VsZWN0ZWRWaWV3JCxcbiAgXSkucGlwZShcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICB9KSxcbiAgICBtYXAoKFtjb21wYXRpYmxlTGlua3MsIGNvbmZpZ0xpbmssIGlkLCB2aWV3XSkgPT4ge1xuICAgICAgaWYgKHZpZXcgPT09ICdtYXAnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjb25maWdMaW5rICYmXG4gICAgICAgICAgIWlkICYmXG4gICAgICAgICAgY29tcGF0aWJsZUxpbmtzLnNvbWUoXG4gICAgICAgICAgICAobGluaykgPT4gZ2V0TGlua0lkKGxpbmspID09PSBnZXRMaW5rSWQoY29uZmlnTGluaylcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hvaWNlID0gZ2V0TGlua0lkKGNvbmZpZ0xpbmspXG4gICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdChjb25maWdMaW5rKVxuICAgICAgICAgIHJldHVybiBjb25maWdMaW5rXG4gICAgICAgIH0gZWxzZSBpZiAoaWQpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZENob2ljZSA9IGlkXG4gICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdCh0aGlzLmxpbmtNYXAuZ2V0KGlkKSlcbiAgICAgICAgICByZXR1cm4gdGhpcy5saW5rTWFwLmdldChpZClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGNvbXBhdGlibGVMaW5rc1swXSlcbiAgICAgICAgICByZXR1cm4gY29tcGF0aWJsZUxpbmtzWzBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgc3R5bGVMaW5rcyQgPSB0aGlzLnNlbGVjdGVkU291cmNlTGluayQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNyYykgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzcmMgJiZcbiAgICAgICAgc3JjLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICBzcmMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAndG1zJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgIC8vIFdBUk5JTkc6IHdoZW4gdXNpbmcgXCJnZXRHZW9kYXRhTGlua3NGcm9tVG1zXCIsIG1ha2Ugc3VyZSB0byBhZGQgZXJyb3IgaGFuZGxpbmcgdG8gcHJldmVudCB0aGUgcmVzdCBvZiB0aGUgbG9naWMgZnJvbSBmYWlsaW5nXG4gICAgICAgICAgLy8gdGhpcyBtYXkgaGFwcGVuIHdoZW4gVE1TIGVuZHBvaW50IGlzIGluIGVycm9yXG4gICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5nZXRHZW9kYXRhTGlua3NGcm9tVG1zKFxuICAgICAgICAgICAgc3JjIGFzIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICApXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGZvciBtYXBsaWJyZS1zdHlsZSBsaW5rcyBiZWNhdXNlIHdoZW4gYSBUTVMgc2VydmljZSBoYXMgbm8gc3R5bGVzLFxuICAgICAgICAgIC8vIGdldEdlb2RhdGFMaW5rc0Zyb21UbXMgcmV0dXJucyB0aGUgb3JpZ2luYWwgVE1TIGxpbmssIHdoaWNoIGlzbid0IGEgbWFwbGlicmUtc3R5bGUgbGlua1xuICAgICAgICAgIG1hcChcbiAgICAgICAgICAgIChsaW5rcykgPT5cbiAgICAgICAgICAgICAgbGlua3M/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAobGluaykgPT5cbiAgICAgICAgICAgICAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgICAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ21hcGxpYnJlLXN0eWxlJ1xuICAgICAgICAgICAgICApIHx8IFtdXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICAgIHJldHVybiBvZihzcmMpXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9mKFtdKVxuICAgIH0pLFxuICAgIHRhcCgoc3R5bGVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5fc3R5bGVGcm9tQ29uZmlnICYmIHRoaXMuX3N0eWxlRnJvbUNvbmZpZyA8PSBzdHlsZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KHRoaXMuX3N0eWxlRnJvbUNvbmZpZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KDApXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHN0eWxlRHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuc3R5bGVMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PlxuICAgICAgbGlua3MubGVuZ3RoXG4gICAgICAgID8gbGlua3MubWFwKChsaW5rLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXRMaW5rTGFiZWwobGluayksXG4gICAgICAgICAgICB2YWx1ZTogaW5kZXgsXG4gICAgICAgICAgfSkpXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ1xcdTAwQTBcXHUwMEEwXFx1MDBBMFxcdTAwQTAnLFxuICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgIClcbiAgKVxuXG4gIHNlbGVjdGVkTGluayQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnNlbGVjdGVkU291cmNlTGluayQsXG4gICAgdGhpcy5zdHlsZUxpbmtzJCxcbiAgICB0aGlzLnNlbGVjdGVkU3R5bGVJZCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtzcmMsIHN0eWxlcywgc3R5bGVJZHhdKSA9PiAoc3R5bGVzLmxlbmd0aCA/IHN0eWxlc1tzdHlsZUlkeF0gOiBzcmMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgY3VycmVudExheWVycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdGVkTGluayQsIHRoaXMuZXhjbHVkZVdmcyRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2xpbmssIGV4Y2x1ZGVXZnNdKSA9PiB7XG4gICAgICBpZiAoIWxpbmspIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgaWYgKGV4Y2x1ZGVXZnMgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnKSB7XG4gICAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSB0cnVlXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSBmYWxzZVxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgaWYgKGxpbmsuYWNjZXNzUmVzdHJpY3RlZCkge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKCdkYXRhc2V0LmVycm9yLnJlc3RyaWN0ZWRBY2Nlc3MnKVxuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRMYXllckZyb21MaW5rKGxpbmspLnBpcGUoXG4gICAgICAgIG1hcCgobGF5ZXIpID0+IFtsYXllcl0pLFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgfSlcbiAgKVxuXG4gIG1hcENvbnRleHQkOiBPYnNlcnZhYmxlPE1hcENvbnRleHQ+ID0gdGhpcy5jdXJyZW50TGF5ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PlxuICAgICAgZnJvbShjcmVhdGVWaWV3RnJvbUxheWVyKGxheWVyc1swXSkpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLCAvLyBjb3VsZCBub3Qgem9vbSBvbiB0aGUgbGF5ZXI6IHVzZSB0aGUgcmVjb3JkIGV4dGVudFxuICAgICAgICBtYXAoKHZpZXcpID0+ICh7XG4gICAgICAgICAgbGF5ZXJzLFxuICAgICAgICAgIHZpZXcsXG4gICAgICAgIH0pKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLFxuICAgIHN0YXJ0V2l0aCh7XG4gICAgICBsYXllcnM6IFtdLFxuICAgICAgdmlldzogbnVsbCxcbiAgICB9KSxcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLm1kVmlld0ZhY2FkZS5tZXRhZGF0YSQpLFxuICAgIG1hcCgoW2NvbnRleHQsIG1ldGFkYXRhXSkgPT4ge1xuICAgICAgaWYgKGNvbnRleHQudmlldykgcmV0dXJuIGNvbnRleHRcbiAgICAgIGNvbnN0IGV4dGVudCA9IHRoaXMubWFwVXRpbHMuZ2V0UmVjb3JkRXh0ZW50KG1ldGFkYXRhKVxuICAgICAgY29uc3QgdmlldyA9IGV4dGVudCA/IHsgZXh0ZW50IH0gOiBudWxsXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB2aWV3LFxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1kVmlld0ZhY2FkZTogTWRWaWV3RmFjYWRlLFxuICAgIHByaXZhdGUgbWFwVXRpbHM6IE1hcFV0aWxzU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgbWFwID0gYXdhaXQgdGhpcy5tYXBDb250YWluZXIub3BlbmxheWVyc01hcFxuICAgIHByaW9yaXRpemVQYWdlU2Nyb2xsKG1hcC5nZXRJbnRlcmFjdGlvbnMoKSlcbiAgfVxuXG4gIG9uTWFwRmVhdHVyZVNlbGVjdChmZWF0dXJlczogRmVhdHVyZVtdKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFNlbGVjdGlvbigpXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBmZWF0dXJlcz8ubGVuZ3RoID4gMCAmJiBmZWF0dXJlc1swXVxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgLy8gRklYTUU6IHJlc3RvcmUgc3R5bGluZyBvZiBzZWxlY3RlZCBmZWF0dXJlXG4gICAgICAvLyB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZSh0aGlzLnNlbGVjdGlvblN0eWxlKVxuICAgIH1cbiAgICB0aGlzLmNoYW5nZVJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIG9uU291cmNlTG9hZEVycm9yKGVycm9yOiBTb3VyY2VMb2FkRXJyb3JFdmVudCkge1xuICAgIGlmIChlcnJvci5odHRwU3RhdHVzID09PSA0MDMgfHwgZXJyb3IuaHR0cFN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFzZXQuZXJyb3IuZm9yYmlkZGVuYClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBkYXRhc2V0LmVycm9yLmh0dHBgLCB7XG4gICAgICAgIGluZm86IGVycm9yLmh0dHBTdGF0dXMsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgLy8gRklYTUU6IHJlc3RvcmUgc3R5bGluZyBvZiBzZWxlY3RlZCBmZWF0dXJlXG4gICAgICAvLyB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZShudWxsKVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGxcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogT2JzZXJ2YWJsZTxNYXBDb250ZXh0TGF5ZXI+IHtcbiAgICBpZiAobGluay50eXBlID09PSAnc2VydmljZScgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6ICd3bXMnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd0bXMnXG4gICAgKSB7XG4gICAgICAvLyBGSVhNRTogaGVyZSB3ZSdyZSBhc3N1bWluZyB0aGF0IHRoZSBUTVMgc2VydmVzIHZlY3RvciB0aWxlcyBvbmx5OyBzaG91bGQgYmUgY2hlY2tlZCB3aXRoIG9nYy1jbGllbnQgZmlyc3RcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmxcbiAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgIC5yZXBsYWNlKC9cXC8/JC8sIGAvJHtsaW5rLm5hbWV9L3t6fS97eH0ve3l9LnBiZmApLFxuICAgICAgICB0eXBlOiAneHl6JyxcbiAgICAgICAgdGlsZUZvcm1hdDogJ2FwcGxpY2F0aW9uL3ZuZC5tYXBib3gtdmVjdG9yLXRpbGUnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdtYXBsaWJyZS1zdHlsZSdcbiAgICApIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHR5cGU6ICdtYXBsaWJyZS1zdHlsZScsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgICAgc3R5bGVVcmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXRzJ1xuICAgICkge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiAnd210cycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCcgfHxcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJykpIHx8XG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCdcbiAgICApIHtcbiAgICAgIGNvbnN0IGNhY2hlQWN0aXZlID0gdHJ1ZSAvLyBUT0RPIGltcGxlbWVudCB3aGV0aGVyIHNob3VsZCBiZSB0cnVlIG9yIGZhbHNlXG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZWFkQXNHZW9Kc29uKGxpbmssIGNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgICBtYXAoKGRhdGEpID0+ICh7XG4gICAgICAgICAgdHlwZTogJ2dlb2pzb24nLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvciB8IHN0cmluZykge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgYGRhdGFzZXQuZXJyb3IuJHtlcnJvci50eXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiBlcnJvci5pbmZvLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IubWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlcnJvci5tZXNzYWdlKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLnN0YWNrIHx8IGVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IpXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgdGhpcy5jaGFuZ2VSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLVsxM3B4XVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC00IHB5LTQgcHgtNSBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWNvbG9yLWJvcmRlciByb3VuZGVkLWxnIG10LTZcIlxuICA+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAqbmdJZj1cImRpc3BsYXlTb3VyY2VcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOm1pbi13LTBcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LmxheWVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY2hvaWNlc109XCJkcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZENob2ljZVwiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwic2VsZWN0TGlua1RvRGlzcGxheSgkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoc3R5bGVMaW5rcyQgfCBhc3luYyk/Lmxlbmd0aCA+IDA7IGVsc2Ugc3R5bGVEaXNhYmxlZFwiPlxuICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDptaW4tdy0wXCJcbiAgICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgICBbdGl0bGVdPVwiJ21hcC5zZWxlY3Quc3R5bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Nob2ljZXNdPVwic3R5bGVEcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiX3N0eWxlRnJvbUNvbmZpZ1wiXG4gICAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RTdHlsZVRvRGlzcGxheSgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjc3R5bGVEaXNhYmxlZD5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6bWluLXctMCB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGQgdGV4dC1ncmF5LTQwMFwiXG4gICAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5zdHlsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbY2hvaWNlc109XCJzdHlsZURyb3Bkb3duQ2hvaWNlcyQgfCBhc3luY1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZi1lbmQgbWQ6bWwtMlwiPlxuICAgICAgPGduLXVpLWV4dGVybmFsLXZpZXdlci1idXR0b25cbiAgICAgICAgZXh0cmFDbGFzcz1cInctWzQ0cHhdIGgtWzQ0cHhdXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgID5cbiAgICAgIDwvZ24tdWktZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoaWRlUHJldmlldzsgZWxzZSBtYXBWaWV3XCI+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgICBjbGFzcz1cImJsb2NrIGgtMTIgcC0xXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmZlYXR1cmUubGltaXQ8L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjbWFwVmlldz5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIHctZnVsbCBoLWZ1bGwgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlblwiXG4gICAgPlxuICAgICAgPGduLXVpLW1hcC1jb250YWluZXJcbiAgICAgICAgI21hcENvbnRhaW5lclxuICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgKGZlYXR1cmVzQ2xpY2spPVwib25NYXBGZWF0dXJlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAoc291cmNlTG9hZEVycm9yKT1cIm9uU291cmNlTG9hZEVycm9yKCRldmVudClcIlxuICAgICAgPjwvZ24tdWktbWFwLWNvbnRhaW5lcj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0b3AtWzFlbV0gcmlnaHQtWzFlbV0gcC0zIGJnLXdoaXRlIGFic29sdXRlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtYXgtaC03MiB3LTU2XCJcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIhc2VsZWN0aW9uXCJcbiAgICAgID5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInJlc2V0U2VsZWN0aW9uKClcIlxuICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1wYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi13aWR0aDogMjRweDtcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICBcIlxuICAgICAgICAgIGV4dHJhQ2xhc3M9XCJhYnNvbHV0ZSByaWdodC1bMC41ZW1dIG1sLVs4cHhdIG1yLVsxMHB4XVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgICAgPGduLXVpLWZlYXR1cmUtZGV0YWlsXG4gICAgICAgICAgW2ZlYXR1cmVDYXRhbG9nXT1cIm1kVmlld0ZhY2FkZS5mZWF0dXJlQ2F0YWxvZyQgfCBhc3luY1wiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwic2VsZWN0aW9uXCJcbiAgICAgICAgPjwvZ24tdWktZmVhdHVyZS1kZXRhaWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRvcC1bMWVtXSBwLTMgYmctd2hpdGUgYWJzb2x1dGUgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIG1heC1oLTcyIHctNTZcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdyaWdodC1bMWVtXSc6ICFzZWxlY3Rpb24sICdyaWdodC1bMTZlbV0nOiBzZWxlY3Rpb24gfVwiXG4gICAgICAgIFtoaWRkZW5dPVwiIXNob3dMZWdlbmQgfHwgIWxlZ2VuZEV4aXN0c1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1ib2xkXCIgdHJhbnNsYXRlPm1hcC5sZWdlbmQudGl0bGU8L2Rpdj5cbiAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBleHRyYUNsYXNzPVwibWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGduLXVpLW1hcC1sZWdlbmRcbiAgICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgICAobGVnZW5kU3RhdHVzQ2hhbmdlKT1cIm9uTGVnZW5kU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9nbi11aS1tYXAtbGVnZW5kPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgKm5nSWY9XCIhc2hvd0xlZ2VuZCAmJiBsZWdlbmRFeGlzdHMgJiYgIXNlbGVjdGlvblwiXG4gICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHRvcC1bMWVtXSByaWdodC1bMWVtXSByb3VuZGVkIHAtMSB0ZXh0LXhzIGJnLXdoaXRlXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIG1hcC5sZWdlbmQudGl0bGVcbiAgICAgIDwvZ24tdWktYnV0dG9uPlxuXG4gICAgICA8Z24tdWktbG9hZGluZy1tYXNrXG4gICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMFwiXG4gICAgICAgIFttZXNzYWdlXT1cIidtYXAubG9hZGluZy5kYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9nbi11aS1sb2FkaW5nLW1hc2s+XG4gICAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgICAgKm5nSWY9XCJlcnJvclwiXG4gICAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgICAgaWNvbj1cIm1hdEVycm9yT3V0bGluZU91dGxpbmVcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIG0tMiBpbnNldC0wXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLElBQUksRUFFSixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBRVQsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUt4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9B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LEVBQUUsQ0FBQztZQUMxQixvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDO1NBQ0g7OzRGQUVVLGdCQUFnQjtrQkEzQjVCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLDZCQUE2Qjt3QkFDN0IsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CLGlCQUNjO3dCQUNiLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUMxQixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLE9BQU87eUJBQ2QsQ0FBQztxQkFDSDt3TUFHWSxZQUFZO3NCQUF4QixLQUFLO2dCQVNPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBR08sYUFBYTtzQkFBekIsS0FBSztnQkFXRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDb0IsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMnXG5pbXBvcnQgeyBnZXRMaW5rSWQsIGdldExpbmtMYWJlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmcm9tLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3RhcnRXaXRoLFxuICB0aHJvd0Vycm9yLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWRWaWV3RmFjYWRlIH0gZnJvbSAnLi4vc3RhdGUvbWR2aWV3LmZhY2FkZSdcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgY3JlYXRlVmlld0Zyb21MYXllcixcbiAgTWFwQ29udGV4dCxcbiAgTWFwQ29udGV4dExheWVyLFxuICBTb3VyY2VMb2FkRXJyb3JFdmVudCxcbn0gZnJvbSAnQGdlb3NwYXRpYWwtc2RrL2NvcmUnXG5pbXBvcnQge1xuICBGZWF0dXJlRGV0YWlsQ29tcG9uZW50LFxuICBNYXBDb250YWluZXJDb21wb25lbnQsXG4gIE1hcExlZ2VuZENvbXBvbmVudCxcbiAgcHJpb3JpdGl6ZVBhZ2VTY3JvbGwsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IG1hdENsb3NlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVBpcGUsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBFeHRlcm5hbFZpZXdlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2V4dGVybmFsLXZpZXdlci1idXR0b24vZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbi5jb21wb25lbnQnXG5pbXBvcnQge1xuICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgUG9wdXBBbGVydENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IEZldGNoRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYydcblxubWFya2VyKCdtYXAuZHJvcGRvd24ucGxhY2Vob2xkZXInKVxubWFya2VyKCd3ZnMuZmVhdHVyZS5saW1pdCcpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IucmVzdHJpY3RlZEFjY2VzcycpXG5tYXJrZXIoJ21hcC5zZWxlY3Quc3R5bGUnKVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tYXAtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXAtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hcC12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgICBNYXBDb250YWluZXJDb21wb25lbnQsXG4gICAgRmVhdHVyZURldGFpbENvbXBvbmVudCxcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBFeHRlcm5hbFZpZXdlckJ1dHRvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTWFwTGVnZW5kQ29tcG9uZW50LFxuICBdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgbWF0Q2xvc2UgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBzZXQgZXhjZWVkc0xpbWl0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5leGNsdWRlV2ZzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGxpbmtGcm9tQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcbiAgX3NlbGVjdGVkQ2hvaWNlID0gbnVsbFxuICBfc3R5bGVGcm9tQ29uZmlnID0gbnVsbFxuXG4gIGxpbmtNYXA6IE1hcDxzdHJpbmcsIERhdGFzZXRPbmxpbmVSZXNvdXJjZT4gPSBuZXcgTWFwKClcbiAgLy8gRklYTUUgdGhlIG1hcCB2aWV3IGNvbXBvbmVudCBzaG91bGQgbm90IG5lZWQgYSBzZWxlY3RlZFZpZXdcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkVmlldyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXckLm5leHQodmFsdWUpXG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGF2aXpDb25maWcodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS52aWV3ID09PSAnbWFwJykge1xuICAgICAgdGhpcy5zZWxlY3RlZFZpZXckLm5leHQodmFsdWUudmlldylcbiAgICAgIGlmICh2YWx1ZS5zdHlsZVRNU0luZGV4KSB7XG4gICAgICAgIHRoaXMuX3N0eWxlRnJvbUNvbmZpZyA9IHZhbHVlLnN0eWxlVE1TSW5kZXhcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZS5zb3VyY2UpIHtcbiAgICAgICAgdGhpcy5saW5rRnJvbUNvbmZpZyQubmV4dCh2YWx1ZS5zb3VyY2UpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIGRpc3BsYXlTb3VyY2UgPSB0cnVlXG4gIEBPdXRwdXQoKSBsaW5rU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRPbmxpbmVSZXNvdXJjZT4oKVxuICBAT3V0cHV0KCkgc3R5bGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpXG4gIEBWaWV3Q2hpbGQoJ21hcENvbnRhaW5lcicpIG1hcENvbnRhaW5lcjogTWFwQ29udGFpbmVyQ29tcG9uZW50XG5cbiAgZXhjbHVkZVdmcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICBoaWRlUHJldmlldyA9IGZhbHNlXG4gIHNlbGVjdGlvbjogRmVhdHVyZVxuICBzaG93TGVnZW5kID0gdHJ1ZVxuICBsZWdlbmRFeGlzdHMgPSBmYWxzZVxuICBsb2FkaW5nID0gZmFsc2VcbiAgZXJyb3IgPSBudWxsXG5cbiAgc2VsZWN0TGlua1RvRGlzcGxheShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZExpbmtJZCQubmV4dChpZClcbiAgfVxuXG4gIHNlbGVjdFN0eWxlVG9EaXNwbGF5KGk6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KGkpXG4gICAgdGhpcy5zdHlsZVNlbGVjdGVkLmVtaXQoaSlcbiAgfVxuXG4gIHRvZ2dsZUxlZ2VuZCgpIHtcbiAgICB0aGlzLnNob3dMZWdlbmQgPSAhdGhpcy5zaG93TGVnZW5kXG4gIH1cbiAgb25MZWdlbmRTdGF0dXNDaGFuZ2UodjogYm9vbGVhbikge1xuICAgIHRoaXMubGVnZW5kRXhpc3RzID0gdlxuICB9XG5cbiAgY29tcGF0aWJsZU1hcExpbmtzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubWRWaWV3RmFjYWRlLm1hcEFwaUxpbmtzJCxcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5nZW9EYXRhTGlua3NXaXRoR2VvbWV0cnkkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW21hcEFwaUxpbmtzLCBnZW9EYXRhTGlua3NXaXRoR2VvbWV0cnldKSA9PiBbXG4gICAgICAuLi5tYXBBcGlMaW5rcyxcbiAgICAgIC4uLmdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeSxcbiAgICBdKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgZHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+IHtcbiAgICAgIHRoaXMubGlua01hcC5jbGVhcigpXG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgIHRoaXMubGlua01hcC5zZXQoZ2V0TGlua0lkKGxpbmspLCBsaW5rKVxuICAgICAgKVxuICAgICAgcmV0dXJuIGxpbmtzLmxlbmd0aFxuICAgICAgICA/IGxpbmtzLm1hcCgobGluaykgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXRMaW5rTGFiZWwobGluayksXG4gICAgICAgICAgICB2YWx1ZTogZ2V0TGlua0lkKGxpbmspLFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IFt7IGxhYmVsOiAnbWFwLmRyb3Bkb3duLnBsYWNlaG9sZGVyJywgdmFsdWU6ICcnIH1dXG4gICAgfSlcbiAgKVxuXG4gIHNlbGVjdGVkVmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIHNlbGVjdGVkTGlua0lkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcbiAgc2VsZWN0ZWRTdHlsZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcblxuICBzZWxlY3RlZFNvdXJjZUxpbmskID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jb21wYXRpYmxlTWFwTGlua3MkLFxuICAgIHRoaXMubGlua0Zyb21Db25maWckLFxuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgdGhpcy5zZWxlY3RlZFZpZXckLFxuICBdKS5waXBlKFxuICAgIHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmVycm9yID0gbnVsbFxuICAgIH0pLFxuICAgIG1hcCgoW2NvbXBhdGlibGVMaW5rcywgY29uZmlnTGluaywgaWQsIHZpZXddKSA9PiB7XG4gICAgICBpZiAodmlldyA9PT0gJ21hcCcpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbmZpZ0xpbmsgJiZcbiAgICAgICAgICAhaWQgJiZcbiAgICAgICAgICBjb21wYXRpYmxlTGlua3Muc29tZShcbiAgICAgICAgICAgIChsaW5rKSA9PiBnZXRMaW5rSWQobGluaykgPT09IGdldExpbmtJZChjb25maWdMaW5rKVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaG9pY2UgPSBnZXRMaW5rSWQoY29uZmlnTGluaylcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGNvbmZpZ0xpbmspXG4gICAgICAgICAgcmV0dXJuIGNvbmZpZ0xpbmtcbiAgICAgICAgfSBlbHNlIGlmIChpZCkge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hvaWNlID0gaWRcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KHRoaXMubGlua01hcC5nZXQoaWQpKVxuICAgICAgICAgIHJldHVybiB0aGlzLmxpbmtNYXAuZ2V0KGlkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubGlua1NlbGVjdGVkLmVtaXQoY29tcGF0aWJsZUxpbmtzWzBdKVxuICAgICAgICAgIHJldHVybiBjb21wYXRpYmxlTGlua3NbMF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIClcblxuICBzdHlsZUxpbmtzJCA9IHRoaXMuc2VsZWN0ZWRTb3VyY2VMaW5rJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoc3JjKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHNyYyAmJlxuICAgICAgICBzcmMudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgIHNyYy5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd0bXMnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgLy8gV0FSTklORzogd2hlbiB1c2luZyBcImdldEdlb2RhdGFMaW5rc0Zyb21UbXNcIiwgbWFrZSBzdXJlIHRvIGFkZCBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IHRoZSByZXN0IG9mIHRoZSBsb2dpYyBmcm9tIGZhaWxpbmdcbiAgICAgICAgICAvLyB0aGlzIG1heSBoYXBwZW4gd2hlbiBUTVMgZW5kcG9pbnQgaXMgaW4gZXJyb3JcbiAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldEdlb2RhdGFMaW5rc0Zyb21UbXMoXG4gICAgICAgICAgICBzcmMgYXMgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgZm9yIG1hcGxpYnJlLXN0eWxlIGxpbmtzIGJlY2F1c2Ugd2hlbiBhIFRNUyBzZXJ2aWNlIGhhcyBubyBzdHlsZXMsXG4gICAgICAgICAgLy8gZ2V0R2VvZGF0YUxpbmtzRnJvbVRtcyByZXR1cm5zIHRoZSBvcmlnaW5hbCBUTVMgbGluaywgd2hpY2ggaXNuJ3QgYSBtYXBsaWJyZS1zdHlsZSBsaW5rXG4gICAgICAgICAgbWFwKFxuICAgICAgICAgICAgKGxpbmtzKSA9PlxuICAgICAgICAgICAgICBsaW5rcz8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChsaW5rKSA9PlxuICAgICAgICAgICAgICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgICAgICAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnbWFwbGlicmUtc3R5bGUnXG4gICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICApLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICAgICAgcmV0dXJuIG9mKHNyYylcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gb2YoW10pXG4gICAgfSksXG4gICAgdGFwKChzdHlsZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLl9zdHlsZUZyb21Db25maWcgJiYgdGhpcy5fc3R5bGVGcm9tQ29uZmlnIDw9IHN0eWxlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0eWxlSWQkLm5leHQodGhpcy5fc3R5bGVGcm9tQ29uZmlnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0eWxlSWQkLm5leHQoMClcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgc3R5bGVEcm9wZG93bkNob2ljZXMkID0gdGhpcy5zdHlsZUxpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmssIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgICAgIHZhbHVlOiBpbmRleCxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnXFx1MDBBMFxcdTAwQTBcXHUwMEEwXFx1MDBBMCcsXG4gICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgKVxuICApXG5cbiAgc2VsZWN0ZWRMaW5rJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuc2VsZWN0ZWRTb3VyY2VMaW5rJCxcbiAgICB0aGlzLnN0eWxlTGlua3MkLFxuICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3NyYywgc3R5bGVzLCBzdHlsZUlkeF0pID0+IChzdHlsZXMubGVuZ3RoID8gc3R5bGVzW3N0eWxlSWR4XSA6IHNyYykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjdXJyZW50TGF5ZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0ZWRMaW5rJCwgdGhpcy5leGNsdWRlV2ZzJF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbbGluaywgZXhjbHVkZVdmc10pID0+IHtcbiAgICAgIGlmICghbGluaykge1xuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9XG4gICAgICBpZiAoZXhjbHVkZVdmcyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycpIHtcbiAgICAgICAgdGhpcy5oaWRlUHJldmlldyA9IHRydWVcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgdGhpcy5oaWRlUHJldmlldyA9IGZhbHNlXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG4gICAgICBpZiAobGluay5hY2Nlc3NSZXN0cmljdGVkKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoJ2RhdGFzZXQuZXJyb3IucmVzdHJpY3RlZEFjY2VzcycpXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykucGlwZShcbiAgICAgICAgbWFwKChsYXllcikgPT4gW2xheWVyXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGUpXG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcbiAgICAgIClcbiAgICB9KVxuICApXG5cbiAgbWFwQ29udGV4dCQ6IE9ic2VydmFibGU8TWFwQ29udGV4dD4gPSB0aGlzLmN1cnJlbnRMYXllcnMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChsYXllcnMpID0+XG4gICAgICBmcm9tKGNyZWF0ZVZpZXdGcm9tTGF5ZXIobGF5ZXJzWzBdKSkucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSksIC8vIGNvdWxkIG5vdCB6b29tIG9uIHRoZSBsYXllcjogdXNlIHRoZSByZWNvcmQgZXh0ZW50XG4gICAgICAgIG1hcCgodmlldykgPT4gKHtcbiAgICAgICAgICBsYXllcnMsXG4gICAgICAgICAgdmlldyxcbiAgICAgICAgfSkpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICksXG4gICAgc3RhcnRXaXRoKHtcbiAgICAgIGxheWVyczogW10sXG4gICAgICB2aWV3OiBudWxsLFxuICAgIH0pLFxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMubWRWaWV3RmFjYWRlLm1ldGFkYXRhJCksXG4gICAgbWFwKChbY29udGV4dCwgbWV0YWRhdGFdKSA9PiB7XG4gICAgICBpZiAoY29udGV4dC52aWV3KSByZXR1cm4gY29udGV4dFxuICAgICAgY29uc3QgZXh0ZW50ID0gdGhpcy5tYXBVdGlscy5nZXRSZWNvcmRFeHRlbnQobWV0YWRhdGEpXG4gICAgICBjb25zdCB2aWV3ID0gZXh0ZW50ID8geyBleHRlbnQgfSA6IG51bGxcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHZpZXcsXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWRWaWV3RmFjYWRlOiBNZFZpZXdGYWNhZGUsXG4gICAgcHJpdmF0ZSBtYXBVdGlsczogTWFwVXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLm1hcENvbnRhaW5lci5vcGVubGF5ZXJzTWFwXG4gICAgcHJpb3JpdGl6ZVBhZ2VTY3JvbGwobWFwLmdldEludGVyYWN0aW9ucygpKVxuICB9XG5cbiAgb25NYXBGZWF0dXJlU2VsZWN0KGZlYXR1cmVzOiBGZWF0dXJlW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICB0aGlzLnNlbGVjdGlvbiA9IGZlYXR1cmVzPy5sZW5ndGggPiAwICYmIGZlYXR1cmVzWzBdXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uU3R5bGUpXG4gICAgfVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgb25Tb3VyY2VMb2FkRXJyb3IoZXJyb3I6IFNvdXJjZUxvYWRFcnJvckV2ZW50KSB7XG4gICAgaWYgKGVycm9yLmh0dHBTdGF0dXMgPT09IDQwMyB8fCBlcnJvci5odHRwU3RhdHVzID09PSA0MDEpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgZGF0YXNldC5lcnJvci5mb3JiaWRkZW5gKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFzZXQuZXJyb3IuaHR0cGAsIHtcbiAgICAgICAgaW5mbzogZXJyb3IuaHR0cFN0YXR1cyxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKG51bGwpXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbFxuICB9XG5cbiAgZ2V0TGF5ZXJGcm9tTGluayhsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllcj4ge1xuICAgIGlmIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtcycpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogJ3dtcycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3RtcydcbiAgICApIHtcbiAgICAgIC8vIEZJWE1FOiBoZXJlIHdlJ3JlIGFzc3VtaW5nIHRoYXQgdGhlIFRNUyBzZXJ2ZXMgdmVjdG9yIHRpbGVzIG9ubHk7IHNob3VsZCBiZSBjaGVja2VkIHdpdGggb2djLWNsaWVudCBmaXJzdFxuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybFxuICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLz8kLywgYC8ke2xpbmsubmFtZX0ve3p9L3t4fS97eX0ucGJmYCksXG4gICAgICAgIHR5cGU6ICd4eXonLFxuICAgICAgICB0aWxlRm9ybWF0OiAnYXBwbGljYXRpb24vdm5kLm1hcGJveC12ZWN0b3ItdGlsZScsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ21hcGxpYnJlLXN0eWxlJ1xuICAgICkge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdHlwZTogJ21hcGxpYnJlLXN0eWxlJyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgICBzdHlsZVVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtdHMnXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6ICd3bXRzJyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ2VzcmlSZXN0JyB8fFxuICAgICAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnb2djRmVhdHVyZXMnKSkgfHxcbiAgICAgIGxpbmsudHlwZSA9PT0gJ2Rvd25sb2FkJ1xuICAgICkge1xuICAgICAgY29uc3QgY2FjaGVBY3RpdmUgPSB0cnVlIC8vIFRPRE8gaW1wbGVtZW50IHdoZXRoZXIgc2hvdWxkIGJlIHRydWUgb3IgZmFsc2VcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlYWRBc0dlb0pzb24obGluaywgY2FjaGVBY3RpdmUpLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0YSkgPT4gKHtcbiAgICAgICAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdwcm90b2NvbCBub3Qgc3VwcG9ydGVkJylcbiAgfVxuICBoYW5kbGVFcnJvcihlcnJvcjogRmV0Y2hFcnJvciB8IEVycm9yIHwgc3RyaW5nKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRmV0Y2hFcnJvcikge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICBgZGF0YXNldC5lcnJvci4ke2Vycm9yLnR5cGV9YCxcbiAgICAgICAge1xuICAgICAgICAgIGluZm86IGVycm9yLmluZm8sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIGNvbnNvbGUud2FybihlcnJvci5tZXNzYWdlKVxuICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGVycm9yLm1lc3NhZ2UpXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3Iuc3RhY2sgfHwgZXJyb3IpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlcnJvcilcbiAgICAgIGNvbnNvbGUud2FybihlcnJvcilcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICB0aGlzLmNoYW5nZVJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCBnYXAtWzEzcHhdXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTQgcHktNCBweC01IGJnLXdoaXRlIGJvcmRlciBib3JkZXItY29sb3ItYm9yZGVyIHJvdW5kZWQtbGcgbXQtNlwiXG4gID5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICpuZ0lmPVwiZGlzcGxheVNvdXJjZVwiXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6bWluLXctMFwiXG4gICAgICBleHRyYUJ0bkNsYXNzPVwiZm9udC1zYW5zIGZvbnQtYm9sZFwiXG4gICAgICBbdGl0bGVdPVwiJ21hcC5zZWxlY3QubGF5ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtjaG9pY2VzXT1cImRyb3Bkb3duQ2hvaWNlcyQgfCBhc3luY1wiXG4gICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQ2hvaWNlXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RMaW5rVG9EaXNwbGF5KCRldmVudClcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihzdHlsZUxpbmtzJCB8IGFzeW5jKT8ubGVuZ3RoID4gMDsgZWxzZSBzdHlsZURpc2FibGVkXCI+XG4gICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOm1pbi13LTBcIlxuICAgICAgICBleHRyYUJ0bkNsYXNzPVwiZm9udC1zYW5zIGZvbnQtYm9sZFwiXG4gICAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5zdHlsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbY2hvaWNlc109XCJzdHlsZURyb3Bkb3duQ2hvaWNlcyQgfCBhc3luY1wiXG4gICAgICAgIFtzZWxlY3RlZF09XCJfc3R5bGVGcm9tQ29uZmlnXCJcbiAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNlbGVjdFN0eWxlVG9EaXNwbGF5KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNzdHlsZURpc2FibGVkPlxuICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDptaW4tdy0wIHRleHQtZ3JheS00MDBcIlxuICAgICAgICBleHRyYUJ0bkNsYXNzPVwiZm9udC1zYW5zIGZvbnQtYm9sZCB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LnN0eWxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtjaG9pY2VzXT1cInN0eWxlRHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgY2xhc3M9XCJzZWxmLWVuZCBtZDptbC0yXCI+XG4gICAgICA8Z24tdWktZXh0ZXJuYWwtdmlld2VyLWJ1dHRvblxuICAgICAgICBleHRyYUNsYXNzPVwidy1bNDRweF0gaC1bNDRweF1cIlxuICAgICAgICBbbGlua109XCJzZWxlY3RlZExpbmskIHwgYXN5bmNcIlxuICAgICAgPlxuICAgICAgPC9nbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGVQcmV2aWV3OyBlbHNlIG1hcFZpZXdcIj5cbiAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiYmxvY2sgaC0xMiBwLTFcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQuZmVhdHVyZS5saW1pdDwvc3Bhbj5cbiAgICA8L2duLXVpLXBvcHVwLWFsZXJ0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNtYXBWaWV3PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICA+XG4gICAgICA8Z24tdWktbWFwLWNvbnRhaW5lclxuICAgICAgICAjbWFwQ29udGFpbmVyXG4gICAgICAgIFtjb250ZXh0XT1cIm1hcENvbnRleHQkIHwgYXN5bmNcIlxuICAgICAgICAoZmVhdHVyZXNDbGljayk9XCJvbk1hcEZlYXR1cmVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIChzb3VyY2VMb2FkRXJyb3IpPVwib25Tb3VyY2VMb2FkRXJyb3IoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1tYXAtY29udGFpbmVyPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRvcC1bMWVtXSByaWdodC1bMWVtXSBwLTMgYmctd2hpdGUgYWJzb2x1dGUgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIG1heC1oLTcyIHctNTZcIlxuICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiFzZWxlY3Rpb25cIlxuICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwicmVzZXRTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgLS1nbi11aS1idXR0b24taGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIFwiXG4gICAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHJpZ2h0LVswLjVlbV0gbWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRDbG9zZVwiIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHRleHQtc21cIj48L25nLWljb24+XG4gICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8Z24tdWktZmVhdHVyZS1kZXRhaWxcbiAgICAgICAgICBbZmVhdHVyZUNhdGFsb2ddPVwibWRWaWV3RmFjYWRlLmZlYXR1cmVDYXRhbG9nJCB8IGFzeW5jXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJzZWxlY3Rpb25cIlxuICAgICAgICA+PC9nbi11aS1mZWF0dXJlLWRldGFpbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidG9wLVsxZW1dIHAtMyBiZy13aGl0ZSBhYnNvbHV0ZSBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gbWF4LWgtNzIgdy01NlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3JpZ2h0LVsxZW1dJzogIXNlbGVjdGlvbiwgJ3JpZ2h0LVsxNmVtXSc6IHNlbGVjdGlvbiB9XCJcbiAgICAgICAgW2hpZGRlbl09XCIhc2hvd0xlZ2VuZCB8fCAhbGVnZW5kRXhpc3RzXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LWJvbGRcIiB0cmFuc2xhdGU+bWFwLmxlZ2VuZC50aXRsZTwvZGl2PlxuICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwidG9nZ2xlTGVnZW5kKClcIlxuICAgICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgICAgLS1nbi11aS1idXR0b24tcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi13aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgLS1nbi11aS1idXR0b24taGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGV4dHJhQ2xhc3M9XCJtbC1bOHB4XSBtci1bMTBweF1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRDbG9zZVwiIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHRleHQtc21cIj48L25nLWljb24+XG4gICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8Z24tdWktbWFwLWxlZ2VuZFxuICAgICAgICAgIFtjb250ZXh0XT1cIm1hcENvbnRleHQkIHwgYXN5bmNcIlxuICAgICAgICAgIChsZWdlbmRTdGF0dXNDaGFuZ2UpPVwib25MZWdlbmRTdGF0dXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L2duLXVpLW1hcC1sZWdlbmQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFzaG93TGVnZW5kICYmIGxlZ2VuZEV4aXN0cyAmJiAhc2VsZWN0aW9uXCJcbiAgICAgICAgdHlwZT1cIm91dGxpbmVcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwidG9nZ2xlTGVnZW5kKClcIlxuICAgICAgICBleHRyYUNsYXNzPVwiYWJzb2x1dGUgdG9wLVsxZW1dIHJpZ2h0LVsxZW1dIHJvdW5kZWQgcC0xIHRleHQteHMgYmctd2hpdGVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgbWFwLmxlZ2VuZC50aXRsZVxuICAgICAgPC9nbi11aS1idXR0b24+XG5cbiAgICAgIDxnbi11aS1sb2FkaW5nLW1hc2tcbiAgICAgICAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wXCJcbiAgICAgICAgW21lc3NhZ2VdPVwiJ21hcC5sb2FkaW5nLmRhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICAgID48L2duLXVpLWxvYWRpbmctbWFzaz5cbiAgICAgIDxnbi11aS1wb3B1cC1hbGVydFxuICAgICAgICAqbmdJZj1cImVycm9yXCJcbiAgICAgICAgdHlwZT1cIndhcm5pbmdcIlxuICAgICAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbS0yIGluc2V0LTBcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiB0cmFuc2xhdGU+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgICA8L2duLXVpLXBvcHVwLWFsZXJ0PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -15,7 +15,7 @@ import { TranslateCompiler, TranslateLoader, TranslateDefaultParser, TranslatePa
15
15
  import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
16
16
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
17
17
  import { map as map$1, shareReplay as shareReplay$1, catchError, tap as tap$1, filter as filter$1, startWith as startWith$1, withLatestFrom, switchMap as switchMap$1, take, mergeMap, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, first as first$1, pairwise as pairwise$1, share, defaultIfEmpty, toArray } from 'rxjs/operators';
18
- import { of, map as map$2, lastValueFrom, fromEvent, startWith, shareReplay, filter, pairwise, Subject, switchMap, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, timer, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, animationFrameScheduler, debounceTime as debounceTime$1, Observable, buffer, tap as tap$2, combineLatestWith, take as take$1, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1 } from 'rxjs';
18
+ import { of, map as map$2, lastValueFrom, fromEvent, startWith, shareReplay, filter, pairwise, switchMap, Subject, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, timer, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, animationFrameScheduler, debounceTime as debounceTime$1, Observable, buffer, tap as tap$2, combineLatestWith, take as take$1, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1 } from 'rxjs';
19
19
  import { lt, valid, coerce, satisfies, ltr } from 'semver';
20
20
  import chroma from 'chroma-js';
21
21
  import * as i1$2 from '@angular/common';
@@ -25445,7 +25445,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
25445
25445
  }] } });
25446
25446
 
25447
25447
  var name = "geonetwork-ui";
25448
- var version = "2.7.2-dev.a33d4e84e";
25448
+ var version = "2.7.2";
25449
25449
  var engines = {
25450
25450
  node: ">=20"
25451
25451
  };
@@ -26197,7 +26197,7 @@ class Gn4SettingsService {
26197
26197
  this.apiVersion$ = this.getSettingsSetValueByKey('system/platform/version');
26198
26198
  }
26199
26199
  getSettingsSetValueByKey(key) {
26200
- return this.siteApiService.getSettingsSet(null, [key]).pipe(map$1((v) => v[key]), shareReplay$1({ bufferSize: 1, refCount: true }));
26200
+ return of(true).pipe(switchMap(() => this.siteApiService.getSettingsSet(null, [key])), map$1((v) => v[key]), shareReplay$1({ bufferSize: 1, refCount: true }));
26201
26201
  }
26202
26202
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, deps: [{ token: SiteApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
26203
26203
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, providedIn: 'root' }); }
@@ -26824,7 +26824,7 @@ class AuthService {
26824
26824
  baseUrl = baseUrl.replace('?', '&');
26825
26825
  }
26826
26826
  return baseUrl
26827
- .replace('${current_url}', new URL(this.location.path(), window.location.href).toString())
26827
+ .replace('${current_url}', new URL(this.location.prepareExternalUrl(this.location.path()), window.location.href).toString())
26828
26828
  .replace('${lang2}', toLang2(this.translateService.currentLang))
26829
26829
  .replace('${lang3}', toLang3(this.translateService.currentLang));
26830
26830
  }
@@ -27132,6 +27132,9 @@ class Gn4PlatformService {
27132
27132
  console.warn('Error while loading gnui language package');
27133
27133
  return of({});
27134
27134
  }), shareReplay$1(1));
27135
+ this.me$ = this.disableAuth
27136
+ ? of(null)
27137
+ : of(true).pipe(switchMap(() => this.meApi.getMe()), switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay$1({ bufferSize: 1, refCount: true }));
27135
27138
  /**
27136
27139
  * A map of already loaded thesauri (groups of keywords); the key is a URI
27137
27140
  * @private
@@ -27142,9 +27145,6 @@ class Gn4PlatformService {
27142
27145
  .pipe(map$1((thesaurus) => {
27143
27146
  return thesaurus[0];
27144
27147
  }), shareReplay$1(1));
27145
- this.me$ = this.disableAuth
27146
- ? of(null)
27147
- : this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay$1({ bufferSize: 1, refCount: true }));
27148
27148
  this.isUserAnonymous$ = this.me$.pipe(map$1((user) => !user || !('id' in user)));
27149
27149
  this.users$ = this.usersApi.getUsers().pipe(map$1((users) => users.map((user) => this.mapper.userFromApi(user))), shareReplay$1());
27150
27150
  }
@@ -40022,6 +40022,7 @@ class MapViewComponent {
40022
40022
  set exceedsLimit(value) {
40023
40023
  this.excludeWfs$.next(value);
40024
40024
  }
40025
+ // FIXME the map view component should not need a selectedView
40025
40026
  set selectedView(value) {
40026
40027
  this.selectedView$.next(value);
40027
40028
  }