ps-toolkit-ui 0.2.70 → 0.2.73

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.
@@ -167,6 +167,7 @@ export var PermissionInputActionEnum;
167
167
  PermissionInputActionEnum[PermissionInputActionEnum["File"] = 4] = "File";
168
168
  PermissionInputActionEnum[PermissionInputActionEnum["Modal"] = 5] = "Modal";
169
169
  PermissionInputActionEnum[PermissionInputActionEnum["Confirm"] = 6] = "Confirm";
170
+ PermissionInputActionEnum[PermissionInputActionEnum["Input"] = 7] = "Input";
170
171
  })(PermissionInputActionEnum || (PermissionInputActionEnum = {}));
171
172
  export var PermissionInputTypeEnum;
172
173
  (function (PermissionInputTypeEnum) {
@@ -187,4 +188,4 @@ export var TableOptionType;
187
188
  TableOptionType[TableOptionType["Show"] = 2] = "Show";
188
189
  TableOptionType[TableOptionType["Group"] = 3] = "Group";
189
190
  })(TableOptionType || (TableOptionType = {}));
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9lbnVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQVk7UUFDM0IsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQVksRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBWTtRQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTztnQkFDTCxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFOLElBQVks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UiwrRUFBVyxDQUFBO0lBQ1gseUVBQVEsQ0FBQTtJQUNSLHFGQUFjLENBQUE7SUFDZCx5RUFBUSxDQUFBO0lBQ1IsMkVBQVMsQ0FBQTtJQUNULCtFQUFXLENBQUE7QUFDYixDQUFDLEVBVFcseUJBQXlCLEtBQXpCLHlCQUF5QixRQVNwQztBQUVELE1BQU0sQ0FBTixJQUFZLHVCQUlYO0FBSkQsV0FBWSx1QkFBdUI7SUFFakMscUVBQVEsQ0FBQTtJQUNSLHlFQUFVLENBQUE7QUFDWixDQUFDLEVBSlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUlsQztBQUVELE1BQU0sQ0FBTixJQUFZLFdBT1g7QUFQRCxXQUFZLFdBQVc7SUFFckIsMkNBQU8sQ0FBQTtJQUNQLHlEQUFjLENBQUE7SUFDZCxxREFBWSxDQUFBO0lBQ1osK0NBQVMsQ0FBQTtJQUNULDZDQUFRLENBQUE7QUFDVixDQUFDLEVBUFcsV0FBVyxLQUFYLFdBQVcsUUFPdEI7QUFDRCxNQUFNLENBQU4sSUFBWSxlQUtYO0FBTEQsV0FBWSxlQUFlO0lBRXpCLHlEQUFVLENBQUE7SUFDVixxREFBUSxDQUFBO0lBQ1IsdURBQVMsQ0FBQTtBQUNYLENBQUMsRUFMVyxlQUFlLEtBQWYsZUFBZSxRQUsxQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBFbnVtVXRpbHMge1xyXG4gIHN0YXRpYyBnZXRWYWx1ZXMoZW51bU9iajogYW55KTogYW55W10ge1xyXG4gICAgcmV0dXJuIEVudW1VdGlscy5nZXRLZXlzKGVudW1PYmopLm1hcCh2YWx1ZSA9PiBlbnVtT2JqW3ZhbHVlXSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRLZXlCeVZhbHVlKGVudW1PYmo6IGFueSwgdik6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLmdldEtleXMoZW51bU9iaikuZmluZChrZXkgPT4gZW51bU9ialtrZXldID09PSB2KTtcclxuICB9XHJcbiAgc3RhdGljIGdldEtleXMoZW51bU9iajogYW55KTogYW55W10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudW1PYmopLmZpbHRlcihrZXkgPT4gdHlwZW9mIGVudW1PYmpba2V5XSA9PT0gJ251bWJlcicpO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0S2V5c0FuZFZhbHVlcyhlbnVtT2JqOiBhbnkpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRLZXlzKGVudW1PYmopLm1hcChrZXkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGtleSwgdmFsdWU6IGVudW1PYmpba2V5XVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBJbnB1dEVycm9yIHtcclxuICBSZXF1aXJlZCA9ICdSZXF1aXJlZCcsXHJcbiAgSW52YWxpZCA9ICdJbnZhbGlkJyxcclxuICBMZW5ndGggPSAnTGVuZ3RoJyxcclxuICBNaW5MZW5ndGggPSAnTWluTGVuZ3RoJyxcclxuICBNYXhMZW5ndGggPSAnTWF4TGVuZ3RoJyxcclxuICBNaW5BbW91bnQgPSAnTWluQW1vdW50JyxcclxuICBNYXhBbW91bnQgPSAnTWF4QW1vdW50JyxcclxuICBFeHBpcmVkID0gJ0V4cGlyZWQnLFxyXG4gIEVycm9yID0gJ0Vycm9yJyxcclxuICBOb3RNYXRjaCA9ICdOb3RNYXRjaCcsXHJcbiAgTm90QWxsb3dlZCA9ICdOb3RBbGxvd2VkJyxcclxuICBNYXhDb250ZW50ID0gJ01heENvbnRlbnQnLFxyXG4gIEV4aXN0ID0gJ0V4aXN0JyxcclxuICBOb3RFeGlzdCA9ICdOb3RFeGlzdCcsXHJcbiAgV3JvbmcgPSAnV3JvbmcnLFxyXG4gIFVwbG9hZCA9ICdVcGxvYWQnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBJbnB1dFR5cGUge1xyXG4gIFRleHQsXHJcbiAgUGFzc3dvcmQsXHJcbiAgTW9iaWxlLFxyXG4gIFBob25lLFxyXG4gIEVtYWlsLFxyXG4gIE5hdGlvbmFsQ29kZSxcclxuICBQb3N0YWxDb2RlLFxyXG4gIFNoZWJhLFxyXG4gIE51bWJlcixcclxuICBTZWxlY3QsXHJcbiAgU2VsZWN0U2VhcmNoLFxyXG4gIFNlbGVjdEF1dG9Db21wbGV0ZSxcclxuICBEYXRlLFxyXG4gIFRpbWUsXHJcbiAgRGF0ZVRpbWUsXHJcbiAgQ2hlY2ssXHJcbiAgVGV4dEFyZWEsXHJcbiAgTGFiZWwsXHJcbiAgQnV0dG9uLFxyXG4gIFN1Ym1pdCxcclxuICBJY29uLFxyXG4gIEZpbGUsXHJcbiAgVXJsLFxyXG4gIFByaWNlLFxyXG4gIFJhZGlvLFxyXG4gIFRyZWUsXHJcbiAgUGxhcXVlLFxyXG4gIFBsYXF1ZU0sXHJcbiAgU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlLFxyXG4gIFNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0sXHJcbiAgQmFua0NhcmQsXHJcbiAgQ29uc3RhbnQsXHJcbiAgSGlkZGVuLFxyXG4gIFRhYmxlLFxyXG4gIENhclNlYXJjaCxcclxuICBDYXIsXHJcbiAgRmluZ2VyLFxyXG4gIENvbG9yLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBPcGVyYXRpb25FbnVtXHJcbntcclxuICBBbGwgPSAtMSxcclxuICBJbnNlcnQgPSAxLFxyXG4gIFVwZGF0ZSA9IDIsXHJcbiAgRGVsZXRlID0gMyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTWV0aG9kIHtcclxuICBHZXQsXHJcbiAgUG9zdCxcclxuICBEZWxldGUsXHJcbiAgUHV0LFxyXG4gIE9wdGlvbnMsXHJcbiAgUGF0Y2gsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ29sbFR5cGUge1xyXG4gIFRleHQsXHJcbiAgRGF0ZSxcclxuICBUaW1lLFxyXG4gIERhdGVUaW1lLFxyXG4gIERhdGVEaWYsXHJcbiAgRGF0ZVJlbWFpbixcclxuICBVcmwsXHJcbiAgSW1hZ2UsXHJcbiAgRnVuY3Rpb24sXHJcbiAgUHJpY2UsXHJcbiAgUGxhcXVlLFxyXG4gIFBsYXF1ZVRleHQsXHJcbiAgRmlsZVNpemUsXHJcbiAgQm9vbCxcclxuICBPcHRpb25zLFxyXG4gIENvbG9yLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBVc2VyVHlwZSB7XHJcbiAgQWxsID0gMCxcclxuICBBZG1pbiA9IDEsXHJcbiAgVXNlciA9IDJcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU3RhdHVzRW51bVxyXG57XHJcbiAgQWxsID0gLTEsXHJcbiAgQWN0aXZlID0gMCxcclxuICBEZUFjdGl2ZSA9IDEsXHJcbiAgRGVsZXRlID0gMixcclxuICBSZXBvcnQgPSAzLFxyXG59XHJcbmV4cG9ydCBlbnVtIFBheW1lbnRTdGF0dXNFbnVtXHJcbntcclxuICBBbGwgPSAwLFxyXG4gIFN1Y2Nlc3MgPSAxMDAsXHJcbiAgTk9LID0gMTAyLFxyXG4gIFJlcXVlc3QgPSAxMDMsXHJcbiAgTm90Zm91bmQgPSAxMDQsXHJcbiAgTm90UmVxdWVzdCA9IDEwNSxcclxuICBOb3Rmb3VuZFBhY2thZ2UgPSAxMDZcclxufVxyXG5leHBvcnQgZW51bSBSZXN1bHRTdGF0dXNFbnVtXHJcbntcclxuICBGYWlsZWQgPSAwLFxyXG4gIFN1Y2Nlc3MgPSAxLFxyXG4gIFVuYXV0aG9yaXplZCA9IDIsXHJcbiAgTm90QWNjZXNzID0gM1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uVHlwZUVudW1cclxue1xyXG4gIEZvcm0gPSAtMSxcclxuICBJdGVtID0gMCxcclxuICBBY2Nlc3MgPSAxLFxyXG4gIE9wdGlvbiA9IDIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bVxyXG57XHJcbiAgTGlzdCA9IDEsXHJcbiAgSW5zZXJ0ID0gMixcclxuICBVcGRhdGUgPSAzLFxyXG4gIERlbGV0ZSA9IDQsXHJcbiAgUmVwb3J0ID0gNSxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bVxyXG57XHJcbiAgTm9uZSA9IDAsXHJcbiAgT25DbGljayA9IDEsXHJcbiAgTGluayA9IDIsXHJcbiAgTGlua05ld1RhYiA9IDMsXHJcbiAgRmlsZSA9IDQsXHJcbiAgTW9kYWwgPSA1LFxyXG4gIENvbmZpcm0gPSA2XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtXHJcbntcclxuICBJY29uID0gMCxcclxuICBCdXR0b24gPSAxLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBWZWhpY2xlVHlwZVxyXG57XHJcbiAgQ2FyID0gMSxcclxuICBNb3RvcmN5Y2xlID0gMixcclxuICBBaXJwbGFuZSA9IDMsXHJcbiAgVHJhaW4gPSA0LFxyXG4gIFNoaXAgPSA1LFxyXG59XHJcbmV4cG9ydCBlbnVtIFRhYmxlT3B0aW9uVHlwZVxyXG57XHJcbiAgSGlkZGVuID0gMSxcclxuICBTaG93ID0gMixcclxuICBHcm91cCA9IDMsXHJcbn1cclxuIl19
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9lbnVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQVk7UUFDM0IsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQVksRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBWTtRQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTztnQkFDTCxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFOLElBQVks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UiwrRUFBVyxDQUFBO0lBQ1gseUVBQVEsQ0FBQTtJQUNSLHFGQUFjLENBQUE7SUFDZCx5RUFBUSxDQUFBO0lBQ1IsMkVBQVMsQ0FBQTtJQUNULCtFQUFXLENBQUE7SUFDWCwyRUFBUyxDQUFBO0FBQ1gsQ0FBQyxFQVZXLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFVcEM7QUFFRCxNQUFNLENBQU4sSUFBWSx1QkFJWDtBQUpELFdBQVksdUJBQXVCO0lBRWpDLHFFQUFRLENBQUE7SUFDUix5RUFBVSxDQUFBO0FBQ1osQ0FBQyxFQUpXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFJbEM7QUFFRCxNQUFNLENBQU4sSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBRXJCLDJDQUFPLENBQUE7SUFDUCx5REFBYyxDQUFBO0lBQ2QscURBQVksQ0FBQTtJQUNaLCtDQUFTLENBQUE7SUFDVCw2Q0FBUSxDQUFBO0FBQ1YsQ0FBQyxFQVBXLFdBQVcsS0FBWCxXQUFXLFFBT3RCO0FBQ0QsTUFBTSxDQUFOLElBQVksZUFLWDtBQUxELFdBQVksZUFBZTtJQUV6Qix5REFBVSxDQUFBO0lBQ1YscURBQVEsQ0FBQTtJQUNSLHVEQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsZUFBZSxLQUFmLGVBQWUsUUFLMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgRW51bVV0aWxzIHtcclxuICBzdGF0aWMgZ2V0VmFsdWVzKGVudW1PYmo6IGFueSk6IGFueVtdIHtcclxuICAgIHJldHVybiBFbnVtVXRpbHMuZ2V0S2V5cyhlbnVtT2JqKS5tYXAodmFsdWUgPT4gZW51bU9ialt2YWx1ZV0pO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0S2V5QnlWYWx1ZShlbnVtT2JqOiBhbnksIHYpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRLZXlzKGVudW1PYmopLmZpbmQoa2V5ID0+IGVudW1PYmpba2V5XSA9PT0gdik7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRLZXlzKGVudW1PYmo6IGFueSk6IGFueVtdIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtT2JqKS5maWx0ZXIoa2V5ID0+IHR5cGVvZiBlbnVtT2JqW2tleV0gPT09ICdudW1iZXInKTtcclxuICB9XHJcbiAgc3RhdGljIGdldEtleXNBbmRWYWx1ZXMoZW51bU9iajogYW55KTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0S2V5cyhlbnVtT2JqKS5tYXAoa2V5ID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBrZXksIHZhbHVlOiBlbnVtT2JqW2tleV1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gSW5wdXRFcnJvciB7XHJcbiAgUmVxdWlyZWQgPSAnUmVxdWlyZWQnLFxyXG4gIEludmFsaWQgPSAnSW52YWxpZCcsXHJcbiAgTGVuZ3RoID0gJ0xlbmd0aCcsXHJcbiAgTWluTGVuZ3RoID0gJ01pbkxlbmd0aCcsXHJcbiAgTWF4TGVuZ3RoID0gJ01heExlbmd0aCcsXHJcbiAgTWluQW1vdW50ID0gJ01pbkFtb3VudCcsXHJcbiAgTWF4QW1vdW50ID0gJ01heEFtb3VudCcsXHJcbiAgRXhwaXJlZCA9ICdFeHBpcmVkJyxcclxuICBFcnJvciA9ICdFcnJvcicsXHJcbiAgTm90TWF0Y2ggPSAnTm90TWF0Y2gnLFxyXG4gIE5vdEFsbG93ZWQgPSAnTm90QWxsb3dlZCcsXHJcbiAgTWF4Q29udGVudCA9ICdNYXhDb250ZW50JyxcclxuICBFeGlzdCA9ICdFeGlzdCcsXHJcbiAgTm90RXhpc3QgPSAnTm90RXhpc3QnLFxyXG4gIFdyb25nID0gJ1dyb25nJyxcclxuICBVcGxvYWQgPSAnVXBsb2FkJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gSW5wdXRUeXBlIHtcclxuICBUZXh0LFxyXG4gIFBhc3N3b3JkLFxyXG4gIE1vYmlsZSxcclxuICBQaG9uZSxcclxuICBFbWFpbCxcclxuICBOYXRpb25hbENvZGUsXHJcbiAgUG9zdGFsQ29kZSxcclxuICBTaGViYSxcclxuICBOdW1iZXIsXHJcbiAgU2VsZWN0LFxyXG4gIFNlbGVjdFNlYXJjaCxcclxuICBTZWxlY3RBdXRvQ29tcGxldGUsXHJcbiAgRGF0ZSxcclxuICBUaW1lLFxyXG4gIERhdGVUaW1lLFxyXG4gIENoZWNrLFxyXG4gIFRleHRBcmVhLFxyXG4gIExhYmVsLFxyXG4gIEJ1dHRvbixcclxuICBTdWJtaXQsXHJcbiAgSWNvbixcclxuICBGaWxlLFxyXG4gIFVybCxcclxuICBQcmljZSxcclxuICBSYWRpbyxcclxuICBUcmVlLFxyXG4gIFBsYXF1ZSxcclxuICBQbGFxdWVNLFxyXG4gIFNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSxcclxuICBTZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNLFxyXG4gIEJhbmtDYXJkLFxyXG4gIENvbnN0YW50LFxyXG4gIEhpZGRlbixcclxuICBUYWJsZSxcclxuICBDYXJTZWFyY2gsXHJcbiAgQ2FyLFxyXG4gIEZpbmdlcixcclxuICBDb2xvcixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gT3BlcmF0aW9uRW51bVxyXG57XHJcbiAgQWxsID0gLTEsXHJcbiAgSW5zZXJ0ID0gMSxcclxuICBVcGRhdGUgPSAyLFxyXG4gIERlbGV0ZSA9IDMsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE1ldGhvZCB7XHJcbiAgR2V0LFxyXG4gIFBvc3QsXHJcbiAgRGVsZXRlLFxyXG4gIFB1dCxcclxuICBPcHRpb25zLFxyXG4gIFBhdGNoLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBUYWJsZUNvbGxUeXBlIHtcclxuICBUZXh0LFxyXG4gIERhdGUsXHJcbiAgVGltZSxcclxuICBEYXRlVGltZSxcclxuICBEYXRlRGlmLFxyXG4gIERhdGVSZW1haW4sXHJcbiAgVXJsLFxyXG4gIEltYWdlLFxyXG4gIEZ1bmN0aW9uLFxyXG4gIFByaWNlLFxyXG4gIFBsYXF1ZSxcclxuICBQbGFxdWVUZXh0LFxyXG4gIEZpbGVTaXplLFxyXG4gIEJvb2wsXHJcbiAgT3B0aW9ucyxcclxuICBDb2xvcixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXNlclR5cGUge1xyXG4gIEFsbCA9IDAsXHJcbiAgQWRtaW4gPSAxLFxyXG4gIFVzZXIgPSAyXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFN0YXR1c0VudW1cclxue1xyXG4gIEFsbCA9IC0xLFxyXG4gIEFjdGl2ZSA9IDAsXHJcbiAgRGVBY3RpdmUgPSAxLFxyXG4gIERlbGV0ZSA9IDIsXHJcbiAgUmVwb3J0ID0gMyxcclxufVxyXG5leHBvcnQgZW51bSBQYXltZW50U3RhdHVzRW51bVxyXG57XHJcbiAgQWxsID0gMCxcclxuICBTdWNjZXNzID0gMTAwLFxyXG4gIE5PSyA9IDEwMixcclxuICBSZXF1ZXN0ID0gMTAzLFxyXG4gIE5vdGZvdW5kID0gMTA0LFxyXG4gIE5vdFJlcXVlc3QgPSAxMDUsXHJcbiAgTm90Zm91bmRQYWNrYWdlID0gMTA2XHJcbn1cclxuZXhwb3J0IGVudW0gUmVzdWx0U3RhdHVzRW51bVxyXG57XHJcbiAgRmFpbGVkID0gMCxcclxuICBTdWNjZXNzID0gMSxcclxuICBVbmF1dGhvcml6ZWQgPSAyLFxyXG4gIE5vdEFjY2VzcyA9IDNcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUGVybWlzc2lvblR5cGVFbnVtXHJcbntcclxuICBGb3JtID0gLTEsXHJcbiAgSXRlbSA9IDAsXHJcbiAgQWNjZXNzID0gMSxcclxuICBPcHRpb24gPSAyLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW1cclxue1xyXG4gIExpc3QgPSAxLFxyXG4gIEluc2VydCA9IDIsXHJcbiAgVXBkYXRlID0gMyxcclxuICBEZWxldGUgPSA0LFxyXG4gIFJlcG9ydCA9IDUsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW1cclxue1xyXG4gIE5vbmUgPSAwLFxyXG4gIE9uQ2xpY2sgPSAxLFxyXG4gIExpbmsgPSAyLFxyXG4gIExpbmtOZXdUYWIgPSAzLFxyXG4gIEZpbGUgPSA0LFxyXG4gIE1vZGFsID0gNSxcclxuICBDb25maXJtID0gNixcclxuICBJbnB1dCA9IDcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtXHJcbntcclxuICBJY29uID0gMCxcclxuICBCdXR0b24gPSAxLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBWZWhpY2xlVHlwZVxyXG57XHJcbiAgQ2FyID0gMSxcclxuICBNb3RvcmN5Y2xlID0gMixcclxuICBBaXJwbGFuZSA9IDMsXHJcbiAgVHJhaW4gPSA0LFxyXG4gIFNoaXAgPSA1LFxyXG59XHJcbmV4cG9ydCBlbnVtIFRhYmxlT3B0aW9uVHlwZVxyXG57XHJcbiAgSGlkZGVuID0gMSxcclxuICBTaG93ID0gMixcclxuICBHcm91cCA9IDMsXHJcbn1cclxuIl19
@@ -176,7 +176,7 @@ export class FormTextboxComponent {
176
176
  FormTextboxComponent.decorators = [
177
177
  { type: Component, args: [{
178
178
  selector: 'lib-form-textbox',
179
- template: "<div #inputDiv [id]=\"inp.name + 'Input'\" [style]=\"inp.style\" [className]=\"'form-input-con text w-100' + (inp.error == null ? '' : ' error') + (inp.disabled || inp.loading ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onFocusIn()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <input (keydown)=\"onKeyDown($event)\" (change)=\"onChange($event)\" (keyup)=\"onKeyUp($event)\" [disabled]=\"inp.disabled || inp.loading\" [value]=\"getValue()\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase [type]=\"inp.type == type.Password ? 'password': 'text'\" [name]=\"inp.name\" class=\"control\" autocomplete=\"off\" [maxLength]=\"inp.maxLength > 0 ? inp.type == type.Number ? inp.maxLength.toString().length : inp.maxLength : 524288\">\r\n <span *ngIf=\"inp.icon != null || inp.loading\" (click)=\"inp.button && onClickButton()\" #inputIcon [className]=\"(inp.button ? inp.button + ' button ' : '') + 'icon'\">\r\n <i [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner ' : inp.icon + ' ')\">{{inp.type === type.Sheba ? 'IR' : ''}}</i>\r\n </span>\r\n <span *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"clear-icon\">\r\n <i class=\"fa-duotone fa-eraser\"></i>\r\n </span>\r\n <div *ngIf=\"inp.progress != null && inp.progress.remainSecs > 0\" [ngStyle]=\"{width: inp.progress.percent + '%'}\" class=\"progress\"></div>\r\n </div>\r\n</div>\r\n",
179
+ template: "<div #inputDiv [id]=\"inp.name + 'Input'\" [style]=\"inp.style\" [className]=\"'form-input-con text w-100' + (inp.error == null ? '' : ' error') + (inp.disabled || inp.loading ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onFocusIn()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <input (keydown)=\"onKeyDown($event)\" (change)=\"onChange($event)\" (keyup)=\"onKeyUp($event)\" [disabled]=\"inp.disabled || inp.loading\" [value]=\"getValue()\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase [type]=\"inp.type == type.Password ? 'password': 'text'\" [name]=\"inp.name\" class=\"control\" autocomplete=\"off\" [maxLength]=\"inp.maxLength > 0 ? inp.type == type.Number || inp.type == type.Price ? inp.maxLength.toString().length : inp.maxLength : 524288\">\r\n <span *ngIf=\"inp.icon != null || inp.loading\" (click)=\"inp.button && onClickButton()\" #inputIcon [className]=\"(inp.button ? inp.button + ' button ' : '') + 'icon'\">\r\n <i [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner ' : inp.icon + ' ')\">{{inp.type === type.Sheba ? 'IR' : ''}}</i>\r\n </span>\r\n <span *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"clear-icon\">\r\n <i class=\"fa-duotone fa-eraser\"></i>\r\n </span>\r\n <div *ngIf=\"inp.progress != null && inp.progress.remainSecs > 0\" [ngStyle]=\"{width: inp.progress.percent + '%'}\" class=\"progress\"></div>\r\n </div>\r\n</div>\r\n",
180
180
  styles: [".form-input-con.text{padding:0 15px;position:relative}.form-input-con.text .form-input{float:right;position:relative;width:100%}.form-input-con.text .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.text.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.text .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.text .form-input .control{background-color:#fff;background-image:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-family:Vazir;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.text .form-input .control:focus,.form-input-con.text .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.text.error .form-input .control{border:var(--border-input-red)}.form-input-con.text.error .form-input .control,.form-input-con.text.error .form-input span.icon{color:var(--red)}.form-input-con.text.error .form-input .control:focus,.form-input-con.text.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.text .form-input span.icon{color:var(--primary);cursor:text;left:0}.form-input-con.text .form-input span.clear-icon,.form-input-con.text .form-input span.icon{bottom:0;font-size:14px;height:35px;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.text .form-input span.clear-icon{color:var(--red);cursor:pointer;right:0}.form-input-con.text .form-input span.icon.button{background-color:var(--base);border-radius:var(--border-radius-base) 0 0 var(--border-radius-base);color:#fff;cursor:pointer}.form-input-con.text .form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.text .form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.text .form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.text .form-input span.icon.button.green{background-color:var(--green)}.form-input-con.text .form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.text .form-input span.icon.button.red{background-color:var(--red)}.form-input-con.text .form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.text .form-input span.icon.button.primary{background-color:var(--primary)}.form-input-con.text .form-input span.icon.button.primary:hover{background-color:var(--primary-dark)}.form-input-con.text.disabled .form-input .control,.form-input-con.text.disabled .form-input .label,.form-input-con.text.disabled .form-input span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.text .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:-3px;height:10px;line-height:10px;margin-right:0;position:absolute;right:0;transition:width .5s ease-in-out;width:100%}.form-input-con.text.without-icon .form-input .control{padding:5px 10px}.form-input-con.text.h-50 .form-input .control{height:50px}.form-input-con.text.h-50 .form-input span.icon{height:50px;line-height:50px}.form-input-con.text.h-45 .form-input .control{font-size:17px;height:45px}.form-input-con.text.h-45 .form-input .control::-moz-placeholder,.form-input-con.text.h-45 .form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.text.h-45 .form-input span.icon{font-size:15px;height:45px;line-height:50px}.form-input-con.text.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.text.h-30 .form-input span.icon{font-size:11px;height:30px;line-height:33px;width:30px}.form-input-con.text.h-35{height:35px}.form-input-con.text.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.text.h-35 .form-input span.icon{height:35px;line-height:35px}.form-input-con.text.h-25 .form-input .control{height:25px;padding:0}.form-input-con.text.h-25 .form-input span.icon{height:25px;line-height:25px}.form-input-con.text.h-25 .form-input .control::-moz-placeholder,.form-input-con.text.h-25 .form-input .control::-webkit-input-placeholder{font-family:VazirLight;font-size:10px}.form-input-con.text.plaque-part-item .form-input .control{border:none!important}.form-input-con.text.plaque-part-1{float:left!important;padding:0!important;width:35px!important}.form-input-con.text.plaque-part-1.plaque-part-m{width:49px!important}.form-input-con.text.plaque-part-3{float:left!important;padding:0!important;width:49px!important}.form-input-con.text.plaque-part-3.plaque-part-m{width:69px!important}.form-input-con.text.plaque-part-4{float:left!important;margin-top:10px;padding:0!important;width:31px!important}.form-input-con.text.plaque-part-4 .form-input .control{height:25px!important}.form-input-con.text.plaque-part-4.plaque-part-m{display:none!important}.form-input-con.text.bank-card-part-item{float:left!important;padding:0!important;width:25%}.form-input-con.text.bank-card-part-item:not(.bank-card-part-4):after{content:\"\\f068\";font-family:Font Awesome\\ 5 Pro;font-size:6px;font-weight:900;height:20px;line-height:20px;position:absolute;right:-10px;text-align:center;top:calc(50% - 10px);width:20px}.form-input-con.text.bank-card-part-item .form-input .control{background-color:initial!important;border:unset!important;box-shadow:unset!important;font-size:13px!important;padding:0!important}"]
181
181
  },] }
182
182
  ];
@@ -187,4 +187,4 @@ FormTextboxComponent.propDecorators = {
187
187
  inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
188
188
  inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
189
189
  };
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50ZXh0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL3RleHRib3gvZm9ybS50ZXh0Ym94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBZ0IsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPMUQsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVFFLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFNekMsbUJBQWMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUF1S3pJLENBQUM7SUEzS0MsSUFBSSxJQUFJO1FBQ04sT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU9ELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pELENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FB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STtZQUNGLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBQztnQkFDdEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUNsQixPQUFPLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7aUJBQ3pDO2dCQUNELE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7WUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO1FBQ0QsV0FBTTtZQUNKLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDOzs7WUF0TEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLDhsREFBNEM7O2FBRTdDOzs7a0JBRUUsS0FBSzswQkFHTCxNQUFNO3dCQVFOLFNBQVMsU0FBQyxXQUFXO3VCQUNyQixTQUFTLFNBQUMsVUFBVTt5QkFDcEIsU0FBUyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3IsIElucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS10ZXh0Ym94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS50ZXh0Ym94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnRleHRib3guY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVGV4dGJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgY1ZhbHVlID0gJyc7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZSB7XHJcbiAgICByZXR1cm4gSW5wdXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGlvbktleXMgPSBbJ0JhY2tzcGFjZScsICdEZWxldGUnLCAnVGFiJywgJ0VzY2FwZScsICdFbnRlcicsICdIb21lJywgJ0VuZCcsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdDbGVhcicsICdDb3B5JywgJ1Bhc3RlJ107XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRMYWJlbCcpIGlucHV0TGFiZWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHYgIT0gbnVsbCA/IHYudG9TdHJpbmcoKSA6ICcnO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKGNoYW5nZUluZGV4PSBmYWxzZSkgPT4ge1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbihjaGFuZ2VJbmRleCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuaW5wLnJlcXVpcmVkICYmICF0aGlzLmlucC52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuTW9iaWxlICYmICFSZWdFeHAoL14oMDlcXGR7OX0pJC8pLnRlc3QodGhpcy5pbnAudmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLkludmFsaWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGhvbmUgJiYgIVJlZ0V4cCgvXigwXFxkezEwfSkkLykudGVzdCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5VcmwgJiYgIVJlZ0V4cCgvXmh0dHBzPzpcXC9cXC8od3d3XFwuKT9bLWEtekEtWjAtOUA6JS5fK34jPV17MSwyNTZ9XFwuW2EtekEtWjAtOSgpXXsxLDZ9XFxiKFstYS16QS1aMC05KClAOiVfKy5+Iz8mLz1dKikkLykudGVzdCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5Db2xvciAmJiAhUmVnRXhwKC9eI1swLTlBLUZdezZ9JC8pLnRlc3QodGhpcy5pbnAudmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLkludmFsaWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuRW1haWwgJiYgIVJlZ0V4cCgvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLykudGVzdCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbENvZGUgJiYgIUhlbHBlckNsYXNzLm5hdGlvbmFsQ29kZVZhbGlkKHRoaXMuaW5wLnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5JbnZhbGlkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNoZWJhICYmICFIZWxwZXJDbGFzcy5zaGViYVZhbGlkKHRoaXMuaW5wLnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5JbnZhbGlkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBvc3RhbENvZGUgJiYgIUhlbHBlckNsYXNzLnBvc3RhbENvZGVWYWxpZCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5OdW1iZXIgfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlByaWNlKXtcclxuICAgICAgICBjb25zdCB2ID0gdGhpcy5pbnAudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgICBpZiAoIS9eXFxkKyQvLnRlc3Qodikpe1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLkludmFsaWQ7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuTnVtYmVyIHx8IHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QcmljZSl7XHJcbiAgICAgICAgY29uc3QgdiA9IHBhcnNlSW50KHRoaXMuaW5wLnZhbHVlLnJlcGxhY2UoLywvZywgJycpLCAxMCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLm1pbkxlbmd0aCAhPT0gLTEgJiYgdiA8IHRoaXMuaW5wLm1pbkxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1pbkFtb3VudDtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLm1heExlbmd0aCAhPT0gLTEgJiYgdiA+IHRoaXMuaW5wLm1heExlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1heEFtb3VudDtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLm1pbkxlbmd0aCAhPT0gLTEgJiYgdGhpcy5pbnAubWluTGVuZ3RoID09PSB0aGlzLmlucC5tYXhMZW5ndGggJiZcclxuICAgICAgICAgIHRoaXMuaW5wLnZhbHVlLmxlbmd0aCAhPT0gdGhpcy5pbnAubWluTGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuTGVuZ3RoO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy5pbnAubWluTGVuZ3RoICE9PSAtMSAmJiB0aGlzLmlucC52YWx1ZS5sZW5ndGggPCB0aGlzLmlucC5taW5MZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5NaW5MZW5ndGg7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLmlucC5tYXhMZW5ndGggIT09IC0xICYmIHRoaXMuaW5wLnZhbHVlLmxlbmd0aCA+IHRoaXMuaW5wLm1heExlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1heExlbmd0aDtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLm1hdGNoICE9PSBudWxsICYmIHRoaXMuaW5wLnZhbHVlICE9PSB0aGlzLmlucC5tYXRjaC52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5Ob3RNYXRjaDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIGxldCB2ID0gdGhpcy5pbnAudmFsdWU7XHJcbiAgICAgIGlmICh2ID09PSBudWxsKXtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAodiAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuTnVtYmVyIHx8IHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QcmljZSl7XHJcbiAgICAgICAgdiA9IHBhcnNlSW50KHYucmVwbGFjZSgvLC9nLCAnJyksIDEwKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzSW4oY2hhbmdlSW5kZXggPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZUluZGV4KXtcclxuICAgICAgdGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uQ2hhbmdlKGUpOiB2b2lkIHtcclxuICAgIHRoaXMub25LZXlVcChlKTtcclxuICB9XHJcblxyXG4gIG9uS2V5VXAoZSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAudmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIGlmICh0aGlzLmlucC5vbktleVVwKSB7XHJcbiAgICAgIHRoaXMuaW5wLm9uS2V5VXAodGhpcy5pbnApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNWYWx1ZSAhPT0gZS50YXJnZXQudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5jVmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvbkNsaWNrQnV0dG9uKCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAuaXNWYWxpZCgpKXtcclxuICAgICAgdGhpcy5pbnAub25DbGlja0J1dHRvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uS2V5RG93bikge1xyXG4gICAgICB0aGlzLmlucC5vbktleURvd24oZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSB8fCBjb2RlID09PSAxMykge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmIChjb2RlID09PSAxMyAmJiB0aGlzLmlucC5idXR0b24pe1xyXG4gICAgICAgIHRoaXMub25DbGlja0J1dHRvbigpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoY29kZSA9PT0gOSA/IGUuc2hpZnRLZXkgPyAnU2hpZnRUYWInIDogJ1RhYicgOiBlLnNoaWZ0S2V5ID8gJ1NoaWZ0RW50ZXInIDogJ0VudGVyJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmlucC52YWx1ZSAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUHJpY2Upe1xyXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmlucC52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgIGlmICgvXlxcZCskLy50ZXN0KHYpKXtcclxuICAgICAgICAgIHJldHVybiBwYXJzZUludCh2LCAxMCkudG9Mb2NhbGVTdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuaW5wLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50ZXh0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL3RleHRib3gvZm9ybS50ZXh0Ym94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBZ0IsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPMUQsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVFFLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFNekMsbUJBQWMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUF1S3pJLENBQUM7SUEzS0MsSUFBSSxJQUFJO1FBQ04sT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU9ELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pELENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FB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STtZQUNGLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBQztnQkFDdEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUNsQixPQUFPLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7aUJBQ3pDO2dCQUNELE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7WUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO1FBQ0QsV0FBTTtZQUNKLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDOzs7WUF0TEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLHduREFBNEM7O2FBRTdDOzs7a0JBRUUsS0FBSzswQkFHTCxNQUFNO3dCQVFOLFNBQVMsU0FBQyxXQUFXO3VCQUNyQixTQUFTLFNBQUMsVUFBVTt5QkFDcEIsU0FBUyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3IsIElucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS10ZXh0Ym94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS50ZXh0Ym94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnRleHRib3guY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVGV4dGJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgY1ZhbHVlID0gJyc7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZSB7XHJcbiAgICByZXR1cm4gSW5wdXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGlvbktleXMgPSBbJ0JhY2tzcGFjZScsICdEZWxldGUnLCAnVGFiJywgJ0VzY2FwZScsICdFbnRlcicsICdIb21lJywgJ0VuZCcsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdDbGVhcicsICdDb3B5JywgJ1Bhc3RlJ107XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRMYWJlbCcpIGlucHV0TGFiZWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHYgIT0gbnVsbCA/IHYudG9TdHJpbmcoKSA6ICcnO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKGNoYW5nZUluZGV4PSBmYWxzZSkgPT4ge1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbihjaGFuZ2VJbmRleCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuaW5wLnJlcXVpcmVkICYmICF0aGlzLmlucC52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuTW9iaWxlICYmICFSZWdFeHAoL14oMDlcXGR7OX0pJC8pLnRlc3QodGhpcy5pbnAudmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLkludmFsaWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUGhvbmUgJiYgIVJlZ0V4cCgvXigwXFxkezEwfSkkLykudGVzdCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5VcmwgJiYgIVJlZ0V4cCgvXmh0dHBzPzpcXC9cXC8od3d3XFwuKT9bLWEtekEtWjAtOUA6JS5fK34jPV17MSwyNTZ9XFwuW2EtekEtWjAtOSgpXXsxLDZ9XFxiKFstYS16QS1aMC05KClAOiVfKy5+Iz8mLz1dKikkLykudGVzdCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5Db2xvciAmJiAhUmVnRXhwKC9eI1swLTlBLUZdezZ9JC8pLnRlc3QodGhpcy5pbnAudmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLkludmFsaWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuRW1haWwgJiYgIVJlZ0V4cCgvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLykudGVzdCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbENvZGUgJiYgIUhlbHBlckNsYXNzLm5hdGlvbmFsQ29kZVZhbGlkKHRoaXMuaW5wLnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5JbnZhbGlkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNoZWJhICYmICFIZWxwZXJDbGFzcy5zaGViYVZhbGlkKHRoaXMuaW5wLnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5JbnZhbGlkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlBvc3RhbENvZGUgJiYgIUhlbHBlckNsYXNzLnBvc3RhbENvZGVWYWxpZCh0aGlzLmlucC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5OdW1iZXIgfHwgdGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlByaWNlKXtcclxuICAgICAgICBjb25zdCB2ID0gdGhpcy5pbnAudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgICBpZiAoIS9eXFxkKyQvLnRlc3Qodikpe1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLkludmFsaWQ7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuTnVtYmVyIHx8IHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QcmljZSl7XHJcbiAgICAgICAgY29uc3QgdiA9IHBhcnNlSW50KHRoaXMuaW5wLnZhbHVlLnJlcGxhY2UoLywvZywgJycpLCAxMCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLm1pbkxlbmd0aCAhPT0gLTEgJiYgdiA8IHRoaXMuaW5wLm1pbkxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1pbkFtb3VudDtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLm1heExlbmd0aCAhPT0gLTEgJiYgdiA+IHRoaXMuaW5wLm1heExlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1heEFtb3VudDtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLm1pbkxlbmd0aCAhPT0gLTEgJiYgdGhpcy5pbnAubWluTGVuZ3RoID09PSB0aGlzLmlucC5tYXhMZW5ndGggJiZcclxuICAgICAgICAgIHRoaXMuaW5wLnZhbHVlLmxlbmd0aCAhPT0gdGhpcy5pbnAubWluTGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuTGVuZ3RoO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy5pbnAubWluTGVuZ3RoICE9PSAtMSAmJiB0aGlzLmlucC52YWx1ZS5sZW5ndGggPCB0aGlzLmlucC5taW5MZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5NaW5MZW5ndGg7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLmlucC5tYXhMZW5ndGggIT09IC0xICYmIHRoaXMuaW5wLnZhbHVlLmxlbmd0aCA+IHRoaXMuaW5wLm1heExlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1heExlbmd0aDtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLm1hdGNoICE9PSBudWxsICYmIHRoaXMuaW5wLnZhbHVlICE9PSB0aGlzLmlucC5tYXRjaC52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5Ob3RNYXRjaDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIGxldCB2ID0gdGhpcy5pbnAudmFsdWU7XHJcbiAgICAgIGlmICh2ID09PSBudWxsKXtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAodiAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuTnVtYmVyIHx8IHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5QcmljZSl7XHJcbiAgICAgICAgdiA9IHBhcnNlSW50KHYucmVwbGFjZSgvLC9nLCAnJyksIDEwKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzSW4oY2hhbmdlSW5kZXggPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZUluZGV4KXtcclxuICAgICAgdGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uQ2hhbmdlKGUpOiB2b2lkIHtcclxuICAgIHRoaXMub25LZXlVcChlKTtcclxuICB9XHJcblxyXG4gIG9uS2V5VXAoZSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAudmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIGlmICh0aGlzLmlucC5vbktleVVwKSB7XHJcbiAgICAgIHRoaXMuaW5wLm9uS2V5VXAodGhpcy5pbnApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNWYWx1ZSAhPT0gZS50YXJnZXQudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5jVmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvbkNsaWNrQnV0dG9uKCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAuaXNWYWxpZCgpKXtcclxuICAgICAgdGhpcy5pbnAub25DbGlja0J1dHRvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uS2V5RG93bikge1xyXG4gICAgICB0aGlzLmlucC5vbktleURvd24oZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSB8fCBjb2RlID09PSAxMykge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmIChjb2RlID09PSAxMyAmJiB0aGlzLmlucC5idXR0b24pe1xyXG4gICAgICAgIHRoaXMub25DbGlja0J1dHRvbigpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoY29kZSA9PT0gOSA/IGUuc2hpZnRLZXkgPyAnU2hpZnRUYWInIDogJ1RhYicgOiBlLnNoaWZ0S2V5ID8gJ1NoaWZ0RW50ZXInIDogJ0VudGVyJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmlucC52YWx1ZSAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuUHJpY2Upe1xyXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmlucC52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgIGlmICgvXlxcZCskLy50ZXN0KHYpKXtcclxuICAgICAgICAgIHJldHVybiBwYXJzZUludCh2LCAxMCkudG9Mb2NhbGVTdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuaW5wLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -103,10 +103,28 @@ export class TableRowComponent {
103
103
  }
104
104
  }, 500);
