ps-toolkit-ui 1.3.31 → 1.3.32

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.
@@ -64,18 +64,19 @@ export var InputType;
64
64
  InputType[InputType["Price"] = 23] = "Price";
65
65
  InputType[InputType["Radio"] = 24] = "Radio";
66
66
  InputType[InputType["Tree"] = 25] = "Tree";
67
- InputType[InputType["Plaque"] = 26] = "Plaque";
68
- InputType[InputType["PlaqueM"] = 27] = "PlaqueM";
69
- InputType[InputType["SelectAutoCompletePlaque"] = 28] = "SelectAutoCompletePlaque";
70
- InputType[InputType["SelectAutoCompletePlaqueM"] = 29] = "SelectAutoCompletePlaqueM";
71
- InputType[InputType["BankCard"] = 30] = "BankCard";
72
- InputType[InputType["Constant"] = 31] = "Constant";
73
- InputType[InputType["Hidden"] = 32] = "Hidden";
74
- InputType[InputType["Table"] = 33] = "Table";
75
- InputType[InputType["CarSearch"] = 34] = "CarSearch";
76
- InputType[InputType["Car"] = 35] = "Car";
77
- InputType[InputType["Finger"] = 36] = "Finger";
78
- InputType[InputType["Color"] = 37] = "Color";
67
+ InputType[InputType["TreeRadio"] = 26] = "TreeRadio";
68
+ InputType[InputType["Plaque"] = 27] = "Plaque";
69
+ InputType[InputType["PlaqueM"] = 28] = "PlaqueM";
70
+ InputType[InputType["SelectAutoCompletePlaque"] = 29] = "SelectAutoCompletePlaque";
71
+ InputType[InputType["SelectAutoCompletePlaqueM"] = 30] = "SelectAutoCompletePlaqueM";
72
+ InputType[InputType["BankCard"] = 31] = "BankCard";
73
+ InputType[InputType["Constant"] = 32] = "Constant";
74
+ InputType[InputType["Hidden"] = 33] = "Hidden";
75
+ InputType[InputType["Table"] = 34] = "Table";
76
+ InputType[InputType["CarSearch"] = 35] = "CarSearch";
77
+ InputType[InputType["Car"] = 36] = "Car";
78
+ InputType[InputType["Finger"] = 37] = "Finger";
79
+ InputType[InputType["Color"] = 38] = "Color";
79
80
  })(InputType || (InputType = {}));
80
81
  export var OperationEnum;
81
82
  (function (OperationEnum) {
@@ -188,4 +189,4 @@ export var TableOptionType;
188
189
  TableOptionType[TableOptionType["Show"] = 2] = "Show";
189
190
  TableOptionType[TableOptionType["Group"] = 3] = "Group";
190
191
  })(TableOptionType || (TableOptionType = {}));
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9lbnVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQVk7UUFDM0IsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQVksRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBWTtRQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTztnQkFDTCxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFOLElBQVks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UiwrRUFBVyxDQUFBO0lBQ1gseUVBQVEsQ0FBQTtJQUNSLHFGQUFjLENBQUE7SUFDZCx5RUFBUSxDQUFBO0lBQ1IsMkVBQVMsQ0FBQTtJQUNULCtFQUFXLENBQUE7SUFDWCwyRUFBUyxDQUFBO0FBQ1gsQ0FBQyxFQVZXLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFVcEM7QUFFRCxNQUFNLENBQU4sSUFBWSx1QkFJWDtBQUpELFdBQVksdUJBQXVCO0lBRWpDLHFFQUFRLENBQUE7SUFDUix5RUFBVSxDQUFBO0FBQ1osQ0FBQyxFQUpXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFJbEM7QUFFRCxNQUFNLENBQU4sSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBRXJCLDJDQUFPLENBQUE7SUFDUCx5REFBYyxDQUFBO0lBQ2QscURBQVksQ0FBQTtJQUNaLCtDQUFTLENBQUE7SUFDVCw2Q0FBUSxDQUFBO0FBQ1YsQ0FBQyxFQVBXLFdBQVcsS0FBWCxXQUFXLFFBT3RCO0FBQ0QsTUFBTSxDQUFOLElBQVksZUFLWDtBQUxELFdBQVksZUFBZTtJQUV6Qix5REFBVSxDQUFBO0lBQ1YscURBQVEsQ0FBQTtJQUNSLHVEQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsZUFBZSxLQUFmLGVBQWUsUUFLMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgRW51bVV0aWxzIHtcclxuICBzdGF0aWMgZ2V0VmFsdWVzKGVudW1PYmo6IGFueSk6IGFueVtdIHtcclxuICAgIHJldHVybiBFbnVtVXRpbHMuZ2V0S2V5cyhlbnVtT2JqKS5tYXAodmFsdWUgPT4gZW51bU9ialt2YWx1ZV0pO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0S2V5QnlWYWx1ZShlbnVtT2JqOiBhbnksIHYpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRLZXlzKGVudW1PYmopLmZpbmQoa2V5ID0+IGVudW1PYmpba2V5XSA9PT0gdik7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRLZXlzKGVudW1PYmo6IGFueSk6IGFueVtdIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtT2JqKS5maWx0ZXIoa2V5ID0+IHR5cGVvZiBlbnVtT2JqW2tleV0gPT09ICdudW1iZXInKTtcclxuICB9XHJcbiAgc3RhdGljIGdldEtleXNBbmRWYWx1ZXMoZW51bU9iajogYW55KTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0S2V5cyhlbnVtT2JqKS5tYXAoa2V5ID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBrZXksIHZhbHVlOiBlbnVtT2JqW2tleV1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gSW5wdXRFcnJvciB7XHJcbiAgUmVxdWlyZWQgPSAnUmVxdWlyZWQnLFxyXG4gIEludmFsaWQgPSAnSW52YWxpZCcsXHJcbiAgTGVuZ3RoID0gJ0xlbmd0aCcsXHJcbiAgTWluTGVuZ3RoID0gJ01pbkxlbmd0aCcsXHJcbiAgTWF4TGVuZ3RoID0gJ01heExlbmd0aCcsXHJcbiAgTWluQW1vdW50ID0gJ01pbkFtb3VudCcsXHJcbiAgTWF4QW1vdW50ID0gJ01heEFtb3VudCcsXHJcbiAgRXhwaXJlZCA9ICdFeHBpcmVkJyxcclxuICBFcnJvciA9ICdFcnJvcicsXHJcbiAgTm90TWF0Y2ggPSAnTm90TWF0Y2gnLFxyXG4gIE5vdEFsbG93ZWQgPSAnTm90QWxsb3dlZCcsXHJcbiAgTWF4Q29udGVudCA9ICdNYXhDb250ZW50JyxcclxuICBFeGlzdCA9ICdFeGlzdCcsXHJcbiAgTm90RXhpc3QgPSAnTm90RXhpc3QnLFxyXG4gIFdyb25nID0gJ1dyb25nJyxcclxuICBVcGxvYWQgPSAnVXBsb2FkJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gSW5wdXRUeXBlIHtcclxuICBUZXh0LFxyXG4gIFBhc3N3b3JkLFxyXG4gIE1vYmlsZSxcclxuICBQaG9uZSxcclxuICBFbWFpbCxcclxuICBOYXRpb25hbENvZGUsXHJcbiAgUG9zdGFsQ29kZSxcclxuICBTaGViYSxcclxuICBOdW1iZXIsXHJcbiAgU2VsZWN0LFxyXG4gIFNlbGVjdFNlYXJjaCxcclxuICBTZWxlY3RBdXRvQ29tcGxldGUsXHJcbiAgRGF0ZSxcclxuICBUaW1lLFxyXG4gIERhdGVUaW1lLFxyXG4gIENoZWNrLFxyXG4gIFRleHRBcmVhLFxyXG4gIExhYmVsLFxyXG4gIEJ1dHRvbixcclxuICBTdWJtaXQsXHJcbiAgSWNvbixcclxuICBGaWxlLFxyXG4gIFVybCxcclxuICBQcmljZSxcclxuICBSYWRpbyxcclxuICBUcmVlLFxyXG4gIFBsYXF1ZSxcclxuICBQbGFxdWVNLFxyXG4gIFNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSxcclxuICBTZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNLFxyXG4gIEJhbmtDYXJkLFxyXG4gIENvbnN0YW50LFxyXG4gIEhpZGRlbixcclxuICBUYWJsZSxcclxuICBDYXJTZWFyY2gsXHJcbiAgQ2FyLFxyXG4gIEZpbmdlcixcclxuICBDb2xvcixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gT3BlcmF0aW9uRW51bVxyXG57XHJcbiAgQWxsID0gLTEsXHJcbiAgSW5zZXJ0ID0gMSxcclxuICBVcGRhdGUgPSAyLFxyXG4gIERlbGV0ZSA9IDMsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE1ldGhvZCB7XHJcbiAgR2V0LFxyXG4gIFBvc3QsXHJcbiAgRGVsZXRlLFxyXG4gIFB1dCxcclxuICBPcHRpb25zLFxyXG4gIFBhdGNoLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBUYWJsZUNvbGxUeXBlIHtcclxuICBUZXh0LFxyXG4gIERhdGUsXHJcbiAgVGltZSxcclxuICBEYXRlVGltZSxcclxuICBEYXRlRGlmLFxyXG4gIERhdGVSZW1haW4sXHJcbiAgVXJsLFxyXG4gIEltYWdlLFxyXG4gIEZ1bmN0aW9uLFxyXG4gIFByaWNlLFxyXG4gIFBsYXF1ZSxcclxuICBQbGFxdWVUZXh0LFxyXG4gIEZpbGVTaXplLFxyXG4gIEJvb2wsXHJcbiAgT3B0aW9ucyxcclxuICBDb2xvcixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXNlclR5cGUge1xyXG4gIEFsbCA9IDAsXHJcbiAgQWRtaW4gPSAxLFxyXG4gIFVzZXIgPSAyXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFN0YXR1c0VudW1cclxue1xyXG4gIEFsbCA9IC0xLFxyXG4gIEFjdGl2ZSA9IDAsXHJcbiAgRGVBY3RpdmUgPSAxLFxyXG4gIERlbGV0ZSA9IDIsXHJcbiAgUmVwb3J0ID0gMyxcclxufVxyXG5leHBvcnQgZW51bSBQYXltZW50U3RhdHVzRW51bVxyXG57XHJcbiAgQWxsID0gMCxcclxuICBTdWNjZXNzID0gMTAwLFxyXG4gIE5PSyA9IDEwMixcclxuICBSZXF1ZXN0ID0gMTAzLFxyXG4gIE5vdGZvdW5kID0gMTA0LFxyXG4gIE5vdFJlcXVlc3QgPSAxMDUsXHJcbiAgTm90Zm91bmRQYWNrYWdlID0gMTA2XHJcbn1cclxuZXhwb3J0IGVudW0gUmVzdWx0U3RhdHVzRW51bVxyXG57XHJcbiAgRmFpbGVkID0gMCxcclxuICBTdWNjZXNzID0gMSxcclxuICBVbmF1dGhvcml6ZWQgPSAyLFxyXG4gIE5vdEFjY2VzcyA9IDNcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUGVybWlzc2lvblR5cGVFbnVtXHJcbntcclxuICBGb3JtID0gLTEsXHJcbiAgSXRlbSA9IDAsXHJcbiAgQWNjZXNzID0gMSxcclxuICBPcHRpb24gPSAyLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW1cclxue1xyXG4gIExpc3QgPSAxLFxyXG4gIEluc2VydCA9IDIsXHJcbiAgVXBkYXRlID0gMyxcclxuICBEZWxldGUgPSA0LFxyXG4gIFJlcG9ydCA9IDUsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW1cclxue1xyXG4gIE5vbmUgPSAwLFxyXG4gIE9uQ2xpY2sgPSAxLFxyXG4gIExpbmsgPSAyLFxyXG4gIExpbmtOZXdUYWIgPSAzLFxyXG4gIEZpbGUgPSA0LFxyXG4gIE1vZGFsID0gNSxcclxuICBDb25maXJtID0gNixcclxuICBJbnB1dCA9IDcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtXHJcbntcclxuICBJY29uID0gMCxcclxuICBCdXR0b24gPSAxLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBWZWhpY2xlVHlwZVxyXG57XHJcbiAgQ2FyID0gMSxcclxuICBNb3RvcmN5Y2xlID0gMixcclxuICBBaXJwbGFuZSA9IDMsXHJcbiAgVHJhaW4gPSA0LFxyXG4gIFNoaXAgPSA1LFxyXG59XHJcbmV4cG9ydCBlbnVtIFRhYmxlT3B0aW9uVHlwZVxyXG57XHJcbiAgSGlkZGVuID0gMSxcclxuICBTaG93ID0gMixcclxuICBHcm91cCA9IDMsXHJcbn1cclxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9lbnVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQVk7UUFDM0IsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQVksRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBWTtRQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTztnQkFDTCxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFOLElBQVks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Qyx5RUFBUSxDQUFBO0lBQ1IsK0VBQVcsQ0FBQTtJQUNYLHlFQUFRLENBQUE7SUFDUixxRkFBYyxDQUFBO0lBQ2QseUVBQVEsQ0FBQTtJQUNSLDJFQUFTLENBQUE7SUFDVCwrRUFBVyxDQUFBO0lBQ1gsMkVBQVMsQ0FBQTtBQUNYLENBQUMsRUFWVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBVXBDO0FBRUQsTUFBTSxDQUFOLElBQVksdUJBSVg7QUFKRCxXQUFZLHVCQUF1QjtJQUVqQyxxRUFBUSxDQUFBO0lBQ1IseUVBQVUsQ0FBQTtBQUNaLENBQUMsRUFKVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSWxDO0FBRUQsTUFBTSxDQUFOLElBQVksV0FPWDtBQVBELFdBQVksV0FBVztJQUVyQiwyQ0FBTyxDQUFBO0lBQ1AseURBQWMsQ0FBQTtJQUNkLHFEQUFZLENBQUE7SUFDWiwrQ0FBUyxDQUFBO0lBQ1QsNkNBQVEsQ0FBQTtBQUNWLENBQUMsRUFQVyxXQUFXLEtBQVgsV0FBVyxRQU90QjtBQUNELE1BQU0sQ0FBTixJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFFekIseURBQVUsQ0FBQTtJQUNWLHFEQUFRLENBQUE7SUFDUix1REFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUxXLGVBQWUsS0FBZixlQUFlLFFBSzFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEVudW1VdGlscyB7XHJcbiAgc3RhdGljIGdldFZhbHVlcyhlbnVtT2JqOiBhbnkpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gRW51bVV0aWxzLmdldEtleXMoZW51bU9iaikubWFwKHZhbHVlID0+IGVudW1PYmpbdmFsdWVdKTtcclxuICB9XHJcbiAgc3RhdGljIGdldEtleUJ5VmFsdWUoZW51bU9iajogYW55LCB2KTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0S2V5cyhlbnVtT2JqKS5maW5kKGtleSA9PiBlbnVtT2JqW2tleV0gPT09IHYpO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0S2V5cyhlbnVtT2JqOiBhbnkpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bU9iaikuZmlsdGVyKGtleSA9PiB0eXBlb2YgZW51bU9ialtrZXldID09PSAnbnVtYmVyJyk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRLZXlzQW5kVmFsdWVzKGVudW1PYmo6IGFueSk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLmdldEtleXMoZW51bU9iaikubWFwKGtleSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAga2V5LCB2YWx1ZTogZW51bU9ialtrZXldXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIElucHV0RXJyb3Ige1xyXG4gIFJlcXVpcmVkID0gJ1JlcXVpcmVkJyxcclxuICBJbnZhbGlkID0gJ0ludmFsaWQnLFxyXG4gIExlbmd0aCA9ICdMZW5ndGgnLFxyXG4gIE1pbkxlbmd0aCA9ICdNaW5MZW5ndGgnLFxyXG4gIE1heExlbmd0aCA9ICdNYXhMZW5ndGgnLFxyXG4gIE1pbkFtb3VudCA9ICdNaW5BbW91bnQnLFxyXG4gIE1heEFtb3VudCA9ICdNYXhBbW91bnQnLFxyXG4gIEV4cGlyZWQgPSAnRXhwaXJlZCcsXHJcbiAgRXJyb3IgPSAnRXJyb3InLFxyXG4gIE5vdE1hdGNoID0gJ05vdE1hdGNoJyxcclxuICBOb3RBbGxvd2VkID0gJ05vdEFsbG93ZWQnLFxyXG4gIE1heENvbnRlbnQgPSAnTWF4Q29udGVudCcsXHJcbiAgRXhpc3QgPSAnRXhpc3QnLFxyXG4gIE5vdEV4aXN0ID0gJ05vdEV4aXN0JyxcclxuICBXcm9uZyA9ICdXcm9uZycsXHJcbiAgVXBsb2FkID0gJ1VwbG9hZCcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIElucHV0VHlwZSB7XHJcbiAgVGV4dCxcclxuICBQYXNzd29yZCxcclxuICBNb2JpbGUsXHJcbiAgUGhvbmUsXHJcbiAgRW1haWwsXHJcbiAgTmF0aW9uYWxDb2RlLFxyXG4gIFBvc3RhbENvZGUsXHJcbiAgU2hlYmEsXHJcbiAgTnVtYmVyLFxyXG4gIFNlbGVjdCxcclxuICBTZWxlY3RTZWFyY2gsXHJcbiAgU2VsZWN0QXV0b0NvbXBsZXRlLFxyXG4gIERhdGUsXHJcbiAgVGltZSxcclxuICBEYXRlVGltZSxcclxuICBDaGVjayxcclxuICBUZXh0QXJlYSxcclxuICBMYWJlbCxcclxuICBCdXR0b24sXHJcbiAgU3VibWl0LFxyXG4gIEljb24sXHJcbiAgRmlsZSxcclxuICBVcmwsXHJcbiAgUHJpY2UsXHJcbiAgUmFkaW8sXHJcbiAgVHJlZSxcclxuICBUcmVlUmFkaW8sXHJcbiAgUGxhcXVlLFxyXG4gIFBsYXF1ZU0sXHJcbiAgU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlLFxyXG4gIFNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0sXHJcbiAgQmFua0NhcmQsXHJcbiAgQ29uc3RhbnQsXHJcbiAgSGlkZGVuLFxyXG4gIFRhYmxlLFxyXG4gIENhclNlYXJjaCxcclxuICBDYXIsXHJcbiAgRmluZ2VyLFxyXG4gIENvbG9yLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBPcGVyYXRpb25FbnVtXHJcbntcclxuICBBbGwgPSAtMSxcclxuICBJbnNlcnQgPSAxLFxyXG4gIFVwZGF0ZSA9IDIsXHJcbiAgRGVsZXRlID0gMyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTWV0aG9kIHtcclxuICBHZXQsXHJcbiAgUG9zdCxcclxuICBEZWxldGUsXHJcbiAgUHV0LFxyXG4gIE9wdGlvbnMsXHJcbiAgUGF0Y2gsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ29sbFR5cGUge1xyXG4gIFRleHQsXHJcbiAgRGF0ZSxcclxuICBUaW1lLFxyXG4gIERhdGVUaW1lLFxyXG4gIERhdGVEaWYsXHJcbiAgRGF0ZVJlbWFpbixcclxuICBVcmwsXHJcbiAgSW1hZ2UsXHJcbiAgRnVuY3Rpb24sXHJcbiAgUHJpY2UsXHJcbiAgUGxhcXVlLFxyXG4gIFBsYXF1ZVRleHQsXHJcbiAgRmlsZVNpemUsXHJcbiAgQm9vbCxcclxuICBPcHRpb25zLFxyXG4gIENvbG9yLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBVc2VyVHlwZSB7XHJcbiAgQWxsID0gMCxcclxuICBBZG1pbiA9IDEsXHJcbiAgVXNlciA9IDJcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU3RhdHVzRW51bVxyXG57XHJcbiAgQWxsID0gLTEsXHJcbiAgQWN0aXZlID0gMCxcclxuICBEZUFjdGl2ZSA9IDEsXHJcbiAgRGVsZXRlID0gMixcclxuICBSZXBvcnQgPSAzLFxyXG59XHJcbmV4cG9ydCBlbnVtIFBheW1lbnRTdGF0dXNFbnVtXHJcbntcclxuICBBbGwgPSAwLFxyXG4gIFN1Y2Nlc3MgPSAxMDAsXHJcbiAgTk9LID0gMTAyLFxyXG4gIFJlcXVlc3QgPSAxMDMsXHJcbiAgTm90Zm91bmQgPSAxMDQsXHJcbiAgTm90UmVxdWVzdCA9IDEwNSxcclxuICBOb3Rmb3VuZFBhY2thZ2UgPSAxMDZcclxufVxyXG5leHBvcnQgZW51bSBSZXN1bHRTdGF0dXNFbnVtXHJcbntcclxuICBGYWlsZWQgPSAwLFxyXG4gIFN1Y2Nlc3MgPSAxLFxyXG4gIFVuYXV0aG9yaXplZCA9IDIsXHJcbiAgTm90QWNjZXNzID0gM1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uVHlwZUVudW1cclxue1xyXG4gIEZvcm0gPSAtMSxcclxuICBJdGVtID0gMCxcclxuICBBY2Nlc3MgPSAxLFxyXG4gIE9wdGlvbiA9IDIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bVxyXG57XHJcbiAgTGlzdCA9IDEsXHJcbiAgSW5zZXJ0ID0gMixcclxuICBVcGRhdGUgPSAzLFxyXG4gIERlbGV0ZSA9IDQsXHJcbiAgUmVwb3J0ID0gNSxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bVxyXG57XHJcbiAgTm9uZSA9IDAsXHJcbiAgT25DbGljayA9IDEsXHJcbiAgTGluayA9IDIsXHJcbiAgTGlua05ld1RhYiA9IDMsXHJcbiAgRmlsZSA9IDQsXHJcbiAgTW9kYWwgPSA1LFxyXG4gIENvbmZpcm0gPSA2LFxyXG4gIElucHV0ID0gNyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUGVybWlzc2lvbklucHV0VHlwZUVudW1cclxue1xyXG4gIEljb24gPSAwLFxyXG4gIEJ1dHRvbiA9IDEsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFZlaGljbGVUeXBlXHJcbntcclxuICBDYXIgPSAxLFxyXG4gIE1vdG9yY3ljbGUgPSAyLFxyXG4gIEFpcnBsYW5lID0gMyxcclxuICBUcmFpbiA9IDQsXHJcbiAgU2hpcCA9IDUsXHJcbn1cclxuZXhwb3J0IGVudW0gVGFibGVPcHRpb25UeXBlXHJcbntcclxuICBIaWRkZW4gPSAxLFxyXG4gIFNob3cgPSAyLFxyXG4gIEdyb3VwID0gMyxcclxufVxyXG4iXX0=
@@ -387,61 +387,6 @@ export class TreeRowClass {
387
387
  this.selected = selected;
388
388
  this.children = children;
389
389
  }
