@sunbird-cb/consumption 0.1.24-cbrelease-4.8.27-multilingual → 0.1.24-cbrelease-4.8.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/esm2022/lib/_common/cards/card-portrait/card-portrait.component.mjs +4 -1
  2. package/esm2022/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.mjs +2 -1
  3. package/esm2022/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.mjs +1 -1
  4. package/esm2022/lib/_common/dialog-components/certificate-dialog/certificate-dialog.component.mjs +2 -2
  5. package/esm2022/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.mjs +54 -0
  6. package/esm2022/lib/_common/microsites/mdo-channels/components/competency/competency.component.mjs +50 -0
  7. package/esm2022/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.mjs +56 -0
  8. package/esm2022/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.mjs +286 -0
  9. package/esm2022/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.mjs +45 -0
  10. package/esm2022/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.mjs +143 -0
  11. package/esm2022/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.mjs +35 -0
  12. package/esm2022/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.mjs +30 -0
  13. package/esm2022/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.mjs +42 -0
  14. package/esm2022/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.mjs +99 -0
  15. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.mjs +986 -2
  16. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.mjs +222 -0
  17. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel.module.mjs +83 -7
  18. package/esm2022/lib/_models/card-content.model.mjs +1 -1
  19. package/esm2022/lib/_services/widget-content-lib.service.mjs +5 -1
  20. package/esm2022/public-api.mjs +2 -1
  21. package/fesm2022/sunbird-cb-consumption.mjs +2061 -34
  22. package/fesm2022/sunbird-cb-consumption.mjs.map +1 -1
  23. package/lib/_common/cards/card-portrait/card-portrait.component.d.ts.map +1 -1
  24. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts.map +1 -1
  25. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts +1 -0
  26. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts.map +1 -1
  27. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts +20 -0
  28. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts.map +1 -0
  29. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts +16 -0
  30. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts.map +1 -0
  31. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts +16 -0
  32. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts.map +1 -0
  33. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts +61 -0
  34. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts.map +1 -0
  35. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts +17 -0
  36. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts.map +1 -0
  37. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts +32 -0
  38. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts.map +1 -0
  39. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts +15 -0
  40. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts.map +1 -0
  41. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts +10 -0
  42. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts.map +1 -0
  43. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts +13 -0
  44. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts.map +1 -0
  45. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts +23 -0
  46. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts.map +1 -0
  47. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts.map +1 -1
  48. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts +54 -0
  49. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts.map +1 -0
  50. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts +46 -26
  51. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts.map +1 -1
  52. package/lib/_models/card-content.model.d.ts +1 -0
  53. package/lib/_models/card-content.model.d.ts.map +1 -1
  54. package/lib/_services/widget-content-lib.service.d.ts.map +1 -1
  55. package/package.json +2 -2
  56. package/public-api.d.ts +1 -0
  57. package/public-api.d.ts.map +1 -1
@@ -427,6 +427,10 @@ export class WidgetContentLibService {
427
427
  return [];
428
428
  }
