@sunbird-cb/consumption 0.0.26 → 0.0.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 (54) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +651 -201
  2. package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-consumption.umd.min.js +1 -1
  4. package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/announcements/announcements.component.js +77 -9
  6. package/esm2015/lib/_common/calender/calender.component.js +1 -2
  7. package/esm2015/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +33 -27
  8. package/esm2015/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.js +167 -0
  9. package/esm2015/lib/_common/cards/card-landscape/card-landscape.component.js +10 -22
  10. package/esm2015/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +48 -26
  11. package/esm2015/lib/_common/cards/card-portrait/card-portrait.component.js +3 -3
  12. package/esm2015/lib/_common/cards/card-wide-v2/card-wide-v2.component.js +11 -23
  13. package/esm2015/lib/_common/cards/cards.component.js +15 -4
  14. package/esm2015/lib/_common/cards/cards.module.js +6 -3
  15. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +168 -64
  16. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +1 -1
  17. package/esm2015/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +20 -6
  18. package/esm2015/lib/_services/insite-data.service.js +10 -2
  19. package/esm2015/lib/_services/widget-content.service.js +9 -1
  20. package/esm2015/sunbird-cb-consumption.js +23 -22
  21. package/esm5/lib/_common/announcements/announcements.component.js +77 -9
  22. package/esm5/lib/_common/calender/calender.component.js +1 -2
  23. package/esm5/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +35 -30
  24. package/esm5/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.js +177 -0
  25. package/esm5/lib/_common/cards/card-landscape/card-landscape.component.js +11 -22
  26. package/esm5/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +55 -26
  27. package/esm5/lib/_common/cards/card-portrait/card-portrait.component.js +3 -3
  28. package/esm5/lib/_common/cards/card-wide-v2/card-wide-v2.component.js +12 -23
  29. package/esm5/lib/_common/cards/cards.component.js +19 -4
  30. package/esm5/lib/_common/cards/cards.module.js +6 -3
  31. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +209 -65
  32. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.js +1 -1
  33. package/esm5/lib/_common/horizontal-scroller-v2/horizontal-scroller-v2.component.js +20 -6
  34. package/esm5/lib/_services/insite-data.service.js +14 -2
  35. package/esm5/lib/_services/widget-content.service.js +13 -1
  36. package/esm5/sunbird-cb-consumption.js +23 -22
  37. package/fesm2015/sunbird-cb-consumption.js +555 -175
  38. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  39. package/fesm5/sunbird-cb-consumption.js +629 -180
  40. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  41. package/lib/_common/announcements/announcements.component.d.ts +7 -1
  42. package/lib/_common/cards/card-karma-programs/card-karma-programs.component.d.ts +6 -2
  43. package/lib/_common/cards/card-karma-programs-v2/card-karma-programs-v2.component.d.ts +26 -0
  44. package/lib/_common/cards/card-landscape/card-landscape.component.d.ts +2 -1
  45. package/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.d.ts +10 -3
  46. package/lib/_common/cards/card-wide-v2/card-wide-v2.component.d.ts +2 -1
  47. package/lib/_common/cards/cards.component.d.ts +3 -1
  48. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +5 -1
  49. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.model.d.ts +3 -1
  50. package/lib/_services/insite-data.service.d.ts +1 -0
  51. package/lib/_services/widget-content.service.d.ts +1 -0
  52. package/package.json +1 -1
  53. package/sunbird-cb-consumption.d.ts +22 -21
  54. package/sunbird-cb-consumption.metadata.json +1 -1
@@ -209,4 +209,4 @@ export var NsContentStripWithTabs;
209
209
  IContentStripTab.prototype.tabLoading;
210
210
  }
