@colijnit/corecomponents_v12 255.1.19 → 255.1.20

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.
@@ -667,4 +667,4 @@ FilterItemComponent.propDecorators = {
667
667
  filteredCollection: [{ type: HostBinding, args: ["class.co-filter-item",] }],
668
668
  hidden: [{ type: HostBinding, args: ['class.co-hidden',] }]
669
669
  };
670
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1pdGVtL2ZpbHRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQ3JDLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seURBQXlELENBQUM7QUFFdEYsT0FBTyxFQUFDLDhDQUE4QyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUEwSy9ILE1BQU0sT0FBTyxtQkFBbUI7SUF1STlCLFlBQW1CLFdBQTZCLEVBQzVCLGVBQWtDO1FBRG5DLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUF2SS9DLFVBQUssR0FBOEIsa0JBQWtCLENBQUM7UUFDdEQsVUFBSyxHQUEwQixjQUFjLENBQUM7UUE0QjlDLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFRakMsNEdBQTRHO1FBRXJHLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRXRDLG1IQUFtSDtRQUU1RyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUdoQyxzQkFBaUIsR0FBVyxRQUFRLENBQUM7UUFHckMsc0JBQWlCLEdBQVcsV0FB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SzsrQkFHTCxLQUFLOzhCQUdMLEtBQUs7b0JBR0wsS0FBSzswQkFtQkwsTUFBTTsrQkFHTixNQUFNO2tDQUdOLE1BQU07aUNBR04sV0FBVyxTQUFDLHNCQUFzQjtxQkFpQmxDLFdBQVcsU0FBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29ufSBmcm9tICcuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bSc7XHJcbmltcG9ydCB7RmlsdGVySXRlbVZpZXdtb2RlbH0gZnJvbSAnLi9maWx0ZXItaXRlbS12aWV3bW9kZWwnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGaWx0ZXJJdGVtTW9kZX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2ZpbHRlckl0ZW0tbW9kZS5lbnVtJztcclxuaW1wb3J0IHtTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXIuY29tcG9uZW50LmludGVyZmFjZVwiO1xyXG5pbXBvcnQge1VzZXJSaWdodFR5cGV9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3VzZXItcmlnaHQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXItY29tcG9uZW50LWludGVyZmFjZS1uYW1lJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWZpbHRlci1pdGVtXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWhlYWRlclwiPlxyXG4gICAgICAgICAgPGNvLWNvbGxhcHNpYmxlXHJcbiAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgIFtleHBhbmRCdXR0b25MYXN0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50RG93bilcIlxyXG4gICAgICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0J1dHRvbl09XCJzaG93QnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgW2J1dHRvblRleHRdPVwiZmlsdGVyQnV0dG9uTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrZWQoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNvbGxhcHNhYmxlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWN1c3RvbS1jb250ZW50XCIgKm5nSWY9XCJjdXN0b21Db250ZW50OyBlbHNlIGNvbGxlY3Rpb25Db250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJzaG93QnV0dG9uPXRydWVcIiAobW91c2Vkb3duKT1cInNob3dCdXR0b249dHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb2xsZWN0aW9uQ29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1jb2xsZWN0aW9uLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLkZpbHRlcmxpc3QgfHwgbW9kZSA9PT0gbW9kZXMuU2luZ2xlU2VsZWN0TGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbW9kZSA9PT0gbW9kZXMuU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQgfHwgbW9kZSA9PT0gbW9kZXMuU2VsZWN0TGlzdFdpdGhTdHJpbmdDb2xsZWN0aW9uT3V0cHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sbGVjdGlvbj8ubGVuZ3RoID4gMTAgfHwgbWluU2VhcmNoQ2hhcnNUb0xvYWRDb2xsZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZmlsdGVyVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiYXBwbHlGaWx0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vLXJlc3VsdHNcIiAqbmdJZj1cImZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJub1Jlc3VsdHNMYWJlbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY29sbGVjdGlvbi1yZXN1bHRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkQ29sbGVjdGlvbjsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1jb2xsZWN0aW9uLXJlc3VsdC1pdGVtXCIgKm5nSWY9XCJpbmRleCA8IGxpbWl0VG8gfHwgc2hvd0FsbFJlc3VsdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggKm5nSWY9XCJtb2RlICE9PSBtb2Rlcy5TaW5nbGVTZWxlY3RMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJvcHRpb24uY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGlja2FibGVMYWJlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVNb2RlbENoYW5nZShvcHRpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuU2luZ2xlU2VsZWN0TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwib3B0aW9uLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJvcHRpb24uY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tYW1vdW50XCIgKm5nSWY9XCJvcHRpb24uY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIm9wdGlvbi5jb3VudC50b1N0cmluZygpIHwgYXBwZW5kOiAnKScgfCBwcmVwZW5kOiAnICAgICAgKCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1zaG93LW1vcmUtb3ItbGVzc1wiICpuZ0lmPVwiIXNob3dBbGxSZXN1bHRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItc2hvdy1tb3JlIGNsaWNrYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtb3JlVG9TaG93KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJpbmNyZWFzZUxpbWl0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50RG93bilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNob3dNb3JlTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLXNob3ctbGVzcyBjbGlja2FibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGVzc1RvU2hvdygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2V0VG9Jbml0aWFsTGltaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRVcClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNob3dMZXNzTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tc2xpZGVyLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlNsaWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci1mcm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZVBsdXNNaW51c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRlJPTScgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uoc2xpZGVyTWluKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbGlkZXItdG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlUGx1c01pbnVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidUTycgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uoc2xpZGVyTWF4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLXNsaWRlci1jb250ZW50XCIgKm5nSWY9XCJtb2RlID09PSBtb2Rlcy5OdWxsYWJsZVNsaWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci1mcm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZVBsdXNNaW51c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRlJPTScgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uoc2xpZGVyTWluKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbGlkZXItdG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlUGx1c01pbnVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidUTycgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uoc2xpZGVyTWF4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNoZWNrYm94LWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLkNoZWNrYm94IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJwbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1jaGVja2JveC1jb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtb2RlID09PSBtb2Rlcy5DaGVja2JveFRvVGV4dCB8fCBtb2RlID09PSBtb2Rlcy5DaGVja2JveFRvU2ltcGxlVGV4dCB8fCBtb2RlID09PSBtb2Rlcy5DaGVja2JveFRvQmluYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJjaGVja0JveFRvVGV4dE1vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGxhY2Vob2xkZXJcIj48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tdGV4dGZpZWxkLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlRleHRGaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWRhdGVGaWVsZC1jb250ZW50XCIgKm5nSWY9XCJtb2RlID09PSBtb2Rlcy5EYXRlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWxcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1kYXRlRmllbGQtY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuRGF0ZVJhbmdlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZS1yYW5nZSBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cIltkYXRlUmFuZ2VTdGFydCwgZGF0ZVJhbmdlRW5kXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFTEVDVF9EQVRFJyB8IGNvcmVMb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtZGF0ZS1yYW5nZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbHRlckl0ZW1Db21wb25lbnQpXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnQge1xyXG4gIHB1YmxpYyBpY29uczogdHlwZW9mIENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbjtcclxuICBwdWJsaWMgbW9kZXM6IHR5cGVvZiBGaWx0ZXJJdGVtTW9kZSA9IEZpbHRlckl0ZW1Nb2RlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbW9kZSh2YWx1ZTogRmlsdGVySXRlbU1vZGUpIHtcclxuICAgIHRoaXMuX21vZGUgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVhZE1vZGVsRm9yTW9kZSh0aGlzLl9tb2RlbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1vZGUoKTogRmlsdGVySXRlbU1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29sbGVjdGlvbih2YWx1ZTogRmlsdGVySXRlbVZpZXdtb2RlbFtdKSB7XHJcbiAgICB0aGlzLl9jb2xsZWN0aW9uID0gdmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbiA9IHRoaXMuX2NvbGxlY3Rpb24/LnNsaWNlKCk7XHJcbiAgICAvL3Jlc2V0IHRoZSBtb2RlbCBpbiBjYXNlIHRoZXJlIHdhcyBubyBjb2xsZWN0aW9uIHRvIHNldCBpdHMgdmFsdWVzIG9uIHdoZW4gaXQgd2FzIHNldC5cclxuICAgIHRoaXMubW9kZWwgPSB0aGlzLl9tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sbGVjdGlvbigpOiBGaWx0ZXJJdGVtVmlld21vZGVsW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpbml0aWFsTGltaXQ6IG51bWJlciA9IDEwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtaW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb246IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29sbGVjdGlvbkxvYWRGbjogRnVuY3Rpb247XHJcblxyXG4gIC8vIFNldCB0byBmYWxzZSB0byB1c2UgZmlsdGVyIGl0ZW0gd2l0aCBhIG11bHRpIHNlbGVjdGFibGUgY29sbGVjdGlvbi4gU2V0IHRvIHRydWUgdG8gc3BlY2lmeSBjdXN0b20gY29udGVudFxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gU2V0IHRvIHRydWUgdG8gc2hvdyBhbGwgcmVzdWx0cy4gU2V0IHRvIGZhbHNlIHRvIGdldCAnc2hvdyBtb3JlJyBhbmQgJ3Nob3cgbGVzcycgYnV0dG9ucyB0byBleHBhbmQgYW5kIGNvbnRyYWN0LlxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dBbGxSZXN1bHRzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZpbHRlckJ1dHRvbkxhYmVsOiBzdHJpbmcgPSBcIlNlYXJjaFwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlYXJjaC4uLic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dNb3JlTGFiZWw6IHN0cmluZyA9ICdTaG93IG1vcmUnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93TGVzc0xhYmVsOiBzdHJpbmcgPSAnU2hvdyBsZXNzJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbm9SZXN1bHRzTGFiZWw6IHN0cmluZyA9IFwiTm8gcmVzdWx0c1wiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzbGlkZXJEZWZhdWx0TWluOiBudW1iZXIgPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzbGlkZXJEZWZhdWx0TWF4OiBudW1iZXIgPSAxMDAwMDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZ1bGxSYW5nZUlzTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbW9kZWwobmV3TW9kZWw6IGFueSkge1xyXG4gICAgdGhpcy5yZWFkTW9kZWxGb3JNb2RlKG5ld01vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbW9kZWwoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgY29uZmlnT2JqZWN0KHZhbHVlOiBPYmplY3RDb25maWd1cmF0aW9uKSB7XHJcbiAgICB0aGlzLl9jb25maWdPYmplY3QgPSB2YWx1ZTtcclxuICAgIHRoaXMuZXhwYW5kZWQgPSAodGhpcy5fY29uZmlnT2JqZWN0LnJpZ2h0cyA9PT0gVXNlclJpZ2h0VHlwZS5SZWFkV3JpdGUpO1xyXG4gICAgdGhpcy5oaWRkZW4gPSAodGhpcy5fY29uZmlnT2JqZWN0LnJpZ2h0cyA8IFVzZXJSaWdodFR5cGUuUmVhZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbmZpZ09iamVjdCgpOiBPYmplY3RDb25maWd1cmF0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25maWdPYmplY3Q7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsdGVySXRlbVZpZXdtb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVySXRlbVZpZXdtb2RlbFtdPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZmlsdGVyQnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1maWx0ZXItaXRlbVwiKVxyXG5cclxuICBwdWJsaWMgZmlsdGVyZWRDb2xsZWN0aW9uOiBGaWx0ZXJJdGVtVmlld21vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgbGltaXRUbzogbnVtYmVyID0gMTA7XHJcbiAgcHVibGljIGZpbHRlclRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHNob3dCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9tb2RlbHMgZm9yIHRoZSBzbGlkZXIgZmllbGQgaW5wdXRzXHJcbiAgcHVibGljIHNsaWRlck1pbjogbnVtYmVyO1xyXG4gIHB1YmxpYyBzbGlkZXJNYXg6IG51bWJlcjtcclxuXHJcbiAgLy9tb2RlbHMgZm9yIHRoIGRhdGVyYW5nZSBpbnB1dFxyXG4gIHB1YmxpYyBkYXRlUmFuZ2VTdGFydDogRGF0ZTtcclxuICBwdWJsaWMgZGF0ZVJhbmdlRW5kOiBEYXRlO1xyXG5cclxuICAvL3NjcmVlbkNvbmZpZ1xyXG4gIHB1YmxpYyBvYmplY3RDb25maWdOYW1lOiBzdHJpbmc7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1oaWRkZW4nKVxyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBmb3JjZVJlYWRvbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcclxuICBwdWJsaWMgbWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgcHVibGljIGRlY2ltYWxzOiBudW1iZXI7XHJcbiAgcHVibGljIHJlZEVycm9yQmFja2dyb3VuZDogYm9vbGVhbjtcclxuXHJcbiAgLy9tb2RlbCBmb3IgdGhlIHRleHRib3ggb3B0aW9ucyB0aGF0IG5lZWQgYSBjb252ZXJ0ZWQgb3V0cHV0XHJcbiAgcHVibGljIGNoZWNrQm94VG9UZXh0TW9kZWw6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgX2NvbmZpZ09iamVjdDogT2JqZWN0Q29uZmlndXJhdGlvbjtcclxuICBwcml2YXRlIF9jb2xsZWN0aW9uOiBGaWx0ZXJJdGVtVmlld21vZGVsW10gPSBbXTtcclxuICBwcml2YXRlIF9tb2RlOiBGaWx0ZXJJdGVtTW9kZSA9IHRoaXMubW9kZXMuRmlsdGVybGlzdDtcclxuICBwcml2YXRlIF9tb2RlbDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFRvSW5pdGlhbExpbWl0KCk7XHJcbiAgICB0aGlzLnNob3dCdXR0b24gPSB0aGlzLnZhbHVlU2VsZWN0ZWQoKTtcclxuICAgIGlmKHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUb0luaXRpYWxMaW1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGltaXRUbyA9IHRoaXMuaW5pdGlhbExpbWl0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluY3JlYXNlTGltaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpbWl0VG8gKz0gMTA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW9yZVRvU2hvdygpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnNob3dBbGxSZXN1bHRzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoID4gdGhpcy5saW1pdFRvO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxlc3NUb1Nob3coKSB7XHJcbiAgICBpZiAodGhpcy5zaG93QWxsUmVzdWx0cykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZENvbGxlY3Rpb24/Lmxlbmd0aCA8PSB0aGlzLmxpbWl0VG8gJiYgdGhpcy5maWx0ZXJlZENvbGxlY3Rpb24/Lmxlbmd0aCA+IHRoaXMuaW5pdGlhbExpbWl0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU1vZGVsQ2hhbmdlKG1vZGVsOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5GaWx0ZXJsaXN0OlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgbW9kZWwuY2hlY2tlZCA9ICFtb2RlbC5jaGVja2VkO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yRmlsdGVyTGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2VsZWN0TGlzdFdpdGhTdHJpbmdDb2xsZWN0aW9uT3V0cHV0OlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgbW9kZWwuY2hlY2tlZCA9ICFtb2RlbC5jaGVja2VkO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yU3RyaW5nQ29sbGVjdGlvbkxpc3QoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLlNpbmdsZVNlbGVjdExpc3Q6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnVuY2hlY2tGb3JTaW5nbGVTZWxlY3QobW9kZWwpO1xyXG4gICAgICAgIG1vZGVsLmNoZWNrZWQgPSAhbW9kZWwuY2hlY2tlZDtcclxuICAgICAgICB0aGlzLl9jcmVhdGVNb2RlbEZvclNpbmdsZVNlbGVjdExpc3QoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLlNlbGVjdExpc3RXaXRoTnVtYmVyT3V0cHV0OlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgbW9kZWwuY2hlY2tlZCA9ICFtb2RlbC5jaGVja2VkO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLlNsaWRlcjpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yU2xpZGVyTW9kZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuTnVsbGFibGVTbGlkZXI6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVNb2RlbEZvck51bGxhYmxlU2xpZGVyTW9kZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb1RleHQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVNb2RlbEZvckNoZWNrYm94VG9UZXh0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5DaGVja2JveFRvU2ltcGxlVGV4dDpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb1NpbXBsZVRleHQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9CaW5hcnk6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVNb2RlbEZvckNoZWNrYm94VG9CaW5hcnkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkRhdGVSYW5nZUZpZWxkOlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JEYXRlUmFuZ2UobW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuVGV4dEZpZWxkOlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fbW9kZWwgPSAodHlwZW9mIHRoaXMuX21vZGVsID09PSAnc3RyaW5nJyAmJiB0aGlzLl9tb2RlbC5sZW5ndGggPT09IDApID8gdW5kZWZpbmVkIDogdGhpcy5fbW9kZWw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5fbW9kZWwpO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5jb2xsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWx1ZVNlbGVjdGVkKCkge1xyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbikge1xyXG4gICAgICByZXR1cm4gISF0aGlzLmNvbGxlY3Rpb24uZmluZChjID0+IGMuY2hlY2tlZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBsaWVzIGZpbHRlciB0byB0aGUgY29sbGVjdGlvbi5cclxuICBwdWJsaWMgYXN5bmMgYXBwbHlGaWx0ZXIodGV4dDogc3RyaW5nKTogUHJvbWlzZTxbXT4ge1xyXG4gICAgaWYgKCFpc05hTih0aGlzLm1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbikgJiYgdGhpcy5jb2xsZWN0aW9uTG9hZEZuKSB7XHJcbiAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9PT0gdGhpcy5taW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb24gJiYgdGV4dC5sZW5ndGggPiB0aGlzLmZpbHRlclRleHQubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uTG9hZEZuKHRleHQpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRleHQubGVuZ3RoIDwgdGhpcy5taW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb24pIHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZmlsdGVyVGV4dCA9IHRleHQ7XHJcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsdGVyVGV4dDogc3RyaW5nID0gdGhpcy5maWx0ZXJUZXh0Py50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgZmlsdGVyZWRJdGVtQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgICB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbiA9IHRoaXMuY29sbGVjdGlvbj8uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxhYmVsVGV4dDogc3RyaW5nID0gaXRlbS5kZXNjcmlwdGlvbj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBjb25zdCBpc0hpZGRlbkJ5RmlsdGVyOiBib29sZWFuID0gKGxhYmVsVGV4dD8uaW5kZXhPZihmaWx0ZXJUZXh0KSA9PT0gLTEpO1xyXG4gICAgICBpZiAoaXNIaWRkZW5CeUZpbHRlcikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmaWx0ZXJlZEl0ZW1Db3VudCsrO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlckJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1bmNoZWNrRm9yU2luZ2xlU2VsZWN0KG1vZGVsOiBGaWx0ZXJJdGVtVmlld21vZGVsKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaChtID0+IHtcclxuICAgICAgaWYgKG0uY29kZSAhPT0gbW9kZWwuY29kZSAmJiBtLmRlc2NyaXB0aW9uICE9PSBtb2RlbC5kZXNjcmlwdGlvbikge1xyXG4gICAgICAgIG0uY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZE1vZGVsRm9yTW9kZShuZXdNb2RlbDogYW55KTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuRmlsdGVybGlzdDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JGaWx0ZXJMaXN0KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLlNpbmdsZVNlbGVjdExpc3Q6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yU2luZ2xlU2VsZWN0TGlzdChuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yU3RyaW5nQ29sbGVjdGlvbkxpc3QobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2xpZGVyOlxyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuTnVsbGFibGVTbGlkZXI6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yU2xpZGVyTW9kZShuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5DaGVja2JveFRvVGV4dDpcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9TaW1wbGVUZXh0OlxyXG4gICAgICAgIHRoaXMuX3JlYWRNb2RlbEZvckNoZWNrYm94VG9UZXh0KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9CaW5hcnk6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeShuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5EYXRlRmllbGQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yRGF0ZUZpZWxkKG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkRhdGVSYW5nZUZpZWxkOlxyXG4gICAgICAgIHRoaXMuX3JlYWRNb2RlbEZvckRhdGVSYW5nZUZpZWxkKG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9tb2RlbCA9IG5ld01vZGVsO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgLy9Nb2RlbCBjcmVhdGlvbiBmb3IgYWxsIG9mIHRoZSBkaWZmZXJlbnQgb3B0aW9ucyBhdmFpbGFibGUvL1xyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvckZpbHRlckxpc3QoKTogdm9pZCB7XHJcbiAgICBsZXQgZmlsdGVyUmFuZ2U6IHN0cmluZ1tdID0gW107XHJcbiAgICBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSBudWxsICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKCh2aWV3TW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpID0+IHtcclxuICAgICAgICBpZiAodmlld01vZGVsLmNoZWNrZWQpIHtcclxuICAgICAgICAgIGZpbHRlclJhbmdlLnB1c2goYD89JyR7dmlld01vZGVsLmNvZGV9J2ApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChmaWx0ZXJSYW5nZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBmaWx0ZXJSYW5nZS5qb2luKCcsJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fbW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yU3RyaW5nQ29sbGVjdGlvbkxpc3QoKTogdm9pZCB7XHJcbiAgICBsZXQgZmlsdGVyUmFuZ2U6IHN0cmluZ1tdID0gW107XHJcbiAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaCgodmlld01vZGVsOiBGaWx0ZXJJdGVtVmlld21vZGVsKSA9PiB7XHJcbiAgICAgIGlmICh2aWV3TW9kZWwuY2hlY2tlZCkge1xyXG4gICAgICAgIGZpbHRlclJhbmdlLnB1c2godmlld01vZGVsLmNvZGUudG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGZpbHRlclJhbmdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBmaWx0ZXJSYW5nZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTaW5nbGVTZWxlY3RMaXN0KCk6IHZvaWQge1xyXG4gICAgbGV0IGZpbHRlclN0cmluZzogc3RyaW5nID0gXCJcIjtcclxuICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKCh2aWV3TW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpID0+IHtcclxuICAgICAgaWYgKHZpZXdNb2RlbC5jaGVja2VkKSB7XHJcbiAgICAgICAgZmlsdGVyU3RyaW5nID0gdmlld01vZGVsLmNvZGUudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoZmlsdGVyU3RyaW5nLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBmaWx0ZXJTdHJpbmc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQoKTogdm9pZCB7XHJcbiAgICBsZXQgZmlsdGVyTnVtYmVyOiBudW1iZXIgPSBudWxsO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICBpZiAodmlld01vZGVsLmNoZWNrZWQpIHtcclxuICAgICAgICBpZiAoZmlsdGVyTnVtYmVyID09IG51bGwpIHtcclxuICAgICAgICAgIGZpbHRlck51bWJlciA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbHRlck51bWJlciArPSBOdW1iZXIodmlld01vZGVsLmNvZGUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21vZGVsID0gZmlsdGVyTnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTbGlkZXJNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zbGlkZXJNaW4gPSAhIXRoaXMuc2xpZGVyTWluID8gdGhpcy5zbGlkZXJNaW4gOiB0aGlzLnNsaWRlckRlZmF1bHRNaW47XHJcbiAgICB0aGlzLnNsaWRlck1heCA9ICEhdGhpcy5zbGlkZXJNYXggPyB0aGlzLnNsaWRlck1heCA6IHRoaXMuc2xpZGVyRGVmYXVsdE1heDtcclxuXHJcbiAgICBsZXQgdHJ1ZUxvd2VyQm91bmQgPSBNYXRoLm1pbih0aGlzLnNsaWRlck1pbiwgdGhpcy5zbGlkZXJNYXgpO1xyXG4gICAgbGV0IHRydWVVcHBlckJvdW5kID0gTWF0aC5tYXgodGhpcy5zbGlkZXJNaW4sIHRoaXMuc2xpZGVyTWF4KTtcclxuXHJcbiAgICB0aGlzLnNsaWRlck1pbiA9IHRydWVMb3dlckJvdW5kO1xyXG4gICAgdGhpcy5zbGlkZXJNYXggPSB0cnVlVXBwZXJCb3VuZDtcclxuICAgIHRoaXMuX21vZGVsID0gYCR7dHJ1ZUxvd2VyQm91bmR9IC0gJHt0cnVlVXBwZXJCb3VuZH1gO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yTnVsbGFibGVTbGlkZXJNb2RlKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLnNsaWRlck1pbiAmJiB0aGlzLnNsaWRlck1heCkge1xyXG4gICAgICBsZXQgdHJ1ZUxvd2VyQm91bmQgPSBNYXRoLm1pbih0aGlzLnNsaWRlck1pbiwgdGhpcy5zbGlkZXJNYXgpO1xyXG4gICAgICBsZXQgdHJ1ZVVwcGVyQm91bmQgPSBNYXRoLm1heCh0aGlzLnNsaWRlck1pbiwgdGhpcy5zbGlkZXJNYXgpO1xyXG5cclxuICAgICAgdGhpcy5fbW9kZWwgPSBgJHt0cnVlTG93ZXJCb3VuZH0gLSAke3RydWVVcHBlckJvdW5kfWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvckNoZWNrYm94VG9UZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IFwiPz0nSidcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gXCI/PSdOJ1wiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JDaGVja2JveFRvU2ltcGxlVGV4dCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwpIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBcIkpcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gXCJOXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvckNoZWNrYm94VG9CaW5hcnkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGVja0JveFRvVGV4dE1vZGVsKSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yRGF0ZVJhbmdlKGRhdGVzOiBEYXRlW10pOiB2b2lkIHtcclxuICAgIGlmIChkYXRlcykge1xyXG4gICAgICBsZXQgc3RhcnREYXRlID0gZGF0ZXNbMF07XHJcbiAgICAgIGxldCBlbmREYXRlID0gZGF0ZXNbMV07XHJcblxyXG4gICAgICBjb25zdCBzdGFydERhdGVSZXF1ZXN0ID0gc3RhcnREYXRlID8gdGhpcy5fZm9ybWF0RGF0ZVRvU3RyaW5nKHN0YXJ0RGF0ZSkgOiAnJztcclxuICAgICAgY29uc3QgZW5kRGF0ZVJlcXVlc3QgPSBlbmREYXRlID8gdGhpcy5fZm9ybWF0RGF0ZVRvU3RyaW5nKGVuZERhdGUpIDogJyc7XHJcblxyXG4gICAgICB0aGlzLl9tb2RlbCA9IGA/Pj1cXCcke3N0YXJ0RGF0ZVJlcXVlc3R9XFwnJiA/PD1cXCcke2VuZERhdGVSZXF1ZXN0fVxcJ2A7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9mb3JtYXREYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgbGV0IG1vbnRoID0gKGRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGxldCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgIHJldHVybiBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gO1xyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgLy9Nb2RlbCByZWFkaW5nIGZvciBhbGwgb2YgdGhlIGRpZmZlcmVudCBvcHRpb25zIGF2YWlsYWJsZS8vXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yRmlsdGVyTGlzdChmaWx0ZXJNb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZmlsdGVyTGlzdDogc3RyaW5nW10gPSBbXTtcclxuICAgIGxldCBpdGVtc1RvQ2hlY2s6IHN0cmluZ1tdID0gW107XHJcbiAgICB0aGlzLl91bmNoZWNrQWxsKCk7XHJcbiAgICB0aGlzLl9tb2RlbCA9IGZpbHRlck1vZGVsO1xyXG5cclxuICAgIGlmIChmaWx0ZXJNb2RlbCAhPT0gbnVsbCAmJiBmaWx0ZXJNb2RlbCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBmaWx0ZXJNb2RlbCA9PT0gJ3N0cmluZycgJiYgZmlsdGVyTW9kZWwubGVuZ3RoICE9IDAgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZpbHRlckxpc3QgPSBmaWx0ZXJNb2RlbC5zcGxpdChcIixcIilcclxuICAgICAgZmlsdGVyTGlzdC5mb3JFYWNoKChmaWx0ZXI6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGl0ZW1zVG9DaGVjay5wdXNoKGZpbHRlci5zdWJzdHIoMywgZmlsdGVyLmxlbmd0aCAtIDQpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXNUb0NoZWNrKSB7XHJcbiAgICAgICAgbGV0IGZpbHRlciA9IHRoaXMuY29sbGVjdGlvbi5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5jb2RlLnRvU3RyaW5nKCkgPT09IGl0ZW0pO1xyXG4gICAgICAgIGlmIChmaWx0ZXIgIT09IG51bGwgJiYgZmlsdGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGZpbHRlci5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fbW9kZWwgPSBmaWx0ZXJNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JTaW5nbGVTZWxlY3RMaXN0KHNpbmdsZVNlbGVjdE1vZGVsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gc2luZ2xlU2VsZWN0TW9kZWw7XHJcblxyXG4gICAgaWYgKHNpbmdsZVNlbGVjdE1vZGVsICE9PSBudWxsICYmIHNpbmdsZVNlbGVjdE1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBmaWx0ZXIgPSB0aGlzLmNvbGxlY3Rpb24uZmluZChlbGVtZW50ID0+IGVsZW1lbnQuY29kZS50b1N0cmluZygpID09PSBzaW5nbGVTZWxlY3RNb2RlbCk7XHJcbiAgICAgIGlmIChmaWx0ZXIgIT09IG51bGwgJiYgZmlsdGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBmaWx0ZXIuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvclN0cmluZ0NvbGxlY3Rpb25MaXN0KGNvbGxlY3Rpb25Nb2RlbDogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gY29sbGVjdGlvbk1vZGVsO1xyXG5cclxuICAgIGlmIChjb2xsZWN0aW9uTW9kZWwgIT09IG51bGwgJiYgY29sbGVjdGlvbk1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKCh2aWV3TW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpID0+IHtcclxuICAgICAgICBpZiAoY29sbGVjdGlvbk1vZGVsLmluZGV4T2Yodmlld01vZGVsLmNvZGUudG9TdHJpbmcoKSkgPiAtMSkge1xyXG4gICAgICAgICAgdmlld01vZGVsLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2aWV3TW9kZWwuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dChudW1iZXJNb2RlbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl91bmNoZWNrQWxsKCk7XHJcbiAgICB0aGlzLl9tb2RlbCA9IG51bWJlck1vZGVsO1xyXG5cclxuICAgIGlmIChudW1iZXJNb2RlbCAhPT0gbnVsbCAmJiBudW1iZXJNb2RlbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gbnVsbCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbUNvZGU6IG51bWJlciA9IGl0ZW0uY29kZSBhcyBudW1iZXI7XHJcbiAgICAgICAgY29uc3QgbW9kVmFsdWUgPSAobnVtYmVyTW9kZWwgJSAoMiAqIGl0ZW1Db2RlKSk7XHJcbiAgICAgICAgaXRlbS5jaGVja2VkID0gKG1vZFZhbHVlID49IGl0ZW1Db2RlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdW5jaGVja0FsbCgpIHtcclxuICAgIGlmICh0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2gobSA9PiB7XHJcbiAgICAgICAgbS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yU2xpZGVyTW9kZShzbGlkZXJNb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHNsaWRlck1vZGVsO1xyXG4gICAgaWYgKHNsaWRlck1vZGVsICE9PSB1bmRlZmluZWQgJiYgc2xpZGVyTW9kZWwgIT09IG51bGwpIHtcclxuICAgICAgbGV0IHNsaWRlcklucHV0Q29sbGVjdGlvbiA9IHNsaWRlck1vZGVsLnNwbGl0KCcgLSAnKTtcclxuICAgICAgdGhpcy5zbGlkZXJNaW4gPSBwYXJzZUludChzbGlkZXJJbnB1dENvbGxlY3Rpb25bMF0pO1xyXG4gICAgICB0aGlzLnNsaWRlck1heCA9IHBhcnNlSW50KHNsaWRlcklucHV0Q29sbGVjdGlvblsxXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNsaWRlck1pbiA9IHRoaXMuc2xpZGVyRGVmYXVsdE1pbjtcclxuICAgICAgdGhpcy5zbGlkZXJNYXggPSB0aGlzLnNsaWRlckRlZmF1bHRNYXg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JDaGVja2JveFRvVGV4dChjaGVja2JveFRvVGV4dE1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gY2hlY2tib3hUb1RleHRNb2RlbDtcclxuICAgIGlmIChjaGVja2JveFRvVGV4dE1vZGVsICE9PSB1bmRlZmluZWQgJiYgY2hlY2tib3hUb1RleHRNb2RlbCAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwgPSAoY2hlY2tib3hUb1RleHRNb2RlbC5pbmRleE9mKCdKJykgPiAtMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvckNoZWNrYm94VG9CaW5hcnkoY2hlY2tib3hUb0JpbmFyeTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IGNoZWNrYm94VG9CaW5hcnk7XHJcbiAgICBpZiAoY2hlY2tib3hUb0JpbmFyeSAhPT0gdW5kZWZpbmVkICYmIGNoZWNrYm94VG9CaW5hcnkgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jaGVja0JveFRvVGV4dE1vZGVsID0gKGNoZWNrYm94VG9CaW5hcnkgPj0gMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvckRhdGVGaWVsZChkYXRlRmllbGRNb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IGRhdGVGaWVsZE1vZGVsO1xyXG4gICAgaWYgKGRhdGVGaWVsZE1vZGVsICE9PSB1bmRlZmluZWQgJiYgZGF0ZUZpZWxkTW9kZWwgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBuZXcgRGF0ZShkYXRlRmllbGRNb2RlbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvckRhdGVSYW5nZUZpZWxkKGRhdGVSYW5nZUZpZWxkTW9kZWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbW9kZWwgPSBkYXRlUmFuZ2VGaWVsZE1vZGVsO1xyXG4gICAgaWYgKGRhdGVSYW5nZUZpZWxkTW9kZWwgIT09IHVuZGVmaW5lZCAmJiBkYXRlUmFuZ2VGaWVsZE1vZGVsICE9PSBudWxsKSB7XHJcbiAgICAgIGxldCBkYXRlQ29sbGVjdGlvbiA9IGRhdGVSYW5nZUZpZWxkTW9kZWwuc3BsaXQoJyYnKTtcclxuXHJcbiAgICAgIGxldCBzdGFydFN0cmluZyA9IGRhdGVDb2xsZWN0aW9uWzBdLnRyaW0oKS5zdWJzdHIoNCwgZGF0ZUNvbGxlY3Rpb25bMF0ubGVuZ3RoIC0gNSk7XHJcbiAgICAgIGxldCBlbmRTdHJpbmcgPSBkYXRlQ29sbGVjdGlvblsxXS50cmltKCkuc3Vic3RyKDQsIGRhdGVDb2xsZWN0aW9uWzFdLmxlbmd0aCAtIDUpO1xyXG5cclxuICAgICAgbGV0IHN0YXJ0RGF0ZUNvbXBvbmVudHMgPSBzdGFydFN0cmluZy5zcGxpdCgnLScpO1xyXG4gICAgICBsZXQgZW5kRGF0ZUNvbXBvbmVudHMgPSBlbmRTdHJpbmcuc3BsaXQoJy0nKTtcclxuXHJcbiAgICAgIHRoaXMuZGF0ZVJhbmdlU3RhcnQgPSBuZXcgRGF0ZShwYXJzZUludChzdGFydERhdGVDb21wb25lbnRzWzJdKSwgcGFyc2VJbnQoc3RhcnREYXRlQ29tcG9uZW50c1sxXSkgLSAxLCBwYXJzZUludChzdGFydERhdGVDb21wb25lbnRzWzBdKSk7XHJcbiAgICAgIHRoaXMuZGF0ZVJhbmdlRW5kID0gbmV3IERhdGUocGFyc2VJbnQoZW5kRGF0ZUNvbXBvbmVudHNbMl0pLCBwYXJzZUludChlbmREYXRlQ29tcG9uZW50c1sxXSkgLSAxLCBwYXJzZUludChlbmREYXRlQ29tcG9uZW50c1swXSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRlUmFuZ2VTdGFydCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5kYXRlUmFuZ2VFbmQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
670
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1pdGVtL2ZpbHRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQ3JDLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seURBQXlELENBQUM7QUFFdEYsT0FBTyxFQUFDLDhDQUE4QyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUEySy9ILE1BQU0sT0FBTyxtQkFBbUI7SUF3STlCLFlBQW1CLFdBQTZCLEVBQzVCLGVBQWtDO1FBRG5DLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUF4SS9DLFVBQUssR0FBOEIsa0JBQWtCLENBQUM7UUFDdEQsVUFBSyxHQUEwQixjQUFjLENBQUM7UUE0QjlDLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFRakMsNEdBQTRHO1FBRXJHLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRXRDLG1IQUFtSDtRQUU1RyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUdoQyxzQkFBaUIsR0FBVyxRQUFRLENBQUM7UUFHckMsc0JBQWlCLEdBQVcsV0FBVyxDQUFDO1FBR3hDLGtCQUFhLEdBQVcsV0FBVyxDQUFDO1FBR3BDLGtCQUFhLEdBQVcsV0FBVyxDQUFDO1FBR3BDLG1CQUFjLEdBQVcsWUFBWSxDQUFDO1FBR3RDLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUc3QixxQkFBZ0IsR0FBVyxNQUFNLENBQUM7UUFHbEMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFzQmpDLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHekQscUJBQWdCLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO1FBR2xHLHdCQUFtQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBSW5FLHVCQUFrQixHQUEwQixFQUFFLENBQUM7UUFDL0MsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUEwQjNCLGdCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUN4QyxVQUFLLEdBQW1CLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBS3RELENBQUM7SUF0SUQsSUFDVyxJQUFJLENBQUMsS0FBcUI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUNXLFVBQVUsQ0FBQyxLQUE0Qjs7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsS0FBSyxFQUFFLENBQUM7UUFDcEQsdUZBQXVGO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBaURELElBQ1csS0FBSyxDQUFDLFFBQWE7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsWUFBWSxDQUFDLEtBQTBCO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBa0RNLFFBQVE7UUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFHLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLElBQUksRUFBRTtZQUM5RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLFVBQVU7O1FBQ2YsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQUEsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sSUFBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hELENBQUM7SUFFTSxVQUFVOztRQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxNQUFNLEtBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxNQUFNLElBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNoSCxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBVTtRQUNqQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDL0IsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsb0NBQW9DO2dCQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO2dCQUMzQyxNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO2dCQUN2QyxNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQjtnQkFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUMvQixJQUFJLENBQUMseUNBQXlDLEVBQUUsQ0FBQztnQkFDakQsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYztnQkFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO2dCQUN6QyxNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztnQkFDckMsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0I7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsbUNBQW1DLEVBQUUsQ0FBQztnQkFDM0MsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztnQkFDdkMsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO2dCQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQyxNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUN0RyxNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsb0NBQW9DO0lBQ3ZCLFdBQVcsQ0FBQyxJQUFZOzs7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsOEJBQThCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtvQkFDL0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDckQ7cUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtvQkFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7aUJBQzdCO2FBQ0Y7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUVELE1BQU0sVUFBVSxHQUFXLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQ3JFLElBQUksaUJBQWlCLEdBQVcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFOztnQkFDekQsTUFBTSxTQUFTLEdBQVcsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7Z0JBQ3JFLE1BQU0sZ0JBQWdCLEdBQVksQ0FBQyxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUUsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDcEIsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7cUJBQU07b0JBQ0wsaUJBQWlCLEVBQUUsQ0FBQztvQkFDcEIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7WUFDSCxDQUFDLENBQUMsQ0FBQzs7S0FDSjtJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUEwQjtRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hFLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsUUFBYTtRQUNwQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7Z0JBQ3hCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQzlCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0MsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0M7Z0JBQ2xELElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakQsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEI7Z0JBQ3hDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkQsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdkIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7Z0JBQzVCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDL0IsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQjtnQkFDbEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtnQkFDOUIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEMsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO2dCQUM1QixJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsNkRBQTZEO0lBQzdELDZEQUE2RDtJQUNyRCx5QkFBeUI7UUFDL0IsSUFBSSxXQUFXLEdBQWEsRUFBRSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUE4QixFQUFFLEVBQUU7Z0JBQ3pELElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRTtvQkFDckIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2lCQUMzQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3JDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO2FBQ3pCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sbUNBQW1DO1FBQ3pDLElBQUksV0FBVyxHQUFhLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQThCLEVBQUUsRUFBRTtZQUN6RCxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JCLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzdDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTywrQkFBK0I7UUFDckMsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBOEIsRUFBRSxFQUFFO1lBQ3pELElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRTtnQkFDckIsWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDMUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7U0FDNUI7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLHlDQUF5QztRQUMvQyxJQUFJLFlBQVksR0FBVyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUE4QixFQUFFLEVBQUU7WUFDekQsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFO2dCQUNyQixJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUU7b0JBQ3hCLFlBQVksR0FBRyxDQUFDLENBQUM7aUJBQ2xCO2dCQUNELFlBQVksSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRU8seUJBQXlCO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMzRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFM0UsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxjQUFjLE1BQU0sY0FBYyxFQUFFLENBQUM7SUFFeEQsQ0FBQztJQUVPLGlDQUFpQztRQUV2QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwQyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFOUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLGNBQWMsTUFBTSxjQUFjLEVBQUUsQ0FBQztTQUN2RDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRU8sNkJBQTZCO1FBQ25DLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFTyxtQ0FBbUM7UUFDekMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7U0FDbkI7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVPLCtCQUErQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNqQjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRU8sd0JBQXdCLENBQUMsS0FBYTtRQUM1QyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdkIsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlFLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLGdCQUFnQixZQUFZLGNBQWMsSUFBSSxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQVU7UUFDcEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFOUIsT0FBTyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELDREQUE0RDtJQUM1RCw0REFBNEQ7SUFDNUQsNERBQTREO0lBQ3BELHVCQUF1QixDQUFDLFdBQW1CO1FBQ2pELElBQUksVUFBVSxHQUFhLEVBQUUsQ0FBQztRQUM5QixJQUFJLFlBQVksR0FBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1FBRTFCLElBQUksV0FBVyxLQUFLLElBQUksSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNoTCxVQUFVLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7Z0JBQ3BDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1lBRUgsS0FBSyxNQUFNLElBQUksSUFBSSxZQUFZLEVBQUU7Z0JBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7b0JBQzNDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2lCQUN2QjthQUNGO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7U0FDM0I7SUFFSCxDQUFDO0lBRU8sNkJBQTZCLENBQUMsaUJBQXlCO1FBQzdELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDO1FBRWhDLElBQUksaUJBQWlCLEtBQUssSUFBSSxJQUFJLGlCQUFpQixLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUM5SCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssaUJBQWlCLENBQUMsQ0FBQztZQUM1RixJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDM0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDdkI7U0FDRjtJQUNILENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxlQUF5QjtRQUNqRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUM7UUFFOUIsSUFBSSxlQUFlLEtBQUssSUFBSSxJQUFJLGVBQWUsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDMUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUE4QixFQUFFLEVBQUU7Z0JBQ3pELElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQzNELFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2lCQUMxQjtxQkFBTTtvQkFDTCxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztpQkFDM0I7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVPLHVDQUF1QyxDQUFDLFdBQW1CO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztRQUUxQixJQUFJLFdBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNsSCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQyxJQUFjLENBQUM7Z0JBQzdDLE1BQU0sUUFBUSxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUM7YUFDdkM7U0FDRjtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzFCLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsV0FBbUI7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7UUFDMUIsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDckQsSUFBSSxxQkFBcUIsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsbUJBQTJCO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsSUFBSSxtQkFBbUIsS0FBSyxTQUFTLElBQUksbUJBQW1CLEtBQUssSUFBSSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVPLDZCQUE2QixDQUFDLGdCQUF3QjtRQUM1RCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDO1FBQy9CLElBQUksZ0JBQWdCLEtBQUssU0FBUyxJQUFJLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUMvRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztTQUNsQztJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxjQUFzQjtRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQztRQUM3QixJQUFJLGNBQWMsS0FBSyxTQUFTLElBQUksY0FBYyxLQUFLLElBQUksRUFBRTtZQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTywyQkFBMkIsQ0FBQyxtQkFBMkI7UUFDN0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQztRQUNsQyxJQUFJLG1CQUFtQixLQUFLLFNBQVMsSUFBSSxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7WUFDckUsSUFBSSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXBELElBQUksV0FBVyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkYsSUFBSSxTQUFTLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVqRixJQUFJLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsSUFBSSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTdDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsSTthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7U0FDL0I7SUFDSCxDQUFDOzs7WUEvdEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEpUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsU0FBUyxFQUFFLENBQUM7d0JBQ1IsT0FBTyxFQUFFLDhDQUE4Qzt3QkFDdkQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztxQkFDckQsQ0FBQzthQUNIOzs7WUEvS08sZ0JBQWdCO1lBVkcsaUJBQWlCOzs7bUJBOEx6QyxLQUFLO3lCQVVMLEtBQUs7MEJBWUwsS0FBSzsyQkFHTCxLQUFLO3VCQUdMLEtBQUs7NkNBR0wsS0FBSzsrQkFHTCxLQUFLOzRCQUlMLEtBQUs7NkJBSUwsS0FBSztnQ0FHTCxLQUFLO2dDQUdMLEtBQUs7NEJBR0wsS0FBSzs0QkFHTCxLQUFLOzZCQUdMLEtBQUs7K0JBR0wsS0FBSzsrQkFHTCxLQUFLOzhCQUdMLEtBQUs7b0JBR0wsS0FBSzswQkFtQkwsTUFBTTsrQkFHTixNQUFNO2tDQUdOLE1BQU07aUNBR04sV0FBVyxTQUFDLHNCQUFzQjtxQkFpQmxDLFdBQVcsU0FBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29ufSBmcm9tICcuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bSc7XHJcbmltcG9ydCB7RmlsdGVySXRlbVZpZXdtb2RlbH0gZnJvbSAnLi9maWx0ZXItaXRlbS12aWV3bW9kZWwnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGaWx0ZXJJdGVtTW9kZX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2ZpbHRlckl0ZW0tbW9kZS5lbnVtJztcclxuaW1wb3J0IHtTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXIuY29tcG9uZW50LmludGVyZmFjZVwiO1xyXG5pbXBvcnQge1VzZXJSaWdodFR5cGV9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3VzZXItcmlnaHQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXItY29tcG9uZW50LWludGVyZmFjZS1uYW1lJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9uRGVmYXVsdFZhbHVlVHlwZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdHlwZS9vYmplY3QtY29uZmlndXJhdGlvbi1kZWZhdWx0LXZhbHVlLXR5cGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZmlsdGVyLWl0ZW1cIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0taGVhZGVyXCI+XHJcbiAgICAgICAgICA8Y28tY29sbGFwc2libGVcclxuICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2V4cGFuZEJ1dHRvbkxhc3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnREb3duKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uXT1cInNob3dCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbYnV0dG9uVGV4dF09XCJmaWx0ZXJCdXR0b25MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2tlZCgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY29sbGFwc2FibGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY3VzdG9tLWNvbnRlbnRcIiAqbmdJZj1cImN1c3RvbUNvbnRlbnQ7IGVsc2UgY29sbGVjdGlvbkNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cInNob3dCdXR0b249dHJ1ZVwiIChtb3VzZWRvd24pPVwic2hvd0J1dHRvbj10cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbGxlY3Rpb25Db250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNvbGxlY3Rpb24tY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuRmlsdGVybGlzdCB8fCBtb2RlID09PSBtb2Rlcy5TaW5nbGVTZWxlY3RMaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBtb2RlID09PSBtb2Rlcy5TZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCB8fCBtb2RlID09PSBtb2Rlcy5TZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2xsZWN0aW9uPy5sZW5ndGggPiAxMCB8fCBtaW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJmaWx0ZXJUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0c1wiICpuZ0lmPVwiZmlsdGVyZWRDb2xsZWN0aW9uPy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIm5vUmVzdWx0c0xhYmVsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1jb2xsZWN0aW9uLXJlc3VsdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRDb2xsZWN0aW9uOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNvbGxlY3Rpb24tcmVzdWx0LWl0ZW1cIiAqbmdJZj1cImluZGV4IDwgbGltaXRUbyB8fCBzaG93QWxsUmVzdWx0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveCAqbmdJZj1cIm1vZGUgIT09IG1vZGVzLlNpbmdsZVNlbGVjdExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwib3B0aW9uLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cIm9wdGlvbi5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrYWJsZUxhYmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKG9wdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1yYWRpby1idXR0b24gKm5nSWY9XCJtb2RlID09PSBtb2Rlcy5TaW5nbGVTZWxlY3RMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cIm9wdGlvbi5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVNb2RlbENoYW5nZShvcHRpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1hbW91bnRcIiAqbmdJZj1cIm9wdGlvbi5jb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwib3B0aW9uLmNvdW50LnRvU3RyaW5nKCkgfCBhcHBlbmQ6ICcpJyB8IHByZXBlbmQ6ICcgICAgICAoJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLXNob3ctbW9yZS1vci1sZXNzXCIgKm5nSWY9XCIhc2hvd0FsbFJlc3VsdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1zaG93LW1vcmUgY2xpY2thYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1vcmVUb1Nob3coKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cImluY3JlYXNlTGltaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnREb3duKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwic2hvd01vcmVMYWJlbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItc2hvdy1sZXNzIGNsaWNrYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsZXNzVG9TaG93KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZXRUb0luaXRpYWxMaW1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFVwKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwic2hvd0xlc3NMYWJlbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1zbGlkZXItY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuU2xpZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xpZGVyLWZyb21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlUGx1c01pbnVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidGUk9NJyB8IGNvcmVMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzbGlkZXJNaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNaW4pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci10b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVQbHVzTWludXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1RPJyB8IGNvcmVMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzbGlkZXJNYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNYXgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tc2xpZGVyLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLk51bGxhYmxlU2xpZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xpZGVyLWZyb21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlUGx1c01pbnVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidGUk9NJyB8IGNvcmVMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzbGlkZXJNaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNaW4pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci10b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVQbHVzTWludXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1RPJyB8IGNvcmVMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzbGlkZXJNYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNYXgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY2hlY2tib3gtY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuQ2hlY2tib3ggXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNoZWNrYm94LWNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLkNoZWNrYm94VG9UZXh0IHx8IG1vZGUgPT09IG1vZGVzLkNoZWNrYm94VG9TaW1wbGVUZXh0IHx8IG1vZGUgPT09IG1vZGVzLkNoZWNrYm94VG9CaW5hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImNoZWNrQm94VG9UZXh0TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJwbGFjZWhvbGRlclwiPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS10ZXh0ZmllbGQtY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuVGV4dEZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cIm1vZGVsXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tZGF0ZUZpZWxkLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLkRhdGVGaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWRhdGVGaWVsZC1jb250ZW50XCIgKm5nSWY9XCJtb2RlID09PSBtb2Rlcy5EYXRlUmFuZ2VGaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlLXJhbmdlIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiW2RhdGVSYW5nZVN0YXJ0LCBkYXRlUmFuZ2VFbmRdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VMRUNUX0RBVEUnIHwgY29yZUxvY2FsaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC1kYXRlLXJhbmdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2NvLWNvbGxhcHNpYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsdGVySXRlbUNvbXBvbmVudClcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudCB7XHJcbiAgcHVibGljIGljb25zOiB0eXBlb2YgQ29yZUNvbXBvbmVudHNJY29uID0gQ29yZUNvbXBvbmVudHNJY29uO1xyXG4gIHB1YmxpYyBtb2RlczogdHlwZW9mIEZpbHRlckl0ZW1Nb2RlID0gRmlsdGVySXRlbU1vZGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlKHZhbHVlOiBGaWx0ZXJJdGVtTW9kZSkge1xyXG4gICAgdGhpcy5fbW9kZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWFkTW9kZWxGb3JNb2RlKHRoaXMuX21vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBGaWx0ZXJJdGVtTW9kZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjb2xsZWN0aW9uKHZhbHVlOiBGaWx0ZXJJdGVtVmlld21vZGVsW10pIHtcclxuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbj8uc2xpY2UoKTtcclxuICAgIC8vcmVzZXQgdGhlIG1vZGVsIGluIGNhc2UgdGhlcmUgd2FzIG5vIGNvbGxlY3Rpb24gdG8gc2V0IGl0cyB2YWx1ZXMgb24gd2hlbiBpdCB3YXMgc2V0LlxyXG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2xsZWN0aW9uKCk6IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGluaXRpYWxMaW1pdDogbnVtYmVyID0gMTA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbjogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uTG9hZEZuOiBGdW5jdGlvbjtcclxuXHJcbiAgLy8gU2V0IHRvIGZhbHNlIHRvIHVzZSBmaWx0ZXIgaXRlbSB3aXRoIGEgbXVsdGkgc2VsZWN0YWJsZSBjb2xsZWN0aW9uLiBTZXQgdG8gdHJ1ZSB0byBzcGVjaWZ5IGN1c3RvbSBjb250ZW50XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VzdG9tQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBTZXQgdG8gdHJ1ZSB0byBzaG93IGFsbCByZXN1bHRzLiBTZXQgdG8gZmFsc2UgdG8gZ2V0ICdzaG93IG1vcmUnIGFuZCAnc2hvdyBsZXNzJyBidXR0b25zIHRvIGV4cGFuZCBhbmQgY29udHJhY3QuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0FsbFJlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyQnV0dG9uTGFiZWw6IHN0cmluZyA9IFwiU2VhcmNoXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VhcmNoLi4uJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd01vcmVMYWJlbDogc3RyaW5nID0gJ1Nob3cgbW9yZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dMZXNzTGFiZWw6IHN0cmluZyA9ICdTaG93IGxlc3MnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBub1Jlc3VsdHNMYWJlbDogc3RyaW5nID0gXCJObyByZXN1bHRzXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNsaWRlckRlZmF1bHRNaW46IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNsaWRlckRlZmF1bHRNYXg6IG51bWJlciA9IDEwMDAwMDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZnVsbFJhbmdlSXNOdWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbChuZXdNb2RlbDogYW55KSB7XHJcbiAgICB0aGlzLnJlYWRNb2RlbEZvck1vZGUobmV3TW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBjb25maWdPYmplY3QodmFsdWU6IE9iamVjdENvbmZpZ3VyYXRpb24pIHtcclxuICAgIHRoaXMuX2NvbmZpZ09iamVjdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5leHBhbmRlZCA9ICh0aGlzLl9jb25maWdPYmplY3QucmlnaHRzID09PSBVc2VyUmlnaHRUeXBlLlJlYWRXcml0ZSk7XHJcbiAgICB0aGlzLmhpZGRlbiA9ICh0aGlzLl9jb25maWdPYmplY3QucmlnaHRzIDwgVXNlclJpZ2h0VHlwZS5SZWFkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29uZmlnT2JqZWN0KCk6IE9iamVjdENvbmZpZ3VyYXRpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ09iamVjdDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNvbGxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGaWx0ZXJJdGVtVmlld21vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJJdGVtVmlld21vZGVsW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBmaWx0ZXJCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWZpbHRlci1pdGVtXCIpXHJcblxyXG4gIHB1YmxpYyBmaWx0ZXJlZENvbGxlY3Rpb246IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBsaW1pdFRvOiBudW1iZXIgPSAxMDtcclxuICBwdWJsaWMgZmlsdGVyVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgc2hvd0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL21vZGVscyBmb3IgdGhlIHNsaWRlciBmaWVsZCBpbnB1dHNcclxuICBwdWJsaWMgc2xpZGVyTWluOiBudW1iZXI7XHJcbiAgcHVibGljIHNsaWRlck1heDogbnVtYmVyO1xyXG5cclxuICAvL21vZGVscyBmb3IgdGggZGF0ZXJhbmdlIGlucHV0XHJcbiAgcHVibGljIGRhdGVSYW5nZVN0YXJ0OiBEYXRlO1xyXG4gIHB1YmxpYyBkYXRlUmFuZ2VFbmQ6IERhdGU7XHJcblxyXG4gIC8vc2NyZWVuQ29uZmlnXHJcbiAgcHVibGljIG9iamVjdENvbmZpZ05hbWU6IHN0cmluZztcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWhpZGRlbicpXHJcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcclxuICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGZvcmNlUmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyBtYXhMZW5ndGg6IG51bWJlcjtcclxuICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBPYmplY3RDb25maWd1cmF0aW9uRGVmYXVsdFZhbHVlVHlwZTtcclxuICBwdWJsaWMgZGVjaW1hbHM6IG51bWJlcjtcclxuICBwdWJsaWMgcmVkRXJyb3JCYWNrZ3JvdW5kOiBib29sZWFuO1xyXG5cclxuICAvL21vZGVsIGZvciB0aGUgdGV4dGJveCBvcHRpb25zIHRoYXQgbmVlZCBhIGNvbnZlcnRlZCBvdXRwdXRcclxuICBwdWJsaWMgY2hlY2tCb3hUb1RleHRNb2RlbDogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBfY29uZmlnT2JqZWN0OiBPYmplY3RDb25maWd1cmF0aW9uO1xyXG4gIHByaXZhdGUgX2NvbGxlY3Rpb246IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSA9IFtdO1xyXG4gIHByaXZhdGUgX21vZGU6IEZpbHRlckl0ZW1Nb2RlID0gdGhpcy5tb2Rlcy5GaWx0ZXJsaXN0O1xyXG4gIHByaXZhdGUgX21vZGVsOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0VG9Jbml0aWFsTGltaXQoKTtcclxuICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRoaXMudmFsdWVTZWxlY3RlZCgpO1xyXG4gICAgaWYodGhpcy5jaGVja0JveFRvVGV4dE1vZGVsID09PSB1bmRlZmluZWQgfHwgdGhpcy5jaGVja0JveFRvVGV4dE1vZGVsID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvSW5pdGlhbExpbWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saW1pdFRvID0gdGhpcy5pbml0aWFsTGltaXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5jcmVhc2VMaW1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGltaXRUbyArPSAxMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3JlVG9TaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuc2hvd0FsbFJlc3VsdHMpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uPy5sZW5ndGggPiB0aGlzLmxpbWl0VG87XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbGVzc1RvU2hvdygpIHtcclxuICAgIGlmICh0aGlzLnNob3dBbGxSZXN1bHRzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoIDw9IHRoaXMubGltaXRUbyAmJiB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoID4gdGhpcy5pbml0aWFsTGltaXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTW9kZWxDaGFuZ2UobW9kZWw6IGFueSkge1xyXG4gICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkZpbHRlcmxpc3Q6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JGaWx0ZXJMaXN0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2luZ2xlU2VsZWN0TGlzdDpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudW5jaGVja0ZvclNpbmdsZVNlbGVjdChtb2RlbCk7XHJcbiAgICAgICAgbW9kZWwuY2hlY2tlZCA9ICFtb2RlbC5jaGVja2VkO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yU2luZ2xlU2VsZWN0TGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2xpZGVyOlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTbGlkZXJNb2RlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5OdWxsYWJsZVNsaWRlcjpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yTnVsbGFibGVTbGlkZXJNb2RlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5DaGVja2JveFRvVGV4dDpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb1RleHQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9TaW1wbGVUZXh0OlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JDaGVja2JveFRvU2ltcGxlVGV4dCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb0JpbmFyeTpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuRGF0ZVJhbmdlRmllbGQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVNb2RlbEZvckRhdGVSYW5nZShtb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5UZXh0RmllbGQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9ICh0eXBlb2YgdGhpcy5fbW9kZWwgPT09ICdzdHJpbmcnICYmIHRoaXMuX21vZGVsLmxlbmd0aCA9PT0gMCkgPyB1bmRlZmluZWQgOiB0aGlzLl9tb2RlbDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLl9tb2RlbCk7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmNvbGxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbHVlU2VsZWN0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhIXRoaXMuY29sbGVjdGlvbi5maW5kKGMgPT4gYy5jaGVja2VkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIEFwcGxpZXMgZmlsdGVyIHRvIHRoZSBjb2xsZWN0aW9uLlxyXG4gIHB1YmxpYyBhc3luYyBhcHBseUZpbHRlcih0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPFtdPiB7XHJcbiAgICBpZiAoIWlzTmFOKHRoaXMubWluU2VhcmNoQ2hhcnNUb0xvYWRDb2xsZWN0aW9uKSAmJiB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4pIHtcclxuICAgICAgaWYgKHRleHQubGVuZ3RoID09PSB0aGlzLm1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbiAmJiB0ZXh0Lmxlbmd0aCA+IHRoaXMuZmlsdGVyVGV4dC5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4odGV4dCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGV4dC5sZW5ndGggPCB0aGlzLm1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbikge1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXJUZXh0OiBzdHJpbmcgPSB0aGlzLmZpbHRlclRleHQ/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcclxuICAgIGxldCBmaWx0ZXJlZEl0ZW1Db3VudDogbnVtYmVyID0gMDtcclxuICAgIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uPy5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgbGFiZWxUZXh0OiBzdHJpbmcgPSBpdGVtLmRlc2NyaXB0aW9uPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnN0IGlzSGlkZGVuQnlGaWx0ZXI6IGJvb2xlYW4gPSAobGFiZWxUZXh0Py5pbmRleE9mKGZpbHRlclRleHQpID09PSAtMSk7XHJcbiAgICAgIGlmIChpc0hpZGRlbkJ5RmlsdGVyKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZpbHRlcmVkSXRlbUNvdW50Kys7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVuY2hlY2tGb3JTaW5nbGVTZWxlY3QobW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICBpZiAobS5jb2RlICE9PSBtb2RlbC5jb2RlICYmIG0uZGVzY3JpcHRpb24gIT09IG1vZGVsLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgbS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkTW9kZWxGb3JNb2RlKG5ld01vZGVsOiBhbnkpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5GaWx0ZXJsaXN0OlxyXG4gICAgICAgIHRoaXMuX3JlYWRNb2RlbEZvckZpbHRlckxpc3QobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2luZ2xlU2VsZWN0TGlzdDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTaW5nbGVTZWxlY3RMaXN0KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLlNlbGVjdExpc3RXaXRoU3RyaW5nQ29sbGVjdGlvbk91dHB1dDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdChuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dChuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TbGlkZXI6XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5OdWxsYWJsZVNsaWRlcjpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTbGlkZXJNb2RlKG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9UZXh0OlxyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb1NpbXBsZVRleHQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yQ2hlY2tib3hUb1RleHQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb0JpbmFyeTpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JDaGVja2JveFRvQmluYXJ5KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkRhdGVGaWVsZDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JEYXRlRmllbGQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuRGF0ZVJhbmdlRmllbGQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yRGF0ZVJhbmdlRmllbGQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX21vZGVsID0gbmV3TW9kZWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAvL01vZGVsIGNyZWF0aW9uIGZvciBhbGwgb2YgdGhlIGRpZmZlcmVudCBvcHRpb25zIGF2YWlsYWJsZS8vXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yRmlsdGVyTGlzdCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJSYW5nZTogc3RyaW5nW10gPSBbXTtcclxuICAgIGlmICh0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmICh2aWV3TW9kZWwuY2hlY2tlZCkge1xyXG4gICAgICAgICAgZmlsdGVyUmFuZ2UucHVzaChgPz0nJHt2aWV3TW9kZWwuY29kZX0nYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGZpbHRlclJhbmdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclJhbmdlLmpvaW4oJywnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJSYW5nZTogc3RyaW5nW10gPSBbXTtcclxuICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKCh2aWV3TW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpID0+IHtcclxuICAgICAgaWYgKHZpZXdNb2RlbC5jaGVja2VkKSB7XHJcbiAgICAgICAgZmlsdGVyUmFuZ2UucHVzaCh2aWV3TW9kZWwuY29kZS50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoZmlsdGVyUmFuZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclJhbmdlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvclNpbmdsZVNlbGVjdExpc3QoKTogdm9pZCB7XHJcbiAgICBsZXQgZmlsdGVyU3RyaW5nOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICBpZiAodmlld01vZGVsLmNoZWNrZWQpIHtcclxuICAgICAgICBmaWx0ZXJTdHJpbmcgPSB2aWV3TW9kZWwuY29kZS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmaWx0ZXJTdHJpbmcubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclN0cmluZztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJOdW1iZXI6IG51bWJlciA9IG51bGw7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaCgodmlld01vZGVsOiBGaWx0ZXJJdGVtVmlld21vZGVsKSA9PiB7XHJcbiAgICAgIGlmICh2aWV3TW9kZWwuY2hlY2tlZCkge1xyXG4gICAgICAgIGlmIChmaWx0ZXJOdW1iZXIgPT0gbnVsbCkge1xyXG4gICAgICAgICAgZmlsdGVyTnVtYmVyID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyTnVtYmVyICs9IE51bWJlcih2aWV3TW9kZWwuY29kZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBmaWx0ZXJOdW1iZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvclNsaWRlck1vZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNsaWRlck1pbiA9ICEhdGhpcy5zbGlkZXJNaW4gPyB0aGlzLnNsaWRlck1pbiA6IHRoaXMuc2xpZGVyRGVmYXVsdE1pbjtcclxuICAgIHRoaXMuc2xpZGVyTWF4ID0gISF0aGlzLnNsaWRlck1heCA/IHRoaXMuc2xpZGVyTWF4IDogdGhpcy5zbGlkZXJEZWZhdWx0TWF4O1xyXG5cclxuICAgIGxldCB0cnVlTG93ZXJCb3VuZCA9IE1hdGgubWluKHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcbiAgICBsZXQgdHJ1ZVVwcGVyQm91bmQgPSBNYXRoLm1heCh0aGlzLnNsaWRlck1pbiwgdGhpcy5zbGlkZXJNYXgpO1xyXG5cclxuICAgIHRoaXMuc2xpZGVyTWluID0gdHJ1ZUxvd2VyQm91bmQ7XHJcbiAgICB0aGlzLnNsaWRlck1heCA9IHRydWVVcHBlckJvdW5kO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBgJHt0cnVlTG93ZXJCb3VuZH0gLSAke3RydWVVcHBlckJvdW5kfWA7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JOdWxsYWJsZVNsaWRlck1vZGUoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMuc2xpZGVyTWluICYmIHRoaXMuc2xpZGVyTWF4KSB7XHJcbiAgICAgIGxldCB0cnVlTG93ZXJCb3VuZCA9IE1hdGgubWluKHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcbiAgICAgIGxldCB0cnVlVXBwZXJCb3VuZCA9IE1hdGgubWF4KHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcblxyXG4gICAgICB0aGlzLl9tb2RlbCA9IGAke3RydWVMb3dlckJvdW5kfSAtICR7dHJ1ZVVwcGVyQm91bmR9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb1RleHQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGVja0JveFRvVGV4dE1vZGVsKSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gXCI/PSdKJ1wiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBcIj89J04nXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvckNoZWNrYm94VG9TaW1wbGVUZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IFwiSlwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBcIk5cIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwpIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JEYXRlUmFuZ2UoZGF0ZXM6IERhdGVbXSk6IHZvaWQge1xyXG4gICAgaWYgKGRhdGVzKSB7XHJcbiAgICAgIGxldCBzdGFydERhdGUgPSBkYXRlc1swXTtcclxuICAgICAgbGV0IGVuZERhdGUgPSBkYXRlc1sxXTtcclxuXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZVJlcXVlc3QgPSBzdGFydERhdGUgPyB0aGlzLl9mb3JtYXREYXRlVG9TdHJpbmcoc3RhcnREYXRlKSA6ICcnO1xyXG4gICAgICBjb25zdCBlbmREYXRlUmVxdWVzdCA9IGVuZERhdGUgPyB0aGlzLl9mb3JtYXREYXRlVG9TdHJpbmcoZW5kRGF0ZSkgOiAnJztcclxuXHJcbiAgICAgIHRoaXMuX21vZGVsID0gYD8+PVxcJyR7c3RhcnREYXRlUmVxdWVzdH1cXCcmID88PVxcJyR7ZW5kRGF0ZVJlcXVlc3R9XFwnYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdERhdGVUb1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXkgPSBkYXRlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBsZXQgbW9udGggPSAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgbGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgcmV0dXJuIGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XHJcbiAgfVxyXG5cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAvL01vZGVsIHJlYWRpbmcgZm9yIGFsbCBvZiB0aGUgZGlmZmVyZW50IG9wdGlvbnMgYXZhaWxhYmxlLy9cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JGaWx0ZXJMaXN0KGZpbHRlck1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgbGV0IGl0ZW1zVG9DaGVjazogc3RyaW5nW10gPSBbXTtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gZmlsdGVyTW9kZWw7XHJcblxyXG4gICAgaWYgKGZpbHRlck1vZGVsICE9PSBudWxsICYmIGZpbHRlck1vZGVsICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGZpbHRlck1vZGVsID09PSAnc3RyaW5nJyAmJiBmaWx0ZXJNb2RlbC5sZW5ndGggIT0gMCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZmlsdGVyTGlzdCA9IGZpbHRlck1vZGVsLnNwbGl0KFwiLFwiKVxyXG4gICAgICBmaWx0ZXJMaXN0LmZvckVhY2goKGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaXRlbXNUb0NoZWNrLnB1c2goZmlsdGVyLnN1YnN0cigzLCBmaWx0ZXIubGVuZ3RoIC0gNCkpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtc1RvQ2hlY2spIHtcclxuICAgICAgICBsZXQgZmlsdGVyID0gdGhpcy5jb2xsZWN0aW9uLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmNvZGUudG9TdHJpbmcoKSA9PT0gaXRlbSk7XHJcbiAgICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCAmJiBmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgZmlsdGVyLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlck1vZGVsO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvclNpbmdsZVNlbGVjdExpc3Qoc2luZ2xlU2VsZWN0TW9kZWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdW5jaGVja0FsbCgpO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBzaW5nbGVTZWxlY3RNb2RlbDtcclxuXHJcbiAgICBpZiAoc2luZ2xlU2VsZWN0TW9kZWwgIT09IG51bGwgJiYgc2luZ2xlU2VsZWN0TW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGZpbHRlciA9IHRoaXMuY29sbGVjdGlvbi5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5jb2RlLnRvU3RyaW5nKCkgPT09IHNpbmdsZVNlbGVjdE1vZGVsKTtcclxuICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCAmJiBmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGZpbHRlci5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yU3RyaW5nQ29sbGVjdGlvbkxpc3QoY29sbGVjdGlvbk1vZGVsOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5jaGVja0FsbCgpO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBjb2xsZWN0aW9uTW9kZWw7XHJcblxyXG4gICAgaWYgKGNvbGxlY3Rpb25Nb2RlbCAhPT0gbnVsbCAmJiBjb2xsZWN0aW9uTW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmIChjb2xsZWN0aW9uTW9kZWwuaW5kZXhPZih2aWV3TW9kZWwuY29kZS50b1N0cmluZygpKSA+IC0xKSB7XHJcbiAgICAgICAgICB2aWV3TW9kZWwuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZpZXdNb2RlbC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvclNlbGVjdExpc3RXaXRoTnVtYmVyT3V0cHV0KG51bWJlck1vZGVsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gbnVtYmVyTW9kZWw7XHJcblxyXG4gICAgaWYgKG51bWJlck1vZGVsICE9PSBudWxsICYmIG51bWJlck1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmNvbGxlY3Rpb24pIHtcclxuICAgICAgICBjb25zdCBpdGVtQ29kZTogbnVtYmVyID0gaXRlbS5jb2RlIGFzIG51bWJlcjtcclxuICAgICAgICBjb25zdCBtb2RWYWx1ZSA9IChudW1iZXJNb2RlbCAlICgyICogaXRlbUNvZGUpKTtcclxuICAgICAgICBpdGVtLmNoZWNrZWQgPSAobW9kVmFsdWUgPj0gaXRlbUNvZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91bmNoZWNrQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbiAhPT0gbnVsbCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaChtID0+IHtcclxuICAgICAgICBtLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JTbGlkZXJNb2RlKHNsaWRlck1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gc2xpZGVyTW9kZWw7XHJcbiAgICBpZiAoc2xpZGVyTW9kZWwgIT09IHVuZGVmaW5lZCAmJiBzbGlkZXJNb2RlbCAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgc2xpZGVySW5wdXRDb2xsZWN0aW9uID0gc2xpZGVyTW9kZWwuc3BsaXQoJyAtICcpO1xyXG4gICAgICB0aGlzLnNsaWRlck1pbiA9IHBhcnNlSW50KHNsaWRlcklucHV0Q29sbGVjdGlvblswXSk7XHJcbiAgICAgIHRoaXMuc2xpZGVyTWF4ID0gcGFyc2VJbnQoc2xpZGVySW5wdXRDb2xsZWN0aW9uWzFdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2xpZGVyTWluID0gdGhpcy5zbGlkZXJEZWZhdWx0TWluO1xyXG4gICAgICB0aGlzLnNsaWRlck1heCA9IHRoaXMuc2xpZGVyRGVmYXVsdE1heDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvckNoZWNrYm94VG9UZXh0KGNoZWNrYm94VG9UZXh0TW9kZWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbW9kZWwgPSBjaGVja2JveFRvVGV4dE1vZGVsO1xyXG4gICAgaWYgKGNoZWNrYm94VG9UZXh0TW9kZWwgIT09IHVuZGVmaW5lZCAmJiBjaGVja2JveFRvVGV4dE1vZGVsICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IChjaGVja2JveFRvVGV4dE1vZGVsLmluZGV4T2YoJ0onKSA+IC0xKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeShjaGVja2JveFRvQmluYXJ5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gY2hlY2tib3hUb0JpbmFyeTtcclxuICAgIGlmIChjaGVja2JveFRvQmluYXJ5ICE9PSB1bmRlZmluZWQgJiYgY2hlY2tib3hUb0JpbmFyeSAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwgPSAoY2hlY2tib3hUb0JpbmFyeSA+PSAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yRGF0ZUZpZWxkKGRhdGVGaWVsZE1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gZGF0ZUZpZWxkTW9kZWw7XHJcbiAgICBpZiAoZGF0ZUZpZWxkTW9kZWwgIT09IHVuZGVmaW5lZCAmJiBkYXRlRmllbGRNb2RlbCAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IG5ldyBEYXRlKGRhdGVGaWVsZE1vZGVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yRGF0ZVJhbmdlRmllbGQoZGF0ZVJhbmdlRmllbGRNb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IGRhdGVSYW5nZUZpZWxkTW9kZWw7XHJcbiAgICBpZiAoZGF0ZVJhbmdlRmllbGRNb2RlbCAhPT0gdW5kZWZpbmVkICYmIGRhdGVSYW5nZUZpZWxkTW9kZWwgIT09IG51bGwpIHtcclxuICAgICAgbGV0IGRhdGVDb2xsZWN0aW9uID0gZGF0ZVJhbmdlRmllbGRNb2RlbC5zcGxpdCgnJicpO1xyXG5cclxuICAgICAgbGV0IHN0YXJ0U3RyaW5nID0gZGF0ZUNvbGxlY3Rpb25bMF0udHJpbSgpLnN1YnN0cig0LCBkYXRlQ29sbGVjdGlvblswXS5sZW5ndGggLSA1KTtcclxuICAgICAgbGV0IGVuZFN0cmluZyA9IGRhdGVDb2xsZWN0aW9uWzFdLnRyaW0oKS5zdWJzdHIoNCwgZGF0ZUNvbGxlY3Rpb25bMV0ubGVuZ3RoIC0gNSk7XHJcblxyXG4gICAgICBsZXQgc3RhcnREYXRlQ29tcG9uZW50cyA9IHN0YXJ0U3RyaW5nLnNwbGl0KCctJyk7XHJcbiAgICAgIGxldCBlbmREYXRlQ29tcG9uZW50cyA9IGVuZFN0cmluZy5zcGxpdCgnLScpO1xyXG5cclxuICAgICAgdGhpcy5kYXRlUmFuZ2VTdGFydCA9IG5ldyBEYXRlKHBhcnNlSW50KHN0YXJ0RGF0ZUNvbXBvbmVudHNbMl0pLCBwYXJzZUludChzdGFydERhdGVDb21wb25lbnRzWzFdKSAtIDEsIHBhcnNlSW50KHN0YXJ0RGF0ZUNvbXBvbmVudHNbMF0pKTtcclxuICAgICAgdGhpcy5kYXRlUmFuZ2VFbmQgPSBuZXcgRGF0ZShwYXJzZUludChlbmREYXRlQ29tcG9uZW50c1syXSksIHBhcnNlSW50KGVuZERhdGVDb21wb25lbnRzWzFdKSAtIDEsIHBhcnNlSW50KGVuZERhdGVDb21wb25lbnRzWzBdKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVSYW5nZVN0YXJ0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmRhdGVSYW5nZUVuZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -22,7 +22,6 @@ ListOfValuesModule.decorators = [
22
22
  OverlayModule,
23
23
  ClickoutsideModule,
24
24
  IconModule,
25
- InputTextModule,
26
25
  InputSearchModule
27
26
  ],