105
105
  }
106
+ getInputs() {
107
+ const inps = [];
108
+ for (const option of this.row.Options.filter(x => x.Type === PermissionTypeEnum.Option && x.InputAction === PermissionInputActionEnum.Input)) {
109
+ const inp = new InputClass(this.table.environment, this.table.l, option.Name, option.Icon, InputType.Check, 'h-25 m-h-5 d-ib va-m f-u');
110
+ inp.row = this.row;
111
+ inp.onChange = () => {
112
+ const p = new PermissionClass();
113
+ p.RelatedId = this.table.permissions.RelatedId;
114
+ p.Area = this.table.permissions.Area;
115
+ p.Controller = option.Controller;
116
+ p.Action = option.Action;
117
+ new RequestClass(this.table.l).send(p.getUrl(), Method.Post, null, null, () => {
118
+ });
119
+ inps.push(inp);
120
+ };
121
+ }
122
+ return inps;
123
+ }
106
124
  getOptions() {
107
125
  const opts = this.addChildren !== null && (this.table.level === null || this.table.level > this.level) ?
108
126
  [this.addChildren] : [];
109
- for (const option of this.row.Options.filter(x => x.Type === PermissionTypeEnum.Option)) {
127
+ for (const option of this.row.Options.filter(x => x.Type === PermissionTypeEnum.Option && x.InputAction !== PermissionInputActionEnum.Input)) {
110
128
  const opt = new InputClass(this.table.environment, this.table.l, option.Name, option.Icon, option.InputType === PermissionInputTypeEnum.Icon ? InputType.Icon : InputType.Button, 'blue h-25 m-h-5 d-ib va-m f-u');
111
129
  opt.row = this.row;
112
130
  if (option.AccessType === PermissionAccessTypeEnum.Update) {
@@ -363,7 +381,7 @@ export class TableRowComponent {
363
381
  TableRowComponent.decorators = [
364
382
  { type: Component, args: [{
365
383
  selector: 'lib-table-row',
366
- template: "<div class=\"w-100 row-con\">\r\n <div [className]=\"(table.name ? table.name + '-row ' : '') + (table.hasChildren || table.sortable || table.withSelect ? 'with-handle ' : '') + 'row underline p-r'\" [id]=\"row.Id ? row.Id : ''\" [style]=\"{minHeight: table.height + 'px' }\">\r\n <div class=\"handle\" *ngIf=\"table.hasChildren && (table.level === null || table.level > level)\"><lib-form-icon *ngIf=\"showChildren != null && showChildren.type === type.Icon\" [inp]=\"showChildren\"></lib-form-icon></div>\r\n <div class=\"handle\" *ngIf=\"table.withSelect\"><i (click)=\"select()\" [className]=\"(row.selected ? 'fas fa-check-square green' : 'far fa-square') + ' select-row cell'\"></i></div>\r\n <div class=\"handle\" *ngIf=\"table.sortable\"><i class=\"fa-duotone fa-grip-vertical handle-sortable\"></i></div>\r\n <div [className]=\"col.name + '-cell ' + col.class + ' item cell w-100'\" *ngFor=\"let col of table.cols\" attr.data-col=\"{{table.l(col.name)}}:\" [innerHTML]=\"getCell(col) | safeHtml\"></div>\r\n <div class=\"cell options-cell\" *ngIf=\"row.Options.length > 0\">\r\n <div [className]=\"(table.optionType == tableOptionType.Show ? 'show ' : '') + 'options-con'\">\r\n <span *ngFor=\"let opt of getOptions()\">\r\n <lib-form-button *ngIf=\"opt.type == type.Button\" [inp]=\"opt\"></lib-form-button>\r\n <lib-form-icon *ngIf=\"opt.type == type.Icon\" [inp]=\"opt\"></lib-form-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div #childrenDiv *ngIf=\"table.hasChildren && (table.level === null || table.level > level)\" class=\"children rightline\">\r\n <lib-table-row (loadParent)=\"loadChildren($event)\" (confirmShow)=\"onConfirmShow($event)\" [level]=\"level + 1\" (changeRows)=\"onChangeRows($event)\" [id]=\"child.id ? child.id : ''\" [table]=\"table\" [row]=\"child\" *ngFor=\"let child of children\"></lib-table-row>\r\n </div>\r\n</div>\r\n",
384
+ template: "<div class=\"w-100 row-con\">\r\n <div [className]=\"(table.name ? table.name + '-row ' : '') + (table.hasChildren || table.sortable || table.withSelect ? 'with-handle ' : '') + 'row underline p-r'\" [id]=\"row.Id ? row.Id : ''\" [style]=\"{minHeight: table.height + 'px' }\">\r\n <div class=\"handle\" *ngIf=\"table.hasChildren && (table.level === null || table.level > level)\"><lib-form-icon *ngIf=\"showChildren != null && showChildren.type === type.Icon\" [inp]=\"showChildren\"></lib-form-icon></div>\r\n <div class=\"handle\" *ngIf=\"table.withSelect\"><i (click)=\"select()\" [className]=\"(row.selected ? 'fas fa-check-square green' : 'far fa-square') + ' select-row cell'\"></i></div>\r\n <div class=\"handle\" *ngIf=\"table.sortable\"><i class=\"fa-duotone fa-grip-vertical handle-sortable\"></i></div>\r\n <div [className]=\"col.name + '-cell ' + col.class + ' item cell w-100'\" *ngFor=\"let col of table.cols\" attr.data-col=\"{{table.l(col.name)}}:\" [innerHTML]=\"getCell(col) | safeHtml\"></div>\r\n <div class=\"cell options-cell\" *ngIf=\"row.Options.length > 0\">\r\n <div [className]=\"(table.optionType == tableOptionType.Show ? 'show ' : '') + 'options-con'\">\r\n <span *ngFor=\"let opt of getInputs()\">\r\n <lib-form-checkbox *ngIf=\"opt.type == type.Check\" [inp]=\"opt\"></lib-form-checkbox>\r\n </span>\r\n <span *ngFor=\"let opt of getOptions()\">\r\n <lib-form-button *ngIf=\"opt.type == type.Button\" [inp]=\"opt\"></lib-form-button>\r\n <lib-form-icon *ngIf=\"opt.type == type.Icon\" [inp]=\"opt\"></lib-form-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div #childrenDiv *ngIf=\"table.hasChildren && (table.level === null || table.level > level)\" class=\"children rightline\">\r\n <lib-table-row (loadParent)=\"loadChildren($event)\" (confirmShow)=\"onConfirmShow($event)\" [level]=\"level + 1\" (changeRows)=\"onChangeRows($event)\" [id]=\"child.id ? child.id : ''\" [table]=\"table\" [row]=\"child\" *ngFor=\"let child of children\"></lib-table-row>\r\n </div>\r\n</div>\r\n",
367
385
  styles: [".row{align-items:center;display:flex;flex-wrap:wrap;justify-content:right;position:relative}.row.with-handle{padding-right:30px}.row .cell{align-items:center;display:flex;float:right;font-family:VazirLight;font-size:12px;font-weight:400;justify-content:center;line-height:20px;padding:10px;text-align:center}.row .cell:not(.options-cell){overflow-wrap:anywhere}.row .cell.options-cell{margin-left:auto;margin-right:auto;padding:7.5px 0}.row .handle{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;width:30px}.row .cell:before{font-size:9px;margin-left:5px}.row .cell:empty:before{display:none}.row .cell .options-con{align-items:center;background:linear-gradient(270deg,transparent,#fff 80px,#fff);display:flex;height:25px;justify-content:center;left:0;opacity:0;position:absolute;top:calc(50% - 12.5px);visibility:hidden}.row .cell .options-con.show{opacity:1;position:relative;visibility:visible}.row:hover>.cell>.options-con{opacity:1;visibility:visible}.row .cell .options-con:not(.show) span:first-child{margin-right:100px}.row .cell .options-con span:last-child{margin-left:10px}.children{display:none;float:right;margin-right:3%;position:relative;width:94%}.children.rightline:after{right:-20px}::ng-deep .row .cell .select-row{cursor:pointer;font-size:18px;height:30px;line-height:30px}::ng-deep .row .cell .handle-sortable{cursor:move}::ng-deep .row .cell .status{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;border-radius:var(--border-radius-base);cursor:default;display:inline-block;font-size:10px;padding:3px 10px;vertical-align:middle}::ng-deep .row .cell .status.blue{background-color:var(--blue-white);color:var(--blue)}::ng-deep .row .cell .status.green{background-color:var(--green-white);color:var(--green)}::ng-deep .row .cell .status.red{background-color:var(--red-white);color:var(--red)}::ng-deep .row .cell .status.gray{background-color:var(--black-white);color:var(--black)}::ng-deep .row .cell .status.yellow{background-color:var(--yellow-white);color:var(--yellow)}::ng-deep .row .cell .plaque{background-color:#fff;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAABVCAYAAABn7bJ/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAIW2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMTItMDNUMTg6NTA6NDUrMDM6MzAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDItMTNUMTE6MTE6MzgrMDM6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTAyLTEzVDExOjExOjM4KzAzOjMwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NDVkODgwLTg4M2EtMWE0MS1hZDk3LTdmNTk5MTMzMTQ0NiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjcwY2VlZGU4LTE1ZTAtMTFlYS05MDExLThhM2U0NjBjNjY2OCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY4NDI0YzA3LWUwMTUtZjk0ZC04MWNkLWZmMTY4YTM4ZjA4NyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIGV4aWY6Q29sb3JTcGFjZT0iNjU1MzUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI0MDAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI4NSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Njg0MjRjMDctZTAxNS1mOTRkLTgxY2QtZmYxNjhhMzhmMDg3IiBzdEV2dDp3aGVuPSIyMDE5LTEyLTAzVDE4OjUwOjQ1KzAzOjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJiYzEwYzI2LTNlOGYtNzk0NS05YTYxLWNlZjc0Yjg5ZmIyNiIgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wM1QxODo1MDo0NSswMzozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZl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\");background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:var(--border-radius-base);float:right;font-size:14px;height:30px;width:140px}::ng-deep .row .cell .color{border-radius:var(--border-radius-base);float:right;padding:0 10px}::ng-deep .row .cell .plaque.plaque-m{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAABVCAYAAABn7bJ/AAAACXBIWXMAAAsTAAALEwEAmpwYAAANlmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTEyLTAzVDE4OjUwOjQ1KzAzOjMwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTA2LTEwVDE0OjM1OjA1KzA0OjMwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNi0xMFQxNDozNTowNSswNDozMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjOWI2MmM5Mi1hNmQ4LWY4NGUtYTM3OS0wZWJmZTZkOTYzNzQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkNmZhOTJjMi1mNGM1LTFjNDktYTUzMy05MmY1Mzk2MDVjNTMiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2ODQyNGMwNy1lMDE1LWY5NGQtODFjZC1mZjE2OGEzOGYwODciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjEiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI0MDAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI4NSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Njg0MjRjMDctZTAxNS1mOTRkLTgxY2QtZmYxNjhhMzhmMDg3IiBzdEV2dDp3aGVuPSIyMDE5LTEyLTAzVDE4OjUwOjQ1KzAzOjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJiYzEwYzI2LTNlOGYtNzk0NS05YTYxLWNlZjc0Yjg5ZmIyNiIgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wM1QxODo1MDo0NSswMzozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpkMmY2YTViYy0yZGQ1LTlkNDEtOGYxYi02OTFkYTJlNmQzMDYiIHN0RXZ0OndoZW49IjIwMjEtMDYtMTBUMTQ6MzQ6MzgrMDQ6MzAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL3BuZyB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBpbWFnZS9wbmcgdG8gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGIzMTM2ZmEtN2RkZC03YTQ5LTgzNjQtYjZmYWI3ZGVlZmE5IiBzdEV2dDp3aGVuPSIyMDIxLTA2LTEwVDE0OjM0OjM4KzA0OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmM3Y2U3NTk1LWM3NDUtOTg0Yi1hMmI1LTQ1MjA4N2E0MTBkOCIgc3RFdnQ6d2hlbj0iMjAyMS0wNi0xMFQxNDozNTowNSswNDozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjOWI2MmM5Mi1hNmQ4LWY4NGUtYTM3OS0wZWJmZTZkOTYzNzQiIHN0RXZ0OndoZW49IjIwMjEtMDYtMTBUMTQ6MzU6MDUrMDQ6MzAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzdjZTc1OTUtYzc0NS05ODRiLWEyYjUtNDUyMDg3YTQxMGQ4IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NTMxYzM1ZDUtMzExNy02NzQ4LWE5OGEtYTlmOGEyYzVmMGU0IiBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6Njg0MjRjMDctZTAxNS1mOTRkLTgxY2QtZmYxNjhhMzhmMDg3Ii8+IDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDxyZGY6QmFnPiA8cmRmOmxpPjUxNjAzQkE4NTUzMTE3NEFEOTU5RTFCMjgwNkNFMjFFPC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D6fWAwAAOJhJREFUeAHtwQmgbmdZ2Pv/87zvWuub9nD2cM5JQhICIWEOQREBKVooor2CtThgqzJYQNSr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\")}::ng-deep .row .cell .plaque.p{background-color:#ffc913}::ng-deep .row .cell .plaque.g{background-color:#e20600}::ng-deep .row .cell .plaque .part1{float:left;height:30px;line-height:33px;margin-left:13px;width:32px}::ng-deep .row .cell .plaque.plaque-m .part1{margin-left:13px;width:42px}::ng-deep .row .cell .plaque .part2{float:left;height:30px;line-height:30px;width:25px}::ng-deep .row .cell .plaque.plaque-m .part2{line-height:33px;width:57px}::ng-deep .row .cell .plaque .part3{float:left;height:30px;line-height:33px;width:42px}::ng-deep .row .cell .plaque .part4{float:left;height:20px;margin-top:8px;width:28px}.row .cell.show-data-col:before{content:attr(data-col)}@media (max-width:1400px){.row .cell.show-data-col-1400:before{content:attr(data-col)}}@media (max-width:1300px){.row .cell.show-data-col-1300:before{content:attr(data-col)}}@media (max-width:1200px){.row .cell.show-data-col-1200:before{content:attr(data-col)}}@media (max-width:1100px){.row .cell.show-data-col-1100:before{content:attr(data-col)}}@media (max-width:1000px){.row .cell.show-data-col-1000:before{content:attr(data-col)}}@media (max-width:900px){.row .cell.show-data-col-900:before{content:attr(data-col)}}@media (max-width:800px){.row .cell.show-data-col-800:before{content:attr(data-col)}}@media (max-width:700px){.row .cell.show-data-col-700:before{content:attr(data-col)}}@media (max-width:600px){.row .cell.show-data-col-600:before{content:attr(data-col)}}@media (max-width:500px){.row .cell.show-data-col-500:before{content:attr(data-col)}}@media (max-width:400px){.row .cell.show-data-col-400:before{content:attr(data-col)}}"]
368
386
  },] }
369
387
  ];
@@ -379,4 +397,4 @@ TableRowComponent.propDecorators = {
379
397
  loadParent: [{ type: Output }],
380
398
  childrenDiv: [{ type: ViewChild, args: ['childrenDiv',] }]
381
399
  };
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90YWJsZS9yb3cvdGFibGUucm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFPbEUsTUFBTSxPQUFPLGlCQUFpQjtJQW9CNUIsWUFBbUIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFsQnBELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVF4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUl4QyxpQkFBWSxHQUFlLElBQUksQ0FBQztR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S0FBSzt5QkFFTCxNQUFNOzBCQVFOLFNBQVMsU0FBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7VGFibGVDbGFzcywgVGFibGVDb2xsQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdGFibGUuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIElucHV0VHlwZSxcclxuICBNZXRob2QsIFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bSxcclxuICBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLFxyXG4gIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLFxyXG4gIFBlcm1pc3Npb25UeXBlRW51bSxcclxuICBUYWJsZUNvbGxUeXBlLFxyXG4gIFRhYmxlT3B0aW9uVHlwZVxyXG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcclxuaW1wb3J0IHtQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge1Blcm1pc3Npb25DbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9wZXJtaXNzaW9uLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLXJvdycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLnJvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUucm93LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVSb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQE91dHB1dCgpXHJcbiAgY29uZmlybVNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgQElucHV0KClcclxuICBsZXZlbDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFibGU6IFRhYmxlQ2xhc3M7XHJcbiAgQElucHV0KClcclxuICByb3c7XHJcbiAgQE91dHB1dCgpXHJcbiAgbG9hZFBhcmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgZ2V0IHRhYmxlT3B0aW9uVHlwZSgpOiB0eXBlb2YgVGFibGVPcHRpb25UeXBleyByZXR1cm4gVGFibGVPcHRpb25UeXBlOyB9XHJcbiAgb3B0U3RhdHVzOiBJbnB1dENsYXNzO1xyXG4gIHNob3dDaGlsZHJlbjogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgYWRkQ2hpbGRyZW46IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIGNoaWxkcmVuOiBhbnlbXSA9IFtdO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoaWxkcmVuRGl2JykgY2hpbGRyZW5EaXY6IEVsZW1lbnRSZWY7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IFBzVG9vbGtpdFVpQ29uZmlnU2VydmljZSkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuKXtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQpe1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuaGFzQWNjZXNzKFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5JbnNlcnQpKXtcclxuICAgICAgICB0aGlzLmFkZENoaWxkcmVuID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCB0aGlzLnRhYmxlLm5hbWUgKyAnQWRkU3Vic2V0VGl0bGUnLFxyXG4gICAgICAgICAgJ2ZhLWR1b3RvbmUgZmEtcGx1cyBmYS1yb3RhdGUtOTAnLCBJbnB1dFR5cGUuSWNvbixcclxuICAgICAgICAgICdncmVlbiBtLWgtNSBoLTI1IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgICAgICB0aGlzLmFkZENoaWxkcmVuLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLnR5cGUgPSBJbnB1dFR5cGUuSWNvbjtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4odGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zaG93SW5zZXJ0TW9kYWwodGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3dDaGlsZHJlbiA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgdGhpcy50YWJsZS5uYW1lICsgJ1N1YnNldFRpdGxlJywgJ2ZhLWR1b3RvbmUgZmEtYW5nbGUtbGVmdCBmLXMtMjInLFxyXG4gICAgICAgIHRoaXMucm93LkRhdGEuQ291bnRDaGlsZCA+IDAgfHwgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKSA/IElucHV0VHlwZS5JY29uIDogSW5wdXRUeXBlLkhpZGRlbiwgJ2gtMjUgbS1oLTUgZC1pYiB2YS1tIGYtdScpO1xyXG4gICAgICB0aGlzLnNob3dDaGlsZHJlbi5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICgkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuaXMoJzp2aXNpYmxlJykpe1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlVXAoKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLmljb24gPSAnZmEtZHVvdG9uZSBmYS1hbmdsZS1sZWZ0IGYtcy0yMic7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlRG93bigpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYS1kdW90b25lIGZhLWFuZ2xlLWRvd24gZi1zLTIyJztcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5oYXNTdGF0dXMpe1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cyA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ1N0YXR1cycsXHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YS5BY3RpdmUgPyAnZmEtdG9nZ2xlLW9uJyA6ICdmYS10b2dnbGUtb2ZmJywgSW5wdXRUeXBlLkljb24sXHJcbiAgICAgICAgJ20taC01IGgtMjAgJyArICh0aGlzLnJvdy5EYXRhLkFjdGl2ZSA/ICdncmVlbicgOiAnJykpO1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cy5yb3cgPSB0aGlzLnJvdy5EYXRhO1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cy5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUudXJsICsgJy9TdGF0dXMvJyArIGJ0bi5yb3cuSWQsIE1ldGhvZC5Qb3N0LCBudWxsLCBidG4sIChyKSA9PiB7XHJcbiAgICAgICAgICBidG4uY2xhc3MgPSAnbS1oLTUgaC0yMCAnICsgKHIgPyAnZ3JlZW4nIDogJycpO1xyXG4gICAgICAgICAgYnRuLmljb24gPSByID8gJ2ZhLXRvZ2dsZS1vbicgOiAnZmEtdG9nZ2xlLW9mZic7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5zb3J0YWJsZSl7XHJcbiAgICAgIHRoaXMuc2V0U29ydFJvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkQ2hpbGRyZW4ocCk6IHZvaWR7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLnVybCArIGBMaXN0LyR7cH1gLCBNZXRob2QuUG9zdCxcclxuICAgICAgbnVsbCwgdGhpcy5zaG93Q2hpbGRyZW4sIChyZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5jaGlsZHJlbiA9IHJlc3VsdC5MaXN0O1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVEb3duKCk7XHJcbiAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYS1kdW90b25lIGZhLWFuZ2xlLWRvd24gZi1zLTIyJztcclxuICAgICAgfSwgNTApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNlbGVjdCgpOiB2b2lke1xyXG4gICAgdGhpcy5yb3cuRGF0YS5zZWxlY3RlZCA9ICF0aGlzLnJvdy5EYXRhLnNlbGVjdGVkO1xyXG4gIH1cclxuICBvbkNoYW5nZVJvd3MoZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VSb3dzLmVtaXQoZSk7XHJcbiAgfVxyXG4gIG9uQ29uZmlybVNob3coZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maXJtU2hvdy5lbWl0KGUpO1xyXG4gIH1cclxuICBzZXRTb3J0Um93KCk6IHZvaWR7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNvcnRhYmxlKHtcclxuICAgICAgICAgIGF4aXM6ICd5JyxcclxuICAgICAgICAgIGhhbmRsZTogJz4gLnJvdyA+IC5pdGVtLWNvbiA+IC5oYW5kbGUtc29ydGFibGUnLFxyXG4gICAgICAgICAgdXBkYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc29ydGFibGUoJ3RvQXJyYXknKS5mb3JFYWNoKHggPT4gZGF0YS5wdXNoKHgpKTtcclxuICAgICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmwpLnNlbmQodGhpcy50YWJsZS51cmwgKyAnU29ydCcsIE1ldGhvZC5Qb3N0LCBkYXRhLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Tb3J0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUub25Tb3J0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbiAgZ2V0T3B0aW9ucygpOiBJbnB1dENsYXNzW117XHJcbiAgICBjb25zdCBvcHRzOiBJbnB1dENsYXNzW10gPSB0aGlzLmFkZENoaWxkcmVuICE9PSBudWxsICYmICh0aGlzLnRhYmxlLmxldmVsID09PSBudWxsIHx8IHRoaXMudGFibGUubGV2ZWwgPiB0aGlzLmxldmVsKSA/XHJcbiAgICAgIFt0aGlzLmFkZENoaWxkcmVuXSA6IFtdO1xyXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5yb3cuT3B0aW9ucy5maWx0ZXIoeCA9PiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5PcHRpb24pKXtcclxuICAgICAgY29uc3Qgb3B0ID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCBvcHRpb24uTmFtZSwgb3B0aW9uLkljb24sXHJcbiAgICAgICAgb3B0aW9uLklucHV0VHlwZSA9PT0gUGVybWlzc2lvbklucHV0VHlwZUVudW0uSWNvbiA/IElucHV0VHlwZS5JY29uIDogSW5wdXRUeXBlLkJ1dHRvbiwgJ2JsdWUgaC0yNSBtLWgtNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgIG9wdC5yb3cgPSB0aGlzLnJvdztcclxuICAgICAgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uVXBkYXRlKXtcclxuICAgICAgICBpZiAodGhpcy50YWJsZS5mb3JtKXtcclxuICAgICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0udXJsID0gdGhpcy50YWJsZS51cmwgKyAnVXBkYXRlLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnJvdy5EYXRhLlBhcmVudElkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFBhcmVudC5lbWl0KHRoaXMucm93LkRhdGEuUGFyZW50SWQpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFibGUuZm9ybS5vblRvcCl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdChvcHQpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0LnVybCA9IHRoaXMudGFibGUudXJsICsgJy9VcGRhdGUvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uRGVsZXRlKXtcclxuICAgICAgICBvcHQuY2xhc3MgPSBvcHQuY2xhc3MucmVwbGFjZSgnYmx1ZScsICdyZWQnKTtcclxuICAgICAgICBvcHQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uY2xlYXIoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5yb3dzID0gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+IHguSWQgIT09IHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVJvd3MuZW1pdCh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybVNob3cuZW1pdCh7aWQ6IHRoaXMucm93LkRhdGEuSWQsIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4gJiYgdGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCApe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRQYXJlbnQuZW1pdCh0aGlzLnJvdy5EYXRhLlBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLlJlcG9ydCl7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgcC5Db250cm9sbGVyID0gJ1ByaW50JztcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgIG9wdC51cmwgPSAnL1JlcG9ydCcgKyBwLmdldFVybCgpICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGluayB8fCBvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGlua05ld1RhYil7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgb3B0LnVybCA9IHAuZ2V0VXJsKCkgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSBvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGlua05ld1RhYjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTW9kYWwpe1xyXG4gICAgICAgIG9wdC5tb2RhbCA9IHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gb3B0aW9uLkFjdGlvbik7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlKXtcclxuICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgICBwLkFjY2Vzc2VzID0gdGhpcy5yb3cuT3B0aW9ucy5maWx0ZXIoeCA9PiB4LlBhcmVudElkID09PSBvcHRpb24uSWQpO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwudGFibGUucGVybWlzc2lvbnMgPSBwO1xyXG4gICAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5mb3JtLnVybCA9IHAuZ2V0VXJsKCkgKyAnSW5zZXJ0JztcclxuICAgICAgICAgICAgICBvcHQubW9kYWwudGFibGUuZm9ybS5iYXNlVXJsID0gcC5nZXRVcmwoKSArICdJbnNlcnQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5zZXQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChvcHQubW9kYWwuZm9ybSl7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLm5hbWUgPSBvcHRpb24uTmFtZTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0udXJsID0gb3B0Lm1vZGFsLmZvcm0uYmFzZVVybCArICdVcGRhdGUvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLmxvYWREYXRhKG9wdC5tb2RhbC5mb3JtLmJhc2VVcmwgKyAnR2V0LycgKyB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBvcHQubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG9wdC5tb2RhbC5hY2NvcmRpb24pe1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHIgb2Ygb3B0Lm1vZGFsLmFjY29yZGlvbi5yb3dzKXtcclxuICAgICAgICAgICAgICBpZiAoci50YWJsZSl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgICAgICAgcC5Db250cm9sbGVyID0gb3B0aW9uLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAgICAgICBwLkFjdGlvbiA9IHIubmFtZTtcclxuICAgICAgICAgICAgICAgIHAuQWNjZXNzZXMgPSB0aGlzLnJvdy5PcHRpb25zLmZpbHRlcih4ID0+IHguUGFyZW50SWQgPT09IG9wdGlvbi5JZCk7XHJcbiAgICAgICAgICAgICAgICByLnRhYmxlLnBlcm1pc3Npb25zID0gcDtcclxuICAgICAgICAgICAgICAgIGlmIChyLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgICAgICByLnRhYmxlLmZvcm0udXJsID0gcC5nZXRVcmwoKSArICdJbnNlcnQnO1xyXG4gICAgICAgICAgICAgICAgICByLnRhYmxlLmZvcm0uYmFzZVVybCA9IHAuZ2V0VXJsKCkgKyAnSW5zZXJ0JztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHIudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uRmlsZSl7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgb3B0LnVybCA9ICcvRmlsZScgKyBwLmdldFVybCgpICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uQ29uZmlybSl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zaG93Q29uZmlybSh0aGlzLnRhYmxlLmwob3B0aW9uLkFjdGlvbiArICdDb25maXJtJyksIHAuZ2V0VXJsKCkgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uT25DbGljayl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoYnRuKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLm9wdGlvbnNBY3Rpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG9wdGlvbi5BY3Rpb24pLm9uQ2xpY2soYnRuKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIG9wdHMucHVzaChvcHQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wdHM7XHJcbiAgICAvLyByZXR1cm4gKHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpID8gW3RoaXMuYWRkQ2hpbGRyZW5dIDogW10pXHJcbiAgICAvLyAgIC5jb25jYXQodGhpcy50YWJsZS5vcHRpb25zLmZpbHRlcih4ID0+IHguY29uZGl0aW9uID09IG51bGwgfHxcclxuICAgIC8vICAgICAoeC5jb25kaXRpb24uc3RhcnRzV2l0aCgnIScpID8gIXRoaXMucm93LkRhdGFbeC5jb25kaXRpb24uc3Vic3RyaW5nKDEpXSA6IHRoaXMucm93LkRhdGFbeC5jb25kaXRpb25dKSkubWFwKChvKSA9PiB7XHJcbiAgICAvLyAgICAgY29uc3QgaSA9IEhlbHBlckNsYXNzLmNsb25lKG8pO1xyXG4gICAgLy8gICAgIGlmIChpLnVybCl7XHJcbiAgICAvLyAgICAgICBpLnVybCA9IGkudXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGkucm93ID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIC8vICAgICBpLmNsYXNzID0gaS5jbGFzcyArICcgbS1oLTUgaC0yNSBkLWliIHZhLW0gZi11JztcclxuICAgIC8vICAgICByZXR1cm4gaTtcclxuICAgIC8vIH0pKS5jb25jYXQodGhpcy50YWJsZS5oYXNTdGF0dXMgPyBbdGhpcy5vcHRTdGF0dXNdIDogW10pXHJcbiAgICAvLyAgICAgLmNvbmNhdCh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLmhhc0FjY2VzcygnVXBkYXRlJykgPyBbdGhpcy5vcHRFZGl0XSA6IFtdKVxyXG4gICAgLy8gICAgIC5jb25jYXQodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoJ0RlbGV0ZScpID8gW3RoaXMub3B0RGVsZXRlXSA6IFtdKTtcclxuICB9XHJcbiAgZ2V0Q2VsbChjb2w6IFRhYmxlQ29sbENsYXNzKTogYW55e1xyXG4gICAgY29uc29sZS5sb2coJ2dldENlbGwnKTtcclxuICAgIGNvbnN0IGN2ID0gXy5nZXQodGhpcy5yb3cuRGF0YSwgY29sLm5hbWUpO1xyXG4gICAgaWYgKGNvbC5mdW4gIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gY29sLmZ1bih0aGlzLnJvdy5EYXRhKTtcclxuICAgIH0gZWxzZSBpZiAoY29sLmVudW0gIT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIGNvbC5lbnVtLmdldChjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGVEaWYpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGVEaWYodGhpcy50YWJsZS5sLCBjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGUpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlVGltZSkge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0RGF0ZVRpbWUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5UaW1lKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXRUaW1lKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuQ29sb3IpIHtcclxuICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPVwiY29sb3JcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICcgKyBjdiArICc7IGNvbG9yOiAnICsgSGVscGVyQ2xhc3MuZ2V0Q29sb3JCeUJnQ29sb3IoY3YpICsgJ1wiPicgKyBjdiArICc8L2Rpdj4nO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5VcmwpIHtcclxuICAgICAgcmV0dXJuICc8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiJyArIGN2ICsgJ1wiPicgKyBjdiArICc8L2E+JztcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuSW1hZ2UpIHtcclxuICAgICAgcmV0dXJuICc8aW1nIGNsYXNzPVwiaC0xMDBcIiBhbHQ9XCJcIiBzcmM9XCInICsgdGhpcy5zZXJ2aWNlLmVudmlyb25tZW50LnVybCArIGN2ICsgJ1wiLz4nO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5GaWxlU2l6ZSkge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0RmlsZVNpemUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5QcmljZSkge1xyXG4gICAgICByZXR1cm4gY3YudG9Mb2NhbGVTdHJpbmcoKSArICcgJyArIHRoaXMudGFibGUubCgnUmlhbCcpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5QbGFxdWUpIHtcclxuICAgICAgY29uc3QgcGFydHMgPSBjdi5zcGxpdCgnXycpO1xyXG4gICAgICBpZiAocGFydHMubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPVwicGxhcXVlJyArIChwYXJ0c1sxXSA9PT0gJ9i5JyA/ICcgcCcgOiAnJykgKyAocGFydHNbMV0gPT09ICfYp9mE2YEnID8gJyBnJyA6ICcnKSArICdcIj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDFcIj4nICsgcGFydHNbMF0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQyXCI+JyArIHBhcnRzWzFdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0M1wiPicgKyBwYXJ0c1syXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDRcIj4nICsgcGFydHNbM10gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPC9kaXY+JztcclxuICAgICAgfSBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpe1xyXG4gICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cInBsYXF1ZSBwbGFxdWUtbVwiPicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0MVwiPicgKyBwYXJ0c1swXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDJcIj4nICsgcGFydHNbMV0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPC9kaXY+JztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5QbGFxdWVUZXh0KSB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gY3Yuc3BsaXQoJ18nKTtcclxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gNCl7XHJcbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibHRyXCI+JHtwYXJ0c1swXX0gJHtwYXJ0c1sxXX0mbHJtOyAke3BhcnRzWzJdfSAke3BhcnRzWzNdfTwvZGl2PmA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnRhYmxlLmwoY3YpO1xyXG4gIH1cclxuICBnZXRDb2wobik6IHN0cmluZ3tcclxuICAgIGxldCBjID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIG4uc3BsaXQoJy4nKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGMgPSBjW3hdO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYztcclxuICB9XHJcbiAgZWRpdChvcHQ6IElucHV0Q2xhc3MpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0pe1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0ubmFtZSA9IG9wdC5uYW1lO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0RGF0YSh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLnNldEJ1dHRvbnModGhpcy50YWJsZS5mb3JtLm9uVG9wLCB0cnVlLCB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiB4LmluRWRpdERpc2FibGVkKS5mb3JFYWNoKHggPT4geC5kaXNhYmxlZCA9IHRydWUpO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+ICF4LmluRWRpdFZpc2libGUpLmZvckVhY2goeCA9PiB4LnZpc2libGUgPSBmYWxzZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwpLnNlbmQodGhpcy50YWJsZS51cmwgKyAnR2V0LycgKyB0aGlzLnJvdy5EYXRhLklkLCBNZXRob2QuUG9zdCxcclxuICAgICAgICBudWxsLCBvcHQsIChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLnRhYmxlLmZvcm0ubmFtZSA9IG9wdC5uYW1lO1xyXG4gICAgICAgIHRoaXMudGFibGUuZm9ybS5zZXRCdXR0b25zKHRoaXMudGFibGUuZm9ybS5vblRvcCwgdHJ1ZSwgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5mb3JtLnNldERhdGEocmVzdWx0KTtcclxuICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+IHguaW5FZGl0RGlzYWJsZWQpLmZvckVhY2goeCA9PiB4LmRpc2FibGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gZmFsc2UpO1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLm1vZGFsKXtcclxuICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuc2hvdygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldENoaWxkcmVuKCk6IGFueVtde1xyXG4gICAgcmV0dXJuIHRoaXMucm93LkRhdGEuSWQgPyB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4geC5EYXRhLlBhcmVudElkID09PSB0aGlzLnJvdy5EYXRhLklkKSA6IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=
400
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90YWJsZS9yb3cvdGFibGUucm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFPbEUsTUFBTSxPQUFPLGlCQUFpQjtJQW9CNUIsWUFBbUIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFsQnBELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVF4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUl4QyxpQkFBWSxHQUFlLElBQUksQ0FBQztR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QUNuRyxDQUFDOzs7WUFwWEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6Qiw2akVBQXlDOzthQUUxQzs7O1lBUk8sd0JBQXdCOzs7MEJBVTdCLE1BQU07eUJBRU4sTUFBTTtvQkFFTixLQUFLO29CQUVMLEtBQUs7a0JBRUwsS0FBSzt5QkFFTCxNQUFNOzBCQVFOLFNBQVMsU0FBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7VGFibGVDbGFzcywgVGFibGVDb2xsQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdGFibGUuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIElucHV0VHlwZSxcclxuICBNZXRob2QsIFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bSxcclxuICBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLFxyXG4gIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLFxyXG4gIFBlcm1pc3Npb25UeXBlRW51bSxcclxuICBUYWJsZUNvbGxUeXBlLFxyXG4gIFRhYmxlT3B0aW9uVHlwZVxyXG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcclxuaW1wb3J0IHtQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge1Blcm1pc3Npb25DbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9wZXJtaXNzaW9uLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLXJvdycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLnJvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUucm93LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVSb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQE91dHB1dCgpXHJcbiAgY29uZmlybVNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgQElucHV0KClcclxuICBsZXZlbDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFibGU6IFRhYmxlQ2xhc3M7XHJcbiAgQElucHV0KClcclxuICByb3c7XHJcbiAgQE91dHB1dCgpXHJcbiAgbG9hZFBhcmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgZ2V0IHRhYmxlT3B0aW9uVHlwZSgpOiB0eXBlb2YgVGFibGVPcHRpb25UeXBleyByZXR1cm4gVGFibGVPcHRpb25UeXBlOyB9XHJcbiAgb3B0U3RhdHVzOiBJbnB1dENsYXNzO1xyXG4gIHNob3dDaGlsZHJlbjogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgYWRkQ2hpbGRyZW46IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIGNoaWxkcmVuOiBhbnlbXSA9IFtdO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoaWxkcmVuRGl2JykgY2hpbGRyZW5EaXY6IEVsZW1lbnRSZWY7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IFBzVG9vbGtpdFVpQ29uZmlnU2VydmljZSkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuKXtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQpe1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuaGFzQWNjZXNzKFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5JbnNlcnQpKXtcclxuICAgICAgICB0aGlzLmFkZENoaWxkcmVuID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCB0aGlzLnRhYmxlLm5hbWUgKyAnQWRkU3Vic2V0VGl0bGUnLFxyXG4gICAgICAgICAgJ2ZhLWR1b3RvbmUgZmEtcGx1cyBmYS1yb3RhdGUtOTAnLCBJbnB1dFR5cGUuSWNvbixcclxuICAgICAgICAgICdncmVlbiBtLWgtNSBoLTI1IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgICAgICB0aGlzLmFkZENoaWxkcmVuLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLnR5cGUgPSBJbnB1dFR5cGUuSWNvbjtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4odGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zaG93SW5zZXJ0TW9kYWwodGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3dDaGlsZHJlbiA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgdGhpcy50YWJsZS5uYW1lICsgJ1N1YnNldFRpdGxlJywgJ2ZhLWR1b3RvbmUgZmEtYW5nbGUtbGVmdCBmLXMtMjInLFxyXG4gICAgICAgIHRoaXMucm93LkRhdGEuQ291bnRDaGlsZCA+IDAgfHwgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKSA/IElucHV0VHlwZS5JY29uIDogSW5wdXRUeXBlLkhpZGRlbiwgJ2gtMjUgbS1oLTUgZC1pYiB2YS1tIGYtdScpO1xyXG4gICAgICB0aGlzLnNob3dDaGlsZHJlbi5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICgkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuaXMoJzp2aXNpYmxlJykpe1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlVXAoKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLmljb24gPSAnZmEtZHVvdG9uZSBmYS1hbmdsZS1sZWZ0IGYtcy0yMic7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlRG93bigpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYS1kdW90b25lIGZhLWFuZ2xlLWRvd24gZi1zLTIyJztcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5oYXNTdGF0dXMpe1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cyA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ1N0YXR1cycsXHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YS5BY3RpdmUgPyAnZmEtdG9nZ2xlLW9uJyA6ICdmYS10b2dnbGUtb2ZmJywgSW5wdXRUeXBlLkljb24sXHJcbiAgICAgICAgJ20taC01IGgtMjAgJyArICh0aGlzLnJvdy5EYXRhLkFjdGl2ZSA/ICdncmVlbicgOiAnJykpO1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cy5yb3cgPSB0aGlzLnJvdy5EYXRhO1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cy5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUudXJsICsgJy9TdGF0dXMvJyArIGJ0bi5yb3cuSWQsIE1ldGhvZC5Qb3N0LCBudWxsLCBidG4sIChyKSA9PiB7XHJcbiAgICAgICAgICBidG4uY2xhc3MgPSAnbS1oLTUgaC0yMCAnICsgKHIgPyAnZ3JlZW4nIDogJycpO1xyXG4gICAgICAgICAgYnRuLmljb24gPSByID8gJ2ZhLXRvZ2dsZS1vbicgOiAnZmEtdG9nZ2xlLW9mZic7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5zb3J0YWJsZSl7XHJcbiAgICAgIHRoaXMuc2V0U29ydFJvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkQ2hpbGRyZW4ocCk6IHZvaWR7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLnVybCArIGBMaXN0LyR7cH1gLCBNZXRob2QuUG9zdCxcclxuICAgICAgbnVsbCwgdGhpcy5zaG93Q2hpbGRyZW4sIChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gcmVzdWx0Lkxpc3Q7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVEb3duKCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbi5pY29uID0gJ2ZhLWR1b3RvbmUgZmEtYW5nbGUtZG93biBmLXMtMjInO1xyXG4gICAgICAgIH0sIDUwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHNlbGVjdCgpOiB2b2lke1xyXG4gICAgdGhpcy5yb3cuRGF0YS5zZWxlY3RlZCA9ICF0aGlzLnJvdy5EYXRhLnNlbGVjdGVkO1xyXG4gIH1cclxuICBvbkNoYW5nZVJvd3MoZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VSb3dzLmVtaXQoZSk7XHJcbiAgfVxyXG4gIG9uQ29uZmlybVNob3coZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maXJtU2hvdy5lbWl0KGUpO1xyXG4gIH1cclxuICBzZXRTb3J0Um93KCk6IHZvaWR7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNvcnRhYmxlKHtcclxuICAgICAgICAgIGF4aXM6ICd5JyxcclxuICAgICAgICAgIGhhbmRsZTogJz4gLnJvdyA+IC5pdGVtLWNvbiA+IC5oYW5kbGUtc29ydGFibGUnLFxyXG4gICAgICAgICAgdXBkYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc29ydGFibGUoJ3RvQXJyYXknKS5mb3JFYWNoKHggPT4gZGF0YS5wdXNoKHgpKTtcclxuICAgICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmwpLnNlbmQodGhpcy50YWJsZS51cmwgKyAnU29ydCcsIE1ldGhvZC5Qb3N0LCBkYXRhLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Tb3J0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUub25Tb3J0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIGdldElucHV0cygpOiBJbnB1dENsYXNzW117XHJcbiAgICBjb25zdCBpbnBzID0gW107XHJcbiAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLnJvdy5PcHRpb25zLmZpbHRlcih4ID0+IHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbiAmJiB4LklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLklucHV0KSl7XHJcbiAgICAgIGNvbnN0IGlucCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgb3B0aW9uLk5hbWUsIG9wdGlvbi5JY29uLCBJbnB1dFR5cGUuQ2hlY2ssICdoLTI1IG0taC01IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgICAgaW5wLnJvdyA9IHRoaXMucm93O1xyXG4gICAgICBpbnAub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmwpLnNlbmQocC5nZXRVcmwoKSwgTWV0aG9kLlBvc3QsIG51bGwsIG51bGwsICgpID0+IHtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpbnBzLnB1c2goaW5wKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBpbnBzO1xyXG4gIH1cclxuICBnZXRPcHRpb25zKCk6IElucHV0Q2xhc3NbXXtcclxuICAgIGNvbnN0IG9wdHM6IElucHV0Q2xhc3NbXSA9IHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpID9cclxuICAgICAgW3RoaXMuYWRkQ2hpbGRyZW5dIDogW107XHJcbiAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLnJvdy5PcHRpb25zLmZpbHRlcih4ID0+IHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbiAmJiB4LklucHV0QWN0aW9uICE9PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLklucHV0KSl7XHJcbiAgICAgIGNvbnN0IG9wdCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgb3B0aW9uLk5hbWUsIG9wdGlvbi5JY29uLFxyXG4gICAgICAgIG9wdGlvbi5JbnB1dFR5cGUgPT09IFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLkljb24gPyBJbnB1dFR5cGUuSWNvbiA6IElucHV0VHlwZS5CdXR0b24sICdibHVlIGgtMjUgbS1oLTUgZC1pYiB2YS1tIGYtdScpO1xyXG4gICAgICBvcHQucm93ID0gdGhpcy5yb3c7XHJcbiAgICAgIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLlVwZGF0ZSl7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGUuZm9ybSl7XHJcbiAgICAgICAgICBvcHQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLnVybCA9IHRoaXMudGFibGUudXJsICsgJ1VwZGF0ZS8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4gJiYgdGhpcy5yb3cuRGF0YS5QYXJlbnRJZCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQpe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRQYXJlbnQuZW1pdCh0aGlzLnJvdy5EYXRhLlBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmZvcm0ub25Ub3Ape1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmVkaXQob3B0KTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9wdC51cmwgPSB0aGlzLnRhYmxlLnVybCArICcvVXBkYXRlLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLkRlbGV0ZSl7XHJcbiAgICAgICAgb3B0LmNsYXNzID0gb3B0LmNsYXNzLnJlcGxhY2UoJ2JsdWUnLCAncmVkJyk7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZS5mb3JtKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmNsZWFyKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uRm9ybSl7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUucm93cyA9IHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiB4LklkICE9PSB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VSb3dzLmVtaXQodGhpcy5yb3cuRGF0YSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1TaG93LmVtaXQoe2lkOiB0aGlzLnJvdy5EYXRhLklkLCBhY2NlcHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuICYmIHRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCAmJiB0aGlzLnJvdy5EYXRhLlBhcmVudElkICE9IG51bGwgKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkUGFyZW50LmVtaXQodGhpcy5yb3cuRGF0YS5QYXJlbnRJZCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfX0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5SZXBvcnQpe1xyXG4gICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgIHAuQ29udHJvbGxlciA9ICdQcmludCc7XHJcbiAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICBvcHQudXJsID0gJy9SZXBvcnQnICsgcC5nZXRVcmwoKSArICcvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgb3B0LnVybE5ld1RhYiA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkxpbmsgfHwgb3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkxpbmtOZXdUYWIpe1xyXG4gICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgcC5Db250cm9sbGVyID0gb3B0aW9uLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgIG9wdC51cmwgPSBwLmdldFVybCgpICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gb3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkxpbmtOZXdUYWI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk1vZGFsKXtcclxuICAgICAgICBvcHQubW9kYWwgPSB0aGlzLnRhYmxlLm9wdGlvbnNBY3Rpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG9wdGlvbi5BY3Rpb24pO1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdC5tb2RhbC50YWJsZSl7XHJcbiAgICAgICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgICBwLkNvbnRyb2xsZXIgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAgIHAuQWN0aW9uID0gb3B0aW9uLkFjdGlvbjtcclxuICAgICAgICAgICAgcC5BY2Nlc3NlcyA9IHRoaXMucm93Lk9wdGlvbnMuZmlsdGVyKHggPT4geC5QYXJlbnRJZCA9PT0gb3B0aW9uLklkKTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLnBlcm1pc3Npb25zID0gcDtcclxuICAgICAgICAgICAgaWYgKG9wdC5tb2RhbC50YWJsZS5mb3JtKXtcclxuICAgICAgICAgICAgICBvcHQubW9kYWwudGFibGUuZm9ybS51cmwgPSBwLmdldFVybCgpICsgJ0luc2VydCc7XHJcbiAgICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLmZvcm0uYmFzZVVybCA9IHAuZ2V0VXJsKCkgKyAnSW5zZXJ0JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcHQubW9kYWwudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLmZvcm0pe1xyXG4gICAgICAgICAgICBvcHQubW9kYWwuZm9ybS5uYW1lID0gb3B0aW9uLk5hbWU7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLnVybCA9IG9wdC5tb2RhbC5mb3JtLmJhc2VVcmwgKyAnVXBkYXRlLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwuZm9ybS5sb2FkRGF0YShvcHQubW9kYWwuZm9ybS5iYXNlVXJsICsgJ0dldC8nICsgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb3B0Lm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChvcHQubW9kYWwuYWNjb3JkaW9uKXtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByIG9mIG9wdC5tb2RhbC5hY2NvcmRpb24ucm93cyl7XHJcbiAgICAgICAgICAgICAgaWYgKHIudGFibGUpe1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgICAgICAgcC5BY3Rpb24gPSByLm5hbWU7XHJcbiAgICAgICAgICAgICAgICBwLkFjY2Vzc2VzID0gdGhpcy5yb3cuT3B0aW9ucy5maWx0ZXIoeCA9PiB4LlBhcmVudElkID09PSBvcHRpb24uSWQpO1xyXG4gICAgICAgICAgICAgICAgci50YWJsZS5wZXJtaXNzaW9ucyA9IHA7XHJcbiAgICAgICAgICAgICAgICBpZiAoci50YWJsZS5mb3JtKXtcclxuICAgICAgICAgICAgICAgICAgci50YWJsZS5mb3JtLnVybCA9IHAuZ2V0VXJsKCkgKyAnSW5zZXJ0JztcclxuICAgICAgICAgICAgICAgICAgci50YWJsZS5mb3JtLmJhc2VVcmwgPSBwLmdldFVybCgpICsgJ0luc2VydCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByLnRhYmxlLnNldCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkZpbGUpe1xyXG4gICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgcC5Db250cm9sbGVyID0gb3B0aW9uLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgIG9wdC51cmwgPSAnL0ZpbGUnICsgcC5nZXRVcmwoKSArICcvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgb3B0LnVybE5ld1RhYiA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkNvbmZpcm0pe1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQ7XHJcbiAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICAgIHAuQWN0aW9uID0gb3B0aW9uLkFjdGlvbjtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2hvd0NvbmZpcm0odGhpcy50YWJsZS5sKG9wdGlvbi5BY3Rpb24gKyAnQ29uZmlybScpLCBwLmdldFVybCgpICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZCwgbnVsbCwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk9uQ2xpY2spe1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5vcHRpb25zQWN0aW9ucy5maW5kKHggPT4geC5uYW1lID09PSBvcHRpb24uQWN0aW9uKS5vbkNsaWNrKGJ0bik7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBvcHRzLnB1c2gob3B0KTtcclxuICAgIH1cclxuICAgIHJldHVybiBvcHRzO1xyXG4gICAgLy8gcmV0dXJuICh0aGlzLmFkZENoaWxkcmVuICE9PSBudWxsICYmICh0aGlzLnRhYmxlLmxldmVsID09PSBudWxsIHx8IHRoaXMudGFibGUubGV2ZWwgPiB0aGlzLmxldmVsKSA/IFt0aGlzLmFkZENoaWxkcmVuXSA6IFtdKVxyXG4gICAgLy8gICAuY29uY2F0KHRoaXMudGFibGUub3B0aW9ucy5maWx0ZXIoeCA9PiB4LmNvbmRpdGlvbiA9PSBudWxsIHx8XHJcbiAgICAvLyAgICAgKHguY29uZGl0aW9uLnN0YXJ0c1dpdGgoJyEnKSA/ICF0aGlzLnJvdy5EYXRhW3guY29uZGl0aW9uLnN1YnN0cmluZygxKV0gOiB0aGlzLnJvdy5EYXRhW3guY29uZGl0aW9uXSkpLm1hcCgobykgPT4ge1xyXG4gICAgLy8gICAgIGNvbnN0IGkgPSBIZWxwZXJDbGFzcy5jbG9uZShvKTtcclxuICAgIC8vICAgICBpZiAoaS51cmwpe1xyXG4gICAgLy8gICAgICAgaS51cmwgPSBpLnVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBpLnJvdyA9IHRoaXMucm93LkRhdGE7XHJcbiAgICAvLyAgICAgaS5jbGFzcyA9IGkuY2xhc3MgKyAnIG0taC01IGgtMjUgZC1pYiB2YS1tIGYtdSc7XHJcbiAgICAvLyAgICAgcmV0dXJuIGk7XHJcbiAgICAvLyB9KSkuY29uY2F0KHRoaXMudGFibGUuaGFzU3RhdHVzID8gW3RoaXMub3B0U3RhdHVzXSA6IFtdKVxyXG4gICAgLy8gICAgIC5jb25jYXQodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoJ1VwZGF0ZScpID8gW3RoaXMub3B0RWRpdF0gOiBbXSlcclxuICAgIC8vICAgICAuY29uY2F0KHRoaXMudGFibGUucGVybWlzc2lvbnMuaGFzQWNjZXNzKCdEZWxldGUnKSA/IFt0aGlzLm9wdERlbGV0ZV0gOiBbXSk7XHJcbiAgfVxyXG4gIGdldENlbGwoY29sOiBUYWJsZUNvbGxDbGFzcyk6IGFueXtcclxuICAgIGNvbnNvbGUubG9nKCdnZXRDZWxsJyk7XHJcbiAgICBjb25zdCBjdiA9IF8uZ2V0KHRoaXMucm93LkRhdGEsIGNvbC5uYW1lKTtcclxuICAgIGlmIChjb2wuZnVuICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIGNvbC5mdW4odGhpcy5yb3cuRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC5lbnVtICE9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBjb2wuZW51bS5nZXQoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlRGlmKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXREYXRlRGlmKHRoaXMudGFibGUubCwgY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXREYXRlKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuRGF0ZVRpbWUpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGVUaW1lKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuVGltZSkge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0VGltZShjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkNvbG9yKSB7XHJcbiAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImNvbG9yXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAnICsgY3YgKyAnOyBjb2xvcjogJyArIEhlbHBlckNsYXNzLmdldENvbG9yQnlCZ0NvbG9yKGN2KSArICdcIj4nICsgY3YgKyAnPC9kaXY+JztcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuVXJsKSB7XHJcbiAgICAgIHJldHVybiAnPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIicgKyBjdiArICdcIj4nICsgY3YgKyAnPC9hPic7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkltYWdlKSB7XHJcbiAgICAgIHJldHVybiAnPGltZyBjbGFzcz1cImgtMTAwXCIgYWx0PVwiXCIgc3JjPVwiJyArIHRoaXMuc2VydmljZS5lbnZpcm9ubWVudC51cmwgKyBjdiArICdcIi8+JztcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuRmlsZVNpemUpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldEZpbGVTaXplKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUHJpY2UpIHtcclxuICAgICAgcmV0dXJuIGN2LnRvTG9jYWxlU3RyaW5nKCkgKyAnICcgKyB0aGlzLnRhYmxlLmwoJ1JpYWwnKTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUGxhcXVlKSB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gY3Yuc3BsaXQoJ18nKTtcclxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gNCkge1xyXG4gICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cInBsYXF1ZScgKyAocGFydHNbMV0gPT09ICfYuScgPyAnIHAnIDogJycpICsgKHBhcnRzWzFdID09PSAn2KfZhNmBJyA/ICcgZycgOiAnJykgKyAnXCI+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQxXCI+JyArIHBhcnRzWzBdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0MlwiPicgKyBwYXJ0c1sxXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDNcIj4nICsgcGFydHNbMl0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQ0XCI+JyArIHBhcnRzWzNdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzwvZGl2Pic7XHJcbiAgICAgIH0gZWxzZSBpZiAocGFydHMubGVuZ3RoID09PSAyKXtcclxuICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9XCJwbGFxdWUgcGxhcXVlLW1cIj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDFcIj4nICsgcGFydHNbMF0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQyXCI+JyArIHBhcnRzWzFdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzwvZGl2Pic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUGxhcXVlVGV4dCkge1xyXG4gICAgICBjb25zdCBwYXJ0cyA9IGN2LnNwbGl0KCdfJyk7XHJcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDQpe1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImx0clwiPiR7cGFydHNbMF19ICR7cGFydHNbMV19JmxybTsgJHtwYXJ0c1syXX0gJHtwYXJ0c1szXX08L2Rpdj5gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5sKGN2KTtcclxuICB9XHJcbiAgZ2V0Q29sKG4pOiBzdHJpbmd7XHJcbiAgICBsZXQgYyA9IHRoaXMucm93LkRhdGE7XHJcbiAgICBuLnNwbGl0KCcuJykuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICBjID0gY1t4XTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGM7XHJcbiAgfVxyXG4gIGVkaXQob3B0OiBJbnB1dENsYXNzKTogdm9pZHtcclxuICAgIGlmICh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtKXtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLm5hbWUgPSBvcHQubmFtZTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLnNldERhdGEodGhpcy5yb3cuRGF0YSk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5zZXRCdXR0b25zKHRoaXMudGFibGUuZm9ybS5vblRvcCwgdHJ1ZSwgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4geC5pbkVkaXREaXNhYmxlZCkuZm9yRWFjaCh4ID0+IHguZGlzYWJsZWQgPSB0cnVlKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gZmFsc2UpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUudXJsICsgJ0dldC8nICsgdGhpcy5yb3cuRGF0YS5JZCwgTWV0aG9kLlBvc3QsXHJcbiAgICAgICAgbnVsbCwgb3B0LCAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ubmFtZSA9IG9wdC5uYW1lO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLnNldEJ1dHRvbnModGhpcy50YWJsZS5mb3JtLm9uVG9wLCB0cnVlLCB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5zZXREYXRhKHJlc3VsdCk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+IHguaW5FZGl0RGlzYWJsZWQpLmZvckVhY2goeCA9PiB4LmRpc2FibGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+ICF4LmluRWRpdFZpc2libGUpLmZvckVhY2goeCA9PiB4LnZpc2libGUgPSBmYWxzZSk7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZS5tb2RhbCl7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuc2hvdygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRDaGlsZHJlbigpOiBhbnlbXXtcclxuICAgIHJldHVybiB0aGlzLnJvdy5EYXRhLklkID8gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+IHguRGF0YS5QYXJlbnRJZCA9PT0gdGhpcy5yb3cuRGF0YS5JZCkgOiBbXTtcclxuICB9XHJcbn1cclxuIl19