@tiba-spark/client-shared-lib 26.3.0-512 → 26.3.0-514

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.
@@ -564,7 +564,7 @@ export class MenuService {
564
564
  return [
565
565
  {
566
566
  icon: 'tb-section-device-configurator-module',
567
- name: 'device_configurator',
567
+ name: Localization.device_configurator,
568
568
  route: this.getNavigationRoute(['tech-tools', 'device-configurator']),
569
569
  hasBadge: false,
570
570
  children: null,
@@ -577,4 +577,4 @@ export class MenuService {
577
577
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MenuService, decorators: [{
578
578
  type: Injectable
579
579
  }], ctorParameters: () => [{ type: i1.RouteService }, { type: i2.Store }] });
580
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUduRCxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFvQixZQUEwQixFQUFVLEtBQVk7UUFBaEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQ3BFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFvQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixNQUFNLElBQUksR0FBZSxFQUFFLENBQUM7UUFDNUIsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdLLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFD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QUFDOytHQXJuQlUsV0FBVzttSEFBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbWVudS1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uSW5mbyB9IGZyb20gJy4uL21vZHVsZXMvYXV0aC9tb2RlbC9wZXJtaXNzaW9uLWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvYXV0aC9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IEFwcE1vZHVsZSwgUmVwb3J0Q2F0ZWdvcnlEdG8sIFN1Yk1vZHVsZSB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IFJvdXRlU2VydmljZSB9IGZyb20gJy4vcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBSRVBPUlRfQ0FURUdPUllfQUxMIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lbnVTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlU2VydmljZTogUm91dGVTZXJ2aWNlLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICB9XG5cbiAgZ2V0TmF2aWdhdGlvblJvdXRlKHJvdXRlUGFydHM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlU2VydmljZS5nZXROYXZpZ2F0aW9uUm91dGUocm91dGVQYXJ0cyk7XG4gIH1cblxuICBnZXRFQ29tbWVyY2VCYWNrb2ZmaWNlTWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICBjb25zdCBtZW51OiBNZW51SXRlbVtdID0gW107XG4gICAgY29uc3QgZUNvbW1lcmNlQmFja29mZmljZU1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLnVzZXJJbmZvKT8ucGVybWlzc2lvbkluZm8/Lm1vZHVsZXM/LmZpbmQobW9kdWxlID0+IG1vZHVsZS5tb2R1bGUgPT09IEFwcE1vZHVsZS5FQ29tbWVyY2VCYWNrb2ZmaWNlKTtcbiAgICBjb25zdCBpc1N1Yk1vZHVsZUV4aXN0cyA9IChzdWJNb2R1bGU6IFN1Yk1vZHVsZSkgPT4gZUNvbW1lcmNlQmFja29mZmljZU1vZHVsZT8uc3ViTW9kdWxlPy5zb21lKHMgPT4gcyA9PT0gc3ViTW9kdWxlKSA/PyBmYWxzZTtcblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRUNvbW1lcmNlTXlTaXRlKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtZWNvbW1lcmNlLW15LXNpdGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZWNvbW1lcmNlX215X3NpdGUsXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnZWNvbW1lcmNlLWJhY2tvZmZpY2UnLCAnbXktc2l0ZSddKSxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5FQ29tbWVyY2VNeVNpdGVcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRUNvbW1lcmNlQ29uZmlndXJhdGlvbikpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWVjb21tZXJjZS1jb25maWd1cmF0aW9uJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmNvbmZpZ3VyYXRpb24sXG4gICAgICAgIHJvdXRlOiBudWxsLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWVjb21tZXJjZS1jb25maWd1cmF0aW9uLWNhcmQtb24tZmlsZScsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmNhcmRfb25fZmlsZSxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydlY29tbWVyY2UtYmFja29mZmljZScsICdjb25maWd1cmF0aW9uJywgJ2NhcmQtb24tZmlsZSddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuRUNvbW1lcmNlQ29uZmlndXJhdGlvblxuICAgICAgICB9LHtcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1lY29tbWVyY2UtY29uZmlndXJhdGlvbi1vZmZlcnMtbWFuYWdlbWVudCcsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLm9mZmVyc19tYW5hZ2VtZW50LFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2Vjb21tZXJjZS1iYWNrb2ZmaWNlJywgJ2NvbmZpZ3VyYXRpb24nLCAnb2ZmZXJzLW1hbmFnZW1lbnQnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkVDb21tZXJjZUNvbmZpZ3VyYXRpb25cbiAgICAgICAgfV0sXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkVDb21tZXJjZUNvbmZpZ3VyYXRpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRUNvbW1lcmNlU2NhblRvUGF5U2lnbnMpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1lY29tbWVyY2Utc2Nhbi10by1wYXktc2lnbnMnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uc2Nhbl90b19wYXlfc2lnbnMsXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnZWNvbW1lcmNlLWJhY2tvZmZpY2UnLCAnc2Nhbi10by1wYXktc2lnbnMnXSksXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuRUNvbW1lcmNlU2NhblRvUGF5U2lnbnNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZW51O1xuICB9XG5cbiAgZ2V0TG90Q29uZmlndXJhdGlvbk1lbnUoKTogTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgbWVudTogTWVudUl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IGxvdENvbmZpZ3VyYXRpb25Nb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS51c2VySW5mbyk/LnBlcm1pc3Npb25JbmZvPy5tb2R1bGVzPy5maW5kKG1vZHVsZSA9PiBtb2R1bGUubW9kdWxlID09PSBBcHBNb2R1bGUuTG90Q29uZmlndXJhdGlvbik7XG4gICAgY29uc3QgaXNTdWJNb2R1bGVFeGlzdHMgPSAoc3ViTW9kdWxlOiBTdWJNb2R1bGUpID0+IGxvdENvbmZpZ3VyYXRpb25Nb2R1bGU/LnN1Yk1vZHVsZT8uc29tZShzID0+IHMgPT09IHN1Yk1vZHVsZSkgPz8gZmFsc2U7XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLlJhdGVzKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtcmF0ZXMnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24ucmF0ZXMsXG4gICAgICAgIHJvdXRlOiBudWxsLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLXNwZWNpYWwtZGF5cycsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnNwZWNpYWxfZGF5cyxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdyYXRlcycsICdzcGVjaWFsLWRheXMnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlJhdGVzXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1yYXRlcy1wcm9ncmFtbWluZycsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnJhdGVzX3Byb2dyYW1taW5nLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ3JhdGVzJywgJ3JhdGVzLXByb2dyYW1taW5nJ10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5SYXRlc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUta2V5LW9wdGlvbnMnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5rZXlfb3B0aW9ucyxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdyYXRlcycsICdrZXktb3B0aW9ucyddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuUmF0ZXNcbiAgICAgICAgfSwge1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLXN1cmNoYXJnZScsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnN1cmNoYXJnZSxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdyYXRlcycsICdzdXJjaGFyZ2UnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlJhdGVzXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1yYXRlLW9uLWRpc3BsYXknLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5yYXRlX29uX2Rpc3BsYXksXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAncmF0ZXMnLCAncmF0ZS1vbi1kaXNwbGF5J10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5SYXRlc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtbG9zdC10aWNrZXQnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5sb3N0X3RpY2tldF9mZWUsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAncmF0ZXMnLCAnbG9zdC10aWNrZXQnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlJhdGVzXG4gICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuUmF0ZXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRHluYW1pY1ByaWNpbmcpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1keW5hbWljLXByaWNpbmcnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZHluYW1pY19wcmljaW5nLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdkeW5hbWljLXByaWNpbmcnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5EeW5hbWljUHJpY2luZ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5TY2hlZHVsZXIpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1zY2hlZHVsZXInLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uc2NoZWR1bGVyLFxuICAgICAgICByb3V0ZTogbnVsbCxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1zY2hlZHVsZXItcmF0ZScsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnJhdGUsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAnc2NoZWR1bGVyJywgJ3JhdGUnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlNjaGVkdWxlclxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtZGV2aWNlLWFjdGl2aXR5JyxcbiAgICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZGV2aWNlX2FjdGl2aXR5LFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ3NjaGVkdWxlcicsICdkZXZpY2UtYWN0aXZpdHknXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlNjaGVkdWxlclxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtcHJlcGFpZC1rZXlzJyxcbiAgICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24ucHJlcGFpZF9rZXlzLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ3NjaGVkdWxlcicsICdwcmVwYWlkLWtleXMnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlNjaGVkdWxlclxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtYWNjZXNzLXByb2ZpbGVzLWFsdGVybmF0aXZlcycsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmFjY2Vzc19wcm9maWxlX2FsdGVybmF0aXZlLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ3NjaGVkdWxlcicsICdhY2Nlc3MtcHJvZmlsZS1hbHRlcm5hdGl2ZSddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuU2NoZWR1bGVyXG4gICAgICAgIH1dLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5TY2hlZHVsZXJcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuVmFsaWRhdGlvblByb2ZpbGVzKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtdmFsaWRhdGlvbicsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi52YWxpZGF0aW9uX3Byb2ZpbGVzLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICd2YWxpZGF0aW9uLXByb2ZpbGUnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5WYWxpZGF0aW9uUHJvZmlsZXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuQWNjZXNzUHJvZmlsZXMpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1hY2Nlc3MtcHJvZmlsZXMnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uYWNjZXNzX3Byb2ZpbGVzLFxuICAgICAgICByb3V0ZTogbnVsbCxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1hY2Nlc3MtcHJvZmlsZXMtbW9udGhsaWVzLWd1ZXN0cycsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLm1vbnRobGllc19hbmRfZ3Vlc3RzLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ2FjY2Vzcy1wcm9maWxlcycsICdtb250aGxpZXMtYW5kLWd1ZXN0cyddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuQWNjZXNzUHJvZmlsZXNcbiAgICAgICAgfV0sXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkFjY2Vzc1Byb2ZpbGVzXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkNhc2hpZXJzTWFuYWdlbWVudCkpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLW1hbmFnZS1jYXNoaWVycycsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5jYXNoaWVyc19tYW5hZ2VtZW50LFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ2Nhc2hpZXJzLW1hbmFnZW1lbnQnXSksXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuQ2FzaGllcnNNYW5hZ2VtZW50XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVudTtcbiAgfVxuXG4gIGdldE1hbmFnZW1lbnRNZW51KCk6IE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IG1lbnU6IE1lbnVJdGVtW10gPSBbXG4gICAgICB0aGlzLmdldFVzZXJzTWVudUl0ZW0oKSxcbiAgICBdO1xuXG4gICAgY29uc3QgdXNlck1hbmFnZW1lbnRNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS51c2VySW5mbyk/LnBlcm1pc3Npb25JbmZvPy5tb2R1bGVzPy5maW5kKG1vZHVsZSA9PiBtb2R1bGUubW9kdWxlID09PSBBcHBNb2R1bGUuTWFuYWdlbWVudCk7XG4gICAgY29uc3QgaXNTdWJNb2R1bGVFeGlzdHMgPSAoc3ViTW9kdWxlOiBTdWJNb2R1bGUpID0+IHVzZXJNYW5hZ2VtZW50TW9kdWxlPy5zdWJNb2R1bGU/LnNvbWUocyA9PiBzID09PSBzdWJNb2R1bGUpID8/IGZhbHNlO1xuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5GYWNpbGl0aWVzQW5kU21hcnRwYXJrcykpIHtcbiAgICAgIG1lbnUudW5zaGlmdCh7XG4gICAgICAgIGljb246ICd0Yi1mYWNpbGl0eS1pY29uJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnNtYXJ0cGFya190aXRsZSxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdzbWFydHBhcmtzJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkxvZ28pKSB7XG4gICAgICBtZW51LnB1c2godGhpcy5nZXRMb2dvTWVudUl0ZW0oKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5TbXRwU2V0dGluZ3MpKSB7XG4gICAgICBtZW51LnB1c2godGhpcy5nZXRTbXRwU2V0dGluZ3NNZW51SXRlbSgpKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkRlZmF1bHRVc2VyU2V0dGluZ3MpKSB7XG4gICAgICBtZW51LnB1c2godGhpcy5nZXREZWZhdWx0VXNlcnNTZXR0aW5nc01lbnVJdGVtKCkpO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRGVmYXVsdFRlbmFudFNldHRpbmdzKSkge1xuICAgICAgbWVudS5wdXNoKHRoaXMuZ2V0RGVmYXVsdFRlbmFudFNldHRpbmdzTWVudUl0ZW0oKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5BdWRpdCkpIHtcbiAgICAgIG1lbnUucHVzaCh0aGlzLmdldEF1ZGl0TG9nTWVudUl0ZW0oKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5EaWdpdGFsUmVjZWlwdCkpIHtcbiAgICAgIG1lbnUucHVzaCh0aGlzLmdldERpZ2l0YWxSZWNlaXB0TWVudUl0ZW0oKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5FbmZvcmNlbWVudEludGVncmF0aW9uKSkge1xuICAgICAgbWVudS5wdXNoKHRoaXMuZ2V0RW5mb3JjZW1lbnRJbnRlZ3JhdGlvbk1lbnVJdGVtKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBtZW51O1xuICB9XG5cbiAgZ2V0RGVmYXVsdFVzZXJzU2V0dGluZ3NNZW51SXRlbSgpOiBNZW51SXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246ICd0Yi11c2Vycy1zZXR0aW5ncy1pY29uJyxcbiAgICAgIG5hbWU6IExvY2FsaXphdGlvbi51c2VyX2RlZmF1bHRfc2V0dGluZ3MsXG4gICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ2RlZmF1bHQtdXNlci1zZXR0aW5ncyddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0VGVuYW50U2V0dGluZ3NNZW51SXRlbSgpOiBNZW51SXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246ICd0Yi1jb21tYW5kLXNldHRpbmdzLWljb24nLFxuICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmRlZmF1bHRfdGVuYW50X3NldHRpbmdzLFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdkZWZhdWx0LXRlbmFudC1zZXR0aW5ncyddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBnZXRBdWRpdExvZ01lbnVJdGVtKCk6IE1lbnVJdGVtIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogJ3RiLWF1ZGl0LWljb24nLFxuICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmF1ZGl0X2xvZ3MsXG4gICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ2F1ZGl0LWxvZyddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBnZXREaWdpdGFsUmVjZWlwdE1lbnVJdGVtKCk6IE1lbnVJdGVtIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogJ3RiLWRpZ2l0YWwtcmVjZWlwdC1pY29uJyxcbiAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5kaWdpdGFsX3JlY2VpcHQsXG4gICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ2RpZ2l0YWwtcmVjZWlwdCddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBnZXRFbmZvcmNlbWVudEludGVncmF0aW9uTWVudUl0ZW0oKTogTWVudUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiAndGItZW5mb3JjZW1lbnQtaW50ZWdyYXRpb24taWNvbicsXG4gICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZW5mb3JjZW1lbnRfaW50ZWdyYXRpb24sXG4gICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ2VuZm9yY2VtZW50LWludGVncmF0aW9uJ10pLFxuICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGdldFVzZXJzTWVudUl0ZW0oKTogTWVudUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiAndGItdXNlci1pY29uJyxcbiAgICAgIG5hbWU6IExvY2FsaXphdGlvbi51c2VyX21hbmFnZW1lbnQsXG4gICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ3VzZXItbWFuYWdlbWVudCddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBnZXRMb2dvTWVudUl0ZW0oKTogTWVudUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiAndGItdGVuYW50LXdoaXRlLWxvZ28tbW9kdWxlJyxcbiAgICAgIG5hbWU6IExvY2FsaXphdGlvbi50ZW5hbnRfbG9nbyxcbiAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21hbmFnZW1lbnQnLCAnbG9nbyddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBnZXRTbXRwU2V0dGluZ3NNZW51SXRlbSgpOiBNZW51SXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246ICd0Yi1lbWFpbC1zZXJ2ZXItaWNvbicsXG4gICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZW1haWxfc2VydmVyX3RpdGxlLFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdlbWFpbC1zZXJ2ZXInXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VXNlclNldHRpbmdzTWVudShwZXJtaXNzaW9uSW5mbzogUGVybWlzc2lvbkluZm8pOiBNZW51SXRlbVtdIHtcbiAgICBjb25zdCB1c2VyU2V0dGluZ3NNZW51OiBNZW51SXRlbVtdID0gW107XG4gICAgY29uc3QgaXNVc2VyQXV0aGVudGljYXRlZFdpdGhTU08gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5pc1VzZXJBdXRoZW50aWNhdGVkV2l0aFNTTyk7XG5cbiAgICBpZiAoIWlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoU1NPKSB7XG4gICAgICB1c2VyU2V0dGluZ3NNZW51LnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICBpY29uOiAndGItc2VjdXJpdHktaWNvbicsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnNlY3VyaXR5X3RpdGxlLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3NldHRpbmdzJywgJ3NlY3VyaXR5J10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSWYgYWxlcnRzXG4gICAgaWYgKHBlcm1pc3Npb25JbmZvLm1vZHVsZXMuZmlsdGVyKG0gPT4gQXBwTW9kdWxlLkNjID09PSBtLm1vZHVsZSkubGVuZ3RoKSB7XG4gICAgICB1c2VyU2V0dGluZ3NNZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItYWxlcnRzLWljb24nLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uYWxlcnRzX2FuZF9ub3RpZmljYXRpb25zX3ByZWZlcmVuY2VzX3RpdGxlLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydzZXR0aW5ncycsICdhbGVydHMtYW5kLW5vdGlmaWNhdGlvbnMnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB1c2VyU2V0dGluZ3NNZW51LnB1c2goe1xuICAgICAgaWNvbjogJ3RiLWRhdGUtYW5kLXRpbWUtaWNvbicsXG4gICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZGF0ZV90aW1lX3RpdGxlLFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnc2V0dGluZ3MnLCAnZGF0ZS10aW1lJ10pLFxuICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgfSk7XG5cbiAgICB1c2VyU2V0dGluZ3NNZW51LnB1c2goe1xuICAgICAgaWNvbjogJ3RiLWxhbmd1YWdlLWljb24nLFxuICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmxhbmd1YWdlX3RpdGxlLFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnc2V0dGluZ3MnLCAnbGFuZ3VhZ2UnXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9KTtcblxuICAgIHJldHVybiB1c2VyU2V0dGluZ3NNZW51O1xuICB9XG5cbiAgZ2V0VmFsaWRhdGlvbk1lbnUoKTogTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgbWVudTogTWVudUl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IHZhbGlkYXRpb25Nb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS51c2VySW5mbyk/LnBlcm1pc3Npb25JbmZvPy5tb2R1bGVzPy5maW5kKG1vZHVsZSA9PiBtb2R1bGUubW9kdWxlID09PSBBcHBNb2R1bGUuVmFsaWRhdGlvbik7XG4gICAgY29uc3QgaXNTdWJNb2R1bGVFeGlzdHMgPSAoc3ViTW9kdWxlOiBTdWJNb2R1bGUpID0+IHZhbGlkYXRpb25Nb2R1bGU/LnN1Yk1vZHVsZT8uc29tZShzID0+IHMgPT09IHN1Yk1vZHVsZSkgPz8gZmFsc2U7XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkVWYWxpZGF0aW9uKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWVWYWxpZGF0aW9uLW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5lVmFsaWRhdGlvbixcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsndmFsaWRhdGlvbicsICdyZW1vdGUtdmFsaWRhdGlvbiddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuRVZhbGlkYXRpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuU2VsZlZhbGlkYXRpb24pKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItc2VsZi12YWxpZGF0aW9ucy1tb2R1bGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uc2VsZl92YWxpZGF0aW9ucyxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsndmFsaWRhdGlvbicsICdzZWxmLXZhbGlkYXRpb25zJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5TZWxmVmFsaWRhdGlvblxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5Db3Vwb25zKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWNvdXBvbi1pY29uJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmNvdXBvbnMsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3ZhbGlkYXRpb24nLCAnY291cG9ucyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuQ291cG9ucyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuU3RpY2tlcnMpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItc3RpY2tlci1pY29uJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnN0aWNrZXJzLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWyd2YWxpZGF0aW9uJywgJ3N0aWNrZXJzJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5TdGlja2VycyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZW51O1xuICB9XG5cbiAgZ2V0R3Vlc3RNZW51KCk6IE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IG1lbnU6IE1lbnVJdGVtW10gPSBbXTtcbiAgICBjb25zdCBndWVzdE1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLnVzZXJJbmZvKT8ucGVybWlzc2lvbkluZm8/Lm1vZHVsZXM/LmZpbmQobW9kdWxlID0+IG1vZHVsZS5tb2R1bGUgPT09IEFwcE1vZHVsZS5HdWVzdHMpO1xuICAgIGNvbnN0IGlzU3ViTW9kdWxlRXhpc3RzID0gKHN1Yk1vZHVsZTogU3ViTW9kdWxlKSA9PiBndWVzdE1vZHVsZT8uc3ViTW9kdWxlPy5zb21lKHMgPT4gcyA9PT0gc3ViTW9kdWxlKSA/PyBmYWxzZTtcblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuR3Vlc3RzKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLXNlY3Rpb24tZ3Vlc3QtbW9kdWxlJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmd1ZXN0LFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydndWVzdHMnLCAnZ3Vlc3QnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkd1ZXN0cyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuSG90ZWxHdWVzdHMpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItc2VjdGlvbi1ob3RlbC1ndWVzdC1tb2R1bGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uaG90ZWxfZ3Vlc3QsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2d1ZXN0cycsICdob3RlbC1ndWVzdCddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuSG90ZWxHdWVzdHMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkhvdGVsR3Vlc3RzSU8pKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItd2hpdGUtaW4tb3V0LXRpY2tldHMtbW9kdWxlJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmluX291dF90aWNrZXQsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2d1ZXN0cycsICdpbi1vdXQtdGlja2V0J10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5Ib3RlbEd1ZXN0c0lPLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5FVm91Y2hlcikpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi13aGl0ZS1lVm91Y2hlcnMnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZVZvdWNoZXIsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2d1ZXN0cycsICdlVm91Y2hlciddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuRVZvdWNoZXIsXG4gICAgICB9KTtcbiAgICB9XG5cblxuICAgIHJldHVybiBtZW51O1xuICB9XG5cbiAgZ2V0UmVwb3J0c01lbnUocmVwb3J0Q2F0ZWdvcmllczogUmVwb3J0Q2F0ZWdvcnlEdG9bXSk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICd0Yi1zZWN0aW9uLXJlcG9ydHMtbW9kdWxlJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnJlcG9ydF90eXBlX2FsbCxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsncmVwb3J0cycsICdjYXRlZ29yeScsIFJFUE9SVF9DQVRFR09SWV9BTEwudG9TdHJpbmcoKV0pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgfSxcbiAgICAgIC4uLiByZXBvcnRDYXRlZ29yaWVzLm1hcChyZXBvcnRDYXRlZ29yeSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWNvbjogJ3RiLXNlY3Rpb24tcmVwb3J0cy1tb2R1bGUnLFxuICAgICAgICAgIG5hbWU6IHJlcG9ydENhdGVnb3J5LmxvY2FsaXphdGlvbktleSxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydyZXBvcnRzJywgJ2NhdGVnb3J5JywgcmVwb3J0Q2F0ZWdvcnkuY2F0ZWdvcnlJZC50b1N0cmluZygpXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgZ2V0TW9udGhsaWVzTWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICBjb25zdCBtZW51OiBNZW51SXRlbVtdID0gW107XG4gICAgY29uc3QgbW9udGhseU1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLnVzZXJJbmZvKT8ucGVybWlzc2lvbkluZm8/Lm1vZHVsZXM/LmZpbmQobW9kdWxlID0+IG1vZHVsZS5tb2R1bGUgPT09IEFwcE1vZHVsZS5Nb250aGxpZXMpO1xuICAgIGNvbnN0IGlzU3ViTW9kdWxlRXhpc3RzID0gKHN1Yk1vZHVsZTogU3ViTW9kdWxlKSA9PiBtb250aGx5TW9kdWxlPy5zdWJNb2R1bGU/LnNvbWUocyA9PiBzID09PSBzdWJNb2R1bGUpID8/IGZhbHNlO1xuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuTW9udGhsaWVzKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLXNlY3Rpb24tbW9udGhsaWVzLW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5tb250aGxpZXMsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21vbnRobGllcycsICdtb250aGxpZXMnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLk1vbnRobGllcyxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLk1vbnRobHlUcmFmZmljKSkge1xuICAgICAgICBtZW51LnB1c2goe1xuICAgICAgICAgIGljb246ICd0Yi1zZWN0aW9uLW1vbnRobGllcy1tb2R1bGUnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5tb250aGx5X3RyYWZmaWMsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbW9udGhsaWVzJywgJ21vbnRobHktdHJhZmZpYyddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuTW9udGhseVRyYWZmaWMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkltcG9ydGVyVG9vbCkpIHtcbiAgICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgICBpY29uOiAndGItc2VjdGlvbi1pbXBvcnQtbW9udGhsaWVzLW1vZHVsZScsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmltcG9ydGVyX3Rvb2wsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbW9udGhsaWVzJywgJ2ltcG9ydGVyLXRvb2wnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkltcG9ydGVyVG9vbCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtZW51O1xuICAgIH1cbiAgfVxuXG4gIGdldEFjY291bnRNYW5hZ2VtZW50TWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpY29uOiAndGItc2VjdGlvbi1hY2NvdW50LW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5hY2NvdW50cyxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnYWNjb3VudC1tYW5hZ2VtZW50JywgJ2FjY291bnRzJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5BY2NvdW50cyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIGdldFNjYW4ycGF5TWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICBjb25zdCBtZW51OiBNZW51SXRlbVtdID0gW107XG4gICAgY29uc3Qgc2NhbjJwYXlNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS51c2VySW5mbyk/LnBlcm1pc3Npb25JbmZvPy5tb2R1bGVzPy5maW5kKG1vZHVsZSA9PiBtb2R1bGUubW9kdWxlID09PSBBcHBNb2R1bGUuU2NhbjJQYXkpO1xuICAgIC8vIEEgbnVsbCBsaXN0IG1lYW5zIGV2ZXJ5IHN1Ym1vZHVsZSBpcyBhbGxvd2VkIC0gc2FtZSBydWxlIFN1Yk1vZHVsZUd1YXJkIGFwcGxpZXMuXG4gICAgY29uc3QgaXNTdWJNb2R1bGVFeGlzdHMgPSAoc3ViTW9kdWxlOiBTdWJNb2R1bGUpID0+ICFzY2FuMnBheU1vZHVsZT8uc3ViTW9kdWxlIHx8IHNjYW4ycGF5TW9kdWxlLnN1Yk1vZHVsZS5zb21lKHMgPT4gcyA9PT0gc3ViTW9kdWxlKTtcblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuU2NhbjJQYXkpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItc2VjdGlvbi1zY2FuMnBheS1tb2R1bGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uc2NhbjJwYXlfbW9kdWxlLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydzY2FudG9wYXknLCAnbG90cyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuU2NhbjJQYXksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTaWducyBpcyBvd25lZCBieSBlQ29tbWVyY2UgQmFja29mZmljZSBhbmQgbGlzdGVkIGhlcmUgdG9vOyBib3RoIGl0ZW1zIHNpdCBvbiB0aGVpciBvd24gc2VnbWVudCBzbyBuZWl0aGVyIHJvdXRlIGlzIGEgcHJlZml4IG9mIHRoZSBvdGhlci5cbiAgICBpZiAoc2NhbjJwYXlNb2R1bGU/LnN1Yk1vZHVsZT8uc29tZShzID0+IHMgPT09IFN1Yk1vZHVsZS5FQ29tbWVyY2VTY2FuVG9QYXlTaWducykpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWVjb21tZXJjZS1zY2FuLXRvLXBheS1zaWducycsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5zY2FuX3RvX3BheV9zaWducyxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnc2NhbnRvcGF5JywgJ3NpZ25zJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5FQ29tbWVyY2VTY2FuVG9QYXlTaWducyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZW51O1xuICB9XG5cbiAgZ2V0SW5zaWdodHNNZW51KCk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICd0Yi1zZWN0aW9uLWluc2lnaHRzLW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5pbnNpZ2h0c19tb2R1bGUsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2luc2lnaHRzJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLy8gU1BSSzMtMTM3MTkg4oCUIFRlY2ggVG9vbHMgc2VjdGlvbiBzaWRlbmF2IChEZXZpY2UgQ29uZmlndXJhdG9yOyBtb3JlIHRvb2xzIGxhbmQgbGF0ZXIpLlxuICBnZXRUZWNoVG9vbHNNZW51KCk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICd0Yi1zZWN0aW9uLWRldmljZS1jb25maWd1cmF0b3ItbW9kdWxlJyxcbiAgICAgICAgbmFtZTogJ2RldmljZV9jb25maWd1cmF0b3InLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWyd0ZWNoLXRvb2xzJywgJ2RldmljZS1jb25maWd1cmF0b3InXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
580
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUduRCxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFvQixZQUEwQixFQUFVLEtBQVk7UUFBaEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQ3BFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFvQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixNQUFNLElBQUksR0FBZSxFQUFFLENBQUM7UUFDNUIsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdLLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFD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QUFDO0lBQ0osQ0FBQzsrR0FybkJVLFdBQVc7bUhBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vZW51bXMvbG9jYWxpemF0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL21lbnUtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkluZm8gfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvbW9kZWwvcGVybWlzc2lvbi1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvc2Vzc2lvbi5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIFJlcG9ydENhdGVnb3J5RHRvLCBTdWJNb2R1bGUgfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBSb3V0ZVNlcnZpY2UgfSBmcm9tICcuL3JvdXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUkVQT1JUX0NBVEVHT1JZX0FMTCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZW51U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZVNlcnZpY2U6IFJvdXRlU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb25Sb3V0ZShyb3V0ZVBhcnRzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZVNlcnZpY2UuZ2V0TmF2aWdhdGlvblJvdXRlKHJvdXRlUGFydHMpO1xuICB9XG5cbiAgZ2V0RUNvbW1lcmNlQmFja29mZmljZU1lbnUoKTogTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgbWVudTogTWVudUl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IGVDb21tZXJjZUJhY2tvZmZpY2VNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS51c2VySW5mbyk/LnBlcm1pc3Npb25JbmZvPy5tb2R1bGVzPy5maW5kKG1vZHVsZSA9PiBtb2R1bGUubW9kdWxlID09PSBBcHBNb2R1bGUuRUNvbW1lcmNlQmFja29mZmljZSk7XG4gICAgY29uc3QgaXNTdWJNb2R1bGVFeGlzdHMgPSAoc3ViTW9kdWxlOiBTdWJNb2R1bGUpID0+IGVDb21tZXJjZUJhY2tvZmZpY2VNb2R1bGU/LnN1Yk1vZHVsZT8uc29tZShzID0+IHMgPT09IHN1Yk1vZHVsZSkgPz8gZmFsc2U7XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkVDb21tZXJjZU15U2l0ZSkpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWVjb21tZXJjZS1teS1zaXRlJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmVjb21tZXJjZV9teV9zaXRlLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2Vjb21tZXJjZS1iYWNrb2ZmaWNlJywgJ215LXNpdGUnXSksXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuRUNvbW1lcmNlTXlTaXRlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkVDb21tZXJjZUNvbmZpZ3VyYXRpb24pKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1lY29tbWVyY2UtY29uZmlndXJhdGlvbicsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5jb25maWd1cmF0aW9uLFxuICAgICAgICByb3V0ZTogbnVsbCxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1lY29tbWVyY2UtY29uZmlndXJhdGlvbi1jYXJkLW9uLWZpbGUnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5jYXJkX29uX2ZpbGUsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnZWNvbW1lcmNlLWJhY2tvZmZpY2UnLCAnY29uZmlndXJhdGlvbicsICdjYXJkLW9uLWZpbGUnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkVDb21tZXJjZUNvbmZpZ3VyYXRpb25cbiAgICAgICAgfSx7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtZWNvbW1lcmNlLWNvbmZpZ3VyYXRpb24tb2ZmZXJzLW1hbmFnZW1lbnQnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5vZmZlcnNfbWFuYWdlbWVudCxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydlY29tbWVyY2UtYmFja29mZmljZScsICdjb25maWd1cmF0aW9uJywgJ29mZmVycy1tYW5hZ2VtZW50J10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5FQ29tbWVyY2VDb25maWd1cmF0aW9uXG4gICAgICAgIH1dLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5FQ29tbWVyY2VDb25maWd1cmF0aW9uXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkVDb21tZXJjZVNjYW5Ub1BheVNpZ25zKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtZWNvbW1lcmNlLXNjYW4tdG8tcGF5LXNpZ25zJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnNjYW5fdG9fcGF5X3NpZ25zLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2Vjb21tZXJjZS1iYWNrb2ZmaWNlJywgJ3NjYW4tdG8tcGF5LXNpZ25zJ10pLFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkVDb21tZXJjZVNjYW5Ub1BheVNpZ25zXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVudTtcbiAgfVxuXG4gIGdldExvdENvbmZpZ3VyYXRpb25NZW51KCk6IE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IG1lbnU6IE1lbnVJdGVtW10gPSBbXTtcbiAgICBjb25zdCBsb3RDb25maWd1cmF0aW9uTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUudXNlckluZm8pPy5wZXJtaXNzaW9uSW5mbz8ubW9kdWxlcz8uZmluZChtb2R1bGUgPT4gbW9kdWxlLm1vZHVsZSA9PT0gQXBwTW9kdWxlLkxvdENvbmZpZ3VyYXRpb24pO1xuICAgIGNvbnN0IGlzU3ViTW9kdWxlRXhpc3RzID0gKHN1Yk1vZHVsZTogU3ViTW9kdWxlKSA9PiBsb3RDb25maWd1cmF0aW9uTW9kdWxlPy5zdWJNb2R1bGU/LnNvbWUocyA9PiBzID09PSBzdWJNb2R1bGUpID8/IGZhbHNlO1xuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5SYXRlcykpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLXJhdGVzJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnJhdGVzLFxuICAgICAgICByb3V0ZTogbnVsbCxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1zcGVjaWFsLWRheXMnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5zcGVjaWFsX2RheXMsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAncmF0ZXMnLCAnc3BlY2lhbC1kYXlzJ10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5SYXRlc1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtcmF0ZXMtcHJvZ3JhbW1pbmcnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5yYXRlc19wcm9ncmFtbWluZyxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdyYXRlcycsICdyYXRlcy1wcm9ncmFtbWluZyddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuUmF0ZXNcbiAgICAgICAgfSwge1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWtleS1vcHRpb25zJyxcbiAgICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24ua2V5X29wdGlvbnMsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAncmF0ZXMnLCAna2V5LW9wdGlvbnMnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlJhdGVzXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1zdXJjaGFyZ2UnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5zdXJjaGFyZ2UsXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAncmF0ZXMnLCAnc3VyY2hhcmdlJ10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5SYXRlc1xuICAgICAgICB9LCB7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtcmF0ZS1vbi1kaXNwbGF5JyxcbiAgICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24ucmF0ZV9vbl9kaXNwbGF5LFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ3JhdGVzJywgJ3JhdGUtb24tZGlzcGxheSddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuUmF0ZXNcbiAgICAgICAgfSwge1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWxvc3QtdGlja2V0JyxcbiAgICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24ubG9zdF90aWNrZXRfZmVlLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ3JhdGVzJywgJ2xvc3QtdGlja2V0J10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5SYXRlc1xuICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlJhdGVzXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkR5bmFtaWNQcmljaW5nKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtZHluYW1pYy1wcmljaW5nJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmR5bmFtaWNfcHJpY2luZyxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAnZHluYW1pYy1wcmljaW5nJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuRHluYW1pY1ByaWNpbmdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuU2NoZWR1bGVyKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtc2NoZWR1bGVyJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnNjaGVkdWxlcixcbiAgICAgICAgcm91dGU6IG51bGwsXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtc2NoZWR1bGVyLXJhdGUnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5yYXRlLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2xvdC1jb25maWd1cmF0aW9uJywgJ3NjaGVkdWxlcicsICdyYXRlJ10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5TY2hlZHVsZXJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWRldmljZS1hY3Rpdml0eScsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmRldmljZV9hY3Rpdml0eSxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdzY2hlZHVsZXInLCAnZGV2aWNlLWFjdGl2aXR5J10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5TY2hlZHVsZXJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLXByZXBhaWQta2V5cycsXG4gICAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnByZXBhaWRfa2V5cyxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdzY2hlZHVsZXInLCAncHJlcGFpZC1rZXlzJ10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5TY2hlZHVsZXJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLWFjY2Vzcy1wcm9maWxlcy1hbHRlcm5hdGl2ZXMnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5hY2Nlc3NfcHJvZmlsZV9hbHRlcm5hdGl2ZSxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdzY2hlZHVsZXInLCAnYWNjZXNzLXByb2ZpbGUtYWx0ZXJuYXRpdmUnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlNjaGVkdWxlclxuICAgICAgICB9XSxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuU2NoZWR1bGVyXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLlZhbGlkYXRpb25Qcm9maWxlcykpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1pY29uLXdoaXRlLXZhbGlkYXRpb24nLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24udmFsaWRhdGlvbl9wcm9maWxlcyxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbG90LWNvbmZpZ3VyYXRpb24nLCAndmFsaWRhdGlvbi1wcm9maWxlJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuVmFsaWRhdGlvblByb2ZpbGVzXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkFjY2Vzc1Byb2ZpbGVzKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtYWNjZXNzLXByb2ZpbGVzJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmFjY2Vzc19wcm9maWxlcyxcbiAgICAgICAgcm91dGU6IG51bGwsXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgaWNvbjogJ3RiLWljb24td2hpdGUtYWNjZXNzLXByb2ZpbGVzLW1vbnRobGllcy1ndWVzdHMnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5tb250aGxpZXNfYW5kX2d1ZXN0cyxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdhY2Nlc3MtcHJvZmlsZXMnLCAnbW9udGhsaWVzLWFuZC1ndWVzdHMnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkFjY2Vzc1Byb2ZpbGVzXG4gICAgICAgIH1dLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5BY2Nlc3NQcm9maWxlc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5DYXNoaWVyc01hbmFnZW1lbnQpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1tYW5hZ2UtY2FzaGllcnMnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uY2FzaGllcnNfbWFuYWdlbWVudCxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydsb3QtY29uZmlndXJhdGlvbicsICdjYXNoaWVycy1tYW5hZ2VtZW50J10pLFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkNhc2hpZXJzTWFuYWdlbWVudFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lbnU7XG4gIH1cblxuICBnZXRNYW5hZ2VtZW50TWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICBjb25zdCBtZW51OiBNZW51SXRlbVtdID0gW1xuICAgICAgdGhpcy5nZXRVc2Vyc01lbnVJdGVtKCksXG4gICAgXTtcblxuICAgIGNvbnN0IHVzZXJNYW5hZ2VtZW50TW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUudXNlckluZm8pPy5wZXJtaXNzaW9uSW5mbz8ubW9kdWxlcz8uZmluZChtb2R1bGUgPT4gbW9kdWxlLm1vZHVsZSA9PT0gQXBwTW9kdWxlLk1hbmFnZW1lbnQpO1xuICAgIGNvbnN0IGlzU3ViTW9kdWxlRXhpc3RzID0gKHN1Yk1vZHVsZTogU3ViTW9kdWxlKSA9PiB1c2VyTWFuYWdlbWVudE1vZHVsZT8uc3ViTW9kdWxlPy5zb21lKHMgPT4gcyA9PT0gc3ViTW9kdWxlKSA/PyBmYWxzZTtcblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRmFjaWxpdGllc0FuZFNtYXJ0cGFya3MpKSB7XG4gICAgICBtZW51LnVuc2hpZnQoe1xuICAgICAgICBpY29uOiAndGItZmFjaWxpdHktaWNvbicsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5zbWFydHBhcmtfdGl0bGUsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21hbmFnZW1lbnQnLCAnc21hcnRwYXJrcyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5Mb2dvKSkge1xuICAgICAgbWVudS5wdXNoKHRoaXMuZ2V0TG9nb01lbnVJdGVtKCkpO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuU210cFNldHRpbmdzKSkge1xuICAgICAgbWVudS5wdXNoKHRoaXMuZ2V0U210cFNldHRpbmdzTWVudUl0ZW0oKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5EZWZhdWx0VXNlclNldHRpbmdzKSkge1xuICAgICAgbWVudS5wdXNoKHRoaXMuZ2V0RGVmYXVsdFVzZXJzU2V0dGluZ3NNZW51SXRlbSgpKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkRlZmF1bHRUZW5hbnRTZXR0aW5ncykpIHtcbiAgICAgIG1lbnUucHVzaCh0aGlzLmdldERlZmF1bHRUZW5hbnRTZXR0aW5nc01lbnVJdGVtKCkpO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuQXVkaXQpKSB7XG4gICAgICBtZW51LnB1c2godGhpcy5nZXRBdWRpdExvZ01lbnVJdGVtKCkpO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRGlnaXRhbFJlY2VpcHQpKSB7XG4gICAgICBtZW51LnB1c2godGhpcy5nZXREaWdpdGFsUmVjZWlwdE1lbnVJdGVtKCkpO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRW5mb3JjZW1lbnRJbnRlZ3JhdGlvbikpIHtcbiAgICAgIG1lbnUucHVzaCh0aGlzLmdldEVuZm9yY2VtZW50SW50ZWdyYXRpb25NZW51SXRlbSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVudTtcbiAgfVxuXG4gIGdldERlZmF1bHRVc2Vyc1NldHRpbmdzTWVudUl0ZW0oKTogTWVudUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiAndGItdXNlcnMtc2V0dGluZ3MtaWNvbicsXG4gICAgICBuYW1lOiBMb2NhbGl6YXRpb24udXNlcl9kZWZhdWx0X3NldHRpbmdzLFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdkZWZhdWx0LXVzZXItc2V0dGluZ3MnXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdFRlbmFudFNldHRpbmdzTWVudUl0ZW0oKTogTWVudUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiAndGItY29tbWFuZC1zZXR0aW5ncy1pY29uJyxcbiAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5kZWZhdWx0X3RlbmFudF9zZXR0aW5ncyxcbiAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21hbmFnZW1lbnQnLCAnZGVmYXVsdC10ZW5hbnQtc2V0dGluZ3MnXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0QXVkaXRMb2dNZW51SXRlbSgpOiBNZW51SXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246ICd0Yi1hdWRpdC1pY29uJyxcbiAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5hdWRpdF9sb2dzLFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdhdWRpdC1sb2cnXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGlnaXRhbFJlY2VpcHRNZW51SXRlbSgpOiBNZW51SXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246ICd0Yi1kaWdpdGFsLXJlY2VpcHQtaWNvbicsXG4gICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZGlnaXRhbF9yZWNlaXB0LFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdkaWdpdGFsLXJlY2VpcHQnXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RW5mb3JjZW1lbnRJbnRlZ3JhdGlvbk1lbnVJdGVtKCk6IE1lbnVJdGVtIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogJ3RiLWVuZm9yY2VtZW50LWludGVncmF0aW9uLWljb24nLFxuICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmVuZm9yY2VtZW50X2ludGVncmF0aW9uLFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICdlbmZvcmNlbWVudC1pbnRlZ3JhdGlvbiddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBnZXRVc2Vyc01lbnVJdGVtKCk6IE1lbnVJdGVtIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogJ3RiLXVzZXItaWNvbicsXG4gICAgICBuYW1lOiBMb2NhbGl6YXRpb24udXNlcl9tYW5hZ2VtZW50LFxuICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnbWFuYWdlbWVudCcsICd1c2VyLW1hbmFnZW1lbnQnXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0TG9nb01lbnVJdGVtKCk6IE1lbnVJdGVtIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogJ3RiLXRlbmFudC13aGl0ZS1sb2dvLW1vZHVsZScsXG4gICAgICBuYW1lOiBMb2NhbGl6YXRpb24udGVuYW50X2xvZ28sXG4gICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ2xvZ28nXSksXG4gICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0U210cFNldHRpbmdzTWVudUl0ZW0oKTogTWVudUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiAndGItZW1haWwtc2VydmVyLWljb24nLFxuICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmVtYWlsX3NlcnZlcl90aXRsZSxcbiAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21hbmFnZW1lbnQnLCAnZW1haWwtc2VydmVyJ10pLFxuICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGdldFVzZXJTZXR0aW5nc01lbnUocGVybWlzc2lvbkluZm86IFBlcm1pc3Npb25JbmZvKTogTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgdXNlclNldHRpbmdzTWVudTogTWVudUl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IGlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoU1NPID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUuaXNVc2VyQXV0aGVudGljYXRlZFdpdGhTU08pO1xuXG4gICAgaWYgKCFpc1VzZXJBdXRoZW50aWNhdGVkV2l0aFNTTykge1xuICAgICAgdXNlclNldHRpbmdzTWVudS5wdXNoKFxuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogJ3RiLXNlY3VyaXR5LWljb24nLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5zZWN1cml0eV90aXRsZSxcbiAgICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydzZXR0aW5ncycsICdzZWN1cml0eSddKSxcbiAgICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIElmIGFsZXJ0c1xuICAgIGlmIChwZXJtaXNzaW9uSW5mby5tb2R1bGVzLmZpbHRlcihtID0+IEFwcE1vZHVsZS5DYyA9PT0gbS5tb2R1bGUpLmxlbmd0aCkge1xuICAgICAgdXNlclNldHRpbmdzTWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLWFsZXJ0cy1pY29uJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmFsZXJ0c19hbmRfbm90aWZpY2F0aW9uc19wcmVmZXJlbmNlc190aXRsZSxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnc2V0dGluZ3MnLCAnYWxlcnRzLWFuZC1ub3RpZmljYXRpb25zJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXNlclNldHRpbmdzTWVudS5wdXNoKHtcbiAgICAgIGljb246ICd0Yi1kYXRlLWFuZC10aW1lLWljb24nLFxuICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmRhdGVfdGltZV90aXRsZSxcbiAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3NldHRpbmdzJywgJ2RhdGUtdGltZSddKSxcbiAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIH0pO1xuXG4gICAgdXNlclNldHRpbmdzTWVudS5wdXNoKHtcbiAgICAgIGljb246ICd0Yi1sYW5ndWFnZS1pY29uJyxcbiAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5sYW5ndWFnZV90aXRsZSxcbiAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3NldHRpbmdzJywgJ2xhbmd1YWdlJ10pLFxuICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXNlclNldHRpbmdzTWVudTtcbiAgfVxuXG4gIGdldFZhbGlkYXRpb25NZW51KCk6IE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IG1lbnU6IE1lbnVJdGVtW10gPSBbXTtcbiAgICBjb25zdCB2YWxpZGF0aW9uTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUudXNlckluZm8pPy5wZXJtaXNzaW9uSW5mbz8ubW9kdWxlcz8uZmluZChtb2R1bGUgPT4gbW9kdWxlLm1vZHVsZSA9PT0gQXBwTW9kdWxlLlZhbGlkYXRpb24pO1xuICAgIGNvbnN0IGlzU3ViTW9kdWxlRXhpc3RzID0gKHN1Yk1vZHVsZTogU3ViTW9kdWxlKSA9PiB2YWxpZGF0aW9uTW9kdWxlPy5zdWJNb2R1bGU/LnNvbWUocyA9PiBzID09PSBzdWJNb2R1bGUpID8/IGZhbHNlO1xuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5FVmFsaWRhdGlvbikpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1lVmFsaWRhdGlvbi1tb2R1bGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uZVZhbGlkYXRpb24sXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3ZhbGlkYXRpb24nLCAncmVtb3RlLXZhbGlkYXRpb24nXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkVWYWxpZGF0aW9uXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLlNlbGZWYWxpZGF0aW9uKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLXNlbGYtdmFsaWRhdGlvbnMtbW9kdWxlJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnNlbGZfdmFsaWRhdGlvbnMsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3ZhbGlkYXRpb24nLCAnc2VsZi12YWxpZGF0aW9ucyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuU2VsZlZhbGlkYXRpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuQ291cG9ucykpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1jb3Vwb24taWNvbicsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5jb3Vwb25zLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWyd2YWxpZGF0aW9uJywgJ2NvdXBvbnMnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkNvdXBvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLlN0aWNrZXJzKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLXN0aWNrZXItaWNvbicsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5zdGlja2VycyxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsndmFsaWRhdGlvbicsICdzdGlja2VycyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuU3RpY2tlcnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVudTtcbiAgfVxuXG4gIGdldEd1ZXN0TWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICBjb25zdCBtZW51OiBNZW51SXRlbVtdID0gW107XG4gICAgY29uc3QgZ3Vlc3RNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS51c2VySW5mbyk/LnBlcm1pc3Npb25JbmZvPy5tb2R1bGVzPy5maW5kKG1vZHVsZSA9PiBtb2R1bGUubW9kdWxlID09PSBBcHBNb2R1bGUuR3Vlc3RzKTtcbiAgICBjb25zdCBpc1N1Yk1vZHVsZUV4aXN0cyA9IChzdWJNb2R1bGU6IFN1Yk1vZHVsZSkgPT4gZ3Vlc3RNb2R1bGU/LnN1Yk1vZHVsZT8uc29tZShzID0+IHMgPT09IHN1Yk1vZHVsZSkgPz8gZmFsc2U7XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkd1ZXN0cykpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1zZWN0aW9uLWd1ZXN0LW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5ndWVzdCxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnZ3Vlc3RzJywgJ2d1ZXN0J10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5HdWVzdHMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLkhvdGVsR3Vlc3RzKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLXNlY3Rpb24taG90ZWwtZ3Vlc3QtbW9kdWxlJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmhvdGVsX2d1ZXN0LFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydndWVzdHMnLCAnaG90ZWwtZ3Vlc3QnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkhvdGVsR3Vlc3RzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5Ib3RlbEd1ZXN0c0lPKSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLXdoaXRlLWluLW91dC10aWNrZXRzLW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5pbl9vdXRfdGlja2V0LFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydndWVzdHMnLCAnaW4tb3V0LXRpY2tldCddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuSG90ZWxHdWVzdHNJTyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1N1Yk1vZHVsZUV4aXN0cyhTdWJNb2R1bGUuRVZvdWNoZXIpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItd2hpdGUtZVZvdWNoZXJzJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLmVWb3VjaGVyLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydndWVzdHMnLCAnZVZvdWNoZXInXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLkVWb3VjaGVyLFxuICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICByZXR1cm4gbWVudTtcbiAgfVxuXG4gIGdldFJlcG9ydHNNZW51KHJlcG9ydENhdGVnb3JpZXM6IFJlcG9ydENhdGVnb3J5RHRvW10pOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpY29uOiAndGItc2VjdGlvbi1yZXBvcnRzLW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5yZXBvcnRfdHlwZV9hbGwsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3JlcG9ydHMnLCAnY2F0ZWdvcnknLCBSRVBPUlRfQ0FURUdPUllfQUxMLnRvU3RyaW5nKCldKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgIH0sXG4gICAgICAuLi4gcmVwb3J0Q2F0ZWdvcmllcy5tYXAocmVwb3J0Q2F0ZWdvcnkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGljb246ICd0Yi1zZWN0aW9uLXJlcG9ydHMtbW9kdWxlJyxcbiAgICAgICAgICBuYW1lOiByZXBvcnRDYXRlZ29yeS5sb2NhbGl6YXRpb25LZXksXG4gICAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsncmVwb3J0cycsICdjYXRlZ29yeScsIHJlcG9ydENhdGVnb3J5LmNhdGVnb3J5SWQudG9TdHJpbmcoKV0pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIGdldE1vbnRobGllc01lbnUoKTogTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgbWVudTogTWVudUl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IG1vbnRobHlNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS51c2VySW5mbyk/LnBlcm1pc3Npb25JbmZvPy5tb2R1bGVzPy5maW5kKG1vZHVsZSA9PiBtb2R1bGUubW9kdWxlID09PSBBcHBNb2R1bGUuTW9udGhsaWVzKTtcbiAgICBjb25zdCBpc1N1Yk1vZHVsZUV4aXN0cyA9IChzdWJNb2R1bGU6IFN1Yk1vZHVsZSkgPT4gbW9udGhseU1vZHVsZT8uc3ViTW9kdWxlPy5zb21lKHMgPT4gcyA9PT0gc3ViTW9kdWxlKSA/PyBmYWxzZTtcbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLk1vbnRobGllcykpIHtcbiAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgIGljb246ICd0Yi1zZWN0aW9uLW1vbnRobGllcy1tb2R1bGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24ubW9udGhsaWVzLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydtb250aGxpZXMnLCAnbW9udGhsaWVzJ10pLFxuICAgICAgICBoYXNCYWRnZTogZmFsc2UsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5Nb250aGxpZXMsXG4gICAgICB9KTtcblxuICAgICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5Nb250aGx5VHJhZmZpYykpIHtcbiAgICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgICBpY29uOiAndGItc2VjdGlvbi1tb250aGxpZXMtbW9kdWxlJyxcbiAgICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24ubW9udGhseV90cmFmZmljLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21vbnRobGllcycsICdtb250aGx5LXRyYWZmaWMnXSksXG4gICAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLk1vbnRobHlUcmFmZmljLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzU3ViTW9kdWxlRXhpc3RzKFN1Yk1vZHVsZS5JbXBvcnRlclRvb2wpKSB7XG4gICAgICAgIG1lbnUucHVzaCh7XG4gICAgICAgICAgaWNvbjogJ3RiLXNlY3Rpb24taW1wb3J0LW1vbnRobGllcy1tb2R1bGUnLFxuICAgICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5pbXBvcnRlcl90b29sLFxuICAgICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21vbnRobGllcycsICdpbXBvcnRlci10b29sJ10pLFxuICAgICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgICBzdWJNb2R1bGU6IFN1Yk1vZHVsZS5JbXBvcnRlclRvb2wsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbWVudTtcbiAgICB9XG4gIH1cblxuICBnZXRBY2NvdW50TWFuYWdlbWVudE1lbnUoKTogTWVudUl0ZW1bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ3RiLXNlY3Rpb24tYWNjb3VudC1tb2R1bGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uYWNjb3VudHMsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ2FjY291bnQtbWFuYWdlbWVudCcsICdhY2NvdW50cyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuQWNjb3VudHMsXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBnZXRTY2FuMnBheU1lbnUoKTogTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgbWVudTogTWVudUl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IHNjYW4ycGF5TW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUudXNlckluZm8pPy5wZXJtaXNzaW9uSW5mbz8ubW9kdWxlcz8uZmluZChtb2R1bGUgPT4gbW9kdWxlLm1vZHVsZSA9PT0gQXBwTW9kdWxlLlNjYW4yUGF5KTtcbiAgICAvLyBBIG51bGwgbGlzdCBtZWFucyBldmVyeSBzdWJtb2R1bGUgaXMgYWxsb3dlZCAtIHNhbWUgcnVsZSBTdWJNb2R1bGVHdWFyZCBhcHBsaWVzLlxuICAgIGNvbnN0IGlzU3ViTW9kdWxlRXhpc3RzID0gKHN1Yk1vZHVsZTogU3ViTW9kdWxlKSA9PiAhc2NhbjJwYXlNb2R1bGU/LnN1Yk1vZHVsZSB8fCBzY2FuMnBheU1vZHVsZS5zdWJNb2R1bGUuc29tZShzID0+IHMgPT09IHN1Yk1vZHVsZSk7XG5cbiAgICBpZiAoaXNTdWJNb2R1bGVFeGlzdHMoU3ViTW9kdWxlLlNjYW4yUGF5KSkge1xuICAgICAgbWVudS5wdXNoKHtcbiAgICAgICAgaWNvbjogJ3RiLXNlY3Rpb24tc2NhbjJwYXktbW9kdWxlJyxcbiAgICAgICAgbmFtZTogTG9jYWxpemF0aW9uLnNjYW4ycGF5X21vZHVsZSxcbiAgICAgICAgcm91dGU6IHRoaXMuZ2V0TmF2aWdhdGlvblJvdXRlKFsnc2NhbnRvcGF5JywgJ2xvdHMnXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICAgIHN1Yk1vZHVsZTogU3ViTW9kdWxlLlNjYW4yUGF5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gU2lnbnMgaXMgb3duZWQgYnkgZUNvbW1lcmNlIEJhY2tvZmZpY2UgYW5kIGxpc3RlZCBoZXJlIHRvbzsgYm90aCBpdGVtcyBzaXQgb24gdGhlaXIgb3duIHNlZ21lbnQgc28gbmVpdGhlciByb3V0ZSBpcyBhIHByZWZpeCBvZiB0aGUgb3RoZXIuXG4gICAgaWYgKHNjYW4ycGF5TW9kdWxlPy5zdWJNb2R1bGU/LnNvbWUocyA9PiBzID09PSBTdWJNb2R1bGUuRUNvbW1lcmNlU2NhblRvUGF5U2lnbnMpKSB7XG4gICAgICBtZW51LnB1c2goe1xuICAgICAgICBpY29uOiAndGItaWNvbi13aGl0ZS1lY29tbWVyY2Utc2Nhbi10by1wYXktc2lnbnMnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uc2Nhbl90b19wYXlfc2lnbnMsXG4gICAgICAgIHJvdXRlOiB0aGlzLmdldE5hdmlnYXRpb25Sb3V0ZShbJ3NjYW50b3BheScsICdzaWducyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgc3ViTW9kdWxlOiBTdWJNb2R1bGUuRUNvbW1lcmNlU2NhblRvUGF5U2lnbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVudTtcbiAgfVxuXG4gIGdldEluc2lnaHRzTWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpY29uOiAndGItc2VjdGlvbi1pbnNpZ2h0cy1tb2R1bGUnLFxuICAgICAgICBuYW1lOiBMb2NhbGl6YXRpb24uaW5zaWdodHNfbW9kdWxlLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWydpbnNpZ2h0cyddKSxcbiAgICAgICAgaGFzQmFkZ2U6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIC8vIFNQUkszLTEzNzE5IOKAlCBUZWNoIFRvb2xzIHNlY3Rpb24gc2lkZW5hdiAoRGV2aWNlIENvbmZpZ3VyYXRvcjsgbW9yZSB0b29scyBsYW5kIGxhdGVyKS5cbiAgZ2V0VGVjaFRvb2xzTWVudSgpOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpY29uOiAndGItc2VjdGlvbi1kZXZpY2UtY29uZmlndXJhdG9yLW1vZHVsZScsXG4gICAgICAgIG5hbWU6IExvY2FsaXphdGlvbi5kZXZpY2VfY29uZmlndXJhdG9yLFxuICAgICAgICByb3V0ZTogdGhpcy5nZXROYXZpZ2F0aW9uUm91dGUoWyd0ZWNoLXRvb2xzJywgJ2RldmljZS1jb25maWd1cmF0b3InXSksXG4gICAgICAgIGhhc0JhZGdlOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -72793,6 +72793,7 @@ var Localization;
72793
72793
  Localization["restart_device"] = "restart_device";
72794
72794
  Localization["connect"] = "connect";
72795
72795
  Localization["device_connection_title"] = "device_connection_title";
72796
+ Localization["device_connection_error_title"] = "device_connection_error_title";
72796
72797
  Localization["device_connection_confirm"] = "device_connection_confirm";
72797
72798
  Localization["device_connection_new_tab_note"] = "device_connection_new_tab_note";
72798
72799
  Localization["device_connection_popup_note"] = "device_connection_popup_note";
@@ -75757,6 +75758,8 @@ var Localization;
75757
75758
  Localization["guest_open_ticket_duration_value_short"] = "guest_open_ticket_duration_value_short";
75758
75759
  Localization["guest_open_ticket_check_failed"] = "guest_open_ticket_check_failed";
75759
75760
  Localization["search_room_number"] = "search_room_number";
75761
+ Localization["tech_tools_module"] = "tech_tools_module";
75762
+ Localization["device_configurator"] = "device_configurator";
75760
75763
  })(Localization || (Localization = {}));
75761
75764
 
75762
75765
  //----------------------
@@ -126599,7 +126602,7 @@ class MenuService {
126599
126602
  return [
126600
126603
  {
126601
126604
  icon: 'tb-section-device-configurator-module',
126602
- name: 'device_configurator',
126605
+ name: Localization.device_configurator,
126603
126606
  route: this.getNavigationRoute(['tech-tools', 'device-configurator']),
126604
126607
  hasBadge: false,
126605
126608
  children: null,