28
27
  declarations: [
@@ -35,4 +34,4 @@ ListOfValuesModule.decorators = [
35
34
  ]
36
35
  },] }
37
36
  ];
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNyRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUF1QnRFLE1BQU0sT0FBTyxrQkFBa0I7OztZQXJCOUIsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixVQUFVO29CQUNWLGVBQWU7b0JBQ2YsaUJBQWlCO2lCQUNwQjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQiwwQkFBMEI7b0JBQzFCLHFDQUFxQztpQkFDdEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtpQkFDdEI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TGlzdE9mVmFsdWVzQ29tcG9uZW50fSBmcm9tIFwiLi9saXN0LW9mLXZhbHVlcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7SW5wdXRUZXh0TW9kdWxlfSBmcm9tIFwiLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZVwiO1xyXG5pbXBvcnQge0lucHV0Q2hlY2tib3hNb2R1bGV9IGZyb20gXCIuLi9pbnB1dC1jaGVja2JveC9pbnB1dC1jaGVja2JveC5tb2R1bGVcIjtcclxuaW1wb3J0IHtPdmVybGF5TW9kdWxlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9vdmVybGF5L292ZXJsYXkubW9kdWxlXCI7XHJcbmltcG9ydCB7Q2xpY2tvdXRzaWRlTW9kdWxlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9jbGlja291dHNpZGUvY2xpY2tvdXRzaWRlLm1vZHVsZVwiO1xyXG5pbXBvcnQge0xpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50fSBmcm9tIFwiLi9saXN0LW9mLXZhbHVlcy1wb3B1cC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMaXN0T2ZWYWx1ZXNNdWx0aXNlbGVjdFBvcHVwQ29tcG9uZW50fSBmcm9tIFwiLi9saXN0LW9mLXZhbHVlcy1tdWx0aXNlbGVjdC1wb3B1cC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJY29uTW9kdWxlfSBmcm9tIFwiLi4vaWNvbi9pY29uLm1vZHVsZVwiO1xyXG5pbXBvcnQge0lucHV0U2VhcmNoTW9kdWxlfSBmcm9tICcuLi9pbnB1dC1zZWFyY2gvaW5wdXQtc2VhcmNoLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgICAgIENsaWNrb3V0c2lkZU1vZHVsZSxcclxuICAgICAgICBJY29uTW9kdWxlLFxyXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgICAgICBJbnB1dFNlYXJjaE1vZHVsZVxyXG4gICAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIExpc3RPZlZhbHVlc0NvbXBvbmVudCxcclxuICAgIExpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50LFxyXG4gICAgTGlzdE9mVmFsdWVzTXVsdGlzZWxlY3RQb3B1cENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTGlzdE9mVmFsdWVzQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdE9mVmFsdWVzTW9kdWxlIHt9XHJcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNyRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFzQnRFLE1BQU0sT0FBTyxrQkFBa0I7OztZQXBCOUIsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixVQUFVO29CQUNWLGlCQUFpQjtpQkFDcEI7Z0JBQ0gsWUFBWSxFQUFFO29CQUNaLHFCQUFxQjtvQkFDckIsMEJBQTBCO29CQUMxQixxQ0FBcUM7aUJBQ3RDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxxQkFBcUI7aUJBQ3RCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0xpc3RPZlZhbHVlc0NvbXBvbmVudH0gZnJvbSBcIi4vbGlzdC1vZi12YWx1ZXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0lucHV0VGV4dE1vZHVsZX0gZnJvbSBcIi4uL2lucHV0LXRleHQvaW5wdXQtdGV4dC5tb2R1bGVcIjtcclxuaW1wb3J0IHtJbnB1dENoZWNrYm94TW9kdWxlfSBmcm9tIFwiLi4vaW5wdXQtY2hlY2tib3gvaW5wdXQtY2hlY2tib3gubW9kdWxlXCI7XHJcbmltcG9ydCB7T3ZlcmxheU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZVwiO1xyXG5pbXBvcnQge0NsaWNrb3V0c2lkZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvY2xpY2tvdXRzaWRlL2NsaWNrb3V0c2lkZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtMaXN0T2ZWYWx1ZXNQb3B1cENvbXBvbmVudH0gZnJvbSBcIi4vbGlzdC1vZi12YWx1ZXMtcG9wdXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TGlzdE9mVmFsdWVzTXVsdGlzZWxlY3RQb3B1cENvbXBvbmVudH0gZnJvbSBcIi4vbGlzdC1vZi12YWx1ZXMtbXVsdGlzZWxlY3QtcG9wdXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SWNvbk1vZHVsZX0gZnJvbSBcIi4uL2ljb24vaWNvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHtJbnB1dFNlYXJjaE1vZHVsZX0gZnJvbSAnLi4vaW5wdXQtc2VhcmNoL2lucHV0LXNlYXJjaC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gICAgICAgIElucHV0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICAgICAgT3ZlcmxheU1vZHVsZSxcclxuICAgICAgICBDbGlja291dHNpZGVNb2R1bGUsXHJcbiAgICAgICAgSWNvbk1vZHVsZSxcclxuICAgICAgICBJbnB1dFNlYXJjaE1vZHVsZVxyXG4gICAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIExpc3RPZlZhbHVlc0NvbXBvbmVudCxcclxuICAgIExpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50LFxyXG4gICAgTGlzdE9mVmFsdWVzTXVsdGlzZWxlY3RQb3B1cENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTGlzdE9mVmFsdWVzQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdE9mVmFsdWVzTW9kdWxlIHt9XHJcbiJdfQ==
@@ -80,6 +80,7 @@ export class ScreenConfigurationDirective {
80
80
  this.hostComponent.readonly = this.hostComponent.forceReadonly || this._moduleInReadonlyMode() || myCfgObj.isReadonly();
81
81
  this.hostComponent.decimals = myCfgObj.scale;
82
82
  this.hostComponent.maxLength = myCfgObj.maxLength;
83
+ this.hostComponent.defaultValue = myCfgObj.defaultValue;
83
84
  if ('configObject' in this.hostComponent) {
84
85
  this.hostComponent.configObject = myCfgObj;
85
86
  }
@@ -155,4 +156,4 @@ __decorate([
155
156
  __decorate([
156
157
  InputBoolean()
157
158
  ], ScreenConfigurationDirective.prototype, "noModuleService", void 0);
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLWNvbmZpZ3VyYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3NjcmVlbi1jb25maWd1cmF0aW9uL3NjcmVlbi1jb25maWd1cmF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBRS9ILE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBS3BFLGlHQUFpRztBQUNqRyx5SUFBeUk7QUFJekksTUFBTSxPQUFPLDRCQUE0QjtJQWlDckMsWUFFVyxhQUEyQyxFQUMxQyxRQUFvQjtJQUM1QixvRUFBb0U7SUFDNUQsY0FBNkMsRUFDN0MsU0FBb0I7SUFDNUIsMERBQTBEO0lBQ2xELGNBQWtDO1FBTm5DLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUMxQyxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLG1CQUFjLEdBQWQsY0FBYyxDQUErQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRXBCLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQXZCdkMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBSTNDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBTXhDLDBKQUEwSjtRQUNsSixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU5QixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQVkvQixJQUFJLENBQUMs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bUNRLE1BQU0sU0FBQyw4Q0FBOEM7WUFsRDNDLFVBQVU7WUFLckIsNkJBQTZCO1lBTG9CLFNBQVM7WUFNMUQsaUJBQWlCOzs7d0NBV3BCLEtBQUssU0FBQywyQkFBMkI7dUJBWWpDLEtBQUs7d0NBR0wsS0FBSzs4QkFJTCxLQUFLOztBQUZOO0lBREMsWUFBWSxFQUFFOytFQUNtQztBQUlsRDtJQURDLFlBQVksRUFBRTtxRUFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3InO1xyXG5pbXBvcnQge1NjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnR9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLWNvbXBvbmVudC1pbnRlcmZhY2UtbmFtZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9iYXNlLW1vZHVsZS1zY3JlZW4tY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2Jhc2UtbW9kdWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtWYWxpZGF0aW9uTWVzc2FnZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1tZXNzYWdlJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcblxyXG4vLyBEaXJlY3RpdmUgdG8gcmVwcmVzZW50cyB0aGUgbWFya2VyIG9mIFwic2NyZWVuIGNvbmZpZyBuYW1lIElEJ3NcIiBvZiBjb21wb25lbnRzIHdpdGhpbiBhIG1vZHVsZS5cclxuLy8gTWFuaXB1bGF0ZXMgdmlzaWJpbGl0eSwgcmVhZG9ubHkgYW5kIG90aGVyIGR5bmFtaWMgc3RhdGVzIG9mIGFuIGlucHV0IGVsZW1lbnQgYWNjb3JkaW5nIHRvIGl0cyBkYi1mZXRjaGVkIHNjcmVlbiBjb25maWd1cmF0aW9uIG9iamVjdC5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjcmVlbkNvbmZpZ3VyYXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCdzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0JylcclxuICAgIHB1YmxpYyBzZXQgc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlSG9zdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRhdGFOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9Nb2R1bGVTZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfaXNIZWFkZXI6IGJvb2xlYW47XHJcblxyXG4gICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDogc3RyaW5nO1xyXG5cclxuICAgIC8vIGZlYXR1cmUgdG9nZ2xlIGZvciBkZXZzIHNvIHlvdSBjYW4gc2VlIHRoZSB3aG9sZSBzY3JlZW4gd2l0aCBhbGwgaW5wdXRzIGV0YyBieSB0ZW1wb3JhcmlseSB0dXJuaW5nIG9mZiB0aGUgaGlkaW5nIGVmZmVjdHMgb2YgdGhpcyBkaXJlY3RpdmUgb24gaXRzIGhvc3RcclxuICAgIHByaXZhdGUgX2lzVHVybmVkT2ZmOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUpXHJcbiAgICAgICAgcHVibGljIGhvc3RDb21wb25lbnQ6IFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgICAgICAvLyB3ZSBtdXN0IGFsd2F5cyBoYXZlIGEgY29uZmlnIHNlcnZpY2UgdG8gZmV0Y2ggY29uZmlnIG9iamVjdHMgd2l0aFxyXG4gICAgICAgIHByaXZhdGUgX2NvbmZpZ1NlcnZpY2U6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgLy8gdG8gbWFrZSBob3N0IHJlYWRvbmx5IHdoZW4gTU9EVUxFIHN3aXRjaGVzIHRvIHJlYWRvbmx5OlxyXG4gICAgICAgIHByaXZhdGUgX21vZHVsZVNlcnZpY2U/OiBCYXNlTW9kdWxlU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5wdXNoKHRoaXMuX2NvbmZpZ1NlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnT2JqZWN0czogc3RyaW5nW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVIb3N0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tb2R1bGVTZXJ2aWNlICYmICF0aGlzLm5vTW9kdWxlU2VydmljZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2R1bGVTZXJ2aWNlLnJlYWRvbmx5Q2hhbmdlLnN1YnNjcmliZSgobW9kdWxlSW5SZWFkb25seVN0YXRlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaG9zdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQucmVhZG9ubHkgPSB0aGlzLmhvc3RDb21wb25lbnQuZm9yY2VSZWFkb25seSB8fCBtb2R1bGVJblJlYWRvbmx5U3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2R1bGVTZXJ2aWNlLmVycm9yVmFsaWRhdGlvblJlY2VpdmVkLnN1YnNjcmliZSgodmFsaWRhdGlvblJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXJyb3JSZWRCYWNrZ3JvdW5kQWZ0ZXJTY3JDZmdWYWxpZGF0ZSh2YWxpZGF0aW9uUmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kdWxlU2VydmljZS5zdWNjZXNzZnVsVXBkYXRlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaG9zdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQucmVkRXJyb3JCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlSG9zdCgpO1xyXG5cclxuICAgICAgICAvLyB0aGlzLl91cGRhdGVIZWFkZXJTdGF0ZU9uSG9zdENvbXBvbmVudCh0cnVlKTtcclxuXHJcbiAgICAgICAgLy8gc2hvdyBpbml0aWFsIGVycm9yIG1lc3NhZ2UgaWYgYW55XHJcbiAgICAgICAgaWYgKCF0aGlzLm5vTW9kdWxlU2VydmljZSkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9zZXRFcnJvclJlZEJhY2tncm91bmRBZnRlclNjckNmZ1ZhbGlkYXRlKHRoaXMuX21vZHVsZVNlcnZpY2UubGFzdEVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2lzSGVhZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2RvdWJsZUNsaWNrSGVhZGVycy5oYW5kbGVDb2xsYXBzZWFibGVEZXN0cm95KHRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2VsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldHMgaG9zdCBjb21wb25lbnQgdmlzaWJpbGl0eSwgcmVxdWlyZWQsIHJlYWRvbmx5IGV0Yy4gaWYgc3BlY2lmaWVkIGluIGJhY2tlbmQgc2NyZWVuIGNvbmZpZyBPUiBtb2R1bGUgcmVhZG9ubHkgc3RhdHVzLlxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlSG9zdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fbWF5VXBkYXRlSG9zdCgpIHx8IHRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50Lm9iamVjdENvbmZpZ05hbWUgPSB0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbXlDZmdPYmo6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9jb25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0KTtcclxuICAgICAgICAgICAgaWYgKG15Q2ZnT2JqKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRIb3N0VmlzaWJsZShteUNmZ09iai5pbW1lZGlhdGVseVZpc2libGUoKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZXF1aXJlZCA9IG15Q2ZnT2JqLmlzUmVxdWlyZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQucmVhZG9ubHkgPSB0aGlzLmhvc3RDb21wb25lbnQuZm9yY2VSZWFkb25seSB8fCB0aGlzLl9tb2R1bGVJblJlYWRvbmx5TW9kZSgpIHx8IG15Q2ZnT2JqLmlzUmVhZG9ubHkoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQuZGVjaW1hbHMgPSBteUNmZ09iai5zY2FsZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQubWF4TGVuZ3RoID0gbXlDZmdPYmoubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgnY29uZmlnT2JqZWN0JyBpbiB0aGlzLmhvc3RDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5jb25maWdPYmplY3QgPSBteUNmZ09iajtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRIb3N0VmlzaWJsZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZWFkb25seSA9IHRoaXMuX21vZHVsZUluUmVhZG9ubHlNb2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGF3biBlcnJvciBtZXNzYWdlIHRvb2x0aXAgb250byBvdXIgaG9zdCBjb21wLCBpZiBhbnkgZXJyb3Igd2FzIG1lYW50IGZvciB0aGUgaG9zdCAoZm91bmQgYnkgc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCk7XHJcbiAgICAgKiBAcGFyYW0gZXJyb3JWYWxpZGF0aW9uIEEgdG9wLWxldmVsIGZ1bGwgdmFsaWRhdGlvbiByZXN1bHQsIGVpdGhlciBmcm9tIHRoZSBiYWNrZW5kIG9yIGZyb20gc29tZSBjbGllbnQtc2lkZSB2YWxpZGF0aW9uIGVycm9yLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zZXRFcnJvclJlZEJhY2tncm91bmRBZnRlclNjckNmZ1ZhbGlkYXRlKGVycm9yVmFsaWRhdGlvbjogVmFsaWRhdGlvblJlc3VsdCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhvc3RDb21wb25lbnQgJiYgZXJyb3JWYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXM6IFZhbGlkYXRpb25NZXNzYWdlW10gPSBlcnJvclZhbGlkYXRpb24uZ2V0QWxsRXJyb3JNZXNzYWdlc09mTXlWYWxpZGF0aW9uRmllbGRzKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gZXJyb3JNZXNzYWdlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNc2c6IFZhbGlkYXRpb25NZXNzYWdlID0gZXJyb3JNZXNzYWdlc1tpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZ05hbWU6IHN0cmluZyA9IHRoaXMuZGF0YU5hbWUgPyB0aGlzLmRhdGFOYW1lIDogdGhpcy5zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0O1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yTXNnLmZpZWxkSWQgPT09IGNvbmZpZ05hbWUgJiYgdGhpcy5fZWxlbWVudCAvKiYmIHRoaXMuX3Byb3Blckhvc3QoZXJyb3JNc2cuYm9JZCkqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZWRFcnJvckJhY2tncm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZUluUmVhZG9ubHlNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5ub01vZHVsZVNlcnZpY2UgPyAodGhpcy5fbW9kdWxlU2VydmljZSA/IHRoaXMuX21vZHVsZVNlcnZpY2UucmVhZG9ubHkgOiBmYWxzZSkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9tYXlVcGRhdGVIb3N0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuaG9zdENvbXBvbmVudCAmJiAhdGhpcy5faXNUdXJuZWRPZmYgJiYgISF0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0SG9zdFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5zY3JlZW5Db25maWdOYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5oaWRkZW4gPSAhdmlzaWJsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZWxlbWVudCAmJiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdmlzaWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hpZGRlbicpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLWNvbmZpZ3VyYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3NjcmVlbi1jb25maWd1cmF0aW9uL3NjcmVlbi1jb25maWd1cmF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBRS9ILE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBS3BFLGlHQUFpRztBQUNqRyx5SUFBeUk7QUFJekksTUFBTSxPQUFPLDRCQUE0QjtJQWlDckMsWUFFVyxhQUEyQyxFQUMxQyxRQUFvQjtJQUM1QixvRUFBb0U7SUFDNUQsY0FBNkMsRUFDN0MsU0FBb0I7SUFDNUIsMERBQTBEO0lBQ2xELGNBQWtDO1FBTm5DLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUMxQyxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLG1CQUFjLEdBQWQsY0FBYyxDQUErQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRXBCLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQXZCdkMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBSTNDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBTXhDLDBKQUEwSjtRQUNsSixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU5QixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQVkvQixJQUFJLENBQUMs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Q0FBQzs7O1lBNUpKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsNkJBQTZCO2FBQzFDOzs7NENBbUNRLE1BQU0sU0FBQyw4Q0FBOEM7WUFsRDNDLFVBQVU7WUFLckIsNkJBQTZCO1lBTG9CLFNBQVM7WUFNMUQsaUJBQWlCOzs7d0NBV3BCLEtBQUssU0FBQywyQkFBMkI7dUJBWWpDLEtBQUs7d0NBR0wsS0FBSzs4QkFJTCxLQUFLOztBQUZOO0lBREMsWUFBWSxFQUFFOytFQUNtQztBQUlsRDtJQURDLFlBQVksRUFBRTtxRUFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3InO1xyXG5pbXBvcnQge1NjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnR9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLWNvbXBvbmVudC1pbnRlcmZhY2UtbmFtZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9iYXNlLW1vZHVsZS1zY3JlZW4tY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2Jhc2UtbW9kdWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtWYWxpZGF0aW9uTWVzc2FnZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1tZXNzYWdlJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcblxyXG4vLyBEaXJlY3RpdmUgdG8gcmVwcmVzZW50cyB0aGUgbWFya2VyIG9mIFwic2NyZWVuIGNvbmZpZyBuYW1lIElEJ3NcIiBvZiBjb21wb25lbnRzIHdpdGhpbiBhIG1vZHVsZS5cclxuLy8gTWFuaXB1bGF0ZXMgdmlzaWJpbGl0eSwgcmVhZG9ubHkgYW5kIG90aGVyIGR5bmFtaWMgc3RhdGVzIG9mIGFuIGlucHV0IGVsZW1lbnQgYWNjb3JkaW5nIHRvIGl0cyBkYi1mZXRjaGVkIHNjcmVlbiBjb25maWd1cmF0aW9uIG9iamVjdC5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjcmVlbkNvbmZpZ3VyYXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCdzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0JylcclxuICAgIHB1YmxpYyBzZXQgc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlSG9zdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3QoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRhdGFOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9Nb2R1bGVTZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfaXNIZWFkZXI6IGJvb2xlYW47XHJcblxyXG4gICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDogc3RyaW5nO1xyXG5cclxuICAgIC8vIGZlYXR1cmUgdG9nZ2xlIGZvciBkZXZzIHNvIHlvdSBjYW4gc2VlIHRoZSB3aG9sZSBzY3JlZW4gd2l0aCBhbGwgaW5wdXRzIGV0YyBieSB0ZW1wb3JhcmlseSB0dXJuaW5nIG9mZiB0aGUgaGlkaW5nIGVmZmVjdHMgb2YgdGhpcyBkaXJlY3RpdmUgb24gaXRzIGhvc3RcclxuICAgIHByaXZhdGUgX2lzVHVybmVkT2ZmOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUpXHJcbiAgICAgICAgcHVibGljIGhvc3RDb21wb25lbnQ6IFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgICAgICAvLyB3ZSBtdXN0IGFsd2F5cyBoYXZlIGEgY29uZmlnIHNlcnZpY2UgdG8gZmV0Y2ggY29uZmlnIG9iamVjdHMgd2l0aFxyXG4gICAgICAgIHByaXZhdGUgX2NvbmZpZ1NlcnZpY2U6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgLy8gdG8gbWFrZSBob3N0IHJlYWRvbmx5IHdoZW4gTU9EVUxFIHN3aXRjaGVzIHRvIHJlYWRvbmx5OlxyXG4gICAgICAgIHByaXZhdGUgX21vZHVsZVNlcnZpY2U/OiBCYXNlTW9kdWxlU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5wdXNoKHRoaXMuX2NvbmZpZ1NlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnT2JqZWN0czogc3RyaW5nW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVIb3N0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tb2R1bGVTZXJ2aWNlICYmICF0aGlzLm5vTW9kdWxlU2VydmljZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2R1bGVTZXJ2aWNlLnJlYWRvbmx5Q2hhbmdlLnN1YnNjcmliZSgobW9kdWxlSW5SZWFkb25seVN0YXRlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaG9zdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQucmVhZG9ubHkgPSB0aGlzLmhvc3RDb21wb25lbnQuZm9yY2VSZWFkb25seSB8fCBtb2R1bGVJblJlYWRvbmx5U3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2R1bGVTZXJ2aWNlLmVycm9yVmFsaWRhdGlvblJlY2VpdmVkLnN1YnNjcmliZSgodmFsaWRhdGlvblJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXJyb3JSZWRCYWNrZ3JvdW5kQWZ0ZXJTY3JDZmdWYWxpZGF0ZSh2YWxpZGF0aW9uUmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kdWxlU2VydmljZS5zdWNjZXNzZnVsVXBkYXRlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaG9zdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQucmVkRXJyb3JCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlSG9zdCgpO1xyXG5cclxuICAgICAgICAvLyB0aGlzLl91cGRhdGVIZWFkZXJTdGF0ZU9uSG9zdENvbXBvbmVudCh0cnVlKTtcclxuXHJcbiAgICAgICAgLy8gc2hvdyBpbml0aWFsIGVycm9yIG1lc3NhZ2UgaWYgYW55XHJcbiAgICAgICAgaWYgKCF0aGlzLm5vTW9kdWxlU2VydmljZSkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9zZXRFcnJvclJlZEJhY2tncm91bmRBZnRlclNjckNmZ1ZhbGlkYXRlKHRoaXMuX21vZHVsZVNlcnZpY2UubGFzdEVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2lzSGVhZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2RvdWJsZUNsaWNrSGVhZGVycy5oYW5kbGVDb2xsYXBzZWFibGVEZXN0cm95KHRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2VsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldHMgaG9zdCBjb21wb25lbnQgdmlzaWJpbGl0eSwgcmVxdWlyZWQsIHJlYWRvbmx5IGV0Yy4gaWYgc3BlY2lmaWVkIGluIGJhY2tlbmQgc2NyZWVuIGNvbmZpZyBPUiBtb2R1bGUgcmVhZG9ubHkgc3RhdHVzLlxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlSG9zdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fbWF5VXBkYXRlSG9zdCgpIHx8IHRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50Lm9iamVjdENvbmZpZ05hbWUgPSB0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbXlDZmdPYmo6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9jb25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5zY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0KTtcclxuICAgICAgICAgICAgaWYgKG15Q2ZnT2JqKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRIb3N0VmlzaWJsZShteUNmZ09iai5pbW1lZGlhdGVseVZpc2libGUoKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5yZXF1aXJlZCA9IG15Q2ZnT2JqLmlzUmVxdWlyZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQucmVhZG9ubHkgPSB0aGlzLmhvc3RDb21wb25lbnQuZm9yY2VSZWFkb25seSB8fCB0aGlzLl9tb2R1bGVJblJlYWRvbmx5TW9kZSgpIHx8IG15Q2ZnT2JqLmlzUmVhZG9ubHkoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQuZGVjaW1hbHMgPSBteUNmZ09iai5zY2FsZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQubWF4TGVuZ3RoID0gbXlDZmdPYmoubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdENvbXBvbmVudC5kZWZhdWx0VmFsdWUgPSBteUNmZ09iai5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCdjb25maWdPYmplY3QnIGluIHRoaXMuaG9zdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LmNvbmZpZ09iamVjdCA9IG15Q2ZnT2JqO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NldEhvc3RWaXNpYmxlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zY3JlZW5Db25maWdOYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LnJlYWRvbmx5ID0gdGhpcy5fbW9kdWxlSW5SZWFkb25seU1vZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwYXduIGVycm9yIG1lc3NhZ2UgdG9vbHRpcCBvbnRvIG91ciBob3N0IGNvbXAsIGlmIGFueSBlcnJvciB3YXMgbWVhbnQgZm9yIHRoZSBob3N0IChmb3VuZCBieSBzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0KTtcclxuICAgICAqIEBwYXJhbSBlcnJvclZhbGlkYXRpb24gQSB0b3AtbGV2ZWwgZnVsbCB2YWxpZGF0aW9uIHJlc3VsdCwgZWl0aGVyIGZyb20gdGhlIGJhY2tlbmQgb3IgZnJvbSBzb21lIGNsaWVudC1zaWRlIHZhbGlkYXRpb24gZXJyb3IuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3NldEVycm9yUmVkQmFja2dyb3VuZEFmdGVyU2NyQ2ZnVmFsaWRhdGUoZXJyb3JWYWxpZGF0aW9uOiBWYWxpZGF0aW9uUmVzdWx0KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaG9zdENvbXBvbmVudCAmJiBlcnJvclZhbGlkYXRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlczogVmFsaWRhdGlvbk1lc3NhZ2VbXSA9IGVycm9yVmFsaWRhdGlvbi5nZXRBbGxFcnJvck1lc3NhZ2VzT2ZNeVZhbGlkYXRpb25GaWVsZHMoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbGVuOiBudW1iZXIgPSBlcnJvck1lc3NhZ2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1zZzogVmFsaWRhdGlvbk1lc3NhZ2UgPSBlcnJvck1lc3NhZ2VzW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnTmFtZTogc3RyaW5nID0gdGhpcy5kYXRhTmFtZSA/IHRoaXMuZGF0YU5hbWUgOiB0aGlzLnNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3Q7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JNc2cuZmllbGRJZCA9PT0gY29uZmlnTmFtZSAmJiB0aGlzLl9lbGVtZW50IC8qJiYgdGhpcy5fcHJvcGVySG9zdChlcnJvck1zZy5ib0lkKSovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LnJlZEVycm9yQmFja2dyb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfbW9kdWxlSW5SZWFkb25seU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLm5vTW9kdWxlU2VydmljZSA/ICh0aGlzLl9tb2R1bGVTZXJ2aWNlID8gdGhpcy5fbW9kdWxlU2VydmljZS5yZWFkb25seSA6IGZhbHNlKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX21heVVwZGF0ZUhvc3QoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5ob3N0Q29tcG9uZW50ICYmICF0aGlzLl9pc1R1cm5lZE9mZiAmJiAhIXRoaXMuc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRIb3N0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LmhpZGRlbiA9ICF2aXNpYmxlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9lbGVtZW50ICYmIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF2aXNpYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hpZGRlbicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLWNvbmZpZy1hZGFwdGVyLmNvbXBvbmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLmNvbXBvbmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnQge1xyXG4gIG9iamVjdENvbmZpZ05hbWU6IHN0cmluZztcclxuICBoaWRkZW46IGJvb2xlYW47XHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgZm9yY2VSZWFkb25seTogYm9vbGVhbjtcclxuICByZWFkb25seTogYm9vbGVhbjtcclxuICBtYXhMZW5ndGg6IG51bWJlcjtcclxuICBkZWNpbWFsczogbnVtYmVyO1xyXG4gIHJlZEVycm9yQmFja2dyb3VuZDogYm9vbGVhbjtcclxuICBjb25maWdPYmplY3Q/OiBPYmplY3RDb25maWd1cmF0aW9uO1xyXG5cclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLWNvbmZpZy1hZGFwdGVyLmNvbXBvbmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLmNvbXBvbmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbkRlZmF1bHRWYWx1ZVR5cGV9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3R5cGUvb2JqZWN0LWNvbmZpZ3VyYXRpb24tZGVmYXVsdC12YWx1ZS10eXBlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudCB7XHJcbiAgb2JqZWN0Q29uZmlnTmFtZTogc3RyaW5nO1xyXG4gIGhpZGRlbjogYm9vbGVhbjtcclxuICByZXF1aXJlZDogYm9vbGVhbjtcclxuICBmb3JjZVJlYWRvbmx5OiBib29sZWFuO1xyXG4gIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gIG1heExlbmd0aDogbnVtYmVyO1xyXG4gIGRlZmF1bHRWYWx1ZT86IE9iamVjdENvbmZpZ3VyYXRpb25EZWZhdWx0VmFsdWVUeXBlO1xyXG4gIGRlY2ltYWxzOiBudW1iZXI7XHJcbiAgcmVkRXJyb3JCYWNrZ3JvdW5kOiBib29sZWFuO1xyXG4gIGNvbmZpZ09iamVjdD86IE9iamVjdENvbmZpZ3VyYXRpb247XHJcbn1cclxuIl19
@@ -101,7 +101,7 @@ export class BaseModuleScreenConfigService {
101
101
  }
102
102
  getDefaultValue(configName) {
103
103
  const objectConfig = this._objectConfigsMap.get(configName);
104
- return objectConfig ? objectConfig.getDefaultValue() : undefined;
104
+ return objectConfig ? objectConfig.defaultValue : undefined;
105
105
  }
106
106
  getDefaultStringValue(configName) {
107
107
  const objectConfig = this._objectConfigsMap.get(configName);
@@ -202,4 +202,4 @@ export class BaseModuleScreenConfigService {
202
202
  BaseModuleScreenConfigService.decorators = [
203
203
  { type: Injectable }
204
204
  ];
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2R1bGUtc2NyZWVuLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlL2Jhc2UtbW9kdWxlLXNjcmVlbi1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUpBQWlKO0FBQ2pKLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFNM0UsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDckksT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFHN0YsTUFBTSxPQUFnQiw2QkFBNkI7SUFEbkQ7UUFLSSxnRkFBZ0Y7UUFDaEUsY0FBUyxHQUE4QixJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQVFqRixtQkFBYyxHQUEwQixFQUFFLENBQUM7UUFFbkQsdUpBQXVKO1FBQy9JLHNCQUFpQixHQUFxQyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztJQW1OekcsQ0FBQztJQTVORyxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFTRCwwRUFBMEU7SUFDN0QsVUFBVSxDQUFDLFNBQW1CLHVDQUF1QyxFQUFFLFlBQXNCOztZQUN0RyxNQUFNLGFBQWEsR0FBMEIsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xHLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLElBQUksYUFBYSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQy9DLElB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QVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU0sSUFBSSxlQUFlLEVBQUU7WUFDeEIsTUFBTSxhQUFhLEdBQXdCLGVBQWUsQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDO1lBQ3JHLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RFLE1BQU0sUUFBUSxHQUFzQixhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sWUFBWSxHQUF3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNwSCxJQUFJLFlBQVksRUFBRTtvQkFDZCxNQUFNLElBQUksR0FBd0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLG1CQUFtQixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQ3pGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7b0JBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNqRTthQUNKO1NBQ0o7SUFDTCxDQUFDOzs7WUFuT0osVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEJhc2Ugc2NyZWVuIGNvbmZpZ3VyYXRpb24gc2VydmljZSBmb3Igb25lIFwic2NyZWVuIG1vZHVsZVwiLCBlLmcuICdDcm0nLiBEYi1sb2Fkcywgc3RvcmVzIGFuZCBhbmQgaW50ZXJwcmV0cyBPYmplY3RDb25maWd1cmF0aW9uIGNvbmZpZyBvYmplY3RzLlxyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdXRpbHMvYXJyYXktdXRpbHMnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3QnO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9uRGVmYXVsdFZhbHVlVHlwZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdHlwZS9vYmplY3QtY29uZmlndXJhdGlvbi1kZWZhdWx0LXZhbHVlLXR5cGUnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ0tpbmR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL2VudW0vb2JqZWN0LWNvbmZpZy1raW5kJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uTWVzc2FnZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1tZXNzYWdlJztcclxuaW1wb3J0IHtERUZBVUxUX0dFVF9PQkpFQ1RfQ09ORklHVVJBVElPTl9QQVJBTVN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL2RlZmF1bHQtZ2V0LW9iamVjdC1jb25maWd1cmF0aW9ucy1wYXJhbXMnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlIHtcclxuICAgIC8vIG1hbnVhbGx5IGdpdmVuIG1vZHVsZSBuYW1lXHJcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2NyZWVuTW9kdWxlTmFtZTogc3RyaW5nO1xyXG5cclxuICAgIC8vIGVtaXRzIHRoZSBwYXJhbXMgb2YgdGhlIGxvYWRlZCBjb25maWcsIGVhY2ggdGltZSB3aGVuIGEgbmV3IGNvbmZpZyB3YXMgbG9hZGVkXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnU2V0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgY29uZmlnT2JqZWN0cygpOiBPYmplY3RDb25maWd1cmF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdPYmplY3RzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb250cm9sVmFsaWRpdHlCeUJvTWFwOiB7Ym86IEJ1c2luZXNzT2JqZWN0LCBjb250cm9sS2V5OiBzdHJpbmcsIHZhbGlkOiBib29sZWFufVtdO1xyXG5cclxuICAgIHByaXZhdGUgX2NvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSA9IFtdO1xyXG5cclxuICAgIC8vIGtleTogY29uZmlnTmFtZSwgdmFsdWU6IHRoZSBPYmplY3RDb25maWd1cmF0aW9uIHdpdGggdGhhdCBjb25maWdOYW1lLiBGb3IgZmFzdGVyIE9iamVjdENvbmZpZ3VyYXRpb24gbG9va3VwcywgZ2l2ZW4gYSBjb25maWdOYW1lIHN0cmluZyAodnMuIGFycmF5KS5cclxuICAgIHByaXZhdGUgX29iamVjdENvbmZpZ3NNYXA6IE1hcDxzdHJpbmcsIE9iamVjdENvbmZpZ3VyYXRpb24+ID0gbmV3IE1hcDxzdHJpbmcsIE9iamVjdENvbmZpZ3VyYXRpb24+KCk7XHJcblxyXG4gICAgLy8gUE9TVDogdGhpcy5jb25maWdPYmplY3RzIGFyZSBsb2FkZWQuIFJldHVybnMgdGhlIGxvYWRlZCBjb25maWcgb2JqZWN0cy5cclxuICAgIHB1YmxpYyBhc3luYyBsb2FkQ29uZmlnKHBhcmFtczogc3RyaW5nW10gPSBERUZBVUxUX0dFVF9PQkpFQ1RfQ09ORklHVVJBVElPTl9QQVJBTVMsIGluc2VydFJpZ2h0cz86IGJvb2xlYW4pOiBQcm9taXNlPE9iamVjdENvbmZpZ3VyYXRpb25bXT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSA9IGF3YWl0IHRoaXMubG9hZENvbmZpZ0Zvck1vZHVsZShwYXJhbXMsIGluc2VydFJpZ2h0cyk7XHJcbiAgICAgICAgdGhpcy5fY29uZmlnT2JqZWN0cyA9IGNvbmZpZ09iamVjdHM7XHJcbiAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgQXJyYXkuaXNBcnJheShjb25maWdPYmplY3RzKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9idWlsZFNjcmVlbkNvbmZpZ01hcCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1NldC5uZXh0KHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdPYmplY3RzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBsYXp5TG9hZENvbmZpZygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnT2JqZWN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0FjdGl2ZUZpZWxkVmFsaWRhdGlvbk9iamVjdChjb25maWdPYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoY29uZmlnT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb25maWdPYmplY3QuaXNBY3RpdmVGaWVsZFZhbGlkYXRpb25PYmplY3QoKSAmJiAhdGhpcy5pc0RhdGFOYW1lSGlkZGVuQnlBbnlPZkl0c1BhcmVudFJ1YnJpY3MoY29uZmlnT2JqZWN0LmRhdGFOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQm9WYWxpZChibzogQnVzaW5lc3NPYmplY3QpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sVmFsaWRpdHlCeUJvTWFwICYmICFBcnJheVV0aWxzLklzRW1wdHlBcnJheSh0aGlzLmNvbnRyb2xWYWxpZGl0eUJ5Qm9NYXApKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcEVudHJ5OiB7Ym86IEJ1c2luZXNzT2JqZWN0LCBjb250cm9sS2V5OiBzdHJpbmcsIHZhbGlkOiBib29sZWFufSA9IHRoaXMuY29udHJvbFZhbGlkaXR5QnlCb01hcC5maW5kKHZhbHVlID0+IHZhbHVlLmJvID09PSBibyAmJiB2YWx1ZS52YWxpZCA9PT0gZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAobWFwRW50cnkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBtYXBFbnRyeS52YWxpZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihjb25maWdOYW1lOiBzdHJpbmcpOiBPYmplY3RDb25maWd1cmF0aW9uIHtcclxuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcblxyXG4gICAgICAgIC8vIElmIGNvbmZpZ3VyYXRpb24gbm90IGZvdW5kIGJ5IGNvbmZpZ25hbWUsIHRyeSBieSBkYXRhIG5hbWVcclxuICAgICAgICBpZiAoISF0aGlzLl9vYmplY3RDb25maWdzTWFwLnNpemUgJiYgIWNvbmZpZ3VyYXRpb24gJiYgY29uZmlnTmFtZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjb25maWdOYW1lQnlEYXRhTmFtZTogc3RyaW5nID0gdGhpcy5fZ2V0Q29uZmlnTmFtZUJ5RGF0YU5hbWUoY29uZmlnTmFtZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZUJ5RGF0YU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZUJ5RGF0YU5hbWUpO1xyXG4gICAgICAgICAgICB9IC8qZWxzZSBpZiAoIWVudmlyb25tZW50LnByb2R1Y3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk5vIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHdhcyBmb3VuZCBieSB0aGUgbmFtZSBvZjogXCIsIGNvbmZpZ05hbWUsIFwiIG9yIGRhdGFuYW1lIFwiLCBjb25maWdOYW1lQnlEYXRhTmFtZSk7XHJcbiAgICAgICAgICAgIH0qL1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IoY29uZmlnTmFtZTogc3RyaW5nLCBjb25maWdPYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vYmplY3RDb25maWdzTWFwLnNldChjb25maWdOYW1lLCBjb25maWdPYmplY3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgbWF5IHJlYWQgdGhlIGNvbXBvbmVudCB0aGF0J3MgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGNvbmZpZyBvYmplY3QgKHZpc2liaWxpdHkpLlxyXG4gICAgcHVibGljIG1heVJlYWQoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5tYXlSZWFkKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNSZWFkb25seShjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMubWF5V3JpdGUoY29uZmlnTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gV2hldGhlciB0aGUgdXNlciBtYXkgd3JpdGUgb250byB0aGUgY29tcG9uZW50IHRoYXQncyBhc3NvY2lhdGVkIHdpdGggZ2l2ZW4gY29uZmlnIG9iamVjdC5cclxuICAgIHB1YmxpYyBtYXlXcml0ZShjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLm1heVdyaXRlKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBXaGV0aGVyIHRoZSBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGNvbmZpZyBvYmplY3Qgc2hvdWxkLCBmcm9tIHRoZSBzdGFydCwgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cclxuICAgIHB1YmxpYyBpbW1lZGlhdGVseVZpc2libGUoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5pbW1lZGlhdGVseVZpc2libGUoKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBhc3NvY2lhdGVkIHdpdGggZ2l2ZW4gY29uZmlnIG9iamVjdCBzaG91bGQsIGZyb20gdGhlIHN0YXJ0LCBiZSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxyXG4gICAgcHVibGljIGltbWVkaWF0ZWx5SGlkZGVuKGNvbmZpZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuaW1tZWRpYXRlbHlIaWRkZW4oKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBub1JpZ2h0cyhjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLm5vUmlnaHRzKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNIaWRkZW4oY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmltbWVkaWF0ZWx5VmlzaWJsZShjb25maWdOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNSZXF1aXJlZChjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gIW9iamVjdENvbmZpZy5udWxsYWJsZSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXREZWZhdWx0VmFsdWUoY29uZmlnTmFtZTogc3RyaW5nKTogT2JqZWN0Q29uZmlndXJhdGlvbkRlZmF1bHRWYWx1ZVR5cGUge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuZ2V0RGVmYXVsdFZhbHVlKCkgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldERlZmF1bHRTdHJpbmdWYWx1ZShjb25maWdOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuZ2V0RGVmYXVsdFN0cmluZ1ZhbHVlKCkgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldERlZmF1bHROdW1iZXJWYWx1ZShjb25maWdOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuZ2V0RGVmYXVsdE51bWJlclZhbHVlKCkgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldE1heExlbmd0aChjb25maWdOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcubWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXREZWNpbWFscyhjb25maWdOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuc2NhbGUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhc0NvbmZpZ09iamVjdHMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZ09iamVjdHMgJiYgdGhpcy5fY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwICYmIHRoaXMuX29iamVjdENvbmZpZ3NNYXAuc2l6ZSA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzS2luZChjb25maWdOYW1lOiBzdHJpbmcsIGtpbmQ6IE9iamVjdENvbmZpZ0tpbmQpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLmlzS2luZChraW5kKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0RhdGFOYW1lSGlkZGVuQnlJdHNlbGZPckFueU9mSXRzUGFyZW50UnVicmljcyhkYXRhTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgaXNIaWRkZW5JdHNlbGY6IGJvb2xlYW4gPSBBcnJheVV0aWxzLkNvbnRhaW5zQW5FbGVtZW50Rm91bmRCeSh0aGlzLl9jb25maWdPYmplY3RzLCAoKGl0ZW06IE9iamVjdENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZGF0YU5hbWUgPT09IGRhdGFOYW1lICYmIGl0ZW0uaXNIaWRkZW4oKTtcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKGlzSGlkZGVuSXRzZWxmKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRGF0YU5hbWVIaWRkZW5CeUFueU9mSXRzUGFyZW50UnVicmljcyhkYXRhTmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkIGJ5IGRlc2NlbmRhbnRzXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZENvbmZpZ0Zvck1vZHVsZShwYXJhbXM6IHN0cmluZ1tdLCBpbnNlcnRSaWdodHM/OiBib29sZWFuKTogUHJvbWlzZTxPYmplY3RDb25maWd1cmF0aW9uW10+O1xyXG5cclxuICAgIHByaXZhdGUgaXNEYXRhTmFtZUhpZGRlbkJ5QW55T2ZJdHNQYXJlbnRSdWJyaWNzKGRhdGFOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBpZiAodGhpcy5faGFyZENvZGVkQ29uZmlnU3RydWN0dXJlKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IHBhcmVudENvbmZpZ05hbWVzOiBzdHJpbmdbXSA9IHRoaXMuX2hhcmRDb2RlZENvbmZpZ1N0cnVjdHVyZS5nZXRQYXJlbnRDb25maWdOYW1lc09mRmllbGRDb25maWdOYW1lKHRoaXMuX2dldENvbmZpZ05hbWVCeURhdGFOYW1lKGRhdGFOYW1lKSk7XHJcbiAgICAgICAgLy8gICAgIGlmIChwYXJlbnRDb25maWdOYW1lcykge1xyXG4gICAgICAgIC8vICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbGVuOiBudW1iZXIgPSBwYXJlbnRDb25maWdOYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnN0IHBhcmVudENvbmZpZ09iajogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihwYXJlbnRDb25maWdOYW1lc1tpXSk7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgaWYgKHBhcmVudENvbmZpZ09iaiAmJiBwYXJlbnRDb25maWdPYmouaXNIaWRkZW4oKSkge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmV0dXJuIHRoZSBmaXJzdCBmb3VuZCBjb25maWcgbmFtZSBmb3IgZ2l2ZW4gZGF0YSBuYW1lXHJcbiAgICBwcml2YXRlIF9nZXRDb25maWdOYW1lQnlEYXRhTmFtZShkYXRhTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBpdHNDb25maWdPYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9nZXRDb25maWdPYmplY3RCeURhdGFOYW1lKGRhdGFOYW1lKTtcclxuICAgICAgICBpZiAoaXRzQ29uZmlnT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdHNDb25maWdPYmplY3QuY29uZmlnTmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmV0dXJuIHRoZSBmaXJzdCBmb3VuZCBjb25maWcgb2JqZWN0IHdpdGggZ2l2ZW4gZGF0YSBuYW1lXHJcbiAgICBwcml2YXRlIF9nZXRDb25maWdPYmplY3RCeURhdGFOYW1lKGRhdGFOYW1lOiBzdHJpbmcpOiBPYmplY3RDb25maWd1cmF0aW9uIHtcclxuICAgICAgICByZXR1cm4gQXJyYXlVdGlscy5GaW5kKHRoaXMuX2NvbmZpZ09iamVjdHMsIChjZmdPYmo6IE9iamVjdENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGNmZ09iai5kYXRhTmFtZSA9PT0gZGF0YU5hbWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUFJFOiB0aGlzLmNvbmZpZ09iamVjdHMgaXMgbG9hZGVkLiBQT1NUOiB0aGlzLl9vYmplY3RDb25maWdzTWFwIGNvbnRhaW5zIHRoZSBsYXRlc3QgbWFwIG9mIGNvbmZpZ05hbWUgLT4gdG8gLT4gT2JqZWN0Q29uZmlndXJhdGlvbiBmb3IgYSBsaXZlIHNjcmVlbiBtb2R1bGUuXHJcbiAgICBwcml2YXRlIF9idWlsZFNjcmVlbkNvbmZpZ01hcCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vYmplY3RDb25maWdzTWFwLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb25maWdPYmplY3RzLmZvckVhY2goaXRlbSA9PiB0aGlzLl9vYmplY3RDb25maWdzTWFwLnNldChpdGVtLmNvbmZpZ05hbWUsIGl0ZW0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdHNSZWFkT25seSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29uZmlnT2JqZWN0cy5mb3JFYWNoKChvYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29weTogT2JqZWN0Q29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24obmV3IE9iamVjdENvbmZpZ3VyYXRpb24oKSwgb2JqZWN0KTtcclxuICAgICAgICAgICAgY29weS52YXJpYWJsZVJlYWRPbmx5ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihvYmplY3QuY29uZmlnTmFtZSwgY29weSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RzUmVkRXJyb3JCYWNrZ3JvdW5kKGVycm9yVmFsaWRhdGlvbjogVmFsaWRhdGlvblJlc3VsdCwgc2V0QWxsRmFsc2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChzZXRBbGxGYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ09iamVjdHMuZm9yRWFjaCgob2JqZWN0OiBPYmplY3RDb25maWd1cmF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb3B5OiBPYmplY3RDb25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihuZXcgT2JqZWN0Q29uZmlndXJhdGlvbigpLCBvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgY29weS5yZWRFcnJvckJhY2tncm91bmQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihvYmplY3QuY29uZmlnTmFtZSwgY29weSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JWYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXM6IFZhbGlkYXRpb25NZXNzYWdlW10gPSBlcnJvclZhbGlkYXRpb24uZ2V0QWxsRXJyb3JNZXNzYWdlc09mTXlWYWxpZGF0aW9uRmllbGRzKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gZXJyb3JNZXNzYWdlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNc2c6IFZhbGlkYXRpb25NZXNzYWdlID0gZXJyb3JNZXNzYWdlc1tpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZ09iamVjdDogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuY29uZmlnT2JqZWN0cy5maW5kKG9iamVjdCA9PiBvYmplY3QuY29uZmlnTmFtZSA9PT0gZXJyb3JNc2cuZmllbGRJZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnT2JqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29weTogT2JqZWN0Q29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24obmV3IE9iamVjdENvbmZpZ3VyYXRpb24oKSwgY29uZmlnT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICBjb3B5LnJlZEVycm9yQmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihjb25maWdPYmplY3QuY29uZmlnTmFtZSwgY29weSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2R1bGUtc2NyZWVuLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlL2Jhc2UtbW9kdWxlLXNjcmVlbi1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUpBQWlKO0FBQ2pKLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFNM0UsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDckksT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFHN0YsTUFBTSxPQUFnQiw2QkFBNkI7SUFEbkQ7UUFLSSxnRkFBZ0Y7UUFDaEUsY0FBUyxHQUE4QixJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQVFqRixtQkFBYyxHQUEwQixFQUFFLENBQUM7UUFFbkQsdUpBQXVKO1FBQy9JLHNCQUFpQixHQUFxQyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztJQW1OekcsQ0FBQztJQTVORyxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFTRCwwRUFBMEU7SUFDN0QsVUFBVSxDQUFDLFNBQW1CLHVDQUF1QyxFQUFFLFlBQXNCOztZQUN0RyxNQUFNLGFBQWEsR0FBMEIsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xHLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLElBQUksYUFBYSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvQjtZQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDO0tBQUE7SUFFWSxjQUFjOztZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzNCO1FBQ0wsQ0FBQztLQUFBO0lBRU0sNkJBQTZCLENBQUMsWUFBaUM7UUFDbEUsSUFBSSxZQUFZLEVBQUU7WUFDZCxPQUFPLFlBQVksQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLHVDQUF1QyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvSDtJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsRUFBa0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQ3RGLE1BQU0sUUFBUSxHQUE2RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUMvSixJQUFJLFFBQVEsRUFBRTtnQkFDVixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDekI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxVQUFrQjtRQUMvQyxNQUFNLGFBQWEsR0FBd0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRiw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxVQUFVLEVBQUU7WUFDL0QsTUFBTSxvQkFBb0IsR0FBVyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFL0UsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2xELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQzNELENBQUM7O2VBRUM7U0FDTjtRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxVQUFrQixFQUFFLFlBQWlDO1FBQ2xGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxtR0FBbUc7SUFDNUYsT0FBTyxDQUFDLFVBQWtCO1FBQzdCLE1BQU0sWUFBWSxHQUF3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDO0lBRU0sVUFBVSxDQUFDLFVBQWtCO1FBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCw0RkFBNEY7SUFDckYsUUFBUSxDQUFDLFVBQWtCO1FBQzlCLE1BQU0sWUFBWSxHQUF3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxRCxDQUFDO0lBRUQsNEdBQTRHO0lBQ3JHLGtCQUFrQixDQUFDLFVBQWtCO1FBQ3hDLE1BQU0sWUFBWSxHQUF3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BFLENBQUM7SUFFRCw0R0FBNEc7SUFDckcsaUJBQWlCLENBQUMsVUFBa0I7UUFDdkMsTUFBTSxZQUFZLEdBQXdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxVQUFrQjtRQUM5QixNQUFNLFlBQVksR0FBd0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDMUQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxVQUFVLENBQUMsVUFBa0I7UUFDaEMsTUFBTSxZQUFZLEdBQXdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3pELENBQUM7SUFFTSxlQUFlLENBQUMsVUFBa0I7UUFDckMsTUFBTSxZQUFZLEdBQXdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRSxDQUFDO0lBRU0scUJBQXFCLENBQUMsVUFBa0I7UUFDM0MsTUFBTSxZQUFZLEdBQXdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDM0UsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFVBQWtCO1FBQzNDLE1BQU0sWUFBWSxHQUF3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNFLENBQUM7SUFFTSxZQUFZLENBQUMsVUFBa0I7UUFDbEMsTUFBTSxZQUFZLEdBQXdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sV0FBVyxDQUFDLFVBQWtCO1FBQ2pDLE1BQU0sWUFBWSxHQUF3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBa0IsRUFBRSxJQUFzQjtRQUNwRCxNQUFNLFlBQVksR0FBd0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzVELENBQUM7SUFFTSwrQ0FBK0MsQ0FBQyxRQUFnQjtRQUNuRSxNQUFNLGNBQWMsR0FBWSxVQUFVLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsSUFBeUIsRUFBRSxFQUFFO1lBQ3BILE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLGNBQWMsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFLTyx1Q0FBdUMsQ0FBQyxRQUFnQjtRQUM1RCx3Q0FBd0M7UUFDeEMseUpBQXlKO1FBQ3pKLCtCQUErQjtRQUMvQiwwRkFBMEY7UUFDMUYsaUhBQWlIO1FBQ2pILG1FQUFtRTtRQUNuRSwrQkFBK0I7UUFDL0IsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixRQUFRO1FBQ1Isb0JBQW9CO1FBQ3BCLElBQUk7UUFDSixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQseURBQXlEO0lBQ2pELHdCQUF3QixDQUFDLFFBQWdCO1FBQzdDLE1BQU0sZUFBZSxHQUF3QixJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkYsSUFBSSxlQUFlLEVBQUU7WUFDakIsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQUVELDREQUE0RDtJQUNwRCwwQkFBMEIsQ0FBQyxRQUFnQjtRQUMvQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQTJCLEVBQUUsRUFBRTtZQUN4RSxPQUFPLE1BQU0sQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELCtKQUErSjtJQUN2SixxQkFBcUI7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVNLHFDQUFxQyxDQUFDLEtBQWM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUU7WUFDdkQsTUFBTSxJQUFJLEdBQXdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sK0NBQStDLENBQUMsZUFBaUMsRUFBRSxjQUF1QixLQUFLO1FBQ2xILElBQUksV0FBVyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUU7Z0JBQ3ZELE1BQU0sSUFBSSxHQUF3QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksbUJBQW1CLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztnQkFDaEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNLElBQUksZUFBZSxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUF3QixlQUFlLENBQUMsdUNBQXVDLEVBQUUsQ0FBQztZQUNyRyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxHQUFHLEdBQVcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0RSxNQUFNLFFBQVEsR0FBc0IsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNLFlBQVksR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDcEgsSUFBSSxZQUFZLEVBQUU7b0JBQ2QsTUFBTSxJQUFJLEdBQXdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUN6RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO29CQUNoQyxJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDakU7YUFDSjtTQUNKO0lBQ0wsQ0FBQzs7O1lBbk9KLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCYXNlIHNjcmVlbiBjb25maWd1cmF0aW9uIHNlcnZpY2UgZm9yIG9uZSBcInNjcmVlbiBtb2R1bGVcIiwgZS5nLiAnQ3JtJy4gRGItbG9hZHMsIHN0b3JlcyBhbmQgYW5kIGludGVycHJldHMgT2JqZWN0Q29uZmlndXJhdGlvbiBjb25maWcgb2JqZWN0cy5cclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FycmF5VXRpbHN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2FycmF5LXV0aWxzJztcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0JztcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdCc7XHJcbmltcG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbkRlZmF1bHRWYWx1ZVR5cGV9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3R5cGUvb2JqZWN0LWNvbmZpZ3VyYXRpb24tZGVmYXVsdC12YWx1ZS10eXBlJztcclxuaW1wb3J0IHtPYmplY3RDb25maWdLaW5kfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL29iamVjdC1jb25maWcta2luZCc7XHJcbmltcG9ydCB7VmFsaWRhdGlvbk1lc3NhZ2V9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7REVGQVVMVF9HRVRfT0JKRUNUX0NPTkZJR1VSQVRJT05fUEFSQU1TfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9kZWZhdWx0LWdldC1vYmplY3QtY29uZmlndXJhdGlvbnMtcGFyYW1zJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSB7XHJcbiAgICAvLyBtYW51YWxseSBnaXZlbiBtb2R1bGUgbmFtZVxyXG4gICAgcHVibGljIGFic3RyYWN0IHNjcmVlbk1vZHVsZU5hbWU6IHN0cmluZztcclxuXHJcbiAgICAvLyBlbWl0cyB0aGUgcGFyYW1zIG9mIHRoZSBsb2FkZWQgY29uZmlnLCBlYWNoIHRpbWUgd2hlbiBhIG5ldyBjb25maWcgd2FzIGxvYWRlZFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ1NldDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNvbmZpZ09iamVjdHMoKTogT2JqZWN0Q29uZmlndXJhdGlvbltdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnT2JqZWN0cztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29udHJvbFZhbGlkaXR5QnlCb01hcDoge2JvOiBCdXNpbmVzc09iamVjdCwgY29udHJvbEtleTogc3RyaW5nLCB2YWxpZDogYm9vbGVhbn1bXTtcclxuXHJcbiAgICBwcml2YXRlIF9jb25maWdPYmplY3RzOiBPYmplY3RDb25maWd1cmF0aW9uW10gPSBbXTtcclxuXHJcbiAgICAvLyBrZXk6IGNvbmZpZ05hbWUsIHZhbHVlOiB0aGUgT2JqZWN0Q29uZmlndXJhdGlvbiB3aXRoIHRoYXQgY29uZmlnTmFtZS4gRm9yIGZhc3RlciBPYmplY3RDb25maWd1cmF0aW9uIGxvb2t1cHMsIGdpdmVuIGEgY29uZmlnTmFtZSBzdHJpbmcgKHZzLiBhcnJheSkuXHJcbiAgICBwcml2YXRlIF9vYmplY3RDb25maWdzTWFwOiBNYXA8c3RyaW5nLCBPYmplY3RDb25maWd1cmF0aW9uPiA9IG5ldyBNYXA8c3RyaW5nLCBPYmplY3RDb25maWd1cmF0aW9uPigpO1xyXG5cclxuICAgIC8vIFBPU1Q6IHRoaXMuY29uZmlnT2JqZWN0cyBhcmUgbG9hZGVkLiBSZXR1cm5zIHRoZSBsb2FkZWQgY29uZmlnIG9iamVjdHMuXHJcbiAgICBwdWJsaWMgYXN5bmMgbG9hZENvbmZpZyhwYXJhbXM6IHN0cmluZ1tdID0gREVGQVVMVF9HRVRfT0JKRUNUX0NPTkZJR1VSQVRJT05fUEFSQU1TLCBpbnNlcnRSaWdodHM/OiBib29sZWFuKTogUHJvbWlzZTxPYmplY3RDb25maWd1cmF0aW9uW10+IHtcclxuICAgICAgICBjb25zdCBjb25maWdPYmplY3RzOiBPYmplY3RDb25maWd1cmF0aW9uW10gPSBhd2FpdCB0aGlzLmxvYWRDb25maWdGb3JNb2R1bGUocGFyYW1zLCBpbnNlcnRSaWdodHMpO1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZ09iamVjdHMgPSBjb25maWdPYmplY3RzO1xyXG4gICAgICAgIGlmIChjb25maWdPYmplY3RzICYmIEFycmF5LmlzQXJyYXkoY29uZmlnT2JqZWN0cykpIHtcclxuICAgICAgICAgICAgdGhpcy5fYnVpbGRTY3JlZW5Db25maWdNYXAoKTtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdTZXQubmV4dChwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnT2JqZWN0cztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgbGF6eUxvYWRDb25maWcoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ09iamVjdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZENvbmZpZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBY3RpdmVGaWVsZFZhbGlkYXRpb25PYmplY3QoY29uZmlnT2JqZWN0OiBPYmplY3RDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGNvbmZpZ09iamVjdCkge1xyXG4gICAgICAgICAgICByZXR1cm4gY29uZmlnT2JqZWN0LmlzQWN0aXZlRmllbGRWYWxpZGF0aW9uT2JqZWN0KCkgJiYgIXRoaXMuaXNEYXRhTmFtZUhpZGRlbkJ5QW55T2ZJdHNQYXJlbnRSdWJyaWNzKGNvbmZpZ09iamVjdC5kYXRhTmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0JvVmFsaWQoYm86IEJ1c2luZXNzT2JqZWN0KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbFZhbGlkaXR5QnlCb01hcCAmJiAhQXJyYXlVdGlscy5Jc0VtcHR5QXJyYXkodGhpcy5jb250cm9sVmFsaWRpdHlCeUJvTWFwKSkge1xyXG4gICAgICAgICAgICBjb25zdCBtYXBFbnRyeToge2JvOiBCdXNpbmVzc09iamVjdCwgY29udHJvbEtleTogc3RyaW5nLCB2YWxpZDogYm9vbGVhbn0gPSB0aGlzLmNvbnRyb2xWYWxpZGl0eUJ5Qm9NYXAuZmluZCh2YWx1ZSA9PiB2YWx1ZS5ibyA9PT0gYm8gJiYgdmFsdWUudmFsaWQgPT09IGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKG1hcEVudHJ5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwRW50cnkudmFsaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IoY29uZmlnTmFtZTogc3RyaW5nKTogT2JqZWN0Q29uZmlndXJhdGlvbiB7XHJcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbjogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG5cclxuICAgICAgICAvLyBJZiBjb25maWd1cmF0aW9uIG5vdCBmb3VuZCBieSBjb25maWduYW1lLCB0cnkgYnkgZGF0YSBuYW1lXHJcbiAgICAgICAgaWYgKCEhdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5zaXplICYmICFjb25maWd1cmF0aW9uICYmIGNvbmZpZ05hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgY29uZmlnTmFtZUJ5RGF0YU5hbWU6IHN0cmluZyA9IHRoaXMuX2dldENvbmZpZ05hbWVCeURhdGFOYW1lKGNvbmZpZ05hbWUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWVCeURhdGFOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWVCeURhdGFOYW1lKTtcclxuICAgICAgICAgICAgfSAvKmVsc2UgaWYgKCFlbnZpcm9ubWVudC5wcm9kdWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJObyBjb25maWd1cmF0aW9uIG9iamVjdCB3YXMgZm91bmQgYnkgdGhlIG5hbWUgb2Y6IFwiLCBjb25maWdOYW1lLCBcIiBvciBkYXRhbmFtZSBcIiwgY29uZmlnTmFtZUJ5RGF0YU5hbWUpO1xyXG4gICAgICAgICAgICB9Ki9cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKGNvbmZpZ05hbWU6IHN0cmluZywgY29uZmlnT2JqZWN0OiBPYmplY3RDb25maWd1cmF0aW9uKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5zZXQoY29uZmlnTmFtZSwgY29uZmlnT2JqZWN0KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBXaGV0aGVyIHRoZSB1c2VyIG1heSByZWFkIHRoZSBjb21wb25lbnQgdGhhdCdzIGFzc29jaWF0ZWQgd2l0aCBnaXZlbiBjb25maWcgb2JqZWN0ICh2aXNpYmlsaXR5KS5cclxuICAgIHB1YmxpYyBtYXlSZWFkKGNvbmZpZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcubWF5UmVhZCgpIDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzUmVhZG9ubHkoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLm1heVdyaXRlKGNvbmZpZ05hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgbWF5IHdyaXRlIG9udG8gdGhlIGNvbXBvbmVudCB0aGF0J3MgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGNvbmZpZyBvYmplY3QuXHJcbiAgICBwdWJsaWMgbWF5V3JpdGUoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5tYXlXcml0ZSgpIDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gV2hldGhlciB0aGUgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCBnaXZlbiBjb25maWcgb2JqZWN0IHNob3VsZCwgZnJvbSB0aGUgc3RhcnQsIGJlIHZpc2libGUgdG8gdGhlIHVzZXIuXHJcbiAgICBwdWJsaWMgaW1tZWRpYXRlbHlWaXNpYmxlKGNvbmZpZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuaW1tZWRpYXRlbHlWaXNpYmxlKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBXaGV0aGVyIHRoZSBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGNvbmZpZyBvYmplY3Qgc2hvdWxkLCBmcm9tIHRoZSBzdGFydCwgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cclxuICAgIHB1YmxpYyBpbW1lZGlhdGVseUhpZGRlbihjb25maWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLmltbWVkaWF0ZWx5SGlkZGVuKCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbm9SaWdodHMoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5ub1JpZ2h0cygpIDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzSGlkZGVuKGNvbmZpZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pbW1lZGlhdGVseVZpc2libGUoY29uZmlnTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzUmVxdWlyZWQoY29uZmlnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/ICFvYmplY3RDb25maWcubnVsbGFibGUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RGVmYXVsdFZhbHVlKGNvbmZpZ05hbWU6IHN0cmluZyk6IE9iamVjdENvbmZpZ3VyYXRpb25EZWZhdWx0VmFsdWVUeXBlIHtcclxuICAgICAgICBjb25zdCBvYmplY3RDb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb24gPSB0aGlzLl9vYmplY3RDb25maWdzTWFwLmdldChjb25maWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gb2JqZWN0Q29uZmlnID8gb2JqZWN0Q29uZmlnLmRlZmF1bHRWYWx1ZSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RGVmYXVsdFN0cmluZ1ZhbHVlKGNvbmZpZ05hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5nZXREZWZhdWx0U3RyaW5nVmFsdWUoKSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RGVmYXVsdE51bWJlclZhbHVlKGNvbmZpZ05hbWU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5nZXREZWZhdWx0TnVtYmVyVmFsdWUoKSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0TWF4TGVuZ3RoKGNvbmZpZ05hbWU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5tYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldERlY2ltYWxzKGNvbmZpZ05hbWU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0Q29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5nZXQoY29uZmlnTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdENvbmZpZyA/IG9iamVjdENvbmZpZy5zY2FsZSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFzQ29uZmlnT2JqZWN0cygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnT2JqZWN0cyAmJiB0aGlzLl9jb25maWdPYmplY3RzLmxlbmd0aCA+IDAgJiYgdGhpcy5fb2JqZWN0Q29uZmlnc01hcC5zaXplID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNLaW5kKGNvbmZpZ05hbWU6IHN0cmluZywga2luZDogT2JqZWN0Q29uZmlnS2luZCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdENvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuZ2V0KGNvbmZpZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBvYmplY3RDb25maWcgPyBvYmplY3RDb25maWcuaXNLaW5kKGtpbmQpIDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzRGF0YU5hbWVIaWRkZW5CeUl0c2VsZk9yQW55T2ZJdHNQYXJlbnRSdWJyaWNzKGRhdGFOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBpc0hpZGRlbkl0c2VsZjogYm9vbGVhbiA9IEFycmF5VXRpbHMuQ29udGFpbnNBbkVsZW1lbnRGb3VuZEJ5KHRoaXMuX2NvbmZpZ09iamVjdHMsICgoaXRlbTogT2JqZWN0Q29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbS5kYXRhTmFtZSA9PT0gZGF0YU5hbWUgJiYgaXRlbS5pc0hpZGRlbigpO1xyXG4gICAgICAgIH0pKTtcclxuICAgICAgICBpZiAoaXNIaWRkZW5JdHNlbGYpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNEYXRhTmFtZUhpZGRlbkJ5QW55T2ZJdHNQYXJlbnRSdWJyaWNzKGRhdGFOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgYnkgZGVzY2VuZGFudHNcclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBsb2FkQ29uZmlnRm9yTW9kdWxlKHBhcmFtczogc3RyaW5nW10sIGluc2VydFJpZ2h0cz86IGJvb2xlYW4pOiBQcm9taXNlPE9iamVjdENvbmZpZ3VyYXRpb25bXT47XHJcblxyXG4gICAgcHJpdmF0ZSBpc0RhdGFOYW1lSGlkZGVuQnlBbnlPZkl0c1BhcmVudFJ1YnJpY3MoZGF0YU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vIGlmICh0aGlzLl9oYXJkQ29kZWRDb25maWdTdHJ1Y3R1cmUpIHtcclxuICAgICAgICAvLyAgICAgY29uc3QgcGFyZW50Q29uZmlnTmFtZXM6IHN0cmluZ1tdID0gdGhpcy5faGFyZENvZGVkQ29uZmlnU3RydWN0dXJlLmdldFBhcmVudENvbmZpZ05hbWVzT2ZGaWVsZENvbmZpZ05hbWUodGhpcy5fZ2V0Q29uZmlnTmFtZUJ5RGF0YU5hbWUoZGF0YU5hbWUpKTtcclxuICAgICAgICAvLyAgICAgaWYgKHBhcmVudENvbmZpZ05hbWVzKSB7XHJcbiAgICAgICAgLy8gICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IHBhcmVudENvbmZpZ05hbWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgY29uc3QgcGFyZW50Q29uZmlnT2JqOiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHBhcmVudENvbmZpZ05hbWVzW2ldKTtcclxuICAgICAgICAvLyAgICAgICAgICAgICBpZiAocGFyZW50Q29uZmlnT2JqICYmIHBhcmVudENvbmZpZ09iai5pc0hpZGRlbigpKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyByZXR1cm4gdGhlIGZpcnN0IGZvdW5kIGNvbmZpZyBuYW1lIGZvciBnaXZlbiBkYXRhIG5hbWVcclxuICAgIHByaXZhdGUgX2dldENvbmZpZ05hbWVCeURhdGFOYW1lKGRhdGFOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGl0c0NvbmZpZ09iamVjdDogT2JqZWN0Q29uZmlndXJhdGlvbiA9IHRoaXMuX2dldENvbmZpZ09iamVjdEJ5RGF0YU5hbWUoZGF0YU5hbWUpO1xyXG4gICAgICAgIGlmIChpdHNDb25maWdPYmplY3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0c0NvbmZpZ09iamVjdC5jb25maWdOYW1lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyByZXR1cm4gdGhlIGZpcnN0IGZvdW5kIGNvbmZpZyBvYmplY3Qgd2l0aCBnaXZlbiBkYXRhIG5hbWVcclxuICAgIHByaXZhdGUgX2dldENvbmZpZ09iamVjdEJ5RGF0YU5hbWUoZGF0YU5hbWU6IHN0cmluZyk6IE9iamVjdENvbmZpZ3VyYXRpb24ge1xyXG4gICAgICAgIHJldHVybiBBcnJheVV0aWxzLkZpbmQodGhpcy5fY29uZmlnT2JqZWN0cywgKGNmZ09iajogT2JqZWN0Q29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gY2ZnT2JqLmRhdGFOYW1lID09PSBkYXRhTmFtZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBQUkU6IHRoaXMuY29uZmlnT2JqZWN0cyBpcyBsb2FkZWQuIFBPU1Q6IHRoaXMuX29iamVjdENvbmZpZ3NNYXAgY29udGFpbnMgdGhlIGxhdGVzdCBtYXAgb2YgY29uZmlnTmFtZSAtPiB0byAtPiBPYmplY3RDb25maWd1cmF0aW9uIGZvciBhIGxpdmUgc2NyZWVuIG1vZHVsZS5cclxuICAgIHByaXZhdGUgX2J1aWxkU2NyZWVuQ29uZmlnTWFwKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29iamVjdENvbmZpZ3NNYXAuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ09iamVjdHMuZm9yRWFjaChpdGVtID0+IHRoaXMuX29iamVjdENvbmZpZ3NNYXAuc2V0KGl0ZW0uY29uZmlnTmFtZSwgaXRlbSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRTY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0c1JlYWRPbmx5KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb25maWdPYmplY3RzLmZvckVhY2goKG9iamVjdDogT2JqZWN0Q29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb3B5OiBPYmplY3RDb25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihuZXcgT2JqZWN0Q29uZmlndXJhdGlvbigpLCBvYmplY3QpO1xyXG4gICAgICAgICAgICBjb3B5LnZhcmlhYmxlUmVhZE9ubHkgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKG9iamVjdC5jb25maWdOYW1lLCBjb3B5KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdHNSZWRFcnJvckJhY2tncm91bmQoZXJyb3JWYWxpZGF0aW9uOiBWYWxpZGF0aW9uUmVzdWx0LCBzZXRBbGxGYWxzZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHNldEFsbEZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnT2JqZWN0cy5mb3JFYWNoKChvYmplY3Q6IE9iamVjdENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvcHk6IE9iamVjdENvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKG5ldyBPYmplY3RDb25maWd1cmF0aW9uKCksIG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICBjb3B5LnJlZEVycm9yQmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKG9iamVjdC5jb25maWdOYW1lLCBjb3B5KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvclZhbGlkYXRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlczogVmFsaWRhdGlvbk1lc3NhZ2VbXSA9IGVycm9yVmFsaWRhdGlvbi5nZXRBbGxFcnJvck1lc3NhZ2VzT2ZNeVZhbGlkYXRpb25GaWVsZHMoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbGVuOiBudW1iZXIgPSBlcnJvck1lc3NhZ2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1zZzogVmFsaWRhdGlvbk1lc3NhZ2UgPSBlcnJvck1lc3NhZ2VzW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnT2JqZWN0OiBPYmplY3RDb25maWd1cmF0aW9uID0gdGhpcy5jb25maWdPYmplY3RzLmZpbmQob2JqZWN0ID0+IG9iamVjdC5jb25maWdOYW1lID09PSBlcnJvck1zZy5maWVsZElkKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb25maWdPYmplY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3B5OiBPYmplY3RDb25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihuZXcgT2JqZWN0Q29uZmlndXJhdGlvbigpLCBjb25maWdPYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvcHkucmVkRXJyb3JCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKGNvbmZpZ09iamVjdC5jb25maWdOYW1lLCBjb3B5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=