390
- toggle(onlyChild = true) {
391
- if (this.selected) {
392
- this.unCheck(onlyChild);
393
- if (onlyChild) {
394
- setTimeout(() => { this.unCheckParent(); });
395
- }
396
- }
397
- else {
398
- this.check(onlyChild);
399
- if (onlyChild) {
400
- setTimeout(() => { this.checkParent(); });
401
- }
402
- }
403
- }
404
- check(onlyChild, c = this) {
405
- c.selected = true;
406
- if (onlyChild) {
407
- c.checkChildren(onlyChild);
408
- }
409
- }
410
- unCheck(onlyChild, c = this) {
411
- c.selected = false;
412
- if (onlyChild) {
413
- c.children.forEach((ch) => {
414
- this.unCheck(onlyChild, ch);
415
- });
416
- }
417
- }
418
- checkChildren(onlyChild) {
419
- this.children.forEach((ch) => {
420
- this.check(onlyChild, ch);
421
- });
422
- }
423
- checkParent(p = this.parent) {
424
- if (p) {
425
- if (p.children.filter(x => !x.selected).length > 0) {
426
- p.selected = null;
427
- }
428
- else {
429
- p.selected = true;
430
- }
431
- this.checkParent(p.parent);
432
- }
433
- }
434
- unCheckParent(p = this.parent) {
435
- if (p) {
436
- if (p.children.filter(x => x.selected || x.selected == null).length > 0) {
437
- p.selected = null;
438
- }
439
- else {
440
- p.selected = false;
441
- }
442
- this.unCheckParent(p.parent);
443
- }
444
- }
445
390
  }
446
391
  export class AccordionClass {
447
392
  constructor(l, name, cls = '', rows) {
@@ -485,4 +430,4 @@ export class AccordionRowClass {
485
430
  }, 100);
486
431
  }
487
432
  }