211
211
  })(NsContentStripWithTabs || (NsContentStripWithTabs = {}));
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jb250ZW50LXN0cmlwLXdpdGgtdGFicy1saWIvY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSxNQUFNLEtBQVcsc0JBQXNCLENBK0l0QztBQS9JRCxXQUFpQixzQkFBc0I7Ozs7SUFDckMsb0NBTUM7Ozs7UUFMQyw0Q0FBd0Q7O1FBQ3hELHVDQUFpQjs7UUFDakIsNkNBQXlEOztRQUN6RCx1Q0FBNEI7O1FBQzVCLCtDQUF5Qjs7Ozs7SUFFM0IsZ0NBdUVDOzs7O1FBdEVDLDZDQUF1Qjs7UUFDdkIsZ0NBQVk7O1FBQ1osa0NBQWM7O1FBQ2QseUNBQXNCOztRQUN0QixzQ0FBbUI7O1FBQ25CLDJDQU1FOztRQUNGLHlDQWFFOztRQUNGLGlDQUE2RDs7UUFDN0QsNkNBQTBCOztRQUMxQixpQ0FBYzs7UUFDZCxpQ0FBbUI7O1FBQ25CLGlDQUFrQjs7UUFDbEIsaUNBQWM7O1FBQ2QsdUNBQXlEOztRQUN6RCx3Q0FBMEQ7O1FBQzFELHdDQUEyQjs7UUFDM0IseUNBQXVCOztRQUN2QixvQ0FBZ0I7O1FBQ2hCLHNDQUEyQjs7UUFDM0Isb0NBZ0JFOztRQUNGLHlDQUEyRDs7UUFDM0QsNENBQXlCOztRQUN6Qix5Q0FBeUQ7O1FBQ3pELG1DQUFpQjs7UUFDakIsMENBQW9COztRQUNwQix3Q0FBd0Q7O1FBQ3hELHlDQUFvRDs7UUFDcEQsdUNBQXFCOztRQUNyQiw2Q0FBdUI7O1FBQ3ZCLHdDQUlFOztRQUNGLGlDQUFVOzs7OztJQUdaLCtCQVFDOzs7O1FBUEMsZ0NBQWE7O1FBQ2IsdUNBS0U7Ozs7O0lBRUosaUNBR0M7Ozs7UUFGQyxrQ0FBYTs7UUFDYixrQ0FBVzs7Ozs7SUFFYix5QkFTQzs7OztRQVJDLDBCQUFrQzs7UUFDbEMsb0NBQXNDOztRQUN0QywwQkFJRTs7UUFDRiw0QkFBa0Q7Ozs7O0lBRXBELDJCQVNDOzs7UUFQQyxtQ0FBd0M7O1FBRXhDLHlDQUE0Qjs7UUFDNUIsb0NBQWtDOztRQUNsQyxtQ0FBaUM7O1FBQ2pDLG1DQUEyQjs7UUFDM0IsbUNBQXNCOzs7OztJQUd4QiwyQkFNQzs7OztRQUxDLGdDQUFrQjs7UUFDbEIsMENBQStDOztRQUMvQyx1Q0FBMkI7O1FBQzNCLDJCQUFZOztRQUNaLHFDQUFzQjs7Ozs7SUFFeEIsdUNBS0M7Ozs7UUFKQyw0Q0FBK0I7O1FBQy9CLDJDQUFrQjs7UUFDbEIsNkNBQW1COztRQUNuQiw2Q0FBbUI7Ozs7O0lBR3JCLCtCQWFDOzs7O1FBWkMsaUNBQWM7O1FBQ2QsaUNBQWM7O1FBQ2QsNENBQTBCOztRQUMxQiwyQ0FBMEI7O1FBQzFCLDhDQUE2Qjs7UUFDN0IsaURBQStCOztRQUMvQixtQ0FBYzs7UUFDZCxtQ0FBc0Q7O1FBQ3RELHNDQUFvQjs7UUFDcEIsMENBQXdCOztRQUN4QixxQ0FBbUI7O1FBQ25CLHNDQUFxQjs7QUFFekIsQ0FBQyxFQS9JZ0Isc0JBQXNCLEtBQXRCLHNCQUFzQixRQStJdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOc1dpZGdldFJlc29sdmVyIH0gZnJvbSAnQHN1bmJpcmQtY2IvcmVzb2x2ZXItdjInO1xuaW1wb3J0IHsgTlNTZWFyY2ggfSBmcm9tICcuLi8uLi9fbW9kZWxzL3dpZGdldC1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi4vLi4vX21vZGVscy93aWRnZXQtY29udGVudC5tb2RlbCc7XG5pbXBvcnQgeyBOc0NhcmRDb250ZW50IH0gZnJvbSAnLi4vLi4vX21vZGVscy9jYXJkLWNvbnRlbnQubW9kZWwnO1xuXG5leHBvcnQgbmFtZXNwYWNlIE5zQ29udGVudFN0cmlwV2l0aFRhYnMge1xuICBleHBvcnQgaW50ZXJmYWNlIElDb250ZW50U3RyaXBNdWx0aXBsZSB7XG4gICAgZXJyb3JXaWRnZXQ/OiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YTtcbiAgICBsb2FkZXI/OiBib29sZWFuO1xuICAgIG5vRGF0YVdpZGdldD86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhO1xuICAgIHN0cmlwczogSUNvbnRlbnRTdHJpcFVuaXRbXTtcbiAgICBpc0NoYW5uZWxTdHJpcD86IGJvb2xlYW47XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJQ29udGVudFN0cmlwVW5pdCB7XG4gICAgZGlzYWJsZVRyYW5zbGF0ZT86IGFueTtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGN1c3RvbWVDbGFzcz86IHN0cmluZztcbiAgICBub2RhdGFNc2c/OiBzdHJpbmc7XG4gICAgc3RyaXBUaXRsZUxpbms/OiB7XG4gICAgICAgIGxpbms6ICB7XG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHN0cmluZ1xuICAgICAgICB9LFxuICAgICAgICBpY29uOiBzdHJpbmcsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBzdHJpbmdcbiAgICB9O1xuICAgIHNsaWRlckNvbmZpZz86IHtcbiAgICAgIHNob3dOYXZzOiBib29sZWFuLFxuICAgICAgc2hvd0RvdHM6IGJvb2xlYW4sXG4gICAgICBtYXhXaWRnZXRzPzogbnVtYmVyXG4gICAgICBjZXJpZmljYXRlQ2FyZE1hcmdpbj86IGJvb2xlYW4sXG4gICAgICBkb3RzQWxpZ24/OiBcInJpZ2h0XCIgfCBcImxlZnRcIixcbiAgICAgIGFycm93c1BsYWNlbWVudD86IFwiYm90dG9tLXJpZ2h0XCIgfCBcImJvdHRvbS1jZW50ZXJcIiB8IFwiYm90dG9tLWxlZnRcIiB8IFwibWlkZGxlLWlubGluZVwiLFxuICAgICAgcmVzcG9uc2l2ZT86IHtcbiAgICAgICAgc2hvd05hdnM6IGJvb2xlYW4sXG4gICAgICAgIHNob3dEb3RzOiBib29sZWFuLFxuICAgICAgICBkb3RzQWxpZ24/OiBcInJpZ2h0XCIgfCBcImxlZnRcIixcbiAgICAgICAgYXJyb3dzUGxhY2VtZW50PzogXCJib3R0b20tcmlnaHRcIiB8IFwiYm90dG9tLWNlbnRlclwiIHwgXCJib3R0b20tbGVmdFwiIHwgXCJtaWRkbGUtaW5saW5lXCIsXG4gICAgICB9O1xuICAgIH07XG4gICAgdGFicz86IE5zQ29udGVudFN0cmlwV2l0aFRhYnMuSUNvbnRlbnRTdHJpcFRhYltdIHwgdW5kZWZpbmVkO1xuICAgIHRpdGxlRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBtb2RlPzogJ2FjY29yZGlvbic7XG4gICAgaW5mbz86IElTdHJpcEluZm87XG4gICAgbG9nbz86IHN0cmluZztcbiAgICBwcmVXaWRnZXRzPzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGFbXTtcbiAgICBwb3N0V2lkZ2V0cz86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhW107XG4gICAgc3RyaXBDb25maWc/OiBJU3RyaXBDb25maWc7XG4gICAgY2FuSGlkZVN0cmlwPzogYm9vbGVhbjtcbiAgICBmaWx0ZXJzPzogYW55W107XG4gICAgc2VsZWN0QWxsPzogYm9vbGVhbiB8IG51bGw7XG4gICAgcmVxdWVzdD86IHtcbiAgICAgIHNlYXJjaD86IE5TU2VhcmNoLklTZWFyY2hSZXF1ZXN0XG4gICAgICBzZWFyY2hWNj86IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3RcbiAgICAgIHRvcENvbnRlbnQ/OiBhbnlcbiAgICAgIGZlYXR1cmVDb250ZW50PzogYW55XG4gICAgICBjaGFubmVscz86IGFueVxuICAgICAgZW5yb2xsbWVudExpc3Q/OiBhbnlcbiAgICAgIGNicExpc3Q/OiBhbnksXG4gICAgICBhcGlVcmw6IHN0cmluZ1xuICAgICAgc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24/OiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0XG4gICAgICBhcGk/OiBJU3RyaXBSZXF1ZXN0QXBpXG4gICAgICBuZXR3b3JrQXBpPzogSU5ldHdvcmtSZXF1ZXN0QXBpXG4gICAgICBpZHM/OiBzdHJpbmdbXVxuICAgICAgcmVjb21tZW5kZWRDb3Vyc2VzPzogYW55LFxuICAgICAgbWFzdGVyQ29tcGV0ZW5jeT86IGFueVxuICAgICAgdHJlbmRpbmdTZWFyY2g/OiBhbnlcbiAgICB9O1xuICAgIHNlYXJjaFY2VHlwZT86ICdLQicgfCAnQ29sbGVjdGlvbnMnIHwgJ3NlYXJjaFF1ZXJ5JyB8IG51bGw7XG4gICAgc3RyaXBCYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAgIG5vRGF0YVdpZGdldD86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhO1xuICAgIGxvYWRlcj86IGJvb2xlYW47XG4gICAgbG9hZGVyV2lkZ2V0cz86IGFueTtcbiAgICBlcnJvcldpZGdldD86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhO1xuICAgIHJlZnJlc2hFdmVudD86IFJlY29yZDwnZXZlbnRUeXBlJyB8ICdmcm9tJywgc3RyaW5nPjtcbiAgICBmZXRjaExpa2VzPzogYm9vbGVhbjtcbiAgICBzZWNvbmRhcnlIZWFkaW5nPzogYW55O1xuICAgIHZpZXdNb3JlVXJsPzoge1xuICAgICAgcXVlcnlQYXJhbXM/OiBhbnlcbiAgICAgIHZpZXdNb3JlVGV4dDogc3RyaW5nXG4gICAgICBwYXRoOiBzdHJpbmdcbiAgICB9O1xuICAgIGRhdGE/OiBbXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVN0cmlwUmVxdWVzdEFwaSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHF1ZXJ5UGFyYW1zPzoge1xuICAgICAgcGFnZU5vPzogbnVtYmVyXG4gICAgICBwYWdlU2l6ZT86IG51bWJlclxuICAgICAgcGFnZVN0YXRlPzogc3RyaW5nXG4gICAgICBzb3VyY2VGaWVsZHM/OiBzdHJpbmdcbiAgICB9O1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgSU5ldHdvcmtSZXF1ZXN0QXBpIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZGF0YT86IGFueTtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElTdHJpcEluZm8ge1xuICAgIG1vZGU6ICdiZWxvdycgfCAncG9wdXAnIHwgJ21vZGFsJztcbiAgICB2aXNpYmlsaXR5TW9kZT86ICdoaWRkZW4nIHwgJ3Zpc2libGUnO1xuICAgIGljb246IHtcbiAgICAgIGljb246IHN0cmluZ1xuICAgICAgc2NhbGU6IG51bWJlclxuICAgICAgc3R5bGU/OiBhbnkgLy8gYWRkZWQgZm9yIFVJXG4gICAgfTtcbiAgICB3aWRnZXQ6IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhO1xuICB9XG4gIGludGVyZmFjZSBJU3RyaXBDb25maWcge1xuICAgIC8vIGNhcmQgc3ViVHlwZSBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGNvbnRlbnQgQ2FyZCBkaXNwbGF5IHR5cGVcbiAgICBjYXJkU3ViVHlwZTogTnNDYXJkQ29udGVudC5UQ2FyZFN1YlR5cGU7XG4gICAgLy8gdG8gc2hvdyB2aWV3IG1vcmUgY2FyZCBmb3IgYSBzZWFyY2ggc3RyaXBcbiAgICBwb3N0Q2FyZEZvclNlYXJjaD86IGJvb2xlYW47XG4gICAgaW50cmFuZXRNb2RlPzogJ2dyZXlPdXQnIHwgJ2hpZGUnO1xuICAgIGRlbGV0ZWRNb2RlPzogJ2dyZXlPdXQnIHwgJ2hpZGUnO1xuICAgIGNvbnRlbnRUYWdzPzogSUNvbnRlbnRUYWdzO1xuICAgIGhpZGVTaG93QWxsPzogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRUYWdzIHtcbiAgICBkYXlzU3Bhbj86IG51bWJlcjtcbiAgICBleGNsdWRlQ29udGVudFR5cGU/OiBOc0NvbnRlbnQuRUNvbnRlbnRUeXBlc1tdO1xuICAgIGV4Y2x1ZGVNaW1lVHlwZT86IHN0cmluZ1tdO1xuICAgIHRhZzogc3RyaW5nO1xuICAgIGNyaXRlcmlhRmllbGQ6IHN0cmluZztcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElDb250ZW50U3RyaXBSZXNwb25zZUFwaSB7XG4gICAgY29udGVudHM6IE5zQ29udGVudC5JQ29udGVudFtdO1xuICAgIGhhc01vcmU/OiBib29sZWFuO1xuICAgIHBhZ2VTdGF0ZT86IHN0cmluZztcbiAgICB0b3RhbEhpdHM/OiBudW1iZXI7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElDb250ZW50U3RyaXBUYWIge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBzaG93VGFiRGF0YUNvdW50OiBib29sZWFuO1xuICAgIHJlcXVlc3RSZXF1aXJlZD86IGJvb2xlYW47XG4gICAgY29tcHV0ZURhdGFPbkNsaWNrPzogYm9vbGVhbjtcbiAgICBjb21wdXRlRGF0YU9uQ2xpY2tLZXk/OiBzdHJpbmc7XG4gICAgcmVxdWVzdD86IGFueTtcbiAgICB3aWRnZXRzPzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGFbXTtcbiAgICBtYXhXaWRnZXRzPzogbnVtYmVyO1xuICAgIGZldGNoVGFiU3RhdHVzPzogc3RyaW5nO1xuICAgIG5vZGF0YU1zZz86IHN0cmluZztcbiAgICB0YWJMb2FkaW5nPzogYm9vbGVhbjtcbiAgfVxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jb250ZW50LXN0cmlwLXdpdGgtdGFicy1saWIvY29udGVudC1zdHJpcC13aXRoLXRhYnMtbGliLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSxNQUFNLEtBQVcsc0JBQXNCLENBaUp0QztBQWpKRCxXQUFpQixzQkFBc0I7Ozs7SUFDckMsb0NBTUM7Ozs7UUFMQyw0Q0FBd0Q7O1FBQ3hELHVDQUFpQjs7UUFDakIsNkNBQXlEOztRQUN6RCx1Q0FBNEI7O1FBQzVCLCtDQUF5Qjs7Ozs7SUFFM0IsZ0NBeUVDOzs7O1FBeEVDLDZDQUF1Qjs7UUFDdkIsZ0NBQVk7O1FBQ1osa0NBQWM7O1FBQ2QseUNBQXNCOztRQUN0QixzQ0FBbUI7O1FBQ25CLDJDQU1FOztRQUNGLHlDQWFFOztRQUNGLGlDQUE2RDs7UUFDN0QsNkNBQTBCOztRQUMxQixpQ0FBYzs7UUFDZCxpQ0FBbUI7O1FBQ25CLGlDQUFrQjs7UUFDbEIsaUNBQWM7O1FBQ2QsdUNBQXlEOztRQUN6RCx3Q0FBMEQ7O1FBQzFELHdDQUEyQjs7UUFDM0IseUNBQXVCOztRQUN2QixvQ0FBZ0I7O1FBQ2hCLHNDQUEyQjs7UUFDM0Isb0NBa0JFOztRQUNGLHlDQUEyRDs7UUFDM0QsNENBQXlCOztRQUN6Qix5Q0FBeUQ7O1FBQ3pELG1DQUFpQjs7UUFDakIsMENBQW9COztRQUNwQix3Q0FBd0Q7O1FBQ3hELHlDQUFvRDs7UUFDcEQsdUNBQXFCOztRQUNyQiw2Q0FBdUI7O1FBQ3ZCLHdDQUlFOztRQUNGLGlDQUFVOzs7OztJQUdaLCtCQVFDOzs7O1FBUEMsZ0NBQWE7O1FBQ2IsdUNBS0U7Ozs7O0lBRUosaUNBR0M7Ozs7UUFGQyxrQ0FBYTs7UUFDYixrQ0FBVzs7Ozs7SUFFYix5QkFTQzs7OztRQVJDLDBCQUFrQzs7UUFDbEMsb0NBQXNDOztRQUN0QywwQkFJRTs7UUFDRiw0QkFBa0Q7Ozs7O0lBRXBELDJCQVNDOzs7UUFQQyxtQ0FBd0M7O1FBRXhDLHlDQUE0Qjs7UUFDNUIsb0NBQWtDOztRQUNsQyxtQ0FBaUM7O1FBQ2pDLG1DQUEyQjs7UUFDM0IsbUNBQXNCOzs7OztJQUd4QiwyQkFNQzs7OztRQUxDLGdDQUFrQjs7UUFDbEIsMENBQStDOztRQUMvQyx1Q0FBMkI7O1FBQzNCLDJCQUFZOztRQUNaLHFDQUFzQjs7Ozs7SUFFeEIsdUNBS0M7Ozs7UUFKQyw0Q0FBK0I7O1FBQy9CLDJDQUFrQjs7UUFDbEIsNkNBQW1COztRQUNuQiw2Q0FBbUI7Ozs7O0lBR3JCLCtCQWFDOzs7O1FBWkMsaUNBQWM7O1FBQ2QsaUNBQWM7O1FBQ2QsNENBQTBCOztRQUMxQiwyQ0FBMEI7O1FBQzFCLDhDQUE2Qjs7UUFDN0IsaURBQStCOztRQUMvQixtQ0FBYzs7UUFDZCxtQ0FBc0Q7O1FBQ3RELHNDQUFvQjs7UUFDcEIsMENBQXdCOztRQUN4QixxQ0FBbUI7O1FBQ25CLHNDQUFxQjs7QUFFekIsQ0FBQyxFQWpKZ0Isc0JBQXNCLEtBQXRCLHNCQUFzQixRQWlKdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOc1dpZGdldFJlc29sdmVyIH0gZnJvbSAnQHN1bmJpcmQtY2IvcmVzb2x2ZXItdjInO1xuaW1wb3J0IHsgTlNTZWFyY2ggfSBmcm9tICcuLi8uLi9fbW9kZWxzL3dpZGdldC1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi4vLi4vX21vZGVscy93aWRnZXQtY29udGVudC5tb2RlbCc7XG5pbXBvcnQgeyBOc0NhcmRDb250ZW50IH0gZnJvbSAnLi4vLi4vX21vZGVscy9jYXJkLWNvbnRlbnQubW9kZWwnO1xuXG5leHBvcnQgbmFtZXNwYWNlIE5zQ29udGVudFN0cmlwV2l0aFRhYnMge1xuICBleHBvcnQgaW50ZXJmYWNlIElDb250ZW50U3RyaXBNdWx0aXBsZSB7XG4gICAgZXJyb3JXaWRnZXQ/OiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YTtcbiAgICBsb2FkZXI/OiBib29sZWFuO1xuICAgIG5vRGF0YVdpZGdldD86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhO1xuICAgIHN0cmlwczogSUNvbnRlbnRTdHJpcFVuaXRbXTtcbiAgICBpc0NoYW5uZWxTdHJpcD86IGJvb2xlYW47XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJQ29udGVudFN0cmlwVW5pdCB7XG4gICAgZGlzYWJsZVRyYW5zbGF0ZT86IGFueTtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGN1c3RvbWVDbGFzcz86IHN0cmluZztcbiAgICBub2RhdGFNc2c/OiBzdHJpbmc7XG4gICAgc3RyaXBUaXRsZUxpbms/OiB7XG4gICAgICAgIGxpbms6ICB7XG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHN0cmluZ1xuICAgICAgICB9LFxuICAgICAgICBpY29uOiBzdHJpbmcsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBzdHJpbmdcbiAgICB9O1xuICAgIHNsaWRlckNvbmZpZz86IHtcbiAgICAgIHNob3dOYXZzOiBib29sZWFuLFxuICAgICAgc2hvd0RvdHM6IGJvb2xlYW4sXG4gICAgICBtYXhXaWRnZXRzPzogbnVtYmVyXG4gICAgICBjZXJpZmljYXRlQ2FyZE1hcmdpbj86IGJvb2xlYW4sXG4gICAgICBkb3RzQWxpZ24/OiBcInJpZ2h0XCIgfCBcImxlZnRcIixcbiAgICAgIGFycm93c1BsYWNlbWVudD86IFwiYm90dG9tLXJpZ2h0XCIgfCBcImJvdHRvbS1jZW50ZXJcIiB8IFwiYm90dG9tLWxlZnRcIiB8IFwibWlkZGxlLWlubGluZVwiLFxuICAgICAgcmVzcG9uc2l2ZT86IHtcbiAgICAgICAgc2hvd05hdnM6IGJvb2xlYW4sXG4gICAgICAgIHNob3dEb3RzOiBib29sZWFuLFxuICAgICAgICBkb3RzQWxpZ24/OiBcInJpZ2h0XCIgfCBcImxlZnRcIixcbiAgICAgICAgYXJyb3dzUGxhY2VtZW50PzogXCJib3R0b20tcmlnaHRcIiB8IFwiYm90dG9tLWNlbnRlclwiIHwgXCJib3R0b20tbGVmdFwiIHwgXCJtaWRkbGUtaW5saW5lXCIsXG4gICAgICB9O1xuICAgIH07XG4gICAgdGFicz86IE5zQ29udGVudFN0cmlwV2l0aFRhYnMuSUNvbnRlbnRTdHJpcFRhYltdIHwgdW5kZWZpbmVkO1xuICAgIHRpdGxlRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBtb2RlPzogJ2FjY29yZGlvbic7XG4gICAgaW5mbz86IElTdHJpcEluZm87XG4gICAgbG9nbz86IHN0cmluZztcbiAgICBwcmVXaWRnZXRzPzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGFbXTtcbiAgICBwb3N0V2lkZ2V0cz86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhW107XG4gICAgc3RyaXBDb25maWc/OiBJU3RyaXBDb25maWc7XG4gICAgY2FuSGlkZVN0cmlwPzogYm9vbGVhbjtcbiAgICBmaWx0ZXJzPzogYW55W107XG4gICAgc2VsZWN0QWxsPzogYm9vbGVhbiB8IG51bGw7XG4gICAgcmVxdWVzdD86IHtcbiAgICAgIHBsYXlsaXN0UmVhZDogYW55O1xuICAgICAgcGxheWxpc3RTZWFyY2g/OiBhbnk7XG4gICAgICBzZWFyY2g/OiBOU1NlYXJjaC5JU2VhcmNoUmVxdWVzdFxuICAgICAgc2VhcmNoVjY/OiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0XG4gICAgICB0b3BDb250ZW50PzogYW55XG4gICAgICBmZWF0dXJlQ29udGVudD86IGFueVxuICAgICAgYm9va21hcmtSZWFkPzogYW55XG4gICAgICBlbnJvbGxtZW50TGlzdD86IGFueVxuICAgICAgY2JwTGlzdD86IGFueSxcbiAgICAgIGFwaVVybDogc3RyaW5nXG4gICAgICBzZWFyY2hSZWdpb25SZWNvbW1lbmRhdGlvbj86IE5TU2VhcmNoLklTZWFyY2hPcmdSZWdpb25SZWNvbW1lbmRhdGlvblJlcXVlc3RcbiAgICAgIGFwaT86IElTdHJpcFJlcXVlc3RBcGlcbiAgICAgIG5ldHdvcmtBcGk/OiBJTmV0d29ya1JlcXVlc3RBcGlcbiAgICAgIGlkcz86IHN0cmluZ1tdXG4gICAgICByZWNvbW1lbmRlZENvdXJzZXM/OiBhbnksXG4gICAgICBtYXN0ZXJDb21wZXRlbmN5PzogYW55XG4gICAgICB0cmVuZGluZ1NlYXJjaD86IGFueVxuICAgIH07XG4gICAgc2VhcmNoVjZUeXBlPzogJ0tCJyB8ICdDb2xsZWN0aW9ucycgfCAnc2VhcmNoUXVlcnknIHwgbnVsbDtcbiAgICBzdHJpcEJhY2tncm91bmQ/OiBzdHJpbmc7XG4gICAgbm9EYXRhV2lkZ2V0PzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGE7XG4gICAgbG9hZGVyPzogYm9vbGVhbjtcbiAgICBsb2FkZXJXaWRnZXRzPzogYW55O1xuICAgIGVycm9yV2lkZ2V0PzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGE7XG4gICAgcmVmcmVzaEV2ZW50PzogUmVjb3JkPCdldmVudFR5cGUnIHwgJ2Zyb20nLCBzdHJpbmc+O1xuICAgIGZldGNoTGlrZXM/OiBib29sZWFuO1xuICAgIHNlY29uZGFyeUhlYWRpbmc/OiBhbnk7XG4gICAgdmlld01vcmVVcmw/OiB7XG4gICAgICBxdWVyeVBhcmFtcz86IGFueVxuICAgICAgdmlld01vcmVUZXh0OiBzdHJpbmdcbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgIH07XG4gICAgZGF0YT86IFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJU3RyaXBSZXF1ZXN0QXBpIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgcXVlcnlQYXJhbXM/OiB7XG4gICAgICBwYWdlTm8/OiBudW1iZXJcbiAgICAgIHBhZ2VTaXplPzogbnVtYmVyXG4gICAgICBwYWdlU3RhdGU/OiBzdHJpbmdcbiAgICAgIHNvdXJjZUZpZWxkcz86IHN0cmluZ1xuICAgIH07XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJTmV0d29ya1JlcXVlc3RBcGkge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBkYXRhPzogYW55O1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgSVN0cmlwSW5mbyB7XG4gICAgbW9kZTogJ2JlbG93JyB8ICdwb3B1cCcgfCAnbW9kYWwnO1xuICAgIHZpc2liaWxpdHlNb2RlPzogJ2hpZGRlbicgfCAndmlzaWJsZSc7XG4gICAgaWNvbjoge1xuICAgICAgaWNvbjogc3RyaW5nXG4gICAgICBzY2FsZTogbnVtYmVyXG4gICAgICBzdHlsZT86IGFueSAvLyBhZGRlZCBmb3IgVUlcbiAgICB9O1xuICAgIHdpZGdldDogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGE7XG4gIH1cbiAgaW50ZXJmYWNlIElTdHJpcENvbmZpZyB7XG4gICAgLy8gY2FyZCBzdWJUeXBlIGtleSBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgY29udGVudCBDYXJkIGRpc3BsYXkgdHlwZVxuICAgIGNhcmRTdWJUeXBlOiBOc0NhcmRDb250ZW50LlRDYXJkU3ViVHlwZTtcbiAgICAvLyB0byBzaG93IHZpZXcgbW9yZSBjYXJkIGZvciBhIHNlYXJjaCBzdHJpcFxuICAgIHBvc3RDYXJkRm9yU2VhcmNoPzogYm9vbGVhbjtcbiAgICBpbnRyYW5ldE1vZGU/OiAnZ3JleU91dCcgfCAnaGlkZSc7XG4gICAgZGVsZXRlZE1vZGU/OiAnZ3JleU91dCcgfCAnaGlkZSc7XG4gICAgY29udGVudFRhZ3M/OiBJQ29udGVudFRhZ3M7XG4gICAgaGlkZVNob3dBbGw/OiBib29sZWFuO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJQ29udGVudFRhZ3Mge1xuICAgIGRheXNTcGFuPzogbnVtYmVyO1xuICAgIGV4Y2x1ZGVDb250ZW50VHlwZT86IE5zQ29udGVudC5FQ29udGVudFR5cGVzW107XG4gICAgZXhjbHVkZU1pbWVUeXBlPzogc3RyaW5nW107XG4gICAgdGFnOiBzdHJpbmc7XG4gICAgY3JpdGVyaWFGaWVsZDogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpIHtcbiAgICBjb250ZW50czogTnNDb250ZW50LklDb250ZW50W107XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG4gICAgcGFnZVN0YXRlPzogc3RyaW5nO1xuICAgIHRvdGFsSGl0cz86IG51bWJlcjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRTdHJpcFRhYiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIHNob3dUYWJEYXRhQ291bnQ6IGJvb2xlYW47XG4gICAgcmVxdWVzdFJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICBjb21wdXRlRGF0YU9uQ2xpY2s/OiBib29sZWFuO1xuICAgIGNvbXB1dGVEYXRhT25DbGlja0tleT86IHN0cmluZztcbiAgICByZXF1ZXN0PzogYW55O1xuICAgIHdpZGdldHM/OiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YVtdO1xuICAgIG1heFdpZGdldHM/OiBudW1iZXI7XG4gICAgZmV0Y2hUYWJTdGF0dXM/OiBzdHJpbmc7XG4gICAgbm9kYXRhTXNnPzogc3RyaW5nO1xuICAgIHRhYkxvYWRpbmc/OiBib29sZWFuO1xuICB9XG59XG4iXX0=
@@ -166,7 +166,6 @@ export class HorizontalScrollerV2Component {
166
166
  * @return {?}
167
167
  */
168
168
  updateNavigationBtnStatus(elem) {
169
- debugger;
170
169
  this.enablePrev = true;
171
170
  this.enableNext = true;
172
171
  if (elem.scrollLeft === 0) {
@@ -175,14 +174,29 @@ export class HorizontalScrollerV2Component {
175
174
  }
176
175
  this.activeNav = 0;
177
176
  }
178
- if (elem.scrollWidth === Math.round(elem.clientWidth + elem.scrollLeft)) {
177
+ // if (elem.scrollWidth === Math.round(elem.clientWidth + elem.scrollLeft)) {
178
+ // if (this.loadStatus === 'hasMore') {
179
+ // this.loadNext.emit();
180
+ // } else {
181
+ // if(!this.sliderConfig.arrowsAlwaysOn) {
182
+ // this.enableNext = false;
183
+ // }
184
+ // if (this.bottomDotsArray.length) {
185
+ // this.activeNav = this.bottomDotsArray.length - 1;
186
+ // }
187
+ // }
188
+ // }
189
+ // if (elem.scrollLeft !== 0 && (elem.scrollWidth !== elem.clientWidth + elem.scrollLeft)) {
190
+ // this.activeNav = Math.ceil(elem.scrollLeft / elem.clientWidth);
191
+ // }
192
+ /** @type {?} */
193
+ const widthDiff = Math.abs(elem.scrollWidth - Math.round(elem.clientWidth + elem.scrollLeft));
194
+ if (widthDiff === 0 || widthDiff === 1) {
179
195
  if (this.loadStatus === 'hasMore') {
180
196
  this.loadNext.emit();
181
197
  }
182
198
  else {
183
- if (!this.sliderConfig.arrowsAlwaysOn) {
184
- this.enableNext = false;
185
- }
199
+ this.enableNext = false;
186
200
  if (this.bottomDotsArray.length) {
187
201
  this.activeNav = this.bottomDotsArray.length - 1;
188
202
  }
@@ -346,4 +360,4 @@ if (false) {
346
360
  */
347
361
  HorizontalScrollerV2Component.prototype.valueSvc;
348
362
  }
349
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi9jb25zdW1wdGlvbi8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL2hvcml6b250YWwtc2Nyb2xsZXItdjIvaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBQ04sTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVVwRCxNQUFNLE9BQU8sNkJBQTZCOzs7O0lBMkJ4QyxZQUFvQixRQUFzQjtRQUF0QixhQUFRLEdBQVIsUUFBUSxDQUFjO1FBekJqQyxlQUFVLEdBQWlCLFVBQVUsQ0FBQztRQUN0QyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVksR0FBUTtZQUMzQixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2Qsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDO1FBQ1EsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLeEMseUJBQW9CLEdBQXNCLElBQUksQ0FBQztRQUUvQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGdCQUFXLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBQ2xCLG1CQUFj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REFBMEI7O0lBQzFCLDZEQUMrQzs7SUFFL0MsbURBQW1COztJQUNuQixtREFBbUI7O0lBQ25CLGtEQUFjOztJQUNkLG9EQUF5Qjs7SUFDekIsd0RBQTBCOzs7OztJQUMxQix1REFBbUQ7O0lBQ25ELGlEQUFnQjs7Ozs7SUFDaEIsNkRBQXdEOztJQUN4RCxvREFBdUM7Ozs7O0lBRTNCLGlEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZyb21FdmVudCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aW1lcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRGZXRjaFN0YXR1cyB9IGZyb20gJy4uLy4uL19jb25zdGFudHMvbWlzYy5jb25zdGFudHMnO1xuaW1wb3J0IHsgVmFsdWVTZXJ2aWNlIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInO1xuaW1wb3J0IHsgTnNDb21tb25TdHJpcCB9IGZyb20gJy4uL2NvbW1vbi1zdHJpcC9jb21tb24tc3RyaXAubW9kZWwnO1xuaW1wb3J0IHsgTnNDb250ZW50U3RyaXBNdWx0aXBsZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvY29udGVudC1zdHJpcC1tdWx0aXBsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1ob3Jpem9udGFsLXNjcm9sbGVyLXYyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hvcml6b250YWwtc2Nyb2xsZXItdjIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ob3Jpem9udGFsLXNjcm9sbGVyLXYyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuXG5leHBvcnQgY2xhc3MgSG9yaXpvbnRhbFNjcm9sbGVyVjJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBsb2FkU3RhdHVzOiBURmV0Y2hTdGF0dXMgPSAnZmV0Y2hpbmcnO1xuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG9uSG92ZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgc2xpZGVyQ29uZmlnOiBhbnkgPSB7XG4gICAgc2hvd05hdnM6IHRydWUsXG4gICAgc2hvd0RvdHM6IHRydWUsXG4gICAgY2VyaWZpY2F0ZUNhcmRNYXJnaW46IGZhbHNlLFxuICB9O1xuICBAT3V0cHV0KCkgbG9hZE5leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIHdpZGdldHNMZW5ndGg6IGFueTtcbiAgQElucHV0KCkgZGVmYXVsdE1heFdpZGdldHM6IGFueTtcbiAgQElucHV0KCkgc3RyaXBDb25maWc6IGFueTtcbiAgQFZpZXdDaGlsZCgnaG9yaXpvbnRhbFNjcm9sbEVsZW0nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBob3Jpem9udGFsU2Nyb2xsRWxlbTogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xuXG4gIGVuYWJsZVByZXYgPSBmYWxzZTtcbiAgZW5hYmxlTmV4dCA9IGZhbHNlO1xuICBhY3RpdmVOYXYgPSAwO1xuICBjYXJkU3ViVHlwZSA9ICdzdGFuZGFyZCc7XG4gIGJvdHRvbURvdHNBcnJheTogYW55ID0gW107XG4gIHByaXZhdGUgc2Nyb2xsT2JzZXJ2ZXI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICBpc01vYmlsZSA9IGZhbHNlXG4gIHByaXZhdGUgZGVmYXVsdE1lbnVTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsXG4gIGlzTHRNZWRpdW0kID0gdGhpcy52YWx1ZVN2Yy5pc0x0TWVkaXVtJFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsdWVTdmM6IFZhbHVlU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYXJkU3ViVHlwZSA9IHRoaXMuc3RyaXBDb25maWcgJiYgdGhpcy5zdHJpcENvbmZpZy5jYXJkU3ViVHlwZSA/IHRoaXMuc3RyaXBDb25maWcuY2FyZFN1YlR5cGUgOiAnc3RhbmRhcmQnO1xuICAgIGlmICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtKSB7XG4gICAgICBjb25zdCBob3Jpem9udGFsU2Nyb2xsRWxlbSA9IHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW07XG4gICAgICB0aGlzLnNjcm9sbE9ic2VydmVyID0gZnJvbUV2ZW50KFxuICAgICAgICBob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnc2Nyb2xsJyxcbiAgICAgIClcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApLCB0aHJvdHRsZVRpbWUoMTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvbkJ0blN0YXR1cyhob3Jpem9udGFsU2Nyb2xsRWxlbVxuICAgICAgICAgIC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIH0pO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0Qm90dG9tRG90c0FycmF5KCk7XG4gICAgICB9LCA3MDApO1xuICAgIH1cbiAgICB0aGlzLmRlZmF1bHRNZW51U3Vic2NyaWJlID0gdGhpcy5pc0x0TWVkaXVtJC5zdWJzY3JpYmUoKGlzTHRNZWRpdW06IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSBpc0x0TWVkaXVtXG4gICAgfSlcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRpbWVyKDEwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtKSB7XG4gICAgICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvbkJ0blN0YXR1cyh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtXG4gICAgICAgICAgLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRCb3R0b21Eb3RzQXJyYXkoKTtcbiAgICB9LCA3MDApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMuc2Nyb2xsT2JzZXJ2ZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVmYXVsdE1lbnVTdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuZGVmYXVsdE1lbnVTdWJzY3JpYmUudW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIHNob3dQcmV2KCkge1xuICAgIC8vIGNvbnN0IGVsZW0gPSB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnRcbiAgICAvLyBlbGVtLnNjcm9sbExlZnQgLT0gMC4yMCAqIGVsZW0uY2xpZW50V2lkdGhcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSkge1xuICAgICAgLy8gY29uc3QgY2xpZW50V2lkdGggPSAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICogMC4yNClcbiAgICAgIGNvbnN0IGNsaWVudFdpZHRoID0gKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCk7XG4gICAgICB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICBsZWZ0OiB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCAtIGNsaWVudFdpZHRoLFxuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgY29uc3QgZWxlbSA9IHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudFxuICAgICAgaWYgKGVsZW0uc2Nyb2xsTGVmdCAhPT0gMCAmJiAoZWxlbS5zY3JvbGxXaWR0aCAhPT0gZWxlbS5jbGllbnRXaWR0aCArIGVsZW0uc2Nyb2xsTGVmdCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVOYXYgLT0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKHRoaXMuc2xpZGVyQ29uZmlnLmFycm93c0Fsd2F5c09uKSB7XG4gICAgICAgICAgaWYodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPT09IDApe1xuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgbGVmdDogZWxlbS5zY3JvbGxXaWR0aCxcbiAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU5hdiA9IHRoaXMuYm90dG9tRG90c0FycmF5Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2hvd05leHQoKSB7XG4gICAgLy8gY29uc3QgZWxlbSA9IHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudFxuICAgIC8vIGVsZW0uc2Nyb2xsTGVmdCArPSAwLjIwICogZWxlbS5jbGllbnRXaWR0aFxuICAgIGlmICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtKSB7XG4gICAgICAvLyBjb25zdCBjbGllbnRXaWR0aCA9ICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKiAwLjI0KVxuICAgICAgY29uc3QgY2xpZW50V2lkdGggPSAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKTtcbiAgICAgIHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIGxlZnQ6IHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICsgY2xpZW50V2lkdGgsXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZWxlbSA9IHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudFxuICAgICAgaWYgKGVsZW0uc2Nyb2xsTGVmdCAhPT0gMCAmJiAoZWxlbS5zY3JvbGxXaWR0aCAhPT0gZWxlbS5jbGllbnRXaWR0aCArIGVsZW0uc2Nyb2xsTGVmdCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVOYXYgKz0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKHRoaXMuc2xpZGVyQ29uZmlnLmFycm93c0Fsd2F5c09uKSB7XG4gICAgICAgICAgaWYodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgIT09IDAgJiYgZWxlbS5jbGllbnRXaWR0aCArIGVsZW0uc2Nyb2xsTGVmdCA+PSBlbGVtLnNjcm9sbFdpZHRoICl7XG4gICAgICAgICAgICB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTmF2ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU5hdmlnYXRpb25CdG5TdGF0dXMoZWxlbTogSFRNTEVsZW1lbnQpIHtcbiAgICBkZWJ1Z2dlclxuICAgIHRoaXMuZW5hYmxlUHJldiA9IHRydWU7XG4gICAgdGhpcy5lbmFibGVOZXh0ID0gdHJ1ZTtcbiAgICBpZiAoZWxlbS5zY3JvbGxMZWZ0ID09PSAwKSB7XG4gICAgICBpZighdGhpcy5zbGlkZXJDb25maWcuYXJyb3dzQWx3YXlzT24pIHtcbiAgICAgICAgdGhpcy5lbmFibGVQcmV2ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmFjdGl2ZU5hdiA9IDA7XG4gICAgfVxuICAgIGlmIChlbGVtLnNjcm9sbFdpZHRoID09PSBNYXRoLnJvdW5kKGVsZW0uY2xpZW50V2lkdGggKyBlbGVtLnNjcm9sbExlZnQpKSB7XG4gICAgICBpZiAodGhpcy5sb2FkU3RhdHVzID09PSAnaGFzTW9yZScpIHtcbiAgICAgICAgdGhpcy5sb2FkTmV4dC5lbWl0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZighdGhpcy5zbGlkZXJDb25maWcuYXJyb3dzQWx3YXlzT24pIHtcbiAgICAgICAgICB0aGlzLmVuYWJsZU5leHQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5ib3R0b21Eb3RzQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVOYXYgPSB0aGlzLmJvdHRvbURvdHNBcnJheS5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbGVtLnNjcm9sbExlZnQgIT09IDAgJiYgKGVsZW0uc2Nyb2xsV2lkdGggIT09IGVsZW0uY2xpZW50V2lkdGggKyBlbGVtLnNjcm9sbExlZnQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZU5hdiA9IE1hdGguY2VpbChlbGVtLnNjcm9sbExlZnQgLyBlbGVtLmNsaWVudFdpZHRoKTtcbiAgICB9XG4gIH1cblxuICBzbGlkZVRvKGVsZTogYW55KSB7XG4gICAgY29uc3QgZGlmZiA9IGVsZSAtIHRoaXMuYWN0aXZlTmF2O1xuICAgIC8vIGlmIChlbGUgPiB0aGlzLmFjdGl2ZU5hdiAmJiBlbGUgIT09IHRoaXMuYWN0aXZlTmF2KSB7XG4gICAgLy8gICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSkge1xuICAgIC8vICAgICBjb25zdCBjbGllbnRXaWR0aCA9ICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpXG4gICAgLy8gICAgIHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgLy8gICAgICAgbGVmdDogdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKyAoY2xpZW50V2lkdGgqZGlmZiksXG4gICAgLy8gICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgIC8vICAgICB9KVxuICAgIC8vICAgfVxuICAgIC8vICAgdGhpcy5hY3RpdmVOYXYgPSBlbGVcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgaWYgKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0gJiYgZWxlID49IDAgJiYgZWxlICE9PSB0aGlzLmFjdGl2ZU5hdikge1xuICAgIC8vICAgICBjb25zdCBjbGllbnRXaWR0aCA9ICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpXG4gICAgLy8gICAgIHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgLy8gICAgICAgbGVmdDogdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgLSAoY2xpZW50V2lkdGgqZGlmZiksXG4gICAgLy8gICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgIC8vICAgICB9KVxuICAgIC8vICAgfVxuICAgIC8vICAgdGhpcy5hY3RpdmVOYXYgPSBlbGVcbiAgICAvLyB9XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0pIHtcbiAgICAgIGNvbnN0IGNsaWVudFdpZHRoID0gKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCk7XG4gICAgICB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICBsZWZ0OiB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArIChjbGllbnRXaWR0aCAqIGRpZmYpLFxuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVOYXYgPSBlbGU7XG4gIH1cblxuICBnZXRCb3R0b21Eb3RzQXJyYXkoKSB7XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0pIHtcbiAgICAgIHRoaXMuYm90dG9tRG90c0FycmF5ID0gW107XG4gICAgICBsZXQgY2FyZFdpZHRoO1xuICAgICAgbGV0IGFyckxlbmd0aDtcbiAgICAgIGlmICh0aGlzLmNhcmRTdWJUeXBlICE9PSAnY2FyZC13aWRlLXYyJykge1xuICAgICAgICBjYXJkV2lkdGggPSB0aGlzLmNhcmRTdWJUeXBlID09PSAnc3RhbmRhcmQnID8gMjQ1IDpcbiAgICAgICAgKChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHRoaXMuY2FyZFN1YlR5cGUpICYmXG4gICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHRoaXMuY2FyZFN1YlR5cGUpWzBdICE9PSB1bmRlZmluZWQpXG4gICAgICAgID8gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0aGlzLmNhcmRTdWJUeXBlKVswXS5jbGllbnRXaWR0aCA6IDI0NSk7XG4gICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfWApKSB7XG4gICAgICAgICAgY29uc3Qgc2Nyb2xsZXJXaWR0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMuaWR9YCkuY2xpZW50V2lkdGg7XG4gICAgICAgICAgY29uc3QgdG90YWxDYXJkc0xlbmd0aCA9IGNhcmRXaWR0aCAqIHRoaXMud2lkZ2V0c0xlbmd0aDtcbiAgICAgICAgICBpZiAodG90YWxDYXJkc0xlbmd0aCA+IHNjcm9sbGVyV2lkdGgpIHtcbiAgICAgICAgICAgIGFyckxlbmd0aCA9IChzY3JvbGxlcldpZHRoIC8gY2FyZFdpZHRoKTtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdE1heFdpZGdldHMgPSB0aGlzLmRlZmF1bHRNYXhXaWRnZXRzID8gIHRoaXMud2lkZ2V0c0xlbmd0aCA8IHRoaXMuZGVmYXVsdE1heFdpZGdldHMgP1xuICAgICAgICAgICAgICB0aGlzLndpZGdldHNMZW5ndGggOiB0aGlzLmRlZmF1bHRNYXhXaWRnZXRzIDogdGhpcy5kZWZhdWx0TWF4V2lkZ2V0cztcbiAgICAgICAgICAgIGFyckxlbmd0aCA9IHRoaXMuZGVmYXVsdE1heFdpZGdldHMgLyBhcnJMZW5ndGg7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyckxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgIHRoaXMuYm90dG9tRG90c0FycmF5LnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygndGhpcy5jYXJkU3ViVHlwZScsIHRoaXMuY2FyZFN1YlR5cGUsIGFyckxlbmd0aCwgdGhpcy53aWRnZXRzTGVuZ3RoICxcbiAgICAgICAgICAgIC8vIHRoaXMuZGVmYXVsdE1heFdpZGdldHMsIHNjcm9sbGVyV2lkdGgsIHRoaXMuYm90dG9tRG90c0FycmF5KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgYXJyTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0aGlzLmNhcmRTdWJUeXBlKS5sZW5ndGg7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJMZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgdGhpcy5ib3R0b21Eb3RzQXJyYXkucHVzaChpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sICAgICAgICAgMTAwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi9jb25zdW1wdGlvbi8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL2hvcml6b250YWwtc2Nyb2xsZXItdjIvaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBQ04sTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVVwRCxNQUFNLE9BQU8sNkJBQTZCOzs7O0lBMkJ4QyxZQUFvQixRQUFzQjtRQUF0QixhQUFRLEdBQVIsUUFBUSxDQUFjO1FBekJqQyxlQUFVLEdBQWlCLFVBQVUsQ0FBQztRQUN0QyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVksR0FBUTtZQUMzQixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2Qsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDO1FBQ1EsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLeEMseUJBQW9CLEdBQXNCLElBQUksQ0FBQztRQUUvQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGdCQUFXLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBQ2xCLG1CQUFj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NEI7O0lBQzVCLDBEQUFnQzs7SUFDaEMsb0RBQTBCOztJQUMxQiw2REFDK0M7O0lBRS9DLG1EQUFtQjs7SUFDbkIsbURBQW1COztJQUNuQixrREFBYzs7SUFDZCxvREFBeUI7O0lBQ3pCLHdEQUEwQjs7Ozs7SUFDMUIsdURBQW1EOztJQUNuRCxpREFBZ0I7Ozs7O0lBQ2hCLDZEQUF3RDs7SUFDeEQsb0RBQXVDOzs7OztJQUUzQixpREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBmcm9tRXZlbnQsXG4gIFN1YnNjcmlwdGlvbixcbiAgdGltZXIsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBURmV0Y2hTdGF0dXMgfSBmcm9tICcuLi8uLi9fY29uc3RhbnRzL21pc2MuY29uc3RhbnRzJztcbmltcG9ydCB7IFZhbHVlU2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IE5zQ29tbW9uU3RyaXAgfSBmcm9tICcuLi9jb21tb24tc3RyaXAvY29tbW9uLXN0cmlwLm1vZGVsJztcbmltcG9ydCB7IE5zQ29udGVudFN0cmlwTXVsdGlwbGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzL2NvbnRlbnQtc3RyaXAtbXVsdGlwbGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtaG9yaXpvbnRhbC1zY3JvbGxlci12MicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ob3Jpem9udGFsLXNjcm9sbGVyLXYyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaG9yaXpvbnRhbC1zY3JvbGxlci12Mi5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEhvcml6b250YWxTY3JvbGxlclYyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgbG9hZFN0YXR1czogVEZldGNoU3RhdHVzID0gJ2ZldGNoaW5nJztcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBvbkhvdmVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNsaWRlckNvbmZpZzogYW55ID0ge1xuICAgIHNob3dOYXZzOiB0cnVlLFxuICAgIHNob3dEb3RzOiB0cnVlLFxuICAgIGNlcmlmaWNhdGVDYXJkTWFyZ2luOiBmYWxzZSxcbiAgfTtcbiAgQE91dHB1dCgpIGxvYWROZXh0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSB3aWRnZXRzTGVuZ3RoOiBhbnk7XG4gIEBJbnB1dCgpIGRlZmF1bHRNYXhXaWRnZXRzOiBhbnk7XG4gIEBJbnB1dCgpIHN0cmlwQ29uZmlnOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2hvcml6b250YWxTY3JvbGxFbGVtJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgaG9yaXpvbnRhbFNjcm9sbEVsZW06IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcblxuICBlbmFibGVQcmV2ID0gZmFsc2U7XG4gIGVuYWJsZU5leHQgPSBmYWxzZTtcbiAgYWN0aXZlTmF2ID0gMDtcbiAgY2FyZFN1YlR5cGUgPSAnc3RhbmRhcmQnO1xuICBib3R0b21Eb3RzQXJyYXk6IGFueSA9IFtdO1xuICBwcml2YXRlIHNjcm9sbE9ic2VydmVyOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgaXNNb2JpbGUgPSBmYWxzZVxuICBwcml2YXRlIGRlZmF1bHRNZW51U3Vic2NyaWJlOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbFxuICBpc0x0TWVkaXVtJCA9IHRoaXMudmFsdWVTdmMuaXNMdE1lZGl1bSRcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlU3ZjOiBWYWx1ZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2FyZFN1YlR5cGUgPSB0aGlzLnN0cmlwQ29uZmlnICYmIHRoaXMuc3RyaXBDb25maWcuY2FyZFN1YlR5cGUgPyB0aGlzLnN0cmlwQ29uZmlnLmNhcmRTdWJUeXBlIDogJ3N0YW5kYXJkJztcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSkge1xuICAgICAgY29uc3QgaG9yaXpvbnRhbFNjcm9sbEVsZW0gPSB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtO1xuICAgICAgdGhpcy5zY3JvbGxPYnNlcnZlciA9IGZyb21FdmVudChcbiAgICAgICAgaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3Njcm9sbCcsXG4gICAgICApXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgdGhyb3R0bGVUaW1lKDEwMCkpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25CdG5TdGF0dXMoaG9yaXpvbnRhbFNjcm9sbEVsZW1cbiAgICAgICAgICAubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICB9KTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldEJvdHRvbURvdHNBcnJheSgpO1xuICAgICAgfSwgNzAwKTtcbiAgICB9XG4gICAgdGhpcy5kZWZhdWx0TWVudVN1YnNjcmliZSA9IHRoaXMuaXNMdE1lZGl1bSQuc3Vic2NyaWJlKChpc0x0TWVkaXVtOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmlzTW9iaWxlID0gaXNMdE1lZGl1bVxuICAgIH0pXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aW1lcigxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSkge1xuICAgICAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25CdG5TdGF0dXModGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbVxuICAgICAgICAgIC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZ2V0Qm90dG9tRG90c0FycmF5KCk7XG4gICAgfSwgNzAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnNjcm9sbE9ic2VydmVyKSB7XG4gICAgICB0aGlzLnNjcm9sbE9ic2VydmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlZmF1bHRNZW51U3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmRlZmF1bHRNZW51U3Vic2NyaWJlLnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH1cblxuICBzaG93UHJldigpIHtcbiAgICAvLyBjb25zdCBlbGVtID0gdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50XG4gICAgLy8gZWxlbS5zY3JvbGxMZWZ0IC09IDAuMjAgKiBlbGVtLmNsaWVudFdpZHRoXG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0pIHtcbiAgICAgIC8vIGNvbnN0IGNsaWVudFdpZHRoID0gKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAqIDAuMjQpXG4gICAgICBjb25zdCBjbGllbnRXaWR0aCA9ICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpO1xuICAgICAgdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgbGVmdDogdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgLSBjbGllbnRXaWR0aCxcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnRcbiAgICAgIGlmIChlbGVtLnNjcm9sbExlZnQgIT09IDAgJiYgKGVsZW0uc2Nyb2xsV2lkdGggIT09IGVsZW0uY2xpZW50V2lkdGggKyBlbGVtLnNjcm9sbExlZnQpKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlTmF2IC09IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZih0aGlzLnNsaWRlckNvbmZpZy5hcnJvd3NBbHdheXNPbikge1xuICAgICAgICAgIGlmKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID09PSAwKXtcbiAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgICAgICAgIGxlZnQ6IGVsZW0uc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVOYXYgPSB0aGlzLmJvdHRvbURvdHNBcnJheS5sZW5ndGggLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNob3dOZXh0KCkge1xuICAgIC8vIGNvbnN0IGVsZW0gPSB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnRcbiAgICAvLyBlbGVtLnNjcm9sbExlZnQgKz0gMC4yMCAqIGVsZW0uY2xpZW50V2lkdGhcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSkge1xuICAgICAgLy8gY29uc3QgY2xpZW50V2lkdGggPSAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICogMC4yNClcbiAgICAgIGNvbnN0IGNsaWVudFdpZHRoID0gKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCk7XG4gICAgICB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICBsZWZ0OiB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArIGNsaWVudFdpZHRoLFxuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnRcbiAgICAgIGlmIChlbGVtLnNjcm9sbExlZnQgIT09IDAgJiYgKGVsZW0uc2Nyb2xsV2lkdGggIT09IGVsZW0uY2xpZW50V2lkdGggKyBlbGVtLnNjcm9sbExlZnQpKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlTmF2ICs9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZih0aGlzLnNsaWRlckNvbmZpZy5hcnJvd3NBbHdheXNPbikge1xuICAgICAgICAgIGlmKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICE9PSAwICYmIGVsZW0uY2xpZW50V2lkdGggKyBlbGVtLnNjcm9sbExlZnQgPj0gZWxlbS5zY3JvbGxXaWR0aCApe1xuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU5hdiA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVOYXZpZ2F0aW9uQnRuU3RhdHVzKGVsZW06IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5lbmFibGVQcmV2ID0gdHJ1ZTtcbiAgICB0aGlzLmVuYWJsZU5leHQgPSB0cnVlO1xuICAgIGlmIChlbGVtLnNjcm9sbExlZnQgPT09IDApIHtcbiAgICAgIGlmKCF0aGlzLnNsaWRlckNvbmZpZy5hcnJvd3NBbHdheXNPbikge1xuICAgICAgICB0aGlzLmVuYWJsZVByZXYgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aXZlTmF2ID0gMDtcbiAgICB9XG4gICAgLy8gaWYgKGVsZW0uc2Nyb2xsV2lkdGggPT09IE1hdGgucm91bmQoZWxlbS5jbGllbnRXaWR0aCArIGVsZW0uc2Nyb2xsTGVmdCkpIHtcbiAgICAvLyAgIGlmICh0aGlzLmxvYWRTdGF0dXMgPT09ICdoYXNNb3JlJykge1xuICAgIC8vICAgICB0aGlzLmxvYWROZXh0LmVtaXQoKTtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIGlmKCF0aGlzLnNsaWRlckNvbmZpZy5hcnJvd3NBbHdheXNPbikge1xuICAgIC8vICAgICAgIHRoaXMuZW5hYmxlTmV4dCA9IGZhbHNlO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGlmICh0aGlzLmJvdHRvbURvdHNBcnJheS5sZW5ndGgpIHtcbiAgICAvLyAgICAgICB0aGlzLmFjdGl2ZU5hdiA9IHRoaXMuYm90dG9tRG90c0FycmF5Lmxlbmd0aCAtIDE7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy8gaWYgKGVsZW0uc2Nyb2xsTGVmdCAhPT0gMCAmJiAoZWxlbS5zY3JvbGxXaWR0aCAhPT0gZWxlbS5jbGllbnRXaWR0aCArIGVsZW0uc2Nyb2xsTGVmdCkpIHtcbiAgICAvLyAgIHRoaXMuYWN0aXZlTmF2ID0gTWF0aC5jZWlsKGVsZW0uc2Nyb2xsTGVmdCAvIGVsZW0uY2xpZW50V2lkdGgpO1xuICAgIC8vIH1cblxuXG4gICAgY29uc3Qgd2lkdGhEaWZmID0gTWF0aC5hYnMoZWxlbS5zY3JvbGxXaWR0aCAtIE1hdGgucm91bmQoZWxlbS5jbGllbnRXaWR0aCArIGVsZW0uc2Nyb2xsTGVmdCkpXG4gICAgaWYgKHdpZHRoRGlmZiA9PT0gMCB8fCB3aWR0aERpZmYgPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmxvYWRTdGF0dXMgPT09ICdoYXNNb3JlJykge1xuICAgICAgICB0aGlzLmxvYWROZXh0LmVtaXQoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbmFibGVOZXh0ID0gZmFsc2VcbiAgICAgICAgaWYgKHRoaXMuYm90dG9tRG90c0FycmF5Lmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlTmF2ID0gdGhpcy5ib3R0b21Eb3RzQXJyYXkubGVuZ3RoIC0gMVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbGVtLnNjcm9sbExlZnQgIT09IDAgJiYgKGVsZW0uc2Nyb2xsV2lkdGggIT09IGVsZW0uY2xpZW50V2lkdGggKyBlbGVtLnNjcm9sbExlZnQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZU5hdiA9IE1hdGguY2VpbChlbGVtLnNjcm9sbExlZnQgLyBlbGVtLmNsaWVudFdpZHRoKVxuICAgIH1cbiAgfVxuXG4gIHNsaWRlVG8oZWxlOiBhbnkpIHtcbiAgICBjb25zdCBkaWZmID0gZWxlIC0gdGhpcy5hY3RpdmVOYXY7XG4gICAgLy8gaWYgKGVsZSA+IHRoaXMuYWN0aXZlTmF2ICYmIGVsZSAhPT0gdGhpcy5hY3RpdmVOYXYpIHtcbiAgICAvLyAgIGlmICh0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtKSB7XG4gICAgLy8gICAgIGNvbnN0IGNsaWVudFdpZHRoID0gKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aClcbiAgICAvLyAgICAgdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKHtcbiAgICAvLyAgICAgICBsZWZ0OiB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArIChjbGllbnRXaWR0aCpkaWZmKSxcbiAgICAvLyAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgLy8gICAgIH0pXG4gICAgLy8gICB9XG4gICAgLy8gICB0aGlzLmFjdGl2ZU5hdiA9IGVsZVxuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSAmJiBlbGUgPj0gMCAmJiBlbGUgIT09IHRoaXMuYWN0aXZlTmF2KSB7XG4gICAgLy8gICAgIGNvbnN0IGNsaWVudFdpZHRoID0gKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aClcbiAgICAvLyAgICAgdGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKHtcbiAgICAvLyAgICAgICBsZWZ0OiB0aGlzLmhvcml6b250YWxTY3JvbGxFbGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCAtIChjbGllbnRXaWR0aCpkaWZmKSxcbiAgICAvLyAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgLy8gICAgIH0pXG4gICAgLy8gICB9XG4gICAgLy8gICB0aGlzLmFjdGl2ZU5hdiA9IGVsZVxuICAgIC8vIH1cbiAgICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSkge1xuICAgICAgY29uc3QgY2xpZW50V2lkdGggPSAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKTtcbiAgICAgIHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIGxlZnQ6IHRoaXMuaG9yaXpvbnRhbFNjcm9sbEVsZW0ubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICsgKGNsaWVudFdpZHRoICogZGlmZiksXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZU5hdiA9IGVsZTtcbiAgfVxuXG4gIGdldEJvdHRvbURvdHNBcnJheSgpIHtcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsU2Nyb2xsRWxlbSkge1xuICAgICAgdGhpcy5ib3R0b21Eb3RzQXJyYXkgPSBbXTtcbiAgICAgIGxldCBjYXJkV2lkdGg7XG4gICAgICBsZXQgYXJyTGVuZ3RoO1xuICAgICAgaWYgKHRoaXMuY2FyZFN1YlR5cGUgIT09ICdjYXJkLXdpZGUtdjInKSB7XG4gICAgICAgIGNhcmRXaWR0aCA9IHRoaXMuY2FyZFN1YlR5cGUgPT09ICdzdGFuZGFyZCcgPyAyNDUgOlxuICAgICAgICAoKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUodGhpcy5jYXJkU3ViVHlwZSkgJiZcbiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUodGhpcy5jYXJkU3ViVHlwZSlbMF0gIT09IHVuZGVmaW5lZClcbiAgICAgICAgPyBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHRoaXMuY2FyZFN1YlR5cGUpWzBdLmNsaWVudFdpZHRoIDogMjQ1KTtcbiAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMuaWR9YCkpIHtcbiAgICAgICAgICBjb25zdCBzY3JvbGxlcldpZHRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5pZH1gKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICBjb25zdCB0b3RhbENhcmRzTGVuZ3RoID0gY2FyZFdpZHRoICogdGhpcy53aWRnZXRzTGVuZ3RoO1xuICAgICAgICAgIGlmICh0b3RhbENhcmRzTGVuZ3RoID4gc2Nyb2xsZXJXaWR0aCkge1xuICAgICAgICAgICAgYXJyTGVuZ3RoID0gKHNjcm9sbGVyV2lkdGggLyBjYXJkV2lkdGgpO1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0TWF4V2lkZ2V0cyA9IHRoaXMuZGVmYXVsdE1heFdpZGdldHMgPyAgdGhpcy53aWRnZXRzTGVuZ3RoIDwgdGhpcy5kZWZhdWx0TWF4V2lkZ2V0cyA/XG4gICAgICAgICAgICAgIHRoaXMud2lkZ2V0c0xlbmd0aCA6IHRoaXMuZGVmYXVsdE1heFdpZGdldHMgOiB0aGlzLmRlZmF1bHRNYXhXaWRnZXRzO1xuICAgICAgICAgICAgYXJyTGVuZ3RoID0gdGhpcy5kZWZhdWx0TWF4V2lkZ2V0cyAvIGFyckxlbmd0aDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyTGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgdGhpcy5ib3R0b21Eb3RzQXJyYXkucHVzaChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLmNhcmRTdWJUeXBlJywgdGhpcy5jYXJkU3ViVHlwZSwgYXJyTGVuZ3RoLCB0aGlzLndpZGdldHNMZW5ndGggLFxuICAgICAgICAgICAgLy8gdGhpcy5kZWZhdWx0TWF4V2lkZ2V0cywgc2Nyb2xsZXJXaWR0aCwgdGhpcy5ib3R0b21Eb3RzQXJyYXkpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBhcnJMZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHRoaXMuY2FyZFN1YlR5cGUpLmxlbmd0aDtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyckxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICB0aGlzLmJvdHRvbURvdHNBcnJheS5wdXNoKGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgICAgICAgICAxMDAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -9,7 +9,8 @@ import * as i1 from "@angular/common/http";
9
9
  /** @type {?} */
10
10
  const API_END_POINTS = {
11
11
  PROVIDER_INSIGHTS: `/apis/proxies/v8/microsite/read/insights`,
12
- TRAINING_DETAILS: `apis/proxies/v8/sunbirdigot/search`
12
+ TRAINING_DETAILS: `apis/proxies/v8/sunbirdigot/search`,
13
+ ANNOUNCEMENTS_DETAILS: `apis/proxies/v8/announcements/v1/search`
13
14
  };
14
15
  export class InsiteDataService {
15
16
  /**
@@ -25,6 +26,13 @@ export class InsiteDataService {
25
26
  fetchSearchData(request) {
26
27
  return this.http.post(API_END_POINTS.PROVIDER_INSIGHTS, request);
27
28
  }
29
+ /**
30
+ * @param {?} request
31
+ * @return {?}
32
+ */
33
+ fetchAnnouncementsData(request) {
34
+ return this.http.post(API_END_POINTS.ANNOUNCEMENTS_DETAILS, request);
35
+ }
28
36
  /**
29
37
  * @param {?} request
30
38
  * @return {?}
@@ -50,4 +58,4 @@ if (false) {
50
58
  */
51
59
  InsiteDataService.prototype.http;
52
60
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zaXRlLWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy9pbnNpdGUtZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztNQUdyQyxjQUFjLEdBQUc7SUFDckIsaUJBQWlCLEVBQUUsMENBQTBDO0lBQzdELGdCQUFnQixFQUFFLG9DQUFvQztDQUN2RDtBQUtELE1BQU0sT0FBTyxpQkFBaUI7Ozs7SUFFNUIsWUFDVSxJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3ZCLENBQUM7Ozs7O0lBQ0osZUFBZSxDQUFDLE9BQVk7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxjQUFjLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDdkUsQ0FBQzs7Ozs7SUFFRCxvQkFBb0IsQ0FBQyxPQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sY0FBYyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3RFLENBQUM7OztZQWRGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVhRLFVBQVU7Ozs7Ozs7O0lBZWYsaUNBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuY29uc3QgQVBJX0VORF9QT0lOVFMgPSB7XG4gIFBST1ZJREVSX0lOU0lHSFRTOiBgL2FwaXMvcHJveGllcy92OC9taWNyb3NpdGUvcmVhZC9pbnNpZ2h0c2AsXG4gIFRSQUlOSU5HX0RFVEFJTFM6IGBhcGlzL3Byb3hpZXMvdjgvc3VuYmlyZGlnb3Qvc2VhcmNoYFxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJbnNpdGVEYXRhU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkge31cbiAgZmV0Y2hTZWFyY2hEYXRhKHJlcXVlc3Q6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oQVBJX0VORF9QT0lOVFMuUFJPVklERVJfSU5TSUdIVFMsIHJlcXVlc3QpXG4gIH1cblxuICBmZXRjaFRyYWluaW5nRGV0YWlscyhyZXF1ZXN0OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9FTkRfUE9JTlRTLlRSQUlOSU5HX0RFVEFJTFMsIHJlcXVlc3QpXG4gIH1cbn1cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zaXRlLWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy9pbnNpdGUtZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztNQUdyQyxjQUFjLEdBQUc7SUFDckIsaUJBQWlCLEVBQUUsMENBQTBDO0lBQzdELGdCQUFnQixFQUFFLG9DQUFvQztJQUN0RCxxQkFBcUIsRUFBRSx5Q0FBeUM7Q0FDakU7QUFLRCxNQUFNLE9BQU8saUJBQWlCOzs7O0lBRTVCLFlBQ1UsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDOzs7OztJQUNKLGVBQWUsQ0FBQyxPQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sY0FBYyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZFLENBQUM7Ozs7O0lBRUQsc0JBQXNCLENBQUMsT0FBWTtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMzRSxDQUFDOzs7OztJQUdELG9CQUFvQixDQUFDLE9BQVk7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDdEUsQ0FBQzs7O1lBbkJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVpRLFVBQVU7Ozs7Ozs7O0lBZ0JmLGlDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IEFQSV9FTkRfUE9JTlRTID0ge1xuICBQUk9WSURFUl9JTlNJR0hUUzogYC9hcGlzL3Byb3hpZXMvdjgvbWljcm9zaXRlL3JlYWQvaW5zaWdodHNgLFxuICBUUkFJTklOR19ERVRBSUxTOiBgYXBpcy9wcm94aWVzL3Y4L3N1bmJpcmRpZ290L3NlYXJjaGAsXG4gIEFOTk9VTkNFTUVOVFNfREVUQUlMUzogYGFwaXMvcHJveGllcy92OC9hbm5vdW5jZW1lbnRzL3YxL3NlYXJjaGBcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5zaXRlRGF0YVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHt9XG4gIGZldGNoU2VhcmNoRGF0YShyZXF1ZXN0OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9FTkRfUE9JTlRTLlBST1ZJREVSX0lOU0lHSFRTLCByZXF1ZXN0KVxuICB9XG5cbiAgZmV0Y2hBbm5vdW5jZW1lbnRzRGF0YShyZXF1ZXN0OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KEFQSV9FTkRfUE9JTlRTLkFOTk9VTkNFTUVOVFNfREVUQUlMUywgcmVxdWVzdClcbiAgfVxuXG5cbiAgZmV0Y2hUcmFpbmluZ0RldGFpbHMocmVxdWVzdDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBUElfRU5EX1BPSU5UUy5UUkFJTklOR19ERVRBSUxTLCByZXF1ZXN0KVxuICB9XG59XG4iXX0=
@@ -796,6 +796,14 @@ export class WidgetContentService {
796
796
  req.query = req.query || '';
797
797
  return this.http.post(apiUrl, req);
798
798
  }
799
+ /**
800
+ * @param {?} apiUrl
801
+ * @return {?}
802
+ */
803
+ getApiMethod(apiUrl) {
804
+ // req.query = req.query || '';
805
+ return this.http.get(apiUrl);
806
+ }
799
807
  }
800
808
  WidgetContentService.decorators = [
801
809
  { type: Injectable, args: [{
@@ -842,4 +850,4 @@ if (false) {
842
850
  WidgetContentService.prototype.configSvc;
843
851
  }
844
852
  export { ɵ0, ɵ1, ɵ2, ɵ3 };
845
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUc1RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQTtBQUMzQixPQUFPLEVBQUcsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzRCxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7Ozs7TUFDNUIsTUFBTSxHQUFHLE9BQU87Ozs7TUFJaEIsaUJBQWlCLEdBQUcsb0JBQW9COzs7Ozs7QUF5QnRCLENBQUMsSUFBWSxFQUFFLEVBQVUsRUFBRSxFQUFFLENBQ2pELEdBQUcsaUJBQWlCLHVCQUF1QixJQUFJLElBQUksRUFBRSxFQUFFOzs7O0FBRWxDLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxpQkFBaUIsa0JBQWtCLFNBQVMsRUFBRTs7OztBQVFoRixDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxpQkFBaUIsdUNBQXVDLE1BQU0sRUFBRTs7OztBQUVyRixDQUFDLFNBQWMsRUFBRSxF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QztJQUNoQixDQUFDOzs7Ozs7SUFDRCxhQUFhLENBQUMsTUFBVyxFQUFFLEdBQVE7UUFDakMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFxQixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7O1lBbmdCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFoRVEsVUFBVTtZQUVWLHFCQUFxQjs7Ozs7SUFzRTVCLDZDQUFrRDs7SUFDbEQsOENBQW9EOzs7OztJQUVwRCw2Q0FBK0M7O0lBQy9DLDhDQUF5RDs7SUFDekQsK0NBQXFDOztJQUNyQywwREFBZ0Q7O0lBQ2hELDBEQUFpRDs7SUFDakQsNERBQTREOztJQUM1RCw2REFBaUY7Ozs7O0lBZC9FLG9DQUF3Qjs7Ozs7SUFDeEIseUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBFTVBUWSwgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCByZXRyeSwgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5zQ29udGVudFN0cmlwTXVsdGlwbGUgfSBmcm9tICcuLi9fbW9kZWxzL2NvbnRlbnQtc3RyaXAtbXVsdGlwbGUubW9kZWwnO1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi4vX21vZGVscy93aWRnZXQtY29udGVudC5tb2RlbCc7XG5pbXBvcnQgeyBOU1NlYXJjaCB9IGZyb20gJy4uL19tb2RlbHMvd2lkZ2V0LXNlYXJjaC5tb2RlbCc7XG4vLyB0c2xpbnQ6ZGlzYWJsZVxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyAgdmlld2VyUm91dGVHZW5lcmF0b3IgfSBmcm9tICcuL3ZpZXdlci1yb3V0ZS11dGlsJ1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuY29uc3QgbW9tZW50ID0gbW9tZW50Xztcbi8vIHRzbGludDplbmFibGVcblxuLy8gVE9ETzogbW92ZSB0aGlzIGluIHNvbWUgY29tbW9uIHBsYWNlXG5jb25zdCBQUk9URUNURURfU0xBR19WOCA9ICcvYXBpcy9wcm90ZWN0ZWQvdjgnO1xuXG5jb25zdCBBUElfRU5EX1BPSU5UUyA9IHtcbiAgQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnRgLFxuICBBVVRIT1JJTkdfQ09OVEVOVDogYC9hcGkvY291cnNlL3YxL2hpZXJhcmNoeWAsXG4gIENPTlRFTlRfTElLRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2xpa2VDb3VudGAsXG4gIFNFVF9TM19DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldENvb2tpZWAsXG4gIFNFVF9TM19JTUFHRV9DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldEltYWdlQ29va2llYCxcbiAgRkVUQ0hfTUFOSUZFU1Q6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZU1hbmlmZXN0YCxcbiAgRkVUQ0hfV0VCX01PRFVMRV9GSUxFUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvZ2V0V2ViTW9kdWxlRmlsZXNgLFxuICBNVUxUSVBMRV9DT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9tdWx0aXBsZWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y1OiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZWFyY2hWNWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBUUkVORElOR19DT05URU5UX1NFQVJDSDogYGFwaXMvcHJveGllcy92OC90cmVuZGluZy9jb250ZW50L3NlYXJjaGAsXG4gIENPTlRFTlRfU0VBUkNIX1JFTEFURURfQ0JQX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBDT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT046IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uYCxcbiAgQ09OVEVOVF9ISVNUT1JZOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9oaXN0b3J5YCxcbiAgQ09OVEVOVF9ISVNUT1JZVjI6IGAvYXBpcy9wcm94aWVzL3Y4L3JlYWQvY29udGVudC1wcm9ncmVzYCxcbiAgQ09VUlNFX0JBVENIX0xJU1Q6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2JhdGNoL2xpc3RgLFxuICBDT1VSU0VfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2NvdXJzZS92MS9iYXRjaC9yZWFkYCxcbiAgQVVUT19BU1NJR05fQkFUQ0g6IGAvYXBpcy9wcm90ZWN0ZWQvdjgvY29ob3J0cy91c2VyL2F1dG9lbnJvbGxtZW50L2AsXG4gIEFVVE9fQVNTSUdOX0NVUkFURURfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2N1cmF0ZWRwcm9ncmFtL3YxL2Vucm9sYCxcbiAgQVVUT19BU1NJR05fT1BFTl9QUk9HUkFNOiBgL2FwaXMvcHJveGllcy92OC9vcGVucHJvZ3JhbS92MS9lbnJvbGAsXG4gIFVTRVJfQ09OVElOVUVfTEVBUk5JTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnkvY29udGludWVgLFxuICBDT05URU5UX1JBVElORzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvcmF0aW5nYCxcbiAgQ09MTEVDVElPTl9ISUVSQVJDSFk6ICh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpID0+XG4gICAgYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvY29sbGVjdGlvbi8ke3R5cGV9LyR7aWR9YCxcbiAgUkVHSVNUUkFUSU9OX1NUQVRVUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2FkbWluL3VzZXJSZWdpc3RyYXRpb24vY2hlY2tVc2VyUmVnaXN0cmF0aW9uQ29udGVudGAsXG4gIE1BUktfQVNfQ09NUExFVEVfTUVUQTogKGNvbnRlbnRJZDogc3RyaW5nKSA9PiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9wcm9ncmVzcy8ke2NvbnRlbnRJZH1gLFxuICBFTlJPTExfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2Vucm9sYCxcbiAgRU5ST0xMX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbGAsXG4gIFdJVEhEUkFXX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91bmVucm9sYCxcbiAgQkxFTkRFRF9VU0VSX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91c2VyL3NlYXJjaGAsXG4gIEJMRU5ERURfVVNFUl9DT1VOVDogYGFwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbC9zdGF0dXMvY291bnRgLFxuICBDRVJUX0FERF9URU1QTEFURTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvdGVtcGxhdGUvYWRkYCxcbiAgQ0VSVF9JU1NVRTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvaXNzdWVgLFxuICBDRVJUX0RPV05MT0FEOiAoY2VydElkOiBhbnkpID0+IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb2hvcnRzL2NvdXJzZS9iYXRjaC9jZXJ0L2Rvd25sb2FkLyR7Y2VydElkfWAsXG4gIFJFQURfS0FSTUFQT0lOVFM6IGAvYXBpcy9wcm94aWVzL3Y4L2thcm1hcG9pbnRzL3JlYWRgLFxuICBDT05URU5UX1JFQUQ6IChjb250ZW50SWQ6IGFueSkgPT4gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gLFxuICBSRUFEX0NPVVJTRV9LQVJNQVBPSU5UUzogJy9hcGlzL3Byb3hpZXMvdjgva2FybWFwb2ludHMvdXNlci9jb3Vyc2UvcmVhZCcsXG4gIENMQUlNX0tBUk1BUE9JTlRTOiAnL2FwaXMvcHJveGllcy92OC9jbGFpbWthcm1hcG9pbnRzJyxcbiAgVVNFUl9LQVJNQV9QT0lOVFM6ICcvYXBpcy9wcm94aWVzL3Y4L3VzZXIvdG90YWxrYXJtYXBvaW50cycsXG4gIEFHR1JFR0FUSU9OX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvY29udGVudC9hZ2dyZWdhdGlvbi9zZWFyY2gnLFxuICBGRUFUVVJFX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvZmVhdHVyZWQvY29udGVudC9zZWFyY2gnLFxufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldENvbnRlbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgdG9jQ29uZmlnRGF0YTogYW55ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgdG9jQ29uZmlnRGF0YSQgID0gdGhpcy50b2NDb25maWdEYXRhLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgdGVsZW1ldHJ5RGF0YTogYW55ID0gbmV3IFN1YmplY3Q8YW55PigpXG4gIHB1YmxpYyB0ZWxlbWV0cnlEYXRhJCA9IHRoaXMudGVsZW1ldHJ5RGF0YS5hc09ic2VydmFibGUoKVxuICBjdXJyZW50TWV0YURhdGEhOiBOc0NvbnRlbnQuSUNvbnRlbnQ7XG4gIGN1cnJlbnRDb250ZW50UmVhZE1ldGFEYXRhITogTnNDb250ZW50LklDb250ZW50O1xuICBjdXJyZW50QmF0Y2hFbnJvbGxtZW50TGlzdCE6IE5zQ29udGVudC5JQ291cnNlW107XG4gIHByb2dyYW1DaGlsZENvdXJzZVJlc3VtZURhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xuICBwcm9ncmFtQ2hpbGRDb3Vyc2VSZXN1bWVEYXRhJCA9IHRoaXMucHJvZ3JhbUNoaWxkQ291cnNlUmVzdW1lRGF0YS5hc09ic2VydmFibGUoKTtcblxuICBjaGFuZ2VUZWxlbWV0cnlEYXRhKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMudGVsZW1ldHJ5RGF0YS5uZXh0KG1lc3NhZ2UpO1xuICB9XG4gIGlzUmVzb3VyY2UocHJpbWFyeUNhdGVnb3J5OiBzdHJpbmcpIHtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5KSB7XG4gICAgICBjb25zdCBpc1Jlc291cmNlID0gKHByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVSZXNvdXJjZVByaW1hcnlDYXRlZ29yaWVzLkxFQVJOSU5HX1JFU09VUkNFKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuUFJBQ1RJQ0VfUkVTT1VSQ0UpIHx8XG4gICAgICAgIChwcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUmVzb3VyY2VQcmltYXJ5Q2F0ZWdvcmllcy5GSU5BTF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuQ09NUF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuT0ZGTElORV9TRVNTSU9OKTtcbiAgICAgIHJldHVybiBpc1Jlc291cmNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmZXRjaE1hcmtBc0NvbXBsZXRlTWV0YShpZGVudGlmaWVyOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLk1BUktfQVNfQ09NUExFVEVfTUVUQShpZGVudGlmaWVyKVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkudG9Qcm9taXNlKClcbiAgICBpZiAodXJsKSB7IH1cbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwZGF0ZVRvY0NvbmZpZyhkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnRvY0NvbmZpZ0RhdGEubmV4dChkYXRhKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudChcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcbiAgICBoaWVyYXJjaHlUeXBlOiAnYWxsJyB8ICdtaW5pbWFsJyB8ICdkZXRhaWwnID0gJ2RldGFpbCcsXG4gICAgX2FkZGl0aW9uYWxGaWVsZHM6IHN0cmluZ1tdID0gW10sXG4gICAgcHJpbWFyeUNhdGVnb3J5Pzogc3RyaW5nIHwgbnVsbCxcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcbiAgICAvLyBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UfS8ke2NvbnRlbnRJZH0/aGllcmFyY2h5VHlwZT0ke2hpZXJhcmNoeVR5cGV9YFxuICAgIGxldCB1cmwgPSAnJztcbiAgICBjb25zdCBmb3JQcmV2aWV3ID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9wdWJsaWMvJykgfHwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyZwcmV2aWV3PXRydWUnKTtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5ICYmIHRoaXMuaXNSZXNvdXJjZShwcmltYXJ5Q2F0ZWdvcnkpKSB7XG4gICAgICBpZiAoIWZvclByZXZpZXcpIHtcbiAgICAgICAgdXJsID0gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gYC9hcGkvY29udGVudC92MS9yZWFkLyR7Y29udGVudElkfWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZm9yUHJldmlldykge1xuICAgICAgICB1cmwgPSBgL2FwaXMvcHJveGllcy92OC9hY3Rpb24vY29udGVudC92My9oaWVyYXJjaHkvJHtjb250ZW50SWR9P2hpZXJhcmNoeVR5cGU9JHtoaWVyYXJjaHlUeXBlfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmb3JjcmVhdG9yID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2VkaXRNb2RlPXRydWUnKTtcbiAgICAgICAgaWYgKGZvcmNyZWF0b3IpIHtcbiAgICAgICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cmwgPSBgL2FwaS9jb3Vyc2UvdjEvaGllcmFyY2h5LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPSR7aGllcmFyY2h5VHlwZX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcbiAgICAvLyAgIC5wb3N0PE5zQ29udGVudC5JQ29udGVudD4odXJsLCB7IGFkZGl0aW9uYWxGaWVsZHMgfSlcbiAgICAvLyAgIC5waXBlKHJldHJ5KDEpKVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8TnNDb250ZW50LklDb250ZW50Pih1cmwpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgLy8gaWYgKGFwaURhdGEgJiYgYXBpRGF0YS5yZXN1bHQpIHtcbiAgICAvLyAgIHJldHVybiBhcGlEYXRhLnJlc3VsdC5jb250ZW50XG4gICAgLy8gfVxuICB9XG4gIGZldGNoQXV0aG9yaW5nQ29udGVudChjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XG4gICAgY29uc3QgZm9yY3JlYXRvciA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdlZGl0TW9kZT10cnVlJyk7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChmb3JjcmVhdG9yKSB7XG4gICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gYCR7QVBJX0VORF9QT0lOVFMuQVVUSE9SSU5HX0NPTlRFTlR9LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPWRldGFpbGA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudD4odXJsKS5waXBlKHNoYXJlUmVwbGF5KDEpLCByID0+IHIpO1xuICB9XG4gIGZldGNoTXVsdGlwbGVDb250ZW50KGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuTVVMVElQTEVfQ09OVEVOVH0vJHtpZHMuam9pbignLCcpfWAsXG4gICAgKTtcbiAgfVxuICBmZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIgPSAwLCBwYWdlU2l6ZTogbnVtYmVyID0gMSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29sbGVjdGlvbkhpZXJhcmNoeVJlc3BvbnNlPihcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTExFQ1RJT05fSElFUkFSQ0hZKFxuICAgICAgICB0eXBlLFxuICAgICAgICBpZCxcbiAgICAgICl9P3BhZ2VOdW1iZXI9JHtwYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke3BhZ2VTaXplfWAsXG4gICAgKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZENvdXJzZSgpIHtcblxuICB9XG5cbiAgZmV0Y2hDb3Vyc2VCYXRjaGVzKHJlcTogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oQVBJX0VORF9QT0lOVFMuQ09VUlNFX0JBVENIX0xJU1QsIHJlcSlcbiAgICAgIC5waXBlKFxuICAgICAgICByZXRyeSgxKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0LnJlc3BvbnNlXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvLyBmZXRjaCBpbmRpdmlkdWFsIGJhdGNoXG4gIGZldGNoQ291cnNlQmF0Y2goYmF0Y2hJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT1VSU0VfQkFUQ0h9LyR7YmF0Y2hJZH1gLFxuICAgICk7XG4gIH1cblxuICBhdXRvQXNzaWduQmF0Y2hBcGkoaWRlbnRpZmllcjogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oYCR7QVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fQkFUQ0h9JHtpZGVudGlmaWVyfWApXG4gICAgICAucGlwZShcbiAgICAgICAgcmV0cnkoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnJlc3VsdC5yZXNwb25zZVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgYXV0b0Fzc2lnbkN1cmF0ZWRCYXRjaEFwaShyZXF1ZXN0OiBhbnksIHByb2dyYW1UeXBlOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQmF0Y2hMaXN0UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBwcm9ncmFtVHlwZSA9PT0gTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5NT0RFUkFURURfUFJPR1JBTSA/XG4gICAgQVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fT1BFTl9QUk9HUkFNIDogQVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fQ1VSQVRFRF9CQVRDSDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oYCR7dXJsfWAsIHJlcXVlc3QpXG4gICAgICAucGlwZShcbiAgICAgICAgcmV0cnkoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnJlc3VsdC5yZXNwb25zZVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgZW5yb2xsVXNlclRvQmF0Y2gocmVxOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChBUElfRU5EX1BPSU5UUy5FTlJPTExfQkFUQ0gsIHJlcSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGVucm9sbEFuZFVuZW5yb2xsVXNlclRvQmF0Y2hXRihyZXE6IGFueSwgdHlwZTogYW55KSB7XG4gICAgY29uc3QgdXJsOiBhbnkgPSB0eXBlID09PSAnV0lUSERSQVcnID8gQVBJX0VORF9QT0lOVFMuV0lUSERSQVdfQkFUQ0hfV0YgOiBBUElfRU5EX1BPSU5UUy5FTlJPTExfQkFUQ0hfV0Y7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCByZXEpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBmZXRjaEJsZW5kZWRVc2VyV0YocmVxOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChBUElfRU5EX1BPSU5UUy5CTEVOREVEX1VTRVJfV0YsIHJlcSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZFVzZXJDT1VOVChyZXE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLkJMRU5ERURfVVNFUl9DT1VOVCwgcmVxKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hDb250ZW50TGlrZXMoY29udGVudElkczogeyBjb250ZW50X2lkOiBzdHJpbmdbXSB9KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8eyBbaWRlbnRpZmllcjogc3RyaW5nXTogbnVtYmVyIH0+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfTElLRVMsIGNvbnRlbnRJZHMpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cbiAgZmV0Y2hDb250ZW50UmF0aW5ncyhjb250ZW50SWRzOiB7IGNvbnRlbnRJZHM6IHN0cmluZ1tdIH0pIHtcbiAgICBpZiAoY29udGVudElkcykgeyB9XG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cFxuICAgIC8vICAgLnBvc3QoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9L3JhdGluZ2AsIGNvbnRlbnRJZHMpXG4gICAgLy8gICAudG9Qcm9taXNlKClcbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudEhpc3RvcnkoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGludWVMZWFybmluZ0RhdGE+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPihcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfSElTVE9SWX0vJHtjb250ZW50SWR9YCxcbiAgICApO1xuICB9XG5cbiAgZmV0Y2hDb250ZW50SGlzdG9yeVYyKHJlcTogTnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YVJlcSk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4ge1xuICAgIHJlcS5yZXF1ZXN0LmZpZWxkcyA9IFsncHJvZ3Jlc3NkZXRhaWxzJ107XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuaHR0cC5wb3N0PE5zQ29udGVudC5JQ29udGludWVMZWFybmluZ0RhdGE+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9ISVNUT1JZVjJ9LyR7cmVxLnJlcXVlc3QuY291cnNlSWR9YCwgcmVxXG4gICAgKTtcbiAgICBkYXRhLnN1YnNjcmliZSgoc3Vic2NyaWJlRGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtQ2hpbGRDb3Vyc2VSZXN1bWVEYXRhLm5leHQoeyByZXN1bWVEYXRhOiBzdWJzY3JpYmVEYXRhLnJlc3VsdC5jb250ZW50TGlzdCwgY291cnNlSWQ6IHJlcS5yZXF1ZXN0LmNvdXJzZUlkIH0pO1xuICAgICAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGNvbnRpbnVlTGVhcm5pbmcoaWQ6IHN0cmluZywgY29sbGVjdGlvbklkPzogc3RyaW5nLCBjb2xsZWN0aW9uVHlwZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHJlc29sdmUgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb25UeXBlICYmXG4gICAgICAgIGNvbGxlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdwbGF5bGlzdCcpIHtcbiAgICAgICAgY29uc3QgcmVxQm9keSA9IHtcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcbiAgICAgICAgICByZXNvdXJjZUlkOiBpZCxcbiAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICBjb250ZXh0RnVsbFBhdGg6IFtjb2xsZWN0aW9uSWQsIGlkXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXG4gICAgICAgICAgY29udGV4dFR5cGU6ICdwbGF5bGlzdCcsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXFCb2R5ID0ge1xuICAgICAgICAgIGNvbnRleHRQYXRoSWQ6IGNvbGxlY3Rpb25JZCA/IGNvbGxlY3Rpb25JZCA6IGlkLFxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxuICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdGltZXN0YW1wOiBEYXRlLm5vdygpIH0pLFxuICAgICAgICAgIGRhdGVBY2Nlc3NlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHNhdmVDb250aW51ZUxlYXJuaW5nKGNvbnRlbnQ6IE5zQ29udGVudC5JVmlld2VyQ29udGludWVMZWFybmluZ1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLlVTRVJfQ09OVElOVUVfTEVBUk5JTkdcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIGNvbnRlbnQpXG4gICAgaWYgKGNvbnRlbnQpIHtcblxuICAgIH1cbiAgICByZXR1cm4gb2YoKSBhcyBhbnk7XG4gIH1cblxuICBzZXRTM0Nvb2tpZShcbiAgICBfY29udGVudElkOiBzdHJpbmcsXG4gICAgLy8gX3BhdGg6IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwXG4gICAgLy8gICAucG9zdChBUElfRU5EX1BPSU5UUy5TRVRfUzNfQ09PS0lFLCB7IGNvbnRlbnRJZCB9KVxuICAgIC8vICAgLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcblxuICAgIHJldHVybiBFTVBUWTtcbiAgfVxuXG4gIHNldFMzSW1hZ2VDb29raWUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0lNQUdFX0NPT0tJRSwge30pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSk7XG4gIH1cblxuICBmZXRjaE1hbmlmZXN0KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuRkVUQ0hfTUFOSUZFU1QsIHsgdXJsIH0pO1xuICB9XG4gIGZldGNoV2ViTW9kdWxlQ29udGVudCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7QVBJX0VORF9QT0lOVFMuRkVUQ0hfV0VCX01PRFVMRV9GSUxFU30/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YCk7XG4gIH1cbiAgc2VhcmNoKHJlcTogTlNTZWFyY2guSVNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+IHtcbiAgICByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y1LCB7XG4gICAgICByZXF1ZXN0OiByZXEsXG4gICAgfSk7XG4gIH1cbiAgc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24oXG4gICAgcmVxOiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0LFxuICApOiBPYnNlcnZhYmxlPE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPiB7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIHJlcS5wcmVMYWJlbFZhbHVlID1cbiAgICAgIChyZXEucHJlTGFiZWxWYWx1ZSB8fCAnJykgK1xuICAgICAgKCh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5jb3VudHJ5KSB8fCAnJyk7XG4gICAgcmVxLmZpbHRlcnMgPSB7XG4gICAgICAuLi5yZXEuZmlsdGVycyxcbiAgICAgIGxhYmVsczogW3JlcS5wcmVMYWJlbFZhbHVlIHx8ICcnXSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnRTdHJpcE11bHRpcGxlLklDb250ZW50U3RyaXBSZXNwb25zZUFwaT4oXG4gICAgICBBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT04sXG4gICAgICB7IHJlcXVlc3Q6IHJlcSB9LFxuICAgICk7XG4gIH1cbiAgc2VhcmNoVjYocmVxOiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0KTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4ge1xuICAgIGNvbnN0IGFwaVBhdGggPSBfLmdldChyZXEsICdhcGkucGF0aCcpO1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICBpZiAoYXBpUGF0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KGFwaVBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y2LCByZXEpO1xuICB9XG5cbiAgc2VhcmNoUmVsYXRlZENCUFY2KHJlcTogTlNTZWFyY2guSVNlYXJjaFY2UmVxdWVzdFYyKTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0hfUkVMQVRFRF9DQlBfVjYsIHJlcSk7XG4gIH1cblxuICBmZXRjaENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgcmF0aW5nOiBudW1iZXIgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgcmF0aW5nOiBudW1iZXIgfT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApO1xuICB9XG4gIGRlbGV0ZUNvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS8ke2NvbnRlbnRJZH1gKTtcbiAgfVxuICBhZGRDb250ZW50UmF0aW5nKGNvbnRlbnRJZDogc3RyaW5nLCBkYXRhOiB7IHJhdGluZzogbnVtYmVyIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS8ke2NvbnRlbnRJZH1gLCBkYXRhKTtcbiAgfVxuXG4gIGdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQpOiBOc0NvbnRlbnQuSUNvbnRlbnQge1xuICAgIGlmICghKGNvbnRlbnQuY2hpbGRyZW4gfHwgW10pLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUFJPR1JBTSAmJlxuICAgICAgICAhKGNvbnRlbnQuYXJ0aWZhY3RVcmwgJiYgY29udGVudC5hcnRpZmFjdFVybC5sZW5ndGgpKSB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5Lk1BTkRBVE9SWV9DT1VSU0VfR09BTCB8fFxuICAgICAgKGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gJiZcbiAgICAgICAgIShjb250ZW50LmFydGlmYWN0VXJsICYmIGNvbnRlbnQuYXJ0aWZhY3RVcmwubGVuZ3RoKSkgfHxcbiAgICAgIChjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuTU9EVUxFICYmXG4gICAgICAgICEoY29udGVudC5hcnRpZmFjdFVybCAmJiBjb250ZW50LmFydGlmYWN0VXJsLmxlbmd0aCkpXG4gICAgKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF07XG4gICAgICByZXR1cm4gdGhpcy5nZXRGaXJzdENoaWxkSW5IaWVyYXJjaHkoY2hpbGQpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUkVTT1VSQ0UgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5LTk9XTEVER0VfQVJUSUZBQ1QgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUFJBQ1RJQ0VfUkVTT1VSQ0UgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5GSU5BTF9BU1NFU1NNRU5UIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuQ09NUF9BU1NFU1NNRU5UIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuQkxFTkRFRF9QUk9HUkFNIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuT0ZGTElORV9TRVNTSU9OXG4gICAgKSB7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgY29uc3QgZmlyc3RDaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF07XG4gICAgY29uc3QgcmVzdWx0Q29udGVudCA9IHRoaXMuZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGZpcnN0Q2hpbGQpO1xuICAgIHJldHVybiByZXN1bHRDb250ZW50O1xuICB9XG5cbiAgZ2V0UmVnaXN0cmF0aW9uU3RhdHVzKHNvdXJjZTogc3RyaW5nKTogUHJvbWlzZTx7IGhhc0FjY2VzczogYm9vbGVhbjsgcmVnaXN0cmF0aW9uVXJsPzogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLlJFR0lTVFJBVElPTl9TVEFUVVN9LyR7c291cmNlfWApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hDb25maWcodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XG4gIH1cblxuICBhZGRDZXJ0VGVtcGxhdGUoYm9keTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNFUlRfQUREX1RFTVBMQVRFfWAsIGJvZHkpO1xuICB9XG5cbiAgaXNzdWVDZXJ0KGJvZHk6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNFUlRfSVNTVUV9YCwgYm9keSk7XG4gIH1cbiAgZG93bmxvYWRDZXJ0KGNlcnRJZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHtBUElfRU5EX1BPSU5UUy5DRVJUX0RPV05MT0FEKGNlcnRJZCl9YCk7XG4gIH1cblxuICB0cmVuZGluZ0NvbnRlbnRTZWFyY2gocmVxOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklDb250ZW50PihBUElfRU5EX1BPSU5UUy5UUkVORElOR19DT05URU5UX1NFQVJDSCwgcmVxKTtcbiAgfVxuXG4gIGdldEthcm1hUG9pdG5zKGxpbWl0OiBudW1iZXIsIG9mZnNldDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KEFQSV9FTkRfUE9JTlRTLlJFQURfS0FSTUFQT0lOVFMsIHsgbGltaXQsIG9mZnNldCB9KS5waXBlKGNhdGNoRXJyb3IoX2VyciA9PiBvZih0cnVlKSkpO1xuICB9XG4gIGZldGNoUHJvZ3JhbUNvbnRlbnQoY29udGVudElkOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50W10+IHtcbiAgICBsZXQgdXJsID0gJyc7XG4gICAgY29uc3QgZm9yUHJldmlldyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcvcHVibGljLycpIHx8IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcmcHJldmlldz10cnVlJyk7XG4gICAgaWYgKCFmb3JQcmV2aWV3KSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4oXG4gICAgICAgIEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkVBRChjb250ZW50SWQpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdXJsID0gYC9hcGkvY29udGVudC92MS9yZWFkLyR7Y29udGVudElkfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KHVybCk7XG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkVBRChjb250ZW50SWQpKVxuICB9XG5cbiAgZ2V0Q291cnNlS2FybWFQb2ludHMocmVxdWVzdDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oQVBJX0VORF9QT0lOVFMuUkVBRF9DT1VSU0VfS0FSTUFQT0lOVFMsIHJlcXVlc3QpO1xuICB9XG5cbiAgY2xhaW1LYXJtYXBvaW50cyhyZXF1ZXN0OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBUElfRU5EX1BPSU5UUy5DTEFJTV9LQVJNQVBPSU5UUywgcmVxdWVzdCk7XG4gIH1cblxuICB1c2VyS2FybWFQb2ludHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oQVBJX0VORF9QT0lOVFMuVVNFUl9LQVJNQV9QT0lOVFMsIHt9KTtcbiAgfVxuXG4gIGdldEVucm9sbGVkRGF0YShkb0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBlbnJvbGxtZW50TWFwRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Vucm9sbG1lbnRNYXBEYXRhJykgfHwgJ3t9Jyk7XG4gICAgY29uc3QgZW5yb2xsZWRDb3Vyc2VEYXRhID0gZW5yb2xsbWVudE1hcERhdGFbZG9JZF07XG4gICAgcmV0dXJuIGVucm9sbGVkQ291cnNlRGF0YTtcbiAgfVxuXG4gIGFzeW5jIGdldFJlc291cnNlTGluayhjb250ZW50OiBhbnkpIHtcbiAgICBjb25zdCBlbnJvbGxlZENvdXJzZURhdGE6IGFueSA9IHRoaXMuZ2V0RW5yb2xsZWREYXRhKGNvbnRlbnQuaWRlbnRpZmllcik7XG4gICAgaWYgKGVucm9sbGVkQ291cnNlRGF0YSkge1xuICAgICAgaWYgKGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LmNvdXJzZUNhdGVnb3J5ID09PSAgTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gfHxcbiAgICAgICAgZW5yb2xsZWRDb3Vyc2VEYXRhLmNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09ICBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5LklOVklURV9PTkxZX1BST0dSQU0gfHxcbiAgICAgICAgZW5yb2xsZWRDb3Vyc2VEYXRhLmNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09ICBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5Lk1PREVSQVRFRF9QUk9HUkFNIHx8XG4gICAgICAgIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gIE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkJMRU5ERURfUFJPR1JBTSB8fFxuICAgICAgICBlbnJvbGxlZENvdXJzZURhdGEuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09ICBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzQmF0Y2hJblByb2dyZXNzKGVucm9sbGVkQ291cnNlRGF0YS5iYXRjaCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG9Ub2NQYWdlKGNvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBkYXRhID0gIGF3YWl0IHRoaXMuY2hlY2tGb3JEYXRhVG9Gb3JtVXJsKGNvbnRlbnQsIGVucm9sbGVkQ291cnNlRGF0YSk7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9ICB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSAgYXdhaXQgdGhpcy5jaGVja0ZvckRhdGFUb0Zvcm1VcmwoY29udGVudCwgZW5yb2xsZWRDb3Vyc2VEYXRhKTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG5cbiAgfVxuICBhc3luYyBjaGVja0ZvckRhdGFUb0Zvcm1VcmwoY29udGVudDogYW55LCBlbnJvbGxEYXRhOiBhbnkpIHtcbiAgICBsZXQgdXJsRGF0YTogYW55O1xuICAgIGlmIChlbnJvbGxEYXRhLmNvbXBsZXRpb25QZXJjZW50YWdlICA9PT0gMTAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShlbnJvbGxEYXRhKTtcbiAgICB9XG4gICAgaWYgKGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzICYmIGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzLm1pbWVUeXBlKSB7XG4gICAgICBjb25zdCBtb2RpZnlFbnJvbGxEYXRhICA9IHtcbiAgICAgICAgLi4uZW5yb2xsRGF0YSxcbiAgICAgICAgaWRlbnRpZmllcjogZW5yb2xsRGF0YS5jb2xsZWN0aW9uSWQsXG4gICAgICAgIHByaW1hcnlDYXRlZ29yeTogZW5yb2xsRGF0YS5jb250ZW50LnByaW1hcnlDYXRlZ29yeSxcbiAgICAgICAgbmFtZTogZW5yb2xsRGF0YS5jb250ZW50Lm5hbWUsXG4gICAgICB9O1xuICAgICAgaWYgKG1vZGlmeUVucm9sbERhdGEubGFzdFJlYWRDb250ZW50SWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3Vyc2VEYXRhV2l0aERhdGEobW9kaWZ5RW5yb2xsRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5yb2xsRGF0YS5sYXN0UmVhZENvbnRlbnRJZCwgZW5yb2xsRGF0YS5scmNQcm9ncmVzc0RldGFpbHMubWltZVR5cGUpO1xuICAgICAgfVxuICAgICAgaWYgKG1vZGlmeUVucm9sbERhdGEuZmlyc3RDaGlsZElkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlc291cnNlRGF0YVdpdGhEYXRhKG1vZGlmeUVucm9sbERhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVucm9sbERhdGEuZmlyc3RDaGlsZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnJvbGxEYXRhLmxyY1Byb2dyZXNzRGV0YWlscy5taW1lVHlwZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbnJvbGxEYXRhLmZpcnN0Q2hpbGRJZCB8fCBlbnJvbGxEYXRhLmxhc3RSZWFkQ29udGVudElkKSB7XG4gICAgICAgIGNvbnN0IGRvSWQgPSBlbnJvbGxEYXRhLmZpcnN0Q2hpbGRJZCB8fCBlbnJvbGxEYXRhLmxhc3RSZWFkQ29udGVudElkO1xuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmZldGNoUHJvZ3JhbUNvbnRlbnQoZG9JZCkudG9Qcm9taXNlKCkudGhlbihhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5yZXN1bHQgJiYgcmVzLnJlc3VsdC5jb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50RGF0YTogYW55ID0gcmVzLnJlc3VsdC5jb250ZW50O1xuICAgICAgICAgICAgY29uc3QgbW9kaWZ5RW5yb2xsRGF0YSAgPSB7XG4gICAgICAgICAgICAgIC4uLmVucm9sbERhdGEsXG4gICAgICAgICAgICAgIGlkZW50aWZpZXI6IGVucm9sbERhdGEuY29sbGVjdGlvbklkLFxuICAgICAgICAgICAgICBwcmltYXJ5Q2F0ZWdvcnk6IGVucm9sbERhdGEuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnksXG4gICAgICAgICAgICAgIG5hbWU6IGVucm9sbERhdGEuY29udGVudC5uYW1lLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHVybERhdGEgPSAgdGhpcy5nZXRSZXNvdXJzZURhdGFXaXRoRGF0YShtb2RpZnlFbnJvbGxEYXRhLCBjb250ZW50RGF0YS5pZGVudGlmaWVyLCBjb250ZW50RGF0YS5taW1lVHlwZSk7XG4gICAgICAgICAgICBpZiAodXJsRGF0YSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXJsRGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2VEYXRhID8gcmVzcG9uc2VEYXRhIDogdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcbiAgICAgIH1cbiAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcblxuICB9XG5cbiAgZ2V0UmVzb3Vyc2VEYXRhV2l0aERhdGEoY29udGVudDogYW55LCByZXNvdXJzZUlkOiBhbnksIG1pbWVUeXBlOiBhbnkpIHtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgY29uc3QgdXJsID0gdmlld2VyUm91dGVHZW5lcmF0b3IoXG4gICAgICAgIHJlc291cnNlSWQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICBjb250ZW50LmlkZW50aWZpZXIsXG4gICAgICAgICdDb3Vyc2UnLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgJ0xlYXJuaW5nIFJlc291cmNlJyxcbiAgICAgICAgY29udGVudC5iYXRjaElkLFxuICAgICAgICBjb250ZW50Lm5hbWUsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG4gIH1cbiAgZ290b1RvY1BhZ2UoY29udGVudDogYW55KSB7XG4gICAgY29uc3QgdXJsRGF0YTogYW55ID0ge1xuICAgICAgdXJsOiBgL2FwcC90b2MvJHtjb250ZW50LmlkZW50aWZpZXIgPyBjb250ZW50LmlkZW50aWZpZXIgOiBjb250ZW50LmNvbGxlY3Rpb25JZH0vb3ZlcnZpZXdgLFxuICAgICAgcXVlcnlQYXJhbXM6IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0sXG4gICAgfTtcbiAgICBpZiAoY29udGVudC5lbmREYXRlKSB7XG4gICAgICB1cmxEYXRhLnF1ZXJ5UGFyYW1zID0geyAuLi51cmxEYXRhLnF1ZXJ5UGFyYW1zLCBwbGFuVHlwZTogJ2NiUGxhbicsIGVuZERhdGU6IGNvbnRlbnQuZW5kRGF0ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gdXJsRGF0YTtcbiAgfVxuICBpc0JhdGNoSW5Qcm9ncmVzcyhiYXRjaERhdGE6IGFueSkge1xuICAgIC8vIGlmICh0aGlzLmNvbnRlbnQgJiYgdGhpcy5jb250ZW50WydiYXRjaGVzJ10pIHtcbiAgICAvLyBjb25zdCBiYXRjaGVzID0gdGhpcy5jb250ZW50WydiYXRjaGVzJ10gYXMgTnNDb250ZW50LklCYXRjaFxuICAgIGlmIChiYXRjaERhdGEgJiYgYmF0Y2hEYXRhLmVuZERhdGUpIHtcbiAgICAgIGNvbnN0IG5vdyA9IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KGJhdGNoRGF0YS5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgY29uc3QgZW5kRGF0ZSA9IGJhdGNoRGF0YS5lbmREYXRlID8gbW9tZW50KGJhdGNoRGF0YS5lbmREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSA6IG5vdztcbiAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAvLyBiYXRjaC5zdGF0dXMgJiZcbiAgICAgICAgICAgIG1vbWVudChzdGFydERhdGUpLmlzU2FtZU9yQmVmb3JlKG5vdylcbiAgICAgICAgICAgICYmIG1vbWVudChlbmREYXRlKS5pc1NhbWVPckFmdGVyKG5vdylcbiAgICAgICAgICApO1xuICAgIH0gcmV0dXJuIHRydWU7XG4gIH1cbiAgcG9zdEFwaU1ldGhvZChhcGlVcmw6IGFueSwgcmVxOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklDb250ZW50PihhcGlVcmwsIHJlcSk7XG4gIH1cbn1cbiJdfQ==
853
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUc1RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQTtBQUMzQixPQUFPLEVBQUcsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzRCxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7Ozs7TUFDNUIsTUFBTSxHQUFHLE9BQU87Ozs7TUFJaEIsaUJBQWlCLEdBQUcsb0JBQW9COzs7Ozs7QUF5QnRCLENBQUMsSUFBWSxFQUFFLEVBQVUsRUFBRSxFQUFFLENBQ2pELEdBQUcsaUJBQWlCLHVCQUF1QixJQUFJLElBQUksRUFBRSxFQUFFOzs7O0FBRWxDLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxpQkFBaUIsa0JBQWtCLFNBQVMsRUFBRTs7OztBQVFoRixDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxpQkFBaUIsdUNBQXVDLE1BQU0sRUFBRTs7OztBQUVyRixDQUFDLFNBQWMsRUFBRSxF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QztJQUNoQixDQUFDOzs7Ozs7SUFDRCxhQUFhLENBQUMsTUFBVyxFQUFFLEdBQVE7UUFDakMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFxQixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7SUFDRCxZQUFZLENBQUMsTUFBVztRQUN0QiwrQkFBK0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUIsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7O1lBdmdCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFoRVEsVUFBVTtZQUVWLHFCQUFxQjs7Ozs7SUFzRTVCLDZDQUFrRDs7SUFDbEQsOENBQW9EOzs7OztJQUVwRCw2Q0FBK0M7O0lBQy9DLDhDQUF5RDs7SUFDekQsK0NBQXFDOztJQUNyQywwREFBZ0Q7O0lBQ2hELDBEQUFpRDs7SUFDakQsNERBQTREOztJQUM1RCw2REFBaUY7Ozs7O0lBZC9FLG9DQUF3Qjs7Ozs7SUFDeEIseUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBFTVBUWSwgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCByZXRyeSwgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5zQ29udGVudFN0cmlwTXVsdGlwbGUgfSBmcm9tICcuLi9fbW9kZWxzL2NvbnRlbnQtc3RyaXAtbXVsdGlwbGUubW9kZWwnO1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi4vX21vZGVscy93aWRnZXQtY29udGVudC5tb2RlbCc7XG5pbXBvcnQgeyBOU1NlYXJjaCB9IGZyb20gJy4uL19tb2RlbHMvd2lkZ2V0LXNlYXJjaC5tb2RlbCc7XG4vLyB0c2xpbnQ6ZGlzYWJsZVxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyAgdmlld2VyUm91dGVHZW5lcmF0b3IgfSBmcm9tICcuL3ZpZXdlci1yb3V0ZS11dGlsJ1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuY29uc3QgbW9tZW50ID0gbW9tZW50Xztcbi8vIHRzbGludDplbmFibGVcblxuLy8gVE9ETzogbW92ZSB0aGlzIGluIHNvbWUgY29tbW9uIHBsYWNlXG5jb25zdCBQUk9URUNURURfU0xBR19WOCA9ICcvYXBpcy9wcm90ZWN0ZWQvdjgnO1xuXG5jb25zdCBBUElfRU5EX1BPSU5UUyA9IHtcbiAgQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnRgLFxuICBBVVRIT1JJTkdfQ09OVEVOVDogYC9hcGkvY291cnNlL3YxL2hpZXJhcmNoeWAsXG4gIENPTlRFTlRfTElLRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2xpa2VDb3VudGAsXG4gIFNFVF9TM19DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldENvb2tpZWAsXG4gIFNFVF9TM19JTUFHRV9DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldEltYWdlQ29va2llYCxcbiAgRkVUQ0hfTUFOSUZFU1Q6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZU1hbmlmZXN0YCxcbiAgRkVUQ0hfV0VCX01PRFVMRV9GSUxFUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvZ2V0V2ViTW9kdWxlRmlsZXNgLFxuICBNVUxUSVBMRV9DT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9tdWx0aXBsZWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y1OiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZWFyY2hWNWAsXG4gIENPTlRFTlRfU0VBUkNIX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBUUkVORElOR19DT05URU5UX1NFQVJDSDogYGFwaXMvcHJveGllcy92OC90cmVuZGluZy9jb250ZW50L3NlYXJjaGAsXG4gIENPTlRFTlRfU0VBUkNIX1JFTEFURURfQ0JQX1Y2OiBgL2FwaXMvcHJveGllcy92OC9zdW5iaXJkaWdvdC9zZWFyY2hgLFxuICBDT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT046IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uYCxcbiAgQ09OVEVOVF9ISVNUT1JZOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9oaXN0b3J5YCxcbiAgQ09OVEVOVF9ISVNUT1JZVjI6IGAvYXBpcy9wcm94aWVzL3Y4L3JlYWQvY29udGVudC1wcm9ncmVzYCxcbiAgQ09VUlNFX0JBVENIX0xJU1Q6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2JhdGNoL2xpc3RgLFxuICBDT1VSU0VfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2NvdXJzZS92MS9iYXRjaC9yZWFkYCxcbiAgQVVUT19BU1NJR05fQkFUQ0g6IGAvYXBpcy9wcm90ZWN0ZWQvdjgvY29ob3J0cy91c2VyL2F1dG9lbnJvbGxtZW50L2AsXG4gIEFVVE9fQVNTSUdOX0NVUkFURURfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2N1cmF0ZWRwcm9ncmFtL3YxL2Vucm9sYCxcbiAgQVVUT19BU1NJR05fT1BFTl9QUk9HUkFNOiBgL2FwaXMvcHJveGllcy92OC9vcGVucHJvZ3JhbS92MS9lbnJvbGAsXG4gIFVTRVJfQ09OVElOVUVfTEVBUk5JTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnkvY29udGludWVgLFxuICBDT05URU5UX1JBVElORzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvcmF0aW5nYCxcbiAgQ09MTEVDVElPTl9ISUVSQVJDSFk6ICh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpID0+XG4gICAgYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvY29sbGVjdGlvbi8ke3R5cGV9LyR7aWR9YCxcbiAgUkVHSVNUUkFUSU9OX1NUQVRVUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2FkbWluL3VzZXJSZWdpc3RyYXRpb24vY2hlY2tVc2VyUmVnaXN0cmF0aW9uQ29udGVudGAsXG4gIE1BUktfQVNfQ09NUExFVEVfTUVUQTogKGNvbnRlbnRJZDogc3RyaW5nKSA9PiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9wcm9ncmVzcy8ke2NvbnRlbnRJZH1gLFxuICBFTlJPTExfQkFUQ0g6IGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YxL2Vucm9sYCxcbiAgRU5ST0xMX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbGAsXG4gIFdJVEhEUkFXX0JBVENIX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91bmVucm9sYCxcbiAgQkxFTkRFRF9VU0VSX1dGOiBgL2FwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS91c2VyL3NlYXJjaGAsXG4gIEJMRU5ERURfVVNFUl9DT1VOVDogYGFwaXMvcHJveGllcy92OC93b3JrZmxvdy9ibGVuZGVkcHJvZ3JhbS9lbnJvbC9zdGF0dXMvY291bnRgLFxuICBDRVJUX0FERF9URU1QTEFURTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvdGVtcGxhdGUvYWRkYCxcbiAgQ0VSVF9JU1NVRTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvaXNzdWVgLFxuICBDRVJUX0RPV05MT0FEOiAoY2VydElkOiBhbnkpID0+IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb2hvcnRzL2NvdXJzZS9iYXRjaC9jZXJ0L2Rvd25sb2FkLyR7Y2VydElkfWAsXG4gIFJFQURfS0FSTUFQT0lOVFM6IGAvYXBpcy9wcm94aWVzL3Y4L2thcm1hcG9pbnRzL3JlYWRgLFxuICBDT05URU5UX1JFQUQ6IChjb250ZW50SWQ6IGFueSkgPT4gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gLFxuICBSRUFEX0NPVVJTRV9LQVJNQVBPSU5UUzogJy9hcGlzL3Byb3hpZXMvdjgva2FybWFwb2ludHMvdXNlci9jb3Vyc2UvcmVhZCcsXG4gIENMQUlNX0tBUk1BUE9JTlRTOiAnL2FwaXMvcHJveGllcy92OC9jbGFpbWthcm1hcG9pbnRzJyxcbiAgVVNFUl9LQVJNQV9QT0lOVFM6ICcvYXBpcy9wcm94aWVzL3Y4L3VzZXIvdG90YWxrYXJtYXBvaW50cycsXG4gIEFHR1JFR0FUSU9OX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvY29udGVudC9hZ2dyZWdhdGlvbi9zZWFyY2gnLFxuICBGRUFUVVJFX1NFQVJDSDogJy9hcGlzL3Byb3hpZXMvdjgvZmVhdHVyZWQvY29udGVudC9zZWFyY2gnLFxufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldENvbnRlbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgdG9jQ29uZmlnRGF0YTogYW55ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgdG9jQ29uZmlnRGF0YSQgID0gdGhpcy50b2NDb25maWdEYXRhLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgdGVsZW1ldHJ5RGF0YTogYW55ID0gbmV3IFN1YmplY3Q8YW55PigpXG4gIHB1YmxpYyB0ZWxlbWV0cnlEYXRhJCA9IHRoaXMudGVsZW1ldHJ5RGF0YS5hc09ic2VydmFibGUoKVxuICBjdXJyZW50TWV0YURhdGEhOiBOc0NvbnRlbnQuSUNvbnRlbnQ7XG4gIGN1cnJlbnRDb250ZW50UmVhZE1ldGFEYXRhITogTnNDb250ZW50LklDb250ZW50O1xuICBjdXJyZW50QmF0Y2hFbnJvbGxtZW50TGlzdCE6IE5zQ29udGVudC5JQ291cnNlW107XG4gIHByb2dyYW1DaGlsZENvdXJzZVJlc3VtZURhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xuICBwcm9ncmFtQ2hpbGRDb3Vyc2VSZXN1bWVEYXRhJCA9IHRoaXMucHJvZ3JhbUNoaWxkQ291cnNlUmVzdW1lRGF0YS5hc09ic2VydmFibGUoKTtcblxuICBjaGFuZ2VUZWxlbWV0cnlEYXRhKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMudGVsZW1ldHJ5RGF0YS5uZXh0KG1lc3NhZ2UpO1xuICB9XG4gIGlzUmVzb3VyY2UocHJpbWFyeUNhdGVnb3J5OiBzdHJpbmcpIHtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5KSB7XG4gICAgICBjb25zdCBpc1Jlc291cmNlID0gKHByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVSZXNvdXJjZVByaW1hcnlDYXRlZ29yaWVzLkxFQVJOSU5HX1JFU09VUkNFKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuUFJBQ1RJQ0VfUkVTT1VSQ0UpIHx8XG4gICAgICAgIChwcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUmVzb3VyY2VQcmltYXJ5Q2F0ZWdvcmllcy5GSU5BTF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuQ09NUF9BU1NFU1NNRU5UKSB8fFxuICAgICAgICAocHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVJlc291cmNlUHJpbWFyeUNhdGVnb3JpZXMuT0ZGTElORV9TRVNTSU9OKTtcbiAgICAgIHJldHVybiBpc1Jlc291cmNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmZXRjaE1hcmtBc0NvbXBsZXRlTWV0YShpZGVudGlmaWVyOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLk1BUktfQVNfQ09NUExFVEVfTUVUQShpZGVudGlmaWVyKVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkudG9Qcm9taXNlKClcbiAgICBpZiAodXJsKSB7IH1cbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHVwZGF0ZVRvY0NvbmZpZyhkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnRvY0NvbmZpZ0RhdGEubmV4dChkYXRhKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudChcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcbiAgICBoaWVyYXJjaHlUeXBlOiAnYWxsJyB8ICdtaW5pbWFsJyB8ICdkZXRhaWwnID0gJ2RldGFpbCcsXG4gICAgX2FkZGl0aW9uYWxGaWVsZHM6IHN0cmluZ1tdID0gW10sXG4gICAgcHJpbWFyeUNhdGVnb3J5Pzogc3RyaW5nIHwgbnVsbCxcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcbiAgICAvLyBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UfS8ke2NvbnRlbnRJZH0/aGllcmFyY2h5VHlwZT0ke2hpZXJhcmNoeVR5cGV9YFxuICAgIGxldCB1cmwgPSAnJztcbiAgICBjb25zdCBmb3JQcmV2aWV3ID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9wdWJsaWMvJykgfHwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyZwcmV2aWV3PXRydWUnKTtcbiAgICBpZiAocHJpbWFyeUNhdGVnb3J5ICYmIHRoaXMuaXNSZXNvdXJjZShwcmltYXJ5Q2F0ZWdvcnkpKSB7XG4gICAgICBpZiAoIWZvclByZXZpZXcpIHtcbiAgICAgICAgdXJsID0gYC9hcGlzL3Byb3hpZXMvdjgvYWN0aW9uL2NvbnRlbnQvdjMvcmVhZC8ke2NvbnRlbnRJZH1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gYC9hcGkvY29udGVudC92MS9yZWFkLyR7Y29udGVudElkfWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZm9yUHJldmlldykge1xuICAgICAgICB1cmwgPSBgL2FwaXMvcHJveGllcy92OC9hY3Rpb24vY29udGVudC92My9oaWVyYXJjaHkvJHtjb250ZW50SWR9P2hpZXJhcmNoeVR5cGU9JHtoaWVyYXJjaHlUeXBlfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmb3JjcmVhdG9yID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2VkaXRNb2RlPXRydWUnKTtcbiAgICAgICAgaWYgKGZvcmNyZWF0b3IpIHtcbiAgICAgICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cmwgPSBgL2FwaS9jb3Vyc2UvdjEvaGllcmFyY2h5LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPSR7aGllcmFyY2h5VHlwZX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcbiAgICAvLyAgIC5wb3N0PE5zQ29udGVudC5JQ29udGVudD4odXJsLCB7IGFkZGl0aW9uYWxGaWVsZHMgfSlcbiAgICAvLyAgIC5waXBlKHJldHJ5KDEpKVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8TnNDb250ZW50LklDb250ZW50Pih1cmwpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgLy8gaWYgKGFwaURhdGEgJiYgYXBpRGF0YS5yZXN1bHQpIHtcbiAgICAvLyAgIHJldHVybiBhcGlEYXRhLnJlc3VsdC5jb250ZW50XG4gICAgLy8gfVxuICB9XG4gIGZldGNoQXV0aG9yaW5nQ29udGVudChjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XG4gICAgY29uc3QgZm9yY3JlYXRvciA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdlZGl0TW9kZT10cnVlJyk7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChmb3JjcmVhdG9yKSB7XG4gICAgICB1cmwgPSBgYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9jb250ZW50L3YzL2hpZXJhcmNoeS8ke2NvbnRlbnRJZH0/bW9kZT1lZGl0YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gYCR7QVBJX0VORF9QT0lOVFMuQVVUSE9SSU5HX0NPTlRFTlR9LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPWRldGFpbGA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudD4odXJsKS5waXBlKHNoYXJlUmVwbGF5KDEpLCByID0+IHIpO1xuICB9XG4gIGZldGNoTXVsdGlwbGVDb250ZW50KGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuTVVMVElQTEVfQ09OVEVOVH0vJHtpZHMuam9pbignLCcpfWAsXG4gICAgKTtcbiAgfVxuICBmZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIgPSAwLCBwYWdlU2l6ZTogbnVtYmVyID0gMSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29sbGVjdGlvbkhpZXJhcmNoeVJlc3BvbnNlPihcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTExFQ1RJT05fSElFUkFSQ0hZKFxuICAgICAgICB0eXBlLFxuICAgICAgICBpZCxcbiAgICAgICl9P3BhZ2VOdW1iZXI9JHtwYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke3BhZ2VTaXplfWAsXG4gICAgKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZENvdXJzZSgpIHtcblxuICB9XG5cbiAgZmV0Y2hDb3Vyc2VCYXRjaGVzKHJlcTogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oQVBJX0VORF9QT0lOVFMuQ09VUlNFX0JBVENIX0xJU1QsIHJlcSlcbiAgICAgIC5waXBlKFxuICAgICAgICByZXRyeSgxKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0LnJlc3BvbnNlXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvLyBmZXRjaCBpbmRpdmlkdWFsIGJhdGNoXG4gIGZldGNoQ291cnNlQmF0Y2goYmF0Y2hJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT1VSU0VfQkFUQ0h9LyR7YmF0Y2hJZH1gLFxuICAgICk7XG4gIH1cblxuICBhdXRvQXNzaWduQmF0Y2hBcGkoaWRlbnRpZmllcjogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUJhdGNoTGlzdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oYCR7QVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fQkFUQ0h9JHtpZGVudGlmaWVyfWApXG4gICAgICAucGlwZShcbiAgICAgICAgcmV0cnkoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnJlc3VsdC5yZXNwb25zZVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgYXV0b0Fzc2lnbkN1cmF0ZWRCYXRjaEFwaShyZXF1ZXN0OiBhbnksIHByb2dyYW1UeXBlOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQmF0Y2hMaXN0UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBwcm9ncmFtVHlwZSA9PT0gTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5NT0RFUkFURURfUFJPR1JBTSA/XG4gICAgQVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fT1BFTl9QUk9HUkFNIDogQVBJX0VORF9QT0lOVFMuQVVUT19BU1NJR05fQ1VSQVRFRF9CQVRDSDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklCYXRjaExpc3RSZXNwb25zZT4oYCR7dXJsfWAsIHJlcXVlc3QpXG4gICAgICAucGlwZShcbiAgICAgICAgcmV0cnkoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLnJlc3VsdC5yZXNwb25zZVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgZW5yb2xsVXNlclRvQmF0Y2gocmVxOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChBUElfRU5EX1BPSU5UUy5FTlJPTExfQkFUQ0gsIHJlcSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGVucm9sbEFuZFVuZW5yb2xsVXNlclRvQmF0Y2hXRihyZXE6IGFueSwgdHlwZTogYW55KSB7XG4gICAgY29uc3QgdXJsOiBhbnkgPSB0eXBlID09PSAnV0lUSERSQVcnID8gQVBJX0VORF9QT0lOVFMuV0lUSERSQVdfQkFUQ0hfV0YgOiBBUElfRU5EX1BPSU5UUy5FTlJPTExfQkFUQ0hfV0Y7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCByZXEpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBmZXRjaEJsZW5kZWRVc2VyV0YocmVxOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChBUElfRU5EX1BPSU5UUy5CTEVOREVEX1VTRVJfV0YsIHJlcSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGZldGNoQmxlbmRlZFVzZXJDT1VOVChyZXE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLkJMRU5ERURfVVNFUl9DT1VOVCwgcmVxKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hDb250ZW50TGlrZXMoY29udGVudElkczogeyBjb250ZW50X2lkOiBzdHJpbmdbXSB9KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8eyBbaWRlbnRpZmllcjogc3RyaW5nXTogbnVtYmVyIH0+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfTElLRVMsIGNvbnRlbnRJZHMpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cbiAgZmV0Y2hDb250ZW50UmF0aW5ncyhjb250ZW50SWRzOiB7IGNvbnRlbnRJZHM6IHN0cmluZ1tdIH0pIHtcbiAgICBpZiAoY29udGVudElkcykgeyB9XG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cFxuICAgIC8vICAgLnBvc3QoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9L3JhdGluZ2AsIGNvbnRlbnRJZHMpXG4gICAgLy8gICAudG9Qcm9taXNlKClcbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGZldGNoQ29udGVudEhpc3RvcnkoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGludWVMZWFybmluZ0RhdGE+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPihcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfSElTVE9SWX0vJHtjb250ZW50SWR9YCxcbiAgICApO1xuICB9XG5cbiAgZmV0Y2hDb250ZW50SGlzdG9yeVYyKHJlcTogTnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YVJlcSk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4ge1xuICAgIHJlcS5yZXF1ZXN0LmZpZWxkcyA9IFsncHJvZ3Jlc3NkZXRhaWxzJ107XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuaHR0cC5wb3N0PE5zQ29udGVudC5JQ29udGludWVMZWFybmluZ0RhdGE+KFxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9ISVNUT1JZVjJ9LyR7cmVxLnJlcXVlc3QuY291cnNlSWR9YCwgcmVxXG4gICAgKTtcbiAgICBkYXRhLnN1YnNjcmliZSgoc3Vic2NyaWJlRGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtQ2hpbGRDb3Vyc2VSZXN1bWVEYXRhLm5leHQoeyByZXN1bWVEYXRhOiBzdWJzY3JpYmVEYXRhLnJlc3VsdC5jb250ZW50TGlzdCwgY291cnNlSWQ6IHJlcS5yZXF1ZXN0LmNvdXJzZUlkIH0pO1xuICAgICAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGNvbnRpbnVlTGVhcm5pbmcoaWQ6IHN0cmluZywgY29sbGVjdGlvbklkPzogc3RyaW5nLCBjb2xsZWN0aW9uVHlwZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHJlc29sdmUgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb25UeXBlICYmXG4gICAgICAgIGNvbGxlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdwbGF5bGlzdCcpIHtcbiAgICAgICAgY29uc3QgcmVxQm9keSA9IHtcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcbiAgICAgICAgICByZXNvdXJjZUlkOiBpZCxcbiAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICBjb250ZXh0RnVsbFBhdGg6IFtjb2xsZWN0aW9uSWQsIGlkXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXG4gICAgICAgICAgY29udGV4dFR5cGU6ICdwbGF5bGlzdCcsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXFCb2R5ID0ge1xuICAgICAgICAgIGNvbnRleHRQYXRoSWQ6IGNvbGxlY3Rpb25JZCA/IGNvbGxlY3Rpb25JZCA6IGlkLFxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxuICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdGltZXN0YW1wOiBEYXRlLm5vdygpIH0pLFxuICAgICAgICAgIGRhdGVBY2Nlc3NlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHNhdmVDb250aW51ZUxlYXJuaW5nKGNvbnRlbnQ6IE5zQ29udGVudC5JVmlld2VyQ29udGludWVMZWFybmluZ1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLlVTRVJfQ09OVElOVUVfTEVBUk5JTkdcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIGNvbnRlbnQpXG4gICAgaWYgKGNvbnRlbnQpIHtcblxuICAgIH1cbiAgICByZXR1cm4gb2YoKSBhcyBhbnk7XG4gIH1cblxuICBzZXRTM0Nvb2tpZShcbiAgICBfY29udGVudElkOiBzdHJpbmcsXG4gICAgLy8gX3BhdGg6IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwXG4gICAgLy8gICAucG9zdChBUElfRU5EX1BPSU5UUy5TRVRfUzNfQ09PS0lFLCB7IGNvbnRlbnRJZCB9KVxuICAgIC8vICAgLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcblxuICAgIHJldHVybiBFTVBUWTtcbiAgfVxuXG4gIHNldFMzSW1hZ2VDb29raWUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0lNQUdFX0NPT0tJRSwge30pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSk7XG4gIH1cblxuICBmZXRjaE1hbmlmZXN0KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuRkVUQ0hfTUFOSUZFU1QsIHsgdXJsIH0pO1xuICB9XG4gIGZldGNoV2ViTW9kdWxlQ29udGVudCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7QVBJX0VORF9QT0lOVFMuRkVUQ0hfV0VCX01PRFVMRV9GSUxFU30/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YCk7XG4gIH1cbiAgc2VhcmNoKHJlcTogTlNTZWFyY2guSVNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+IHtcbiAgICByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y1LCB7XG4gICAgICByZXF1ZXN0OiByZXEsXG4gICAgfSk7XG4gIH1cbiAgc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24oXG4gICAgcmVxOiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0LFxuICApOiBPYnNlcnZhYmxlPE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPiB7XG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnO1xuICAgIHJlcS5wcmVMYWJlbFZhbHVlID1cbiAgICAgIChyZXEucHJlTGFiZWxWYWx1ZSB8fCAnJykgK1xuICAgICAgKCh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5jb3VudHJ5KSB8fCAnJyk7XG4gICAgcmVxLmZpbHRlcnMgPSB7XG4gICAgICAuLi5yZXEuZmlsdGVycyxcbiAgICAgIGxhYmVsczogW3JlcS5wcmVMYWJlbFZhbHVlIHx8ICcnXSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnRTdHJpcE11bHRpcGxlLklDb250ZW50U3RyaXBSZXNwb25zZUFwaT4oXG4gICAgICBBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT04sXG4gICAgICB7IHJlcXVlc3Q6IHJlcSB9LFxuICAgICk7XG4gIH1cbiAgc2VhcmNoVjYocmVxOiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0KTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4ge1xuICAgIGNvbnN0IGFwaVBhdGggPSBfLmdldChyZXEsICdhcGkucGF0aCcpO1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICBpZiAoYXBpUGF0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KGFwaVBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0VjI+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y2LCByZXEpO1xuICB9XG5cbiAgc2VhcmNoUmVsYXRlZENCUFY2KHJlcTogTlNTZWFyY2guSVNlYXJjaFY2UmVxdWVzdFYyKTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHRWMj4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0hfUkVMQVRFRF9DQlBfVjYsIHJlcSk7XG4gIH1cblxuICBmZXRjaENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgcmF0aW5nOiBudW1iZXIgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgcmF0aW5nOiBudW1iZXIgfT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApO1xuICB9XG4gIGRlbGV0ZUNvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS8ke2NvbnRlbnRJZH1gKTtcbiAgfVxuICBhZGRDb250ZW50UmF0aW5nKGNvbnRlbnRJZDogc3RyaW5nLCBkYXRhOiB7IHJhdGluZzogbnVtYmVyIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS8ke2NvbnRlbnRJZH1gLCBkYXRhKTtcbiAgfVxuXG4gIGdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQpOiBOc0NvbnRlbnQuSUNvbnRlbnQge1xuICAgIGlmICghKGNvbnRlbnQuY2hpbGRyZW4gfHwgW10pLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUFJPR1JBTSAmJlxuICAgICAgICAhKGNvbnRlbnQuYXJ0aWZhY3RVcmwgJiYgY29udGVudC5hcnRpZmFjdFVybC5sZW5ndGgpKSB8fFxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5Lk1BTkRBVE9SWV9DT1VSU0VfR09BTCB8fFxuICAgICAgKGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gJiZcbiAgICAgICAgIShjb250ZW50LmFydGlmYWN0VXJsICYmIGNvbnRlbnQuYXJ0aWZhY3RVcmwubGVuZ3RoKSkgfHxcbiAgICAgIChjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuTU9EVUxFICYmXG4gICAgICAgICEoY29udGVudC5hcnRpZmFjdFVybCAmJiBjb250ZW50LmFydGlmYWN0VXJsLmxlbmd0aCkpXG4gICAgKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF07XG4gICAgICByZXR1cm4gdGhpcy5nZXRGaXJzdENoaWxkSW5IaWVyYXJjaHkoY2hpbGQpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUkVTT1VSQ0UgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5LTk9XTEVER0VfQVJUSUZBQ1QgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUFJBQ1RJQ0VfUkVTT1VSQ0UgfHxcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5GSU5BTF9BU1NFU1NNRU5UIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuQ09NUF9BU1NFU1NNRU5UIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuQkxFTkRFRF9QUk9HUkFNIHx8XG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuT0ZGTElORV9TRVNTSU9OXG4gICAgKSB7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgY29uc3QgZmlyc3RDaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF07XG4gICAgY29uc3QgcmVzdWx0Q29udGVudCA9IHRoaXMuZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGZpcnN0Q2hpbGQpO1xuICAgIHJldHVybiByZXN1bHRDb250ZW50O1xuICB9XG5cbiAgZ2V0UmVnaXN0cmF0aW9uU3RhdHVzKHNvdXJjZTogc3RyaW5nKTogUHJvbWlzZTx7IGhhc0FjY2VzczogYm9vbGVhbjsgcmVnaXN0cmF0aW9uVXJsPzogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLlJFR0lTVFJBVElPTl9TVEFUVVN9LyR7c291cmNlfWApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZmV0Y2hDb25maWcodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XG4gIH1cblxuICBhZGRDZXJ0VGVtcGxhdGUoYm9keTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNFUlRfQUREX1RFTVBMQVRFfWAsIGJvZHkpO1xuICB9XG5cbiAgaXNzdWVDZXJ0KGJvZHk6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNFUlRfSVNTVUV9YCwgYm9keSk7XG4gIH1cbiAgZG93bmxvYWRDZXJ0KGNlcnRJZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHtBUElfRU5EX1BPSU5UUy5DRVJUX0RPV05MT0FEKGNlcnRJZCl9YCk7XG4gIH1cblxuICB0cmVuZGluZ0NvbnRlbnRTZWFyY2gocmVxOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklDb250ZW50PihBUElfRU5EX1BPSU5UUy5UUkVORElOR19DT05URU5UX1NFQVJDSCwgcmVxKTtcbiAgfVxuXG4gIGdldEthcm1hUG9pdG5zKGxpbWl0OiBudW1iZXIsIG9mZnNldDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KEFQSV9FTkRfUE9JTlRTLlJFQURfS0FSTUFQT0lOVFMsIHsgbGltaXQsIG9mZnNldCB9KS5waXBlKGNhdGNoRXJyb3IoX2VyciA9PiBvZih0cnVlKSkpO1xuICB9XG4gIGZldGNoUHJvZ3JhbUNvbnRlbnQoY29udGVudElkOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50W10+IHtcbiAgICBsZXQgdXJsID0gJyc7XG4gICAgY29uc3QgZm9yUHJldmlldyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcvcHVibGljLycpIHx8IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcmcHJldmlldz10cnVlJyk7XG4gICAgaWYgKCFmb3JQcmV2aWV3KSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4oXG4gICAgICAgIEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkVBRChjb250ZW50SWQpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdXJsID0gYC9hcGkvY29udGVudC92MS9yZWFkLyR7Y29udGVudElkfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KHVybCk7XG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkVBRChjb250ZW50SWQpKVxuICB9XG5cbiAgZ2V0Q291cnNlS2FybWFQb2ludHMocmVxdWVzdDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oQVBJX0VORF9QT0lOVFMuUkVBRF9DT1VSU0VfS0FSTUFQT0lOVFMsIHJlcXVlc3QpO1xuICB9XG5cbiAgY2xhaW1LYXJtYXBvaW50cyhyZXF1ZXN0OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBUElfRU5EX1BPSU5UUy5DTEFJTV9LQVJNQVBPSU5UUywgcmVxdWVzdCk7XG4gIH1cblxuICB1c2VyS2FybWFQb2ludHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oQVBJX0VORF9QT0lOVFMuVVNFUl9LQVJNQV9QT0lOVFMsIHt9KTtcbiAgfVxuXG4gIGdldEVucm9sbGVkRGF0YShkb0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBlbnJvbGxtZW50TWFwRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Vucm9sbG1lbnRNYXBEYXRhJykgfHwgJ3t9Jyk7XG4gICAgY29uc3QgZW5yb2xsZWRDb3Vyc2VEYXRhID0gZW5yb2xsbWVudE1hcERhdGFbZG9JZF07XG4gICAgcmV0dXJuIGVucm9sbGVkQ291cnNlRGF0YTtcbiAgfVxuXG4gIGFzeW5jIGdldFJlc291cnNlTGluayhjb250ZW50OiBhbnkpIHtcbiAgICBjb25zdCBlbnJvbGxlZENvdXJzZURhdGE6IGFueSA9IHRoaXMuZ2V0RW5yb2xsZWREYXRhKGNvbnRlbnQuaWRlbnRpZmllcik7XG4gICAgaWYgKGVucm9sbGVkQ291cnNlRGF0YSkge1xuICAgICAgaWYgKGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LmNvdXJzZUNhdGVnb3J5ID09PSAgTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5CTEVOREVEX1BST0dSQU0gfHxcbiAgICAgICAgZW5yb2xsZWRDb3Vyc2VEYXRhLmNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09ICBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5LklOVklURV9PTkxZX1BST0dSQU0gfHxcbiAgICAgICAgZW5yb2xsZWRDb3Vyc2VEYXRhLmNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09ICBOc0NvbnRlbnQuRUNvdXJzZUNhdGVnb3J5Lk1PREVSQVRFRF9QUk9HUkFNIHx8XG4gICAgICAgIGVucm9sbGVkQ291cnNlRGF0YS5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gIE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkJMRU5ERURfUFJPR1JBTSB8fFxuICAgICAgICBlbnJvbGxlZENvdXJzZURhdGEuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09ICBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5QUk9HUkFNKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzQmF0Y2hJblByb2dyZXNzKGVucm9sbGVkQ291cnNlRGF0YS5iYXRjaCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG9Ub2NQYWdlKGNvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBkYXRhID0gIGF3YWl0IHRoaXMuY2hlY2tGb3JEYXRhVG9Gb3JtVXJsKGNvbnRlbnQsIGVucm9sbGVkQ291cnNlRGF0YSk7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9ICB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSAgYXdhaXQgdGhpcy5jaGVja0ZvckRhdGFUb0Zvcm1VcmwoY29udGVudCwgZW5yb2xsZWRDb3Vyc2VEYXRhKTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG5cbiAgfVxuICBhc3luYyBjaGVja0ZvckRhdGFUb0Zvcm1VcmwoY29udGVudDogYW55LCBlbnJvbGxEYXRhOiBhbnkpIHtcbiAgICBsZXQgdXJsRGF0YTogYW55O1xuICAgIGlmIChlbnJvbGxEYXRhLmNvbXBsZXRpb25QZXJjZW50YWdlICA9PT0gMTAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShlbnJvbGxEYXRhKTtcbiAgICB9XG4gICAgaWYgKGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzICYmIGVucm9sbERhdGEubHJjUHJvZ3Jlc3NEZXRhaWxzLm1pbWVUeXBlKSB7XG4gICAgICBjb25zdCBtb2RpZnlFbnJvbGxEYXRhICA9IHtcbiAgICAgICAgLi4uZW5yb2xsRGF0YSxcbiAgICAgICAgaWRlbnRpZmllcjogZW5yb2xsRGF0YS5jb2xsZWN0aW9uSWQsXG4gICAgICAgIHByaW1hcnlDYXRlZ29yeTogZW5yb2xsRGF0YS5jb250ZW50LnByaW1hcnlDYXRlZ29yeSxcbiAgICAgICAgbmFtZTogZW5yb2xsRGF0YS5jb250ZW50Lm5hbWUsXG4gICAgICB9O1xuICAgICAgaWYgKG1vZGlmeUVucm9sbERhdGEubGFzdFJlYWRDb250ZW50SWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3Vyc2VEYXRhV2l0aERhdGEobW9kaWZ5RW5yb2xsRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5yb2xsRGF0YS5sYXN0UmVhZENvbnRlbnRJZCwgZW5yb2xsRGF0YS5scmNQcm9ncmVzc0RldGFpbHMubWltZVR5cGUpO1xuICAgICAgfVxuICAgICAgaWYgKG1vZGlmeUVucm9sbERhdGEuZmlyc3RDaGlsZElkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlc291cnNlRGF0YVdpdGhEYXRhKG1vZGlmeUVucm9sbERhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVucm9sbERhdGEuZmlyc3RDaGlsZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnJvbGxEYXRhLmxyY1Byb2dyZXNzRGV0YWlscy5taW1lVHlwZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbnJvbGxEYXRhLmZpcnN0Q2hpbGRJZCB8fCBlbnJvbGxEYXRhLmxhc3RSZWFkQ29udGVudElkKSB7XG4gICAgICAgIGNvbnN0IGRvSWQgPSBlbnJvbGxEYXRhLmZpcnN0Q2hpbGRJZCB8fCBlbnJvbGxEYXRhLmxhc3RSZWFkQ29udGVudElkO1xuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmZldGNoUHJvZ3JhbUNvbnRlbnQoZG9JZCkudG9Qcm9taXNlKCkudGhlbihhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5yZXN1bHQgJiYgcmVzLnJlc3VsdC5jb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50RGF0YTogYW55ID0gcmVzLnJlc3VsdC5jb250ZW50O1xuICAgICAgICAgICAgY29uc3QgbW9kaWZ5RW5yb2xsRGF0YSAgPSB7XG4gICAgICAgICAgICAgIC4uLmVucm9sbERhdGEsXG4gICAgICAgICAgICAgIGlkZW50aWZpZXI6IGVucm9sbERhdGEuY29sbGVjdGlvbklkLFxuICAgICAgICAgICAgICBwcmltYXJ5Q2F0ZWdvcnk6IGVucm9sbERhdGEuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnksXG4gICAgICAgICAgICAgIG5hbWU6IGVucm9sbERhdGEuY29udGVudC5uYW1lLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHVybERhdGEgPSAgdGhpcy5nZXRSZXNvdXJzZURhdGFXaXRoRGF0YShtb2RpZnlFbnJvbGxEYXRhLCBjb250ZW50RGF0YS5pZGVudGlmaWVyLCBjb250ZW50RGF0YS5taW1lVHlwZSk7XG4gICAgICAgICAgICBpZiAodXJsRGF0YSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXJsRGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2VEYXRhID8gcmVzcG9uc2VEYXRhIDogdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcbiAgICAgIH1cbiAgICByZXR1cm4gdGhpcy5nb3RvVG9jUGFnZShjb250ZW50KTtcblxuICB9XG5cbiAgZ2V0UmVzb3Vyc2VEYXRhV2l0aERhdGEoY29udGVudDogYW55LCByZXNvdXJzZUlkOiBhbnksIG1pbWVUeXBlOiBhbnkpIHtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgY29uc3QgdXJsID0gdmlld2VyUm91dGVHZW5lcmF0b3IoXG4gICAgICAgIHJlc291cnNlSWQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICBjb250ZW50LmlkZW50aWZpZXIsXG4gICAgICAgICdDb3Vyc2UnLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgJ0xlYXJuaW5nIFJlc291cmNlJyxcbiAgICAgICAgY29udGVudC5iYXRjaElkLFxuICAgICAgICBjb250ZW50Lm5hbWUsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ290b1RvY1BhZ2UoY29udGVudCk7XG4gIH1cbiAgZ290b1RvY1BhZ2UoY29udGVudDogYW55KSB7XG4gICAgY29uc3QgdXJsRGF0YTogYW55ID0ge1xuICAgICAgdXJsOiBgL2FwcC90b2MvJHtjb250ZW50LmlkZW50aWZpZXIgPyBjb250ZW50LmlkZW50aWZpZXIgOiBjb250ZW50LmNvbGxlY3Rpb25JZH0vb3ZlcnZpZXdgLFxuICAgICAgcXVlcnlQYXJhbXM6IHsgYmF0Y2hJZDogY29udGVudC5iYXRjaElkIH0sXG4gICAgfTtcbiAgICBpZiAoY29udGVudC5lbmREYXRlKSB7XG4gICAgICB1cmxEYXRhLnF1ZXJ5UGFyYW1zID0geyAuLi51cmxEYXRhLnF1ZXJ5UGFyYW1zLCBwbGFuVHlwZTogJ2NiUGxhbicsIGVuZERhdGU6IGNvbnRlbnQuZW5kRGF0ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gdXJsRGF0YTtcbiAgfVxuICBpc0JhdGNoSW5Qcm9ncmVzcyhiYXRjaERhdGE6IGFueSkge1xuICAgIC8vIGlmICh0aGlzLmNvbnRlbnQgJiYgdGhpcy5jb250ZW50WydiYXRjaGVzJ10pIHtcbiAgICAvLyBjb25zdCBiYXRjaGVzID0gdGhpcy5jb250ZW50WydiYXRjaGVzJ10gYXMgTnNDb250ZW50LklCYXRjaFxuICAgIGlmIChiYXRjaERhdGEgJiYgYmF0Y2hEYXRhLmVuZERhdGUpIHtcbiAgICAgIGNvbnN0IG5vdyA9IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KGJhdGNoRGF0YS5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgICAgY29uc3QgZW5kRGF0ZSA9IGJhdGNoRGF0YS5lbmREYXRlID8gbW9tZW50KGJhdGNoRGF0YS5lbmREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSA6IG5vdztcbiAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAvLyBiYXRjaC5zdGF0dXMgJiZcbiAgICAgICAgICAgIG1vbWVudChzdGFydERhdGUpLmlzU2FtZU9yQmVmb3JlKG5vdylcbiAgICAgICAgICAgICYmIG1vbWVudChlbmREYXRlKS5pc1NhbWVPckFmdGVyKG5vdylcbiAgICAgICAgICApO1xuICAgIH0gcmV0dXJuIHRydWU7XG4gIH1cbiAgcG9zdEFwaU1ldGhvZChhcGlVcmw6IGFueSwgcmVxOiBhbnkpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50LklDb250ZW50PihhcGlVcmwsIHJlcSk7XG4gIH1cbiAgZ2V0QXBpTWV0aG9kKGFwaVVybDogYW55KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcbiAgICAvLyByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50PihhcGlVcmwpO1xuICB9XG59XG4iXX0=