@skyux/docs-tools 9.0.0-alpha.1 → 9.0.0-alpha.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.
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { TypeDocKind } from './typedoc-types';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "./type-definitions-provider";
4
5
  import * as i2 from "./typedoc-adapter.service";
@@ -53,7 +54,7 @@ export class SkyDocsTypeDefinitionsService {
53
54
  }
54
55
  typeDefinitions.forEach((item) => {
55
56
  const decorator = item.decorators && item.decorators[0]?.name;
56
- const kindString = item.kindString;
57
+ const kind = item.kind;
57
58
  switch (decorator) {
58
59
  case 'Component':
59
60
  types.components.push(this.adapter.toDirectiveDefinition(item));
@@ -72,17 +73,17 @@ export class SkyDocsTypeDefinitionsService {
72
73
  break;
73
74
  default:
74
75
  /*tslint:disable-next-line:switch-default*/
75
- switch (kindString) {
76
- case 'Class':
76
+ switch (kind) {
77
+ case TypeDocKind.Class:
77
78
  types.classes.push(this.adapter.toClassDefinition(item));
78
79
  break;
79
- case 'Interface':
80
+ case TypeDocKind.Interface:
80
81
  types.interfaces.push(this.adapter.toInterfaceDefinition(item));
81
82
  break;
82
- case 'Enumeration':
83
+ case TypeDocKind.Enum:
83
84
  types.enumerations.push(this.adapter.toEnumerationDefinition(item));
84
85
  break;
85
- case 'Type alias':
86
+ case TypeDocKind.TypeAlias:
86
87
  types.typeAliases.push(this.adapter.toTypeAliasDefinition(item));
87
88
  break;
88
89
  }
@@ -100,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
100
101
  providedIn: 'any',
101
102
  }]
102
103
  }], ctorParameters: function () { return [{ type: i1.SkyDocsTypeDefinitionsProvider }, { type: i2.SkyDocsTypeDocAdapterService }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kZWZpbml0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9jcy10b29scy9zcmMvbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtZGVmaW5pdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTNDOztHQUVHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxZQUNVLHVCQUF1RCxFQUN2RCxPQUFxQztRQURyQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWdDO1FBQ3ZELFlBQU8sR0FBUCxPQUFPLENBQThCO0lBQzVDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQ3ZCLGNBQXNCLEVBQ3RCLHlCQUFvQztRQUVwQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztTQUMvRDtRQUVELE1BQU0sZUFBZSxHQUNuQix5QkFBeUIsSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDaEQsTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FDbEUsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMs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LElBQUksQ0FBQyxDQUMzQyxDQUFDO2dDQUNGLE1BQU07NEJBQ1IsS0FBSyxZQUFZO2dDQUNmLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUN6QyxDQUFDO2dDQUNGLE1BQU07eUJBQ1Q7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQTdHVSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQUY1QixLQUFLOzsyRkFFTiw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lEb2NzVHlwZURlZmluaXRpb25zIH0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyIH0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zLXByb3ZpZGVyJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVEb2NBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vdHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEhhbmRsZXMgYWxsIHR5cGUgZGVmaW5pdGlvbnMgdGhhdCBoYXZlIGJlZW4gY29udmVydGVkIGZyb20gdGhlIHRoaXJkLXBhcnR5IGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzVHlwZURlZmluaXRpb25zU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHlwZURlZmluaXRpb25zUHJvdmlkZXI6IFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlcixcbiAgICBwcml2YXRlIGFkYXB0ZXI6IFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHR5cGUgZGVmaW5pdGlvbnMgZnJvbSBhIHNwZWNpZmljIHNvdXJjZSBjb2RlIGxvY2F0aW9uLlxuICAgKiBAcGFyYW0gc291cmNlQ29kZVBhdGggVGhlIGRpcmVjdG9yeSBvZiB0aGUgc291cmNlIGNvZGUgeW91IHdpc2ggdG8gcHVsbCB0eXBlIGRlZmluaXRpb25zIGZyb20sXG4gICAqIHJlbGF0aXZlIHRvIHRoZSBhcHBsaWNhdGlvbidzIHJvb3QgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIGdldFR5cGVEZWZpbml0aW9ucyhcbiAgICBzb3VyY2VDb2RlUGF0aDogc3RyaW5nLFxuICAgIGFkZGl0aW9uYWxTb3VyY2VDb2RlUGF0aHM/OiBzdHJpbmdbXVxuICApOiBTa3lEb2NzVHlwZURlZmluaXRpb25zIHtcbiAgICBpZiAoIXNvdXJjZUNvZGVQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBgc291cmNlQ29kZVBhdGhgIHBhcmFtZXRlciBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZUNvZGVQYXRoczogc3RyaW5nW10gPVxuICAgICAgYWRkaXRpb25hbFNvdXJjZUNvZGVQYXRocyAmJiBhZGRpdGlvbmFsU291cmNlQ29kZVBhdGhzLmxlbmd0aCA+IDBcbiAgICAgICAgPyBbc291cmNlQ29kZVBhdGhdLmNvbmNhdChhZGRpdGlvbmFsU291cmNlQ29kZVBhdGhzKVxuICAgICAgICA6IFtzb3VyY2VDb2RlUGF0aF07XG5cbiAgICBzb3VyY2VDb2RlUGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgaWYgKCFwYXRoLmVuZHNXaXRoKCcvJykgJiYgIXBhdGguZW5kc1dpdGgoJy50cycpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnU291cmNlIGNvZGUgcGF0aHMgbXVzdCBlbmQgd2l0aCBhIGZvcndhcmQgc2xhc2ggKGAvYCkgb3IgYC50c2AuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgYWxsRGVmaW5pdGlvbnMgPSB0aGlzLnR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyLnR5cGVEZWZpbml0aW9ucztcbiAgICBjb25zdCB0eXBlczogU2t5RG9jc1R5cGVEZWZpbml0aW9ucyA9IHtcbiAgICAgIGNsYXNzZXM6IFtdLFxuICAgICAgY29tcG9uZW50czogW10sXG4gICAgICBkaXJlY3RpdmVzOiBbXSxcbiAgICAgIGVudW1lcmF0aW9uczogW10sXG4gICAgICBpbnRlcmZhY2VzOiBbXSxcbiAgICAgIHBpcGVzOiBbXSxcbiAgICAgIHNlcnZpY2VzOiBbXSxcbiAgICAgIHR5cGVBbGlhc2VzOiBbXSxcbiAgICB9O1xuXG4gICAgaWYgKCFhbGxEZWZpbml0aW9ucykge1xuICAgICAgY29uc29sZS53YXJuKGBObyB0eXBlcyB3ZXJlIGZvdW5kIGZvciB0aGlzIHByb2plY3QhYCk7XG4gICAgICByZXR1cm4gdHlwZXM7XG4gICAgfVxuXG4gICAgc291cmNlQ29kZVBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RlZERpciA9IHBhdGhcbiAgICAgICAgLnJlcGxhY2UoL3NyY1xcL2FwcFxcL3B1YmxpY1xcLy8sICcnKVxuICAgICAgICAucmVwbGFjZSgvXlxcLy8sICcnKTsgLy8gcmVtb3ZlIGZpcnN0IHNsYXNoLlxuXG4gICAgICAvLyBPbmx5IHByb2Nlc3MgdHlwZXMgdGhhdCBtYXRjaCB0aGUgcmVxdWVzdGVkIHNvdXJjZSBjb2RlIGxvY2F0aW9uLlxuICAgICAgY29uc3QgdHlwZURlZmluaXRpb25zID0gYWxsRGVmaW5pdGlvbnMuZmlsdGVyKFxuICAgICAgICAoaSkgPT4gaS5zb3VyY2VzICYmIGkuc291cmNlc1swXS5maWxlTmFtZS5tYXRjaChyZXF1ZXN0ZWREaXIpXG4gICAgICApO1xuICAgICAgaWYgKHR5cGVEZWZpbml0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBUeXBlIGRlZmluaXRpb25zIHdlcmUgbm90IGZvdW5kIGZvciBsb2NhdGlvbjogJHtyZXF1ZXN0ZWREaXJ9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0eXBlRGVmaW5pdGlvbnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBkZWNvcmF0b3IgPSBpdGVtLmRlY29yYXRvcnMgJiYgaXRlbS5kZWNvcmF0b3JzWzBdPy5uYW1lO1xuICAgICAgICBjb25zdCBraW5kU3RyaW5nID0gaXRlbS5raW5kU3RyaW5nO1xuXG4gICAgICAgIHN3aXRjaCAoZGVjb3JhdG9yKSB7XG4gICAgICAgICAgY2FzZSAnQ29tcG9uZW50JzpcbiAgICAgICAgICAgIHR5cGVzLmNvbXBvbmVudHMucHVzaCh0aGlzLmFkYXB0ZXIudG9EaXJlY3RpdmVEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0RpcmVjdGl2ZSc6XG4gICAgICAgICAgICB0eXBlcy5kaXJlY3RpdmVzLnB1c2godGhpcy5hZGFwdGVyLnRvRGlyZWN0aXZlRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdJbmplY3RhYmxlJzpcbiAgICAgICAgICAgIHR5cGVzLnNlcnZpY2VzLnB1c2godGhpcy5hZGFwdGVyLnRvQ2xhc3NEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ05nTW9kdWxlJzpcbiAgICAgICAgICAgIC8vIERvbid0IGRvY3VtZW50IG1vZHVsZXMuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdQaXBlJzpcbiAgICAgICAgICAgIHR5cGVzLnBpcGVzLnB1c2godGhpcy5hZGFwdGVyLnRvUGlwZURlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnN3aXRjaC1kZWZhdWx0Ki9cbiAgICAgICAgICAgIHN3aXRjaCAoa2luZFN0cmluZykge1xuICAgICAgICAgICAgICBjYXNlICdDbGFzcyc6XG4gICAgICAgICAgICAgICAgdHlwZXMuY2xhc3Nlcy5wdXNoKHRoaXMuYWRhcHRlci50b0NsYXNzRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ0ludGVyZmFjZSc6XG4gICAgICAgICAgICAgICAgdHlwZXMuaW50ZXJmYWNlcy5wdXNoKHRoaXMuYWRhcHRlci50b0ludGVyZmFjZURlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdFbnVtZXJhdGlvbic6XG4gICAgICAgICAgICAgICAgdHlwZXMuZW51bWVyYXRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICB0aGlzLmFkYXB0ZXIudG9FbnVtZXJhdGlvbkRlZmluaXRpb24oaXRlbSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdUeXBlIGFsaWFzJzpcbiAgICAgICAgICAgICAgICB0eXBlcy50eXBlQWxpYXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgdGhpcy5hZGFwdGVyLnRvVHlwZUFsaWFzRGVmaW5pdGlvbihpdGVtKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kZWZpbml0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9jcy10b29scy9zcmMvbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtZGVmaW5pdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUU5Qzs7R0FFRztBQUlILE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFDVSx1QkFBdUQsRUFDdkQsT0FBcUM7UUFEckMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFnQztRQUN2RCxZQUFPLEdBQVAsT0FBTyxDQUE4QjtJQUM1QyxDQUFDO0lBRUo7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUN2QixjQUFzQixFQUN0Qix5QkFBb0M7UUFFcEMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxNQUFNLGVBQWUsR0FDbkIseUJBQXlCLElBQUkseUJBQXlCLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZCLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUVBQWlFLENBQ2xFLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFD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SUFBSTtnQ0FDbkIsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQzNDLENBQUM7Z0NBQ0YsTUFBTTs0QkFDUixLQUFLLFdBQVcsQ0FBQyxTQUFTO2dDQUN4QixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FDekMsQ0FBQztnQ0FDRixNQUFNO3lCQUNUO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0E3R1UsNkJBQTZCO2tIQUE3Qiw2QkFBNkIsY0FGNUIsS0FBSzs7MkZBRU4sNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVEZWZpbml0aW9ucyB9IGZyb20gJy4vdHlwZS1kZWZpbml0aW9ucyc7XG5cbmltcG9ydCB7IFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlciB9IGZyb20gJy4vdHlwZS1kZWZpbml0aW9ucy1wcm92aWRlcic7XG5cbmltcG9ydCB7IFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3R5cGVkb2MtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFR5cGVEb2NLaW5kIH0gZnJvbSAnLi90eXBlZG9jLXR5cGVzJztcblxuLyoqXG4gKiBIYW5kbGVzIGFsbCB0eXBlIGRlZmluaXRpb25zIHRoYXQgaGF2ZSBiZWVuIGNvbnZlcnRlZCBmcm9tIHRoZSB0aGlyZC1wYXJ0eSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvci5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyOiBTa3lEb2NzVHlwZURlZmluaXRpb25zUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBTa3lEb2NzVHlwZURvY0FkYXB0ZXJTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJucyB0eXBlIGRlZmluaXRpb25zIGZyb20gYSBzcGVjaWZpYyBzb3VyY2UgY29kZSBsb2NhdGlvbi5cbiAgICogQHBhcmFtIHNvdXJjZUNvZGVQYXRoIFRoZSBkaXJlY3Rvcnkgb2YgdGhlIHNvdXJjZSBjb2RlIHlvdSB3aXNoIHRvIHB1bGwgdHlwZSBkZWZpbml0aW9ucyBmcm9tLFxuICAgKiByZWxhdGl2ZSB0byB0aGUgYXBwbGljYXRpb24ncyByb290IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBnZXRUeXBlRGVmaW5pdGlvbnMoXG4gICAgc291cmNlQ29kZVBhdGg6IHN0cmluZyxcbiAgICBhZGRpdGlvbmFsU291cmNlQ29kZVBhdGhzPzogc3RyaW5nW11cbiAgKTogU2t5RG9jc1R5cGVEZWZpbml0aW9ucyB7XG4gICAgaWYgKCFzb3VyY2VDb2RlUGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgYHNvdXJjZUNvZGVQYXRoYCBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBzb3VyY2VDb2RlUGF0aHM6IHN0cmluZ1tdID1cbiAgICAgIGFkZGl0aW9uYWxTb3VyY2VDb2RlUGF0aHMgJiYgYWRkaXRpb25hbFNvdXJjZUNvZGVQYXRocy5sZW5ndGggPiAwXG4gICAgICAgID8gW3NvdXJjZUNvZGVQYXRoXS5jb25jYXQoYWRkaXRpb25hbFNvdXJjZUNvZGVQYXRocylcbiAgICAgICAgOiBbc291cmNlQ29kZVBhdGhdO1xuXG4gICAgc291cmNlQ29kZVBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgIGlmICghcGF0aC5lbmRzV2l0aCgnLycpICYmICFwYXRoLmVuZHNXaXRoKCcudHMnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1NvdXJjZSBjb2RlIHBhdGhzIG11c3QgZW5kIHdpdGggYSBmb3J3YXJkIHNsYXNoIChgL2ApIG9yIGAudHNgLidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGFsbERlZmluaXRpb25zID0gdGhpcy50eXBlRGVmaW5pdGlvbnNQcm92aWRlci50eXBlRGVmaW5pdGlvbnM7XG4gICAgY29uc3QgdHlwZXM6IFNreURvY3NUeXBlRGVmaW5pdGlvbnMgPSB7XG4gICAgICBjbGFzc2VzOiBbXSxcbiAgICAgIGNvbXBvbmVudHM6IFtdLFxuICAgICAgZGlyZWN0aXZlczogW10sXG4gICAgICBlbnVtZXJhdGlvbnM6IFtdLFxuICAgICAgaW50ZXJmYWNlczogW10sXG4gICAgICBwaXBlczogW10sXG4gICAgICBzZXJ2aWNlczogW10sXG4gICAgICB0eXBlQWxpYXNlczogW10sXG4gICAgfTtcblxuICAgIGlmICghYWxsRGVmaW5pdGlvbnMpIHtcbiAgICAgIGNvbnNvbGUud2FybihgTm8gdHlwZXMgd2VyZSBmb3VuZCBmb3IgdGhpcyBwcm9qZWN0IWApO1xuICAgICAgcmV0dXJuIHR5cGVzO1xuICAgIH1cblxuICAgIHNvdXJjZUNvZGVQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0ZWREaXIgPSBwYXRoXG4gICAgICAgIC5yZXBsYWNlKC9zcmNcXC9hcHBcXC9wdWJsaWNcXC8vLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL15cXC8vLCAnJyk7IC8vIHJlbW92ZSBmaXJzdCBzbGFzaC5cblxuICAgICAgLy8gT25seSBwcm9jZXNzIHR5cGVzIHRoYXQgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzb3VyY2UgY29kZSBsb2NhdGlvbi5cbiAgICAgIGNvbnN0IHR5cGVEZWZpbml0aW9ucyA9IGFsbERlZmluaXRpb25zLmZpbHRlcihcbiAgICAgICAgKGkpID0+IGkuc291cmNlcyAmJiBpLnNvdXJjZXNbMF0uZmlsZU5hbWUubWF0Y2gocmVxdWVzdGVkRGlyKVxuICAgICAgKTtcbiAgICAgIGlmICh0eXBlRGVmaW5pdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVHlwZSBkZWZpbml0aW9ucyB3ZXJlIG5vdCBmb3VuZCBmb3IgbG9jYXRpb246ICR7cmVxdWVzdGVkRGlyfWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdHlwZURlZmluaXRpb25zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgZGVjb3JhdG9yID0gaXRlbS5kZWNvcmF0b3JzICYmIGl0ZW0uZGVjb3JhdG9yc1swXT8ubmFtZTtcbiAgICAgICAgY29uc3Qga2luZCA9IGl0ZW0ua2luZDtcblxuICAgICAgICBzd2l0Y2ggKGRlY29yYXRvcikge1xuICAgICAgICAgIGNhc2UgJ0NvbXBvbmVudCc6XG4gICAgICAgICAgICB0eXBlcy5jb21wb25lbnRzLnB1c2godGhpcy5hZGFwdGVyLnRvRGlyZWN0aXZlRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdEaXJlY3RpdmUnOlxuICAgICAgICAgICAgdHlwZXMuZGlyZWN0aXZlcy5wdXNoKHRoaXMuYWRhcHRlci50b0RpcmVjdGl2ZURlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnSW5qZWN0YWJsZSc6XG4gICAgICAgICAgICB0eXBlcy5zZXJ2aWNlcy5wdXNoKHRoaXMuYWRhcHRlci50b0NsYXNzRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdOZ01vZHVsZSc6XG4gICAgICAgICAgICAvLyBEb24ndCBkb2N1bWVudCBtb2R1bGVzLlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnUGlwZSc6XG4gICAgICAgICAgICB0eXBlcy5waXBlcy5wdXNoKHRoaXMuYWRhcHRlci50b1BpcGVEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzd2l0Y2gtZGVmYXVsdCovXG4gICAgICAgICAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgICAgICAgICAgY2FzZSBUeXBlRG9jS2luZC5DbGFzczpcbiAgICAgICAgICAgICAgICB0eXBlcy5jbGFzc2VzLnB1c2godGhpcy5hZGFwdGVyLnRvQ2xhc3NEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBUeXBlRG9jS2luZC5JbnRlcmZhY2U6XG4gICAgICAgICAgICAgICAgdHlwZXMuaW50ZXJmYWNlcy5wdXNoKHRoaXMuYWRhcHRlci50b0ludGVyZmFjZURlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFR5cGVEb2NLaW5kLkVudW06XG4gICAgICAgICAgICAgICAgdHlwZXMuZW51bWVyYXRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICB0aGlzLmFkYXB0ZXIudG9FbnVtZXJhdGlvbkRlZmluaXRpb24oaXRlbSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFR5cGVEb2NLaW5kLlR5cGVBbGlhczpcbiAgICAgICAgICAgICAgICB0eXBlcy50eXBlQWxpYXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgdGhpcy5hZGFwdGVyLnRvVHlwZUFsaWFzRGVmaW5pdGlvbihpdGVtKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Injectable, Optional } from '@angular/core';
2
+ import { TypeDocKind, } from './typedoc-types';
2
3
  import orderBy from 'lodash.orderby';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "./type-definitions-provider";
@@ -118,10 +119,11 @@ export class SkyDocsTypeDocAdapterService {
118
119
  const definitions = entry.children
119
120
  .filter((child) =>
120
121
  // We only want properties (both with or without a getter/setter)
121
- child.kindString === 'Property' || child.kindString === 'Accessor')
122
+ child.kind === TypeDocKind.Property ||
123
+ child.kind === TypeDocKind.Accessor)
122
124
  .filter((child) =>
123
125
  // We only want accessors that don't have a setter if they are not inputs
124
- child.kindString !== 'Accessor' ||
126
+ child.kind !== TypeDocKind.Accessor ||
125
127
  child.setSignature ||
126
128
  this.getDecorator(child)?.name !== 'Input')
127
129
  .map((child) => {
@@ -132,7 +134,7 @@ export class SkyDocsTypeDocAdapterService {
132
134
  };
133
135
  let defaultValue;
134
136
  /* Ensure we are properly capturing definitions which use a getter/setter. Final check is a sanity check */
135
- if (child.kindString === 'Accessor' &&
137
+ if (child.kind === TypeDocKind.Accessor &&
136
138
  !child.comment?.summary
137
139
  ?.map((item) => item.text)
138
140
  .join('')
@@ -160,7 +162,7 @@ export class SkyDocsTypeDocAdapterService {
160
162
  }
161
163
  else {
162
164
  let tags;
163
- if (child.kindString === 'Property' &&
165
+ if (child.kind === TypeDocKind.Property &&
164
166
  !child.comment?.summary
165
167
  ?.map((item) => item.text)
166
168
  .join('')
@@ -185,9 +187,9 @@ export class SkyDocsTypeDocAdapterService {
185
187
  definition.decorator = decorator;
186
188
  }
187
189
  if (!definition.description) {
188
- const constructor = entry.children.find((child) => child.kindString === 'Constructor');
190
+ const constructor = entry.children.find((child) => child.kind === TypeDocKind.Constructor);
189
191
  if (constructor) {
190
- const signature = constructor.signatures.find((signature) => signature.kindString === 'Constructor signature');
192
+ const signature = constructor.signatures.find((signature) => signature.kind === TypeDocKind.ConstructorSignature);
191
193
  /* Sanity check */
192
194
  /* istanbul ignore else */
193
195
  if (signature) {
@@ -208,7 +210,7 @@ export class SkyDocsTypeDocAdapterService {
208
210
  return [];
209
211
  }
210
212
  const methods = entry.children
211
- .filter((child) => child.kindString === 'Method' && /^ng/.test(child.name) === false)
213
+ .filter((child) => child.kind === TypeDocKind.Method && /^ng/.test(child.name) === false)
212
214
  .map((child) => {
213
215
  const definition = {
214
216
  name: this.getPropertyName(child),
@@ -234,7 +236,7 @@ export class SkyDocsTypeDocAdapterService {
234
236
  }
235
237
  const definitions = entry.children?.map((child) => {
236
238
  let tags;
237
- if (child.kindString === 'Method' && child.signatures.length > 0) {
239
+ if (child.kind === TypeDocKind.Method && child.signatures.length > 0) {
238
240
  tags = this.getCommentTags(child.signatures[0].comment);
239
241
  }
240
242
  else if (child.type.type === 'reflection' &&
@@ -284,14 +286,14 @@ export class SkyDocsTypeDocAdapterService {
284
286
  }
285
287
  getTypeDefinition(child) {
286
288
  let definition;
287
- const kindString = child.kindString;
288
- switch (kindString) {
289
- case 'Accessor':
289
+ const kind = child.kind;
290
+ switch (kind) {
291
+ case TypeDocKind.Accessor:
290
292
  if (child.setSignature) {
291
293
  return this.getTypeDefinition(child.setSignature.parameters[0]);
292
294
  }
293
295
  return this.getTypeDefinition(child.getSignature);
294
- case 'Method':
296
+ case TypeDocKind.Method:
295
297
  definition = {
296
298
  callSignature: this.getCallSignatureDefinition(child.signatures[0], this.getCommentTags(child.comment)),
297
299
  name: child.signatures[0].name,
@@ -560,4 +562,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
560
562
  }], ctorParameters: function () { return [{ type: i1.SkyDocsTypeDefinitionsProvider, decorators: [{
561
563
  type: Optional
562
564
  }] }]; } });
563
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFnRHJELE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDOzs7QUFFckM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLFlBQ3NCLHVCQUF3RDtRQUF4RCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWlDO0lBQzNFLENBQUM7SUFFRyxpQkFBaUIsQ0FBQyxLQUFtQjtRQUMxQyxNQUFNLFVBQVUsR0FBMkI7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQixVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM5QjtRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDckIsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7U0FDcEM7UUFFRCxPQUFPLFVBQVUs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QzNFLHlEQUF5RDtRQUN6RCxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQztJQUM1QixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQW1CO1FBQ3JDLE9BQU8sQ0FDTCxLQUFLLENBQUMsUUFBUTtZQUNkLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNuRCxFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBbHZCVSw0QkFBNEI7a0hBQTVCLDRCQUE0QixjQUYzQixLQUFLOzsyRkFFTiw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFHSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uIH0gZnJvbSAnLi9jYWxsLXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0NsYXNzRGVmaW5pdGlvbiB9IGZyb20gJy4vY2xhc3MtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NDbGFzc1Byb3BlcnR5RGVmaW5pdGlvbiB9IGZyb20gJy4vcHJvcGVydHktZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NDb21tZW50VGFncyB9IGZyb20gJy4vY29tbWVudC10YWdzJztcblxuaW1wb3J0IHsgU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb24gfSBmcm9tICcuL2RpcmVjdGl2ZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbiB9IGZyb20gJy4vZW51bWVyYXRpb24tZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NFbnVtZXJhdGlvbk1lbWJlckRlZmluaXRpb24gfSBmcm9tICcuL2VudW1lcmF0aW9uLW1lbWJlci1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0luZGV4U2lnbmF0dXJlRGVmaW5pdGlvbiB9IGZyb20gJy4vaW5kZXgtc2lnbmF0dXJlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UtcHJvcGVydHktZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb24gfSBmcm9tICcuL21ldGhvZC1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1BpcGVEZWZpbml0aW9uIH0gZnJvbSAnLi9waXBlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1kZWNvcmF0b3InO1xuXG5pbXBvcnQgeyBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZS1hbGlhcy1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVEZWZpbml0aW9uIH0gZnJvbSAnLi90eXBlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzVHlwZURlZmluaXRpb25zUHJvdmlkZXIgfSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbnMtcHJvdmlkZXInO1xuXG5pbXBvcnQgeyBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3R5cGUtcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBUeXBlRG9jQ29tbWVudCxcbiAgVHlwZURvY0VudHJ5LFxuICBUeXBlRG9jRW50cnlDaGlsZCxcbiAgVHlwZURvY1BhcmFtZXRlcixcbiAgVHlwZURvY1NpZ25hdHVyZSxcbiAgVHlwZURvY1R5cGUsXG4gIFR5cGVEb2NUeXBlUGFyYW1ldGVyLFxufSBmcm9tICcuL3R5cGVkb2MtdHlwZXMnO1xuXG5pbXBvcnQgb3JkZXJCeSBmcm9tICdsb2Rhc2gub3JkZXJieSc7XG5cbi8qKlxuICogQ29udmVydHMgVHlwZURvYyB0eXBlcyBpbnRvIFNLWSBVWCBkb2NzLXRvb2xzIHR5cGVzLCB0byBiZSBzdXBwbGllZCB0byB0aGUgdmFyaW91cyBkZWZpbml0aW9ucyBjb21wb25lbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzVHlwZURvY0FkYXB0ZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0eXBlRGVmaW5pdGlvbnNQcm92aWRlcj86IFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlclxuICApIHt9XG5cbiAgcHVibGljIHRvQ2xhc3NEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCBtZXRob2RzID0gdGhpcy5nZXRDbGFzc01ldGhvZHMoZW50cnkpO1xuICAgIGlmIChtZXRob2RzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5tZXRob2RzID0gbWV0aG9kcztcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDbGFzc1Byb3BlcnRpZXMoZW50cnkpO1xuICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0RpcmVjdGl2ZURlZmluaXRpb24oXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgc2VsZWN0b3I6IHRoaXMuZ2V0U2VsZWN0b3IoZW50cnkpLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldENsYXNzUHJvcGVydGllcyhlbnRyeSk7XG5cbiAgICBjb25zdCBldmVudFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChwKSA9PiBwLmRlY29yYXRvcj8ubmFtZSA9PT0gJ091dHB1dCdcbiAgICApO1xuICAgIGlmIChldmVudFByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLmV2ZW50UHJvcGVydGllcyA9IGV2ZW50UHJvcGVydGllcztcbiAgICB9XG5cbiAgICBjb25zdCBpbnB1dFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChwKSA9PiBwLmRlY29yYXRvcj8ubmFtZSA9PT0gJ0lucHV0J1xuICAgICk7XG4gICAgaWYgKGlucHV0UHJvcGVydGllcy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24uaW5wdXRQcm9wZXJ0aWVzID0gaW5wdXRQcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvRW51bWVyYXRpb25EZWZpbml0aW9uKFxuICAgIGVudHJ5OiBUeXBlRG9jRW50cnlcbiAgKTogU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbWVtYmVycyA9IHRoaXMuZ2V0RW51bWVyYXRpb25NZW1iZXJzKGVudHJ5KTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbWVtYmVycyxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9JbnRlcmZhY2VEZWZpbml0aW9uKFxuICAgIGVudHJ5OiBUeXBlRG9jRW50cnlcbiAgKTogU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldEludGVyZmFjZVByb3BlcnRpZXMoZW50cnkpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIHByb3BlcnRpZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgIGVudHJ5LnR5cGVQYXJhbWV0ZXJcbiAgICApO1xuICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b1BpcGVEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzUGlwZURlZmluaXRpb24ge1xuICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLmdldENsYXNzTWV0aG9kcyhlbnRyeSk7XG4gICAgY29uc3QgdHJhbnNmb3JtTWV0aG9kID0gbWV0aG9kcy5maW5kKChtKSA9PiBtLm5hbWUgPT09ICd0cmFuc2Zvcm0nKTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzUGlwZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgdHJhbnNmb3JtTWV0aG9kLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvVHlwZUFsaWFzRGVmaW5pdGlvbihcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgY29tbWVudDogZW50cnkuY29tbWVudCxcbiAgICAgICAgdHlwZTogZW50cnkudHlwZSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgIGVudHJ5LnR5cGUuZGVjbGFyYXRpb24/LnNpZ25hdHVyZXNcbiAgICAgICAgPyBlbnRyeS50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICA6IGVudHJ5LmNvbW1lbnRcbiAgICApO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgIGVudHJ5LnR5cGVQYXJhbWV0ZXJcbiAgICApO1xuICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IoZW50cnk6IFR5cGVEb2NFbnRyeSk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjb3JhdG9yU291cmNlID0gZW50cnkuZGVjb3JhdG9yc1swXS5hcmd1bWVudHMub2JqO1xuICAgIHJldHVybiBkZWNvcmF0b3JTb3VyY2UuaW5kZXhPZignc2VsZWN0b3I6IGAnKSA+IC0xXG4gICAgICA/IGRlY29yYXRvclNvdXJjZVxuICAgICAgICAgIC5zcGxpdCgnc2VsZWN0b3I6IGAnKVsxXVxuICAgICAgICAgIC5zcGxpdCgnYCcpWzBdXG4gICAgICAgICAgLnJlcGxhY2UoL1xcc1xccysvZywgJyAnKVxuICAgICAgOiBkZWNvcmF0b3JTb3VyY2Uuc3BsaXQoXCJzZWxlY3RvcjogJ1wiKVsxXS5zcGxpdChcIidcIilbMF07XG4gIH1cblxuICBwcml2YXRlIGdldENsYXNzUHJvcGVydGllcyhcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NDbGFzc1Byb3BlcnR5RGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWVudHJ5LmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPSBlbnRyeS5jaGlsZHJlblxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PlxuICAgICAgICAgIC8vIFdlIG9ubHkgd2FudCBwcm9wZXJ0aWVzIChib3RoIHdpdGggb3Igd2l0aG91dCBhIGdldHRlci9zZXR0ZXIpXG4gICAgICAgICAgY2hpbGQua2luZFN0cmluZyA9PT0gJ1Byb3BlcnR5JyB8fCBjaGlsZC5raW5kU3RyaW5nID09PSAnQWNjZXNzb3InXG4gICAgICApXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoY2hpbGQpID0+XG4gICAgICAgICAgLy8gV2Ugb25seSB3YW50IGFjY2Vzc29ycyB0aGF0IGRvbid0IGhhdmUgYSBzZXR0ZXIgaWYgdGhleSBhcmUgbm90IGlucHV0c1xuICAgICAgICAgIGNoaWxkLmtpbmRTdHJpbmcgIT09ICdBY2Nlc3NvcicgfHxcbiAgICAgICAgICBjaGlsZC5zZXRTaWduYXR1cmUgfHxcbiAgICAgICAgICB0aGlzLmdldERlY29yYXRvcihjaGlsZCk/Lm5hbWUgIT09ICdJbnB1dCdcbiAgICAgIClcbiAgICAgIC5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICBuYW1lOiB0aGlzLmdldFByb3BlcnR5TmFtZShjaGlsZCksXG4gICAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZCksXG4gICAgICAgIH07XG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWU6IHN0cmluZztcblxuICAgICAgICAvKiBFbnN1cmUgd2UgYXJlIHByb3Blcmx5IGNhcHR1cmluZyBkZWZpbml0aW9ucyB3aGljaCB1c2UgYSBnZXR0ZXIvc2V0dGVyLiBGaW5hbCBjaGVjayBpcyBhIHNhbml0eSBjaGVjayAqL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hpbGQua2luZFN0cmluZyA9PT0gJ0FjY2Vzc29yJyAmJlxuICAgICAgICAgICFjaGlsZC5jb21tZW50Py5zdW1tYXJ5XG4gICAgICAgICAgICA/Lm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAudHJpbSgpICYmXG4gICAgICAgICAgKGNoaWxkLnNldFNpZ25hdHVyZSB8fCBjaGlsZC5nZXRTaWduYXR1cmUpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG1haW5UYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcblxuICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIG1haW5UYWdzKTtcblxuICAgICAgICAgIGlmIChjaGlsZC5nZXRTaWduYXR1cmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGdldFRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmdldFNpZ25hdHVyZS5jb21tZW50KTtcblxuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIWdldFRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCBnZXRUYWdzKTtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBnZXRUYWdzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2hpbGQuc2V0U2lnbmF0dXJlKSB7XG4gICAgICAgICAgICBjb25zdCBzZXRUYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5zZXRTaWduYXR1cmUuY29tbWVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHNldFRhZ3MpO1xuXG4gICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgPVxuICAgICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgJiYgIXNldFRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlIHx8IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBzZXRUYWdzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIW1haW5UYWdzLmV4dHJhcy5yZXF1aXJlZDtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBtYWluVGFncyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3MgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2hpbGQua2luZFN0cmluZyA9PT0gJ1Byb3BlcnR5JyAmJlxuICAgICAgICAgICAgIWNoaWxkLmNvbW1lbnQ/LnN1bW1hcnlcbiAgICAgICAgICAgICAgPy5tYXAoKGl0ZW0pID0+IGl0ZW0udGV4dClcbiAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgIC50cmltKCkgJiZcbiAgICAgICAgICAgIGNoaWxkLnR5cGUuZGVjbGFyYXRpb24/LnNpZ25hdHVyZXM/Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgIGNoaWxkLnR5cGUuZGVjbGFyYXRpb24uc2lnbmF0dXJlc1swXS5jb21tZW50XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgICAgICAgICAgY2hpbGQudHlwZS5kZWNsYXJhdGlvbi5zaWduYXR1cmVzWzBdLmNvbW1lbnRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGRlZmluaXRpb24uaXNPcHRpb25hbCA9ICF0YWdzLmV4dHJhcy5yZXF1aXJlZDtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuXG4gICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID1cbiAgICAgICAgICAgIGRlZmluaXRpb24uaXNPcHRpb25hbCAmJiAhdGFncy5leHRyYXMucmVxdWlyZWQ7XG5cbiAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCB0YWdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY29yYXRvciA9IHRoaXMuZ2V0RGVjb3JhdG9yKGNoaWxkKTtcbiAgICAgICAgaWYgKGRlY29yYXRvcikge1xuICAgICAgICAgIGRlZmluaXRpb24uZGVjb3JhdG9yID0gZGVjb3JhdG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkZWZpbml0aW9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgY29uc3QgY29uc3RydWN0b3IgPSBlbnRyeS5jaGlsZHJlbi5maW5kKFxuICAgICAgICAgICAgKGNoaWxkKSA9PiBjaGlsZC5raW5kU3RyaW5nID09PSAnQ29uc3RydWN0b3InXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IGNvbnN0cnVjdG9yLnNpZ25hdHVyZXMuZmluZChcbiAgICAgICAgICAgICAgKHNpZ25hdHVyZSkgPT4gc2lnbmF0dXJlLmtpbmRTdHJpbmcgPT09ICdDb25zdHJ1Y3RvciBzaWduYXR1cmUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1BhcmFtID0gc2lnbmF0dXJlLnBhcmFtZXRlcnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKHBhcmFtZXRlcikgPT4gcGFyYW1ldGVyLm5hbWUgPT09IGNoaWxkLm5hbWVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG1hdGNoaW5nUGFyYW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1BhcmFtVGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoXG4gICAgICAgICAgICAgICAgICBtYXRjaGluZ1BhcmFtLmNvbW1lbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIG1hdGNoaW5nUGFyYW1UYWdzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gb3JkZXJCeShkZWZpbml0aW9ucywgWydpc09wdGlvbmFsJywgJ25hbWUnXSwgWydhc2MnLCAnYXNjJ10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGFzc01ldGhvZHMoZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZHMgPSBlbnRyeS5jaGlsZHJlblxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PlxuICAgICAgICAgIGNoaWxkLmtpbmRTdHJpbmcgPT09ICdNZXRob2QnICYmIC9ebmcvLnRlc3QoY2hpbGQubmFtZSkgPT09IGZhbHNlXG4gICAgICApXG4gICAgICAubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgICBpc1N0YXRpYzogISFjaGlsZC5mbGFncz8uaXNTdGF0aWMsXG4gICAgICAgICAgcGFyZW50TmFtZTogZW50cnkubmFtZSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBDb21tZW50cyBmb3IgbWV0aG9kcyBhcmUgc3RvcmVkIGluIGEgZGlmZmVyZW50IGxvY2F0aW9uLlxuICAgICAgICBjb25zdCBjb21tZW50ID0gY2hpbGQuc2lnbmF0dXJlc1swXS5jb21tZW50O1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjb21tZW50KTtcbiAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgICAgICBjaGlsZC5zaWduYXR1cmVzWzBdLnR5cGVQYXJhbWV0ZXJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gb3JkZXJCeShtZXRob2RzLCBbJ25hbWUnXSwgWydhc2MnXSk7XG4gIH1cblxuICBwcml2YXRlIGdldEludGVyZmFjZVByb3BlcnRpZXMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4gJiYgIWVudHJ5LmluZGV4U2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPVxuICAgICAgZW50cnkuY2hpbGRyZW4/Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgbGV0IHRhZ3M6IFNreURvY3NDb21tZW50VGFncyB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGNoaWxkLmtpbmRTdHJpbmcgPT09ICdNZXRob2QnICYmIGNoaWxkLnNpZ25hdHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLnNpZ25hdHVyZXNbMF0uY29tbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2hpbGQudHlwZS50eXBlID09PSAncmVmbGVjdGlvbicgJiZcbiAgICAgICAgICBjaGlsZC50eXBlPy5kZWNsYXJhdGlvbj8uc2lnbmF0dXJlcz8ubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgICAgICAgIGNoaWxkLnR5cGUuZGVjbGFyYXRpb24uc2lnbmF0dXJlc1swXS5jb21tZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICAgICAgICAgIGlzT3B0aW9uYWw6IHRhZ3MuZXh0cmFzLnJlcXVpcmVkID8gZmFsc2UgOiAhIWNoaWxkLmZsYWdzPy5pc09wdGlvbmFsLFxuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICAgIH0pIHx8IFtdO1xuXG4gICAgY29uc3Qgc29ydGVkID0gb3JkZXJCeShkZWZpbml0aW9ucywgWydpc09wdGlvbmFsJywgJ25hbWUnXSwgWydhc2MnLCAnYXNjJ10pO1xuXG4gICAgLy8gQWRkIGFueSBpbmRleCBzaWduYXR1cmVzLCBlLmcuIGBbXzogc3RyaW5nXTogYW55YFxuICAgIGlmIChlbnRyeS5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgY29uc3QgaW5kZXhTaWduYXR1cmUgPSBlbnRyeS5pbmRleFNpZ25hdHVyZTtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6IHRydWUsXG4gICAgICAgIG5hbWU6IGluZGV4U2lnbmF0dXJlLm5hbWUsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICBpbmRleFNpZ25hdHVyZTogdGhpcy5nZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oaW5kZXhTaWduYXR1cmUpLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoaW5kZXhTaWduYXR1cmUuY29tbWVudCk7XG4gICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcbiAgICAgIHNvcnRlZC5wdXNoKGRlZmluaXRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBzb3J0ZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEVudW1lcmF0aW9uTWVtYmVycyhcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NFbnVtZXJhdGlvbk1lbWJlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRyeS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiBjaGlsZC5uYW1lLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuY29tbWVudCk7XG4gICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVEZWZpbml0aW9uKGNoaWxkOiBUeXBlRG9jRW50cnlDaGlsZCk6IFNreURvY3NUeXBlRGVmaW5pdGlvbiB7XG4gICAgbGV0IGRlZmluaXRpb246IFNreURvY3NUeXBlRGVmaW5pdGlvbjtcblxuICAgIGNvbnN0IGtpbmRTdHJpbmcgPSBjaGlsZC5raW5kU3RyaW5nO1xuICAgIHN3aXRjaCAoa2luZFN0cmluZykge1xuICAgICAgY2FzZSAnQWNjZXNzb3InOlxuICAgICAgICBpZiAoY2hpbGQuc2V0U2lnbmF0dXJlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2hpbGQuc2V0U2lnbmF0dXJlLnBhcmFtZXRlcnNbMF0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkLmdldFNpZ25hdHVyZSk7XG5cbiAgICAgIGNhc2UgJ01ldGhvZCc6XG4gICAgICAgIGRlZmluaXRpb24gPSB7XG4gICAgICAgICAgY2FsbFNpZ25hdHVyZTogdGhpcy5nZXRDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbihcbiAgICAgICAgICAgIGNoaWxkLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBuYW1lOiBjaGlsZC5zaWduYXR1cmVzWzBdLm5hbWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxldCBuYW1lOiBzdHJpbmcgPVxuICAgICAgICAgIGNoaWxkLnR5cGUubmFtZSB8fCBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy5uYW1lIHx8IGNoaWxkLnR5cGUudmFsdWU7XG5cbiAgICAgICAgZGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICB0eXBlOiBjaGlsZC50eXBlLnR5cGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW5pb24/XG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVzKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi51bmlvblR5cGVzID0gY2hpbGQudHlwZS50eXBlcy5tYXAoKHQpID0+XG4gICAgICAgICAgICB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdCB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHJlZmxlY3Rpb24gdHlwZXMuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZC50eXBlLnR5cGUgPT09ICdyZWZsZWN0aW9uJyB8fFxuICAgICAgICAgIGNoaWxkLnR5cGUuZWxlbWVudFR5cGU/LnR5cGUgPT09ICdyZWZsZWN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9XG4gICAgICAgICAgICBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy50eXBlID09PSAncmVmbGVjdGlvbidcbiAgICAgICAgICAgICAgPyBjaGlsZC50eXBlLmVsZW1lbnRUeXBlLmRlY2xhcmF0aW9uXG4gICAgICAgICAgICAgIDogY2hpbGQudHlwZS5kZWNsYXJhdGlvbjtcbiAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoZGVjbGFyYXRpb24uc2lnbmF0dXJlcykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmNhbGxTaWduYXR1cmUgPSB0aGlzLmdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFNpZ25hdHVyZSA9IGRlY2xhcmF0aW9uLmluZGV4U2lnbmF0dXJlO1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmluZGV4U2lnbmF0dXJlID1cbiAgICAgICAgICAgICAgICB0aGlzLmdldEluZGV4U2lnbmF0dXJlRGVmaW5pdGlvbihpbmRleFNpZ25hdHVyZSk7XG4gICAgICAgICAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovIGVsc2UgaWYgKGRlY2xhcmF0aW9uLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGRlZmluaXRpb24udHlwZUxpdGVyYWwgPSB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczogdGhpcy5nZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkZWNsYXJhdGlvbi5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hpbGQudHlwZS50eXBlID09PSAndHlwZU9wZXJhdG9yJykge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IGAke2NoaWxkLnR5cGUub3BlcmF0b3J9ICR7Y2hpbGQudHlwZS50YXJnZXQubmFtZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZUFyZ3VtZW50cykge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZUFyZ3VtZW50cyA9IHRoaXMuZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgICAgICAgICBjaGlsZC50eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoXG4gICAgY2FsbFNpZ25hdHVyZTogVHlwZURvY1NpZ25hdHVyZSxcbiAgICBwYXJlbnRUYWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCFjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbltdID1cbiAgICAgIGNhbGxTaWduYXR1cmUucGFyYW1ldGVycy5tYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0UGFyYW1ldGVyQ29tbWVudFRhZ3MocCwgcGFyZW50VGFncyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKHAsIHRhZ3MpO1xuICAgICAgICBjb25zdCB0eXBlQXJndW1lbnRzID0gdGhpcy5nZXRUeXBlQXJndW1lbnREZWZpbml0aW9ucyhwLnR5cGUpO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcjogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogISEoZGVmYXVsdFZhbHVlIHx8ICEhcC5mbGFncz8uaXNPcHRpb25hbCksXG4gICAgICAgICAgbmFtZTogcC5uYW1lLFxuICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24ocCksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHBhcmFtZXRlci50eXBlQXJndW1lbnRzID0gdHlwZUFyZ3VtZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgdHlwZUNvbmZpZzogVHlwZURvY1R5cGVcbiAgKTogU2t5RG9jc1R5cGVEZWZpbml0aW9uW10ge1xuICAgIGlmICghdHlwZUNvbmZpZyB8fCAhdHlwZUNvbmZpZy50eXBlQXJndW1lbnRzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVDb25maWcudHlwZUFyZ3VtZW50cy5tYXAoKHR5cGVBcmd1bWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oeyB0eXBlOiB0eXBlQXJndW1lbnQgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgIGNhbGxTaWduYXR1cmU6IFR5cGVEb2NTaWduYXR1cmUsXG4gICAgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uID0ge1xuICAgICAgcmV0dXJuVHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjYWxsU2lnbmF0dXJlKSxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMuZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoY2FsbFNpZ25hdHVyZSwgdGFncyk7XG4gICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oXG4gICAgc2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlXG4gICk6IFNreURvY3NJbmRleFNpZ25hdHVyZURlZmluaXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHtcbiAgICAgICAgbmFtZTogc2lnbmF0dXJlLnBhcmFtZXRlcnNbMF0ubmFtZSxcbiAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUucGFyYW1ldGVyc1swXSksXG4gICAgICB9LFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICB0eXBlUGFyYW1ldGVyczogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXVxuICApOiBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCF0eXBlUGFyYW1ldGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUGFyYW1ldGVycy5tYXAoKHR5cGVQYXJhbSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiB0eXBlUGFyYW0ubmFtZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0eXBlUGFyYW0udHlwZSkge1xuICAgICAgICBkZWZpbml0aW9uLnR5cGUgPSB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgICB0eXBlOiB0eXBlUGFyYW0udHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21tZW50VGFncyhjb21tZW50OiBUeXBlRG9jQ29tbWVudCk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgbGV0IGNvZGVFeGFtcGxlOiBzdHJpbmc7XG4gICAgbGV0IGNvZGVFeGFtcGxlTGFuZ3VhZ2U6IHN0cmluZyA9ICdtYXJrdXAnO1xuICAgIGxldCBkZXByZWNhdGlvbldhcm5pbmc6IHN0cmluZztcbiAgICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gICAgbGV0IGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICAgIGxldCBwYXJhbWV0ZXJzOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIH1bXTtcblxuICAgIGNvbnN0IGV4dHJhczoge1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0gPSB7fTtcblxuICAgIGlmIChjb21tZW50KSB7XG4gICAgICBpZiAoY29tbWVudC5ibG9ja1RhZ3MpIHtcbiAgICAgICAgY29tbWVudC5ibG9ja1RhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgc3dpdGNoICh0YWcudGFnKSB7XG4gICAgICAgICAgICBjYXNlICdAZGVwcmVjYXRlZCc6XG4gICAgICAgICAgICAgIGRlcHJlY2F0aW9uV2FybmluZyA9IHRhZy5jb250ZW50XG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdCc6XG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdFZhbHVlJzpcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGFnLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgLnRyaW0oKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0BleGFtcGxlJzpcbiAgICAgICAgICAgICAgY29kZUV4YW1wbGUgPSB0YWcuY29udGVudFxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udGV4dClcbiAgICAgICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnNwbGl0KCdgYGAnKVsxXVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gY29kZUV4YW1wbGUuc3BsaXQoJ1xcbicpWzBdO1xuICAgICAgICAgICAgICBpZiAobGFuZ3VhZ2UgPT09ICdtYXJrdXAnIHx8IGxhbmd1YWdlID09PSAndHlwZXNjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZSA9IGNvZGVFeGFtcGxlLnNsaWNlKGxhbmd1YWdlLmxlbmd0aCkudHJpbSgpO1xuICAgICAgICAgICAgICAgIGNvZGVFeGFtcGxlTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQHBhcmFtJzpcbiAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMgfHwgW107XG4gICAgICAgICAgICAgIHBhcmFtZXRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogdGFnLnBhcmFtLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0YWcuY29udGVudFxuICAgICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgICAudHJpbSgpLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdAcmVxdWlyZWQnOlxuICAgICAgICAgICAgICBleHRyYXNbJ3JlcXVpcmVkJ10gPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBkZXNjcmlwdGlvbiA9IGNvbW1lbnQuc3VtbWFyeVxuICAgICAgICA/Lm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAuam9pbignJylcbiAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29kZUV4YW1wbGUsXG4gICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgZGVwcmVjYXRpb25XYXJuaW5nLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBleHRyYXMsXG4gICAgICBwYXJhbWV0ZXJzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUGFyYW1ldGVyIGRlc2NyaXB0aW9ucyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBwYXJlbnQncyAoZnVuY3Rpb24vbWV0aG9kKSBjb21tZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJDb21tZW50VGFncyhcbiAgICBwYXJhbWV0ZXI6IFR5cGVEb2NQYXJhbWV0ZXIsXG4gICAgcGFyZW50VGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MocGFyYW1ldGVyLmNvbW1lbnQpO1xuICAgIGNvbnN0IHBhcmFtVGFncyA9IHBhcmVudFRhZ3MucGFyYW1ldGVycztcbiAgICBjb25zdCB0YWdQYXJhbSA9IHBhcmFtVGFnc1xuICAgICAgPyBwYXJhbVRhZ3MuZmluZCgocGFyYW0pID0+IHBhcmFtLm5hbWUgPT09IHBhcmFtZXRlci5uYW1lKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXRhZ1BhcmFtIHx8ICF0YWdQYXJhbS5kZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIHRhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRhZ3MsXG4gICAgICAuLi57XG4gICAgICAgIGRlc2NyaXB0aW9uOiB0YWdQYXJhbS5kZXNjcmlwdGlvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGNvbW1lbnQgdGFnIChlLmcuIGBAcGFyYW1gKSB2YWx1ZXMgdG8gdGhlIHByb3ZpZGVkIGRlZmluaXRpb24sIGlmIHRoZSB2YWx1ZSBpcyBkZWZpbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseUNvbW1lbnRUYWdWYWx1ZXMoXG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgY29kZUV4YW1wbGU/OiBzdHJpbmc7XG4gICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlPzogc3RyaW5nO1xuICAgICAgZGVwcmVjYXRpb25XYXJuaW5nPzogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgfSxcbiAgICB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRhZ3MuY29kZUV4YW1wbGUpIHtcbiAgICAgIGRlZmluaXRpb24uY29kZUV4YW1wbGUgPSB0YWdzLmNvZGVFeGFtcGxlO1xuICAgICAgZGVmaW5pdGlvbi5jb2RlRXhhbXBsZUxhbmd1YWdlID0gdGFncy5jb2RlRXhhbXBsZUxhbmd1YWdlO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlcHJlY2F0aW9uV2FybmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbml0aW9uLmRlcHJlY2F0aW9uV2FybmluZyA9IHRhZ3MuZGVwcmVjYXRpb25XYXJuaW5nO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICBkZWZpbml0aW9uLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERlY29yYXRvcihcbiAgICBjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGRcbiAgKTogU2t5RG9jc1Byb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbmFtZSA9XG4gICAgICBjaGlsZC5kZWNvcmF0b3JzICYmIGNoaWxkLmRlY29yYXRvcnNbMF0gJiYgY2hpbGQuZGVjb3JhdG9yc1swXS5uYW1lO1xuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4geyBuYW1lIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHk6IFR5cGVEb2NFbnRyeUNoaWxkKTogc3RyaW5nIHtcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gcHJvcGVydHkuZGVjb3JhdG9ycyAmJiBwcm9wZXJ0eS5kZWNvcmF0b3JzWzBdO1xuICAgIC8vIFVzZSB0aGUgSW5wdXQncyBib3VuZCBwcm9wZXJ0eSBuYW1lLCBpZiBmb3VuZC5cbiAgICAvLyBlLmcuIEBJbnB1dCgnZm9vYmFyJylcbiAgICByZXR1cm4gZGVjb3JhdG9ycz8uYXJndW1lbnRzPy5iaW5kaW5nUHJvcGVydHlOYW1lXG4gICAgICA/IGRlY29yYXRvcnMuYXJndW1lbnRzLmJpbmRpbmdQcm9wZXJ0eU5hbWUucmVwbGFjZSgvKFxcJ3xcXFwiKS9nLCAnJylcbiAgICAgIDogcHJvcGVydHkubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFZhbHVlKFxuICAgIGNoaWxkOiBUeXBlRG9jRW50cnlDaGlsZCxcbiAgICB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGFncy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiB0YWdzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyBUeXBlRG9jIHZlcnNpb24gMC4yMC54IHN0b3BwZWQgYXV0by1nZW5lcmF0aW5nIGluaXRpYWxpemVycyBmb3IgdGhlIGRlZmF1bHQgdmFsdWVcbiAgICAvLyAoYW5kIHJlcGxhY2VkIHRoZW0gd2l0aCBcIi4uLlwiKSBkdWUgdG8gdGhlIGNvbXBsaWNhdGVkIGxvZ2ljIGl0IHJlcXVpcmVkLlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL1R5cGVTdHJvbmcvdHlwZWRvYy9pc3N1ZXMvMTU1MlxuICAgIGlmIChjaGlsZC5kZWZhdWx0VmFsdWUgPT09ICcuLi4nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkLmRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QW5jaG9ySWQoZW50cnk6IFR5cGVEb2NFbnRyeSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVudHJ5LmFuY2hvcklkIHx8XG4gICAgICB0aGlzLnR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyPy5hbmNob3JJZHNbZW50cnkubmFtZV0gfHxcbiAgICAgICcnXG4gICAgKTtcbiAgfVxufVxuIl19
565
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFzQ3JELE9BQU8sRUFJTCxXQUFXLEdBS1osTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXJDOztHQUVHO0FBSUgsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUNzQix1QkFBd0Q7UUFBeEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztJQUMzRSxDQUFDO0lBRUcsaUJBQWlCLENBQUMsS0FBbUI7UUFDMUMsTUFBTSxVQUFVLEdBQTJCO1lBQ3pDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEIsVUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDOUI7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3JCLFVBQVUsQ0FB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Q0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVPLGVBQWUsQ0FDckIsS0FBd0IsRUFDeEIsSUFBd0I7UUFFeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQjtRQUVELG9GQUFvRjtRQUNwRiwyRUFBMkU7UUFDM0UseURBQXlEO1FBQ3pELElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDaEMsT0FBTztTQUNSO1FBRUQsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQzVCLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBbUI7UUFDckMsT0FBTyxDQUNMLEtBQUssQ0FBQyxRQUFRO1lBQ2QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ25ELEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs4R0FudkJVLDRCQUE0QjtrSEFBNUIsNEJBQTRCLGNBRjNCLEtBQUs7OzJGQUVOLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OzBCQUdJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb24gfSBmcm9tICcuL2NhbGwtc2lnbmF0dXJlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uIH0gZnJvbSAnLi9jbGFzcy1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0NsYXNzUHJvcGVydHlEZWZpbml0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0NvbW1lbnRUYWdzIH0gZnJvbSAnLi9jb21tZW50LXRhZ3MnO1xuXG5pbXBvcnQgeyBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbiB9IGZyb20gJy4vZGlyZWN0aXZlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uIH0gZnJvbSAnLi9lbnVtZXJhdGlvbi1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0VudW1lcmF0aW9uTWVtYmVyRGVmaW5pdGlvbiB9IGZyb20gJy4vZW51bWVyYXRpb24tbWVtYmVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzSW5kZXhTaWduYXR1cmVEZWZpbml0aW9uIH0gZnJvbSAnLi9pbmRleC1zaWduYXR1cmUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZS1wcm9wZXJ0eS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0NsYXNzTWV0aG9kRGVmaW5pdGlvbiB9IGZyb20gJy4vbWV0aG9kLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzUGlwZURlZmluaXRpb24gfSBmcm9tICcuL3BpcGUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NQcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb24gfSBmcm9tICcuL3Byb3BlcnR5LWRlY29yYXRvcic7XG5cbmltcG9ydCB7IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uIH0gZnJvbSAnLi90eXBlLWFsaWFzLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzVHlwZURlZmluaXRpb24gfSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7IFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlciB9IGZyb20gJy4vdHlwZS1kZWZpbml0aW9ucy1wcm92aWRlcic7XG5cbmltcG9ydCB7IFNreURvY3NUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZS1wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFR5cGVEb2NDb21tZW50LFxuICBUeXBlRG9jRW50cnksXG4gIFR5cGVEb2NFbnRyeUNoaWxkLFxuICBUeXBlRG9jS2luZCxcbiAgVHlwZURvY1BhcmFtZXRlcixcbiAgVHlwZURvY1NpZ25hdHVyZSxcbiAgVHlwZURvY1R5cGUsXG4gIFR5cGVEb2NUeXBlUGFyYW1ldGVyLFxufSBmcm9tICcuL3R5cGVkb2MtdHlwZXMnO1xuXG5pbXBvcnQgb3JkZXJCeSBmcm9tICdsb2Rhc2gub3JkZXJieSc7XG5cbi8qKlxuICogQ29udmVydHMgVHlwZURvYyB0eXBlcyBpbnRvIFNLWSBVWCBkb2NzLXRvb2xzIHR5cGVzLCB0byBiZSBzdXBwbGllZCB0byB0aGUgdmFyaW91cyBkZWZpbml0aW9ucyBjb21wb25lbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzVHlwZURvY0FkYXB0ZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0eXBlRGVmaW5pdGlvbnNQcm92aWRlcj86IFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlclxuICApIHt9XG5cbiAgcHVibGljIHRvQ2xhc3NEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCBtZXRob2RzID0gdGhpcy5nZXRDbGFzc01ldGhvZHMoZW50cnkpO1xuICAgIGlmIChtZXRob2RzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5tZXRob2RzID0gbWV0aG9kcztcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDbGFzc1Byb3BlcnRpZXMoZW50cnkpO1xuICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0RpcmVjdGl2ZURlZmluaXRpb24oXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgc2VsZWN0b3I6IHRoaXMuZ2V0U2VsZWN0b3IoZW50cnkpLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldENsYXNzUHJvcGVydGllcyhlbnRyeSk7XG5cbiAgICBjb25zdCBldmVudFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChwKSA9PiBwLmRlY29yYXRvcj8ubmFtZSA9PT0gJ091dHB1dCdcbiAgICApO1xuICAgIGlmIChldmVudFByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLmV2ZW50UHJvcGVydGllcyA9IGV2ZW50UHJvcGVydGllcztcbiAgICB9XG5cbiAgICBjb25zdCBpbnB1dFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChwKSA9PiBwLmRlY29yYXRvcj8ubmFtZSA9PT0gJ0lucHV0J1xuICAgICk7XG4gICAgaWYgKGlucHV0UHJvcGVydGllcy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24uaW5wdXRQcm9wZXJ0aWVzID0gaW5wdXRQcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvRW51bWVyYXRpb25EZWZpbml0aW9uKFxuICAgIGVudHJ5OiBUeXBlRG9jRW50cnlcbiAgKTogU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbWVtYmVycyA9IHRoaXMuZ2V0RW51bWVyYXRpb25NZW1iZXJzKGVudHJ5KTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbWVtYmVycyxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9JbnRlcmZhY2VEZWZpbml0aW9uKFxuICAgIGVudHJ5OiBUeXBlRG9jRW50cnlcbiAgKTogU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldEludGVyZmFjZVByb3BlcnRpZXMoZW50cnkpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIHByb3BlcnRpZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgIGVudHJ5LnR5cGVQYXJhbWV0ZXJcbiAgICApO1xuICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b1BpcGVEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzUGlwZURlZmluaXRpb24ge1xuICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLmdldENsYXNzTWV0aG9kcyhlbnRyeSk7XG4gICAgY29uc3QgdHJhbnNmb3JtTWV0aG9kID0gbWV0aG9kcy5maW5kKChtKSA9PiBtLm5hbWUgPT09ICd0cmFuc2Zvcm0nKTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzUGlwZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgdHJhbnNmb3JtTWV0aG9kLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvVHlwZUFsaWFzRGVmaW5pdGlvbihcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgY29tbWVudDogZW50cnkuY29tbWVudCxcbiAgICAgICAgdHlwZTogZW50cnkudHlwZSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgIGVudHJ5LnR5cGUuZGVjbGFyYXRpb24/LnNpZ25hdHVyZXNcbiAgICAgICAgPyBlbnRyeS50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICA6IGVudHJ5LmNvbW1lbnRcbiAgICApO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgIGVudHJ5LnR5cGVQYXJhbWV0ZXJcbiAgICApO1xuICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IoZW50cnk6IFR5cGVEb2NFbnRyeSk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjb3JhdG9yU291cmNlID0gZW50cnkuZGVjb3JhdG9yc1swXS5hcmd1bWVudHMub2JqO1xuICAgIHJldHVybiBkZWNvcmF0b3JTb3VyY2UuaW5kZXhPZignc2VsZWN0b3I6IGAnKSA+IC0xXG4gICAgICA/IGRlY29yYXRvclNvdXJjZVxuICAgICAgICAgIC5zcGxpdCgnc2VsZWN0b3I6IGAnKVsxXVxuICAgICAgICAgIC5zcGxpdCgnYCcpWzBdXG4gICAgICAgICAgLnJlcGxhY2UoL1xcc1xccysvZywgJyAnKVxuICAgICAgOiBkZWNvcmF0b3JTb3VyY2Uuc3BsaXQoXCJzZWxlY3RvcjogJ1wiKVsxXS5zcGxpdChcIidcIilbMF07XG4gIH1cblxuICBwcml2YXRlIGdldENsYXNzUHJvcGVydGllcyhcbiAgICBlbnRyeTogVHlwZURvY0VudHJ5XG4gICk6IFNreURvY3NDbGFzc1Byb3BlcnR5RGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWVudHJ5LmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPSBlbnRyeS5jaGlsZHJlblxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PlxuICAgICAgICAgIC8vIFdlIG9ubHkgd2FudCBwcm9wZXJ0aWVzIChib3RoIHdpdGggb3Igd2l0aG91dCBhIGdldHRlci9zZXR0ZXIpXG4gICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuUHJvcGVydHkgfHxcbiAgICAgICAgICBjaGlsZC5raW5kID09PSBUeXBlRG9jS2luZC5BY2Nlc3NvclxuICAgICAgKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PlxuICAgICAgICAgIC8vIFdlIG9ubHkgd2FudCBhY2Nlc3NvcnMgdGhhdCBkb24ndCBoYXZlIGEgc2V0dGVyIGlmIHRoZXkgYXJlIG5vdCBpbnB1dHNcbiAgICAgICAgICBjaGlsZC5raW5kICE9PSBUeXBlRG9jS2luZC5BY2Nlc3NvciB8fFxuICAgICAgICAgIGNoaWxkLnNldFNpZ25hdHVyZSB8fFxuICAgICAgICAgIHRoaXMuZ2V0RGVjb3JhdG9yKGNoaWxkKT8ubmFtZSAhPT0gJ0lucHV0J1xuICAgICAgKVxuICAgICAgLm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgbGV0IGRlZmluaXRpb246IFNreURvY3NDbGFzc1Byb3BlcnR5RGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICBpc09wdGlvbmFsOiB0cnVlLFxuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nO1xuXG4gICAgICAgIC8qIEVuc3VyZSB3ZSBhcmUgcHJvcGVybHkgY2FwdHVyaW5nIGRlZmluaXRpb25zIHdoaWNoIHVzZSBhIGdldHRlci9zZXR0ZXIuIEZpbmFsIGNoZWNrIGlzIGEgc2FuaXR5IGNoZWNrICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZC5raW5kID09PSBUeXBlRG9jS2luZC5BY2Nlc3NvciAmJlxuICAgICAgICAgICFjaGlsZC5jb21tZW50Py5zdW1tYXJ5XG4gICAgICAgICAgICA/Lm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAudHJpbSgpICYmXG4gICAgICAgICAgKGNoaWxkLnNldFNpZ25hdHVyZSB8fCBjaGlsZC5nZXRTaWduYXR1cmUpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG1haW5UYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcblxuICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIG1haW5UYWdzKTtcblxuICAgICAgICAgIGlmIChjaGlsZC5nZXRTaWduYXR1cmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGdldFRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmdldFNpZ25hdHVyZS5jb21tZW50KTtcblxuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIWdldFRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCBnZXRUYWdzKTtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBnZXRUYWdzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2hpbGQuc2V0U2lnbmF0dXJlKSB7XG4gICAgICAgICAgICBjb25zdCBzZXRUYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5zZXRTaWduYXR1cmUuY29tbWVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHNldFRhZ3MpO1xuXG4gICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgPVxuICAgICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgJiYgIXNldFRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlIHx8IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBzZXRUYWdzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIW1haW5UYWdzLmV4dHJhcy5yZXF1aXJlZDtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBtYWluVGFncyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3MgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuUHJvcGVydHkgJiZcbiAgICAgICAgICAgICFjaGlsZC5jb21tZW50Py5zdW1tYXJ5XG4gICAgICAgICAgICAgID8ubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAudHJpbSgpICYmXG4gICAgICAgICAgICBjaGlsZC50eXBlLmRlY2xhcmF0aW9uPy5zaWduYXR1cmVzPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICBjaGlsZC50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoXG4gICAgICAgICAgICAgIGNoaWxkLnR5cGUuZGVjbGFyYXRpb24uc2lnbmF0dXJlc1swXS5jb21tZW50XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgPSAhdGFncy5leHRyYXMucmVxdWlyZWQ7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcblxuICAgICAgICAgIGRlZmluaXRpb24uaXNPcHRpb25hbCA9XG4gICAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgJiYgIXRhZ3MuZXh0cmFzLnJlcXVpcmVkO1xuXG4gICAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShjaGlsZCwgdGFncyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvcmF0b3IgPSB0aGlzLmdldERlY29yYXRvcihjaGlsZCk7XG4gICAgICAgIGlmIChkZWNvcmF0b3IpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLmRlY29yYXRvciA9IGRlY29yYXRvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGVmaW5pdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gZW50cnkuY2hpbGRyZW4uZmluZChcbiAgICAgICAgICAgIChjaGlsZCkgPT4gY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuQ29uc3RydWN0b3JcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmF0dXJlID0gY29uc3RydWN0b3Iuc2lnbmF0dXJlcy5maW5kKFxuICAgICAgICAgICAgICAoc2lnbmF0dXJlKSA9PiBzaWduYXR1cmUua2luZCA9PT0gVHlwZURvY0tpbmQuQ29uc3RydWN0b3JTaWduYXR1cmVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAoc2lnbmF0dXJlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUGFyYW0gPSBzaWduYXR1cmUucGFyYW1ldGVycz8uZmluZChcbiAgICAgICAgICAgICAgICAocGFyYW1ldGVyKSA9PiBwYXJhbWV0ZXIubmFtZSA9PT0gY2hpbGQubmFtZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAobWF0Y2hpbmdQYXJhbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUGFyYW1UYWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhcbiAgICAgICAgICAgICAgICAgIG1hdGNoaW5nUGFyYW0uY29tbWVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgbWF0Y2hpbmdQYXJhbVRhZ3MpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckJ5KGRlZmluaXRpb25zLCBbJ2lzT3B0aW9uYWwnLCAnbmFtZSddLCBbJ2FzYycsICdhc2MnXSk7XG4gIH1cblxuICBwcml2YXRlIGdldENsYXNzTWV0aG9kcyhlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0NsYXNzTWV0aG9kRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWVudHJ5LmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgbWV0aG9kcyA9IGVudHJ5LmNoaWxkcmVuXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoY2hpbGQpID0+XG4gICAgICAgICAgY2hpbGQua2luZCA9PT0gVHlwZURvY0tpbmQuTWV0aG9kICYmIC9ebmcvLnRlc3QoY2hpbGQubmFtZSkgPT09IGZhbHNlXG4gICAgICApXG4gICAgICAubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKSxcbiAgICAgICAgICBpc1N0YXRpYzogISFjaGlsZC5mbGFncz8uaXNTdGF0aWMsXG4gICAgICAgICAgcGFyZW50TmFtZTogZW50cnkubmFtZSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBDb21tZW50cyBmb3IgbWV0aG9kcyBhcmUgc3RvcmVkIGluIGEgZGlmZmVyZW50IGxvY2F0aW9uLlxuICAgICAgICBjb25zdCBjb21tZW50ID0gY2hpbGQuc2lnbmF0dXJlc1swXS5jb21tZW50O1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjb21tZW50KTtcbiAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICAgICAgICBjaGlsZC5zaWduYXR1cmVzWzBdLnR5cGVQYXJhbWV0ZXJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gb3JkZXJCeShtZXRob2RzLCBbJ25hbWUnXSwgWydhc2MnXSk7XG4gIH1cblxuICBwcml2YXRlIGdldEludGVyZmFjZVByb3BlcnRpZXMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4gJiYgIWVudHJ5LmluZGV4U2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPVxuICAgICAgZW50cnkuY2hpbGRyZW4/Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgbGV0IHRhZ3M6IFNreURvY3NDb21tZW50VGFncyB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGNoaWxkLmtpbmQgPT09IFR5cGVEb2NLaW5kLk1ldGhvZCAmJiBjaGlsZC5zaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5zaWduYXR1cmVzWzBdLmNvbW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGNoaWxkLnR5cGUudHlwZSA9PT0gJ3JlZmxlY3Rpb24nICYmXG4gICAgICAgICAgY2hpbGQudHlwZT8uZGVjbGFyYXRpb24/LnNpZ25hdHVyZXM/Lmxlbmd0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoXG4gICAgICAgICAgICBjaGlsZC50eXBlLmRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0uY29tbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuY29tbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICBpc09wdGlvbmFsOiB0YWdzLmV4dHJhcy5yZXF1aXJlZCA/IGZhbHNlIDogISFjaGlsZC5mbGFncz8uaXNPcHRpb25hbCxcbiAgICAgICAgICBuYW1lOiB0aGlzLmdldFByb3BlcnR5TmFtZShjaGlsZCksXG4gICAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZCksXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgICB9KSB8fCBbXTtcblxuICAgIGNvbnN0IHNvcnRlZCA9IG9yZGVyQnkoZGVmaW5pdGlvbnMsIFsnaXNPcHRpb25hbCcsICduYW1lJ10sIFsnYXNjJywgJ2FzYyddKTtcblxuICAgIC8vIEFkZCBhbnkgaW5kZXggc2lnbmF0dXJlcywgZS5nLiBgW186IHN0cmluZ106IGFueWBcbiAgICBpZiAoZW50cnkuaW5kZXhTaWduYXR1cmUpIHtcbiAgICAgIGNvbnN0IGluZGV4U2lnbmF0dXJlID0gZW50cnkuaW5kZXhTaWduYXR1cmU7XG4gICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICAgICAgICBpc09wdGlvbmFsOiB0cnVlLFxuICAgICAgICBuYW1lOiBpbmRleFNpZ25hdHVyZS5uYW1lLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgaW5kZXhTaWduYXR1cmU6IHRoaXMuZ2V0SW5kZXhTaWduYXR1cmVEZWZpbml0aW9uKGluZGV4U2lnbmF0dXJlKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGluZGV4U2lnbmF0dXJlLmNvbW1lbnQpO1xuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG4gICAgICBzb3J0ZWQucHVzaChkZWZpbml0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc29ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnVtZXJhdGlvbk1lbWJlcnMoXG4gICAgZW50cnk6IFR5cGVEb2NFbnRyeVxuICApOiBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnkuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0VudW1lcmF0aW9uTWVtYmVyRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgbmFtZTogY2hpbGQubmFtZSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlRGVmaW5pdGlvbihjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQpOiBTa3lEb2NzVHlwZURlZmluaXRpb24ge1xuICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZURlZmluaXRpb247XG5cbiAgICBjb25zdCBraW5kID0gY2hpbGQua2luZDtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgVHlwZURvY0tpbmQuQWNjZXNzb3I6XG4gICAgICAgIGlmIChjaGlsZC5zZXRTaWduYXR1cmUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZC5zZXRTaWduYXR1cmUucGFyYW1ldGVyc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2hpbGQuZ2V0U2lnbmF0dXJlKTtcblxuICAgICAgY2FzZSBUeXBlRG9jS2luZC5NZXRob2Q6XG4gICAgICAgIGRlZmluaXRpb24gPSB7XG4gICAgICAgICAgY2FsbFNpZ25hdHVyZTogdGhpcy5nZXRDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbihcbiAgICAgICAgICAgIGNoaWxkLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBuYW1lOiBjaGlsZC5zaWduYXR1cmVzWzBdLm5hbWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxldCBuYW1lOiBzdHJpbmcgPVxuICAgICAgICAgIGNoaWxkLnR5cGUubmFtZSB8fCBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy5uYW1lIHx8IGNoaWxkLnR5cGUudmFsdWU7XG5cbiAgICAgICAgZGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICB0eXBlOiBjaGlsZC50eXBlLnR5cGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW5pb24/XG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVzKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi51bmlvblR5cGVzID0gY2hpbGQudHlwZS50eXBlcy5tYXAoKHQpID0+XG4gICAgICAgICAgICB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdCB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHJlZmxlY3Rpb24gdHlwZXMuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZC50eXBlLnR5cGUgPT09ICdyZWZsZWN0aW9uJyB8fFxuICAgICAgICAgIGNoaWxkLnR5cGUuZWxlbWVudFR5cGU/LnR5cGUgPT09ICdyZWZsZWN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9XG4gICAgICAgICAgICBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy50eXBlID09PSAncmVmbGVjdGlvbidcbiAgICAgICAgICAgICAgPyBjaGlsZC50eXBlLmVsZW1lbnRUeXBlLmRlY2xhcmF0aW9uXG4gICAgICAgICAgICAgIDogY2hpbGQudHlwZS5kZWNsYXJhdGlvbjtcbiAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoZGVjbGFyYXRpb24uc2lnbmF0dXJlcykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmNhbGxTaWduYXR1cmUgPSB0aGlzLmdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFNpZ25hdHVyZSA9IGRlY2xhcmF0aW9uLmluZGV4U2lnbmF0dXJlO1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmluZGV4U2lnbmF0dXJlID1cbiAgICAgICAgICAgICAgICB0aGlzLmdldEluZGV4U2lnbmF0dXJlRGVmaW5pdGlvbihpbmRleFNpZ25hdHVyZSk7XG4gICAgICAgICAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovIGVsc2UgaWYgKGRlY2xhcmF0aW9uLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGRlZmluaXRpb24udHlwZUxpdGVyYWwgPSB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczogdGhpcy5nZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkZWNsYXJhdGlvbi5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hpbGQudHlwZS50eXBlID09PSAndHlwZU9wZXJhdG9yJykge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IGAke2NoaWxkLnR5cGUub3BlcmF0b3J9ICR7Y2hpbGQudHlwZS50YXJnZXQubmFtZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZUFyZ3VtZW50cykge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZUFyZ3VtZW50cyA9IHRoaXMuZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgICAgICAgICBjaGlsZC50eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoXG4gICAgY2FsbFNpZ25hdHVyZTogVHlwZURvY1NpZ25hdHVyZSxcbiAgICBwYXJlbnRUYWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCFjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbltdID1cbiAgICAgIGNhbGxTaWduYXR1cmUucGFyYW1ldGVycy5tYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0UGFyYW1ldGVyQ29tbWVudFRhZ3MocCwgcGFyZW50VGFncyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKHAsIHRhZ3MpO1xuICAgICAgICBjb25zdCB0eXBlQXJndW1lbnRzID0gdGhpcy5nZXRUeXBlQXJndW1lbnREZWZpbml0aW9ucyhwLnR5cGUpO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcjogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogISEoZGVmYXVsdFZhbHVlIHx8ICEhcC5mbGFncz8uaXNPcHRpb25hbCksXG4gICAgICAgICAgbmFtZTogcC5uYW1lLFxuICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24ocCksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgcGFyYW1ldGVyLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHBhcmFtZXRlci50eXBlQXJndW1lbnRzID0gdHlwZUFyZ3VtZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoXG4gICAgdHlwZUNvbmZpZzogVHlwZURvY1R5cGVcbiAgKTogU2t5RG9jc1R5cGVEZWZpbml0aW9uW10ge1xuICAgIGlmICghdHlwZUNvbmZpZyB8fCAhdHlwZUNvbmZpZy50eXBlQXJndW1lbnRzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVDb25maWcudHlwZUFyZ3VtZW50cy5tYXAoKHR5cGVBcmd1bWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oeyB0eXBlOiB0eXBlQXJndW1lbnQgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgIGNhbGxTaWduYXR1cmU6IFR5cGVEb2NTaWduYXR1cmUsXG4gICAgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uID0ge1xuICAgICAgcmV0dXJuVHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjYWxsU2lnbmF0dXJlKSxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMuZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoY2FsbFNpZ25hdHVyZSwgdGFncyk7XG4gICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oXG4gICAgc2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlXG4gICk6IFNreURvY3NJbmRleFNpZ25hdHVyZURlZmluaXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHtcbiAgICAgICAgbmFtZTogc2lnbmF0dXJlLnBhcmFtZXRlcnNbMF0ubmFtZSxcbiAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUucGFyYW1ldGVyc1swXSksXG4gICAgICB9LFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICB0eXBlUGFyYW1ldGVyczogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXVxuICApOiBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCF0eXBlUGFyYW1ldGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUGFyYW1ldGVycy5tYXAoKHR5cGVQYXJhbSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiB0eXBlUGFyYW0ubmFtZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0eXBlUGFyYW0udHlwZSkge1xuICAgICAgICBkZWZpbml0aW9uLnR5cGUgPSB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgICB0eXBlOiB0eXBlUGFyYW0udHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21tZW50VGFncyhjb21tZW50OiBUeXBlRG9jQ29tbWVudCk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgbGV0IGNvZGVFeGFtcGxlOiBzdHJpbmc7XG4gICAgbGV0IGNvZGVFeGFtcGxlTGFuZ3VhZ2U6IHN0cmluZyA9ICdtYXJrdXAnO1xuICAgIGxldCBkZXByZWNhdGlvbldhcm5pbmc6IHN0cmluZztcbiAgICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gICAgbGV0IGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICAgIGxldCBwYXJhbWV0ZXJzOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIH1bXTtcblxuICAgIGNvbnN0IGV4dHJhczoge1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0gPSB7fTtcblxuICAgIGlmIChjb21tZW50KSB7XG4gICAgICBpZiAoY29tbWVudC5ibG9ja1RhZ3MpIHtcbiAgICAgICAgY29tbWVudC5ibG9ja1RhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgc3dpdGNoICh0YWcudGFnKSB7XG4gICAgICAgICAgICBjYXNlICdAZGVwcmVjYXRlZCc6XG4gICAgICAgICAgICAgIGRlcHJlY2F0aW9uV2FybmluZyA9IHRhZy5jb250ZW50XG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdCc6XG4gICAgICAgICAgICBjYXNlICdAZGVmYXVsdFZhbHVlJzpcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGFnLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRleHQpXG4gICAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgLnRyaW0oKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0BleGFtcGxlJzpcbiAgICAgICAgICAgICAgY29kZUV4YW1wbGUgPSB0YWcuY29udGVudFxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udGV4dClcbiAgICAgICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnNwbGl0KCdgYGAnKVsxXVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gY29kZUV4YW1wbGUuc3BsaXQoJ1xcbicpWzBdO1xuICAgICAgICAgICAgICBpZiAobGFuZ3VhZ2UgPT09ICdtYXJrdXAnIHx8IGxhbmd1YWdlID09PSAndHlwZXNjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZSA9IGNvZGVFeGFtcGxlLnNsaWNlKGxhbmd1YWdlLmxlbmd0aCkudHJpbSgpO1xuICAgICAgICAgICAgICAgIGNvZGVFeGFtcGxlTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQHBhcmFtJzpcbiAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMgfHwgW107XG4gICAgICAgICAgICAgIHBhcmFtZXRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogdGFnLnBhcmFtLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0YWcuY29udGVudFxuICAgICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAgICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgICAudHJpbSgpLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdAcmVxdWlyZWQnOlxuICAgICAgICAgICAgICBleHRyYXNbJ3JlcXVpcmVkJ10gPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBkZXNjcmlwdGlvbiA9IGNvbW1lbnQuc3VtbWFyeVxuICAgICAgICA/Lm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0KVxuICAgICAgICAuam9pbignJylcbiAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29kZUV4YW1wbGUsXG4gICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgZGVwcmVjYXRpb25XYXJuaW5nLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBleHRyYXMsXG4gICAgICBwYXJhbWV0ZXJzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUGFyYW1ldGVyIGRlc2NyaXB0aW9ucyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBwYXJlbnQncyAoZnVuY3Rpb24vbWV0aG9kKSBjb21tZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJDb21tZW50VGFncyhcbiAgICBwYXJhbWV0ZXI6IFR5cGVEb2NQYXJhbWV0ZXIsXG4gICAgcGFyZW50VGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MocGFyYW1ldGVyLmNvbW1lbnQpO1xuICAgIGNvbnN0IHBhcmFtVGFncyA9IHBhcmVudFRhZ3MucGFyYW1ldGVycztcbiAgICBjb25zdCB0YWdQYXJhbSA9IHBhcmFtVGFnc1xuICAgICAgPyBwYXJhbVRhZ3MuZmluZCgocGFyYW0pID0+IHBhcmFtLm5hbWUgPT09IHBhcmFtZXRlci5uYW1lKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXRhZ1BhcmFtIHx8ICF0YWdQYXJhbS5kZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIHRhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRhZ3MsXG4gICAgICAuLi57XG4gICAgICAgIGRlc2NyaXB0aW9uOiB0YWdQYXJhbS5kZXNjcmlwdGlvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGNvbW1lbnQgdGFnIChlLmcuIGBAcGFyYW1gKSB2YWx1ZXMgdG8gdGhlIHByb3ZpZGVkIGRlZmluaXRpb24sIGlmIHRoZSB2YWx1ZSBpcyBkZWZpbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseUNvbW1lbnRUYWdWYWx1ZXMoXG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgY29kZUV4YW1wbGU/OiBzdHJpbmc7XG4gICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlPzogc3RyaW5nO1xuICAgICAgZGVwcmVjYXRpb25XYXJuaW5nPzogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgfSxcbiAgICB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRhZ3MuY29kZUV4YW1wbGUpIHtcbiAgICAgIGRlZmluaXRpb24uY29kZUV4YW1wbGUgPSB0YWdzLmNvZGVFeGFtcGxlO1xuICAgICAgZGVmaW5pdGlvbi5jb2RlRXhhbXBsZUxhbmd1YWdlID0gdGFncy5jb2RlRXhhbXBsZUxhbmd1YWdlO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlcHJlY2F0aW9uV2FybmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbml0aW9uLmRlcHJlY2F0aW9uV2FybmluZyA9IHRhZ3MuZGVwcmVjYXRpb25XYXJuaW5nO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICBkZWZpbml0aW9uLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERlY29yYXRvcihcbiAgICBjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGRcbiAgKTogU2t5RG9jc1Byb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbmFtZSA9XG4gICAgICBjaGlsZC5kZWNvcmF0b3JzICYmIGNoaWxkLmRlY29yYXRvcnNbMF0gJiYgY2hpbGQuZGVjb3JhdG9yc1swXS5uYW1lO1xuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4geyBuYW1lIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHk6IFR5cGVEb2NFbnRyeUNoaWxkKTogc3RyaW5nIHtcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gcHJvcGVydHkuZGVjb3JhdG9ycyAmJiBwcm9wZXJ0eS5kZWNvcmF0b3JzWzBdO1xuICAgIC8vIFVzZSB0aGUgSW5wdXQncyBib3VuZCBwcm9wZXJ0eSBuYW1lLCBpZiBmb3VuZC5cbiAgICAvLyBlLmcuIEBJbnB1dCgnZm9vYmFyJylcbiAgICByZXR1cm4gZGVjb3JhdG9ycz8uYXJndW1lbnRzPy5iaW5kaW5nUHJvcGVydHlOYW1lXG4gICAgICA/IGRlY29yYXRvcnMuYXJndW1lbnRzLmJpbmRpbmdQcm9wZXJ0eU5hbWUucmVwbGFjZSgvKFxcJ3xcXFwiKS9nLCAnJylcbiAgICAgIDogcHJvcGVydHkubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFZhbHVlKFxuICAgIGNoaWxkOiBUeXBlRG9jRW50cnlDaGlsZCxcbiAgICB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGFncy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiB0YWdzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyBUeXBlRG9jIHZlcnNpb24gMC4yMC54IHN0b3BwZWQgYXV0by1nZW5lcmF0aW5nIGluaXRpYWxpemVycyBmb3IgdGhlIGRlZmF1bHQgdmFsdWVcbiAgICAvLyAoYW5kIHJlcGxhY2VkIHRoZW0gd2l0aCBcIi4uLlwiKSBkdWUgdG8gdGhlIGNvbXBsaWNhdGVkIGxvZ2ljIGl0IHJlcXVpcmVkLlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL1R5cGVTdHJvbmcvdHlwZWRvYy9pc3N1ZXMvMTU1MlxuICAgIGlmIChjaGlsZC5kZWZhdWx0VmFsdWUgPT09ICcuLi4nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkLmRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QW5jaG9ySWQoZW50cnk6IFR5cGVEb2NFbnRyeSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVudHJ5LmFuY2hvcklkIHx8XG4gICAgICB0aGlzLnR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyPy5hbmNob3JJZHNbZW50cnkubmFtZV0gfHxcbiAgICAgICcnXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,2 +1,34 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlZG9jLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NDb21tZW50IHtcbiAgc3VtbWFyeT86IHsga2luZDogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdO1xuXG4gIGJsb2NrVGFncz86IHtcbiAgICBwYXJhbT86IHN0cmluZztcbiAgICBjb250ZW50PzogeyBraW5kOiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9W107XG4gICAgdGFnOlxuICAgICAgfCAnQGRlZmF1bHQnXG4gICAgICB8ICdAZGVmYXVsdFZhbHVlJ1xuICAgICAgfCAnQGRlcHJlY2F0ZWQnXG4gICAgICB8ICdAZXhhbXBsZSdcbiAgICAgIHwgJ0BwYXJhbSdcbiAgICAgIHwgJ0ByZXF1aXJlZCc7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jU291cmNlIHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jU2lnbmF0dXJlIHtcbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGtpbmRTdHJpbmc/OiAnQ2FsbCBzaWduYXR1cmUnIHwgJ0NvbnN0cnVjdG9yIHNpZ25hdHVyZScgfCAnSW5kZXggc2lnbmF0dXJlJztcblxuICBuYW1lOiBzdHJpbmc7XG5cbiAgcGFyYW1ldGVycz86IFR5cGVEb2NQYXJhbWV0ZXJbXTtcblxuICByZXR1cm5UeXBlPzogVHlwZURvY1R5cGU7XG5cbiAgdHlwZT86IFR5cGVEb2NUeXBlO1xuXG4gIHR5cGVQYXJhbWV0ZXI/OiBUeXBlRG9jVHlwZVBhcmFtZXRlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NUeXBlUGFyYW1ldGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBraW5kU3RyaW5nOiAnVHlwZSBwYXJhbWV0ZXInO1xuICB0eXBlPzogVHlwZURvY1R5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1R5cGUge1xuICBjb25zdHJhaW50Pzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcblxuICBjYWxsU2lnbmF0dXJlPzogVHlwZURvY1NpZ25hdHVyZTtcblxuICBkZWNsYXJhdGlvbj86IHtcbiAgICBjaGlsZHJlbj86IFR5cGVEb2NFbnRyeUNoaWxkW107XG4gICAgaW5kZXhTaWduYXR1cmU/OiBUeXBlRG9jU2lnbmF0dXJlO1xuICAgIHNpZ25hdHVyZXM/OiBUeXBlRG9jU2lnbmF0dXJlW107XG4gIH07XG5cbiAgZWxlbWVudFR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICBuYW1lPzogc3RyaW5nO1xuXG4gIG9wZXJhdG9yPzogJ2tleW9mJztcblxuICB0YXJnZXQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuXG4gIHR5cGU/OlxuICAgIHwgJ2FycmF5J1xuICAgIHwgJ2ludHJpbnNpYydcbiAgICB8ICdsaXRlcmFsJ1xuICAgIHwgJ3JlZmVyZW5jZSdcbiAgICB8ICdyZWZsZWN0aW9uJ1xuICAgIHwgJ3R5cGVQYXJhbWV0ZXInXG4gICAgfCAndHlwZU9wZXJhdG9yJ1xuICAgIHwgJ3VuaW9uJ1xuICAgIHwgJ3Vua25vd24nO1xuXG4gIHR5cGVBcmd1bWVudHM/OiBUeXBlRG9jVHlwZVtdO1xuXG4gIHR5cGVzPzogVHlwZURvY1R5cGVbXTtcblxuICB2YWx1ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jUGFyYW1ldGVyIHtcbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICBraW5kU3RyaW5nOiAnUGFyYW1ldGVyJztcblxuICBuYW1lOiBzdHJpbmc7XG5cbiAgdHlwZTogVHlwZURvY1R5cGU7XG5cbiAgZmxhZ3M/OiB7XG4gICAgaXNPcHRpb25hbD86IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY0VudHJ5Q2hpbGQge1xuICBjb21tZW50PzogVHlwZURvY0NvbW1lbnQ7XG5cbiAgZGVjb3JhdG9ycz86IHtcbiAgICBhcmd1bWVudHM/OiB7XG4gICAgICBiaW5kaW5nUHJvcGVydHlOYW1lPzogc3RyaW5nO1xuICAgIH07XG4gICAgbmFtZTogJ0lucHV0JyB8ICdPdXRwdXQnO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9W107XG5cbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuXG4gIGZsYWdzPzoge1xuICAgIGlzT3B0aW9uYWw/OiBib29sZWFuO1xuICAgIGlzU3RhdGljPzogYm9vbGVhbjtcbiAgfTtcblxuICBraW5kU3RyaW5nPzpcbiAgICB8ICdBY2Nlc3NvcidcbiAgICB8ICdDYWxsIHNpZ25hdHVyZSdcbiAgICB8ICdDb25zdHJ1Y3RvcidcbiAgICB8ICdDb25zdHJ1Y3RvciBzaWduYXR1cmUnXG4gICAgfCAnSW5kZXggc2lnbmF0dXJlJ1xuICAgIHwgJ0VudW1lcmF0aW9uIG1lbWJlcidcbiAgICB8ICdQYXJhbWV0ZXInXG4gICAgfCAnUHJvcGVydHknXG4gICAgfCAnTWV0aG9kJztcblxuICBnZXRTaWduYXR1cmU/OiB7XG4gICAgY29tbWVudDogVHlwZURvY0NvbW1lbnQ7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9O1xuXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgc2V0U2lnbmF0dXJlPzoge1xuICAgIGNvbW1lbnQ6IFR5cGVEb2NDb21tZW50O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXJhbWV0ZXJzPzogVHlwZURvY1BhcmFtZXRlcltdO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9O1xuXG4gIHNpZ25hdHVyZXM/OiBUeXBlRG9jU2lnbmF0dXJlW107XG5cbiAgc291cmNlcz86IFR5cGVEb2NTb3VyY2VbXTtcblxuICB0eXBlPzogVHlwZURvY1R5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY0VudHJ5IHtcbiAgYW5jaG9ySWQ/OiBzdHJpbmc7XG5cbiAgY2hpbGRyZW4/OiBUeXBlRG9jRW50cnlDaGlsZFtdO1xuXG4gIGNvbW1lbnQ/OiBUeXBlRG9jQ29tbWVudDtcblxuICBkZWNvcmF0b3JzPzoge1xuICAgIGFyZ3VtZW50cz86IHtcbiAgICAgIG9iaj86IHN0cmluZztcbiAgICB9O1xuICAgIG5hbWU6ICdDb21wb25lbnQnIHwgJ0RpcmVjdGl2ZScgfCAnSW5qZWN0YWJsZScgfCAnTmdNb2R1bGUnIHwgJ1BpcGUnO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9W107XG5cbiAga2luZFN0cmluZz86ICdDbGFzcycgfCAnRW51bWVyYXRpb24nIHwgJ0ludGVyZmFjZScgfCAnVHlwZSBhbGlhcyc7XG5cbiAgaW5kZXhTaWduYXR1cmU/OiBUeXBlRG9jU2lnbmF0dXJlO1xuXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgc291cmNlcz86IFR5cGVEb2NTb3VyY2VbXTtcblxuICB0eXBlPzogVHlwZURvY1R5cGU7XG5cbiAgdHlwZVBhcmFtZXRlcj86IFR5cGVEb2NUeXBlUGFyYW1ldGVyW107XG59XG4iXX0=
1
+ /**
2
+ * This enum comes from:
3
+ * https://github.com/TypeStrong/typedoc/blob/v0.24.8/src/lib/models/reflections/kind.ts
4
+ * The enum is up to date as of version `0.24.8`.
5
+ */
6
+ export var TypeDocKind;
7
+ (function (TypeDocKind) {
8
+ TypeDocKind[TypeDocKind["Project"] = 1] = "Project";
9
+ TypeDocKind[TypeDocKind["Module"] = 2] = "Module";
10
+ TypeDocKind[TypeDocKind["Namespace"] = 4] = "Namespace";
11
+ TypeDocKind[TypeDocKind["Enum"] = 8] = "Enum";
12
+ TypeDocKind[TypeDocKind["EnumMember"] = 16] = "EnumMember";
13
+ TypeDocKind[TypeDocKind["Variable"] = 32] = "Variable";
14
+ TypeDocKind[TypeDocKind["Function"] = 64] = "Function";
15
+ TypeDocKind[TypeDocKind["Class"] = 128] = "Class";
16
+ TypeDocKind[TypeDocKind["Interface"] = 256] = "Interface";
17
+ TypeDocKind[TypeDocKind["Constructor"] = 512] = "Constructor";
18
+ TypeDocKind[TypeDocKind["Property"] = 1024] = "Property";
19
+ TypeDocKind[TypeDocKind["Method"] = 2048] = "Method";
20
+ TypeDocKind[TypeDocKind["CallSignature"] = 4096] = "CallSignature";
21
+ TypeDocKind[TypeDocKind["IndexSignature"] = 8192] = "IndexSignature";
22
+ TypeDocKind[TypeDocKind["ConstructorSignature"] = 16384] = "ConstructorSignature";
23
+ TypeDocKind[TypeDocKind["Parameter"] = 32768] = "Parameter";
24
+ TypeDocKind[TypeDocKind["TypeLiteral"] = 65536] = "TypeLiteral";
25
+ TypeDocKind[TypeDocKind["TypeParameter"] = 131072] = "TypeParameter";
26
+ TypeDocKind[TypeDocKind["Accessor"] = 262144] = "Accessor";
27
+ TypeDocKind[TypeDocKind["GetSignature"] = 524288] = "GetSignature";
28
+ TypeDocKind[TypeDocKind["SetSignature"] = 1048576] = "SetSignature";
29
+ /** @deprecated will be removed in v0.25, not used */
30
+ TypeDocKind[TypeDocKind["ObjectLiteral"] = 2097152] = "ObjectLiteral";
31
+ TypeDocKind[TypeDocKind["TypeAlias"] = 4194304] = "TypeAlias";
32
+ TypeDocKind[TypeDocKind["Reference"] = 8388608] = "Reference";
33
+ })(TypeDocKind || (TypeDocKind = {}));
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlZG9jLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlMQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksV0EwQlg7QUExQkQsV0FBWSxXQUFXO0lBQ3JCLG1EQUFhLENBQUE7SUFDYixpREFBWSxDQUFBO0lBQ1osdURBQWUsQ0FBQTtJQUNmLDZDQUFVLENBQUE7SUFDViwwREFBaUIsQ0FBQTtJQUNqQixzREFBZSxDQUFBO0lBQ2Ysc0RBQWUsQ0FBQTtJQUNmLGlEQUFZLENBQUE7SUFDWix5REFBaUIsQ0FBQTtJQUNqQiw2REFBbUIsQ0FBQTtJQUNuQix3REFBZ0IsQ0FBQTtJQUNoQixvREFBYyxDQUFBO0lBQ2Qsa0VBQXNCLENBQUE7SUFDdEIsb0VBQXVCLENBQUE7SUFDdkIsaUZBQTZCLENBQUE7SUFDN0IsMkRBQWtCLENBQUE7SUFDbEIsK0RBQXFCLENBQUE7SUFDckIsb0VBQXVCLENBQUE7SUFDdkIsMERBQWtCLENBQUE7SUFDbEIsa0VBQXNCLENBQUE7SUFDdEIsbUVBQXVCLENBQUE7SUFDdkIscURBQXFEO0lBQ3JELHFFQUF3QixDQUFBO0lBQ3hCLDZEQUFvQixDQUFBO0lBQ3BCLDZEQUFvQixDQUFBO0FBQ3RCLENBQUMsRUExQlcsV0FBVyxLQUFYLFdBQVcsUUEwQnRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jQ29tbWVudCB7XG4gIHN1bW1hcnk/OiB7IGtpbmQ6IHN0cmluZzsgdGV4dDogc3RyaW5nIH1bXTtcblxuICBibG9ja1RhZ3M/OiB7XG4gICAgcGFyYW0/OiBzdHJpbmc7XG4gICAgY29udGVudD86IHsga2luZDogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdO1xuICAgIHRhZzpcbiAgICAgIHwgJ0BkZWZhdWx0J1xuICAgICAgfCAnQGRlZmF1bHRWYWx1ZSdcbiAgICAgIHwgJ0BkZXByZWNhdGVkJ1xuICAgICAgfCAnQGV4YW1wbGUnXG4gICAgICB8ICdAcGFyYW0nXG4gICAgICB8ICdAcmVxdWlyZWQnO1xuICB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1NvdXJjZSB7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1NpZ25hdHVyZSB7XG4gIGNvbW1lbnQ/OiBUeXBlRG9jQ29tbWVudDtcblxuICBraW5kPzpcbiAgICB8IFR5cGVEb2NLaW5kLkNhbGxTaWduYXR1cmVcbiAgICB8IFR5cGVEb2NLaW5kLkNvbnN0cnVjdG9yU2lnbmF0dXJlXG4gICAgfCBUeXBlRG9jS2luZC5JbmRleFNpZ25hdHVyZTtcblxuICBuYW1lOiBzdHJpbmc7XG5cbiAgcGFyYW1ldGVycz86IFR5cGVEb2NQYXJhbWV0ZXJbXTtcblxuICByZXR1cm5UeXBlPzogVHlwZURvY1R5cGU7XG5cbiAgdHlwZT86IFR5cGVEb2NUeXBlO1xuXG4gIHR5cGVQYXJhbWV0ZXI/OiBUeXBlRG9jVHlwZVBhcmFtZXRlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NUeXBlUGFyYW1ldGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBraW5kOiBUeXBlRG9jS2luZC5UeXBlUGFyYW1ldGVyO1xuICB0eXBlPzogVHlwZURvY1R5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1R5cGUge1xuICBjb25zdHJhaW50Pzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcblxuICBjYWxsU2lnbmF0dXJlPzogVHlwZURvY1NpZ25hdHVyZTtcblxuICBkZWNsYXJhdGlvbj86IHtcbiAgICBjaGlsZHJlbj86IFR5cGVEb2NFbnRyeUNoaWxkW107XG4gICAgaW5kZXhTaWduYXR1cmU/OiBUeXBlRG9jU2lnbmF0dXJlO1xuICAgIHNpZ25hdHVyZXM/OiBUeXBlRG9jU2lnbmF0dXJlW107XG4gIH07XG5cbiAgZWxlbWVudFR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICBuYW1lPzogc3RyaW5nO1xuXG4gIG9wZXJhdG9yPzogJ2tleW9mJztcblxuICB0YXJnZXQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuXG4gIHR5cGU/OlxuICAgIHwgJ2FycmF5J1xuICAgIHwgJ2ludHJpbnNpYydcbiAgICB8ICdsaXRlcmFsJ1xuICAgIHwgJ3JlZmVyZW5jZSdcbiAgICB8ICdyZWZsZWN0aW9uJ1xuICAgIHwgJ3R5cGVQYXJhbWV0ZXInXG4gICAgfCAndHlwZU9wZXJhdG9yJ1xuICAgIHwgJ3VuaW9uJ1xuICAgIHwgJ3Vua25vd24nO1xuXG4gIHR5cGVBcmd1bWVudHM/OiBUeXBlRG9jVHlwZVtdO1xuXG4gIHR5cGVzPzogVHlwZURvY1R5cGVbXTtcblxuICB2YWx1ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jUGFyYW1ldGVyIHtcbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICBraW5kOiBUeXBlRG9jS2luZC5QYXJhbWV0ZXI7XG5cbiAgbmFtZTogc3RyaW5nO1xuXG4gIHR5cGU6IFR5cGVEb2NUeXBlO1xuXG4gIGZsYWdzPzoge1xuICAgIGlzT3B0aW9uYWw/OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NFbnRyeUNoaWxkIHtcbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlY29yYXRvcnM/OiB7XG4gICAgYXJndW1lbnRzPzoge1xuICAgICAgYmluZGluZ1Byb3BlcnR5TmFtZT86IHN0cmluZztcbiAgICB9O1xuICAgIG5hbWU6ICdJbnB1dCcgfCAnT3V0cHV0JztcbiAgICB0eXBlOiBUeXBlRG9jVHlwZTtcbiAgfVtdO1xuXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICBmbGFncz86IHtcbiAgICBpc09wdGlvbmFsPzogYm9vbGVhbjtcbiAgICBpc1N0YXRpYz86IGJvb2xlYW47XG4gIH07XG5cbiAga2luZD86XG4gICAgfCBUeXBlRG9jS2luZC5BY2Nlc3NvclxuICAgIHwgVHlwZURvY0tpbmQuQ2FsbFNpZ25hdHVyZVxuICAgIHwgVHlwZURvY0tpbmQuQ29uc3RydWN0b3JcbiAgICB8IFR5cGVEb2NLaW5kLkNvbnN0cnVjdG9yU2lnbmF0dXJlXG4gICAgfCBUeXBlRG9jS2luZC5JbmRleFNpZ25hdHVyZVxuICAgIHwgVHlwZURvY0tpbmQuRW51bU1lbWJlclxuICAgIHwgVHlwZURvY0tpbmQuUGFyYW1ldGVyXG4gICAgfCBUeXBlRG9jS2luZC5Qcm9wZXJ0eVxuICAgIHwgVHlwZURvY0tpbmQuTWV0aG9kO1xuXG4gIGdldFNpZ25hdHVyZT86IHtcbiAgICBjb21tZW50OiBUeXBlRG9jQ29tbWVudDtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH07XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBzZXRTaWduYXR1cmU/OiB7XG4gICAgY29tbWVudDogVHlwZURvY0NvbW1lbnQ7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM/OiBUeXBlRG9jUGFyYW1ldGVyW107XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH07XG5cbiAgc2lnbmF0dXJlcz86IFR5cGVEb2NTaWduYXR1cmVbXTtcblxuICBzb3VyY2VzPzogVHlwZURvY1NvdXJjZVtdO1xuXG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jRW50cnkge1xuICBhbmNob3JJZD86IHN0cmluZztcblxuICBjaGlsZHJlbj86IFR5cGVEb2NFbnRyeUNoaWxkW107XG5cbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlY29yYXRvcnM/OiB7XG4gICAgYXJndW1lbnRzPzoge1xuICAgICAgb2JqPzogc3RyaW5nO1xuICAgIH07XG4gICAgbmFtZTogJ0NvbXBvbmVudCcgfCAnRGlyZWN0aXZlJyB8ICdJbmplY3RhYmxlJyB8ICdOZ01vZHVsZScgfCAnUGlwZSc7XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH1bXTtcblxuICBraW5kPzpcbiAgICB8IFR5cGVEb2NLaW5kLkNsYXNzXG4gICAgfCBUeXBlRG9jS2luZC5FbnVtXG4gICAgfCBUeXBlRG9jS2luZC5JbnRlcmZhY2VcbiAgICB8IFR5cGVEb2NLaW5kLlR5cGVBbGlhcztcblxuICBpbmRleFNpZ25hdHVyZT86IFR5cGVEb2NTaWduYXR1cmU7XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBzb3VyY2VzPzogVHlwZURvY1NvdXJjZVtdO1xuXG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICB0eXBlUGFyYW1ldGVyPzogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXTtcbn1cblxuLyoqXG4gKiBUaGlzIGVudW0gY29tZXMgZnJvbTpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9UeXBlU3Ryb25nL3R5cGVkb2MvYmxvYi92MC4yNC44L3NyYy9saWIvbW9kZWxzL3JlZmxlY3Rpb25zL2tpbmQudHNcbiAqIFRoZSBlbnVtIGlzIHVwIHRvIGRhdGUgYXMgb2YgdmVyc2lvbiBgMC4yNC44YC5cbiAqL1xuZXhwb3J0IGVudW0gVHlwZURvY0tpbmQge1xuICBQcm9qZWN0ID0gMHgxLFxuICBNb2R1bGUgPSAweDIsXG4gIE5hbWVzcGFjZSA9IDB4NCxcbiAgRW51bSA9IDB4OCxcbiAgRW51bU1lbWJlciA9IDB4MTAsXG4gIFZhcmlhYmxlID0gMHgyMCxcbiAgRnVuY3Rpb24gPSAweDQwLFxuICBDbGFzcyA9IDB4ODAsXG4gIEludGVyZmFjZSA9IDB4MTAwLFxuICBDb25zdHJ1Y3RvciA9IDB4MjAwLFxuICBQcm9wZXJ0eSA9IDB4NDAwLFxuICBNZXRob2QgPSAweDgwMCxcbiAgQ2FsbFNpZ25hdHVyZSA9IDB4MTAwMCxcbiAgSW5kZXhTaWduYXR1cmUgPSAweDIwMDAsXG4gIENvbnN0cnVjdG9yU2lnbmF0dXJlID0gMHg0MDAwLFxuICBQYXJhbWV0ZXIgPSAweDgwMDAsXG4gIFR5cGVMaXRlcmFsID0gMHgxMDAwMCxcbiAgVHlwZVBhcmFtZXRlciA9IDB4MjAwMDAsXG4gIEFjY2Vzc29yID0gMHg0MDAwMCxcbiAgR2V0U2lnbmF0dXJlID0gMHg4MDAwMCxcbiAgU2V0U2lnbmF0dXJlID0gMHgxMDAwMDAsXG4gIC8qKiBAZGVwcmVjYXRlZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjAuMjUsIG5vdCB1c2VkICovXG4gIE9iamVjdExpdGVyYWwgPSAweDIwMDAwMCxcbiAgVHlwZUFsaWFzID0gMHg0MDAwMDAsXG4gIFJlZmVyZW5jZSA9IDB4ODAwMDAwLFxufVxuIl19