@vendasta/ai-assistants 0.54.0 → 0.56.0

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,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0YW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2FpX2Fzc2lzdGFudHNfc2RrL3NyYy9saWIvX2ludGVybmFsL2ludGVyZmFjZXMvYXNzaXN0YW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBJbnRlcmZhY2VzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgeyBHb2FsSW50ZXJmYWNlIH0gZnJvbSAnLi9nb2FsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZVBhaXJJbnRlcmZhY2UgfSBmcm9tICcuL2NvbW1vbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTW9kZWxJbnRlcmZhY2UgfSBmcm9tICcuL21vZGVsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOYW1lc3BhY2VJbnRlcmZhY2UgfSBmcm9tICcuL25hbWVzcGFjZS5pbnRlcmZhY2UnO1xuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzaXN0YW50SW50ZXJmYWNlIHtcbiAgICBpZD86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBOYW1lc3BhY2VJbnRlcmZhY2U7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB0eXBlPzogZS5Bc3Npc3RhbnRUeXBlO1xuICAgIGF2YXRhclVybD86IHN0cmluZztcbiAgICBjb25maWc/OiBDb25maWdJbnRlcmZhY2U7XG4gICAgY29uZmlndXJhYmxlR29hbHM/OiBDb25maWd1cmFibGVHb2FsSW50ZXJmYWNlW107XG4gICAgdXNlcklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2lzdGFudEtleUludGVyZmFjZSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlPzogTmFtZXNwYWNlSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0ludGVyZmFjZSB7XG4gICAgaW5ib3hDb25maWc/OiBDb25maWdJbmJveENvbmZpZ0ludGVyZmFjZTtcbiAgICB2b2ljZUNvbmZpZz86IENvbmZpZ1ZvaWNlQ29uZmlnSW50ZXJmYWNlO1xuICAgIG1vZGVscz86IE1vZGVsSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhYmxlR29hbEludGVyZmFjZSB7XG4gICAgZ29hbD86IEdvYWxJbnRlcmZhY2U7XG4gICAgY29uZmlndXJhdGlvbj86IEtleVZhbHVlUGFpckludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZXBncmFtQ29uZmlnSW50ZXJmYWNlIHtcbiAgICB2b2ljZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGV2ZW5MYWJzQ29uZmlnSW50ZXJmYWNlIHtcbiAgICB2b2ljZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdJbmJveENvbmZpZ0ludGVyZmFjZSB7XG4gICAgbGVhZENhcHR1cmVFbmFibGVkPzogYm9vbGVhbjtcbiAgICBhZGRpdGlvbmFsSW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsQ29uZmlnSW50ZXJmYWNlIHtcbiAgICBvcGVuYWlSZWFsdGltZUNvbmZpZz86IE9wZW5BSVJlYWx0aW1lQ29uZmlnSW50ZXJmYWNlO1xuICAgIGRlZXBncmFtQ29uZmlnPzogRGVlcGdyYW1Db25maWdJbnRlcmZhY2U7XG4gICAgZWxldmVuTGFic0NvbmZpZz86IEVsZXZlbkxhYnNDb25maWdJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJUmVhbHRpbWVDb25maWdJbnRlcmZhY2Uge1xuICAgIHZvaWNlPzogc3RyaW5nO1xuICAgIHR1cm5EZXRlY3Rpb24/OiBPcGVuQUlSZWFsdGltZUNvbmZpZ1R1cm5EZXRlY3Rpb25JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVWYXJpYWJsZUludGVyZmFjZSB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVJlYWx0aW1lQ29uZmlnVHVybkRldGVjdGlvbkludGVyZmFjZSB7XG4gICAgdGhyZXNob2xkPzogbnVtYmVyO1xuICAgIHByZWZpeFBhZGRpbmc/OiBudW1iZXI7XG4gICAgc2lsZW5jZUR1cmF0aW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ1ZvaWNlQ29uZmlnSW50ZXJmYWNlIHtcbiAgICB2ZW5kb3JNb2RlbD86IGUuVmVuZG9yTW9kZWw7XG4gICAgbW9kZWxDb25maWc/OiBNb2RlbENvbmZpZ0ludGVyZmFjZTtcbn1cblxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0YW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2FpX2Fzc2lzdGFudHNfc2RrL3NyYy9saWIvX2ludGVybmFsL2ludGVyZmFjZXMvYXNzaXN0YW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBJbnRlcmZhY2VzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgeyBHb2FsSW50ZXJmYWNlIH0gZnJvbSAnLi9nb2FsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZVBhaXJJbnRlcmZhY2UgfSBmcm9tICcuL2NvbW1vbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTW9kZWxJbnRlcmZhY2UgfSBmcm9tICcuL21vZGVsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOYW1lc3BhY2VJbnRlcmZhY2UgfSBmcm9tICcuL25hbWVzcGFjZS5pbnRlcmZhY2UnO1xuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzaXN0YW50SW50ZXJmYWNlIHtcbiAgICBpZD86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBOYW1lc3BhY2VJbnRlcmZhY2U7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB0eXBlPzogZS5Bc3Npc3RhbnRUeXBlO1xuICAgIGF2YXRhclVybD86IHN0cmluZztcbiAgICBjb25maWc/OiBDb25maWdJbnRlcmZhY2U7XG4gICAgY29uZmlndXJhYmxlR29hbHM/OiBDb25maWd1cmFibGVHb2FsSW50ZXJmYWNlW107XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIHJvbGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzaXN0YW50S2V5SW50ZXJmYWNlIHtcbiAgICBpZD86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBOYW1lc3BhY2VJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnSW50ZXJmYWNlIHtcbiAgICBpbmJveENvbmZpZz86IENvbmZpZ0luYm94Q29uZmlnSW50ZXJmYWNlO1xuICAgIHZvaWNlQ29uZmlnPzogQ29uZmlnVm9pY2VDb25maWdJbnRlcmZhY2U7XG4gICAgbW9kZWxzPzogTW9kZWxJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmFibGVHb2FsSW50ZXJmYWNlIHtcbiAgICBnb2FsPzogR29hbEludGVyZmFjZTtcbiAgICBjb25maWd1cmF0aW9uPzogS2V5VmFsdWVQYWlySW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVlcGdyYW1Db25maWdJbnRlcmZhY2Uge1xuICAgIHZvaWNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVsZXZlbkxhYnNDb25maWdJbnRlcmZhY2Uge1xuICAgIHZvaWNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0luYm94Q29uZmlnSW50ZXJmYWNlIHtcbiAgICBsZWFkQ2FwdHVyZUVuYWJsZWQ/OiBib29sZWFuO1xuICAgIGFkZGl0aW9uYWxJbnN0cnVjdGlvbnM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxDb25maWdJbnRlcmZhY2Uge1xuICAgIG9wZW5haVJlYWx0aW1lQ29uZmlnPzogT3BlbkFJUmVhbHRpbWVDb25maWdJbnRlcmZhY2U7XG4gICAgZGVlcGdyYW1Db25maWc/OiBEZWVwZ3JhbUNvbmZpZ0ludGVyZmFjZTtcbiAgICBlbGV2ZW5MYWJzQ29uZmlnPzogRWxldmVuTGFic0NvbmZpZ0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlSZWFsdGltZUNvbmZpZ0ludGVyZmFjZSB7XG4gICAgdm9pY2U/OiBzdHJpbmc7XG4gICAgdHVybkRldGVjdGlvbj86IE9wZW5BSVJlYWx0aW1lQ29uZmlnVHVybkRldGVjdGlvbkludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVZhcmlhYmxlSW50ZXJmYWNlIHtcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJUmVhbHRpbWVDb25maWdUdXJuRGV0ZWN0aW9uSW50ZXJmYWNlIHtcbiAgICB0aHJlc2hvbGQ/OiBudW1iZXI7XG4gICAgcHJlZml4UGFkZGluZz86IG51bWJlcjtcbiAgICBzaWxlbmNlRHVyYXRpb24/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnVm9pY2VDb25maWdJbnRlcmZhY2Uge1xuICAgIHZlbmRvck1vZGVsPzogZS5WZW5kb3JNb2RlbDtcbiAgICBtb2RlbENvbmZpZz86IE1vZGVsQ29uZmlnSW50ZXJmYWNlO1xufVxuXG4iXX0=
@@ -59,6 +59,12 @@ export class Assistant {
59
59
  if (typeof this.userId !== 'undefined') {
60
60
  toReturn['userId'] = this.userId;
61
61
  }
62
+ if (typeof this.role !== 'undefined') {
63
+ toReturn['role'] = this.role;
64
+ }
65
+ if (typeof this.description !== 'undefined') {
66
+ toReturn['description'] = this.description;
67
+ }
62
68
  return toReturn;
63
69
  }