429
429
  async getResourseLink(content, enrollmentList, checkForResume, baseContentRead, multilingualId) {
430
+ if (content && content.publicCard && content.publicCard.baseUrl) {
431
+ window.open(content.publicCard.baseUrl +
432
+ '/public/toc/' + content?.identifier + '/overview', '_blank');
433
+ }
430
434
  if (content && content.content && content.content.category === 'Event') {
431
435
  const urlData = {
432
436
  url: `app/event-hub/home/${content.content.identifier}`,
@@ -634,4 +638,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
634
638
  providedIn: 'root',
635
639
  }]
636
640
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationsService }, { type: i3.WidgetUserServiceLib }, { type: i4.ContentLanguageService }]; } });
637
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQtbGliLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQtbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsaUJBQWlCO0FBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFBO0FBQzNCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRTFELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7O0FBRTVCLGdCQUFnQjtBQUVoQix1Q0FBdUM7QUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQztBQUMvQyxNQUFNLGtCQUFrQixHQUFHLHFDQUFxQyxDQUFBO0FBQ2hFLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixVQUFVO0lBQ3ZDLGlCQUFpQixFQUFFLDBCQUEwQjtJQUM3QyxhQUFhLEVBQUUsR0FBRyxpQkFBaUIsb0JBQW9CO0lBQ3ZELGFBQWEsRUFBRSxHQUFHLGlCQUFpQixvQkFBb0I7SUFDdkQsbUJBQW1CLEVBQUUsR0FBRyxpQkFBaUIseUJBQXlCO0lBQ2xFLGNBQWMsRUFBRSxHQUFHLGlCQUFpQiwrQkFBK0I7SUFDbkUsc0JBQXNCLEVBQUUsR0FBRyxp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RUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUM5QyxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBYztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO0lBQ3JDLENBQUM7K0dBaHJCVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBFTVBUWSwgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCByZXRyeSwgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5zQ29udGVudFN0cmlwTXVsdGlwbGUgfSBmcm9tICcuLi9fbW9kZWxzL2NvbnRlbnQtc3RyaXAtbXVsdGlwbGUubW9kZWwnO1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi4vX21vZGVscy93aWRnZXQtY29udGVudC5tb2RlbCc7XG5pbXBvcnQgeyBOU1NlYXJjaCB9IGZyb20gJy4uL19tb2RlbHMvd2lkZ2V0LXNlYXJjaC5tb2RlbCc7XG4vLyB0c2xpbnQ6ZGlzYWJsZVxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyB2aWV3ZXJSb3V0ZUdlbmVyYXRvciB9IGZyb20gJy4vdmlld2VyLXJvdXRlLXV0aWwnXG5pbXBvcnQgeyBXaWRnZXRVc2VyU2VydmljZUxpYiB9IGZyb20gJy4vd2lkZ2V0LXVzZXItbGliLnNlcnZpY2UnXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBDb250ZW50TGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZW50LWxhbmd1YWdlLnNlcnZpY2UnO1xuLy8gdHNsaW50OmVuYWJsZVxuXG4vLyBUT0RPOiBtb3ZlIHRoaXMgaW4gc29tZSBjb21tb24gcGxhY2VcbmNvbnN0IFBST1RFQ1RFRF9TTEFHX1Y4ID0gJy9hcGlzL3Byb3RlY3RlZC92OCc7XG5jb25zdCBQUk9EX0JBU0VfRU5EUE9JTlQgPSAnaHR0cHM6Ly9wb3J0YWwuaWdvdGthcm1heW9naS5nb3YuaW4nXG5jb25zdCBBUElfRU5EX1BPSU5UUyA9IHtcbiAgQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnRgLFxuICBBVVRIT1JJTkdfQ09OVEVOVDogYC9hcGkvY291cnNlL3YxL2hpZXJhcmNoeWAsXG4gIENPTlRFTlRfTElLRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2xpa2VDb3VudGAsXG4gIFNFVF9TM19DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldENvb2tpZWAsXG4gIFNFVF9TM19JTUFHRV9DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldEltYWdlQ29va2llYCxcbiAgRkVUQ0hfTUFOSUZFU1Q6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZU1hbmlmZXN0YCxcbiAgRkVUQ0hfV0VCX01PRFVMRV9GSUxFUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvZ2V0V2ViTW9kdWxlRmlsZXNgLFxuICBNVUxUSVBMRV9DT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9tdWx0aXBsZWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y1OiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZWFyY2hWNWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBUUkVORElOR19DT05URU5UX1NFQVJDSDogYGFwaXMvcHJveGllcy92OC90cmVuZGluZy9jb250ZW50L3NlYXJjaGAsXG4gIENPTlRFTlRfU0VBUkNIX1JFTEFURURfQ0JQX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBDT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT046IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uYCxcbiAgQ09OVEVOVF9ISVNUT1JZOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9oaXN0b3J5YCxcbiAgQ09OVEVOVF9ISVNUT1JZVjI6IGAvYXBpcy9wcm94aWVzL3Y4L3JlYWQvY29udGVudC1wcm9ncmVzYCxcbiAgQ09VUlNFX0JBVENIX0xJU1Q6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2JhdGNoL2xpc3RgLFxuICBDT1VSU0VfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2NvdXJzZS92MS9iYXRjaC9yZWFkYCxcbiAgQVVUT19BU1NJR05fQkFUQ0g6IGAvYXBpcy9wcm90ZWN0ZWQvdjgvY29ob3J0cy91c2VyL2F1dG9lbnJvbGxtZW50L2AsXG4gIEFVVE9fQVNTSUdOX0NVUkFURURfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2N1cmF0ZWRwcm9ncmFtL3YxL2Vucm9sYCxcbiAgQVVUT19BU1NJR05fT1BFTl9QUk9HUkFNOiBgL2FwaXMvcHJveGllcy92OC9vcGVucHJvZ3JhbS92MS9lbnJvbGAsXG4gIFVTRVJfQ09OVElOVUVfTEVBUk5JTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnkvY29udGludWVgLFxuICBDT05URU5UX1JBVElORzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvcmF0aW5nYCxcbiAgQ09MTEVDVElPTl9ISUVSQVJDSFk6ICh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpID0+XG4gICAgYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvY29sbGVjdGlvbi8ke3R5cGV9LyR7aWR9YCxcbiAgUkVHSVNUUkFUSU9OX1NUQVRVUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2FkbWluL3VzZXJSZWdpc3RyYXRpb24vY2hlY2tVc2VyUmVnaXN0cmF0aW9uQ29udGVudGAsXG4gIE1BUktfQVNfQ09NUExFVEVfTUVUQTogKGNvbnRlbnRJZDogc3RyaW5nKSA9PiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9wcm9ncmVzcy8ke2NvbnRlbnRJZH1gLFxuICBFTlJPTExfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2Vucm9sYCxcbiAgRU5ST0xMX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbGAsXG4gIFdJVEhEUkFXX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91bmVucm9sYCxcbiAgQkxFTkRFRF9VU0VSX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91c2VyL3NlYXJjaGAsXG4gIEJMRU5ERURfVVNFUl9DT1VOVDogYGFwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbC9zdGF0dXMvY291bnRgLFxuICBDRVJUX0FERF9URU1QTEFURTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvdGVtcGxhdGUvYWRkYCxcbiAgQ0VSVF9JU1NVRTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvaXNzdWVgLFxuICBDRVJUX0RPV05MT0FEOiAoY2VydElkOiBhbnkpID0+IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb2hvcnRzL2NvdXJzZS9iYXRjaC9jZXJ0L2Rvd25sb2FkLyR7Y2VydElkfWAsXG4gIFJFQURfS0FSTUFQT0lOVFM6IGAvYXBpcy9wcm94aWVzL3Y4L2thcm1hcG9pbnRzL3JlYWRgLFxuICBDT05URU5UX1JFQUQ6IChjb250ZW50SWQ6IGFueSkgPT4gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gLFxuICBSRUFEX0NPVVJTRV9LQVJNQVBPSU5UUzogJy9hcGlzL3Byb3hpZXMvdjgva2FybWFwb2ludHMvdXNlci9jb3Vyc2UvcmVhZCcsXG4gIENMQUlNX0tBUk1BUE9JTlRTOiAnL2FwaXMvcHJveGllcy92OC9jbGFpbWthcm1hcG9pbnRzJyxcbiAgVVNFUl9LQVJNQV9QT0lOVFM6ICcvYXBpcy9wcm94aWVzL3Y4L3VzZXIvdG90YWxrYXJtYXBvaW50cycsXG4gIEFHR1JFR0FUSU9OX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvY29udGVudC9hZ2dyZWdhdGlvbi9zZWFyY2gnLFxuICBGRUFUVVJFX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvZmVhdHVyZWQvY29udGVudC9zZWFyY2gnLFxuICBTQVZFX1NBS1NIQU1BSV9SRUNPTU1FTkRFRF9GRUVEQkFDSzogYC9hcGlzL3Byb3hpZXMvdjgvY291cnNlUmVjb21tZW5kYXRpb24vZmVlZGJhY2tgLFxuICBDT05URU5UX1NFQVJDSDogYC9hcGkvY29udGVudC92MS9zZWFyY2hgXG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGVudExpYlNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTdmM6IFdpZGdldFVzZXJTZXJ2aWNlTGliLFxuICAgIHByaXZhdGUgY29udGVudExhbmd1YWdlU3ZjOiBDb250ZW50TGFuZ3VhZ2VTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIHRvY0NvbmZpZ0RhdGE6IGFueSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHRvY0NvbmZpZ0RhdGEkID0gdGhpcy50b2NDb25maWdEYXRhLmFzT2JzZXJ2YWJsZSgpO1xuICBvbmVTdGVwUmVzdW1lRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHRlbGVtZXRyeURhdGE6IGFueSA9IG5ldyBTdWJqZWN0PGFueT4oKVxuICBwdWJsaWMgdGVsZW1ldHJ5RGF0YSQgPSB0aGlzLnRlbGVtZXRyeURhdGEuYXNPYnNlcnZhYmxlKClcbiAgdGVsZW1ldHJ5RXZlbnREYXRhOiBhbnkgPSBuZXcgU3ViamVjdDxhbnk+KClcbiAgdGVsZW1ldHJ5RXZlbnREYXRhJCA9IHRoaXMudGVsZW1ldHJ5RXZlbnREYXRhLmFzT2JzZXJ2YWJsZSgpXG4gIGN1cnJlbnRNZXRhRGF0YSE6IE5zQ29udGVudC5JQ29udGVudDtcbiAgY3VycmVudENvbnRlbnRSZWFkTWV0YURhdGEhOiBOc0NvbnRlbnQuSUNvbnRlbnQ7XG4gIGN1cnJlbnRCYXRjaEVucm9sbG1lbnRMaXN0ITogTnNDb250ZW50LklDb3Vyc2VbXTtcbiAgcHJvZ3JhbUNoaWxkQ291cnNlUmVzdW1lRGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHByb2dyYW1DaGlsZENvdXJzZVJlc3VtZURhdGEkID0gdGhpcy5wcm9ncmFtQ2hpbGRDb3Vyc2VSZXN1bWVEYXRhLmFzT2JzZXJ2YWJsZSgpO1xuICByZWxldmVudE5vdFJlbGV2ZW50ID0gbmV3IFN1YmplY3Q8eyBpc1JlbGV2ZW50OiBib29sZWFuOyB3aWRnZXREYXRhOiBhbnkgfT4oKTtcbiAgcmVsZXZlbnROb3RSZWxldmVudCQgPSB0aGlzLnJlbGV2ZW50Tm90UmVsZXZlbnQuYXNPYnNlcnZhYmxlKClcbiAgc3RvcmVkUmVjb21tZW5kZWRJZHM6IGFueSA9IHt9O1xuICBmZWVkYmFja0RhdGFGb3JDb3Vyc2U6IGFueSA9IHt9O1xuICBpc1RlbGVtZW50cnlTdWJzY3JpYmVkID0gZmFsc2VcbiAgY2hhbmdlVGVsZW1ldHJ5RGF0YShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRlbGVtZXRyeURhdGEubmV4dChtZXNzYWdlKTtcbiAgfVxuXG4gIGNoYW5nZVRlbGVtZXRyeUV2ZW50RGF0YShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnRlbGVtZXRyeUV2ZW50RGF0YS5uZXh0KGRhdGEpO1xuICB9XG4gIGlzUmVzb3VyY2UocHJpbWFyeUNhdGVnb3J5OiBzdHJpbmcpIHtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5KSB7XG4gICAgICBjb25zdCBpc1Jlc291cmNlID0gKHByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVSZXNvdXJjZVByaW1hcnlDYXRlZ29yaWVzLkxFQVJOSU5HX1JFU09VUkNFKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuUFJBQ1RJQ0VfUkVTT1VSQ0UpIHx8XG4gICAgICAgIChwcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUmVzb3VyY2VQcmltYXJ5Q2F0ZWdvcmllcy5GSU5BTF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuQ09NUF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuT0ZGTElORV9TRVNTSU9OKTtcbiAgICAgIHJldHVybiBpc1Jlc291cmNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmZXRjaE1hcmtBc0NvbXBsZXRlTWV0YShpZGVudGlmaWVyOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLk1BUktfQVNfQ09NUExFVEVfTUVUQShpZGVudGlmaWVyKVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkudG9Qcm9taXNlKClcbiAgICBpZiAodXJsKSB7IH1cbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwZGF0ZVRvY0NvbmZpZyhkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnRvY0NvbmZpZ0RhdGEubmV4dChkYXRhKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudChcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcbiAgICBoaWVyYXJjaHlUeXBlOiAnYWxsJyB8ICdtaW5pbWFsJyB8ICdkZXRhaWwnID0gJ2RldGFpbCcsXG4gICAgX2FkZGl0aW9uYWxGaWVsZHM6IHN0cmluZ1tdID0gW10sXG4gICAgcHJpbWFyeUNhdGVnb3J5Pzogc3RyaW5nIHwgbnVsbCxcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcbiAgICAvLyBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UfS8ke2NvbnRlbnRJZH0/aGllcmFyY2h5VHlwZT0ke2hpZXJhcmNoeVR5cGV9YFxuICAgIGxldCB1cmwgPSAnJztcbiAgICBjb25zdCBmb3JQcmV2aWV3ID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9wdWJsaWMvJykgfHwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyZwcmV2aWV3PXRydWUnKTtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5ICYmIHRoaXMuaXNSZXNvdXJjZShwcmltYXJ5Q2F0ZWdvcnkpKSB7XG4gICAgICBpZiAoIWZvclByZXZpZXcpIHtcbiAgICAgICAgdXJsID0gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gYC9hcGkvY29udGVudC92MS9yZWFkLyR7Y29udGVudElkfWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZm9yUHJldmlldykge1xuICAgICAgICB1cmwgPSBgL2FwaXMvcHJveGllcy92OC9hY3Rpb24vY29udGVudC92My9oaWVyYXJjaHkvJHtjb250ZW50SWR9P2hpZXJhcmNoeVR5cGU9JHtoaWVyYXJjaHlUeXBlfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmb3JjcmVhdG9yID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2VkaXRNb2RlPXRydWUnKTtcbiAgICAgICAgaWYgKGZvcmNyZWF0b3IpIHtcbiAgICAgICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cmwgPSBgL2FwaS9jb3Vyc2UvdjEvaGllcmFyY2h5LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPSR7aGllcmFyY2h5VHlwZX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcbiAgICAvLyAgIC5wb3N0PE5zQ29udGVudC5JQ29udGVudD4odXJsLCB7IGFkZGl0aW9uYWxGaWVsZHMgfSlcbiAgICAvLyAgIC5waXBlKHJldHJ5KDEpKVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8TnNDb250ZW50LklDb250ZW50Pih1cmwpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgLy8gaWYgKGFwaURhdGEgJiYgYXBpRGF0YS5yZXN1bHQpIHtcbiAgICAvLyAgIHJldHVybiBhcGlEYXRhLnJlc3VsdC5jb250ZW50XG4gICAgLy8gfVxuICB9XG4gIGZldGNoQXV0aG9yaW5nQ29udGVudChjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XG4gICAgY29uc3QgZm9yY3JlYXRvciA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdlZGl0TW9kZT10cnVlJyk7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChmb3JjcmVhdG9yKSB7XG4gICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gYCR7QVBJX0VORF9QT0lOVFMuQVVUSE9SSU5HX0NPTlRFTlR9LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPWRldGFpbGA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudD4odXJsKS5waXBlKHNoYXJlUmVwbGF5KDEpLCByID0+IHIpO1xuICB9XG4gIGZldGNoTXVsdGlwbGVDb250ZW50KGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuTVVMVElQTEVfQ09OVEVOVH0vJHtpZHMuam9pbignLCcpfWAsXG4gICAgKTtcbiAgfVxuICBmZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIgPSAwLCBwYWdlU2l6ZTogbnVtYmVyID0gMSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29sbGVjdGlvbkhpZXJhcmNoeVJlc3BvbnNlPihcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTExFQ1RJT05fSElFUkFSQ0hZKFxuICAgICAgICB0eXBlLFxuICAgICAgICBpZCxcbiAgICAgICl9P3BhZ2VOdW1iZXI9JHtwYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke3BhZ2VTaXplfWAsXG4gICAgKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZENvdXJzZSgpIHtcblxuICB9XG5cbiAgZmV0Y2hDb3Vyc2VCYXRjaGVzKHJlcTogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oQVBJX0VORF9QT0lOVFMuQ09VUlNFX0JBVENIX0xJU1QsIHJlcSlcbiAgICAgIC5waXBlKFxuICAgICAgICByZXRyeSgxKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0LnJlc3BvbnNlXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvLyBmZXRjaCBpbmRpdmlkdWFsIGJhdGNoXG4gIGZldGNoQ291cnNlQmF0Y2goYmF0Y2hJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT1VSU0VfQkFUQ0h9LyR7YmF0Y2hJZH1gLFxuICAgICk7XG4gIH1cblxuICBhdXRvQXNzaWduQmF0Y2hBcGkoaWRlbnRpZmllcjogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oYCR7QVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fQkFUQ0h9JHtpZGVudGlmaWVyfWApXG4gICAgICAucGlwZShcbiAgICAgICAgcmV0cnkoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnJlc3VsdC5yZXNwb25zZVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgYXV0b0Fzc2lnbkN1cmF0ZWRCYXRjaEFwaShyZXF1ZXN0OiBhbnksIHByb2dyYW1UeXBlOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQmF0Y2hMaXN0UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBwcm9ncmFtVHlwZSA9PT0gTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5NT0RFUkFURURfUFJPR1JBTSA/XG4gICAgICBBUElfRU5EX1BPSU5UUy5BVVRPX0FTU0lHTl9PUEVOX1BST0dSQU0gOiBBUElfRU5EX1BPSU5UUy5BVVRPX0FTU0lHTl9DVVJBVEVEX0JBVENIO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPihgJHt1cmx9YCwgcmVxdWVzdClcbiAgICAgIC5waXBlKFxuICAgICAgICByZXRyeSgxKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0LnJlc3BvbnNlXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBlbnJvbGxVc2VyVG9CYXRjaChyZXE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLkVOUk9MTF9CQVRDSCwgcmVxKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZW5yb2xsQW5kVW5lbnJvbGxVc2VyVG9CYXRjaFdGKHJlcTogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBjb25zdCB1cmw6IGFueSA9IHR5cGUgPT09ICdXSVRIRFJBVycgPyBBUElfRU5EX1BPSU5UUy5XSVRIRFJBV19CQVRDSF9XRiA6IEFQSV9FTkRfUE9JTlRTLkVOUk9MTF9CQVRDSF9XRjtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIHJlcSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZFVzZXJXRihyZXE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLkJMRU5ERURfVVNFUl9XRiwgcmVxKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hCbGVuZGVkVXNlckNPVU5UKHJlcTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoQVBJX0VORF9QT0lOVFMuQkxFTkRFRF9VU0VSX0NPVU5ULCByZXEpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBmZXRjaENvbnRlbnRMaWtlcyhjb250ZW50SWRzOiB7IGNvbnRlbnRfaWQ6IHN0cmluZ1tdIH0pIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDx7IFtpZGVudGlmaWVyOiBzdHJpbmddOiBudW1iZXIgfT4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9MSUtFUywgY29udGVudElkcylcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuICBmZXRjaENvbnRlbnRSYXRpbmdzKGNvbnRlbnRJZHM6IHsgY29udGVudElkczogc3RyaW5nW10gfSkge1xuICAgIGlmIChjb250ZW50SWRzKSB7IH1cbiAgICAvLyByZXR1cm4gdGhpcy5odHRwXG4gICAgLy8gICAucG9zdChgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vcmF0aW5nYCwgY29udGVudElkcylcbiAgICAvLyAgIC50b1Byb21pc2UoKVxuICAgIHJldHVybiBvZigpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hDb250ZW50SGlzdG9yeShjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGludWVMZWFybmluZ0RhdGE+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9ISVNUT1JZfS8ke2NvbnRlbnRJZH1gLFxuICAgICk7XG4gIH1cblxuICBmZXRjaENvbnRlbnRIaXN0b3J5VjIocmVxOiBOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhUmVxKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XG4gICAgcmVxLnJlcXVlc3QuZmllbGRzID0gWydwcm9ncmVzc2RldGFpbHMnXTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX0hJU1RPUllWMn0vJHtyZXEucmVxdWVzdC5jb3Vyc2VJZH1gLCByZXFcbiAgICApO1xuICAgIGRhdGEuc3Vic2NyaWJlKChzdWJzY3JpYmVEYXRhOiBhbnkpID0+IHtcbiAgICAgIHRoaXMucHJvZ3JhbUNoaWxkQ291cnNlUmVzdW1lRGF0YS5uZXh0KHsgcmVzdW1lRGF0YTogc3Vic2NyaWJlRGF0YS5yZXN1bHQuY29udGVudExpc3QsIGNvdXJzZUlkOiByZXEucmVxdWVzdC5jb3Vyc2VJZCB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGNvbnRpbnVlTGVhcm5pbmcoaWQ6IHN0cmluZywgY29sbGVjdGlvbklkPzogc3RyaW5nLCBjb2xsZWN0aW9uVHlwZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHJlc29sdmUgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb25UeXBlICYmXG4gICAgICAgIGNvbGxlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdwbGF5bGlzdCcpIHtcbiAgICAgICAgY29uc3QgcmVxQm9keSA9IHtcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcbiAgICAgICAgICByZXNvdXJjZUlkOiBpZCxcbiAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICBjb250ZXh0RnVsbFBhdGg6IFtjb2xsZWN0aW9uSWQsIGlkXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXG4gICAgICAgICAgY29udGV4dFR5cGU6ICdwbGF5bGlzdCcsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXFCb2R5ID0ge1xuICAgICAgICAgIGNvbnRleHRQYXRoSWQ6IGNvbGxlY3Rpb25JZCA/IGNvbGxlY3Rpb25JZCA6IGlkLFxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxuICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdGltZXN0YW1wOiBEYXRlLm5vdygpIH0pLFxuICAgICAgICAgIGRhdGVBY2Nlc3NlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHNhdmVDb250aW51ZUxlYXJuaW5nKGNvbnRlbnQ6IE5zQ29udGVudC5JVmlld2VyQ29udGludWVMZWFybmluZ1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLlVTRVJfQ09OVElOVUVfTEVBUk5JTkdcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIGNvbnRlbnQpXG4gICAgaWYgKGNvbnRlbnQpIHtcblxuICAgIH1cbiAgICByZXR1cm4gb2YoKSBhcyBhbnk7XG4gIH1cblxuICBzZXRTM0Nvb2tpZShcbiAgICBfY29udGVudElkOiBzdHJpbmcsXG4gICAgLy8gX3BhdGg6IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwXG4gICAgLy8gICAucG9zdChBUElfRU5EX1BPSU5UUy5TRVRfUzNfQ09PS0lFLCB7IGNvbnRlbnRJZCB9KVxuICAgIC8vICAgLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcblxuICAgIHJldHVybiBFTVBUWTtcbiAgfVxuXG4gIHNldFMzSW1hZ2VDb29raWUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0lNQUdFX0NPT0tJRSwge30pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSk7XG4gIH1cblxuICBmZXRjaE1hbmlmZXN0KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuRkVUQ0hfTUFOSUZFU1QsIHsgdXJsIH0pO1xuICB9XG4gIGZldGNoV2ViTW9kdWxlQ29udGVudCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7QVBJX0VORF9QT0lOVFMuRkVUQ0hfV0VCX01PRFVMRV9GSUxFU30/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YCk7XG4gIH1cbiAgc2VhcmNoKHJlcTogTlNTZWFyY2guSVNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+IHtcbiAgICByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y1LCB7XG4gICAgICByZXF1ZXN0OiByZXEsXG4gICAgfSk7XG4gIH1cbiAgc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24oXG4gICAgcmVxOiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0LFxuICApOiBPYnNlcnZhYmxlPE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPiB7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIHJlcS5wcmVMYWJlbFZhbHVlID1cbiAgICAgIChyZXEucHJlTGFiZWxWYWx1ZSB8fCAnJykgK1xuICAgICAgKCh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5jb3VudHJ5KSB8fCAnJyk7XG4gICAgcmVxLmZpbHRlcnMgPSB7XG4gICAgICAuLi5yZXEuZmlsdGVycyxcbiAgICAgIGxhYmVsczogW3JlcS5wcmVMYWJlbFZhbHVlIHx8ICcnXSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnRTdHJpcE11bHRpcGxlLklDb250ZW50U3RyaXBSZXNwb25zZUFwaT4oXG4gICAgICBBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT04sXG4gICAgICB7IHJlcXVlc3Q6IHJlcSB9LFxuICAgICk7XG4gIH1cbiAgc2VhcmNoVjYocmVxOiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0KTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4ge1xuICAgIGNvbnN0IGFwaVBhdGggPSBfLmdldChyZXEsICdhcGkucGF0aCcpO1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICBpZiAoYXBpUGF0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KGFwaVBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y2LCByZXEpO1xuICB9XG5cbiAgc2VhcmNoUmVxdWVzdChyZXE6IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPiB7XG4gICAgY29uc3QgYXBpUGF0aCA9IF8uZ2V0KHJlcSwgJ2FwaS5wYXRoJyk7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIGlmIChhcGlQYXRoKSB7XG4gICAgICBpZihfLmdldChyZXEsICdhcGkudHlwZScpID09PSAnZ2V0JyApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihhcGlQYXRoKTtcbiAgICAgIH0gZWxzZSBpZihfLmdldChyZXEsICdhcGkudHlwZScpID09PSAncG9zdCcgKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGFwaVBhdGgsIHJlcS5yZXF1ZXN0IHx8IHt9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPihhcGlQYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9WNiwgcmVxKTtcbiAgfVxuXG4gIHNlYXJjaENvbnRlbnRTZWFyY2hfUFJPRChyZXE6IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPiB7XG4gICAgY29uc3QgYXBpUGF0aCA9IF8uZ2V0KHJlcSwgJ2FwaS5wYXRoJyk7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIGlmIChhcGlQYXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4oYXBpUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4oUFJPRF9CQVNFX0VORFBPSU5UICsgQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0gsIHJlcSk7XG4gIH1cblxuICBzZWFyY2hSZWxhdGVkQ0JQVjYocmVxOiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0VjIpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9SRUxBVEVEX0NCUF9WNiwgcmVxKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudFJhdGluZyhjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8eyByYXRpbmc6IG51bWJlciB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyByYXRpbmc6IG51bWJlciB9PihgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vJHtjb250ZW50SWR9YCk7XG4gIH1cbiAgZGVsZXRlQ29udGVudFJhdGluZyhjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApO1xuICB9XG4gIGFkZENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcsIGRhdGE6IHsgcmF0aW5nOiBudW1iZXIgfSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWAsIGRhdGEpO1xuICB9XG5cbiAgZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCk6IE5zQ29udGVudC5JQ29udGVudCB7XG4gICAgaWYgKCEoY29udGVudC5jaGlsZHJlbiB8fCBbXSkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNICYmXG4gICAgICAgICEoY29udGVudC5hcnRpZmFjdFVybCAmJiBjb250ZW50LmFydGlmYWN0VXJsLmxlbmd0aCkpIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuTUFOREFUT1JZX0NPVVJTRV9HT0FMIHx8XG4gICAgICAoY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkJMRU5ERURfUFJPR1JBTSAmJlxuICAgICAgICAhKGNvbnRlbnQuYXJ0aWZhY3RVcmwgJiYgY29udGVudC5hcnRpZmFjdFVybC5sZW5ndGgpKSB8fFxuICAgICAgKGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5NT0RVTEUgJiZcbiAgICAgICAgIShjb250ZW50LmFydGlmYWN0VXJsICYmIGNvbnRlbnQuYXJ0aWZhY3RVcmwubGVuZ3RoKSlcbiAgICApIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gY29udGVudC5jaGlsZHJlblswXTtcbiAgICAgIHJldHVybiB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjaGlsZCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5SRVNPVVJDRSB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LktOT1dMRURHRV9BUlRJRkFDVCB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LlBST0dSQU0gfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUkFDVElDRV9SRVNPVVJDRSB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkZJTkFMX0FTU0VTU01FTlQgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5DT01QX0FTU0VTU01FTlQgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5PRkZMSU5FX1NFU1NJT05cbiAgICApIHtcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbiAgICBjb25zdCBmaXJzdENoaWxkID0gY29udGVudC5jaGlsZHJlblswXTtcbiAgICBjb25zdCByZXN1bHRDb250ZW50ID0gdGhpcy5nZXRGaXJzdENoaWxkSW5IaWVyYXJjaHkoZmlyc3RDaGlsZCk7XG4gICAgcmV0dXJuIHJlc3VsdENvbnRlbnQ7XG4gIH1cblxuICBnZXRSZWdpc3RyYXRpb25TdGF0dXMoc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPHsgaGFzQWNjZXNzOiBib29sZWFuOyByZWdpc3RyYXRpb25Vcmw/OiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuUkVHSVNUUkFUSU9OX1NUQVRVU30vJHtzb3VyY2V9YCkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBmZXRjaENvbmZpZyh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsKTtcbiAgfVxuXG4gIGFkZENlcnRUZW1wbGF0ZShib2R5OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPGFueT4oYCR7QVBJX0VORF9QT0lOVFMuQ0VSVF9BRERfVEVNUExBVEV9YCwgYm9keSk7XG4gIH1cblxuICBpc3N1ZUNlcnQoYm9keTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuQ0VSVF9JU1NVRX1gLCBib2R5KTtcbiAgfVxuICBkb3dubG9hZENlcnQoY2VydElkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNFUlRfRE9XTkxPQUQoY2VydElkKX1gKTtcbiAgfVxuXG4gIHRyZW5kaW5nQ29udGVudFNlYXJjaChyZXE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9FTkRfUE9JTlRTLlRSRU5ESU5HX0NPTlRFTlRfU0VBUkNILCByZXEpO1xuICB9XG5cbiAgZ2V0S2FybWFQb2l0bnMobGltaXQ6IG51bWJlciwgb2Zmc2V0OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuUkVBRF9LQVJNQVBPSU5UUywgeyBsaW1pdCwgb2Zmc2V0IH0pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSk7XG4gIH1cbiAgZmV0Y2hQcm9ncmFtQ29udGVudChjb250ZW50SWQ6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnRbXT4ge1xuICAgIGxldCB1cmwgPSAnJztcbiAgICBjb25zdCBmb3JQcmV2aWV3ID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9wdWJsaWMvJykgfHwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyZwcmV2aWV3PXRydWUnKTtcbiAgICBpZiAoIWZvclByZXZpZXcpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudFtdPihcbiAgICAgICAgQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SRUFEKGNvbnRlbnRJZCksXG4gICAgICApO1xuICAgIH1cbiAgICB1cmwgPSBgL2FwaS9jb250ZW50L3YxL3JlYWQvJHtjb250ZW50SWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4odXJsKTtcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SRUFEKGNvbnRlbnRJZCkpXG4gIH1cblxuICBnZXRDb3Vyc2VLYXJtYVBvaW50cyhyZXF1ZXN0OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBUElfRU5EX1BPSU5UUy5SRUFEX0NPVVJTRV9LQVJNQVBPSU5UUywgcmVxdWVzdCk7XG4gIH1cblxuICBjbGFpbUthcm1hcG9pbnRzKHJlcXVlc3Q6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9FTkRfUE9JTlRTLkNMQUlNX0tBUk1BUE9JTlRTLCByZXF1ZXN0KTtcbiAgfVxuXG4gIHVzZXJLYXJtYVBvaW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBUElfRU5EX1BPSU5UUy5VU0VSX0tBUk1BX1BPSU5UUywge30pO1xuICB9XG5cbiAgYXN5bmMgZ2V0RW5yb2xsZWREYXRhKGRvSWQ6IHN0cmluZykge1xuICAgIGxldCBlbnJvbGxlZERvSWQ6IGFueSA9IHRoaXMudXNlclN2Yy5lbnJvbGxtZW50RGF0YUlkcy5pbmNsdWRlcyhkb0lkKVxuICAgIGxldCB1c2VySWQgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWRcbiAgICBpZiAoZW5yb2xsZWREb0lkKSB7XG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLnVzZXJTdmMuZmV0Y2hFbnJvbGxtZW50RGF0YUJ5Q29udGVudElkKHVzZXJJZCwgZG9JZCkudG9Qcm9taXNlKCkudGhlbihhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY291cnNlcyAmJiByZXMuY291cnNlcy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gcmVzLmNvdXJzZXNcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgfVxuICAgICAgfSkuY2F0Y2goKF9lcnI6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gW11cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YSB8fCBbXVxuICAgIH1cbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIGFzeW5jIGdldFJlc291cnNlTGluayhjb250ZW50OiBhbnksIGVucm9sbG1lbnRMaXN0PzogYW55LCBjaGVja0ZvclJlc3VtZT86IGJvb2xlYW4sICBiYXNlQ29udGVudFJlYWQ/OiBhbnksbXVsdGlsaW5ndWFsSWQ/OnN0cmluZykge1xuICAgIGlmIChjb250ZW50ICYmIGNvbnRlbnQuY29udGVudCAmJiBjb250ZW50LmNvbnRlbnQuY2F0ZWdvcnkgPT09ICdFdmVudCcpIHtcbiAgICAgIGNvbnN0IHVybERhdGE6IGFueSA9IHtcbiAgICAgICAgdXJsOiBgYXBwL2V2ZW50LWh1Yi9ob21lLyR7Y29udGVudC5jb250ZW50LmlkZW50aWZpZXJ9YCxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHVybERhdGFcbiAgICB9XG4gICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5leHRlcm5hbElkKSB7XG4gICAgICBjb25zdCB1cmxEYXRhOiBhbnkgPSB7XG4gICAgICAgIHVybDogYGFwcC90b2MvZXh0LyR7Y29udGVudC5jb250ZW50SWR9YCxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHVybERhdGFcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNoZWNrRm9yUmVzdW1lKSB7XG4gICAgICAgIC8vIGNvbnN0IGVucm9sbGVkQ291cnNlOiBhbnkgPSBhd2FpdCB0aGlzLmdldEVucm9sbGVkRGF0YShjb250ZW50LmlkZW50aWZpZXIpO1xuICAgICAgICBjb25zdCBlbnJvbGxlZENvdXJzZTogYW55ID0gZW5yb2xsbWVudExpc3Q7XG4gICAgICAgIGlmIChlbnJvbGxlZENvdXJzZSAmJiBlbnJvbGxlZENvdXJzZS5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBlbnJvbGxlZENvdXJzZURhdGEgPSBlbnJvbGxlZENvdXJzZSAmJiBlbnJvbGxlZENvdXJzZT8ubGVuZ3RoICYmIGVucm9sbGVkQ291cnNlLmZpbmQoKGVsOiBhbnkpID0+IGVsPy5jb2xsZWN0aW9uSWQgPT09IGJhc2VDb250ZW50UmVhZCB8fCAgY29udGVudD8uaWRlbnRpZmllcilcbiAgICAgICAgICBpZiAoZW5yb2xsZWRDb3Vyc2VEYXRhICYmIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50ICYmIChlbnJvbGxlZENvdXJzZURhdGEuY29udGVudC5jb3Vyc2VDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gfHxcbiAgICAgICAgICAgIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LmNvdXJzZUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5LklOVklURV9PTkxZX1BST0dSQU0gfHxcbiAgICAgICAgICAgIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LmNvdXJzZUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5Lk1PREVSQVRFRF9QUk9HUkFNIHx8XG4gICAgICAgICAgICBlbnJvbGxlZENvdXJzZURhdGEuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkJMRU5ERURfUFJPR1JBTSB8fFxuICAgICAgICAgICAgZW5yb2xsZWRDb3Vyc2VEYXRhLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQmF0Y2hJblByb2dyZXNzKGVucm9sbGVkQ291cnNlRGF0YS5iYXRjaCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jaGVja0ZvckRhdGFUb0Zvcm1VcmwoY29udGVudCwgZW5yb2xsZWRDb3Vyc2VEYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH0ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2hlY2tGb3JEYXRhVG9Gb3JtVXJsKGNvbnRlbnQsIGVucm9sbGVkQ291cnNlRGF0YSwgIGJhc2VDb250ZW50UmVhZCwgbXVsdGlsaW5ndWFsSWQpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uZVN0ZXBSZXN1bWVFbmFibGUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYXN5bmMgY2hlY2tGb3JEYXRhVG9Gb3JtVXJsKGNvbnRlbnQ6IGFueSwgZW5yb2xsRGF0YTogYW55LCBiYXNlQ29udGVudFJlYWQ/OiBhbnksbXVsdGlsaW5ndWFsSWQ/OnN0cmluZykge1xuICAgIGxldCB1cmxEYXRhOiBhbnk7XG4gICAgaWYgKGVucm9sbERhdGE/LmNvbXBsZXRpb25QZXJjZW50YWdlID09PSAxMDApIHtcbiAgICAgIHJldHVybiB0aGlzLmdvdG9Ub2NQYWdlKGVucm9sbERhdGEpO1xuICAgIH1cbiAgICBpZiAoZW5yb2xsRGF0YT8ubHJjUHJvZ3Jlc3NEZXRhaWxzICYmIGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzLm1pbWVUeXBlKSB7XG4gICAgICBjb25zdCBtb2RpZnlFbnJvbGxEYXRhID0ge1xuICAgICAgICAuLi5lbnJvbGxEYXRhLFxuICAgICAgICBpZGVudGlmaWVyOiBlbnJvbGxEYXRhLmNvbGxlY3Rpb25JZCxcbiAgICAgICAgcHJpbWFyeUNhdGVnb3J5OiBlbnJvbGxEYXRhLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5LFxuICAgICAgICBuYW1lOiBlbnJvbGxEYXRhLmNvbnRlbnQubmFtZSxcbiAgICAgIH07XG4gICAgICBpZiAobW9kaWZ5RW5yb2xsRGF0YS5sYXN0UmVhZENvbnRlbnRJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJzZURhdGFXaXRoRGF0YShtb2RpZnlFbnJvbGxEYXRhLFxuICAgICAgICAgIGVucm9sbERhdGEubGFzdFJlYWRDb250ZW50SWQsIGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzLm1pbWVUeXBlLGNvbnRlbnQsICBiYXNlQ29udGVudFJlYWQsbXVsdGlsaW5ndWFsSWQpO1xuICAgICAgfVxuICAgICAgaWYgKG1vZGlmeUVucm9sbERhdGEuZmlyc3RDaGlsZElkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlc291cnNlRGF0YVdpdGhEYXRhKG1vZGlmeUVucm9sbERhdGEsXG4gICAgICAgICAgZW5yb2xsRGF0YS5maXJzdENoaWxkSWQsXG4gICAgICAgICAgZW5yb2xsRGF0YS5scmNQcm9ncmVzc0RldGFpbHMubWltZVR5cGUsIGNvbnRlbnQsICBiYXNlQ29udGVudFJlYWQsbXVsdGlsaW5ndWFsSWQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5yb2xsRGF0YS5maXJzdENoaWxkSWQgfHwgZW5yb2xsRGF0YS5sYXN0UmVhZENvbnRlbnRJZCkge1xuICAgICAgY29uc3QgZG9JZCA9IGVucm9sbERhdGEuZmlyc3RDaGlsZElkIHx8IGVucm9sbERhdGEubGFzdFJlYWRDb250ZW50SWQ7XG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmZldGNoUHJvZ3JhbUNvbnRlbnQoZG9JZCkudG9Qcm9taXNlKCkudGhlbihhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcyAmJiByZXMucmVzdWx0ICYmIHJlcy5yZXN1bHQuY29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnREYXRhOiBhbnkgPSByZXMucmVzdWx0LmNvbnRlbnQ7XG4gICAgICAgICAgY29uc3QgbW9kaWZ5RW5yb2xsRGF0YSA9IHtcbiAgICAgICAgICAgIC4uLmVucm9sbERhdGEsXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBlbnJvbGxEYXRhLmNvbGxlY3Rpb25JZCxcbiAgICAgICAgICAgIHByaW1hcnlDYXRlZ29yeTogZW5yb2xsRGF0YS5jb250ZW50LnByaW1hcnlDYXRlZ29yeSxcbiAgICAgICAgICAgIG5hbWU6IGVucm9sbERhdGEuY29udGVudC5uYW1lLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdXJsRGF0YSA9IHRoaXMuZ2V0UmVzb3Vyc2VEYXRhV2l0aERhdGEobW9kaWZ5RW5yb2xsRGF0YSwgY29udGVudERhdGEuaWRlbnRpZmllciwgY29udGVudERhdGEubWltZVR5cGUsY29udGVudCwgIGJhc2VDb250ZW50UmVhZCxtdWx0aWxpbmd1YWxJZCk7XG4gICAgICAgICAgaWYgKHVybERhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiB1cmxEYXRhO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2VEYXRhID8gcmVzcG9uc2VEYXRhIDogdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG5cbiAgfVxuXG4gIGdldFJlc291cnNlRGF0YVdpdGhEYXRhKGVucm9sbG1lbnREYXRhOiBhbnksIHJlc291cmNlSWQ6IGFueSwgbWltZVR5cGU6IGFueSxjb250ZW50OmFueSwgYmFzZUNvbnRlbnRSZWFkPzogYW55LG11bHRpbGluZ3VhbElkPzpzdHJpbmcpIHtcbiAgICAgICAgaWYoZW5yb2xsbWVudERhdGEgJiYgZW5yb2xsbWVudERhdGEucmVjZW50X2xhbmd1YWdlKSB7XG4gICAgICAgIGlmKGJhc2VDb250ZW50UmVhZC5sYW5ndWFnZU1hcFYxICYmIE9iamVjdC5rZXlzKGJhc2VDb250ZW50UmVhZC5sYW5ndWFnZU1hcFYxKS5sZW5ndGgpIHsgXG4gICAgICAgICAgY29uc3QgcmVjZW50X0xBTkdfREFUQSA9IGJhc2VDb250ZW50UmVhZC5sYW5ndWFnZU1hcFYxW2Vucm9sbG1lbnREYXRhLnJlY2VudF9sYW5ndWFnZV07XG4gICAgICAgICAgaWYocmVjZW50X0xBTkdfREFUQSAmJiByZWNlbnRfTEFOR19EQVRBLmlkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvUGxheWVyUGFnZShlbnJvbGxtZW50RGF0YSwgY29udGVudCwgYmFzZUNvbnRlbnRSZWFkPy5pZGVudGlmaWVyLCByZXNvdXJjZUlkLCBtaW1lVHlwZSwgZW5yb2xsbWVudERhdGEucmVjZW50X2xhbmd1YWdlLCByZWNlbnRfTEFOR19EQVRBLmlkICkgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IFxuICAgICAgaWYoZW5yb2xsbWVudERhdGEpIHtcbiAgICAgICAgY29uc3QgQkFTRV9MQU5HID0gdGhpcy5jb250ZW50TGFuZ3VhZ2VTdmMuZ2V0QmFzZUxhbmd1YWdlKGJhc2VDb250ZW50UmVhZCk7XG4gICAgICAgIGlmKEJBU0VfTEFORyAmJiBPYmplY3Qua2V5cyhCQVNFX0xBTkcpLmxlbmd0aCApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvUGxheWVyUGFnZShlbnJvbGxtZW50RGF0YSwgY29udGVudCwgYmFzZUNvbnRlbnRSZWFkPy5pZGVudGlmaWVyLCByZXNvdXJjZUlkLCBtaW1lVHlwZSwgQkFTRV9MQU5HLmxhbmdJZCwgQkFTRV9MQU5HLmlkICkgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBcbiAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShlbnJvbGxtZW50RGF0YSk7XG4gIH1cblxuXG4gIGdvdG9QbGF5ZXJQYWdlKG5hdmlnYXRpb25EYXRhOiBhbnksIGNvbnRlbnQ6YW55LCBiYXNlQ29udGVudElkOnN0cmluZywgcmVzb3VyY2VJZDpzdHJpbmcsIG1pbWVUeXBlOmFueSwgbWw/OnN0cmluZywgbWxJZD86c3RyaW5nKSAge1xuICAgIGlmIChuYXZpZ2F0aW9uRGF0YSkge1xuICAgICAgY29uc3QgdXJsID0gdmlld2VyUm91dGVHZW5lcmF0b3IoXG4gICAgICAgIHJlc291cmNlSWQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICBiYXNlQ29udGVudElkLFxuICAgICAgICAnQ291cnNlJyxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgICdMZWFybmluZyBSZXNvdXJjZScsXG4gICAgICAgIG5hdmlnYXRpb25EYXRhLmJhdGNoSWQsXG4gICAgICAgIGNvbnRlbnQubmFtZSxcbiAgICAgICAgbWwsXG4gICAgICAgIG1sSWQsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gIH1cblxuICBnb3RvVG9jUGFnZShjb250ZW50OiBhbnkpIHtcbiAgICBpZiAoY29udGVudCAmJiBjb250ZW50LmNvdXJzZUNhdGVnb3J5ICYmIGNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09IE5zQ29udGVudC5FQ291cnNlQ2F0ZWdvcnkuTVVMVElMSU5HVUFMX0NPVVJTRSkge1xuICAgICAgY29uc3QgYmFzZUNvbnRlbnREYXRhID0gdGhpcy5jb250ZW50TGFuZ3VhZ2VTdmMuZ2V0QmFzZUxhbmd1YWdlKGNvbnRlbnQpO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRMYW5ndWFnZSA9IGNvbnRlbnQgJiYgY29udGVudC5sYW5ndWFnZSAmJiBjb250ZW50Lmxhbmd1YWdlLmxlbmd0aCA/IFxuICAgICAgICBjb250ZW50Lmxhbmd1YWdlWzBdLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgICAgIFxuICAgICAgaWYgKGJhc2VDb250ZW50RGF0YSAmJiBPYmplY3Qua2V5cyhiYXNlQ29udGVudERhdGEpLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHVybDogYC9hcHAvdG9jLyR7YmFzZUNvbnRlbnREYXRhLmlkZW50aWZpZXJ9L292ZXJ2aWV3YCxcbiAgICAgICAgICBxdWVyeVBhcmFtczogeyBcbiAgICAgICAgICAgIE1MSWQ6IGNvbnRlbnQuaWRlbnRpZmllcixcbiAgICAgICAgICAgIE1MOiBzZWxlY3RlZExhbmd1YWdlLFxuICAgICAgICAgICAgLi4uKGNvbnRlbnQuYmF0Y2hJZCA/IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0gOiB7fSlcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBjb25zdCB1cmxEYXRhID0ge1xuICAgICAgdXJsOiBgL2FwcC90b2MvJHtjb250ZW50LmlkZW50aWZpZXIgfHwgY29udGVudC5jb2xsZWN0aW9uSWR9L292ZXJ2aWV3YCxcbiAgICAgIHF1ZXJ5UGFyYW1zOiBjb250ZW50LmJhdGNoSWQgPyB7IGJhdGNoSWQ6IGNvbnRlbnQuYmF0Y2hJZCB9IDoge30gYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICB9O1xuICAgIGlmIChjb250ZW50LmVuZERhdGUgJiYgY29udGVudD8uY291cnNlQ2F0ZWdvcnkgIT09IE5zQ29udGVudC5FQ291cnNlQ2F0ZWdvcnkuQ09NUFJFSEVOU0lWRV9BU1NFU1NNRU5UX1BST0dSQU0pIHtcbiAgICAgIHVybERhdGEucXVlcnlQYXJhbXMgPSB7IC4uLnVybERhdGEucXVlcnlQYXJhbXMsIHBsYW5UeXBlOiAnY2JQbGFuJywgZW5kRGF0ZTogY29udGVudC5lbmREYXRlIH07XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB1cmxEYXRhO1xuICB9XG5cbiAgaXNCYXRjaEluUHJvZ3Jlc3MoYmF0Y2hEYXRhOiBhbnkpIHtcbiAgICAvLyBpZiAodGhpcy5jb250ZW50ICYmIHRoaXMuY29udGVudFsnYmF0Y2hlcyddKSB7XG4gICAgLy8gY29uc3QgYmF0Y2hlcyA9IHRoaXMuY29udGVudFsnYmF0Y2hlcyddIGFzIE5zQ29udGVudC5JQmF0Y2hcbiAgICBpZiAoYmF0Y2hEYXRhICYmIGJhdGNoRGF0YS5lbmREYXRlKSB7XG4gICAgICBjb25zdCBub3cgPSBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudChiYXRjaERhdGEuc3RhcnREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgIGNvbnN0IGVuZERhdGUgPSBiYXRjaERhdGEuZW5kRGF0ZSA/IG1vbWVudChiYXRjaERhdGEuZW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJykgOiBub3c7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAvLyBiYXRjaC5zdGF0dXMgJiZcbiAgICAgICAgbW9tZW50KHN0YXJ0RGF0ZSkuaXNTYW1lT3JCZWZvcmUobm93KVxuICAgICAgICAmJiBtb21lbnQoZW5kRGF0ZSkuaXNTYW1lT3JBZnRlcihub3cpXG4gICAgICApO1xuICAgIH0gcmV0dXJuIHRydWU7XG4gIH1cbiAgcG9zdEFwaU1ldGhvZChhcGlVcmw6IGFueSwgcmVxOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnQuSUNvbnRlbnQ+KGFwaVVybCwgcmVxKTtcbiAgfVxuICBnZXRBcGlNZXRob2QoYXBpVXJsOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIC8vIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnQ+KGFwaVVybCk7XG4gIH1cblxuXG4gIGdldEVucm9sbGVkRGF0YUZyb21MaXN0KGVucm9sbG1lbnRMaXN0OiBhbnksIGNvbGxlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgaWYgKGVucm9sbG1lbnRMaXN0ICYmIGVucm9sbG1lbnRMaXN0Lmxlbmd0aCkge1xuICAgICAgbGV0IGVucm9sbGVkRGF0YSA9IGVucm9sbG1lbnRMaXN0LmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5jb2xsZWN0aW9uSWQgPT09IGNvbGxlY3Rpb25JZClcbiAgICAgIHJldHVybiBlbnJvbGxlZERhdGEubGVuZ3RoID8gZW5yb2xsZWREYXRhWzBdIDoge31cbiAgICB9XG4gIH1cblxuICBzZXRSZWxldmVudE5vdFJlbGV2ZW50RGF0YShkYXRhOiB7aXNSZWxldmVudDogYm9vbGVhbiwgd2lkZ2V0RGF0YTogYW55fSkge1xuICAgIHRoaXMucmVsZXZlbnROb3RSZWxldmVudC5uZXh0KGRhdGEpXG4gIH1cblxuICBzYXZlRmVlZGJhY2tTYWtzaGFtQUkocmVxdWVzdEJvZHk6IGFueSkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0FWRV9TQUtTSEFNQUlfUkVDT01NRU5ERURfRkVFREJBQ0ssIHJlcXVlc3RCb2R5KS5waXBlKG1hcChcbiAgICAgIGFzeW5jIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGRhdGFcbiAgICAgIH0pXG4gICAgKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHNldFJlY29tbWVuZGVkSWRzKHJlY29tbWVuZGVkSWRzOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JlY29tbWVuZGVkSWRzJykgPyBcbiAgICB0aGlzLnN0b3JlZFJlY29tbWVuZGVkSWRzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVjb21tZW5kZWRJZHMnKSB8fCAne30nKSA6IHt9XG5cbiAgICB0aGlzLnN0b3JlZFJlY29tbWVuZGVkSWRzW3VzZXJJZF0gPSByZWNvbW1lbmRlZElkc1xuXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlY29tbWVuZGVkSWRzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zdG9yZWRSZWNvbW1lbmRlZElkcykpXG4gIH1cblxuICBnZXRSZWNvbW1lbmRlZElkcyh1c2VySWQ6IHN0cmluZykge1xuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZWNvbW1lbmRlZElkcycpID8gXG4gICAgICB0aGlzLnN0b3JlZFJlY29tbWVuZGVkSWRzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVjb21tZW5kZWRJZHMnKSB8fCAne30nKSA6IHt9XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUmVjb21tZW5kZWRJZHNbdXNlcklkXVxuICB9XG5cbiAgc2V0RmVlZGJhY2tEYXRhKGZlZWRiYWNrRGF0YUFycmF5OiBhbnlbXSkge1xuICAgIGZlZWRiYWNrRGF0YUFycmF5LmZvckVhY2goZmVlZGJhY2tEYXRhID0+IHtcbiAgICAgIHRoaXMuZmVlZGJhY2tEYXRhRm9yQ291cnNlW2ZlZWRiYWNrRGF0YS5jb3Vyc2VfaWRdID0gZmVlZGJhY2tEYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RmVlZGJhY2tEYXRhKGNvdXJzZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5mZWVkYmFja0RhdGFGb3JDb3Vyc2VbY291cnNlSWRdXG4gIH1cblxuICBmaWx0ZXJDb3Vyc2VzV2l0aE5vUmF0aW5nKHJlc3BvbnNlOiBhbnksIGNvdXJzZXM6IGFueVtdKSB7XG4gICAgaWYgKCFyZXNwb25zZT8uZmVlZGJhY2tzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBjb3Vyc2VzOyBcbiAgICB9XG4gICAgXG4gICAgY29uc3QgY291cnNlc1dpdGhaZXJvUmF0aW5nID0gbmV3IFNldChcbiAgICAgIHJlc3BvbnNlLmZlZWRiYWNrc1xuICAgICAgICAuZmlsdGVyKChmZWVkYmFjazogYW55KSA9PiBmZWVkYmFjay5yYXRpbmcgPT09IDApXG4gICAgICAgIC5tYXAoKGZlZWRiYWNrOiBhbnkpID0+IGZlZWRiYWNrLmNvdXJzZV9pZClcbiAgICApO1xuICBcbiAgICByZXR1cm4gY291cnNlcy5maWx0ZXIoKGNvdXJzZTogYW55KSA9PiAhY291cnNlc1dpdGhaZXJvUmF0aW5nLmhhcyhjb3Vyc2UuaWRlbnRpZmllcikpO1xuICB9XG5cbiAgc2V0VGVsZW1lbnRyeVN1YnNjcmlwdGlvbihldmVudDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNUZWxlbWVudHJ5U3Vic2NyaWJlZCA9IGV2ZW50XG4gIH1cbn1cbiJdfQ==
641
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQtbGliLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY29uc3VtcHRpb24vc3JjL2xpYi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQtbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsaUJBQWlCO0FBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFBO0FBQzNCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRTFELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7O0FBRTVCLGdCQUFnQjtBQUVoQix1Q0FBdUM7QUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQztBQUMvQyxNQUFNLGtCQUFrQixHQUFHLHFDQUFxQyxDQUFBO0FBQ2hFLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixVQUFVO0lBQ3ZDLGlCQUFpQixFQUFFLDBCQUEwQjtJQUM3QyxhQUFhLEVBQUUsR0FBRyxpQkFBaUIsb0JBQW9CO0lBQ3ZELGFBQWEsRUFBRSxHQUFHLGlCQUFpQixvQkFBb0I7SUFDdkQsbUJBQW1CLEVBQUUsR0FBRyxpQkFBaUIseUJBQXlCO0lBQ2xFLGNBQWMsRUFBRSxHQUFHLGlCQUFpQiwrQkFBK0I7SUFDbkUsc0JBQXNCLEVBQUUsR0FBRyxp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QUUsTUFBTSxFQUFFO1lBQ2hDLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsQ0FDbkMsUUFBUSxDQUFDLFNBQVM7YUFDZixNQUFNLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2FBQ2hELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUM5QyxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBYztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO0lBQ3JDLENBQUM7K0dBcHJCVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBFTVBUWSwgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCByZXRyeSwgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5zQ29udGVudFN0cmlwTXVsdGlwbGUgfSBmcm9tICcuLi9fbW9kZWxzL2NvbnRlbnQtc3RyaXAtbXVsdGlwbGUubW9kZWwnO1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi4vX21vZGVscy93aWRnZXQtY29udGVudC5tb2RlbCc7XG5pbXBvcnQgeyBOU1NlYXJjaCB9IGZyb20gJy4uL19tb2RlbHMvd2lkZ2V0LXNlYXJjaC5tb2RlbCc7XG4vLyB0c2xpbnQ6ZGlzYWJsZVxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyB2aWV3ZXJSb3V0ZUdlbmVyYXRvciB9IGZyb20gJy4vdmlld2VyLXJvdXRlLXV0aWwnXG5pbXBvcnQgeyBXaWRnZXRVc2VyU2VydmljZUxpYiB9IGZyb20gJy4vd2lkZ2V0LXVzZXItbGliLnNlcnZpY2UnXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBDb250ZW50TGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZW50LWxhbmd1YWdlLnNlcnZpY2UnO1xuLy8gdHNsaW50OmVuYWJsZVxuXG4vLyBUT0RPOiBtb3ZlIHRoaXMgaW4gc29tZSBjb21tb24gcGxhY2VcbmNvbnN0IFBST1RFQ1RFRF9TTEFHX1Y4ID0gJy9hcGlzL3Byb3RlY3RlZC92OCc7XG5jb25zdCBQUk9EX0JBU0VfRU5EUE9JTlQgPSAnaHR0cHM6Ly9wb3J0YWwuaWdvdGthcm1heW9naS5nb3YuaW4nXG5jb25zdCBBUElfRU5EX1BPSU5UUyA9IHtcbiAgQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnRgLFxuICBBVVRIT1JJTkdfQ09OVEVOVDogYC9hcGkvY291cnNlL3YxL2hpZXJhcmNoeWAsXG4gIENPTlRFTlRfTElLRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2xpa2VDb3VudGAsXG4gIFNFVF9TM19DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldENvb2tpZWAsXG4gIFNFVF9TM19JTUFHRV9DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldEltYWdlQ29va2llYCxcbiAgRkVUQ0hfTUFOSUZFU1Q6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZU1hbmlmZXN0YCxcbiAgRkVUQ0hfV0VCX01PRFVMRV9GSUxFUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvZ2V0V2ViTW9kdWxlRmlsZXNgLFxuICBNVUxUSVBMRV9DT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9tdWx0aXBsZWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y1OiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZWFyY2hWNWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBUUkVORElOR19DT05URU5UX1NFQVJDSDogYGFwaXMvcHJveGllcy92OC90cmVuZGluZy9jb250ZW50L3NlYXJjaGAsXG4gIENPTlRFTlRfU0VBUkNIX1JFTEFURURfQ0JQX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBDT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT046IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uYCxcbiAgQ09OVEVOVF9ISVNUT1JZOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9oaXN0b3J5YCxcbiAgQ09OVEVOVF9ISVNUT1JZVjI6IGAvYXBpcy9wcm94aWVzL3Y4L3JlYWQvY29udGVudC1wcm9ncmVzYCxcbiAgQ09VUlNFX0JBVENIX0xJU1Q6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2JhdGNoL2xpc3RgLFxuICBDT1VSU0VfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2NvdXJzZS92MS9iYXRjaC9yZWFkYCxcbiAgQVVUT19BU1NJR05fQkFUQ0g6IGAvYXBpcy9wcm90ZWN0ZWQvdjgvY29ob3J0cy91c2VyL2F1dG9lbnJvbGxtZW50L2AsXG4gIEFVVE9fQVNTSUdOX0NVUkFURURfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2N1cmF0ZWRwcm9ncmFtL3YxL2Vucm9sYCxcbiAgQVVUT19BU1NJR05fT1BFTl9QUk9HUkFNOiBgL2FwaXMvcHJveGllcy92OC9vcGVucHJvZ3JhbS92MS9lbnJvbGAsXG4gIFVTRVJfQ09OVElOVUVfTEVBUk5JTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnkvY29udGludWVgLFxuICBDT05URU5UX1JBVElORzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvcmF0aW5nYCxcbiAgQ09MTEVDVElPTl9ISUVSQVJDSFk6ICh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpID0+XG4gICAgYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvY29sbGVjdGlvbi8ke3R5cGV9LyR7aWR9YCxcbiAgUkVHSVNUUkFUSU9OX1NUQVRVUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2FkbWluL3VzZXJSZWdpc3RyYXRpb24vY2hlY2tVc2VyUmVnaXN0cmF0aW9uQ29udGVudGAsXG4gIE1BUktfQVNfQ09NUExFVEVfTUVUQTogKGNvbnRlbnRJZDogc3RyaW5nKSA9PiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9wcm9ncmVzcy8ke2NvbnRlbnRJZH1gLFxuICBFTlJPTExfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2Vucm9sYCxcbiAgRU5ST0xMX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbGAsXG4gIFdJVEhEUkFXX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91bmVucm9sYCxcbiAgQkxFTkRFRF9VU0VSX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91c2VyL3NlYXJjaGAsXG4gIEJMRU5ERURfVVNFUl9DT1VOVDogYGFwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbC9zdGF0dXMvY291bnRgLFxuICBDRVJUX0FERF9URU1QTEFURTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvdGVtcGxhdGUvYWRkYCxcbiAgQ0VSVF9JU1NVRTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvaXNzdWVgLFxuICBDRVJUX0RPV05MT0FEOiAoY2VydElkOiBhbnkpID0+IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb2hvcnRzL2NvdXJzZS9iYXRjaC9jZXJ0L2Rvd25sb2FkLyR7Y2VydElkfWAsXG4gIFJFQURfS0FSTUFQT0lOVFM6IGAvYXBpcy9wcm94aWVzL3Y4L2thcm1hcG9pbnRzL3JlYWRgLFxuICBDT05URU5UX1JFQUQ6IChjb250ZW50SWQ6IGFueSkgPT4gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gLFxuICBSRUFEX0NPVVJTRV9LQVJNQVBPSU5UUzogJy9hcGlzL3Byb3hpZXMvdjgva2FybWFwb2ludHMvdXNlci9jb3Vyc2UvcmVhZCcsXG4gIENMQUlNX0tBUk1BUE9JTlRTOiAnL2FwaXMvcHJveGllcy92OC9jbGFpbWthcm1hcG9pbnRzJyxcbiAgVVNFUl9LQVJNQV9QT0lOVFM6ICcvYXBpcy9wcm94aWVzL3Y4L3VzZXIvdG90YWxrYXJtYXBvaW50cycsXG4gIEFHR1JFR0FUSU9OX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvY29udGVudC9hZ2dyZWdhdGlvbi9zZWFyY2gnLFxuICBGRUFUVVJFX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvZmVhdHVyZWQvY29udGVudC9zZWFyY2gnLFxuICBTQVZFX1NBS1NIQU1BSV9SRUNPTU1FTkRFRF9GRUVEQkFDSzogYC9hcGlzL3Byb3hpZXMvdjgvY291cnNlUmVjb21tZW5kYXRpb24vZmVlZGJhY2tgLFxuICBDT05URU5UX1NFQVJDSDogYC9hcGkvY29udGVudC92MS9zZWFyY2hgXG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGVudExpYlNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTdmM6IFdpZGdldFVzZXJTZXJ2aWNlTGliLFxuICAgIHByaXZhdGUgY29udGVudExhbmd1YWdlU3ZjOiBDb250ZW50TGFuZ3VhZ2VTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIHRvY0NvbmZpZ0RhdGE6IGFueSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHRvY0NvbmZpZ0RhdGEkID0gdGhpcy50b2NDb25maWdEYXRhLmFzT2JzZXJ2YWJsZSgpO1xuICBvbmVTdGVwUmVzdW1lRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHRlbGVtZXRyeURhdGE6IGFueSA9IG5ldyBTdWJqZWN0PGFueT4oKVxuICBwdWJsaWMgdGVsZW1ldHJ5RGF0YSQgPSB0aGlzLnRlbGVtZXRyeURhdGEuYXNPYnNlcnZhYmxlKClcbiAgdGVsZW1ldHJ5RXZlbnREYXRhOiBhbnkgPSBuZXcgU3ViamVjdDxhbnk+KClcbiAgdGVsZW1ldHJ5RXZlbnREYXRhJCA9IHRoaXMudGVsZW1ldHJ5RXZlbnREYXRhLmFzT2JzZXJ2YWJsZSgpXG4gIGN1cnJlbnRNZXRhRGF0YSE6IE5zQ29udGVudC5JQ29udGVudDtcbiAgY3VycmVudENvbnRlbnRSZWFkTWV0YURhdGEhOiBOc0NvbnRlbnQuSUNvbnRlbnQ7XG4gIGN1cnJlbnRCYXRjaEVucm9sbG1lbnRMaXN0ITogTnNDb250ZW50LklDb3Vyc2VbXTtcbiAgcHJvZ3JhbUNoaWxkQ291cnNlUmVzdW1lRGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHByb2dyYW1DaGlsZENvdXJzZVJlc3VtZURhdGEkID0gdGhpcy5wcm9ncmFtQ2hpbGRDb3Vyc2VSZXN1bWVEYXRhLmFzT2JzZXJ2YWJsZSgpO1xuICByZWxldmVudE5vdFJlbGV2ZW50ID0gbmV3IFN1YmplY3Q8eyBpc1JlbGV2ZW50OiBib29sZWFuOyB3aWRnZXREYXRhOiBhbnkgfT4oKTtcbiAgcmVsZXZlbnROb3RSZWxldmVudCQgPSB0aGlzLnJlbGV2ZW50Tm90UmVsZXZlbnQuYXNPYnNlcnZhYmxlKClcbiAgc3RvcmVkUmVjb21tZW5kZWRJZHM6IGFueSA9IHt9O1xuICBmZWVkYmFja0RhdGFGb3JDb3Vyc2U6IGFueSA9IHt9O1xuICBpc1RlbGVtZW50cnlTdWJzY3JpYmVkID0gZmFsc2VcbiAgY2hhbmdlVGVsZW1ldHJ5RGF0YShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRlbGVtZXRyeURhdGEubmV4dChtZXNzYWdlKTtcbiAgfVxuXG4gIGNoYW5nZVRlbGVtZXRyeUV2ZW50RGF0YShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnRlbGVtZXRyeUV2ZW50RGF0YS5uZXh0KGRhdGEpO1xuICB9XG4gIGlzUmVzb3VyY2UocHJpbWFyeUNhdGVnb3J5OiBzdHJpbmcpIHtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5KSB7XG4gICAgICBjb25zdCBpc1Jlc291cmNlID0gKHByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVSZXNvdXJjZVByaW1hcnlDYXRlZ29yaWVzLkxFQVJOSU5HX1JFU09VUkNFKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuUFJBQ1RJQ0VfUkVTT1VSQ0UpIHx8XG4gICAgICAgIChwcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUmVzb3VyY2VQcmltYXJ5Q2F0ZWdvcmllcy5GSU5BTF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuQ09NUF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuT0ZGTElORV9TRVNTSU9OKTtcbiAgICAgIHJldHVybiBpc1Jlc291cmNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmZXRjaE1hcmtBc0NvbXBsZXRlTWV0YShpZGVudGlmaWVyOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLk1BUktfQVNfQ09NUExFVEVfTUVUQShpZGVudGlmaWVyKVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkudG9Qcm9taXNlKClcbiAgICBpZiAodXJsKSB7IH1cbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwZGF0ZVRvY0NvbmZpZyhkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnRvY0NvbmZpZ0RhdGEubmV4dChkYXRhKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudChcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcbiAgICBoaWVyYXJjaHlUeXBlOiAnYWxsJyB8ICdtaW5pbWFsJyB8ICdkZXRhaWwnID0gJ2RldGFpbCcsXG4gICAgX2FkZGl0aW9uYWxGaWVsZHM6IHN0cmluZ1tdID0gW10sXG4gICAgcHJpbWFyeUNhdGVnb3J5Pzogc3RyaW5nIHwgbnVsbCxcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcbiAgICAvLyBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UfS8ke2NvbnRlbnRJZH0/aGllcmFyY2h5VHlwZT0ke2hpZXJhcmNoeVR5cGV9YFxuICAgIGxldCB1cmwgPSAnJztcbiAgICBjb25zdCBmb3JQcmV2aWV3ID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9wdWJsaWMvJykgfHwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyZwcmV2aWV3PXRydWUnKTtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5ICYmIHRoaXMuaXNSZXNvdXJjZShwcmltYXJ5Q2F0ZWdvcnkpKSB7XG4gICAgICBpZiAoIWZvclByZXZpZXcpIHtcbiAgICAgICAgdXJsID0gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gYC9hcGkvY29udGVudC92MS9yZWFkLyR7Y29udGVudElkfWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZm9yUHJldmlldykge1xuICAgICAgICB1cmwgPSBgL2FwaXMvcHJveGllcy92OC9hY3Rpb24vY29udGVudC92My9oaWVyYXJjaHkvJHtjb250ZW50SWR9P2hpZXJhcmNoeVR5cGU9JHtoaWVyYXJjaHlUeXBlfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmb3JjcmVhdG9yID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2VkaXRNb2RlPXRydWUnKTtcbiAgICAgICAgaWYgKGZvcmNyZWF0b3IpIHtcbiAgICAgICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cmwgPSBgL2FwaS9jb3Vyc2UvdjEvaGllcmFyY2h5LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPSR7aGllcmFyY2h5VHlwZX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcbiAgICAvLyAgIC5wb3N0PE5zQ29udGVudC5JQ29udGVudD4odXJsLCB7IGFkZGl0aW9uYWxGaWVsZHMgfSlcbiAgICAvLyAgIC5waXBlKHJldHJ5KDEpKVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8TnNDb250ZW50LklDb250ZW50Pih1cmwpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgLy8gaWYgKGFwaURhdGEgJiYgYXBpRGF0YS5yZXN1bHQpIHtcbiAgICAvLyAgIHJldHVybiBhcGlEYXRhLnJlc3VsdC5jb250ZW50XG4gICAgLy8gfVxuICB9XG4gIGZldGNoQXV0aG9yaW5nQ29udGVudChjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XG4gICAgY29uc3QgZm9yY3JlYXRvciA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdlZGl0TW9kZT10cnVlJyk7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChmb3JjcmVhdG9yKSB7XG4gICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gYCR7QVBJX0VORF9QT0lOVFMuQVVUSE9SSU5HX0NPTlRFTlR9LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPWRldGFpbGA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudD4odXJsKS5waXBlKHNoYXJlUmVwbGF5KDEpLCByID0+IHIpO1xuICB9XG4gIGZldGNoTXVsdGlwbGVDb250ZW50KGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuTVVMVElQTEVfQ09OVEVOVH0vJHtpZHMuam9pbignLCcpfWAsXG4gICAgKTtcbiAgfVxuICBmZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIgPSAwLCBwYWdlU2l6ZTogbnVtYmVyID0gMSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29sbGVjdGlvbkhpZXJhcmNoeVJlc3BvbnNlPihcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTExFQ1RJT05fSElFUkFSQ0hZKFxuICAgICAgICB0eXBlLFxuICAgICAgICBpZCxcbiAgICAgICl9P3BhZ2VOdW1iZXI9JHtwYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke3BhZ2VTaXplfWAsXG4gICAgKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZENvdXJzZSgpIHtcblxuICB9XG5cbiAgZmV0Y2hDb3Vyc2VCYXRjaGVzKHJlcTogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oQVBJX0VORF9QT0lOVFMuQ09VUlNFX0JBVENIX0xJU1QsIHJlcSlcbiAgICAgIC5waXBlKFxuICAgICAgICByZXRyeSgxKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0LnJlc3BvbnNlXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvLyBmZXRjaCBpbmRpdmlkdWFsIGJhdGNoXG4gIGZldGNoQ291cnNlQmF0Y2goYmF0Y2hJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT1VSU0VfQkFUQ0h9LyR7YmF0Y2hJZH1gLFxuICAgICk7XG4gIH1cblxuICBhdXRvQXNzaWduQmF0Y2hBcGkoaWRlbnRpZmllcjogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oYCR7QVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fQkFUQ0h9JHtpZGVudGlmaWVyfWApXG4gICAgICAucGlwZShcbiAgICAgICAgcmV0cnkoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnJlc3VsdC5yZXNwb25zZVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgYXV0b0Fzc2lnbkN1cmF0ZWRCYXRjaEFwaShyZXF1ZXN0OiBhbnksIHByb2dyYW1UeXBlOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQmF0Y2hMaXN0UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBwcm9ncmFtVHlwZSA9PT0gTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5NT0RFUkFURURfUFJPR1JBTSA/XG4gICAgICBBUElfRU5EX1BPSU5UUy5BVVRPX0FTU0lHTl9PUEVOX1BST0dSQU0gOiBBUElfRU5EX1BPSU5UUy5BVVRPX0FTU0lHTl9DVVJBVEVEX0JBVENIO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPihgJHt1cmx9YCwgcmVxdWVzdClcbiAgICAgIC5waXBlKFxuICAgICAgICByZXRyeSgxKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0LnJlc3BvbnNlXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBlbnJvbGxVc2VyVG9CYXRjaChyZXE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLkVOUk9MTF9CQVRDSCwgcmVxKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZW5yb2xsQW5kVW5lbnJvbGxVc2VyVG9CYXRjaFdGKHJlcTogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBjb25zdCB1cmw6IGFueSA9IHR5cGUgPT09ICdXSVRIRFJBVycgPyBBUElfRU5EX1BPSU5UUy5XSVRIRFJBV19CQVRDSF9XRiA6IEFQSV9FTkRfUE9JTlRTLkVOUk9MTF9CQVRDSF9XRjtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIHJlcSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZFVzZXJXRihyZXE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLkJMRU5ERURfVVNFUl9XRiwgcmVxKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hCbGVuZGVkVXNlckNPVU5UKHJlcTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoQVBJX0VORF9QT0lOVFMuQkxFTkRFRF9VU0VSX0NPVU5ULCByZXEpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBmZXRjaENvbnRlbnRMaWtlcyhjb250ZW50SWRzOiB7IGNvbnRlbnRfaWQ6IHN0cmluZ1tdIH0pIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDx7IFtpZGVudGlmaWVyOiBzdHJpbmddOiBudW1iZXIgfT4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9MSUtFUywgY29udGVudElkcylcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuICBmZXRjaENvbnRlbnRSYXRpbmdzKGNvbnRlbnRJZHM6IHsgY29udGVudElkczogc3RyaW5nW10gfSkge1xuICAgIGlmIChjb250ZW50SWRzKSB7IH1cbiAgICAvLyByZXR1cm4gdGhpcy5odHRwXG4gICAgLy8gICAucG9zdChgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vcmF0aW5nYCwgY29udGVudElkcylcbiAgICAvLyAgIC50b1Byb21pc2UoKVxuICAgIHJldHVybiBvZigpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hDb250ZW50SGlzdG9yeShjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGludWVMZWFybmluZ0RhdGE+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9ISVNUT1JZfS8ke2NvbnRlbnRJZH1gLFxuICAgICk7XG4gIH1cblxuICBmZXRjaENvbnRlbnRIaXN0b3J5VjIocmVxOiBOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhUmVxKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XG4gICAgcmVxLnJlcXVlc3QuZmllbGRzID0gWydwcm9ncmVzc2RldGFpbHMnXTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX0hJU1RPUllWMn0vJHtyZXEucmVxdWVzdC5jb3Vyc2VJZH1gLCByZXFcbiAgICApO1xuICAgIGRhdGEuc3Vic2NyaWJlKChzdWJzY3JpYmVEYXRhOiBhbnkpID0+IHtcbiAgICAgIHRoaXMucHJvZ3JhbUNoaWxkQ291cnNlUmVzdW1lRGF0YS5uZXh0KHsgcmVzdW1lRGF0YTogc3Vic2NyaWJlRGF0YS5yZXN1bHQuY29udGVudExpc3QsIGNvdXJzZUlkOiByZXEucmVxdWVzdC5jb3Vyc2VJZCB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGNvbnRpbnVlTGVhcm5pbmcoaWQ6IHN0cmluZywgY29sbGVjdGlvbklkPzogc3RyaW5nLCBjb2xsZWN0aW9uVHlwZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHJlc29sdmUgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb25UeXBlICYmXG4gICAgICAgIGNvbGxlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdwbGF5bGlzdCcpIHtcbiAgICAgICAgY29uc3QgcmVxQm9keSA9IHtcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcbiAgICAgICAgICByZXNvdXJjZUlkOiBpZCxcbiAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICBjb250ZXh0RnVsbFBhdGg6IFtjb2xsZWN0aW9uSWQsIGlkXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXG4gICAgICAgICAgY29udGV4dFR5cGU6ICdwbGF5bGlzdCcsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXFCb2R5ID0ge1xuICAgICAgICAgIGNvbnRleHRQYXRoSWQ6IGNvbGxlY3Rpb25JZCA/IGNvbGxlY3Rpb25JZCA6IGlkLFxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxuICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdGltZXN0YW1wOiBEYXRlLm5vdygpIH0pLFxuICAgICAgICAgIGRhdGVBY2Nlc3NlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHNhdmVDb250aW51ZUxlYXJuaW5nKGNvbnRlbnQ6IE5zQ29udGVudC5JVmlld2VyQ29udGludWVMZWFybmluZ1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLlVTRVJfQ09OVElOVUVfTEVBUk5JTkdcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIGNvbnRlbnQpXG4gICAgaWYgKGNvbnRlbnQpIHtcblxuICAgIH1cbiAgICByZXR1cm4gb2YoKSBhcyBhbnk7XG4gIH1cblxuICBzZXRTM0Nvb2tpZShcbiAgICBfY29udGVudElkOiBzdHJpbmcsXG4gICAgLy8gX3BhdGg6IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwXG4gICAgLy8gICAucG9zdChBUElfRU5EX1BPSU5UUy5TRVRfUzNfQ09PS0lFLCB7IGNvbnRlbnRJZCB9KVxuICAgIC8vICAgLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcblxuICAgIHJldHVybiBFTVBUWTtcbiAgfVxuXG4gIHNldFMzSW1hZ2VDb29raWUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0lNQUdFX0NPT0tJRSwge30pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSk7XG4gIH1cblxuICBmZXRjaE1hbmlmZXN0KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuRkVUQ0hfTUFOSUZFU1QsIHsgdXJsIH0pO1xuICB9XG4gIGZldGNoV2ViTW9kdWxlQ29udGVudCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7QVBJX0VORF9QT0lOVFMuRkVUQ0hfV0VCX01PRFVMRV9GSUxFU30/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YCk7XG4gIH1cbiAgc2VhcmNoKHJlcTogTlNTZWFyY2guSVNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+IHtcbiAgICByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y1LCB7XG4gICAgICByZXF1ZXN0OiByZXEsXG4gICAgfSk7XG4gIH1cbiAgc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24oXG4gICAgcmVxOiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0LFxuICApOiBPYnNlcnZhYmxlPE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPiB7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIHJlcS5wcmVMYWJlbFZhbHVlID1cbiAgICAgIChyZXEucHJlTGFiZWxWYWx1ZSB8fCAnJykgK1xuICAgICAgKCh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5jb3VudHJ5KSB8fCAnJyk7XG4gICAgcmVxLmZpbHRlcnMgPSB7XG4gICAgICAuLi5yZXEuZmlsdGVycyxcbiAgICAgIGxhYmVsczogW3JlcS5wcmVMYWJlbFZhbHVlIHx8ICcnXSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnRTdHJpcE11bHRpcGxlLklDb250ZW50U3RyaXBSZXNwb25zZUFwaT4oXG4gICAgICBBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT04sXG4gICAgICB7IHJlcXVlc3Q6IHJlcSB9LFxuICAgICk7XG4gIH1cbiAgc2VhcmNoVjYocmVxOiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0KTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4ge1xuICAgIGNvbnN0IGFwaVBhdGggPSBfLmdldChyZXEsICdhcGkucGF0aCcpO1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICBpZiAoYXBpUGF0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KGFwaVBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y2LCByZXEpO1xuICB9XG5cbiAgc2VhcmNoUmVxdWVzdChyZXE6IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPiB7XG4gICAgY29uc3QgYXBpUGF0aCA9IF8uZ2V0KHJlcSwgJ2FwaS5wYXRoJyk7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIGlmIChhcGlQYXRoKSB7XG4gICAgICBpZihfLmdldChyZXEsICdhcGkudHlwZScpID09PSAnZ2V0JyApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihhcGlQYXRoKTtcbiAgICAgIH0gZWxzZSBpZihfLmdldChyZXEsICdhcGkudHlwZScpID09PSAncG9zdCcgKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGFwaVBhdGgsIHJlcS5yZXF1ZXN0IHx8IHt9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPihhcGlQYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9WNiwgcmVxKTtcbiAgfVxuXG4gIHNlYXJjaENvbnRlbnRTZWFyY2hfUFJPRChyZXE6IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPiB7XG4gICAgY29uc3QgYXBpUGF0aCA9IF8uZ2V0KHJlcSwgJ2FwaS5wYXRoJyk7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIGlmIChhcGlQYXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4oYXBpUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4oUFJPRF9CQVNFX0VORFBPSU5UICsgQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0gsIHJlcSk7XG4gIH1cblxuICBzZWFyY2hSZWxhdGVkQ0JQVjYocmVxOiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0VjIpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdFYyPihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9SRUxBVEVEX0NCUF9WNiwgcmVxKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudFJhdGluZyhjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8eyByYXRpbmc6IG51bWJlciB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyByYXRpbmc6IG51bWJlciB9PihgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vJHtjb250ZW50SWR9YCk7XG4gIH1cbiAgZGVsZXRlQ29udGVudFJhdGluZyhjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApO1xuICB9XG4gIGFkZENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcsIGRhdGE6IHsgcmF0aW5nOiBudW1iZXIgfSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWAsIGRhdGEpO1xuICB9XG5cbiAgZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCk6IE5zQ29udGVudC5JQ29udGVudCB7XG4gICAgaWYgKCEoY29udGVudC5jaGlsZHJlbiB8fCBbXSkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNICYmXG4gICAgICAgICEoY29udGVudC5hcnRpZmFjdFVybCAmJiBjb250ZW50LmFydGlmYWN0VXJsLmxlbmd0aCkpIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuTUFOREFUT1JZX0NPVVJTRV9HT0FMIHx8XG4gICAgICAoY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkJMRU5ERURfUFJPR1JBTSAmJlxuICAgICAgICAhKGNvbnRlbnQuYXJ0aWZhY3RVcmwgJiYgY29udGVudC5hcnRpZmFjdFVybC5sZW5ndGgpKSB8fFxuICAgICAgKGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5NT0RVTEUgJiZcbiAgICAgICAgIShjb250ZW50LmFydGlmYWN0VXJsICYmIGNvbnRlbnQuYXJ0aWZhY3RVcmwubGVuZ3RoKSlcbiAgICApIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gY29udGVudC5jaGlsZHJlblswXTtcbiAgICAgIHJldHVybiB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjaGlsZCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5SRVNPVVJDRSB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LktOT1dMRURHRV9BUlRJRkFDVCB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LlBST0dSQU0gfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUkFDVElDRV9SRVNPVVJDRSB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkZJTkFMX0FTU0VTU01FTlQgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5DT01QX0FTU0VTU01FTlQgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5PRkZMSU5FX1NFU1NJT05cbiAgICApIHtcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbiAgICBjb25zdCBmaXJzdENoaWxkID0gY29udGVudC5jaGlsZHJlblswXTtcbiAgICBjb25zdCByZXN1bHRDb250ZW50ID0gdGhpcy5nZXRGaXJzdENoaWxkSW5IaWVyYXJjaHkoZmlyc3RDaGlsZCk7XG4gICAgcmV0dXJuIHJlc3VsdENvbnRlbnQ7XG4gIH1cblxuICBnZXRSZWdpc3RyYXRpb25TdGF0dXMoc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPHsgaGFzQWNjZXNzOiBib29sZWFuOyByZWdpc3RyYXRpb25Vcmw/OiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuUkVHSVNUUkFUSU9OX1NUQVRVU30vJHtzb3VyY2V9YCkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBmZXRjaENvbmZpZyh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsKTtcbiAgfVxuXG4gIGFkZENlcnRUZW1wbGF0ZShib2R5OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPGFueT4oYCR7QVBJX0VORF9QT0lOVFMuQ0VSVF9BRERfVEVNUExBVEV9YCwgYm9keSk7XG4gIH1cblxuICBpc3N1ZUNlcnQoYm9keTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuQ0VSVF9JU1NVRX1gLCBib2R5KTtcbiAgfVxuICBkb3dubG9hZENlcnQoY2VydElkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNFUlRfRE9XTkxPQUQoY2VydElkKX1gKTtcbiAgfVxuXG4gIHRyZW5kaW5nQ29udGVudFNlYXJjaChyZXE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9FTkRfUE9JTlRTLlRSRU5ESU5HX0NPTlRFTlRfU0VBUkNILCByZXEpO1xuICB9XG5cbiAgZ2V0S2FybWFQb2l0bnMobGltaXQ6IG51bWJlciwgb2Zmc2V0OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuUkVBRF9LQVJNQVBPSU5UUywgeyBsaW1pdCwgb2Zmc2V0IH0pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSk7XG4gIH1cbiAgZmV0Y2hQcm9ncmFtQ29udGVudChjb250ZW50SWQ6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnRbXT4ge1xuICAgIGxldCB1cmwgPSAnJztcbiAgICBjb25zdCBmb3JQcmV2aWV3ID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9wdWJsaWMvJykgfHwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyZwcmV2aWV3PXRydWUnKTtcbiAgICBpZiAoIWZvclByZXZpZXcpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudFtdPihcbiAgICAgICAgQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SRUFEKGNvbnRlbnRJZCksXG4gICAgICApO1xuICAgIH1cbiAgICB1cmwgPSBgL2FwaS9jb250ZW50L3YxL3JlYWQvJHtjb250ZW50SWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4odXJsKTtcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SRUFEKGNvbnRlbnRJZCkpXG4gIH1cblxuICBnZXRDb3Vyc2VLYXJtYVBvaW50cyhyZXF1ZXN0OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBUElfRU5EX1BPSU5UUy5SRUFEX0NPVVJTRV9LQVJNQVBPSU5UUywgcmVxdWVzdCk7XG4gIH1cblxuICBjbGFpbUthcm1hcG9pbnRzKHJlcXVlc3Q6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9FTkRfUE9JTlRTLkNMQUlNX0tBUk1BUE9JTlRTLCByZXF1ZXN0KTtcbiAgfVxuXG4gIHVzZXJLYXJtYVBvaW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBUElfRU5EX1BPSU5UUy5VU0VSX0tBUk1BX1BPSU5UUywge30pO1xuICB9XG5cbiAgYXN5bmMgZ2V0RW5yb2xsZWREYXRhKGRvSWQ6IHN0cmluZykge1xuICAgIGxldCBlbnJvbGxlZERvSWQ6IGFueSA9IHRoaXMudXNlclN2Yy5lbnJvbGxtZW50RGF0YUlkcy5pbmNsdWRlcyhkb0lkKVxuICAgIGxldCB1c2VySWQgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWRcbiAgICBpZiAoZW5yb2xsZWREb0lkKSB7XG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLnVzZXJTdmMuZmV0Y2hFbnJvbGxtZW50RGF0YUJ5Q29udGVudElkKHVzZXJJZCwgZG9JZCkudG9Qcm9taXNlKCkudGhlbihhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY291cnNlcyAmJiByZXMuY291cnNlcy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gcmVzLmNvdXJzZXNcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgfVxuICAgICAgfSkuY2F0Y2goKF9lcnI6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gW11cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YSB8fCBbXVxuICAgIH1cbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIGFzeW5jIGdldFJlc291cnNlTGluayhjb250ZW50OiBhbnksIGVucm9sbG1lbnRMaXN0PzogYW55LCBjaGVja0ZvclJlc3VtZT86IGJvb2xlYW4sICBiYXNlQ29udGVudFJlYWQ/OiBhbnksbXVsdGlsaW5ndWFsSWQ/OnN0cmluZykge1xuICAgIGlmKGNvbnRlbnQgJiYgY29udGVudC5wdWJsaWNDYXJkICYmIGNvbnRlbnQucHVibGljQ2FyZC5iYXNlVXJsKSB7XG4gICAgICB3aW5kb3cub3Blbihjb250ZW50LnB1YmxpY0NhcmQuYmFzZVVybCArXG4gICAgICAgICcvcHVibGljL3RvYy8nICsgY29udGVudD8uaWRlbnRpZmllciArICcvb3ZlcnZpZXcnLCAnX2JsYW5rJykgXG4gICAgfVxuICAgIGlmIChjb250ZW50ICYmIGNvbnRlbnQuY29udGVudCAmJiBjb250ZW50LmNvbnRlbnQuY2F0ZWdvcnkgPT09ICdFdmVudCcpIHtcbiAgICAgIGNvbnN0IHVybERhdGE6IGFueSA9IHtcbiAgICAgICAgdXJsOiBgYXBwL2V2ZW50LWh1Yi9ob21lLyR7Y29udGVudC5jb250ZW50LmlkZW50aWZpZXJ9YCxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHVybERhdGFcbiAgICB9XG4gICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5leHRlcm5hbElkKSB7XG4gICAgICBjb25zdCB1cmxEYXRhOiBhbnkgPSB7XG4gICAgICAgIHVybDogYGFwcC90b2MvZXh0LyR7Y29udGVudC5jb250ZW50SWR9YCxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHVybERhdGFcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNoZWNrRm9yUmVzdW1lKSB7XG4gICAgICAgIC8vIGNvbnN0IGVucm9sbGVkQ291cnNlOiBhbnkgPSBhd2FpdCB0aGlzLmdldEVucm9sbGVkRGF0YShjb250ZW50LmlkZW50aWZpZXIpO1xuICAgICAgICBjb25zdCBlbnJvbGxlZENvdXJzZTogYW55ID0gZW5yb2xsbWVudExpc3Q7XG4gICAgICAgIGlmIChlbnJvbGxlZENvdXJzZSAmJiBlbnJvbGxlZENvdXJzZS5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBlbnJvbGxlZENvdXJzZURhdGEgPSBlbnJvbGxlZENvdXJzZSAmJiBlbnJvbGxlZENvdXJzZT8ubGVuZ3RoICYmIGVucm9sbGVkQ291cnNlLmZpbmQoKGVsOiBhbnkpID0+IGVsPy5jb2xsZWN0aW9uSWQgPT09IGJhc2VDb250ZW50UmVhZCB8fCAgY29udGVudD8uaWRlbnRpZmllcilcbiAgICAgICAgICBpZiAoZW5yb2xsZWRDb3Vyc2VEYXRhICYmIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50ICYmIChlbnJvbGxlZENvdXJzZURhdGEuY29udGVudC5jb3Vyc2VDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gfHxcbiAgICAgICAgICAgIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LmNvdXJzZUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5LklOVklURV9PTkxZX1BST0dSQU0gfHxcbiAgICAgICAgICAgIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LmNvdXJzZUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5Lk1PREVSQVRFRF9QUk9HUkFNIHx8XG4gICAgICAgICAgICBlbnJvbGxlZENvdXJzZURhdGEuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkJMRU5ERURfUFJPR1JBTSB8fFxuICAgICAgICAgICAgZW5yb2xsZWRDb3Vyc2VEYXRhLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQmF0Y2hJblByb2dyZXNzKGVucm9sbGVkQ291cnNlRGF0YS5iYXRjaCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jaGVja0ZvckRhdGFUb0Zvcm1VcmwoY29udGVudCwgZW5yb2xsZWRDb3Vyc2VEYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH0ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2hlY2tGb3JEYXRhVG9Gb3JtVXJsKGNvbnRlbnQsIGVucm9sbGVkQ291cnNlRGF0YSwgIGJhc2VDb250ZW50UmVhZCwgbXVsdGlsaW5ndWFsSWQpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uZVN0ZXBSZXN1bWVFbmFibGUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYXN5bmMgY2hlY2tGb3JEYXRhVG9Gb3JtVXJsKGNvbnRlbnQ6IGFueSwgZW5yb2xsRGF0YTogYW55LCBiYXNlQ29udGVudFJlYWQ/OiBhbnksbXVsdGlsaW5ndWFsSWQ/OnN0cmluZykge1xuICAgIGxldCB1cmxEYXRhOiBhbnk7XG4gICAgaWYgKGVucm9sbERhdGE/LmNvbXBsZXRpb25QZXJjZW50YWdlID09PSAxMDApIHtcbiAgICAgIHJldHVybiB0aGlzLmdvdG9Ub2NQYWdlKGVucm9sbERhdGEpO1xuICAgIH1cbiAgICBpZiAoZW5yb2xsRGF0YT8ubHJjUHJvZ3Jlc3NEZXRhaWxzICYmIGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzLm1pbWVUeXBlKSB7XG4gICAgICBjb25zdCBtb2RpZnlFbnJvbGxEYXRhID0ge1xuICAgICAgICAuLi5lbnJvbGxEYXRhLFxuICAgICAgICBpZGVudGlmaWVyOiBlbnJvbGxEYXRhLmNvbGxlY3Rpb25JZCxcbiAgICAgICAgcHJpbWFyeUNhdGVnb3J5OiBlbnJvbGxEYXRhLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5LFxuICAgICAgICBuYW1lOiBlbnJvbGxEYXRhLmNvbnRlbnQubmFtZSxcbiAgICAgIH07XG4gICAgICBpZiAobW9kaWZ5RW5yb2xsRGF0YS5sYXN0UmVhZENvbnRlbnRJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJzZURhdGFXaXRoRGF0YShtb2RpZnlFbnJvbGxEYXRhLFxuICAgICAgICAgIGVucm9sbERhdGEubGFzdFJlYWRDb250ZW50SWQsIGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzLm1pbWVUeXBlLGNvbnRlbnQsICBiYXNlQ29udGVudFJlYWQsbXVsdGlsaW5ndWFsSWQpO1xuICAgICAgfVxuICAgICAgaWYgKG1vZGlmeUVucm9sbERhdGEuZmlyc3RDaGlsZElkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlc291cnNlRGF0YVdpdGhEYXRhKG1vZGlmeUVucm9sbERhdGEsXG4gICAgICAgICAgZW5yb2xsRGF0YS5maXJzdENoaWxkSWQsXG4gICAgICAgICAgZW5yb2xsRGF0YS5scmNQcm9ncmVzc0RldGFpbHMubWltZVR5cGUsIGNvbnRlbnQsICBiYXNlQ29udGVudFJlYWQsbXVsdGlsaW5ndWFsSWQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5yb2xsRGF0YS5maXJzdENoaWxkSWQgfHwgZW5yb2xsRGF0YS5sYXN0UmVhZENvbnRlbnRJZCkge1xuICAgICAgY29uc3QgZG9JZCA9IGVucm9sbERhdGEuZmlyc3RDaGlsZElkIHx8IGVucm9sbERhdGEubGFzdFJlYWRDb250ZW50SWQ7XG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmZldGNoUHJvZ3JhbUNvbnRlbnQoZG9JZCkudG9Qcm9taXNlKCkudGhlbihhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcyAmJiByZXMucmVzdWx0ICYmIHJlcy5yZXN1bHQuY29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnREYXRhOiBhbnkgPSByZXMucmVzdWx0LmNvbnRlbnQ7XG4gICAgICAgICAgY29uc3QgbW9kaWZ5RW5yb2xsRGF0YSA9IHtcbiAgICAgICAgICAgIC4uLmVucm9sbERhdGEsXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBlbnJvbGxEYXRhLmNvbGxlY3Rpb25JZCxcbiAgICAgICAgICAgIHByaW1hcnlDYXRlZ29yeTogZW5yb2xsRGF0YS5jb250ZW50LnByaW1hcnlDYXRlZ29yeSxcbiAgICAgICAgICAgIG5hbWU6IGVucm9sbERhdGEuY29udGVudC5uYW1lLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdXJsRGF0YSA9IHRoaXMuZ2V0UmVzb3Vyc2VEYXRhV2l0aERhdGEobW9kaWZ5RW5yb2xsRGF0YSwgY29udGVudERhdGEuaWRlbnRpZmllciwgY29udGVudERhdGEubWltZVR5cGUsY29udGVudCwgIGJhc2VDb250ZW50UmVhZCxtdWx0aWxpbmd1YWxJZCk7XG4gICAgICAgICAgaWYgKHVybERhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiB1cmxEYXRhO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2VEYXRhID8gcmVzcG9uc2VEYXRhIDogdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG5cbiAgfVxuXG4gIGdldFJlc291cnNlRGF0YVdpdGhEYXRhKGVucm9sbG1lbnREYXRhOiBhbnksIHJlc291cmNlSWQ6IGFueSwgbWltZVR5cGU6IGFueSxjb250ZW50OmFueSwgYmFzZUNvbnRlbnRSZWFkPzogYW55LG11bHRpbGluZ3VhbElkPzpzdHJpbmcpIHtcbiAgICAgICAgaWYoZW5yb2xsbWVudERhdGEgJiYgZW5yb2xsbWVudERhdGEucmVjZW50X2xhbmd1YWdlKSB7XG4gICAgICAgIGlmKGJhc2VDb250ZW50UmVhZC5sYW5ndWFnZU1hcFYxICYmIE9iamVjdC5rZXlzKGJhc2VDb250ZW50UmVhZC5sYW5ndWFnZU1hcFYxKS5sZW5ndGgpIHsgXG4gICAgICAgICAgY29uc3QgcmVjZW50X0xBTkdfREFUQSA9IGJhc2VDb250ZW50UmVhZC5sYW5ndWFnZU1hcFYxW2Vucm9sbG1lbnREYXRhLnJlY2VudF9sYW5ndWFnZV07XG4gICAgICAgICAgaWYocmVjZW50X0xBTkdfREFUQSAmJiByZWNlbnRfTEFOR19EQVRBLmlkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvUGxheWVyUGFnZShlbnJvbGxtZW50RGF0YSwgY29udGVudCwgYmFzZUNvbnRlbnRSZWFkPy5pZGVudGlmaWVyLCByZXNvdXJjZUlkLCBtaW1lVHlwZSwgZW5yb2xsbWVudERhdGEucmVjZW50X2xhbmd1YWdlLCByZWNlbnRfTEFOR19EQVRBLmlkICkgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IFxuICAgICAgaWYoZW5yb2xsbWVudERhdGEpIHtcbiAgICAgICAgY29uc3QgQkFTRV9MQU5HID0gdGhpcy5jb250ZW50TGFuZ3VhZ2VTdmMuZ2V0QmFzZUxhbmd1YWdlKGJhc2VDb250ZW50UmVhZCk7XG4gICAgICAgIGlmKEJBU0VfTEFORyAmJiBPYmplY3Qua2V5cyhCQVNFX0xBTkcpLmxlbmd0aCApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvUGxheWVyUGFnZShlbnJvbGxtZW50RGF0YSwgY29udGVudCwgYmFzZUNvbnRlbnRSZWFkPy5pZGVudGlmaWVyLCByZXNvdXJjZUlkLCBtaW1lVHlwZSwgQkFTRV9MQU5HLmxhbmdJZCwgQkFTRV9MQU5HLmlkICkgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBcbiAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShlbnJvbGxtZW50RGF0YSk7XG4gIH1cblxuXG4gIGdvdG9QbGF5ZXJQYWdlKG5hdmlnYXRpb25EYXRhOiBhbnksIGNvbnRlbnQ6YW55LCBiYXNlQ29udGVudElkOnN0cmluZywgcmVzb3VyY2VJZDpzdHJpbmcsIG1pbWVUeXBlOmFueSwgbWw/OnN0cmluZywgbWxJZD86c3RyaW5nKSAge1xuICAgIGlmIChuYXZpZ2F0aW9uRGF0YSkge1xuICAgICAgY29uc3QgdXJsID0gdmlld2VyUm91dGVHZW5lcmF0b3IoXG4gICAgICAgIHJlc291cmNlSWQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICBiYXNlQ29udGVudElkLFxuICAgICAgICAnQ291cnNlJyxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgICdMZWFybmluZyBSZXNvdXJjZScsXG4gICAgICAgIG5hdmlnYXRpb25EYXRhLmJhdGNoSWQsXG4gICAgICAgIGNvbnRlbnQubmFtZSxcbiAgICAgICAgbWwsXG4gICAgICAgIG1sSWQsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gIH1cblxuICBnb3RvVG9jUGFnZShjb250ZW50OiBhbnkpIHtcbiAgICBpZiAoY29udGVudCAmJiBjb250ZW50LmNvdXJzZUNhdGVnb3J5ICYmIGNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09IE5zQ29udGVudC5FQ291cnNlQ2F0ZWdvcnkuTVVMVElMSU5HVUFMX0NPVVJTRSkge1xuICAgICAgY29uc3QgYmFzZUNvbnRlbnREYXRhID0gdGhpcy5jb250ZW50TGFuZ3VhZ2VTdmMuZ2V0QmFzZUxhbmd1YWdlKGNvbnRlbnQpO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRMYW5ndWFnZSA9IGNvbnRlbnQgJiYgY29udGVudC5sYW5ndWFnZSAmJiBjb250ZW50Lmxhbmd1YWdlLmxlbmd0aCA/IFxuICAgICAgICBjb250ZW50Lmxhbmd1YWdlWzBdLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgICAgIFxuICAgICAgaWYgKGJhc2VDb250ZW50RGF0YSAmJiBPYmplY3Qua2V5cyhiYXNlQ29udGVudERhdGEpLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHVybDogYC9hcHAvdG9jLyR7YmFzZUNvbnRlbnREYXRhLmlkZW50aWZpZXJ9L292ZXJ2aWV3YCxcbiAgICAgICAgICBxdWVyeVBhcmFtczogeyBcbiAgICAgICAgICAgIE1MSWQ6IGNvbnRlbnQuaWRlbnRpZmllcixcbiAgICAgICAgICAgIE1MOiBzZWxlY3RlZExhbmd1YWdlLFxuICAgICAgICAgICAgLi4uKGNvbnRlbnQuYmF0Y2hJZCA/IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0gOiB7fSlcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBjb25zdCB1cmxEYXRhID0ge1xuICAgICAgdXJsOiBgL2FwcC90b2MvJHtjb250ZW50LmlkZW50aWZpZXIgfHwgY29udGVudC5jb2xsZWN0aW9uSWR9L292ZXJ2aWV3YCxcbiAgICAgIHF1ZXJ5UGFyYW1zOiBjb250ZW50LmJhdGNoSWQgPyB7IGJhdGNoSWQ6IGNvbnRlbnQuYmF0Y2hJZCB9IDoge30gYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICB9O1xuICAgIGlmIChjb250ZW50LmVuZERhdGUgJiYgY29udGVudD8uY291cnNlQ2F0ZWdvcnkgIT09IE5zQ29udGVudC5FQ291cnNlQ2F0ZWdvcnkuQ09NUFJFSEVOU0lWRV9BU1NFU1NNRU5UX1BST0dSQU0pIHtcbiAgICAgIHVybERhdGEucXVlcnlQYXJhbXMgPSB7IC4uLnVybERhdGEucXVlcnlQYXJhbXMsIHBsYW5UeXBlOiAnY2JQbGFuJywgZW5kRGF0ZTogY29udGVudC5lbmREYXRlIH07XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB1cmxEYXRhO1xuICB9XG5cbiAgaXNCYXRjaEluUHJvZ3Jlc3MoYmF0Y2hEYXRhOiBhbnkpIHtcbiAgICAvLyBpZiAodGhpcy5jb250ZW50ICYmIHRoaXMuY29udGVudFsnYmF0Y2hlcyddKSB7XG4gICAgLy8gY29uc3QgYmF0Y2hlcyA9IHRoaXMuY29udGVudFsnYmF0Y2hlcyddIGFzIE5zQ29udGVudC5JQmF0Y2hcbiAgICBpZiAoYmF0Y2hEYXRhICYmIGJhdGNoRGF0YS5lbmREYXRlKSB7XG4gICAgICBjb25zdCBub3cgPSBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudChiYXRjaERhdGEuc3RhcnREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgIGNvbnN0IGVuZERhdGUgPSBiYXRjaERhdGEuZW5kRGF0ZSA/IG1vbWVudChiYXRjaERhdGEuZW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJykgOiBub3c7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAvLyBiYXRjaC5zdGF0dXMgJiZcbiAgICAgICAgbW9tZW50KHN0YXJ0RGF0ZSkuaXNTYW1lT3JCZWZvcmUobm93KVxuICAgICAgICAmJiBtb21lbnQoZW5kRGF0ZSkuaXNTYW1lT3JBZnRlcihub3cpXG4gICAgICApO1xuICAgIH0gcmV0dXJuIHRydWU7XG4gIH1cbiAgcG9zdEFwaU1ldGhvZChhcGlVcmw6IGFueSwgcmVxOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnQuSUNvbnRlbnQ+KGFwaVVybCwgcmVxKTtcbiAgfVxuICBnZXRBcGlNZXRob2QoYXBpVXJsOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIC8vIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnQ+KGFwaVVybCk7XG4gIH1cblxuXG4gIGdldEVucm9sbGVkRGF0YUZyb21MaXN0KGVucm9sbG1lbnRMaXN0OiBhbnksIGNvbGxlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgaWYgKGVucm9sbG1lbnRMaXN0ICYmIGVucm9sbG1lbnRMaXN0Lmxlbmd0aCkge1xuICAgICAgbGV0IGVucm9sbGVkRGF0YSA9IGVucm9sbG1lbnRMaXN0LmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5jb2xsZWN0aW9uSWQgPT09IGNvbGxlY3Rpb25JZClcbiAgICAgIHJldHVybiBlbnJvbGxlZERhdGEubGVuZ3RoID8gZW5yb2xsZWREYXRhWzBdIDoge31cbiAgICB9XG4gIH1cblxuICBzZXRSZWxldmVudE5vdFJlbGV2ZW50RGF0YShkYXRhOiB7aXNSZWxldmVudDogYm9vbGVhbiwgd2lkZ2V0RGF0YTogYW55fSkge1xuICAgIHRoaXMucmVsZXZlbnROb3RSZWxldmVudC5uZXh0KGRhdGEpXG4gIH1cblxuICBzYXZlRmVlZGJhY2tTYWtzaGFtQUkocmVxdWVzdEJvZHk6IGFueSkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0FWRV9TQUtTSEFNQUlfUkVDT01NRU5ERURfRkVFREJBQ0ssIHJlcXVlc3RCb2R5KS5waXBlKG1hcChcbiAgICAgIGFzeW5jIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGRhdGFcbiAgICAgIH0pXG4gICAgKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHNldFJlY29tbWVuZGVkSWRzKHJlY29tbWVuZGVkSWRzOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JlY29tbWVuZGVkSWRzJykgPyBcbiAgICB0aGlzLnN0b3JlZFJlY29tbWVuZGVkSWRzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVjb21tZW5kZWRJZHMnKSB8fCAne30nKSA6IHt9XG5cbiAgICB0aGlzLnN0b3JlZFJlY29tbWVuZGVkSWRzW3VzZXJJZF0gPSByZWNvbW1lbmRlZElkc1xuXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlY29tbWVuZGVkSWRzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zdG9yZWRSZWNvbW1lbmRlZElkcykpXG4gIH1cblxuICBnZXRSZWNvbW1lbmRlZElkcyh1c2VySWQ6IHN0cmluZykge1xuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZWNvbW1lbmRlZElkcycpID8gXG4gICAgICB0aGlzLnN0b3JlZFJlY29tbWVuZGVkSWRzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVjb21tZW5kZWRJZHMnKSB8fCAne30nKSA6IHt9XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUmVjb21tZW5kZWRJZHNbdXNlcklkXVxuICB9XG5cbiAgc2V0RmVlZGJhY2tEYXRhKGZlZWRiYWNrRGF0YUFycmF5OiBhbnlbXSkge1xuICAgIGZlZWRiYWNrRGF0YUFycmF5LmZvckVhY2goZmVlZGJhY2tEYXRhID0+IHtcbiAgICAgIHRoaXMuZmVlZGJhY2tEYXRhRm9yQ291cnNlW2ZlZWRiYWNrRGF0YS5jb3Vyc2VfaWRdID0gZmVlZGJhY2tEYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RmVlZGJhY2tEYXRhKGNvdXJzZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5mZWVkYmFja0RhdGFGb3JDb3Vyc2VbY291cnNlSWRdXG4gIH1cblxuICBmaWx0ZXJDb3Vyc2VzV2l0aE5vUmF0aW5nKHJlc3BvbnNlOiBhbnksIGNvdXJzZXM6IGFueVtdKSB7XG4gICAgaWYgKCFyZXNwb25zZT8uZmVlZGJhY2tzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBjb3Vyc2VzOyBcbiAgICB9XG4gICAgXG4gICAgY29uc3QgY291cnNlc1dpdGhaZXJvUmF0aW5nID0gbmV3IFNldChcbiAgICAgIHJlc3BvbnNlLmZlZWRiYWNrc1xuICAgICAgICAuZmlsdGVyKChmZWVkYmFjazogYW55KSA9PiBmZWVkYmFjay5yYXRpbmcgPT09IDApXG4gICAgICAgIC5tYXAoKGZlZWRiYWNrOiBhbnkpID0+IGZlZWRiYWNrLmNvdXJzZV9pZClcbiAgICApO1xuICBcbiAgICByZXR1cm4gY291cnNlcy5maWx0ZXIoKGNvdXJzZTogYW55KSA9PiAhY291cnNlc1dpdGhaZXJvUmF0aW5nLmhhcyhjb3Vyc2UuaWRlbnRpZmllcikpO1xuICB9XG5cbiAgc2V0VGVsZW1lbnRyeVN1YnNjcmlwdGlvbihldmVudDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNUZWxlbWVudHJ5U3Vic2NyaWJlZCA9IGV2ZW50XG4gIH1cbn1cbiJdfQ==
@@ -60,6 +60,7 @@ export * from './lib/_common/competency-passbook-mdo/competency-passbook-mdo.com
60
60
  export * from './lib/_common/user-content-rating/user-content-rating-lib.component';
