@lowcodeunit/applications-flow-common 1.36.171-10623-surface-error → 1.36.172-LicenseAndBilling

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.
@@ -319,8 +319,7 @@ export class ProjectService {
319
319
  return new Promise((resolve, reject) => {
320
320
  state.Loading = true;
321
321
  this.appsFlowSvc.SubmitFeedEntry(entry).subscribe(async (response) => {
322
- if (response.Status.Code === 0 ||
323
- response.Status.Code === 1) {
322
+ if (response.Status.Code === 0) {
324
323
  resolve(response.Status);
325
324
  var results = await Promise.all([
326
325
  this.LoadEnterpriseAsCode(state),
@@ -399,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
399
398
  providedIn: 'root',
400
399
  }]
401
400
  }], ctorParameters: function () { return [{ type: i1.ApplicationsFlowService }, { type: i2.ActivatedRoute }]; } });
402
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUF3QjNDLE1BQU0sT0FBTyxjQUFjO0lBS3ZCLFlBQ2MsV0FBb0MsRUFDcEMsY0FBOEI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUN6QyxDQUFDO0lBRUosK0ZBQStGO0lBQy9GLGlDQUFpQztJQUVqQyxxQkFBcUI7SUFDckIsdUNBQXVDO0lBQ3ZDLCtDQUErQztJQUMvQywwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBRTNDLG1EQUFtRDtJQUNuRCxpQkFBaUI7SUFDakIsNkRBQTZEO0lBRTdELHdDQUF3QztJQUN4QyxVQUFVO0lBQ1YsVUFBVTtJQUNWLElBQUk7SUFFRyxvQkFBb0IsQ0FDdkIsS0FBNEI7UUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVyQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUM3QyxLQUFLLEVBQUUsUUFBc0IsRUFBRSxFQUFFO2dCQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDNUIsc0RBQXNEO29CQUV0RCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNILEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUV0QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QixPQUFPLENBQUMsR0FB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RWxELElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckMsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxJQUFJLFlBQVksR0FBYSxFQUFFLENBQUM7UUFFaEMsSUFBSSxXQUFXLEVBQUU7WUFDYixZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUErQyxFQUFFLENBQUM7WUFFNUQsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUNuRCxDQUFDLFNBQWlCLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FDSixDQUFDO1lBRUYsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUU5RCxJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFcEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pEO1FBRUQsT0FBTztZQUNILFlBQVksRUFBRSxZQUFZO1lBQzFCLE9BQU8sRUFBRSxPQUFPO1NBQ25CLENBQUM7UUFDRixNQUFNO0lBQ1YsQ0FBQzs7MkdBcG5CUSxjQUFjOytHQUFkLGNBQWMsY0FGWCxNQUFNOzJGQUVULGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZU1vZGVsZWRSZXNwb25zZSwgQmFzZVJlc3BvbnNlLCBTdGF0dXMgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJ2NvbnNvbGUnO1xuaW1wb3J0IHtcbiAgICBFYUNBcHBsaWNhdGlvbkFzQ29kZSxcbiAgICBFYUNQcm9qZWN0QXNDb2RlLFxuICAgIEVudGVycHJpc2VBc0NvZGUsXG59IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBHaXRIdWJXb3JrZmxvd1J1bixcbiAgICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRmVlZEVudHJ5LFxuICAgIEZlZWRJdGVtLFxuICAgIFVzZXJGZWVkUmVzcG9uc2UsXG59IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0U2VydmljZSB7XG4gICAgcHVibGljIENyZWF0aW5nUHJvamVjdDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBFZGl0aW5nUHJvamVjdExvb2t1cDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBhcHBzRmxvd1N2YzogQXBwbGljYXRpb25zRmxvd1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgICApIHt9XG5cbiAgICAvLyBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeShzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLCBvcmc6IHN0cmluZywgcmVwb05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vICAgc3RhdGUuR2l0SHViLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgLy8gICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgLy8gICAgIC5DcmVhdGVSZXBvc2l0b3J5KG9yZywgcmVwb05hbWUpXG4gICAgLy8gICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAvLyAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAvLyAgICAgICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcyhyZXBvTmFtZSk7XG5cbiAgICAvLyAgICAgICAgIHN0YXRlLkdpdEh1Yi5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgICAvLyAgICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgLy8gIFRPRE86ICBOZWVkIHRvIHN1cmZhY2UgYW4gZXJyb3IgdG8gdGhlIHVzZXIuLi5cblxuICAgIC8vICAgICAgICAgc3RhdGUuR2l0SHViLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cblxuICAgIHB1YmxpYyBFbnN1cmVVc2VyRW50ZXJwcmlzZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IFByb21pc2U8QmFzZVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5FbnN1cmVVc2VyRW50ZXJwcmlzZSgpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGVhYyA9IGF3YWl0IHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKGVhYykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmc+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhcbiAgICAgICAgYXBwbGljYXRpb25zOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0sXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgICApOiB7XG4gICAgICAgIFtyb3V0ZTogc3RyaW5nXTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9O1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBMb29rdXBzID0gT2JqZWN0LmtleXMoYXBwbGljYXRpb25zKTtcblxuICAgICAgICBjb25zdCBhcHBzID0gYXBwTG9va3Vwcy5tYXAoKGFwcExvb2t1cCkgPT4gYXBwbGljYXRpb25zW2FwcExvb2t1cF0pO1xuXG4gICAgICAgIGxldCBhcHBSb3V0ZXMgPVxuICAgICAgICAgICAgYXBwcy5tYXAoKGFwcCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHA/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnJlcGxhY2UoJy4qJywgJycpO1xuICAgICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgYXBwUm91dGVzID0gYXBwUm91dGVzLmZpbHRlcigoYXIpID0+IGFyICE9IG51bGwpO1xuXG4gICAgICAgIGxldCByb3V0ZUJhc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcy5mb3JFYWNoKChhcHBSb3V0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwUm91dGVQYXJ0cyA9IGFwcFJvdXRlLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlQmFzZSA9IGAvJHthcHBSb3V0ZVBhcnRzWzFdfWA7XG5cbiAgICAgICAgICAgIGlmIChyb3V0ZUJhc2VzLmluZGV4T2YoYXBwUm91dGVCYXNlKSA8IDApIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJhc2VzLnB1c2goYXBwUm91dGVCYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHdvcmtpbmdBcHBMb29rdXBzID0gWy4uLihhcHBMb29rdXBzIHx8IFtdKV07XG5cbiAgICAgICAgcm91dGVCYXNlcyA9IHJvdXRlQmFzZXMuc29ydCgoYSwgYikgPT4gYi5sb2NhbGVDb21wYXJlKGEpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldCA9XG4gICAgICAgICAgICByb3V0ZUJhc2VzLnJlZHVjZSgocHJldlJvdXRlTWFwLCBjdXJyZW50Um91dGVCYXNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVNYXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXZSb3V0ZU1hcCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2EgPSBhcHBsaWNhdGlvbnNbd2FsXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2E/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um91dGVCYXNlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByb3V0ZU1hcFtjdXJyZW50Um91dGVCYXNlXSA9XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwTWFwID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZBcHBNYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBNYXBbYXBwTG9va3VwXSA9IGFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXBwTWFwO1xuICAgICAgICAgICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgICAgICAgICB3b3JraW5nQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2EpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkQXBwTG9va3Vwcy5pbmRleE9mKHdhKSA8IDA7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVNYXA7XG4gICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgbGV0IHJvdXRlU2V0S2V5cyA9IE9iamVjdC5rZXlzKHJvdXRlU2V0KTtcblxuICAgICAgICByb3V0ZVNldEtleXMgPSByb3V0ZVNldEtleXMuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldFJlc3VsdCA9IHt9O1xuXG4gICAgICAgIHJvdXRlU2V0S2V5cy5mb3JFYWNoKChyc2spID0+IChyb3V0ZVNldFJlc3VsdFtyc2tdID0gcm91dGVTZXRbcnNrXSkpO1xuXG4gICAgICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkdldEFjdGl2ZUVudGVycHJpc2UoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTx7XG4gICAgICAgICAgICAgICAgICAgICAgICBOYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBMb29rdXA6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgfT5cbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXAgPSByZXNwb25zZS5Nb2RlbD8uTG9va3VwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFzVmFsaWRDb25uZWN0aW9uKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBmb3JjZUVuc3VyZVVzZXI6IGJvb2xlYW4gPSBmYWxzZVxuICAgICk6IFByb21pc2U8RW50ZXJwcmlzZUFzQ29kZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuSGFzVmFsaWRDb25uZWN0aW9uKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkdpdEh1Yi5IYXNDb25uZWN0aW9uID0gcmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLkdpdEh1Yi5IYXNDb25uZWN0aW9uIHx8IGZvcmNlRW5zdXJlVXNlcikge1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0RW50ZXJwcmlzZXMoc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSk6IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdFbnRlcnByaXNlcyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTGlzdEVudGVycHJpc2VzKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxBcnJheTxhbnk+PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRW50ZXJwcmlzZXMgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVudGVycHJpc2VzID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRW50ZXJwcmlzZXMgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBMb2FkRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IFByb21pc2U8RW50ZXJwcmlzZUFzQ29kZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZEVudGVycHJpc2VBc0NvZGUoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEVudGVycHJpc2VBc0NvZGU+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQyA9IHJlc3BvbnNlLk1vZGVsIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FYUMgPSBzdGF0ZS5FYUMgfHwge307XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPVxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge30pLmxlbmd0aCA8PSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoc3RhdGUuRWFDKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zPy5kaXJlY3QgPT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb2pLZXlzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQy5Qcm9qZWN0cyB8fCB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvaktleXMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0RpcmVjdGluZyB0byBkZWVwZXIgbGluaycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHBLZXlzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FYUMuQXBwbGljYXRpb25zIHx8IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcEtleXMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQy5BcHBsaWNhdGlvbnNbYXBwS2V5c1swXV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByb3V0ZUtleSA9IGVuY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleD8ucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4qJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHx8ICcvJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL2Rhc2hib2FyZC9hcHBsaWNhdGlvbi8ke2FwcEtleXNbMF19LyR7cm91dGVLZXl9LyR7cHJvaktleXNbMF19YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC9kYXNoYm9hcmQvcHJvamVjdC8ke3Byb2pLZXlzWzBdfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHN0YXRlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExvYWRVc2VyRmVlZChcbiAgICAgICAgcGFnZTogbnVtYmVyLFxuICAgICAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgICAgICBmb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICAgKTogUHJvbWlzZTxBcnJheTxGZWVkSXRlbT4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gIWZvckNoZWNrO1xuXG4gICAgICAgICAgICBsZXQgcGFyYW1NYXAgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmNoaWxkcmVuWzBdLnBhcmFtTWFwO1xuXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5sb2FkQXBwbGljYXRpb25zRm9yRmVlZChzdGF0ZSwgcGFyYW1NYXApO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAgICAgLkxvYWRVc2VyRmVlZChcbiAgICAgICAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8uUHJvamVjdCxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py5BcHBsaWNhdGlvbnNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBVc2VyRmVlZFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZvckNoZWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWQgPSByZXNwb25zZS5JdGVtcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkU291cmNlQ29udHJvbExvb2t1cHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuU291cmNlQ29udHJvbExvb2t1cHM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRmVlZEFjdGlvbnMgPSByZXNwb25zZS5BY3Rpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRDaGVjayA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gcmVzcG9uc2UuSXRlbXM/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdGF0ZS5GZWVkPy5maW5kKChmKSA9PiBmLklEID09IGkuSUQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkQ2hlY2sgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIklURU1aOiBcIiwgcmVzcG9uc2UuSXRlbXMpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLkl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNldEFjdGl2ZUVudGVycHJpc2UoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGFjdGl2ZUVudExvb2t1cDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlNldEFjdGl2ZUVudGVycHJpc2UoYWN0aXZlRW50TG9va3VwKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Qgc2VydmljZSBhY3RpdmUgZW50OiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUVudExvb2t1cFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuQWN0aXZlRW50ZXJwcmlzZUxvb2t1cCA9IGFjdGl2ZUVudExvb2t1cDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Qgc2VydmljZSBTdGF0ZSBhY3RpdmUgZW50OiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZUVudGVycHJpc2VBc0NvZGUoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGVhYzogRW50ZXJwcmlzZUFzQ29kZVxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5TYXZlRW50ZXJwcmlzZUFzQ29kZShlYWMpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLkNyZWF0aW5nUHJvamVjdCA9IGNyZWF0aW5nUHJvamVjdDtcblxuICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0RWRpdFByb2plY3RTZXR0aW5ncyhcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgcHJvamVjdExvb2t1cDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9qZWN0TG9va3VwICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gcHJvamVjdExvb2t1cDtcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHt9KTtcbiAgICAgICAgICAgICAgICB9LCAwKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhzdGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBwcm9qZWN0TG9va3VwO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBlbnRyeTogRmVlZEVudHJ5XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlN1Ym1pdEZlZWRFbnRyeShlbnRyeSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmc+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgVG9nZ2xlQ3JlYXRlUHJvamVjdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TZXRDcmVhdGluZ1Byb2plY3QoIXRoaXMuQ3JlYXRpbmdQcm9qZWN0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgVW5wYWNrTG93Q29kZVVuaXQoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIHJlcTogVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlVucGFja0xvd0NvZGVVbml0KHJlcSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICBIZWxwZXJzXG4gICAgcHJvdGVjdGVkIGxvYWRBcHBsaWNhdGlvbnNGb3JGZWVkKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBwYXJhbU1hcDogYW55XG4gICAgKSB7XG4gICAgICAgIC8vIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1NYXAuc3Vic2NyaWJlKGFzeW5jIChwYXJhbU1hcCkgPT4ge1xuICAgICAgICB2YXIgcHJvamVjdCA9IHBhcmFtTWFwLmdldCgncHJvamVjdExvb2t1cCcpIHx8ICcnO1xuXG4gICAgICAgIHZhciByb3V0ZSA9IHBhcmFtTWFwLmdldCgnYXBwUm91dGUnKTtcblxuICAgICAgICB2YXIgYXBwbGljYXRpb24gPSBwYXJhbU1hcC5nZXQoJ2FwcExvb2t1cCcpO1xuXG4gICAgICAgIHZhciBhcHBsaWNhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgaWYgKGFwcGxpY2F0aW9uKSB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbnMucHVzaChhcHBsaWNhdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAocm91dGUgJiYgcHJvamVjdCkge1xuICAgICAgICAgICAgY29uc3QgYXBwczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9ID0ge307XG5cbiAgICAgICAgICAgIHN0YXRlLkVhQz8uUHJvamVjdHNbcHJvamVjdF0uQXBwbGljYXRpb25Mb29rdXBzLmZvckVhY2goXG4gICAgICAgICAgICAgICAgKGFwcExvb2t1cDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHN0YXRlLkVhQy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB2YXIgcm91dGVkQXBwcyA9IHRoaXMuR2VuZXJhdGVSb3V0ZWRBcHBsaWNhdGlvbnMoYXBwcywgc3RhdGUpO1xuXG4gICAgICAgICAgICB2YXIgY3VycmVudEFwcHMgPSByb3V0ZWRBcHBzW3JvdXRlXTtcblxuICAgICAgICAgICAgYXBwbGljYXRpb25zID0gT2JqZWN0LmtleXMoY3VycmVudEFwcHMpIHx8IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uczogYXBwbGljYXRpb25zLFxuICAgICAgICAgICAgUHJvamVjdDogcHJvamVjdCxcbiAgICAgICAgfTtcbiAgICAgICAgLy8gfSk7XG4gICAgfVxufVxuIl19
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUF3QjNDLE1BQU0sT0FBTyxjQUFjO0lBS3ZCLFlBQ2MsV0FBb0MsRUFDcEMsY0FBOEI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUN6QyxDQUFDO0lBRUosK0ZBQStGO0lBQy9GLGlDQUFpQztJQUVqQyxxQkFBcUI7SUFDckIsdUNBQXVDO0lBQ3ZDLCtDQUErQztJQUMvQywwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBRTNDLG1EQUFtRDtJQUNuRCxpQkFBaUI7SUFDakIsNkRBQTZEO0lBRTdELHdDQUF3QztJQUN4QyxVQUFVO0lBQ1YsVUFBVTtJQUNWLElBQUk7SUFFRyxvQkFBb0IsQ0FDdkIsS0FBNEI7UUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVyQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUM3QyxLQUFLLEVBQUUsUUFBc0IsRUFBRSxFQUFFO2dCQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDNUIsc0RBQXNEO29CQUV0RCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNILEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUV0QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QixPQUFPLENBQUMsR0FB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VSxDQUFDLENBQUM7UUFFckMsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxJQUFJLFlBQVksR0FBYSxFQUFFLENBQUM7UUFFaEMsSUFBSSxXQUFXLEVBQUU7WUFDYixZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUErQyxFQUFFLENBQUM7WUFFNUQsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUNuRCxDQUFDLFNBQWlCLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FDSixDQUFDO1lBRUYsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUU5RCxJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFcEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pEO1FBRUQsT0FBTztZQUNILFlBQVksRUFBRSxZQUFZO1lBQzFCLE9BQU8sRUFBRSxPQUFPO1NBQ25CLENBQUM7UUFDRixNQUFNO0lBQ1YsQ0FBQzs7MkdBam5CUSxjQUFjOytHQUFkLGNBQWMsY0FGWCxNQUFNOzJGQUVULGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZU1vZGVsZWRSZXNwb25zZSwgQmFzZVJlc3BvbnNlLCBTdGF0dXMgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJ2NvbnNvbGUnO1xuaW1wb3J0IHtcbiAgICBFYUNBcHBsaWNhdGlvbkFzQ29kZSxcbiAgICBFYUNQcm9qZWN0QXNDb2RlLFxuICAgIEVudGVycHJpc2VBc0NvZGUsXG59IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBHaXRIdWJXb3JrZmxvd1J1bixcbiAgICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRmVlZEVudHJ5LFxuICAgIEZlZWRJdGVtLFxuICAgIFVzZXJGZWVkUmVzcG9uc2UsXG59IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0U2VydmljZSB7XG4gICAgcHVibGljIENyZWF0aW5nUHJvamVjdDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBFZGl0aW5nUHJvamVjdExvb2t1cDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBhcHBzRmxvd1N2YzogQXBwbGljYXRpb25zRmxvd1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgICApIHt9XG5cbiAgICAvLyBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeShzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLCBvcmc6IHN0cmluZywgcmVwb05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vICAgc3RhdGUuR2l0SHViLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgLy8gICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgLy8gICAgIC5DcmVhdGVSZXBvc2l0b3J5KG9yZywgcmVwb05hbWUpXG4gICAgLy8gICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAvLyAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAvLyAgICAgICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcyhyZXBvTmFtZSk7XG5cbiAgICAvLyAgICAgICAgIHN0YXRlLkdpdEh1Yi5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgICAvLyAgICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgLy8gIFRPRE86ICBOZWVkIHRvIHN1cmZhY2UgYW4gZXJyb3IgdG8gdGhlIHVzZXIuLi5cblxuICAgIC8vICAgICAgICAgc3RhdGUuR2l0SHViLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cblxuICAgIHB1YmxpYyBFbnN1cmVVc2VyRW50ZXJwcmlzZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IFByb21pc2U8QmFzZVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5FbnN1cmVVc2VyRW50ZXJwcmlzZSgpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGVhYyA9IGF3YWl0IHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKGVhYykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmc+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhcbiAgICAgICAgYXBwbGljYXRpb25zOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0sXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgICApOiB7XG4gICAgICAgIFtyb3V0ZTogc3RyaW5nXTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9O1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBMb29rdXBzID0gT2JqZWN0LmtleXMoYXBwbGljYXRpb25zKTtcblxuICAgICAgICBjb25zdCBhcHBzID0gYXBwTG9va3Vwcy5tYXAoKGFwcExvb2t1cCkgPT4gYXBwbGljYXRpb25zW2FwcExvb2t1cF0pO1xuXG4gICAgICAgIGxldCBhcHBSb3V0ZXMgPVxuICAgICAgICAgICAgYXBwcy5tYXAoKGFwcCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHA/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnJlcGxhY2UoJy4qJywgJycpO1xuICAgICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgYXBwUm91dGVzID0gYXBwUm91dGVzLmZpbHRlcigoYXIpID0+IGFyICE9IG51bGwpO1xuXG4gICAgICAgIGxldCByb3V0ZUJhc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcy5mb3JFYWNoKChhcHBSb3V0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwUm91dGVQYXJ0cyA9IGFwcFJvdXRlLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlQmFzZSA9IGAvJHthcHBSb3V0ZVBhcnRzWzFdfWA7XG5cbiAgICAgICAgICAgIGlmIChyb3V0ZUJhc2VzLmluZGV4T2YoYXBwUm91dGVCYXNlKSA8IDApIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJhc2VzLnB1c2goYXBwUm91dGVCYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHdvcmtpbmdBcHBMb29rdXBzID0gWy4uLihhcHBMb29rdXBzIHx8IFtdKV07XG5cbiAgICAgICAgcm91dGVCYXNlcyA9IHJvdXRlQmFzZXMuc29ydCgoYSwgYikgPT4gYi5sb2NhbGVDb21wYXJlKGEpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldCA9XG4gICAgICAgICAgICByb3V0ZUJhc2VzLnJlZHVjZSgocHJldlJvdXRlTWFwLCBjdXJyZW50Um91dGVCYXNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVNYXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXZSb3V0ZU1hcCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2EgPSBhcHBsaWNhdGlvbnNbd2FsXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2E/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um91dGVCYXNlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByb3V0ZU1hcFtjdXJyZW50Um91dGVCYXNlXSA9XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwTWFwID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZBcHBNYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBNYXBbYXBwTG9va3VwXSA9IGFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXBwTWFwO1xuICAgICAgICAgICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgICAgICAgICB3b3JraW5nQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2EpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkQXBwTG9va3Vwcy5pbmRleE9mKHdhKSA8IDA7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVNYXA7XG4gICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgbGV0IHJvdXRlU2V0S2V5cyA9IE9iamVjdC5rZXlzKHJvdXRlU2V0KTtcblxuICAgICAgICByb3V0ZVNldEtleXMgPSByb3V0ZVNldEtleXMuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldFJlc3VsdCA9IHt9O1xuXG4gICAgICAgIHJvdXRlU2V0S2V5cy5mb3JFYWNoKChyc2spID0+IChyb3V0ZVNldFJlc3VsdFtyc2tdID0gcm91dGVTZXRbcnNrXSkpO1xuXG4gICAgICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkdldEFjdGl2ZUVudGVycHJpc2UoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTx7XG4gICAgICAgICAgICAgICAgICAgICAgICBOYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBMb29rdXA6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgfT5cbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXAgPSByZXNwb25zZS5Nb2RlbD8uTG9va3VwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFzVmFsaWRDb25uZWN0aW9uKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBmb3JjZUVuc3VyZVVzZXI6IGJvb2xlYW4gPSBmYWxzZVxuICAgICk6IFByb21pc2U8RW50ZXJwcmlzZUFzQ29kZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuSGFzVmFsaWRDb25uZWN0aW9uKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkdpdEh1Yi5IYXNDb25uZWN0aW9uID0gcmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLkdpdEh1Yi5IYXNDb25uZWN0aW9uIHx8IGZvcmNlRW5zdXJlVXNlcikge1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0RW50ZXJwcmlzZXMoc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSk6IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdFbnRlcnByaXNlcyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTGlzdEVudGVycHJpc2VzKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxBcnJheTxhbnk+PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRW50ZXJwcmlzZXMgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVudGVycHJpc2VzID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRW50ZXJwcmlzZXMgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBMb2FkRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IFByb21pc2U8RW50ZXJwcmlzZUFzQ29kZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZEVudGVycHJpc2VBc0NvZGUoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEVudGVycHJpc2VBc0NvZGU+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQyA9IHJlc3BvbnNlLk1vZGVsIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FYUMgPSBzdGF0ZS5FYUMgfHwge307XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPVxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge30pLmxlbmd0aCA8PSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoc3RhdGUuRWFDKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zPy5kaXJlY3QgPT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb2pLZXlzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQy5Qcm9qZWN0cyB8fCB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvaktleXMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0RpcmVjdGluZyB0byBkZWVwZXIgbGluaycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHBLZXlzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FYUMuQXBwbGljYXRpb25zIHx8IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcEtleXMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQy5BcHBsaWNhdGlvbnNbYXBwS2V5c1swXV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByb3V0ZUtleSA9IGVuY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleD8ucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4qJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHx8ICcvJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL2Rhc2hib2FyZC9hcHBsaWNhdGlvbi8ke2FwcEtleXNbMF19LyR7cm91dGVLZXl9LyR7cHJvaktleXNbMF19YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC9kYXNoYm9hcmQvcHJvamVjdC8ke3Byb2pLZXlzWzBdfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHN0YXRlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExvYWRVc2VyRmVlZChcbiAgICAgICAgcGFnZTogbnVtYmVyLFxuICAgICAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgICAgICBmb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICAgKTogUHJvbWlzZTxBcnJheTxGZWVkSXRlbT4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gIWZvckNoZWNrO1xuXG4gICAgICAgICAgICBsZXQgcGFyYW1NYXAgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmNoaWxkcmVuWzBdLnBhcmFtTWFwO1xuXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5sb2FkQXBwbGljYXRpb25zRm9yRmVlZChzdGF0ZSwgcGFyYW1NYXApO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAgICAgLkxvYWRVc2VyRmVlZChcbiAgICAgICAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8uUHJvamVjdCxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py5BcHBsaWNhdGlvbnNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBVc2VyRmVlZFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZvckNoZWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWQgPSByZXNwb25zZS5JdGVtcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkU291cmNlQ29udHJvbExvb2t1cHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuU291cmNlQ29udHJvbExvb2t1cHM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRmVlZEFjdGlvbnMgPSByZXNwb25zZS5BY3Rpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRDaGVjayA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gcmVzcG9uc2UuSXRlbXM/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdGF0ZS5GZWVkPy5maW5kKChmKSA9PiBmLklEID09IGkuSUQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkQ2hlY2sgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIklURU1aOiBcIiwgcmVzcG9uc2UuSXRlbXMpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLkl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNldEFjdGl2ZUVudGVycHJpc2UoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGFjdGl2ZUVudExvb2t1cDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlNldEFjdGl2ZUVudGVycHJpc2UoYWN0aXZlRW50TG9va3VwKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Qgc2VydmljZSBhY3RpdmUgZW50OiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUVudExvb2t1cFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuQWN0aXZlRW50ZXJwcmlzZUxvb2t1cCA9IGFjdGl2ZUVudExvb2t1cDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Qgc2VydmljZSBTdGF0ZSBhY3RpdmUgZW50OiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZUVudGVycHJpc2VBc0NvZGUoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGVhYzogRW50ZXJwcmlzZUFzQ29kZVxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5TYXZlRW50ZXJwcmlzZUFzQ29kZShlYWMpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLkNyZWF0aW5nUHJvamVjdCA9IGNyZWF0aW5nUHJvamVjdDtcblxuICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0RWRpdFByb2plY3RTZXR0aW5ncyhcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgcHJvamVjdExvb2t1cDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9qZWN0TG9va3VwICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gcHJvamVjdExvb2t1cDtcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHt9KTtcbiAgICAgICAgICAgICAgICB9LCAwKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhzdGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBwcm9qZWN0TG9va3VwO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBlbnRyeTogRmVlZEVudHJ5XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlN1Ym1pdEZlZWRFbnRyeShlbnRyeSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmc+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBUb2dnbGVDcmVhdGVQcm9qZWN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLlNldENyZWF0aW5nUHJvamVjdCghdGhpcy5DcmVhdGluZ1Byb2plY3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBVbnBhY2tMb3dDb2RlVW5pdChcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgcmVxOiBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuVW5wYWNrTG93Q29kZVVuaXQocmVxKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTG9hZFVzZXJGZWVkKDEsIDI1LCBmYWxzZSwgc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcbiAgICBwcm90ZWN0ZWQgbG9hZEFwcGxpY2F0aW9uc0ZvckZlZWQoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIHBhcmFtTWFwOiBhbnlcbiAgICApIHtcbiAgICAgICAgLy8gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUoYXN5bmMgKHBhcmFtTWFwKSA9PiB7XG4gICAgICAgIHZhciBwcm9qZWN0ID0gcGFyYW1NYXAuZ2V0KCdwcm9qZWN0TG9va3VwJykgfHwgJyc7XG5cbiAgICAgICAgdmFyIHJvdXRlID0gcGFyYW1NYXAuZ2V0KCdhcHBSb3V0ZScpO1xuXG4gICAgICAgIHZhciBhcHBsaWNhdGlvbiA9IHBhcmFtTWFwLmdldCgnYXBwTG9va3VwJyk7XG5cbiAgICAgICAgdmFyIGFwcGxpY2F0aW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAoYXBwbGljYXRpb24pIHtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9ucy5wdXNoKGFwcGxpY2F0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSAmJiBwcm9qZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBhcHBzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gPSB7fTtcblxuICAgICAgICAgICAgc3RhdGUuRWFDPy5Qcm9qZWN0c1twcm9qZWN0XS5BcHBsaWNhdGlvbkxvb2t1cHMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXBwc1thcHBMb29rdXBdID0gc3RhdGUuRWFDLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHZhciByb3V0ZWRBcHBzID0gdGhpcy5HZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhhcHBzLCBzdGF0ZSk7XG5cbiAgICAgICAgICAgIHZhciBjdXJyZW50QXBwcyA9IHJvdXRlZEFwcHNbcm91dGVdO1xuXG4gICAgICAgICAgICBhcHBsaWNhdGlvbnMgPSBPYmplY3Qua2V5cyhjdXJyZW50QXBwcykgfHwgW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQXBwbGljYXRpb25zOiBhcHBsaWNhdGlvbnMsXG4gICAgICAgICAgICBQcm9qZWN0OiBwcm9qZWN0LFxuICAgICAgICB9O1xuICAgICAgICAvLyB9KTtcbiAgICB9XG59XG4iXX0=
@@ -47,6 +47,14 @@ export class GitHubRepository {
47
47
  }
48
48
  export class GitHubWorkflowRun {
49
49
  }
50
+ export class LicenseAndBillingResponse {
51
+ }
52
+ export class License {
53
+ }
54
+ export class Plan {
55
+ }
56
+ export class Price {
57
+ }
50
58
  export class UnpackLowCodeUnitRequest {
51
59
  }
52
60
  // export class DevOpsAction {
@@ -72,4 +80,4 @@ export class ProjectHostingOptionInput {
72
80
  // public ProjectName?: string;
73
81
  // public Repository?: string;
74
82
  // }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25zLWZsb3cuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8scUJBQXFCO0lBaUM5QjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFFcEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUUvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixzQkFBc0I7SUFDMUIsQ0FBQztDQUNKO0FBRUQsOEJBQThCO0FBQzlCLHdEQUF3RDtBQUV4RCw4Q0FBOEM7QUFFOUMsaUNBQWlDO0FBRWpDLDBCQUEwQjtBQUUxQix3QkFBd0I7QUFFeEIsMkJBQTJCO0FBRTNCLHVDQUF1QztBQUV2QywwQkFBMEI7QUFFMUIsbURBQW1EO0FBRW5ELHVDQUF1QztBQUN2QyxJQUFJO0FBRUosa0NBQWtDO0FBQ2xDLGdDQUFnQztBQUVoQywwQkFBMEI7QUFFMUIsa0NBQWtDO0FBRWxDLCtCQUErQjtBQUUvQiw4QkFBOEI7QUFFOUIsZ0NBQWdDO0FBRWhDLDZCQUE2QjtBQUM3QixJQUFJO0FBRUosTUFBTSxPQUFPLGdCQUFnQjtDQVk1QjtBQUVELE1BQU0sT0FBTyxZQUFZO0NBRXhCO0FBRUQsbUNBQW1DO0FBQ25DLDRCQUE0QjtBQUU1Qix3QkFBd0I7QUFFeEIsNEJBQTRCO0FBRTVCLGtDQUFrQztBQUVsQyxnQ0FBZ0M7QUFDaEMsSUFBSTtBQUVKLE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUI7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0NBSTVCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQWdCN0I7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0NBTXBDO0FBRUQsOEJBQThCO0FBQzlCLDZCQUE2QjtBQUU3Qix3QkFBd0I7QUFFeEIsMEJBQTBCO0FBRTFCLGdDQUFnQztBQUVoQywwQkFBMEI7QUFFMUIsOEJBQThCO0FBQzlCLElBQUk7QUFFSixNQUFNLE9BQU8scUJBQXFCO0NBSWpDO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtDQWdCaEM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0NBVXJDO0FBRUQseUNBQXlDO0FBQ3pDLDRCQUE0QjtBQUU1QixpQ0FBaUM7QUFFakMsbUNBQW1DO0FBRW5DLGtDQUFrQztBQUVsQyxrQ0FBa0M7QUFFbEMsaUNBQWlDO0FBRWpDLGdDQUFnQztBQUNoQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50ZXJwcmlzZUFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEZlZWRJdGVtLFxuICAgIEZlZWRJdGVtQWN0aW9uLFxuICAgIFVzZXJGZWVkUmVzcG9uc2UsXG59IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25zRmxvd1N0YXRlIHtcbiAgICBwdWJsaWMgQWN0aXZlRW50ZXJwcmlzZUxvb2t1cD86IHN0cmluZztcblxuICAgIHB1YmxpYyBFYUM/OiBFbnRlcnByaXNlQXNDb2RlO1xuXG4gICAgcHVibGljIEVudGVycHJpc2VzPzogQXJyYXk8eyBOYW1lOiBzdHJpbmc7IExvb2t1cDogc3RyaW5nIH0+O1xuXG4gICAgcHVibGljIEZlZWQ/OiBBcnJheTxGZWVkSXRlbT47XG5cbiAgICBwdWJsaWMgRmVlZEFjdGlvbnM/OiBBcnJheTxGZWVkSXRlbUFjdGlvbj47XG5cbiAgICBwdWJsaWMgRmVlZENoZWNrPzogVXNlckZlZWRSZXNwb25zZTtcblxuICAgIHB1YmxpYyBGZWVkU291cmNlQ29udHJvbExvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xuXG4gICAgcHVibGljIEdpdEh1Yj86IEdpdEh1YlNldHVwU3RhdGU7XG5cbiAgICBwdWJsaWMgSG9zdGluZ0RldGFpbHM/OiBQcm9qZWN0SG9zdGluZ0RldGFpbHM7XG5cbiAgICBwdWJsaWMgTG9hZGluZz86IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgTG9hZGluZ0FjdGl2ZUVudGVycHJpc2U/OiBib29sZWFuO1xuXG4gICAgcHVibGljIExvYWRpbmdFbnRlcnByaXNlcz86IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgTG9hZGluZ0ZlZWQ/OiBib29sZWFuO1xuXG4gICAgLy8gcHVibGljIFByb2plY3RzPzogUHJvamVjdFN0YXRlW107XG5cbiAgICBwdWJsaWMgVW5sZWFzaGVkPzogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBVc2VyRW50ZXJwcmlzZUxvb2t1cD86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLkdpdEh1YiA9IHt9O1xuXG4gICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSB7fTtcblxuICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuTG9hZGluZ0VudGVycHJpc2VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLkxvYWRpbmdGZWVkID0gdHJ1ZTtcblxuICAgICAgICAvLyB0aGlzLlByb2plY3RzID0gW107XG4gICAgfVxufVxuXG4vLyBleHBvcnQgY2xhc3MgUHJvamVjdFN0YXRlIHtcbi8vICAgcHVibGljIEFjdGlvbnNTZXQ/OiB7IFtpZDogc3RyaW5nXTogRGV2T3BzQWN0aW9uIH07XG5cbi8vICAgcHVibGljIEFwcGxpY2F0aW9ucz86IEFwcGxpY2F0aW9uU3RhdGVbXTtcblxuLy8gICBwdWJsaWMgRGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIEhvc3Q/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIElEPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBJbWFnZT86IHN0cmluZztcblxuLy8gICBwdWJsaWMgTENVcz86IEdpdEh1Ykxvd0NvZGVVbml0W107XG5cbi8vICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIFByZXZlbnRJbmhlcml0ZWRBcHBsaWNhdGlvbnM/OiBib29sZWFuO1xuXG4vLyAgIHB1YmxpYyBSdW5zPzogR2l0SHViV29ya2Zsb3dSdW5bXTtcbi8vIH1cblxuLy8gZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uU3RhdGUge1xuLy8gICBwdWJsaWMgSXNQcml2YXRlPzogYm9vbGVhbjtcblxuLy8gICBwdWJsaWMgTmFtZT86IHN0cmluZztcblxuLy8gICBwdWJsaWMgT3JnYW5pemF0aW9uPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBQYXRoUmVnZXg/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIFByaW9yaXR5PzogbnVtYmVyO1xuXG4vLyAgIHB1YmxpYyBSZXBvc2l0b3J5Pzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBWZXJzaW9uPzogc3RyaW5nO1xuLy8gfVxuXG5leHBvcnQgY2xhc3MgR2l0SHViU2V0dXBTdGF0ZSB7XG4gICAgcHVibGljIEJyYW5jaE9wdGlvbnM/OiBHaXRIdWJCcmFuY2hbXTtcblxuICAgIHB1YmxpYyBDcmVhdGluZ1JlcG9zaXRvcnk/OiBib29sZWFuO1xuXG4gICAgcHVibGljIEhhc0Nvbm5lY3Rpb24/OiBib29sZWFuO1xuXG4gICAgcHVibGljIExvYWRpbmc/OiBib29sZWFuO1xuXG4gICAgcHVibGljIE9yZ2FuaXphdGlvbk9wdGlvbnM/OiBHaXRIdWJPcmdhbml6YXRpb25bXTtcblxuICAgIHB1YmxpYyBSZXBvc2l0b3J5T3B0aW9ucz86IEdpdEh1YlJlcG9zaXRvcnlbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEdpdEh1YkJyYW5jaCB7XG4gICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XG59XG5cbi8vIGV4cG9ydCBjbGFzcyBHaXRIdWJMb3dDb2RlVW5pdCB7XG4vLyAgIHB1YmxpYyBCcmFuY2g/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIElEPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBMb29rdXA/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIE9yZ2FuaXphdGlvbj86IHN0cmluZztcblxuLy8gICBwdWJsaWMgUmVwb3NpdG9yeT86IHN0cmluZztcbi8vIH1cblxuZXhwb3J0IGNsYXNzIEdpdEh1Yk9yZ2FuaXphdGlvbiB7XG4gICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJSZXBvc2l0b3J5IHtcbiAgICBwdWJsaWMgQ2xvbmVVUkw/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEdpdEh1YldvcmtmbG93UnVuIHtcbiAgICBwdWJsaWMgQ29uY2x1c2lvbj86IHN0cmluZztcblxuICAgIHB1YmxpYyBDcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSUQ/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgTENVSUQ/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUnVuTnVtYmVyPzogbnVtYmVyO1xuXG4gICAgcHVibGljIFN0YXR1cz86IHN0cmluZztcblxuICAgIHB1YmxpYyBXb3JrZmxvdz86IHN0cmluZztcblxuICAgIHB1YmxpYyBVcGRhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3Qge1xuICAgIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICAgIHB1YmxpYyBBcHBsaWNhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVmVyc2lvbj86IHN0cmluZztcbn1cblxuLy8gZXhwb3J0IGNsYXNzIERldk9wc0FjdGlvbiB7XG4vLyAgIHB1YmxpYyBEZXRhaWxzPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBJRD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgTmFtZT86IHN0cmluZztcblxuLy8gICBwdWJsaWMgT3ZlcndyaXRlPzogYm9vbGVhbjtcblxuLy8gICBwdWJsaWMgUGF0aD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgVGVtcGxhdGU/OiBzdHJpbmc7XG4vLyB9XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0SG9zdGluZ0RldGFpbHMge1xuICAgIHB1YmxpYyBIb3N0aW5nT3B0aW9ucz86IFByb2plY3RIb3N0aW5nT3B0aW9uW107XG5cbiAgICBwdWJsaWMgTG9hZGluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0SG9zdGluZ09wdGlvbiB7XG4gICAgcHVibGljIEFydGlmYWN0VHlwZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBEZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIHB1YmxpYyBJbWFnZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBJbnB1dHM/OiBQcm9qZWN0SG9zdGluZ09wdGlvbklucHV0W107XG5cbiAgICBwdWJsaWMgTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUGF0aD86IHN0cmluZztcblxuICAgIHB1YmxpYyBUZW1wbGF0ZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFByb2plY3RIb3N0aW5nT3B0aW9uSW5wdXQge1xuICAgIHB1YmxpYyBEZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSGludD86IHN0cmluZztcblxuICAgIHB1YmxpYyBMb29rdXA/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUmVxdWlyZWQ/OiBib29sZWFuO1xufVxuXG4vLyBleHBvcnQgY2xhc3MgRXN0YWJsaXNoUHJvamVjdFJlcXVlc3Qge1xuLy8gICBwdWJsaWMgQnJhbmNoPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBCdWlsZFNjcmlwdD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgSG9zdGluZ09wdGlvbj86IHN0cmluZztcblxuLy8gICBwdWJsaWMgT3JnYW5pemF0aW9uPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBPdXRwdXRGb2xkZXI/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIFByb2plY3ROYW1lPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBSZXBvc2l0b3J5Pzogc3RyaW5nO1xuLy8gfVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25zLWZsb3cuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8scUJBQXFCO0lBaUM5QjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFFcEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUUvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixzQkFBc0I7SUFDMUIsQ0FBQztDQUNKO0FBRUQsOEJBQThCO0FBQzlCLHdEQUF3RDtBQUV4RCw4Q0FBOEM7QUFFOUMsaUNBQWlDO0FBRWpDLDBCQUEwQjtBQUUxQix3QkFBd0I7QUFFeEIsMkJBQTJCO0FBRTNCLHVDQUF1QztBQUV2QywwQkFBMEI7QUFFMUIsbURBQW1EO0FBRW5ELHVDQUF1QztBQUN2QyxJQUFJO0FBRUosa0NBQWtDO0FBQ2xDLGdDQUFnQztBQUVoQywwQkFBMEI7QUFFMUIsa0NBQWtDO0FBRWxDLCtCQUErQjtBQUUvQiw4QkFBOEI7QUFFOUIsZ0NBQWdDO0FBRWhDLDZCQUE2QjtBQUM3QixJQUFJO0FBRUosTUFBTSxPQUFPLGdCQUFnQjtDQVk1QjtBQUVELE1BQU0sT0FBTyxZQUFZO0NBRXhCO0FBRUQsbUNBQW1DO0FBQ25DLDRCQUE0QjtBQUU1Qix3QkFBd0I7QUFFeEIsNEJBQTRCO0FBRTVCLGtDQUFrQztBQUVsQyxnQ0FBZ0M7QUFDaEMsSUFBSTtBQUVKLE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUI7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0NBSTVCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQWdCN0I7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0NBUXJDO0FBRUQsTUFBTSxPQUFPLE9BQU87Q0FNbkI7QUFFRCxNQUFNLE9BQU8sSUFBSTtDQWtCaEI7QUFFRCxNQUFNLE9BQU8sS0FBSztDQVlqQjtBQUVELE1BQU0sT0FBTyx3QkFBd0I7Q0FNcEM7QUFFRCw4QkFBOEI7QUFDOUIsNkJBQTZCO0FBRTdCLHdCQUF3QjtBQUV4QiwwQkFBMEI7QUFFMUIsZ0NBQWdDO0FBRWhDLDBCQUEwQjtBQUUxQiw4QkFBOEI7QUFDOUIsSUFBSTtBQUVKLE1BQU0sT0FBTyxxQkFBcUI7Q0FJakM7QUFFRCxNQUFNLE9BQU8sb0JBQW9CO0NBZ0JoQztBQUVELE1BQU0sT0FBTyx5QkFBeUI7Q0FVckM7QUFFRCx5Q0FBeUM7QUFDekMsNEJBQTRCO0FBRTVCLGlDQUFpQztBQUVqQyxtQ0FBbUM7QUFFbkMsa0NBQWtDO0FBRWxDLGtDQUFrQztBQUVsQyxpQ0FBaUM7QUFFakMsZ0NBQWdDO0FBQ2hDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRlcnByaXNlQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRmVlZEl0ZW0sXG4gICAgRmVlZEl0ZW1BY3Rpb24sXG4gICAgVXNlckZlZWRSZXNwb25zZSxcbn0gZnJvbSAnLi4vbW9kZWxzL3VzZXItZmVlZC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbnNGbG93U3RhdGUge1xuICAgIHB1YmxpYyBBY3RpdmVFbnRlcnByaXNlTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIEVhQz86IEVudGVycHJpc2VBc0NvZGU7XG5cbiAgICBwdWJsaWMgRW50ZXJwcmlzZXM/OiBBcnJheTx7IE5hbWU6IHN0cmluZzsgTG9va3VwOiBzdHJpbmcgfT47XG5cbiAgICBwdWJsaWMgRmVlZD86IEFycmF5PEZlZWRJdGVtPjtcblxuICAgIHB1YmxpYyBGZWVkQWN0aW9ucz86IEFycmF5PEZlZWRJdGVtQWN0aW9uPjtcblxuICAgIHB1YmxpYyBGZWVkQ2hlY2s/OiBVc2VyRmVlZFJlc3BvbnNlO1xuXG4gICAgcHVibGljIEZlZWRTb3VyY2VDb250cm9sTG9va3Vwcz86IEFycmF5PHN0cmluZz47XG5cbiAgICBwdWJsaWMgR2l0SHViPzogR2l0SHViU2V0dXBTdGF0ZTtcblxuICAgIHB1YmxpYyBIb3N0aW5nRGV0YWlscz86IFByb2plY3RIb3N0aW5nRGV0YWlscztcblxuICAgIHB1YmxpYyBMb2FkaW5nPzogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBMb2FkaW5nQWN0aXZlRW50ZXJwcmlzZT86IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgTG9hZGluZ0VudGVycHJpc2VzPzogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBMb2FkaW5nRmVlZD86IGJvb2xlYW47XG5cbiAgICAvLyBwdWJsaWMgUHJvamVjdHM/OiBQcm9qZWN0U3RhdGVbXTtcblxuICAgIHB1YmxpYyBVbmxlYXNoZWQ/OiBib29sZWFuO1xuXG4gICAgcHVibGljIFVzZXJFbnRlcnByaXNlTG9va3VwPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuR2l0SHViID0ge307XG5cbiAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscyA9IHt9O1xuXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5Mb2FkaW5nRW50ZXJwcmlzZXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuTG9hZGluZ0ZlZWQgPSB0cnVlO1xuXG4gICAgICAgIC8vIHRoaXMuUHJvamVjdHMgPSBbXTtcbiAgICB9XG59XG5cbi8vIGV4cG9ydCBjbGFzcyBQcm9qZWN0U3RhdGUge1xuLy8gICBwdWJsaWMgQWN0aW9uc1NldD86IHsgW2lkOiBzdHJpbmddOiBEZXZPcHNBY3Rpb24gfTtcblxuLy8gICBwdWJsaWMgQXBwbGljYXRpb25zPzogQXBwbGljYXRpb25TdGF0ZVtdO1xuXG4vLyAgIHB1YmxpYyBEZXNjcmlwdGlvbj86IHN0cmluZztcblxuLy8gICBwdWJsaWMgSG9zdD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgSUQ/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIEltYWdlPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBMQ1VzPzogR2l0SHViTG93Q29kZVVuaXRbXTtcblxuLy8gICBwdWJsaWMgTmFtZT86IHN0cmluZztcblxuLy8gICBwdWJsaWMgUHJldmVudEluaGVyaXRlZEFwcGxpY2F0aW9ucz86IGJvb2xlYW47XG5cbi8vICAgcHVibGljIFJ1bnM/OiBHaXRIdWJXb3JrZmxvd1J1bltdO1xuLy8gfVxuXG4vLyBleHBvcnQgY2xhc3MgQXBwbGljYXRpb25TdGF0ZSB7XG4vLyAgIHB1YmxpYyBJc1ByaXZhdGU/OiBib29sZWFuO1xuXG4vLyAgIHB1YmxpYyBOYW1lPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBPcmdhbml6YXRpb24/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIFBhdGhSZWdleD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgUHJpb3JpdHk/OiBudW1iZXI7XG5cbi8vICAgcHVibGljIFJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIFZlcnNpb24/OiBzdHJpbmc7XG4vLyB9XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJTZXR1cFN0YXRlIHtcbiAgICBwdWJsaWMgQnJhbmNoT3B0aW9ucz86IEdpdEh1YkJyYW5jaFtdO1xuXG4gICAgcHVibGljIENyZWF0aW5nUmVwb3NpdG9yeT86IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgSGFzQ29ubmVjdGlvbj86IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgTG9hZGluZz86IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgT3JnYW5pemF0aW9uT3B0aW9ucz86IEdpdEh1Yk9yZ2FuaXphdGlvbltdO1xuXG4gICAgcHVibGljIFJlcG9zaXRvcnlPcHRpb25zPzogR2l0SHViUmVwb3NpdG9yeVtdO1xufVxuXG5leHBvcnQgY2xhc3MgR2l0SHViQnJhbmNoIHtcbiAgICBwdWJsaWMgTmFtZT86IHN0cmluZztcbn1cblxuLy8gZXhwb3J0IGNsYXNzIEdpdEh1Ykxvd0NvZGVVbml0IHtcbi8vICAgcHVibGljIEJyYW5jaD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgSUQ/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIExvb2t1cD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgT3JnYW5pemF0aW9uPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBSZXBvc2l0b3J5Pzogc3RyaW5nO1xuLy8gfVxuXG5leHBvcnQgY2xhc3MgR2l0SHViT3JnYW5pemF0aW9uIHtcbiAgICBwdWJsaWMgTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEdpdEh1YlJlcG9zaXRvcnkge1xuICAgIHB1YmxpYyBDbG9uZVVSTD86IHN0cmluZztcblxuICAgIHB1YmxpYyBOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgR2l0SHViV29ya2Zsb3dSdW4ge1xuICAgIHB1YmxpYyBDb25jbHVzaW9uPzogc3RyaW5nO1xuXG4gICAgcHVibGljIENyZWF0ZWRBdD86IHN0cmluZztcblxuICAgIHB1YmxpYyBJRD86IHN0cmluZztcblxuICAgIHB1YmxpYyBMQ1VJRD86IHN0cmluZztcblxuICAgIHB1YmxpYyBSdW5OdW1iZXI/OiBudW1iZXI7XG5cbiAgICBwdWJsaWMgU3RhdHVzPzogc3RyaW5nO1xuXG4gICAgcHVibGljIFdvcmtmbG93Pzogc3RyaW5nO1xuXG4gICAgcHVibGljIFVwZGF0ZWRBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIExpY2Vuc2VBbmRCaWxsaW5nUmVzcG9uc2Uge1xuICAgIHB1YmxpYyBFbWFpbDogc3RyaW5nO1xuXG4gICAgcHVibGljIExpY2Vuc2U/OiBMaWNlbnNlO1xuXG4gICAgcHVibGljIFBsYW4/OiBQbGFuO1xuXG4gICAgcHVibGljIFByaWNlPzogUHJpY2U7XG59XG5cbmV4cG9ydCBjbGFzcyBMaWNlbnNlIHtcbiAgICBwdWJsaWMgRGV0YWlscz86IHN0cmluZztcblxuICAgIHB1YmxpYyBFeHBpcmF0aW9uRGF0ZT86IERhdGU7XG5cbiAgICBwdWJsaWMgSXNMb2NrZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUGxhbiB7XG4gICAgcHVibGljIERldGFpbHM/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgRmVhdHVyZWQ/OiBib29sZWFuO1xuXG4gICAgcHVibGljIEZlYXR1cmVzPzogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgSGVhZGVyTmFtZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBMb29rdXA/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgTmFtZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBQb3B1bGFyPzogc3RyaW5nO1xuXG4gICAgcHVibGljIFByaW9yaXR5Pzogc3RyaW5nO1xuXG4gICAgcHVibGljIFN1Y2Nlc3NSZWRpcmVjdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFByaWNlIHtcbiAgICBwdWJsaWMgQ3VycmVuY3k/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgRGlzY291bnQ/OiBudW1iZXI7XG5cbiAgICBwdWJsaWMgSW50ZXJ2YWw/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVmFsdWU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3Qge1xuICAgIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICAgIHB1YmxpYyBBcHBsaWNhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVmVyc2lvbj86IHN0cmluZztcbn1cblxuLy8gZXhwb3J0IGNsYXNzIERldk9wc0FjdGlvbiB7XG4vLyAgIHB1YmxpYyBEZXRhaWxzPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBJRD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgTmFtZT86IHN0cmluZztcblxuLy8gICBwdWJsaWMgT3ZlcndyaXRlPzogYm9vbGVhbjtcblxuLy8gICBwdWJsaWMgUGF0aD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgVGVtcGxhdGU/OiBzdHJpbmc7XG4vLyB9XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0SG9zdGluZ0RldGFpbHMge1xuICAgIHB1YmxpYyBIb3N0aW5nT3B0aW9ucz86IFByb2plY3RIb3N0aW5nT3B0aW9uW107XG5cbiAgICBwdWJsaWMgTG9hZGluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0SG9zdGluZ09wdGlvbiB7XG4gICAgcHVibGljIEFydGlmYWN0VHlwZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBEZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIHB1YmxpYyBJbWFnZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBJbnB1dHM/OiBQcm9qZWN0SG9zdGluZ09wdGlvbklucHV0W107XG5cbiAgICBwdWJsaWMgTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUGF0aD86IHN0cmluZztcblxuICAgIHB1YmxpYyBUZW1wbGF0ZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFByb2plY3RIb3N0aW5nT3B0aW9uSW5wdXQge1xuICAgIHB1YmxpYyBEZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSGludD86IHN0cmluZztcblxuICAgIHB1YmxpYyBMb29rdXA/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUmVxdWlyZWQ/OiBib29sZWFuO1xufVxuXG4vLyBleHBvcnQgY2xhc3MgRXN0YWJsaXNoUHJvamVjdFJlcXVlc3Qge1xuLy8gICBwdWJsaWMgQnJhbmNoPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBCdWlsZFNjcmlwdD86IHN0cmluZztcblxuLy8gICBwdWJsaWMgSG9zdGluZ09wdGlvbj86IHN0cmluZztcblxuLy8gICBwdWJsaWMgT3JnYW5pemF0aW9uPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBPdXRwdXRGb2xkZXI/OiBzdHJpbmc7XG5cbi8vICAgcHVibGljIFByb2plY3ROYW1lPzogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBSZXBvc2l0b3J5Pzogc3RyaW5nO1xuLy8gfVxuIl19
@@ -270,6 +270,11 @@ class ApplicationsFlowService {
270
270
  headers: this.loadHeaders(),
271
271
  });
272
272
  }
273
+ LoadLicenseData() {
274
+ return this.http.get(`${this.apiRoot}/api/lowcodeunit/manage/license`, {
275
+ headers: this.loadHeaders(),
276
+ });
277
+ }
273
278
  // public LoadProjectHostingDetails(
274
279
  // organization: string,
275
280
  // repository: string,
@@ -662,8 +667,7 @@ class ProjectService {
662
667
  return new Promise((resolve, reject) => {
663
668
  state.Loading = true;
664
669
  this.appsFlowSvc.SubmitFeedEntry(entry).subscribe((response) => __awaiter(this, void 0, void 0, function* () {
665
- if (response.Status.Code === 0 ||
666
- response.Status.Code === 1) {
670
+ if (response.Status.Code === 0) {
667
671
  resolve(response.Status);
668
672
  var results = yield Promise.all([
669
673
  this.LoadEnterpriseAsCode(state),
@@ -827,6 +831,14 @@ class GitHubRepository {
827
831
  }
828
832
  class GitHubWorkflowRun {
829
833
  }
834
+ class LicenseAndBillingResponse {
835
+ }
836
+ class License {
837
+ }
838
+ class Plan {
839
+ }
840
+ class Price {
841
+ }
830
842
  class UnpackLowCodeUnitRequest {
831
843
  }
832
844
  // export class DevOpsAction {
@@ -6440,9 +6452,8 @@ class FeedHeaderDialogComponent {
6440
6452
  Type: this.data.type,
6441
6453
  Title: this.TitleFormControl ? this.TitleFormControl.value : null,
6442
6454
  };
6443
- // console.log('Control: ', returnObject);
6455
+ console.log('Control: ', returnObject);
6444
6456
  this.eacSvc.SubmitFeedEntry(returnObject).then((res) => {
6445
- // console.log('result: ', res);
6446
6457
  if (res.Code === 0) {
6447
6458
  this.snackBar.open(` '${this.data.type}' Succesfully Created`, 'Dismiss', {
6448
6459
  duration: 5000,
@@ -6450,9 +6461,6 @@ class FeedHeaderDialogComponent {
6450
6461
  this.CloseDialog();
6451
6462
  }
6452
6463
  else {
6453
- this.snackBar.open(res.Message, 'Dismiss', {
6454
- panelClass: 'error',
6455
- });
6456
6464
  this.ErrorMessage = res.Message;
6457
6465
  }
6458
6466
  });
@@ -6569,10 +6577,10 @@ class FeedHeaderDialogComponent {
6569
6577
  }
6570
6578
  }
6571
6579
  FeedHeaderDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FeedHeaderDialogComponent, deps: [{ token: ApplicationsFlowService }, { token: EaCService }, { token: i1$1.FormBuilder }, { token: i2$3.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3$2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component });
6572
- FeedHeaderDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FeedHeaderDialogComponent, selector: "lcu-feed-header-dialog", ngImport: i0, template: "<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>{{ data.dialogTitle }}</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <form [formGroup]=\"FeedHeaderFormGroup\">\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n class=\"angular-editor\"\n id=\"issue-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- ANNOUNCEMENT FORM -->\n\n <ng-container *ngIf=\"data.type === 'Announcement'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Subtitle\"\n formControlName=\"subtitle\"\n />\n </mat-form-field>\n\n <angular-editor\n id=\"announcement-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Text\"\n formControlName=\"actionText\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Link\"\n formControlName=\"actionLink\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Icon\"\n formControlName=\"actionIcon\"\n />\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button\n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button\n color=\"primary\"\n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{\n ActionIconControl?.value\n }}</mat-icon>\n\n {{ ActionTextControl?.value }}\n </button>\n\n <button\n *ngIf=\"\n !ActionTextControl?.value && !ActionIconControl?.value\n \"\n mat-button\n color=\"primary\"\n >\n <mat-icon>cruelty_free</mat-icon>\n\n Example Button\n </button>\n </div>\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n PullRequestSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-icon>arrow_back</mat-icon>\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Compare</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n id=\"pr-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field>\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n FeatureBranchSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-select\n formControlName=\"organization\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let orgOpt of OrganizationOptions\"\n >\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n <mat-select\n formControlName=\"repository\"\n placeholder=\"Repository\"\n (selectionChange)=\"RepositoryChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field>\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Create New Branch\"\n formControlName=\"targetBranch\"\n required\n />\n </mat-form-field>\n </div>\n </ng-container>\n\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"submit\"\n (click)=\"Submit()\"\n [disabled]=\"IsDisabled()\"\n >\n Submit\n </button>\n</mat-dialog-actions>\n", styles: [".error{color:red}\n"], components: [{ type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i2$4.AngularEditorComponent, selector: "angular-editor", inputs: ["id", "config", "placeholder", "tabIndex"], outputs: ["html", "viewMode", "blur", "focus"] }, { type: i3$1.LoaderComponent, selector: "lcu-loader", inputs: ["diameter", "hide-inner", "loading"] }], directives: [{ type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i2$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i2$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i4$1.MatLabel, selector: "mat-label" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4$1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i2$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] });
6580
+ FeedHeaderDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FeedHeaderDialogComponent, selector: "lcu-feed-header-dialog", ngImport: i0, template: "<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>{{ data.dialogTitle }}</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <form [formGroup]=\"FeedHeaderFormGroup\">\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n class=\"angular-editor\"\n id=\"issue-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- ANNOUNCEMENT FORM -->\n\n <ng-container *ngIf=\"data.type === 'Announcement'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Subtitle\"\n formControlName=\"subtitle\"\n />\n </mat-form-field>\n\n <angular-editor\n id=\"announcement-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Text\"\n formControlName=\"actionText\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Link\"\n formControlName=\"actionLink\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Icon\"\n formControlName=\"actionIcon\"\n />\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button\n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button\n color=\"primary\"\n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{\n ActionIconControl?.value\n }}</mat-icon>\n\n {{ ActionTextControl?.value }}\n </button>\n\n <button\n *ngIf=\"\n !ActionTextControl?.value && !ActionIconControl?.value\n \"\n mat-button\n color=\"primary\"\n >\n <mat-icon>cruelty_free</mat-icon>\n\n Example Button\n </button>\n </div>\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n PullRequestSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-icon>arrow_back</mat-icon>\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Compare</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n id=\"pr-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field>\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n FeatureBranchSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-select\n formControlName=\"organization\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let orgOpt of OrganizationOptions\"\n >\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n <mat-select\n formControlName=\"repository\"\n placeholder=\"Repository\"\n (selectionChange)=\"RepositoryChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field>\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Create New Branch\"\n formControlName=\"targetBranch\"\n required\n />\n </mat-form-field>\n </div>\n </ng-container>\n\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"submit\"\n (click)=\"Submit()\"\n [disabled]=\"IsDisabled()\"\n >\n Submit\n </button>\n</mat-dialog-actions>\n", styles: [""], components: [{ type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i2$4.AngularEditorComponent, selector: "angular-editor", inputs: ["id", "config", "placeholder", "tabIndex"], outputs: ["html", "viewMode", "blur", "focus"] }, { type: i3$1.LoaderComponent, selector: "lcu-loader", inputs: ["diameter", "hide-inner", "loading"] }], directives: [{ type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i2$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i2$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i4$1.MatLabel, selector: "mat-label" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4$1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i2$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] });
6573
6581
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FeedHeaderDialogComponent, decorators: [{
6574
6582
  type: Component,
6575
- args: [{ selector: 'lcu-feed-header-dialog', template: "<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>{{ data.dialogTitle }}</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <form [formGroup]=\"FeedHeaderFormGroup\">\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n class=\"angular-editor\"\n id=\"issue-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- ANNOUNCEMENT FORM -->\n\n <ng-container *ngIf=\"data.type === 'Announcement'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Subtitle\"\n formControlName=\"subtitle\"\n />\n </mat-form-field>\n\n <angular-editor\n id=\"announcement-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Text\"\n formControlName=\"actionText\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Link\"\n formControlName=\"actionLink\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Icon\"\n formControlName=\"actionIcon\"\n />\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button\n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button\n color=\"primary\"\n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{\n ActionIconControl?.value\n }}</mat-icon>\n\n {{ ActionTextControl?.value }}\n </button>\n\n <button\n *ngIf=\"\n !ActionTextControl?.value && !ActionIconControl?.value\n \"\n mat-button\n color=\"primary\"\n >\n <mat-icon>cruelty_free</mat-icon>\n\n Example Button\n </button>\n </div>\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n PullRequestSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-icon>arrow_back</mat-icon>\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Compare</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n id=\"pr-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field>\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n FeatureBranchSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-select\n formControlName=\"organization\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let orgOpt of OrganizationOptions\"\n >\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n <mat-select\n formControlName=\"repository\"\n placeholder=\"Repository\"\n (selectionChange)=\"RepositoryChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field>\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Create New Branch\"\n formControlName=\"targetBranch\"\n required\n />\n </mat-form-field>\n </div>\n </ng-container>\n\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"submit\"\n (click)=\"Submit()\"\n [disabled]=\"IsDisabled()\"\n >\n Submit\n </button>\n</mat-dialog-actions>\n", styles: [".error{color:red}\n"] }]
6583
+ args: [{ selector: 'lcu-feed-header-dialog', template: "<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>{{ data.dialogTitle }}</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <form [formGroup]=\"FeedHeaderFormGroup\">\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n class=\"angular-editor\"\n id=\"issue-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- ANNOUNCEMENT FORM -->\n\n <ng-container *ngIf=\"data.type === 'Announcement'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Subtitle\"\n formControlName=\"subtitle\"\n />\n </mat-form-field>\n\n <angular-editor\n id=\"announcement-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Text\"\n formControlName=\"actionText\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Link\"\n formControlName=\"actionLink\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Icon\"\n formControlName=\"actionIcon\"\n />\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button\n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button\n color=\"primary\"\n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{\n ActionIconControl?.value\n }}</mat-icon>\n\n {{ ActionTextControl?.value }}\n </button>\n\n <button\n *ngIf=\"\n !ActionTextControl?.value && !ActionIconControl?.value\n \"\n mat-button\n color=\"primary\"\n >\n <mat-icon>cruelty_free</mat-icon>\n\n Example Button\n </button>\n </div>\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n PullRequestSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-icon>arrow_back</mat-icon>\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Compare</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n id=\"pr-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field>\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n FeatureBranchSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-select\n formControlName=\"organization\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let orgOpt of OrganizationOptions\"\n >\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n <mat-select\n formControlName=\"repository\"\n placeholder=\"Repository\"\n (selectionChange)=\"RepositoryChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field>\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Create New Branch\"\n formControlName=\"targetBranch\"\n required\n />\n </mat-form-field>\n </div>\n </ng-container>\n\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"submit\"\n (click)=\"Submit()\"\n [disabled]=\"IsDisabled()\"\n >\n Submit\n </button>\n</mat-dialog-actions>\n", styles: [""] }]
6576
6584
  }], ctorParameters: function () {
6577
6585
  return [{ type: ApplicationsFlowService }, { type: EaCService }, { type: i1$1.FormBuilder }, { type: i2$3.MatDialogRef }, { type: undefined, decorators: [{
6578
6586
  type: Inject,
@@ -7824,5 +7832,5 @@ class FormModel {
7824
7832
  * Generated bundle index. Do not edit.
7825
7833
  */
7826
7834
 
7827
- export { ActionsModel, AnalyticsCardComponent, ApplicationsFlowModule, ApplicationsFlowProjectsContext, ApplicationsFlowProjectsElementComponent, ApplicationsFlowProjectsElementState, ApplicationsFlowService, ApplicationsFlowState, ApplicationsFlowStateContext, AppsFlowComponent, BaseFormComponent, BaseFormConfigModel, BaseFormTestComponent, BreadcrumbComponent, BuildPipelineDialogComponent, BuildPipelineFormComponent, BuildsComponent, CardCarouselComponent, CardFormConfigModel, ConnectedSourceComponent, CreateProjectWizardComponent, CustomDomainDialogComponent, DFSModifiersComponent, DFSModifiersDialogComponent, DFSModifiersFormComponent, DevOpsComponent, DevSettingsPresetModel, DevopsSourceControlFormComponent, DomainModel, DomainsComponent, DynamicTabsComponent, DynamicTabsModel, EaCService, EditApplicationDialogComponent, EditApplicationFormComponent, EditProjectDialogComponent, EditProjectFormComponent, EmulatedDevicesToggleComponent, FeedCardSmComponent, FeedCommentFormComponent, FeedEntry, FeedHeaderComponent, FeedHeaderDialogComponent, FeedItem, FeedItemAction, FeedItemContributor, FeedItemTab, FormActionsModel, FormCardComponent, FormModel, FormValuesModel, FormsService, GitAuthComponent, GitHubBranch, GitHubOrganization, GitHubRepository, GitHubSetupState, GitHubWorkflowRun, HeaderComponent, HostingDetailsFormGroupComponent, IoTEnsembleService, MainFeedCardComponent, NPMService, NewApplicationDialogComponent, NpmPackageSelectComponent, PageHeaderComponent, ProcessorDetailsDialogComponent, ProcessorDetailsFormComponent, ProjectActionsModel, ProjectHostingDetails, ProjectHostingOption, ProjectHostingOptionInput, ProjectInfoCardComponent, ProjectItemsComponent, ProjectNameComponent, ProjectService, ProjectTabsComponent, RecentActivitiesComponent, RootDirectoryComponent, SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT, SaveApplicationAsCodeEventRequest, SaveDFSModifierEventRequest, SaveEnvironmentAsCodeEventRequest, SaveProjectAsCodeEventRequest, SecurityToggleComponent, SkeletonFeedCardComponent, SlottedCardComponent, SourceControlDialogComponent, SourceControlFormComponent, SourceControlFormControlsComponent, StateConfigDialogComponent, StateConfigFormComponent, ThreeColumnComponent, TwoColumnHeaderComponent, UnpackLowCodeUnitRequest, UpgradeDialogComponent, UserFeedResponse };
7835
+ export { ActionsModel, AnalyticsCardComponent, ApplicationsFlowModule, ApplicationsFlowProjectsContext, ApplicationsFlowProjectsElementComponent, ApplicationsFlowProjectsElementState, ApplicationsFlowService, ApplicationsFlowState, ApplicationsFlowStateContext, AppsFlowComponent, BaseFormComponent, BaseFormConfigModel, BaseFormTestComponent, BreadcrumbComponent, BuildPipelineDialogComponent, BuildPipelineFormComponent, BuildsComponent, CardCarouselComponent, CardFormConfigModel, ConnectedSourceComponent, CreateProjectWizardComponent, CustomDomainDialogComponent, DFSModifiersComponent, DFSModifiersDialogComponent, DFSModifiersFormComponent, DevOpsComponent, DevSettingsPresetModel, DevopsSourceControlFormComponent, DomainModel, DomainsComponent, DynamicTabsComponent, DynamicTabsModel, EaCService, EditApplicationDialogComponent, EditApplicationFormComponent, EditProjectDialogComponent, EditProjectFormComponent, EmulatedDevicesToggleComponent, FeedCardSmComponent, FeedCommentFormComponent, FeedEntry, FeedHeaderComponent, FeedHeaderDialogComponent, FeedItem, FeedItemAction, FeedItemContributor, FeedItemTab, FormActionsModel, FormCardComponent, FormModel, FormValuesModel, FormsService, GitAuthComponent, GitHubBranch, GitHubOrganization, GitHubRepository, GitHubSetupState, GitHubWorkflowRun, HeaderComponent, HostingDetailsFormGroupComponent, IoTEnsembleService, License, LicenseAndBillingResponse, MainFeedCardComponent, NPMService, NewApplicationDialogComponent, NpmPackageSelectComponent, PageHeaderComponent, Plan, Price, ProcessorDetailsDialogComponent, ProcessorDetailsFormComponent, ProjectActionsModel, ProjectHostingDetails, ProjectHostingOption, ProjectHostingOptionInput, ProjectInfoCardComponent, ProjectItemsComponent, ProjectNameComponent, ProjectService, ProjectTabsComponent, RecentActivitiesComponent, RootDirectoryComponent, SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT, SaveApplicationAsCodeEventRequest, SaveDFSModifierEventRequest, SaveEnvironmentAsCodeEventRequest, SaveProjectAsCodeEventRequest, SecurityToggleComponent, SkeletonFeedCardComponent, SlottedCardComponent, SourceControlDialogComponent, SourceControlFormComponent, SourceControlFormControlsComponent, StateConfigDialogComponent, StateConfigFormComponent, ThreeColumnComponent, TwoColumnHeaderComponent, UnpackLowCodeUnitRequest, UpgradeDialogComponent, UserFeedResponse };
7828
7836
  //# sourceMappingURL=lowcodeunit-applications-flow-common.mjs.map