64
70
  }
@@ -357,4 +363,4 @@ export class ConfigVoiceConfig {
357
363
  return toReturn;
358
364
  }
359
365
  }
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0YW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYWlfYXNzaXN0YW50c19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9hc3Npc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sU0FBUztJQVVsQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN4QixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQzFFLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQWtCLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQUM7UUFDM0YsSUFB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QUksQ0FBQyxXQUFXLENBQUM7U0FBQztRQUNqTSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBHb2FsIH0gZnJvbSAnLi9nb2FsJztcbmltcG9ydCB7IEtleVZhbHVlUGFpciB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSAnLi9tb2RlbCc7XG5pbXBvcnQgeyBOYW1lc3BhY2UgfSBmcm9tICcuL25hbWVzcGFjZSc7XG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBBc3Npc3RhbnQgaW1wbGVtZW50cyBpLkFzc2lzdGFudEludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IE5hbWVzcGFjZTtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogZS5Bc3Npc3RhbnRUeXBlO1xuICAgIGF2YXRhclVybDogc3RyaW5nO1xuICAgIGNvbmZpZzogQ29uZmlnO1xuICAgIGNvbmZpZ3VyYWJsZUdvYWxzOiBDb25maWd1cmFibGVHb2FsW107XG4gICAgdXNlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBc3Npc3RhbnQge1xuICAgICAgICBsZXQgbSA9IG5ldyBBc3Npc3RhbnQoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubmFtZXNwYWNlKSB7bS5uYW1lc3BhY2UgPSBOYW1lc3BhY2UuZnJvbVByb3RvKHByb3RvLm5hbWVzcGFjZSk7fVxuICAgICAgICBpZiAocHJvdG8udHlwZSkge20udHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuQXNzaXN0YW50VHlwZT4oZS5Bc3Npc3RhbnRUeXBlLCBwcm90by50eXBlKTt9XG4gICAgICAgIGlmIChwcm90by5jb25maWcpIHttLmNvbmZpZyA9IENvbmZpZy5mcm9tUHJvdG8ocHJvdG8uY29uZmlnKTt9XG4gICAgICAgIGlmIChwcm90by5jb25maWd1cmFibGVHb2Fscykge20uY29uZmlndXJhYmxlR29hbHMgPSBwcm90by5jb25maWd1cmFibGVHb2Fscy5tYXAoQ29uZmlndXJhYmxlR29hbC5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Bc3Npc3RhbnRJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZXNwYWNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5hbWVzcGFjZSAhPT0gbnVsbCkge3RvUmV0dXJuWyduYW1lc3BhY2UnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubmFtZXNwYWNlID8gKHRoaXMubmFtZXNwYWNlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm5hbWVzcGFjZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHlwZSddID0gdGhpcy50eXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF2YXRhclVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYXZhdGFyVXJsJ10gPSB0aGlzLmF2YXRhclVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY29uZmlnICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvbmZpZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jb25maWcgPyAodGhpcy5jb25maWcgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY29uZmlnO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZ3VyYWJsZUdvYWxzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNvbmZpZ3VyYWJsZUdvYWxzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvbmZpZ3VyYWJsZUdvYWxzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNvbmZpZ3VyYWJsZUdvYWxzID8gKHRoaXMuY29uZmlndXJhYmxlR29hbHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY29uZmlndXJhYmxlR29hbHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXNlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1c2VySWQnXSA9IHRoaXMudXNlcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFzc2lzdGFudEtleSBpbXBsZW1lbnRzIGkuQXNzaXN0YW50S2V5SW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogTmFtZXNwYWNlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQXNzaXN0YW50S2V5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXNzaXN0YW50S2V5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm5hbWVzcGFjZSkge20ubmFtZXNwYWNlID0gTmFtZXNwYWNlLmZyb21Qcm90byhwcm90by5uYW1lc3BhY2UpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Bc3Npc3RhbnRLZXlJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZXNwYWNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5hbWVzcGFjZSAhPT0gbnVsbCkge3RvUmV0dXJuWyduYW1lc3BhY2UnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubmFtZXNwYWNlID8gKHRoaXMubmFtZXNwYWNlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm5hbWVzcGFjZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWcgaW1wbGVtZW50cyBpLkNvbmZpZ0ludGVyZmFjZSB7XG4gICAgaW5ib3hDb25maWc6IENvbmZpZ0luYm94Q29uZmlnO1xuICAgIHZvaWNlQ29uZmlnOiBDb25maWdWb2ljZUNvbmZpZztcbiAgICBtb2RlbHM6IE1vZGVsW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDb25maWcge1xuICAgICAgICBsZXQgbSA9IG5ldyBDb25maWcoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaW5ib3hDb25maWcpIHttLmluYm94Q29uZmlnID0gQ29uZmlnSW5ib3hDb25maWcuZnJvbVByb3RvKHByb3RvLmluYm94Q29uZmlnKTt9XG4gICAgICAgIGlmIChwcm90by52b2ljZUNvbmZpZykge20udm9pY2VDb25maWcgPSBDb25maWdWb2ljZUNvbmZpZy5mcm9tUHJvdG8ocHJvdG8udm9pY2VDb25maWcpO31cbiAgICAgICAgaWYgKHByb3RvLm1vZGVscykge20ubW9kZWxzID0gcHJvdG8ubW9kZWxzLm1hcChNb2RlbC5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Db25maWdJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbmJveENvbmZpZyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pbmJveENvbmZpZyAhPT0gbnVsbCkge3RvUmV0dXJuWydpbmJveENvbmZpZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbmJveENvbmZpZyA/ICh0aGlzLmluYm94Q29uZmlnIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmluYm94Q29uZmlnO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZvaWNlQ29uZmlnICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnZvaWNlQ29uZmlnICE9PSBudWxsKSB7dG9SZXR1cm5bJ3ZvaWNlQ29uZmlnJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnZvaWNlQ29uZmlnID8gKHRoaXMudm9pY2VDb25maWcgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudm9pY2VDb25maWc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubW9kZWxzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1vZGVscyAhPT0gbnVsbCkge3RvUmV0dXJuWydtb2RlbHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubW9kZWxzID8gKHRoaXMubW9kZWxzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1vZGVsczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmFibGVHb2FsIGltcGxlbWVudHMgaS5Db25maWd1cmFibGVHb2FsSW50ZXJmYWNlIHtcbiAgICBnb2FsOiBHb2FsO1xuICAgIGNvbmZpZ3VyYXRpb246IEtleVZhbHVlUGFpcltdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ29uZmlndXJhYmxlR29hbCB7XG4gICAgICAgIGxldCBtID0gbmV3IENvbmZpZ3VyYWJsZUdvYWwoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZ29hbCkge20uZ29hbCA9IEdvYWwuZnJvbVByb3RvKHByb3RvLmdvYWwpO31cbiAgICAgICAgaWYgKHByb3RvLmNvbmZpZ3VyYXRpb24pIHttLmNvbmZpZ3VyYXRpb24gPSBwcm90by5jb25maWd1cmF0aW9uLm1hcChLZXlWYWx1ZVBhaXIuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ29uZmlndXJhYmxlR29hbEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmdvYWwgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZ29hbCAhPT0gbnVsbCkge3RvUmV0dXJuWydnb2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmdvYWwgPyAodGhpcy5nb2FsIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmdvYWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb25maWd1cmF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvbmZpZ3VyYXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY29uZmlndXJhdGlvbiA/ICh0aGlzLmNvbmZpZ3VyYXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY29uZmlndXJhdGlvbjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWVwZ3JhbUNvbmZpZyBpbXBsZW1lbnRzIGkuRGVlcGdyYW1Db25maWdJbnRlcmZhY2Uge1xuICAgIHZvaWNlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWVwZ3JhbUNvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IERlZXBncmFtQ29uZmlnKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWVwZ3JhbUNvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZvaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2b2ljZSddID0gdGhpcy52b2ljZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbGV2ZW5MYWJzQ29uZmlnIGltcGxlbWVudHMgaS5FbGV2ZW5MYWJzQ29uZmlnSW50ZXJmYWNlIHtcbiAgICB2b2ljZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRWxldmVuTGFic0NvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IEVsZXZlbkxhYnNDb25maWcoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkVsZXZlbkxhYnNDb25maWdJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52b2ljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndm9pY2UnXSA9IHRoaXMudm9pY2U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlnSW5ib3hDb25maWcgaW1wbGVtZW50cyBpLkNvbmZpZ0luYm94Q29uZmlnSW50ZXJmYWNlIHtcbiAgICBsZWFkQ2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWRkaXRpb25hbEluc3RydWN0aW9uczogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ29uZmlnSW5ib3hDb25maWcge1xuICAgICAgICBsZXQgbSA9IG5ldyBDb25maWdJbmJveENvbmZpZygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ29uZmlnSW5ib3hDb25maWdJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sZWFkQ2FwdHVyZUVuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xlYWRDYXB0dXJlRW5hYmxlZCddID0gdGhpcy5sZWFkQ2FwdHVyZUVuYWJsZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWRkaXRpb25hbEluc3RydWN0aW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWRkaXRpb25hbEluc3RydWN0aW9ucyddID0gdGhpcy5hZGRpdGlvbmFsSW5zdHJ1Y3Rpb25zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsQ29uZmlnIGltcGxlbWVudHMgaS5Nb2RlbENvbmZpZ0ludGVyZmFjZSB7XG4gICAgb3BlbmFpUmVhbHRpbWVDb25maWc6IE9wZW5BSVJlYWx0aW1lQ29uZmlnO1xuICAgIGRlZXBncmFtQ29uZmlnOiBEZWVwZ3JhbUNvbmZpZztcbiAgICBlbGV2ZW5MYWJzQ29uZmlnOiBFbGV2ZW5MYWJzQ29uZmlnO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTW9kZWxDb25maWcge1xuICAgICAgICBsZXQgbSA9IG5ldyBNb2RlbENvbmZpZygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5vcGVuYWlSZWFsdGltZUNvbmZpZykge20ub3BlbmFpUmVhbHRpbWVDb25maWcgPSBPcGVuQUlSZWFsdGltZUNvbmZpZy5mcm9tUHJvdG8ocHJvdG8ub3BlbmFpUmVhbHRpbWVDb25maWcpO31cbiAgICAgICAgaWYgKHByb3RvLmRlZXBncmFtQ29uZmlnKSB7bS5kZWVwZ3JhbUNvbmZpZyA9IERlZXBncmFtQ29uZmlnLmZyb21Qcm90byhwcm90by5kZWVwZ3JhbUNvbmZpZyk7fVxuICAgICAgICBpZiAocHJvdG8uZWxldmVuTGFic0NvbmZpZykge20uZWxldmVuTGFic0NvbmZpZyA9IEVsZXZlbkxhYnNDb25maWcuZnJvbVByb3RvKHByb3RvLmVsZXZlbkxhYnNDb25maWcpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Nb2RlbENvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wZW5haVJlYWx0aW1lQ29uZmlnICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm9wZW5haVJlYWx0aW1lQ29uZmlnICE9PSBudWxsKSB7dG9SZXR1cm5bJ29wZW5haVJlYWx0aW1lQ29uZmlnJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm9wZW5haVJlYWx0aW1lQ29uZmlnID8gKHRoaXMub3BlbmFpUmVhbHRpbWVDb25maWcgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMub3BlbmFpUmVhbHRpbWVDb25maWc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVlcGdyYW1Db25maWcgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZGVlcGdyYW1Db25maWcgIT09IG51bGwpIHt0b1JldHVyblsnZGVlcGdyYW1Db25maWcnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZGVlcGdyYW1Db25maWcgPyAodGhpcy5kZWVwZ3JhbUNvbmZpZyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5kZWVwZ3JhbUNvbmZpZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbGV2ZW5MYWJzQ29uZmlnICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVsZXZlbkxhYnNDb25maWcgIT09IG51bGwpIHt0b1JldHVyblsnZWxldmVuTGFic0NvbmZpZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5lbGV2ZW5MYWJzQ29uZmlnID8gKHRoaXMuZWxldmVuTGFic0NvbmZpZyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lbGV2ZW5MYWJzQ29uZmlnO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9wZW5BSVJlYWx0aW1lQ29uZmlnIGltcGxlbWVudHMgaS5PcGVuQUlSZWFsdGltZUNvbmZpZ0ludGVyZmFjZSB7XG4gICAgdm9pY2U6IHN0cmluZztcbiAgICB0dXJuRGV0ZWN0aW9uOiBPcGVuQUlSZWFsdGltZUNvbmZpZ1R1cm5EZXRlY3Rpb247XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBPcGVuQUlSZWFsdGltZUNvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IE9wZW5BSVJlYWx0aW1lQ29uZmlnKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnR1cm5EZXRlY3Rpb24pIHttLnR1cm5EZXRlY3Rpb24gPSBPcGVuQUlSZWFsdGltZUNvbmZpZ1R1cm5EZXRlY3Rpb24uZnJvbVByb3RvKHByb3RvLnR1cm5EZXRlY3Rpb24pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5PcGVuQUlSZWFsdGltZUNvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZvaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2b2ljZSddID0gdGhpcy52b2ljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50dXJuRGV0ZWN0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnR1cm5EZXRlY3Rpb24gIT09IG51bGwpIHt0b1JldHVyblsndHVybkRldGVjdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50dXJuRGV0ZWN0aW9uID8gKHRoaXMudHVybkRldGVjdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50dXJuRGV0ZWN0aW9uO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlVmFyaWFibGUgaW1wbGVtZW50cyBpLlRlbXBsYXRlVmFyaWFibGVJbnRlcmZhY2Uge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRlbXBsYXRlVmFyaWFibGUge1xuICAgICAgICBsZXQgbSA9IG5ldyBUZW1wbGF0ZVZhcmlhYmxlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UZW1wbGF0ZVZhcmlhYmxlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydrZXknXSA9IHRoaXMua2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2YWx1ZSddID0gdGhpcy52YWx1ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3BlbkFJUmVhbHRpbWVDb25maWdUdXJuRGV0ZWN0aW9uIGltcGxlbWVudHMgaS5PcGVuQUlSZWFsdGltZUNvbmZpZ1R1cm5EZXRlY3Rpb25JbnRlcmZhY2Uge1xuICAgIHRocmVzaG9sZDogbnVtYmVyO1xuICAgIHByZWZpeFBhZGRpbmc6IG51bWJlcjtcbiAgICBzaWxlbmNlRHVyYXRpb246IG51bWJlcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IE9wZW5BSVJlYWx0aW1lQ29uZmlnVHVybkRldGVjdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IE9wZW5BSVJlYWx0aW1lQ29uZmlnVHVybkRldGVjdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuT3BlbkFJUmVhbHRpbWVDb25maWdUdXJuRGV0ZWN0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGhyZXNob2xkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aHJlc2hvbGQnXSA9IHRoaXMudGhyZXNob2xkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZWZpeFBhZGRpbmcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ByZWZpeFBhZGRpbmcnXSA9IHRoaXMucHJlZml4UGFkZGluZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaWxlbmNlRHVyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NpbGVuY2VEdXJhdGlvbiddID0gdGhpcy5zaWxlbmNlRHVyYXRpb247fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlnVm9pY2VDb25maWcgaW1wbGVtZW50cyBpLkNvbmZpZ1ZvaWNlQ29uZmlnSW50ZXJmYWNlIHtcbiAgICB2ZW5kb3JNb2RlbDogZS5WZW5kb3JNb2RlbDtcbiAgICBtb2RlbENvbmZpZzogTW9kZWxDb25maWc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDb25maWdWb2ljZUNvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IENvbmZpZ1ZvaWNlQ29uZmlnKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnZlbmRvck1vZGVsKSB7bS52ZW5kb3JNb2RlbCA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuVmVuZG9yTW9kZWw+KGUuVmVuZG9yTW9kZWwsIHByb3RvLnZlbmRvck1vZGVsKTt9XG4gICAgICAgIGlmIChwcm90by5tb2RlbENvbmZpZykge20ubW9kZWxDb25maWcgPSBNb2RlbENvbmZpZy5mcm9tUHJvdG8ocHJvdG8ubW9kZWxDb25maWcpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Db25maWdWb2ljZUNvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZlbmRvck1vZGVsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2ZW5kb3JNb2RlbCddID0gdGhpcy52ZW5kb3JNb2RlbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tb2RlbENvbmZpZyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tb2RlbENvbmZpZyAhPT0gbnVsbCkge3RvUmV0dXJuWydtb2RlbENvbmZpZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tb2RlbENvbmZpZyA/ICh0aGlzLm1vZGVsQ29uZmlnIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1vZGVsQ29uZmlnO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0YW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYWlfYXNzaXN0YW50c19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9hc3Npc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sU0FBUztJQVlsQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN4QixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQzFFLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQWtCLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQUM7UUFDM0YsSUFB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QUM7U0FBQztRQUMxRixJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxXQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQUM7UUFDak0sT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR29hbCB9IGZyb20gJy4vZ29hbCc7XG5pbXBvcnQgeyBLZXlWYWx1ZVBhaXIgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gJy4vbW9kZWwnO1xuaW1wb3J0IHsgTmFtZXNwYWNlIH0gZnJvbSAnLi9uYW1lc3BhY2UnO1xuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQXNzaXN0YW50IGltcGxlbWVudHMgaS5Bc3Npc3RhbnRJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlOiBOYW1lc3BhY2U7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IGUuQXNzaXN0YW50VHlwZTtcbiAgICBhdmF0YXJVcmw6IHN0cmluZztcbiAgICBjb25maWc6IENvbmZpZztcbiAgICBjb25maWd1cmFibGVHb2FsczogQ29uZmlndXJhYmxlR29hbFtdO1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIHJvbGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQXNzaXN0YW50IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXNzaXN0YW50KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm5hbWVzcGFjZSkge20ubmFtZXNwYWNlID0gTmFtZXNwYWNlLmZyb21Qcm90byhwcm90by5uYW1lc3BhY2UpO31cbiAgICAgICAgaWYgKHByb3RvLnR5cGUpIHttLnR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLkFzc2lzdGFudFR5cGU+KGUuQXNzaXN0YW50VHlwZSwgcHJvdG8udHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8uY29uZmlnKSB7bS5jb25maWcgPSBDb25maWcuZnJvbVByb3RvKHByb3RvLmNvbmZpZyk7fVxuICAgICAgICBpZiAocHJvdG8uY29uZmlndXJhYmxlR29hbHMpIHttLmNvbmZpZ3VyYWJsZUdvYWxzID0gcHJvdG8uY29uZmlndXJhYmxlR29hbHMubWFwKENvbmZpZ3VyYWJsZUdvYWwuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQXNzaXN0YW50SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWVzcGFjZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5uYW1lc3BhY2UgIT09IG51bGwpIHt0b1JldHVyblsnbmFtZXNwYWNlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm5hbWVzcGFjZSA/ICh0aGlzLm5hbWVzcGFjZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5uYW1lc3BhY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3R5cGUnXSA9IHRoaXMudHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdmF0YXJVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2F2YXRhclVybCddID0gdGhpcy5hdmF0YXJVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNvbmZpZyAhPT0gbnVsbCkge3RvUmV0dXJuWydjb25maWcnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY29uZmlnID8gKHRoaXMuY29uZmlnIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNvbmZpZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWd1cmFibGVHb2FscyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb25maWd1cmFibGVHb2FscyAhPT0gbnVsbCkge3RvUmV0dXJuWydjb25maWd1cmFibGVHb2FscyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jb25maWd1cmFibGVHb2FscyA/ICh0aGlzLmNvbmZpZ3VyYWJsZUdvYWxzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNvbmZpZ3VyYWJsZUdvYWxzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlcklkJ10gPSB0aGlzLnVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yb2xlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyb2xlJ10gPSB0aGlzLnJvbGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFzc2lzdGFudEtleSBpbXBsZW1lbnRzIGkuQXNzaXN0YW50S2V5SW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogTmFtZXNwYWNlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQXNzaXN0YW50S2V5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXNzaXN0YW50S2V5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm5hbWVzcGFjZSkge20ubmFtZXNwYWNlID0gTmFtZXNwYWNlLmZyb21Qcm90byhwcm90by5uYW1lc3BhY2UpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Bc3Npc3RhbnRLZXlJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZXNwYWNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5hbWVzcGFjZSAhPT0gbnVsbCkge3RvUmV0dXJuWyduYW1lc3BhY2UnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubmFtZXNwYWNlID8gKHRoaXMubmFtZXNwYWNlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm5hbWVzcGFjZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWcgaW1wbGVtZW50cyBpLkNvbmZpZ0ludGVyZmFjZSB7XG4gICAgaW5ib3hDb25maWc6IENvbmZpZ0luYm94Q29uZmlnO1xuICAgIHZvaWNlQ29uZmlnOiBDb25maWdWb2ljZUNvbmZpZztcbiAgICBtb2RlbHM6IE1vZGVsW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDb25maWcge1xuICAgICAgICBsZXQgbSA9IG5ldyBDb25maWcoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaW5ib3hDb25maWcpIHttLmluYm94Q29uZmlnID0gQ29uZmlnSW5ib3hDb25maWcuZnJvbVByb3RvKHByb3RvLmluYm94Q29uZmlnKTt9XG4gICAgICAgIGlmIChwcm90by52b2ljZUNvbmZpZykge20udm9pY2VDb25maWcgPSBDb25maWdWb2ljZUNvbmZpZy5mcm9tUHJvdG8ocHJvdG8udm9pY2VDb25maWcpO31cbiAgICAgICAgaWYgKHByb3RvLm1vZGVscykge20ubW9kZWxzID0gcHJvdG8ubW9kZWxzLm1hcChNb2RlbC5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Db25maWdJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbmJveENvbmZpZyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pbmJveENvbmZpZyAhPT0gbnVsbCkge3RvUmV0dXJuWydpbmJveENvbmZpZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbmJveENvbmZpZyA/ICh0aGlzLmluYm94Q29uZmlnIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmluYm94Q29uZmlnO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZvaWNlQ29uZmlnICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnZvaWNlQ29uZmlnICE9PSBudWxsKSB7dG9SZXR1cm5bJ3ZvaWNlQ29uZmlnJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnZvaWNlQ29uZmlnID8gKHRoaXMudm9pY2VDb25maWcgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudm9pY2VDb25maWc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubW9kZWxzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1vZGVscyAhPT0gbnVsbCkge3RvUmV0dXJuWydtb2RlbHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubW9kZWxzID8gKHRoaXMubW9kZWxzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1vZGVsczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmFibGVHb2FsIGltcGxlbWVudHMgaS5Db25maWd1cmFibGVHb2FsSW50ZXJmYWNlIHtcbiAgICBnb2FsOiBHb2FsO1xuICAgIGNvbmZpZ3VyYXRpb246IEtleVZhbHVlUGFpcltdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ29uZmlndXJhYmxlR29hbCB7XG4gICAgICAgIGxldCBtID0gbmV3IENvbmZpZ3VyYWJsZUdvYWwoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZ29hbCkge20uZ29hbCA9IEdvYWwuZnJvbVByb3RvKHByb3RvLmdvYWwpO31cbiAgICAgICAgaWYgKHByb3RvLmNvbmZpZ3VyYXRpb24pIHttLmNvbmZpZ3VyYXRpb24gPSBwcm90by5jb25maWd1cmF0aW9uLm1hcChLZXlWYWx1ZVBhaXIuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ29uZmlndXJhYmxlR29hbEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmdvYWwgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZ29hbCAhPT0gbnVsbCkge3RvUmV0dXJuWydnb2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmdvYWwgPyAodGhpcy5nb2FsIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmdvYWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb25maWd1cmF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvbmZpZ3VyYXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY29uZmlndXJhdGlvbiA/ICh0aGlzLmNvbmZpZ3VyYXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY29uZmlndXJhdGlvbjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWVwZ3JhbUNvbmZpZyBpbXBsZW1lbnRzIGkuRGVlcGdyYW1Db25maWdJbnRlcmZhY2Uge1xuICAgIHZvaWNlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWVwZ3JhbUNvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IERlZXBncmFtQ29uZmlnKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWVwZ3JhbUNvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZvaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2b2ljZSddID0gdGhpcy52b2ljZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbGV2ZW5MYWJzQ29uZmlnIGltcGxlbWVudHMgaS5FbGV2ZW5MYWJzQ29uZmlnSW50ZXJmYWNlIHtcbiAgICB2b2ljZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRWxldmVuTGFic0NvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IEVsZXZlbkxhYnNDb25maWcoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkVsZXZlbkxhYnNDb25maWdJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52b2ljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndm9pY2UnXSA9IHRoaXMudm9pY2U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlnSW5ib3hDb25maWcgaW1wbGVtZW50cyBpLkNvbmZpZ0luYm94Q29uZmlnSW50ZXJmYWNlIHtcbiAgICBsZWFkQ2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWRkaXRpb25hbEluc3RydWN0aW9uczogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ29uZmlnSW5ib3hDb25maWcge1xuICAgICAgICBsZXQgbSA9IG5ldyBDb25maWdJbmJveENvbmZpZygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ29uZmlnSW5ib3hDb25maWdJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sZWFkQ2FwdHVyZUVuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xlYWRDYXB0dXJlRW5hYmxlZCddID0gdGhpcy5sZWFkQ2FwdHVyZUVuYWJsZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWRkaXRpb25hbEluc3RydWN0aW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWRkaXRpb25hbEluc3RydWN0aW9ucyddID0gdGhpcy5hZGRpdGlvbmFsSW5zdHJ1Y3Rpb25zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsQ29uZmlnIGltcGxlbWVudHMgaS5Nb2RlbENvbmZpZ0ludGVyZmFjZSB7XG4gICAgb3BlbmFpUmVhbHRpbWVDb25maWc6IE9wZW5BSVJlYWx0aW1lQ29uZmlnO1xuICAgIGRlZXBncmFtQ29uZmlnOiBEZWVwZ3JhbUNvbmZpZztcbiAgICBlbGV2ZW5MYWJzQ29uZmlnOiBFbGV2ZW5MYWJzQ29uZmlnO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTW9kZWxDb25maWcge1xuICAgICAgICBsZXQgbSA9IG5ldyBNb2RlbENvbmZpZygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5vcGVuYWlSZWFsdGltZUNvbmZpZykge20ub3BlbmFpUmVhbHRpbWVDb25maWcgPSBPcGVuQUlSZWFsdGltZUNvbmZpZy5mcm9tUHJvdG8ocHJvdG8ub3BlbmFpUmVhbHRpbWVDb25maWcpO31cbiAgICAgICAgaWYgKHByb3RvLmRlZXBncmFtQ29uZmlnKSB7bS5kZWVwZ3JhbUNvbmZpZyA9IERlZXBncmFtQ29uZmlnLmZyb21Qcm90byhwcm90by5kZWVwZ3JhbUNvbmZpZyk7fVxuICAgICAgICBpZiAocHJvdG8uZWxldmVuTGFic0NvbmZpZykge20uZWxldmVuTGFic0NvbmZpZyA9IEVsZXZlbkxhYnNDb25maWcuZnJvbVByb3RvKHByb3RvLmVsZXZlbkxhYnNDb25maWcpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Nb2RlbENvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wZW5haVJlYWx0aW1lQ29uZmlnICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm9wZW5haVJlYWx0aW1lQ29uZmlnICE9PSBudWxsKSB7dG9SZXR1cm5bJ29wZW5haVJlYWx0aW1lQ29uZmlnJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm9wZW5haVJlYWx0aW1lQ29uZmlnID8gKHRoaXMub3BlbmFpUmVhbHRpbWVDb25maWcgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMub3BlbmFpUmVhbHRpbWVDb25maWc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVlcGdyYW1Db25maWcgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZGVlcGdyYW1Db25maWcgIT09IG51bGwpIHt0b1JldHVyblsnZGVlcGdyYW1Db25maWcnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZGVlcGdyYW1Db25maWcgPyAodGhpcy5kZWVwZ3JhbUNvbmZpZyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5kZWVwZ3JhbUNvbmZpZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbGV2ZW5MYWJzQ29uZmlnICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVsZXZlbkxhYnNDb25maWcgIT09IG51bGwpIHt0b1JldHVyblsnZWxldmVuTGFic0NvbmZpZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5lbGV2ZW5MYWJzQ29uZmlnID8gKHRoaXMuZWxldmVuTGFic0NvbmZpZyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lbGV2ZW5MYWJzQ29uZmlnO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9wZW5BSVJlYWx0aW1lQ29uZmlnIGltcGxlbWVudHMgaS5PcGVuQUlSZWFsdGltZUNvbmZpZ0ludGVyZmFjZSB7XG4gICAgdm9pY2U6IHN0cmluZztcbiAgICB0dXJuRGV0ZWN0aW9uOiBPcGVuQUlSZWFsdGltZUNvbmZpZ1R1cm5EZXRlY3Rpb247XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBPcGVuQUlSZWFsdGltZUNvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IE9wZW5BSVJlYWx0aW1lQ29uZmlnKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnR1cm5EZXRlY3Rpb24pIHttLnR1cm5EZXRlY3Rpb24gPSBPcGVuQUlSZWFsdGltZUNvbmZpZ1R1cm5EZXRlY3Rpb24uZnJvbVByb3RvKHByb3RvLnR1cm5EZXRlY3Rpb24pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5PcGVuQUlSZWFsdGltZUNvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZvaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2b2ljZSddID0gdGhpcy52b2ljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50dXJuRGV0ZWN0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnR1cm5EZXRlY3Rpb24gIT09IG51bGwpIHt0b1JldHVyblsndHVybkRldGVjdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50dXJuRGV0ZWN0aW9uID8gKHRoaXMudHVybkRldGVjdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50dXJuRGV0ZWN0aW9uO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlVmFyaWFibGUgaW1wbGVtZW50cyBpLlRlbXBsYXRlVmFyaWFibGVJbnRlcmZhY2Uge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRlbXBsYXRlVmFyaWFibGUge1xuICAgICAgICBsZXQgbSA9IG5ldyBUZW1wbGF0ZVZhcmlhYmxlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UZW1wbGF0ZVZhcmlhYmxlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydrZXknXSA9IHRoaXMua2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2YWx1ZSddID0gdGhpcy52YWx1ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3BlbkFJUmVhbHRpbWVDb25maWdUdXJuRGV0ZWN0aW9uIGltcGxlbWVudHMgaS5PcGVuQUlSZWFsdGltZUNvbmZpZ1R1cm5EZXRlY3Rpb25JbnRlcmZhY2Uge1xuICAgIHRocmVzaG9sZDogbnVtYmVyO1xuICAgIHByZWZpeFBhZGRpbmc6IG51bWJlcjtcbiAgICBzaWxlbmNlRHVyYXRpb246IG51bWJlcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IE9wZW5BSVJlYWx0aW1lQ29uZmlnVHVybkRldGVjdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IE9wZW5BSVJlYWx0aW1lQ29uZmlnVHVybkRldGVjdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuT3BlbkFJUmVhbHRpbWVDb25maWdUdXJuRGV0ZWN0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGhyZXNob2xkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aHJlc2hvbGQnXSA9IHRoaXMudGhyZXNob2xkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZWZpeFBhZGRpbmcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ByZWZpeFBhZGRpbmcnXSA9IHRoaXMucHJlZml4UGFkZGluZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaWxlbmNlRHVyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NpbGVuY2VEdXJhdGlvbiddID0gdGhpcy5zaWxlbmNlRHVyYXRpb247fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlnVm9pY2VDb25maWcgaW1wbGVtZW50cyBpLkNvbmZpZ1ZvaWNlQ29uZmlnSW50ZXJmYWNlIHtcbiAgICB2ZW5kb3JNb2RlbDogZS5WZW5kb3JNb2RlbDtcbiAgICBtb2RlbENvbmZpZzogTW9kZWxDb25maWc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDb25maWdWb2ljZUNvbmZpZyB7XG4gICAgICAgIGxldCBtID0gbmV3IENvbmZpZ1ZvaWNlQ29uZmlnKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnZlbmRvck1vZGVsKSB7bS52ZW5kb3JNb2RlbCA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuVmVuZG9yTW9kZWw+KGUuVmVuZG9yTW9kZWwsIHByb3RvLnZlbmRvck1vZGVsKTt9XG4gICAgICAgIGlmIChwcm90by5tb2RlbENvbmZpZykge20ubW9kZWxDb25maWcgPSBNb2RlbENvbmZpZy5mcm9tUHJvdG8ocHJvdG8ubW9kZWxDb25maWcpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Db25maWdWb2ljZUNvbmZpZ0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZlbmRvck1vZGVsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2ZW5kb3JNb2RlbCddID0gdGhpcy52ZW5kb3JNb2RlbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tb2RlbENvbmZpZyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tb2RlbENvbmZpZyAhPT0gbnVsbCkge3RvUmV0dXJuWydtb2RlbENvbmZpZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tb2RlbENvbmZpZyA/ICh0aGlzLm1vZGVsQ29uZmlnIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1vZGVsQ29uZmlnO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
@@ -1542,6 +1542,12 @@ class Assistant {
1542
1542
  if (typeof this.userId !== 'undefined') {
1543
1543
  toReturn['userId'] = this.userId;
1544
1544
  }
1545
+ if (typeof this.role !== 'undefined') {
1546
+ toReturn['role'] = this.role;
1547
+ }
1548
+ if (typeof this.description !== 'undefined') {
1549
+ toReturn['description'] = this.description;
1550
+ }
1545
1551
  return toReturn;
1546
1552
  }
1547
1553
  }