61
61
  export * from './lib/_common/microsites/mdo-channels/mdo-channel-v1/mdo-channel-v1.component';
62
62
  export * from './lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component';
63
+ export * from './lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component';
63
64
  export * from './lib/_common/microsites/providers/providers-v2/providers-v2.component';
64
65
  export * from './lib/_common/key-highlights/key-highlights.module';
65
66
  export * from './lib/_common/events/events.module';
@@ -91,4 +92,4 @@ export * from './lib/_common/avatar-photo-lib/avatar-photo-lib.module';
91
92
  export * from './lib/_common/toc-multi-lingual-dialog/toc-multi-lingual-dialog.component';
92
93
  export * from './lib/_common/toc-multi-lingual-dialog/toc-multi-lingual-dialog.module';
93
94
  export * from './lib/_common/cards/available-languages/available-languages.component';
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQTtBQUV4QyxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMseUNBQXlDLENBQUE7QUFHdkQsY0FBYywwQ0FBMEMsQ0FBQTtBQUV4RCxjQUFjLG1GQUFtRixDQUFBO0FBQ2pHLGNBQWMseUZBQXlGLENBQUE7QUFDdkcsY0FBYyw4RUFBOEUsQ0FBQTtBQUM1RixjQUFjLGdEQUFnRCxDQUFBO0FBQzlELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyw4Q0FBOEMsQ0FBQTtBQUM1RCxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsOERBQThELENBQUE7QUFDNUUsY0FBYyxzRUFBc0UsQ0FBQTtBQUNwRixjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsa0VBQWtFLENBQUE7QUFDaEYsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLHdEQUF3RCxDQUFBO0FBRXRFLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLDBFQUEwRSxDQUFBO0FBR3hGLGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyxnREFBZ0QsQ0FBQTtBQUM5RCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsc0RBQXNELENBQUE7QUFDcEUsY0FBYyw0REFBNEQsQ0FBQTtBQUMxRSxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsa0RBQWtELENBQUE7QUFHaEUsY0FBYywwREFBMEQsQ0FBQTtBQUV4RSxjQUFjLGlGQUFpRixDQUFBO0FBQy9GLGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyxpRUFBaUUsQ0FBQTtBQUMvRSxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyw2RUFBNkUsQ0FBQTtBQUMzRixjQUFjLG1FQUFtRSxDQUFBO0FBQ2pGLGNBQWMsaUZBQWlGLENBQUE7QUFDL0YsY0FBYywyREFBMkQsQ0FBQTtBQUN6RSxjQUFjLDRGQUE0RixDQUFBO0FBQzFHLGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYyx5RUFBeUUsQ0FBQTtBQUN2RixjQUFjLHFFQUFxRSxDQUFBO0FBQ25GLGNBQWMsK0VBQStFLENBQUE7QUFDN0YsY0FBYywrRUFBK0UsQ0FBQTtBQUM3RixjQUFjLHdFQUF3RSxDQUFBO0FBQ3RGLGNBQWMsb0RBQW9ELENBQUE7QUFDbEUsY0FBYyxvQ0FBb0MsQ0FBQTtBQUVsRCxjQUFjLHNGQUFzRixDQUFBO0FBQ3BHLGNBQWMsK0ZBQStGLENBQUE7QUFDN0csY0FBYyx1REFBdUQsQ0FBQTtBQUNyRSxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsc0RBQXNELENBQUE7QUFDcEUsY0FBYyx5REFBeUQsQ0FBQTtBQUN2RSxjQUFjLCtEQUErRCxDQUFBO0FBQzdFLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLG9FQUFvRSxDQUFBO0FBQ2xGLGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWUsK0JBQStCLENBQUE7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbUZBQW1GLENBQUM7QUFDbEcsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLHVFQUF1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb25zdW1wdGlvblxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN1bXB0aW9uLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdW1wdGlvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdW1wdGlvbi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWdpc3RyYXRpb24tbGliLmNvbmZpZydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN1bXB0aW9uLmNvbmZpZydcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LWxpYi5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX3NlcnZpY2VzL3dpZGdldC11c2VyLWxpYi5zZXJ2aWNlJ1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL19zZXJ2aWNlcy9jb250ZW50LWxhbmd1YWdlLnNlcnZpY2UnXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vc3RyaXBzL2NvbnRlbnQtc3RyaXAtZmFjZXQtZmlsdGVyL2NvbnRlbnQtc3RyaXAtZmFjZXQtZmlsdGVyLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vc3RyaXBzL2NvbnRlbnQtc3RyaXAtd2l0aC10YWJzLXBpbGxzL2NvbnRlbnQtc3RyaXAtd2l0aC10YWJzLXBpbGxzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliL2NvbnRlbnQtc3RyaXAtd2l0aC10YWJzLWxpYi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NvbW1vbi1zdHJpcC9jb21tb24tc3RyaXAubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9zbGlkZXJzL3NsaWRlcnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9kYXRhLXBvaW50cy9kYXRhLXBvaW50cy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmRzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29tcGV0ZW5jeS1wYXNzYm9vay9jb21wZXRlbmN5LXBhc3Nib29rLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8vY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYWxlbmRlci9jYWxlbmRlci5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3VzZXItY29udGVudC1yYXRpbmcvdXNlci1jb250ZW50LXJhdGluZy1saWIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9hbm5vdW5jZW1lbnRzL2Fubm91bmNlbWVudHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb250ZW50LXByb2dyZXNzL2NvbnRlbnQtcHJvZ3Jlc3MubW9kdWxlJ1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL21pY3Jvc2l0ZXMvbWRvLWNoYW5uZWxzL21kby1jaGFubmVsLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWljcm9zaXRlcy9wcm92aWRlcnMvcHJvdmlkZXJzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWljcm9zaXRlcy9uYXRpb25hbC1sZWFybmluZy13ZWVrL25hdGlvbmFsLWxlYXJuaW5nLm1vZHVsZSdcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fc2VydmljZXMvY29tbW9uLW1ldGhvZHMuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vdG9wLWxlYXJuZXJzL3RvcC1sZWFybmVycy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NicC1wbGFuL2NicC1wbGFuLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWRvLWxlYWRlcmJvYXJkL21kby1sZWFkZXJib2FyZC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2hpZ2hsaWdodHMtb2Ytd2Vlay9oaWdobGlnaHRzLW9mLXdlZWsubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9zcGVha2Vycy9zcGVha2Vycy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3VzZXItcHJvZ3Jlc3MvdXNlci1wcm9ncmVzcy5tb2R1bGUnXG5cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9kaWFsb2ctY29tcG9uZW50cy9kaWFsb2ctY29tcG9uZW50cy5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliL2NvbnRlbnQtc3RyaXAtd2l0aC10YWJzLWxpYi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3NsaWRlcnMvc2xpZGVycy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2RhdGEtcG9pbnRzL2RhdGEtcG9pbnRzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FsZW5kZXIvY2FsZW5kZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb21tb24tc3RyaXAvY29tbW9uLXN0cmlwLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vYW5ub3VuY2VtZW50cy9hbm5vdW5jZW1lbnRzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vdG9wLWxlYXJuZXJzL3RvcC1sZWFybmVycy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NicC1wbGFuL2NicC1wbGFuLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLXJlc291cmNlL2NhcmQtcmVzb3VyY2UuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLXBvcnRyYWl0L2NhcmQtcG9ydHJhaXQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLXVzZXIvY2FyZC11c2VyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZC1sYW5kc2NhcGUvY2FyZC1sYW5kc2NhcGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLXdpZGUvY2FyZC13aWRlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZC1tZG8tY2hhbm5lbC9jYXJkLW1kby1jaGFubmVsLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZC13aWRlLXYyL2NhcmQtd2lkZS12Mi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQta2FybWEtcHJvZ3JhbXMvY2FyZC1rYXJtYS1wcm9ncmFtcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQta2FybWEtcHJvZ3JhbXMtdjIvY2FyZC1rYXJtYS1wcm9ncmFtcy12Mi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQtcG9ydHJhaXQtZXh0L2NhcmQtcG9ydHJhaXQtZXh0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vZGlhbG9nLWNvbXBvbmVudHMvY2VydGlmaWNhdGUtZGlhbG9nL2NlcnRpZmljYXRlLWRpYWxvZy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NvbnRlbnQtcHJvZ3Jlc3MvY29udGVudC1wcm9ncmVzcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3N0cmlwcy9jb250ZW50LXN0cmlwLXdpdGgtdGFicy1waWxscy9jb250ZW50LXN0cmlwLXdpdGgtdGFicy1waWxscy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2svY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2stbWRvL2NvbXBldGVuY3ktcGFzc2Jvb2stbWRvLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vdXNlci1jb250ZW50LXJhdGluZy91c2VyLWNvbnRlbnQtcmF0aW5nLWxpYi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL21pY3Jvc2l0ZXMvbWRvLWNoYW5uZWxzL21kby1jaGFubmVsLXYxL21kby1jaGFubmVsLXYxLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvbWRvLWNoYW5uZWwtdjIvbWRvLWNoYW5uZWwtdjIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9taWNyb3NpdGVzL3Byb3ZpZGVycy9wcm92aWRlcnMtdjIvcHJvdmlkZXJzLXYyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24va2V5LWhpZ2hsaWdodHMva2V5LWhpZ2hsaWdodHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9ldmVudHMvZXZlbnRzLm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9zdHJpcHMvY29udGVudC1zdHJpcC1mYWNldC1maWx0ZXIvY29udGVudC1zdHJpcC1mYWNldC1maWx0ZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9taWNyb3NpdGVzL25hdGlvbmFsLWxlYXJuaW5nLXdlZWsvbmF0aW9uYWwtbGVhcm5pbmcvbmF0aW9uYWwtbGVhcm5pbmcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9rZXktaGlnaGxpZ2h0cy9rZXktaGlnaGxpZ2h0cy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2V2ZW50cy9ldmVudHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9ldmVudHMvZXZlbnQtY2FyZC9ldmVudC1jYXJkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWRvLWxlYWRlcmJvYXJkL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2hpZ2hsaWdodHMtb2Ytd2Vlay9oaWdobGlnaHRzLW9mLXdlZWsuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9zcGVha2Vycy9zcGVha2Vycy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3VzZXItcHJvZ3Jlc3MvdXNlci1wcm9ncmVzcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2hvcml6b250YWwtc2Nyb2xsZXItdjIvaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2hvcml6b250YWwtc2Nyb2xsZXItdjIvaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2RpYWxvZy1jb21wb25lbnRzL2FkZC1jb21wZXRlbmN5LXBvcHVwL2FkZC1jb21wZXRlbmN5LXBvcHVwLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vZGlhbG9nLWNvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAgJy4vbGliL19waXBlcy9uYnNwL25ic3AubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX3BpcGVzL25ic3AvbmJzcC5waXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb21tdW5pdHktc3VnZ2VzdGlvbnMvY29tbXVuaXR5LXN1Z2dlc3Rpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NvbW11bml0eS1zdWdnZXN0aW9ucy9jb21tdW5pdHktc3VnZ2VzdGlvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29ubmVjdGlvbi1uYW1lL2Nvbm5lY3Rpb24tbmFtZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb25uZWN0aW9uLW5hbWUvY29ubmVjdGlvbi1uYW1lLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2Nvbm5lY3Rpb24taG92ZXItY2FyZC9jb25uZWN0aW9uLWhvdmVyLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19kaXJlY3RpdmVzL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2RpYWxvZy1jb21wb25lbnRzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9hdmF0YXItcGhvdG8tbGliL2F2YXRhci1waG90by1saWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vYXZhdGFyLXBob3RvLWxpYi9hdmF0YXItcGhvdG8tbGliLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3RvYy1tdWx0aS1saW5ndWFsLWRpYWxvZy90b2MtbXVsdGktbGluZ3VhbC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vdG9jLW11bHRpLWxpbmd1YWwtZGlhbG9nL3RvYy1tdWx0aS1saW5ndWFsLWRpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9hdmFpbGFibGUtbGFuZ3VhZ2VzL2F2YWlsYWJsZS1sYW5ndWFnZXMuY29tcG9uZW50JzsiXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQTtBQUV4QyxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMseUNBQXlDLENBQUE7QUFHdkQsY0FBYywwQ0FBMEMsQ0FBQTtBQUV4RCxjQUFjLG1GQUFtRixDQUFBO0FBQ2pHLGNBQWMseUZBQXlGLENBQUE7QUFDdkcsY0FBYyw4RUFBOEUsQ0FBQTtBQUM1RixjQUFjLGdEQUFnRCxDQUFBO0FBQzlELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyw4Q0FBOEMsQ0FBQTtBQUM1RCxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsOERBQThELENBQUE7QUFDNUUsY0FBYyxzRUFBc0UsQ0FBQTtBQUNwRixjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsa0VBQWtFLENBQUE7QUFDaEYsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLHdEQUF3RCxDQUFBO0FBRXRFLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLDBFQUEwRSxDQUFBO0FBR3hGLGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyxnREFBZ0QsQ0FBQTtBQUM5RCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsc0RBQXNELENBQUE7QUFDcEUsY0FBYyw0REFBNEQsQ0FBQTtBQUMxRSxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsa0RBQWtELENBQUE7QUFHaEUsY0FBYywwREFBMEQsQ0FBQTtBQUV4RSxjQUFjLGlGQUFpRixDQUFBO0FBQy9GLGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyxpRUFBaUUsQ0FBQTtBQUMvRSxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyw2RUFBNkUsQ0FBQTtBQUMzRixjQUFjLG1FQUFtRSxDQUFBO0FBQ2pGLGNBQWMsaUZBQWlGLENBQUE7QUFDL0YsY0FBYywyREFBMkQsQ0FBQTtBQUN6RSxjQUFjLDRGQUE0RixDQUFBO0FBQzFHLGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYyx5RUFBeUUsQ0FBQTtBQUN2RixjQUFjLHFFQUFxRSxDQUFBO0FBQ25GLGNBQWMsK0VBQStFLENBQUE7QUFDN0YsY0FBYywrRUFBK0UsQ0FBQTtBQUM3RixjQUFjLCtFQUErRSxDQUFBO0FBQzdGLGNBQWMsd0VBQXdFLENBQUE7QUFDdEYsY0FBYyxvREFBb0QsQ0FBQTtBQUNsRSxjQUFjLG9DQUFvQyxDQUFBO0FBRWxELGNBQWMsc0ZBQXNGLENBQUE7QUFDcEcsY0FBYywrRkFBK0YsQ0FBQTtBQUM3RyxjQUFjLHVEQUF1RCxDQUFBO0FBQ3JFLGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYyxzREFBc0QsQ0FBQTtBQUNwRSxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMsK0RBQStELENBQUE7QUFDN0UsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLHFEQUFxRCxDQUFBO0FBQ25FLGNBQWMsb0VBQW9FLENBQUE7QUFDbEYsY0FBYyx1RUFBdUUsQ0FBQTtBQUNyRixjQUFjLHFGQUFxRixDQUFBO0FBQ25HLGNBQWMsNkRBQTZELENBQUE7QUFDM0UsY0FBZSwrQkFBK0IsQ0FBQTtBQUM5QyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsdUVBQXVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvbnN1bXB0aW9uXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3VtcHRpb24uc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN1bXB0aW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN1bXB0aW9uLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZ2lzdHJhdGlvbi1saWIuY29uZmlnJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3VtcHRpb24uY29uZmlnJ1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQtbGliLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fc2VydmljZXMvd2lkZ2V0LXVzZXItbGliLnNlcnZpY2UnXG5cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvX3NlcnZpY2VzL2NvbnRlbnQtbGFuZ3VhZ2Uuc2VydmljZSdcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9zdHJpcHMvY29udGVudC1zdHJpcC1mYWNldC1maWx0ZXIvY29udGVudC1zdHJpcC1mYWNldC1maWx0ZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9zdHJpcHMvY29udGVudC1zdHJpcC13aXRoLXRhYnMtcGlsbHMvY29udGVudC1zdHJpcC13aXRoLXRhYnMtcGlsbHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb250ZW50LXN0cmlwLXdpdGgtdGFicy1saWIvY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29tbW9uLXN0cmlwL2NvbW1vbi1zdHJpcC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3NsaWRlcnMvc2xpZGVycy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2RhdGEtcG9pbnRzL2RhdGEtcG9pbnRzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb21wZXRlbmN5LXBhc3Nib29rL2NvbXBldGVuY3ktcGFzc2Jvb2subW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb21wZXRlbmN5LXBhc3Nib29rLW1kby9jb21wZXRlbmN5LXBhc3Nib29rLW1kby5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhbGVuZGVyL2NhbGVuZGVyLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vdXNlci1jb250ZW50LXJhdGluZy91c2VyLWNvbnRlbnQtcmF0aW5nLWxpYi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2Fubm91bmNlbWVudHMvYW5ub3VuY2VtZW50cy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NvbnRlbnQtcHJvZ3Jlc3MvY29udGVudC1wcm9ncmVzcy5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvbWRvLWNoYW5uZWwubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9taWNyb3NpdGVzL3Byb3ZpZGVycy9wcm92aWRlcnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9taWNyb3NpdGVzL25hdGlvbmFsLWxlYXJuaW5nLXdlZWsvbmF0aW9uYWwtbGVhcm5pbmcubW9kdWxlJ1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL19zZXJ2aWNlcy9jb21tb24tbWV0aG9kcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi90b3AtbGVhcm5lcnMvdG9wLWxlYXJuZXJzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2JwLXBsYW4vY2JwLXBsYW4ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9tZG8tbGVhZGVyYm9hcmQvbWRvLWxlYWRlcmJvYXJkLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vaGlnaGxpZ2h0cy1vZi13ZWVrL2hpZ2hsaWdodHMtb2Ytd2Vlay5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3NwZWFrZXJzL3NwZWFrZXJzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vdXNlci1wcm9ncmVzcy91c2VyLXByb2dyZXNzLm1vZHVsZSdcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2RpYWxvZy1jb21wb25lbnRzL2RpYWxvZy1jb21wb25lbnRzLm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb250ZW50LXN0cmlwLXdpdGgtdGFicy1saWIvY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vc2xpZGVycy9zbGlkZXJzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vZGF0YS1wb2ludHMvZGF0YS1wb2ludHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYWxlbmRlci9jYWxlbmRlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NvbW1vbi1zdHJpcC9jb21tb24tc3RyaXAuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9hbm5vdW5jZW1lbnRzL2Fubm91bmNlbWVudHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi90b3AtbGVhcm5lcnMvdG9wLWxlYXJuZXJzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2JwLXBsYW4vY2JwLXBsYW4uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQtcmVzb3VyY2UvY2FyZC1yZXNvdXJjZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQtcG9ydHJhaXQvY2FyZC1wb3J0cmFpdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQtdXNlci9jYXJkLXVzZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLWxhbmRzY2FwZS9jYXJkLWxhbmRzY2FwZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2NhcmRzL2NhcmQtd2lkZS9jYXJkLXdpZGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLW1kby1jaGFubmVsL2NhcmQtbWRvLWNoYW5uZWwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jYXJkcy9jYXJkLXdpZGUtdjIvY2FyZC13aWRlLXYyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZC1rYXJtYS1wcm9ncmFtcy9jYXJkLWthcm1hLXByb2dyYW1zLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZC1rYXJtYS1wcm9ncmFtcy12Mi9jYXJkLWthcm1hLXByb2dyYW1zLXYyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvY2FyZC1wb3J0cmFpdC1leHQvY2FyZC1wb3J0cmFpdC1leHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9kaWFsb2ctY29tcG9uZW50cy9jZXJ0aWZpY2F0ZS1kaWFsb2cvY2VydGlmaWNhdGUtZGlhbG9nLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29udGVudC1wcm9ncmVzcy9jb250ZW50LXByb2dyZXNzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vc3RyaXBzL2NvbnRlbnQtc3RyaXAtd2l0aC10YWJzLXBpbGxzL2NvbnRlbnQtc3RyaXAtd2l0aC10YWJzLXBpbGxzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29tcGV0ZW5jeS1wYXNzYm9vay9jb21wZXRlbmN5LXBhc3Nib29rLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8vY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi91c2VyLWNvbnRlbnQtcmF0aW5nL3VzZXItY29udGVudC1yYXRpbmctbGliLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvbWRvLWNoYW5uZWwtdjEvbWRvLWNoYW5uZWwtdjEuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9taWNyb3NpdGVzL21kby1jaGFubmVscy9tZG8tY2hhbm5lbC12Mi9tZG8tY2hhbm5lbC12Mi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL21pY3Jvc2l0ZXMvbWRvLWNoYW5uZWxzL21kby1jaGFubmVsLXYzL21kby1jaGFubmVsLXYzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWljcm9zaXRlcy9wcm92aWRlcnMvcHJvdmlkZXJzLXYyL3Byb3ZpZGVycy12Mi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2tleS1oaWdobGlnaHRzL2tleS1oaWdobGlnaHRzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vZXZlbnRzL2V2ZW50cy5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vc3RyaXBzL2NvbnRlbnQtc3RyaXAtZmFjZXQtZmlsdGVyL2NvbnRlbnQtc3RyaXAtZmFjZXQtZmlsdGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vbWljcm9zaXRlcy9uYXRpb25hbC1sZWFybmluZy13ZWVrL25hdGlvbmFsLWxlYXJuaW5nL25hdGlvbmFsLWxlYXJuaW5nLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24va2V5LWhpZ2hsaWdodHMva2V5LWhpZ2hsaWdodHMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9ldmVudHMvZXZlbnRzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vZXZlbnRzL2V2ZW50LWNhcmQvZXZlbnQtY2FyZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL21kby1sZWFkZXJib2FyZC9tZG8tbGVhZGVyYm9hcmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9oaWdobGlnaHRzLW9mLXdlZWsvaGlnaGxpZ2h0cy1vZi13ZWVrLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vc3BlYWtlcnMvc3BlYWtlcnMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi91c2VyLXByb2dyZXNzL3VzZXItcHJvZ3Jlc3MuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9ob3Jpem9udGFsLXNjcm9sbGVyLXYyL2hvcml6b250YWwtc2Nyb2xsZXItdjIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9ob3Jpem9udGFsLXNjcm9sbGVyLXYyL2hvcml6b250YWwtc2Nyb2xsZXItdjIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9kaWFsb2ctY29tcG9uZW50cy9hZGQtY29tcGV0ZW5jeS1wb3B1cC9hZGQtY29tcGV0ZW5jeS1wb3B1cC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2RpYWxvZy1jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gICcuL2xpYi9fcGlwZXMvbmJzcC9uYnNwLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19waXBlcy9uYnNwL25ic3AucGlwZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29tbXVuaXR5LXN1Z2dlc3Rpb25zL2NvbW11bml0eS1zdWdnZXN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb21tdW5pdHktc3VnZ2VzdGlvbnMvY29tbXVuaXR5LXN1Z2dlc3Rpb25zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2Nvbm5lY3Rpb24tbmFtZS9jb25uZWN0aW9uLW5hbWUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY29ubmVjdGlvbi1uYW1lL2Nvbm5lY3Rpb24tbmFtZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9jb25uZWN0aW9uLWhvdmVyLWNhcmQvY29ubmVjdGlvbi1ob3Zlci1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19kaXJlY3RpdmVzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9kaWFsb2ctY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vYXZhdGFyLXBob3RvLWxpYi9hdmF0YXItcGhvdG8tbGliLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL2F2YXRhci1waG90by1saWIvYXZhdGFyLXBob3RvLWxpYi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi90b2MtbXVsdGktbGluZ3VhbC1kaWFsb2cvdG9jLW11bHRpLWxpbmd1YWwtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9fY29tbW9uL3RvYy1tdWx0aS1saW5ndWFsLWRpYWxvZy90b2MtbXVsdGktbGluZ3VhbC1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vY2FyZHMvYXZhaWxhYmxlLWxhbmd1YWdlcy9hdmFpbGFibGUtbGFuZ3VhZ2VzLmNvbXBvbmVudCc7Il19