488
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9mb3JtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQVksSUFBWTtRQUt4QixZQUFPLEdBQUcsR0FBRyxDQUFDO1FBRWQsVUFBSyxHQUFlLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQWUsSUFBSSxDQUFDO1FBQzNCLFdBQU0sR0FBbUMsSUFBSSxDQUFDO1FBQzlDLFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFFLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBQztvQkFDeEIsYUFBYSxDQUFDLElBQUksQ0FB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QUFDO1FBQzdELElBQUksQ0FBQyxDQUFDLEVBQUM7WUFDTCxPQUFPO1NBQ1I7UUFDRCxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbEMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsT0FBTyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsUUFBUSxHQUFHLElBQUk7UUFDcEUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7WUFDbEUsT0FBTztTQUNSO1FBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFDN0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLE1B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UUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksS0FBSyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksS0FBSyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUF3REQsS0FBSyxDQUFDLGNBQXVCLEtBQUssSUFBUyxDQUFDO0lBWTVDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLE9BQW1CLElBQUk7UUFDcEMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFDO1lBQ0osSUFBSSxDQUFD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SSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUM7Z0JBQ3BCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBWSxFQUFVLEVBQUUsSUFBWSxFQUFFLE9BQWtCLElBQUksRUFBRSxRQUFvQixJQUFJO1FBUXRGLFNBQUksR0FBRyxJQUFJLENBQUM7UUFQVixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFNRCxNQUFNO1FBQ0osVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0RCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsSUFBSTtRQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBQztnQkFDakUsQ0FBQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbnVtVXRpbHMsIElucHV0RXJyb3IsIElucHV0VHlwZSwgTWV0aG9kfSBmcm9tICcuL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuL2hlbHBlci5jbGFzcyc7XHJcbmltcG9ydCB7UmVxdWVzdENsYXNzfSBmcm9tICcuL3JlcXVlc3QuY2xhc3MnO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3N9IGZyb20gJy4vdGFibGUuY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7TW9kYWxDbGFzc30gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzcyB7XHJcbiAgY29uc3RydWN0b3Ioc2VjczogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlY3MgPSB0aGlzLnJlbWFpblNlY3MgPSBzZWNzO1xyXG4gIH1cclxuICBzZWNzOiBudW1iZXI7XHJcbiAgcmVtYWluU2VjczogbnVtYmVyO1xyXG4gIHBlcmNlbnQgPSAxMDA7XHJcbiAgaW50ZXJWYWw7XHJcbiAgb25FbmQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uU3RhcnQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uVGljazogKG06IG51bWJlciwgczogbnVtYmVyKSA9PiB2b2lkID0gbnVsbDtcclxuICBzdGFydCA9ICgpID0+IHtcclxuICAgIHRoaXMucmVtYWluU2VjcyA9IHRoaXMuc2VjcztcclxuICAgIHRoaXMucGVyY2VudCA9IDEwMDtcclxuICAgIGlmICh0aGlzLm9uU3RhcnQpe1xyXG4gICAgICB0aGlzLm9uU3RhcnQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJWYWwgPSBzZXRJbnRlcnZhbCggKCkgPT4ge1xyXG4gICAgICB0aGlzLnBlcmNlbnQgPSAodGhpcy5yZW1haW5TZWNzIC8gdGhpcy5zZWNzKSAqIDEwMDtcclxuICAgICAgaWYgKHRoaXMucmVtYWluU2VjcyA9PT0gMCl7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVyVmFsKTtcclxuICAgICAgICBpZiAodGhpcy5vbkVuZCl7XHJcbiAgICAgICAgICB0aGlzLm9uRW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih0aGlzLnJlbWFpblNlY3MpKXtcclxuICAgICAgICBjb25zdCBtID0gTWF0aC5mbG9vcih0aGlzLnJlbWFpblNlY3MgLyA2MCk7XHJcbiAgICAgICAgY29uc3QgcyA9IHRoaXMucmVtYWluU2VjcyAlIDYwO1xyXG4gICAgICAgIHRoaXMub25UaWNrKG0sIHMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluU2VjcyAtPSAwLjU7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgRm9ybUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogYW55LCBsOiAoaywgdj8pID0+IHN0cmluZywgbmFtZTogc3RyaW5nID0gbnVsbCwgcGVybWlzc2lvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICAgICAgICAgICAgdXJsOiBzdHJpbmcgPSBudWxsLCBjbHM6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLnVybCA9IHVybDtcclxuICAgIHRoaXMuYmFzZVVybCA9IHVybDtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHM7XHJcbiAgICB0aGlzLnBlcm1pc3Npb24gPSBwZXJtaXNzaW9uO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuaWQgPSB0aGlzLm5hbWU7XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIHBlcm1pc3Npb246IGJvb2xlYW47XHJcbiAgZW52aXJvbm1lbnQ6IGFueSA9IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHN1Yk5hbWU6IHN0cmluZyA9IG51bGw7XHJcbiAgaWQ6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIGJhc2VVcmw6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBtZXRob2Q6IE1ldGhvZCA9IE1ldGhvZC5Qb3N0O1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBzdHlsZToge307XHJcbiAgb25Ub3AgPSBmYWxzZTtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIGlucHV0czogSW5wdXRDbGFzc1tdID0gW107XHJcbiAgb25TdWNjZXNzQmFzZTogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25TdWNjZXNzOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZhaWxlZDogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Mb2FkOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkJlZm9yZVN1Ym1pdDogKCkgPT4gYm9vbGVhbiA9IG51bGw7XHJcbiAgb25IaWRlTW9kYWw6ICgpID0+IHZvaWQgPSBudWxsO1xyXG5cclxuICBsb2FkRGF0YSh1cmwpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkuc2VuZCh1cmwsIE1ldGhvZC5Qb3N0LCBudWxsLCBudWxsLCAocmVzdWx0KSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YShyZXN1bHQpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLm9uTG9hZCl7XHJcbiAgICAgICAgICB0aGlzLm9uTG9hZChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgNTAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzdWJtaXQob25TdWJtaXQgPSBudWxsKTogdm9pZCB7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkucG9zdEZvcm0odGhpcywgb25TdWJtaXQpO1xyXG4gIH1cclxuICBjaGVjaygpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWxpZCA9IHRydWU7XHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGlmICghaW5wLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIGlmICh2YWxpZCl7XHJcbiAgICAgICAgICBpbnAuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFsaWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG4gIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXRob2QgPSBNZXRob2QuUG9zdDtcclxuICAgIHRoaXMudXJsID0gdGhpcy5iYXNlVXJsO1xyXG4gICAgdGhpcy5zZXRCdXR0b25zKHRoaXMub25Ub3AsIGZhbHNlKTtcclxuICAgIHRoaXMuY2xlYXJJbnB1dHMoKTtcclxuICB9XHJcbiAgY2xlYXJJbnB1dHMoKTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gSW5wdXRUeXBlLkNvbnN0YW50KS5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGlucC5jbGVhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEJ1dHRvbnMoZm9ybU9uVG9wLCBlZGl0OiBib29sZWFuLCBpZCA9IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnN0IHMgPSB0aGlzLmlucHV0cy5maW5kKHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgIGlmICghcyl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHMubmFtZSA9IGVkaXQgPyAnQWNjZXB0JyA6ICdTYXZlJztcclxuICAgIHMuY2xhc3MgPSBlZGl0ID8gcy5jbGFzcy5yZXBsYWNlKCdncmVlbicsICdibHVlJykgOiBzLmNsYXNzLnJlcGxhY2UoJ2JsdWUnLCAnZ3JlZW4nKTtcclxuICB9XHJcbiAgYWRkQnV0dG9ucyhuYW1lID0gJ1NhdmUnLCBjbHMgPSAnZ3JlZW4nLCBjbGVhciA9IHRydWUsIG9uU3VibWl0ID0gbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHgudHlwZSA9PT0gSW5wdXRUeXBlLlN1Ym1pdCkubGVuZ3RoID4gMCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGJyID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBudWxsLCBudWxsLCBJbnB1dFR5cGUuTGFiZWwsXHJcbiAgICAgICh0aGlzLm9uVG9wID8gJ3NwYWNlJyA6ICd1bmRlcmxpbmUnKSArIChvblN1Ym1pdCA9PT0gbnVsbCA/ICcnIDogJyBtLXYtNScpKTtcclxuICAgIGNvbnN0IHNhdmUgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG5hbWUsICdmYS1kdW90b25lIGZhLWNoZWNrJywgSW5wdXRUeXBlLlN1Ym1pdCxcclxuICAgICAgJ3ctMTEwMC00MCB3LTUwMC01MCB3LTQwMC02MCB3LTcwIGYtbCBzYXZlLWZvcm0tYnRuICcgKyBjbHMgKyAob25TdWJtaXQgPT09IG51bGwgPyAnIGgtMzAnIDogJyBoLTI1JykpO1xyXG4gICAgc2F2ZS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1Ym1pdChvblN1Ym1pdCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnB1dHMucHVzaChicik7XHJcbiAgICB0aGlzLmlucHV0cy5wdXNoKHNhdmUpO1xyXG4gICAgaWYgKGNsZWFyKXtcclxuICAgICAgY29uc3QgZXJhc2UgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG51bGwsICdmYS1kdW90b25lIGZhLWVyYXNlcicsIElucHV0VHlwZS5CdXR0b24sXHJcbiAgICAgICAgJ2YtbCB3LXUgZ3JleSBlcmFzZS1mb3JtLWJ0bicgKyAob25TdWJtaXQgPT09IG51bGwgPyAnIGgtMzAnIDogJyBoLTI1JykpO1xyXG4gICAgICBlcmFzZS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9uVG9wKXtcclxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goZXJhc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkYXRhKGQgPSBudWxsKTogYW55IHtcclxuICAgIGlmICh0aGlzLmlucHV0cy5maW5kSW5kZXgoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5GaWxlKSA9PT0gLTEpe1xyXG4gICAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgICBkID0ge307XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZsID0gaW5wLmRhdGEoKTtcclxuICAgICAgICBpZiAodmwgIT09IG51bGwpe1xyXG4gICAgICAgICAgXy5zZXQoZCwgaW5wLm5hbWUsIHZsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmIChkID09IG51bGwpe1xyXG4gICAgICAgIGQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmwgPSBpbnAuZGF0YSgpO1xyXG4gICAgICAgIGlmICh2bCAhPT0gbnVsbCl7XHJcbiAgICAgICAgICBpZiAodmwgaW5zdGFuY2VvZiBBcnJheSl7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2bCl7XHJcbiAgICAgICAgICAgICAgZC5hcHBlbmQoaW5wLm5hbWUsIHYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgZC5hcHBlbmQoaW5wLm5hbWUsIHZsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG4gIGpzb24oZCA9IG51bGwpOiB7fSB7XHJcbiAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgZCA9IHt9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICBjb25zdCB2bCA9IGlucC5kYXRhKCk7XHJcbiAgICAgIGlmICh2bCAhPT0gbnVsbCAmJiB2bCAhPT0gJycpe1xyXG4gICAgICAgIGlmICh2bCBpbnN0YW5jZW9mIEFycmF5KXtcclxuICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2bCl7XHJcbiAgICAgICAgICAgIGRbaW5wLm5hbWVdID0gdjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGRbaW5wLm5hbWVdID0gdmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkO1xyXG4gIH1cclxuICBzZXREYXRhKGQpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgY29uc3QgaXYgPSBfLmdldChkLCBpbnAubmFtZSk7XHJcbiAgICAgIGlmIChpbnAudHlwZSA9PT0gSW5wdXRUeXBlLkNhclNlYXJjaCl7XHJcbiAgICAgICAgY29uc3QgaXZzID0gXy5nZXQoZCwgaW5wLm5hbWUucmVwbGFjZSgnSWQnLCAnJykpO1xyXG4gICAgICAgIGlucC5zZXRWYWx1ZSh7U2VhcmNoOiBpdnMsIFZhbHVlOiBpdn0sIHRydWUpO1xyXG4gICAgICB9ZWxzZSBpZiAoaW5wLnR5cGUgIT09IElucHV0VHlwZS5MYWJlbCB8fCBpdiAhPSBudWxsKXtcclxuICAgICAgICBpbnAuc2V0VmFsdWUoaXYsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCBpbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgY29uc3QgaXZzID0gXy5nZXQoZCwgaW5wLm5hbWUucmVwbGFjZSgnSWQnLCAnJykpO1xyXG4gICAgICAgIGlucC5zZXRTZWFyY2goaXZzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IoZW52aXJvbm1lbnQ6IGFueSwgbDogKGssIHY/KSA9PiBzdHJpbmcsIG5hbWU6IHN0cmluZywgaWNvbjogc3RyaW5nID0gbnVsbCxcclxuICAgICAgICAgICAgICB0eXBlOiBJbnB1dFR5cGUgPSBJbnB1dFR5cGUuVGV4dCwgY2xzOiBzdHJpbmcgPSAnJywgdmFsdWUgPSBudWxsLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiBib29sZWFuID0gdHJ1ZSwgbWluTGVuZ3RoID0gLTEsIG1heExlbmd0aCA9IC0xKSB7XHJcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XHJcbiAgICB0aGlzLmwgPSBsO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMubG9hZGluZ05hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IG5hbWU7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscyArIChbSW5wdXRUeXBlLk1vYmlsZSwgSW5wdXRUeXBlLlBob25lLCBJbnB1dFR5cGUuUGFzc3dvcmQsIElucHV0VHlwZS5FbWFpbCwgSW5wdXRUeXBlLk51bWJlciwgSW5wdXRUeXBlLlByaWNlLFxyXG4gICAgICBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlLCBJbnB1dFR5cGUuU2hlYmEsIElucHV0VHlwZS5Qb3N0YWxDb2RlLCBJbnB1dFR5cGUuRGF0ZSwgSW5wdXRUeXBlLlRpbWVdLmluY2x1ZGVzKHR5cGUpID8gJyBsdHInIDogJycpO1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZGVmYXVsdCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBfLmNsb25lRGVlcCh2YWx1ZSkgOiBIZWxwZXJDbGFzcy5jbG9uZSh2YWx1ZSk7XHJcbiAgICB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICB0aGlzLm1pbkxlbmd0aCA9IHR5cGUgPT09IElucHV0VHlwZS5Nb2JpbGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBob25lID8gMTEgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlIHx8IHR5cGUgPT09IElucHV0VHlwZS5Qb3N0YWxDb2RlID8gMTAgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuU2hlYmEgPyAyNCA6IG1pbkxlbmd0aDtcclxuICAgIHRoaXMubWF4TGVuZ3RoID0gdHlwZSA9PT0gSW5wdXRUeXBlLk1vYmlsZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUGhvbmUgPyAxMSA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbENvZGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBvc3RhbENvZGUgPyAxMCA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5TaGViYSA/IDI0IDogbWF4TGVuZ3RoO1xyXG4gIH1cclxuICBlbnZpcm9ubWVudDogYW55ID0gbnVsbDtcclxuICBsOiAoaywgdj8pID0+IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdXJsID0gbnVsbDtcclxuICB1cmxOZXdUYWIgPSBmYWxzZTtcclxuICBsb2FkaW5nTmFtZTogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGFkZE5ldyA9IGZhbHNlO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZyA9IG51bGw7XHJcbiAgdHlwZTogSW5wdXRUeXBlO1xyXG4gIHZhbHVlO1xyXG4gIHNlYXJjaDtcclxuICBkZWZhdWx0O1xyXG4gIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgaW5FZGl0RGlzYWJsZWQgPSBmYWxzZTtcclxuICBpbkVkaXRWaXNpYmxlID0gdHJ1ZTtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIHdpdGhDbGVhciA9IGZhbHNlO1xyXG4gIG1pbkxlbmd0aCA9IC0xO1xyXG4gIG1heExlbmd0aCA9IC0xO1xyXG4gIGVycm9yOiBJbnB1dEVycm9yID0gbnVsbDtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgYnV0dG9uID0gbnVsbDtcclxuICBvbkNsaWNrQnV0dG9uOiAoKSA9PiB2b2lkID0gbnVsbDtcclxuICBwcm9ncmVzczogUHJvZ3Jlc3MgPSBudWxsO1xyXG4gIG9uQ2xpY2s6IChidG4pID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uS2V5VXA6IChpbnApID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uS2V5RG93bjogKGUpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9wdGlvbnM6IE9wdGlvbkNsYXNzW10gPSBbXTtcclxuICBtYXRjaDogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgcmVsOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICByZWxVcmw6IHN0cmluZyA9IG51bGw7XHJcbiAgdGFibGU6IFRhYmxlQ2xhc3M7XHJcbiAgc3R5bGUgPSB7fTtcclxuICBwb3NpdGlvbiA9ICdib3R0b20nO1xyXG4gIG9uQ2hhbmdlOiAodiwgZT8pID0+IHZvaWQgPSBudWxsO1xyXG4gIGhvdmVyID0gLTE7XHJcbiAgdmlzaWJsZSA9IHRydWU7XHJcbiAgZXhwb3J0UGRmID0gZmFsc2U7XHJcbiAgb3BlbiA9IGZhbHNlO1xyXG4gIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgb25seUNoaWxkID0gdHJ1ZTtcclxuICBhbGxvd2VkID0gbnVsbDtcclxuICByb3cgPSBudWxsO1xyXG4gIHJvd3MgPSBbXTtcclxuICBpbmRleCA9IDA7XHJcbiAgbGV2ZWwgPSBudWxsO1xyXG4gIG1vZGFsOiBNb2RhbENsYXNzID0gbnVsbDtcclxuICBuYW1lRnVuOiAocikgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Gb2N1c091dDogKGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBmb2N1cyhjaGFuZ2VJbmRleDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7fVxyXG4gIGNoYW5nZVR5cGU6ICh0OiBJbnB1dFR5cGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBzZXRWYWx1ZTogKHYsIGlzRWRpdCkgPT4gdm9pZCA9ICh2LCBpc0VkaXQpID0+IHsgdGhpcy52YWx1ZSA9IHY7IH07XHJcbiAgc2V0U2VhcmNoOiAodikgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIGNsZWFyOiAoKSA9PiB2b2lkID0gKCkgPT4geyB0aGlzLnZhbHVlID0gbnVsbDsgfTtcclxuICBmb2N1c091dDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIGRhdGE6ICgpID0+IGFueSA9ICgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlO1xyXG4gIH1cclxuICBpc1ZhbGlkOiAoKSA9PiBib29sZWFuID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGxvYWQodSA9IG51bGwsIGRvbmU6ICgpID0+IHZvaWQgPSBudWxsKTogdm9pZHtcclxuICAgIHUgPSB1ID8gdSA6IHRoaXMudXJsO1xyXG4gICAgaWYgKHUpe1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5ob3ZlciA9IC0xO1xyXG4gICAgICB0aGlzLmluZGV4ID0gMDtcclxuICAgICAgdGhpcy5yb3dzID0gW107XHJcbiAgICAgIGlmICh0eXBlb2YgdSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBpZiAoIXUuaW5jbHVkZXMoJ3t9Jykpe1xyXG4gICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwpLnNlbmQodSA/IHUgOiB0aGlzLnVybCwgTWV0aG9kLlBvc3QsIG51bGwsIHRoaXMsIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdFNlYXJjaCB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3QgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0pIHtcclxuICAgICAgICAgICAgICBjb25zdCByID0gdGhpcy5nZXRPcHRpb25zKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgcyA9IHJlc3VsdC5maW5kKHggPT4geC5TZWxlY3RlZCk7XHJcbiAgICAgICAgICAgICAgaWYgKHMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBzLklkLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9ucyhyKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IElucHV0VHlwZS5UcmVlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yb3dzID0gdGhpcy5nZXRSb3dzKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRvbmUpIHtcclxuICAgICAgICAgICAgICBkb25lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XHJcbiAgICAgICAgRW51bVV0aWxzLmdldEtleXNBbmRWYWx1ZXModSkuZm9yRWFjaCgoaykgPT4ge1xyXG4gICAgICAgICAgcmVzdWx0LnB1c2goe05hbWU6IHRoaXMubChrLmtleSksIElkOiBrLnZhbHVlLnRvU3RyaW5nKCl9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCByID0gdGhpcy5nZXRPcHRpb25zKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKHIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5KXtcclxuICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goeCA9PiB4LmluZGV4ID0gdGhpcy5pbmRleCsrKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0T3B0aW9ucyhyKTogdm9pZHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHI7XHJcbiAgICBpZiAodGhpcy52YWx1ZSAhPSBudWxsKXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB0cnVlKTtcclxuICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0T3B0aW9ucyhyLCBwLCB0cmVlID0gdHJ1ZSk6IE9wdGlvbkNsYXNzW117XHJcbiAgICByZXR1cm4gci5maWx0ZXIoeCA9PiAocCA9PSBudWxsICYmICF4LlBhcmVudElkKSB8fCB4LlBhcmVudElkID09PSBwIHx8ICF0cmVlKVxyXG4gICAgICAubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbyA9IG5ldyBPcHRpb25DbGFzcyh4Lk5hbWUsIHguSWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNIHx8IHRoaXMubmFtZSA9PT0gJ0NhcklkJyl7XHJcbiAgICAgICAgICBjb25zdCB0biA9IG8ubmFtZS5zcGxpdCgnXycpO1xyXG4gICAgICAgICAgaWYgKHRuLmxlbmd0aCA9PT0gNCl7XHJcbiAgICAgICAgICAgIHRuWzFdICs9ICcmbHJtOyc7XHJcbiAgICAgICAgICAgIHRuWzJdICs9ICcgfCc7XHJcbiAgICAgICAgICAgIG8ubmFtZSA9IHRuLmpvaW4oJyAnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodG4ubGVuZ3RoID09PSAyKXtcclxuICAgICAgICAgICAgby5uYW1lID0gdG4uam9pbignICcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBvLnNlYXJjaCA9IHguU2VhcmNoO1xyXG4gICAgICAgIG8ub3B0aW9uID0geDtcclxuICAgICAgICBvLmluZGV4ID0gdGhpcy5pbmRleCsrO1xyXG4gICAgICAgIG8ub3B0aW9ucyA9IHRyZWUgPyB0aGlzLmdldE9wdGlvbnMociwgeC5JZCkgOiBbXTtcclxuICAgICAgICByZXR1cm4gbztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGdldFJvd3MociwgcCk6IFRyZWVSb3dDbGFzc1tde1xyXG4gICAgY29uc3QgbCA9IFtdO1xyXG4gICAgci5maWx0ZXIoeCA9PiAocCA9PSBudWxsICYmICF4LlBhcmVudElkKSB8fCB4LlBhcmVudElkID09PSBwKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGxldCBjID0gdGhpcy5nZXRSb3dzKHIsIHguSWQpO1xyXG4gICAgICBjID0gYy5sZW5ndGggPiAwID8gYyA6IHguQ2hpbGRyZW4gPyB4LkNoaWxkcmVuLm1hcChhID0+IG5ldyBUcmVlUm93Q2xhc3MoYS5OYW1lLCBhLklkLCBhLlNlbGVjdGVkKSkgOiBbXTtcclxuICAgICAgbGV0IHMgPSB4LlNlbGVjdGVkID09PSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5vbmx5Q2hpbGQpe1xyXG4gICAgICAgIHMgPSBjLmxlbmd0aCA9PT0gMCA/IHguU2VsZWN0ZWQgOiAoYy5maW5kKHkgPT4geS5zZWxlY3RlZCA9PT0gZmFsc2UgfHwgeS5zZWxlY3RlZCA9PT0gbnVsbCkgPT0gbnVsbCA/IHRydWUgOlxyXG4gICAgICAgICAgKGMuZmluZCh5ID0+IHkuc2VsZWN0ZWQgPT09IHRydWUgfHwgeS5zZWxlY3RlZCA9PT0gbnVsbCkgIT0gbnVsbCA/IG51bGwgOiBmYWxzZSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG4gPSB0aGlzLm5hbWVGdW4gPyB0aGlzLm5hbWVGdW4oeCkgOiB4Lk5hbWU7XHJcbiAgICAgIGwucHVzaChuZXcgVHJlZVJvd0NsYXNzKG4sIHguSWQsIHMsIGMpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0TGFiZWwodGhpcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgT3B0aW9uQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgb3B0aW9uczogT3B0aW9uQ2xhc3NbXSA9IFtdLCBjbHM6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICB9XHJcbiAgb3B0aW9uO1xyXG4gIHNlYXJjaDogc3RyaW5nO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxuICBzaG93ID0gdHJ1ZTtcclxuICBzZWxlY3RlZCA9IGZhbHNlO1xyXG4gIHBhcmVudDogT3B0aW9uQ2xhc3MgPSBudWxsO1xyXG4gIG9wdGlvbnM6IE9wdGlvbkNsYXNzW107XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBEYXlDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IoZGF5OiBudW1iZXIsIHRvZGF5OiBib29sZWFuLCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kYXkgPSBkYXk7XHJcbiAgICB0aGlzLnRvZGF5ID0gdG9kYXk7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgfVxyXG4gIGRheTogbnVtYmVyO1xyXG4gIHRvZGF5OiBib29sZWFuO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBUcmVlUm93Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZSwgY2hpbGRyZW46IFRyZWVSb3dDbGFzc1tdID0gW10pIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgfVxyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIHBhcmVudDogVHJlZVJvd0NsYXNzO1xyXG4gIGNoaWxkcmVuOiBUcmVlUm93Q2xhc3NbXTtcclxuICB0b2dnbGUob25seUNoaWxkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpe1xyXG4gICAgICB0aGlzLnVuQ2hlY2sob25seUNoaWxkKTtcclxuICAgICAgaWYgKG9ubHlDaGlsZCl7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy51bkNoZWNrUGFyZW50KCk7IH0pO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jaGVjayhvbmx5Q2hpbGQpO1xyXG4gICAgICBpZiAob25seUNoaWxkKXtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLmNoZWNrUGFyZW50KCk7IH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrKG9ubHlDaGlsZDogYm9vbGVhbiwgYzogVHJlZVJvd0NsYXNzID0gdGhpcyk6IHZvaWQge1xyXG4gICAgYy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICBpZiAob25seUNoaWxkKSB7XHJcbiAgICAgIGMuY2hlY2tDaGlsZHJlbihvbmx5Q2hpbGQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrKG9ubHlDaGlsZDogYm9vbGVhbiwgYzogVHJlZVJvd0NsYXNzID0gdGhpcyk6IHZvaWQge1xyXG4gICAgYy5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9ubHlDaGlsZCkge1xyXG4gICAgICBjLmNoaWxkcmVuLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51bkNoZWNrKG9ubHlDaGlsZCwgY2gpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tDaGlsZHJlbihvbmx5Q2hpbGQ6IGJvb2xlYW4pOiB2b2lke1xyXG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrKG9ubHlDaGlsZCwgY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrUGFyZW50KHA6IFRyZWVSb3dDbGFzcyA9IHRoaXMucGFyZW50KTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAuY2hpbGRyZW4uZmlsdGVyKHggPT4gIXguc2VsZWN0ZWQpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5DaGVja1BhcmVudChwOiBUcmVlUm93Q2xhc3MgPSB0aGlzLnBhcmVudCk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLmNoaWxkcmVuLmZpbHRlcih4ID0+IHguc2VsZWN0ZWQgfHwgeC5zZWxlY3RlZCA9PSBudWxsKS5sZW5ndGggPiAwKXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudW5DaGVja1BhcmVudChwLnBhcmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGNsczogc3RyaW5nID0gJycsIHJvd3M6IEFjY29yZGlvblJvd0NsYXNzW10pIHtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICAgIHRoaXMucm93cyA9IHJvd3M7XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIHJvd3M6IEFjY29yZGlvblJvd0NsYXNzW107XHJcbiAgaGFzRGVsZXRlID0gZmFsc2U7XHJcbiAgZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIG9uRGVsZXRlOiAocm93KSA9PiB2b2lkID0gbnVsbDtcclxuICBjaGVjaygpOiBib29sZWFue1xyXG4gICAgZm9yIChjb25zdCByb3cgb2YgdGhpcy5yb3dzKXtcclxuICAgICAgaWYgKCFyb3cuZm9ybS5jaGVjaygpKXtcclxuICAgICAgICByb3cub3BlbigpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uUm93Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZm9ybTogRm9ybUNsYXNzID0gbnVsbCwgdGFibGU6IFRhYmxlQ2xhc3MgPSBudWxsKSB7XHJcbiAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcclxuICB9XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgc2hvdyA9IHRydWU7XHJcbiAgZm9ybTogRm9ybUNsYXNzO1xyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAkKCcjQWNjb3JkaW9uUm93JyArIHRoaXMuaWQgKyAnID4gLmhlYWRlcicpLmNsaWNrKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuICBvcGVuKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5jb250ZW50JykuaGFzQ2xhc3MoJ29wZW4nKSl7XHJcbiAgICAgICAgJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5oZWFkZXInKS5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxufVxyXG4iXX0=
433
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9mb3JtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQVksSUFBWTtRQUt4QixZQUFPLEdBQUcsR0FBRyxDQUFDO1FBRWQsVUFBSyxHQUFlLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQWUsSUFBSSxDQUFDO1FBQzNCLFdBQU0sR0FBbUMsSUFBSSxDQUFDO1FBQzlDLFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFFLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBQztvQkFDeEIsYUFBYSxDQUFDLElBQUksQ0FB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QUFDO1FBQzdELElBQUksQ0FBQyxDQUFDLEVBQUM7WUFDTCxPQUFPO1NBQ1I7UUFDRCxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbEMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsT0FBTyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsUUFBUSxHQUFHLElBQUk7UUFDcEUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7WUFDbEUsT0FBTztTQUNSO1FBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFDN0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLE1B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UUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksS0FBSyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksS0FBSyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUF3REQsS0FBSyxDQUFDLGNBQXVCLEtBQUssSUFBUyxDQUFDO0lBWTVDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLE9BQW1CLElBQUk7UUFDcEMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFDO1lBQ0osSUFBSSxDQUFD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QUFDLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDckQ7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VudW1VdGlscywgSW5wdXRFcnJvciwgSW5wdXRUeXBlLCBNZXRob2R9IGZyb20gJy4vZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4vaGVscGVyLmNsYXNzJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4vcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7VGFibGVDbGFzc30gZnJvbSAnLi90YWJsZS5jbGFzcyc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHtNb2RhbENsYXNzfSBmcm9tICcuL21vZGFsLmNsYXNzJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFByb2dyZXNzIHtcclxuICBjb25zdHJ1Y3RvcihzZWNzOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2VjcyA9IHRoaXMucmVtYWluU2VjcyA9IHNlY3M7XHJcbiAgfVxyXG4gIHNlY3M6IG51bWJlcjtcclxuICByZW1haW5TZWNzOiBudW1iZXI7XHJcbiAgcGVyY2VudCA9IDEwMDtcclxuICBpbnRlclZhbDtcclxuICBvbkVuZDogKCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25TdGFydDogKCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25UaWNrOiAobTogbnVtYmVyLCBzOiBudW1iZXIpID0+IHZvaWQgPSBudWxsO1xyXG4gIHN0YXJ0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yZW1haW5TZWNzID0gdGhpcy5zZWNzO1xyXG4gICAgdGhpcy5wZXJjZW50ID0gMTAwO1xyXG4gICAgaWYgKHRoaXMub25TdGFydCl7XHJcbiAgICAgIHRoaXMub25TdGFydCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnRlclZhbCA9IHNldEludGVydmFsKCAoKSA9PiB7XHJcbiAgICAgIHRoaXMucGVyY2VudCA9ICh0aGlzLnJlbWFpblNlY3MgLyB0aGlzLnNlY3MpICogMTAwO1xyXG4gICAgICBpZiAodGhpcy5yZW1haW5TZWNzID09PSAwKXtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJWYWwpO1xyXG4gICAgICAgIGlmICh0aGlzLm9uRW5kKXtcclxuICAgICAgICAgIHRoaXMub25FbmQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKHRoaXMucmVtYWluU2Vjcykpe1xyXG4gICAgICAgIGNvbnN0IG0gPSBNYXRoLmZsb29yKHRoaXMucmVtYWluU2VjcyAvIDYwKTtcclxuICAgICAgICBjb25zdCBzID0gdGhpcy5yZW1haW5TZWNzICUgNjA7XHJcbiAgICAgICAgdGhpcy5vblRpY2sobSwgcyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZW1haW5TZWNzIC09IDAuNTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBGb3JtQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGVudmlyb25tZW50OiBhbnksIGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcgPSBudWxsLCBwZXJtaXNzaW9uOiBib29sZWFuID0gdHJ1ZSxcclxuICAgICAgICAgICAgICB1cmw6IHN0cmluZyA9IG51bGwsIGNsczogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xyXG4gICAgdGhpcy5sID0gbDtcclxuICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgdGhpcy5iYXNlVXJsID0gdXJsO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICAgIHRoaXMucGVybWlzc2lvbiA9IHBlcm1pc3Npb247XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5pZCA9IHRoaXMubmFtZTtcclxuICB9XHJcbiAgbDogKGssIHY/KSA9PiBzdHJpbmc7XHJcbiAgcGVybWlzc2lvbjogYm9vbGVhbjtcclxuICBlbnZpcm9ubWVudDogYW55ID0gbnVsbDtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgc3ViTmFtZTogc3RyaW5nID0gbnVsbDtcclxuICBpZDogc3RyaW5nO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgYmFzZVVybDogc3RyaW5nO1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIG1ldGhvZDogTWV0aG9kID0gTWV0aG9kLlBvc3Q7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHN0eWxlOiB7fTtcclxuICBvblRvcCA9IGZhbHNlO1xyXG4gIGRpc3BsYXlMYWJlbCA9IHRydWU7XHJcbiAgaW5wdXRzOiBJbnB1dENsYXNzW10gPSBbXTtcclxuICBvblN1Y2Nlc3NCYXNlOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvblN1Y2Nlc3M6IChyZXN1bHQpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uRmFpbGVkOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkxvYWQ6IChyZXN1bHQpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uQmVmb3JlU3VibWl0OiAoKSA9PiBib29sZWFuID0gbnVsbDtcclxuICBvbkhpZGVNb2RhbDogKCkgPT4gdm9pZCA9IG51bGw7XHJcblxyXG4gIGxvYWREYXRhKHVybCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sKS5zZW5kKHVybCwgTWV0aG9kLlBvc3QsIG51bGwsIG51bGwsIChyZXN1bHQpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMub25Mb2FkKXtcclxuICAgICAgICAgIHRoaXMub25Mb2FkKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCA1MDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN1Ym1pdChvblN1Ym1pdCA9IG51bGwpOiB2b2lkIHtcclxuICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sKS5wb3N0Rm9ybSh0aGlzLCBvblN1Ym1pdCk7XHJcbiAgfVxyXG4gIGNoZWNrKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgaWYgKCFpbnAuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgaWYgKHZhbGlkKXtcclxuICAgICAgICAgIGlucC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YWxpZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1ldGhvZCA9IE1ldGhvZC5Qb3N0O1xyXG4gICAgdGhpcy51cmwgPSB0aGlzLmJhc2VVcmw7XHJcbiAgICB0aGlzLnNldEJ1dHRvbnModGhpcy5vblRvcCwgZmFsc2UpO1xyXG4gICAgdGhpcy5jbGVhcklucHV0cygpO1xyXG4gIH1cclxuICBjbGVhcklucHV0cygpOiB2b2lke1xyXG4gICAgdGhpcy5pbnB1dHMuZmlsdGVyKHggPT4geC50eXBlICE9PSBJbnB1dFR5cGUuQ29uc3RhbnQpLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgaW5wLmNsZWFyKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0QnV0dG9ucyhmb3JtT25Ub3AsIGVkaXQ6IGJvb2xlYW4sIGlkID0gbnVsbCk6IHZvaWQge1xyXG4gICAgY29uc3QgcyA9IHRoaXMuaW5wdXRzLmZpbmQoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpO1xyXG4gICAgaWYgKCFzKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcy5uYW1lID0gZWRpdCA/ICdBY2NlcHQnIDogJ1NhdmUnO1xyXG4gICAgcy5jbGFzcyA9IGVkaXQgPyBzLmNsYXNzLnJlcGxhY2UoJ2dyZWVuJywgJ2JsdWUnKSA6IHMuY2xhc3MucmVwbGFjZSgnYmx1ZScsICdncmVlbicpO1xyXG4gIH1cclxuICBhZGRCdXR0b25zKG5hbWUgPSAnU2F2ZScsIGNscyA9ICdncmVlbicsIGNsZWFyID0gdHJ1ZSwgb25TdWJtaXQgPSBudWxsKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbnB1dHMuZmlsdGVyKHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KS5sZW5ndGggPiAwKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYnIgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG51bGwsIG51bGwsIElucHV0VHlwZS5MYWJlbCxcclxuICAgICAgKHRoaXMub25Ub3AgPyAnc3BhY2UnIDogJ3VuZGVybGluZScpICsgKG9uU3VibWl0ID09PSBudWxsID8gJycgOiAnIG0tdi01JykpO1xyXG4gICAgY29uc3Qgc2F2ZSA9IG5ldyBJbnB1dENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCwgbmFtZSwgJ2ZhLWR1b3RvbmUgZmEtY2hlY2snLCBJbnB1dFR5cGUuU3VibWl0LFxyXG4gICAgICAndy0xMTAwLTQwIHctNTAwLTUwIHctNDAwLTYwIHctNzAgZi1sIHNhdmUtZm9ybS1idG4gJyArIGNscyArIChvblN1Ym1pdCA9PT0gbnVsbCA/ICcgaC0zMCcgOiAnIGgtMjUnKSk7XHJcbiAgICBzYXZlLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3VibWl0KG9uU3VibWl0KTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucHV0cy5wdXNoKGJyKTtcclxuICAgIHRoaXMuaW5wdXRzLnB1c2goc2F2ZSk7XHJcbiAgICBpZiAoY2xlYXIpe1xyXG4gICAgICBjb25zdCBlcmFzZSA9IG5ldyBJbnB1dENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCwgbnVsbCwgJ2ZhLWR1b3RvbmUgZmEtZXJhc2VyJywgSW5wdXRUeXBlLkJ1dHRvbixcclxuICAgICAgICAnZi1sIHctdSBncmV5IGVyYXNlLWZvcm0tYnRuJyArIChvblN1Ym1pdCA9PT0gbnVsbCA/ICcgaC0zMCcgOiAnIGgtMjUnKSk7XHJcbiAgICAgIGVyYXNlLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub25Ub3Ape1xyXG4gICAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5jbGVhcklucHV0cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbnB1dHMucHVzaChlcmFzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRhdGEoZCA9IG51bGwpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRzLmZpbmRJbmRleCh4ID0+IHgudHlwZSA9PT0gSW5wdXRUeXBlLkZpbGUpID09PSAtMSl7XHJcbiAgICAgIGlmIChkID09IG51bGwpe1xyXG4gICAgICAgIGQgPSB7fTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmwgPSBpbnAuZGF0YSgpO1xyXG4gICAgICAgIGlmICh2bCAhPT0gbnVsbCl7XHJcbiAgICAgICAgICBfLnNldChkLCBpbnAubmFtZSwgdmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYgKGQgPT0gbnVsbCl7XHJcbiAgICAgICAgZCA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgICBjb25zdCB2bCA9IGlucC5kYXRhKCk7XHJcbiAgICAgICAgaWYgKHZsICE9PSBudWxsKXtcclxuICAgICAgICAgIGlmICh2bCBpbnN0YW5jZW9mIEFycmF5KXtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZsKXtcclxuICAgICAgICAgICAgICBkLmFwcGVuZChpbnAubmFtZSwgdik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBkLmFwcGVuZChpbnAubmFtZSwgdmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcbiAganNvbihkID0gbnVsbCk6IHt9IHtcclxuICAgIGlmIChkID09IG51bGwpe1xyXG4gICAgICBkID0ge307XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGNvbnN0IHZsID0gaW5wLmRhdGEoKTtcclxuICAgICAgaWYgKHZsICE9PSBudWxsICYmIHZsICE9PSAnJyl7XHJcbiAgICAgICAgaWYgKHZsIGluc3RhbmNlb2YgQXJyYXkpe1xyXG4gICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZsKXtcclxuICAgICAgICAgICAgZFtpbnAubmFtZV0gPSB2O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZFtpbnAubmFtZV0gPSB2bDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG4gIHNldERhdGEoZCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICBjb25zdCBpdiA9IF8uZ2V0KGQsIGlucC5uYW1lKTtcclxuICAgICAgaWYgKGlucC50eXBlID09PSBJbnB1dFR5cGUuQ2FyU2VhcmNoKXtcclxuICAgICAgICBjb25zdCBpdnMgPSBfLmdldChkLCBpbnAubmFtZS5yZXBsYWNlKCdJZCcsICcnKSk7XHJcbiAgICAgICAgaW5wLnNldFZhbHVlKHtTZWFyY2g6IGl2cywgVmFsdWU6IGl2fSwgdHJ1ZSk7XHJcbiAgICAgIH1lbHNlIGlmIChpbnAudHlwZSAhPT0gSW5wdXRUeXBlLkxhYmVsIHx8IGl2ICE9IG51bGwpe1xyXG4gICAgICAgIGlucC5zZXRWYWx1ZShpdiwgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlIHx8IGlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKXtcclxuICAgICAgICBjb25zdCBpdnMgPSBfLmdldChkLCBpbnAubmFtZS5yZXBsYWNlKCdJZCcsICcnKSk7XHJcbiAgICAgICAgaW5wLnNldFNlYXJjaChpdnMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBJbnB1dENsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogYW55LCBsOiAoaywgdj8pID0+IHN0cmluZywgbmFtZTogc3RyaW5nLCBpY29uOiBzdHJpbmcgPSBudWxsLFxyXG4gICAgICAgICAgICAgIHR5cGU6IElucHV0VHlwZSA9IElucHV0VHlwZS5UZXh0LCBjbHM6IHN0cmluZyA9ICcnLCB2YWx1ZSA9IG51bGwsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGJvb2xlYW4gPSB0cnVlLCBtaW5MZW5ndGggPSAtMSwgbWF4TGVuZ3RoID0gLTEpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5sb2FkaW5nTmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gbmFtZTtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzICsgKFtJbnB1dFR5cGUuTW9iaWxlLCBJbnB1dFR5cGUuUGhvbmUsIElucHV0VHlwZS5QYXNzd29yZCwgSW5wdXRUeXBlLkVtYWlsLCBJbnB1dFR5cGUuTnVtYmVyLCBJbnB1dFR5cGUuUHJpY2UsXHJcbiAgICAgIElucHV0VHlwZS5OYXRpb25hbENvZGUsIElucHV0VHlwZS5TaGViYSwgSW5wdXRUeXBlLlBvc3RhbENvZGUsIElucHV0VHlwZS5EYXRlLCBJbnB1dFR5cGUuVGltZV0uaW5jbHVkZXModHlwZSkgPyAnIGx0cicgOiAnJyk7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5kZWZhdWx0ID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IF8uY2xvbmVEZWVwKHZhbHVlKSA6IEhlbHBlckNsYXNzLmNsb25lKHZhbHVlKTtcclxuICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgIHRoaXMubWluTGVuZ3RoID0gdHlwZSA9PT0gSW5wdXRUeXBlLk1vYmlsZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUGhvbmUgPyAxMSA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbENvZGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBvc3RhbENvZGUgPyAxMCA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5TaGViYSA/IDI0IDogbWluTGVuZ3RoO1xyXG4gICAgdGhpcy5tYXhMZW5ndGggPSB0eXBlID09PSBJbnB1dFR5cGUuTW9iaWxlIHx8IHR5cGUgPT09IElucHV0VHlwZS5QaG9uZSA/IDExIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLk5hdGlvbmFsQ29kZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUG9zdGFsQ29kZSA/IDEwIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLlNoZWJhID8gMjQgOiBtYXhMZW5ndGg7XHJcbiAgfVxyXG4gIGVudmlyb25tZW50OiBhbnkgPSBudWxsO1xyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1cmwgPSBudWxsO1xyXG4gIHVybE5ld1RhYiA9IGZhbHNlO1xyXG4gIGxvYWRpbmdOYW1lOiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICB0b29sdGlwOiBzdHJpbmc7XHJcbiAgaWQ6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgYWRkTmV3ID0gZmFsc2U7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICB0eXBlOiBJbnB1dFR5cGU7XHJcbiAgdmFsdWU7XHJcbiAgc2VhcmNoO1xyXG4gIGRlZmF1bHQ7XHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBpbkVkaXREaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGluRWRpdFZpc2libGUgPSB0cnVlO1xyXG4gIGRpc3BsYXlMYWJlbCA9IHRydWU7XHJcbiAgd2l0aENsZWFyID0gZmFsc2U7XHJcbiAgbWluTGVuZ3RoID0gLTE7XHJcbiAgbWF4TGVuZ3RoID0gLTE7XHJcbiAgZXJyb3I6IElucHV0RXJyb3IgPSBudWxsO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBidXR0b24gPSBudWxsO1xyXG4gIG9uQ2xpY2tCdXR0b246ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIHByb2dyZXNzOiBQcm9ncmVzcyA9IG51bGw7XHJcbiAgb25DbGljazogKGJ0bikgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25LZXlVcDogKGlucCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25LZXlEb3duOiAoZSkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb3B0aW9uczogT3B0aW9uQ2xhc3NbXSA9IFtdO1xyXG4gIG1hdGNoOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICByZWw6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIHJlbFVybDogc3RyaW5nID0gbnVsbDtcclxuICB0YWJsZTogVGFibGVDbGFzcztcclxuICBzdHlsZSA9IHt9O1xyXG4gIHBvc2l0aW9uID0gJ2JvdHRvbSc7XHJcbiAgb25DaGFuZ2U6ICh2LCBlPykgPT4gdm9pZCA9IG51bGw7XHJcbiAgaG92ZXIgPSAtMTtcclxuICB2aXNpYmxlID0gdHJ1ZTtcclxuICBleHBvcnRQZGYgPSBmYWxzZTtcclxuICBvcGVuID0gZmFsc2U7XHJcbiAgbXVsdGlwbGUgPSBmYWxzZTtcclxuICBvbmx5Q2hpbGQgPSB0cnVlO1xyXG4gIGFsbG93ZWQgPSBudWxsO1xyXG4gIHJvdyA9IG51bGw7XHJcbiAgcm93cyA9IFtdO1xyXG4gIGluZGV4ID0gMDtcclxuICBsZXZlbCA9IG51bGw7XHJcbiAgbW9kYWw6IE1vZGFsQ2xhc3MgPSBudWxsO1xyXG4gIG5hbWVGdW46IChyKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZvY3VzT3V0OiAoZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIGZvY3VzKGNoYW5nZUluZGV4OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHt9XHJcbiAgY2hhbmdlVHlwZTogKHQ6IElucHV0VHlwZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHNldFZhbHVlOiAodiwgaXNFZGl0KSA9PiB2b2lkID0gKHYsIGlzRWRpdCkgPT4geyB0aGlzLnZhbHVlID0gdjsgfTtcclxuICBzZXRTZWFyY2g6ICh2KSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgY2xlYXI6ICgpID0+IHZvaWQgPSAoKSA9PiB7IHRoaXMudmFsdWUgPSBudWxsOyB9O1xyXG4gIGZvY3VzT3V0OiAoKSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgZGF0YTogKCkgPT4gYW55ID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgfVxyXG4gIGlzVmFsaWQ6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgbG9hZCh1ID0gbnVsbCwgZG9uZTogKCkgPT4gdm9pZCA9IG51bGwpOiB2b2lke1xyXG4gICAgdSA9IHUgPyB1IDogdGhpcy51cmw7XHJcbiAgICBpZiAodSl7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xyXG4gICAgICB0aGlzLmhvdmVyID0gLTE7XHJcbiAgICAgIHRoaXMuaW5kZXggPSAwO1xyXG4gICAgICB0aGlzLnJvd3MgPSBbXTtcclxuICAgICAgaWYgKHR5cGVvZiB1ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGlmICghdS5pbmNsdWRlcygne30nKSl7XHJcbiAgICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkuc2VuZCh1ID8gdSA6IHRoaXMudXJsLCBNZXRob2QuUG9zdCwgbnVsbCwgdGhpcywgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdCB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUgfHxcclxuICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHIgPSB0aGlzLmdldE9wdGlvbnMocmVzdWx0LCBudWxsKTtcclxuICAgICAgICAgICAgICBjb25zdCBzID0gcmVzdWx0LmZpbmQoeCA9PiB4LlNlbGVjdGVkKTtcclxuICAgICAgICAgICAgICBpZiAocykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHMuSWQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25zKHIpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlRyZWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJvd3MgPSB0aGlzLmdldFJvd3MocmVzdWx0LCBudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZG9uZSkge1xyXG4gICAgICAgICAgICAgIGRvbmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgICBFbnVtVXRpbHMuZ2V0S2V5c0FuZFZhbHVlcyh1KS5mb3JFYWNoKChrKSA9PiB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaCh7TmFtZTogdGhpcy5sKGsua2V5KSwgSWQ6IGsudmFsdWUudG9TdHJpbmcoKX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmdldE9wdGlvbnMocmVzdWx0LCBudWxsKTtcclxuICAgICAgICB0aGlzLnNldE9wdGlvbnMocik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpe1xyXG4gICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCh4ID0+IHguaW5kZXggPSB0aGlzLmluZGV4KyspO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRPcHRpb25zKHIpOiB2b2lke1xyXG4gICAgdGhpcy5vcHRpb25zID0gcjtcclxuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwpe1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMudmFsdWUsIHRydWUpO1xyXG4gICAgICB9LCA1MDApO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRPcHRpb25zKHIsIHAsIHRyZWUgPSB0cnVlKTogT3B0aW9uQ2xhc3NbXXtcclxuICAgIHJldHVybiByLmZpbHRlcih4ID0+IChwID09IG51bGwgJiYgIXguUGFyZW50SWQpIHx8IHguUGFyZW50SWQgPT09IHAgfHwgIXRyZWUpXHJcbiAgICAgIC5tYXAoKHgpID0+IHtcclxuICAgICAgICBjb25zdCBvID0gbmV3IE9wdGlvbkNsYXNzKHguTmFtZSwgeC5JZC50b1N0cmluZygpKTtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0gfHwgdGhpcy5uYW1lID09PSAnQ2FySWQnKXtcclxuICAgICAgICAgIGNvbnN0IHRuID0gby5uYW1lLnNwbGl0KCdfJyk7XHJcbiAgICAgICAgICBpZiAodG4ubGVuZ3RoID09PSA0KXtcclxuICAgICAgICAgICAgdG5bMV0gKz0gJyZscm07JztcclxuICAgICAgICAgICAgdG5bMl0gKz0gJyB8JztcclxuICAgICAgICAgICAgby5uYW1lID0gdG4uam9pbignICcpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0bi5sZW5ndGggPT09IDIpe1xyXG4gICAgICAgICAgICBvLm5hbWUgPSB0bi5qb2luKCcgJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG8uc2VhcmNoID0geC5TZWFyY2g7XHJcbiAgICAgICAgby5vcHRpb24gPSB4O1xyXG4gICAgICAgIG8uaW5kZXggPSB0aGlzLmluZGV4Kys7XHJcbiAgICAgICAgby5vcHRpb25zID0gdHJlZSA/IHRoaXMuZ2V0T3B0aW9ucyhyLCB4LklkKSA6IFtdO1xyXG4gICAgICAgIHJldHVybiBvO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0Um93cyhyLCBwKTogVHJlZVJvd0NsYXNzW117XHJcbiAgICBjb25zdCBsID0gW107XHJcbiAgICByLmZpbHRlcih4ID0+IChwID09IG51bGwgJiYgIXguUGFyZW50SWQpIHx8IHguUGFyZW50SWQgPT09IHApLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgbGV0IGMgPSB0aGlzLmdldFJvd3MociwgeC5JZCk7XHJcbiAgICAgIGMgPSBjLmxlbmd0aCA+IDAgPyBjIDogeC5DaGlsZHJlbiA/IHguQ2hpbGRyZW4ubWFwKGEgPT4gbmV3IFRyZWVSb3dDbGFzcyhhLk5hbWUsIGEuSWQsIGEuU2VsZWN0ZWQpKSA6IFtdO1xyXG4gICAgICBsZXQgcyA9IHguU2VsZWN0ZWQgPT09IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgcyA9IGMubGVuZ3RoID09PSAwID8geC5TZWxlY3RlZCA6IChjLmZpbmQoeSA9PiB5LnNlbGVjdGVkID09PSBmYWxzZSB8fCB5LnNlbGVjdGVkID09PSBudWxsKSA9PSBudWxsID8gdHJ1ZSA6XHJcbiAgICAgICAgICAoYy5maW5kKHkgPT4geS5zZWxlY3RlZCA9PT0gdHJ1ZSB8fCB5LnNlbGVjdGVkID09PSBudWxsKSAhPSBudWxsID8gbnVsbCA6IGZhbHNlKSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbiA9IHRoaXMubmFtZUZ1biA/IHRoaXMubmFtZUZ1bih4KSA6IHguTmFtZTtcclxuICAgICAgbC5wdXNoKG5ldyBUcmVlUm93Q2xhc3MobiwgeC5JZCwgcywgYykpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbDtcclxuICB9XHJcbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXRMYWJlbCh0aGlzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPcHRpb25DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25DbGFzc1tdID0gW10sIGNsczogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzO1xyXG4gIH1cclxuICBvcHRpb247XHJcbiAgc2VhcmNoOiBzdHJpbmc7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBpbmRleDogbnVtYmVyO1xyXG4gIHNob3cgPSB0cnVlO1xyXG4gIHNlbGVjdGVkID0gZmFsc2U7XHJcbiAgcGFyZW50OiBPcHRpb25DbGFzcyA9IG51bGw7XHJcbiAgb3B0aW9uczogT3B0aW9uQ2xhc3NbXTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbn1cclxuZXhwb3J0IGNsYXNzIERheUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihkYXk6IG51bWJlciwgdG9kYXk6IGJvb2xlYW4sIHNlbGVjdGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRheSA9IGRheTtcclxuICAgIHRoaXMudG9kYXkgPSB0b2RheTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICB9XHJcbiAgZGF5OiBudW1iZXI7XHJcbiAgdG9kYXk6IGJvb2xlYW47XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIFRyZWVSb3dDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlLCBjaGlsZHJlbjogVHJlZVJvd0NsYXNzW10gPSBbXSkge1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcclxuICB9XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgcGFyZW50OiBUcmVlUm93Q2xhc3M7XHJcbiAgY2hpbGRyZW46IFRyZWVSb3dDbGFzc1tdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGNsczogc3RyaW5nID0gJycsIHJvd3M6IEFjY29yZGlvblJvd0NsYXNzW10pIHtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICAgIHRoaXMucm93cyA9IHJvd3M7XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIHJvd3M6IEFjY29yZGlvblJvd0NsYXNzW107XHJcbiAgaGFzRGVsZXRlID0gZmFsc2U7XHJcbiAgZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIG9uRGVsZXRlOiAocm93KSA9PiB2b2lkID0gbnVsbDtcclxuICBjaGVjaygpOiBib29sZWFue1xyXG4gICAgZm9yIChjb25zdCByb3cgb2YgdGhpcy5yb3dzKXtcclxuICAgICAgaWYgKCFyb3cuZm9ybS5jaGVjaygpKXtcclxuICAgICAgICByb3cub3BlbigpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uUm93Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZm9ybTogRm9ybUNsYXNzID0gbnVsbCwgdGFibGU6IFRhYmxlQ2xhc3MgPSBudWxsKSB7XHJcbiAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcclxuICB9XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgc2hvdyA9IHRydWU7XHJcbiAgZm9ybTogRm9ybUNsYXNzO1xyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAkKCcjQWNjb3JkaW9uUm93JyArIHRoaXMuaWQgKyAnID4gLmhlYWRlcicpLmNsaWNrKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuICBvcGVuKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5jb250ZW50JykuaGFzQ2xhc3MoJ29wZW4nKSl7XHJcbiAgICAgICAgJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5oZWFkZXInKS5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -37,7 +37,7 @@ export class FormComponent {
37
37
  FormComponent.decorators = [
38
38
  { type: Component, args: [{
39
39
  selector: 'lib-form',
40
- template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\">{{this.form.l(this.form.subName)}}</div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Tree\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
40
+ template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\">{{this.form.l(this.form.subName)}}</div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
41
41
  styles: [".form{border-radius:var(--border-radius-base);float:right;padding:20px;position:relative;width:100%}.form>.title{font-family:VazirBold;font-size:16px;height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-light);font-family:VazirLight;font-size:12px;height:30px}.form .loading{background-color:#fff;border-radius:var(--border-radius-base);height:100%;right:0;top:0;z-index:4}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-family:VazirBold;height:35px;line-height:35px;top:calc(50% - 20px)}::ng-deep .form .loading .icon{font-size:20px!important;line-height:30px;margin-left:5px;position:relative;top:5px}.form-buttons,.form-error{float:right;width:100%}.form-error{color:var(--red-light);font-size:11px;height:15px;line-height:8px;margin-top:10px;padding:0 10px;position:relative;text-align:center}.form-error .message{float:left;width:calc(100% - 40px)}.form-error .icon{float:right;height:20px;line-height:6px;right:0;top:0;width:40px}.form .inputs{margin:0 -15px}"]
42
42
  },] }
43
43
  ];
@@ -45,4 +45,4 @@ FormComponent.ctorParameters = () => [];
45
45
  FormComponent.propDecorators = {
46
46
  form: [{ type: Input }]
47
47
  };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9pbmRleC9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFPdEQsTUFBTSxPQUFPLGFBQWE7SUFJeEI7SUFDQSxDQUFDO0lBRkQsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUdsRCxRQUFRO0lBQ1IsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUN2QixNQUFNLENBQUMsR0FBRyxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNO1lBQzdELENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0csSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUUsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUM7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLE9BQU87YUFDUjtTQUNGO1FBQ0QsSUFBSSxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU87ZUFDcEgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBQztZQUN4RyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNqQjtRQUNELElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFDO1lBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQUk7WUFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQzs7O1lBdkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsKzBJQUFvQzs7YUFFckM7Ozs7bUJBRUUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgZm9ybTogRm9ybUNsYXNzO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZHtcclxuICB9XHJcbiAgY2hhbmdlSW5kZXgoaW5kZXgsIGFjdGlvbik6IHZvaWR7XHJcbiAgICBjb25zdCBuID0gYWN0aW9uID09PSAnU2hpZnRUYWInIHx8IGFjdGlvbiA9PT0gJ1NoaWZ0RW50ZXInID8gLTEgOiAxO1xyXG4gICAgY29uc3QgbGFzdElucCA9IHRoaXMuZm9ybS5pbnB1dHMubWFwKFxyXG4gICAgICB4ID0+IHgudHlwZSAhPT0gSW5wdXRUeXBlLlN1Ym1pdCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5CdXR0b24gJiZcclxuICAgICAgICB4LnR5cGUgIT09IElucHV0VHlwZS5MYWJlbCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5IaWRkZW4gJiYgIXguZGlzYWJsZWQgJiYgeC52aXNpYmxlKS5sYXN0SW5kZXhPZih0cnVlKTtcclxuICAgIGlmIChpbmRleCA9PT0gbGFzdElucCAmJiBhY3Rpb24gPT09ICdFbnRlcicpIHtcclxuICAgICAgY29uc3Qgc3VibWl0ID0gdGhpcy5mb3JtLmlucHV0cy5maW5kSW5kZXgoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpO1xyXG4gICAgICBpZiAoc3VibWl0ICE9PSAtMSl7XHJcbiAgICAgICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG5leHQgPSBpbmRleCArIG47XHJcbiAgICB3aGlsZSAobmV4dCA+PSAwICYmIG5leHQgPCB0aGlzLmZvcm0uaW5wdXRzLmxlbmd0aCAmJiAodGhpcy5mb3JtLmlucHV0c1tuZXh0XS5kaXNhYmxlZCB8fCAhdGhpcy5mb3JtLmlucHV0c1tuZXh0XS52aXNpYmxlXHJcbiAgICAgIHx8IHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0udHlwZSA9PT0gSW5wdXRUeXBlLkxhYmVsIHx8IHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0udHlwZSA9PT0gSW5wdXRUeXBlLkhpZGRlbikpe1xyXG4gICAgICBuZXh0ID0gbmV4dCArIG47XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dCA+PSAwICYmIG5leHQgPCB0aGlzLmZvcm0uaW5wdXRzLmxlbmd0aCl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0uZm9jdXModHJ1ZSk7XHJcbiAgICAgIH0sIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybS5pbnB1dHNbaW5kZXhdLmZvY3VzT3V0KCk7XHJcbiAgICAgIH0sIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9pbmRleC9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFPdEQsTUFBTSxPQUFPLGFBQWE7SUFJeEI7SUFDQSxDQUFDO0lBRkQsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUdsRCxRQUFRO0lBQ1IsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUN2QixNQUFNLENBQUMsR0FBRyxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNO1lBQzdELENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0csSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUUsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUM7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLE9BQU87YUFDUjtTQUNGO1FBQ0QsSUFBSSxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU87ZUFDcEgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBQztZQUN4RyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNqQjtRQUNELElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFDO1lBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQUk7WUFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQzs7O1lBdkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsKzJJQUFvQzs7YUFFckM7Ozs7bUJBRUUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgZm9ybTogRm9ybUNsYXNzO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZHtcclxuICB9XHJcbiAgY2hhbmdlSW5kZXgoaW5kZXgsIGFjdGlvbik6IHZvaWR7XHJcbiAgICBjb25zdCBuID0gYWN0aW9uID09PSAnU2hpZnRUYWInIHx8IGFjdGlvbiA9PT0gJ1NoaWZ0RW50ZXInID8gLTEgOiAxO1xyXG4gICAgY29uc3QgbGFzdElucCA9IHRoaXMuZm9ybS5pbnB1dHMubWFwKFxyXG4gICAgICB4ID0+IHgudHlwZSAhPT0gSW5wdXRUeXBlLlN1Ym1pdCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5CdXR0b24gJiZcclxuICAgICAgICB4LnR5cGUgIT09IElucHV0VHlwZS5MYWJlbCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5IaWRkZW4gJiYgIXguZGlzYWJsZWQgJiYgeC52aXNpYmxlKS5sYXN0SW5kZXhPZih0cnVlKTtcclxuICAgIGlmIChpbmRleCA9PT0gbGFzdElucCAmJiBhY3Rpb24gPT09ICdFbnRlcicpIHtcclxuICAgICAgY29uc3Qgc3VibWl0ID0gdGhpcy5mb3JtLmlucHV0cy5maW5kSW5kZXgoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpO1xyXG4gICAgICBpZiAoc3VibWl0ICE9PSAtMSl7XHJcbiAgICAgICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG5leHQgPSBpbmRleCArIG47XHJcbiAgICB3aGlsZSAobmV4dCA+PSAwICYmIG5leHQgPCB0aGlzLmZvcm0uaW5wdXRzLmxlbmd0aCAmJiAodGhpcy5mb3JtLmlucHV0c1tuZXh0XS5kaXNhYmxlZCB8fCAhdGhpcy5mb3JtLmlucHV0c1tuZXh0XS52aXNpYmxlXHJcbiAgICAgIHx8IHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0udHlwZSA9PT0gSW5wdXRUeXBlLkxhYmVsIHx8IHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0udHlwZSA9PT0gSW5wdXRUeXBlLkhpZGRlbikpe1xyXG4gICAgICBuZXh0ID0gbmV4dCArIG47XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dCA+PSAwICYmIG5leHQgPCB0aGlzLmZvcm0uaW5wdXRzLmxlbmd0aCl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0uZm9jdXModHJ1ZSk7XHJcbiAgICAgIH0sIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybS5pbnB1dHNbaW5kZXhdLmZvY3VzT3V0KCk7XHJcbiAgICAgIH0sIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as $ from 'jquery';
3
- import { InputError } from '../../../classes/enum.class';
3
+ import { InputError, InputType } from '../../../classes/enum.class';
4
4
  export class FormTreeComponent {
5
5
  constructor() {
6
6
  this.changeIndex = new EventEmitter();
@@ -22,7 +22,7 @@ export class FormTreeComponent {
22
22
  return this.getSelected();
23
23
  };
24
24
  this.inp.setValue = (v) => {
25
- this.check(v.map(String));
25
+ this.setValue(v.map(String));
26
26
  };
27
27
  this.inp.clear = () => {
28
28
  this.inp.setValue([], false);
@@ -59,36 +59,84 @@ export class FormTreeComponent {
59
59
  });
60
60
  return l;
61
61
  }
62
- check(ids, chs = this.inp.rows) {
63
- let isChecked = false;
64
- let cIsChecked = false;
65
- for (const r of chs) {
62
+ setValue(ids, rows = this.inp.rows) {
63
+ for (const r of rows) {
66
64
  r.selected = ids.includes(r.value);
67
- if (r.selected) {
68
- isChecked = true;
69
- }
70
65
  if (this.inp.onlyChild) {
71
- cIsChecked = this.check(ids, r.children);
72
- if (cIsChecked) {
73
- r.selected = r.children.filter(x => !x.selected).length > 0 ? null : true;
66
+ if (r.selected) {
67
+ this.checkParent(r.parent);
74
68
  }
69
+ this.setValue(ids, r.children);
70
+ }
71
+ }
72
+ return true;
73
+ }
74
+ toggle(row) {
75
+ if (row.selected) {
76
+ this.unCheck(row);
77
+ if (this.inp.onlyChild && this.inp.type === InputType.Tree) {
78
+ this.unCheckParent(row.parent);
79
+ }
80
+ }
81
+ else {
82
+ this.check(row);
83
+ if (this.inp.onlyChild && this.inp.type === InputType.Tree) {
84
+ this.checkParent(row.parent);
85
+ }
86
+ }
87
+ }
88
+ check(c) {
89
+ if (this.inp.type === InputType.Tree) {
90
+ c.selected = true;
91
+ if (this.inp.onlyChild) {
92
+ this.checkChildren(c);
75
93
  }
76
94
  }
77
- return isChecked || cIsChecked;
95
+ else {
96
+ this.inp.clear();
97
+ c.selected = true;
98
+ }
99
+ }
100
+ unCheck(c) {
101
+ c.selected = false;
102
+ if (this.inp.onlyChild) {
103
+ c.children.forEach((ch) => {
104
+ this.unCheck(ch);
105
+ });
106
+ }
107
+ }
108
+ checkChildren(c) {
109
+ c.children.forEach((ch) => {
110
+ this.check(ch);
111
+ });
78
112
  }
79
- checkChildren(chs, ids) {
80
- for (const r of chs) {
81
- if (ids.includes(r.value)) {
82
- r.toggle(this.inp.onlyChild);
113
+ checkParent(p) {
114
+ if (p) {
115
+ if (p.children.filter(x => !x.selected).length > 0) {
116
+ p.selected = null;
117
+ }
118
+ else {
119
+ p.selected = true;
120
+ }
121
+ this.checkParent(p.parent);
122
+ }
123
+ }
124
+ unCheckParent(p) {
125
+ if (p) {
126
+ if (p.children.filter(x => x.selected || x.selected == null).length > 0) {
127
+ p.selected = null;
128
+ }
129
+ else {
130
+ p.selected = false;
83
131
  }
84
- setTimeout(() => { this.checkChildren(r.children, ids); });
132
+ this.unCheckParent(p.parent);
85
133
  }
86
134
  }
87
135
  }
88
136
  FormTreeComponent.decorators = [
89
137
  { type: Component, args: [{
90
138
  selector: 'lib-form-tree',
91
- template: "<div #inputDiv [id]=\"inp.name + 'Input'\" [className]=\"'form-input-con tree w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onClick()\">\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 #inputBase type=\"checkbox\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div [className]=\"(inp.loading ? 'o-h ' : '') + 'control'\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n <i *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"fa-duotone fa-eraser clear-icon\"></i>\r\n <lib-form-tree-item [level]=\"0\" [index]=\"i\" [item]=\"item\" [tree]=\"inp\" [base]=\"true\" *ngFor=\"let item of inp.rows; let i = index\"></lib-form-tree-item>\r\n </div>\r\n </div>\r\n</div>\r\n",
139
+ template: "<div #inputDiv [id]=\"inp.name + 'Input'\" [className]=\"'form-input-con tree w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onClick()\">\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 #inputBase type=\"checkbox\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div [className]=\"(inp.loading ? 'o-h ' : '') + 'control'\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n <i *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"fa-duotone fa-eraser clear-icon\"></i>\r\n <lib-form-tree-item [level]=\"0\" [index]=\"i\" (toggle)=\"toggle($event)\" [item]=\"item\" [tree]=\"inp\" [base]=\"true\" *ngFor=\"let item of inp.rows; let i = index\"></lib-form-tree-item>\r\n </div>\r\n </div>\r\n</div>\r\n",
92
140
  styles: [".form-input-con.tree{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input-con.tree .form-input{float:right;position:relative;width:100%}.form-input-con.tree .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.tree.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.tree .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.tree .form-input>.control{background-color:#fff;border:var(--border-input);border-radius:var(--border-radius-base);float:right;max-height:400px;min-height:35px;overflow-x:hidden;overflow-y:auto;padding:10px;position:relative;width:100%}.form-input-con.tree.without-border .form-input>.control{border:unset}.form-input-con.tree:not(.without-border) .form-input .input-base:focus+.control,.form-input-con.tree:not(.without-border) .form-input:hover .control{border:var(--border-input-dark)}.form-input-con.tree.error .form-input .input-base:focus+.control,.form-input-con.tree.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.tree .form-input .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.tree .form-input i.icon{color:var(--primary);cursor:default;left:0;line-height:35px;top:0;z-index:1}.form-input-con.tree .form-input i.clear-icon,.form-input-con.tree .form-input i.icon{font-size:14px;height:35px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px}.form-input-con.tree .form-input i.clear-icon{bottom:0;color:var(--red);cursor:pointer;line-height:38px;right:0;z-index:3}.form-input-con.tree.error .form-input>.control{border:var(--border-input-red)}.form-input-con.tree.error .form-input i.icon{color:var(--red)}"]
93
141
  },] }
94
142
  ];
@@ -98,4 +146,4 @@ FormTreeComponent.propDecorators = {
98
146
  changeIndex: [{ type: Output }],
99
147
  inputBase: [{ type: ViewChild, args: ['inputBase',] }]
100
148
  };
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL3RyZWUvZm9ybS50cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFPdkQsTUFBTSxPQUFPLGlCQUFpQjtJQU01QjtRQUZBLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUd6QyxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFB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QztnQkFDekMsSUFBSSxVQUFVLEVBQUM7b0JBQ2IsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUMzRTthQUNGO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsSUFBSSxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUNELGFBQWEsQ0FBQyxHQUFtQixFQUFFLEdBQUc7UUFDcEMsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUM7WUFDbEIsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQztnQkFDeEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzs7O1lBN0ZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsdWpDQUF5Qzs7YUFFMUM7Ozs7a0JBRUUsS0FBSzswQkFFTCxNQUFNO3dCQUVOLFNBQVMsU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzcywgVHJlZVJvd0NsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3J9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXRyZWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0udHJlZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1UcmVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAubG9hZCgpO1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub25Gb2N1c0luKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy5nZXRTZWxlY3RlZCgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWQoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2sodi5tYXAoU3RyaW5nKSk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnNldFZhbHVlKFtdLCBmYWxzZSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25DbGljaygpOiB2b2lke1xyXG4gICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICB9XHJcbiAgb25LZXlEb3duKGUpOiB2b2lke1xyXG4gICAgY29uc3QgY29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoO1xyXG4gICAgaWYgKGNvZGUgPT09IDkgfHwgY29kZSA9PT0gMTMpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRm9jdXNJbigpOiB2b2lke1xyXG4gICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZCgpOiBhbnlbXXtcclxuICAgIGxldCBsID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5pbnAucm93cyl7XHJcbiAgICAgIGwgPSBsLmNvbmNhdCh0aGlzLmdldFJvd1NlbGVjdGVkKGYpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxuICBnZXRSb3dTZWxlY3RlZChjaDogVHJlZVJvd0NsYXNzKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgaWYgKGNoLnNlbGVjdGVkICYmICghdGhpcy5pbnAub25seUNoaWxkIHx8IGNoLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpe1xyXG4gICAgICBsLnB1c2goY2gudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2guY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBjb25zdCBycyA9IHRoaXMuZ2V0Um93U2VsZWN0ZWQoYyk7XHJcbiAgICAgIGwgPSBsLmNvbmNhdChycyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxuXHJcbiAgY2hlY2soaWRzLCBjaHMgPSB0aGlzLmlucC5yb3dzKTogYm9vbGVhbntcclxuICAgIGxldCBpc0NoZWNrZWQgPSBmYWxzZTtcclxuICAgIGxldCBjSXNDaGVja2VkID0gZmFsc2U7XHJcbiAgICBmb3IgKGNvbnN0IHIgb2YgY2hzKXtcclxuICAgICAgci5zZWxlY3RlZCA9IGlkcy5pbmNsdWRlcyhyLnZhbHVlKTtcclxuICAgICAgaWYgKHIuc2VsZWN0ZWQpe1xyXG4gICAgICAgIGlzQ2hlY2tlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgY0lzQ2hlY2tlZCA9IHRoaXMuY2hlY2soaWRzLCByLmNoaWxkcmVuKTtcclxuICAgICAgICBpZiAoY0lzQ2hlY2tlZCl7XHJcbiAgICAgICAgICByLnNlbGVjdGVkID0gci5jaGlsZHJlbi5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID4gMCA/IG51bGwgOiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzQ2hlY2tlZCB8fCBjSXNDaGVja2VkO1xyXG4gIH1cclxuICBjaGVja0NoaWxkcmVuKGNoczogVHJlZVJvd0NsYXNzW10sIGlkcyk6IHZvaWR7XHJcbiAgICBmb3IgKGNvbnN0IHIgb2YgY2hzKXtcclxuICAgICAgaWYgKGlkcy5pbmNsdWRlcyhyLnZhbHVlKSl7XHJcbiAgICAgICAgci50b2dnbGUodGhpcy5pbnAub25seUNoaWxkKTtcclxuICAgICAgfVxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLmNoZWNrQ2hpbGRyZW4oci5jaGlsZHJlbiwgaWRzKTsgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL3RyZWUvZm9ybS50cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT2xFLE1BQU0sT0FBTyxpQkFBaUI7SUFNNUI7UUFGQSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFHekMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FB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QUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLG1sQ0FBeUM7O2FBRTFDOzs7O2tCQUVFLEtBQUs7MEJBRUwsTUFBTTt3QkFFTixTQUFTLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3MsIFRyZWVSb3dDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yLCBJbnB1dFR5cGV9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXRyZWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0udHJlZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1UcmVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAubG9hZCgpO1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub25Gb2N1c0luKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy5nZXRTZWxlY3RlZCgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWQoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0VmFsdWUodi5tYXAoU3RyaW5nKSk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnNldFZhbHVlKFtdLCBmYWxzZSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25DbGljaygpOiB2b2lke1xyXG4gICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICB9XHJcbiAgb25LZXlEb3duKGUpOiB2b2lke1xyXG4gICAgY29uc3QgY29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoO1xyXG4gICAgaWYgKGNvZGUgPT09IDkgfHwgY29kZSA9PT0gMTMpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRm9jdXNJbigpOiB2b2lke1xyXG4gICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZCgpOiBhbnlbXXtcclxuICAgIGxldCBsID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5pbnAucm93cyl7XHJcbiAgICAgIGwgPSBsLmNvbmNhdCh0aGlzLmdldFJvd1NlbGVjdGVkKGYpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxuICBnZXRSb3dTZWxlY3RlZChjaDogVHJlZVJvd0NsYXNzKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgaWYgKGNoLnNlbGVjdGVkICYmICghdGhpcy5pbnAub25seUNoaWxkIHx8IGNoLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpe1xyXG4gICAgICBsLnB1c2goY2gudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2guY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBjb25zdCBycyA9IHRoaXMuZ2V0Um93U2VsZWN0ZWQoYyk7XHJcbiAgICAgIGwgPSBsLmNvbmNhdChycyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUoaWRzLCByb3dzID0gdGhpcy5pbnAucm93cyk6IGJvb2xlYW57XHJcbiAgICBmb3IgKGNvbnN0IHIgb2Ygcm93cyl7XHJcbiAgICAgIHIuc2VsZWN0ZWQgPSBpZHMuaW5jbHVkZXMoci52YWx1ZSk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbmx5Q2hpbGQpe1xyXG4gICAgICAgIGlmIChyLnNlbGVjdGVkKXtcclxuICAgICAgICAgIHRoaXMuY2hlY2tQYXJlbnQoci5wYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFZhbHVlKGlkcywgci5jaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICB0b2dnbGUocm93OiBUcmVlUm93Q2xhc3MpOiB2b2lkIHtcclxuICAgIGlmIChyb3cuc2VsZWN0ZWQpe1xyXG4gICAgICB0aGlzLnVuQ2hlY2socm93KTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuVHJlZSl7XHJcbiAgICAgICAgdGhpcy51bkNoZWNrUGFyZW50KHJvdy5wYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jaGVjayhyb3cpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25seUNoaWxkICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5UcmVlKXtcclxuICAgICAgICB0aGlzLmNoZWNrUGFyZW50KHJvdy5wYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrKGM6IFRyZWVSb3dDbGFzcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5UcmVlKSB7XHJcbiAgICAgIGMuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25seUNoaWxkKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0NoaWxkcmVuKGMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucC5jbGVhcigpO1xyXG4gICAgICBjLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5DaGVjayhjOiBUcmVlUm93Q2xhc3MpOiB2b2lkIHtcclxuICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlucC5vbmx5Q2hpbGQpIHtcclxuICAgICAgYy5jaGlsZHJlbi5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICAgIHRoaXMudW5DaGVjayhjaCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVja0NoaWxkcmVuKGM6IFRyZWVSb3dDbGFzcyk6IHZvaWR7XHJcbiAgICBjLmNoaWxkcmVuLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrUGFyZW50KHA6IFRyZWVSb3dDbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLmNoaWxkcmVuLmZpbHRlcih4ID0+ICF4LnNlbGVjdGVkKS5sZW5ndGggPiAwKXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja1BhcmVudChwLnBhcmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVuQ2hlY2tQYXJlbnQocDogVHJlZVJvd0NsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAuY2hpbGRyZW4uZmlsdGVyKHggPT4geC5zZWxlY3RlZCB8fCB4LnNlbGVjdGVkID09IG51bGwpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51bkNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19