@smartbit4all/ng-client 3.2.42 → 3.2.44
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.
- package/esm2020/lib/smart-grid/smart-grid.component.mjs +27 -21
- package/esm2020/lib/smart-table/smarttable.model.mjs +1 -1
- package/esm2020/lib/smart-table/tables/material-table/material-table.component.mjs +3 -3
- package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +1 -1
- package/fesm2015/smartbit4all-ng-client.mjs +20 -15
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +20 -15
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-grid/smart-grid.component.d.ts +3 -1
- package/lib/smart-table/smarttable.model.d.ts +2 -1
- package/lib/view-context/smart-ui-action/ui-action.descriptor.service.d.ts +1 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.2.44.tgz +0 -0
- package/smartbit4all-ng-client-3.2.42.tgz +0 -0
|
@@ -165,4 +165,4 @@ export class SmartTable {
|
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0dGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzFELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIseUNBQXVCLENBQUE7SUFDdkIsd0NBQXNCLENBQUE7SUFDdEIsMENBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBUUQsTUFBTSxDQUFOLElBQVksNEJBS1g7QUFMRCxXQUFZLDRCQUE0QjtJQUN0QywrRUFBSSxDQUFBO0lBQ0osK0VBQUksQ0FBQTtJQUNKLHVGQUFRLENBQUE7SUFDUiwrRUFBSSxDQUFBO0FBQ04sQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUF1Q0QsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6Qiw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQWdCRCxNQUFNLENBQU4sSUFBWSxvQkFNWDtBQU5ELFdBQVksb0JBQW9CO0lBQzlCLHFDQUFhLENBQUE7SUFDYixxQ0FBYSxDQUFBO0lBQ2IseUNBQWlCLENBQUE7SUFDakIseUNBQWlCLENBQUE7SUFDakIsK0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQU5XLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNL0I7QUFFRCxNQUFNLENBQU4sSUFBWSwrQkFHWDtBQUhELFdBQVksK0JBQStCO0lBQ3pDLGlHQUFVLENBQUE7SUFDViw2RkFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUhXLCtCQUErQixLQUEvQiwrQkFBK0IsUUFHMUM7QUFN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QUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUM3QztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlVHlwZSB7XHJcbiAgSU5IRVJJVEVEID0gJ0luaGVyaXRlZCcsXHJcbiAgQ0hFQ0tfQk9YID0gJ0NoZWNrQm94JyxcclxuICBST1dfU0VMRUNUID0gJ1Jvd1NlbGVjdCcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZU9wdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGNhbGxiYWNrOiAoaWQ6IHN0cmluZykgPT4gYW55O1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlSGVhZGVyUHJvcGVydHlUeXBlIHtcclxuICBEQVRFLFxyXG4gIFRJTUUsXHJcbiAgREFURVRJTUUsXHJcbiAgSUNPTixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlSGVhZGVySWNvbnMge1xyXG4gIGljb246IHN0cmluZztcclxuICBjb2xvcjogVGhlbWVQYWxldHRlO1xyXG4gIHNob3dJY29uSWZWYWx1ZUVxdWFsc1dpdGhTdHJpbmc/OiBzdHJpbmc7XHJcbiAgc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aE51bWJlcj86IG51bWJlcjtcclxuICBzaG93SWNvbklmVmFsdWVTbWFsbGVyVGhhbk51bWJlcj86IG51bWJlcjtcclxuICBzaG93SWNvbklmVmFsdWVCaWdnZXJUaGFuTnVtYmVyPzogbnVtYmVyO1xyXG4gIHNob3dJY29uSWZWYWx1ZUJvb2xlYW4/OiBib29sZWFuO1xyXG4gIHNob3dJY29uSWZWYWx1ZU51bGw/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUhlYWRlclByb3BlcnRpZXMge1xyXG4gIHR5cGU6IFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0eVR5cGU7XHJcbiAgZGF0ZUZvcm1hdD86IHN0cmluZztcclxuICBpY29ucz86IFNtYXJ0VGFibGVIZWFkZXJJY29uc1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVJY29uIHtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgY29sb3I/OiBUaGVtZVBhbGV0dGU7XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUhlYWRlciB7XHJcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpc0hpZGRlbj86IGJvb2xlYW47XHJcbiAgcHJvcGVydGllcz86IFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0aWVzO1xyXG4gIGJ1dHRvbnM/OiBTbWFydFRhYmxlQnV0dG9uW107XHJcbiAgaWNvbj86IFNtYXJ0VGFibGVJY29uO1xyXG4gIHRyYW5zbGF0b3I/OiAoKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZykgfCAoKHZhbHVlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPik7XHJcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIG9yZGVyPzogU21hcnRUYWJsZU9yZGVyO1xyXG4gIG9yZGVyTnVtYmVyPzogbnVtYmVyO1xyXG4gIGlzU29ydGFibGU/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlT3JkZXIge1xyXG4gIEFTQyA9ICdBU0MnLFxyXG4gIERFU0MgPSAnREVTQycsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUJ1dHRvbiB7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBsYWJlbD86IHN0cmluZztcclxuICBjb2xvcj86IFRoZW1lUGFsZXR0ZTtcclxuICBjb2RlPzogc3RyaW5nO1xyXG4gIHR5cGU6IFNtYXJ0VGFibGVCdXR0b25UeXBlO1xyXG4gIG1lbnVJdGVtQnV0dG9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcclxuICBtZW51SXRlbUJ1dHRvbnNQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgdHJhbnNsYXRvcj86ICgobGFiZWw6IHN0cmluZykgPT4gc3RyaW5nKSB8ICgobGFiZWw6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+KTtcclxuICBjYWxsYmFjaz86ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xyXG4gIGFyZ3M/OiBhbnlbXTtcclxuICBzaG93QnV0dG9uSWY/OiAocm93OiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVCdXR0b25UeXBlIHtcclxuICBNRU5VID0gJ01FTlUnLFxyXG4gIElDT04gPSAnSUNPTicsXHJcbiAgTk9STUFMID0gJ05PUk1BTCcsXHJcbiAgUkFJU0VEID0gJ1JBSVNFRCcsXHJcbiAgU0VQQVJBVE9SID0gJ1NFUEFSQVRPUicsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24ge1xyXG4gIEhPUklaT05UQUwsXHJcbiAgVkVSVElDQUwsXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgU21hcnRUYWJsZUludGVyZmFjZVR5cGU8VD4gPVxyXG4gIHwgU21hcnRUYWJsZUludGVyZmFjZTxUPlxyXG4gIHwgU21hcnRUYWJsZUdyaWRJbnRlcmZhY2U8VD47XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0ge1xyXG4gIE5PUk1BTCxcclxuICBHUklELFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVJbnRlcmZhY2U8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bS5OT1JNQUw7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdGFibGVIZWFkZXJzPzogc3RyaW5nW107XHJcbiAgY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM/OiBTbWFydFRhYmxlSGVhZGVyW107XHJcbiAgY3VzdG9tVGFibGVIZWFkZXJzPzogc3RyaW5nW107XHJcbiAgdGFibGVSb3dzOiBUW107XHJcbiAgdGFibGVUeXBlOiBTbWFydFRhYmxlVHlwZTtcclxuICBvcHRpb25zPzogU21hcnRUYWJsZU9wdGlvbltdO1xyXG4gIHRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uPzogU21hcnRUYWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcclxuICBvblJvd0NsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBvblJvd0RvdWJsZUNsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBkZWZhdWx0QWN0aW9uQ29kZXM/OiBzdHJpbmdbXTtcclxuICBkZWZhdWx0QWN0aW9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcclxuICBoaWdobGlnaHRPblJvd0NsaWNrPzogYm9vbGVhbjtcclxuICBoaWdobGlnaHRDbGFzcz86IHN0cmluZztcclxuICBob3Zlcj86IGJvb2xlYW47XHJcbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XHJcbiAgZXhwYW5kZWRDb21wb25lbnQ/OiBhbnk7XHJcbiAgYXN5bmNPbkV4cGFuZD86IGJvb2xlYW47XHJcbiAgc29ydEljb25Bc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25EZXNjPzogc3RyaW5nO1xyXG4gIHNvcnRJY29uTmV1dHJhbD86IHN0cmluZztcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgbWF4TnVtT2ZTZWxlY3RhYmxlUm93cz86IG51bWJlcjtcclxuICBzZWxlY3Rpb25Qcm9wZXJ0eT86IHN0cmluZztcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xyXG4gIHNob3dDaGVja2JveEluSGVhZGVyPzogYm9vbGVhbjtcclxuICBpc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIHNlbGVjdGFibGVQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgb25TZWxlY3Rpb24/OiAocm93OiBhbnkpID0+IFByb21pc2U8dm9pZD47XHJcbiAgb25BbGxTZWxlY3Rpb24/OiAoc2VsZWN0ZWQ6IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD47XHJcbiAgcm93RXhwYW5kZXI/OiBTbWFydFRhYmxlUm93RXhwYW5kZXI8VD47XHJcbiAgaGlnaGxpZ2h0UHJvcGVydHk/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlR3JpZEludGVyZmFjZTxUPiB7XHJcbiAgdHlwZTogU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLkdSSUQ7XHJcbiAgY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM/OiBTbWFydFRhYmxlSGVhZGVyW107XHJcbiAgdGFibGVUeXBlOiBTbWFydFRhYmxlVHlwZTtcclxuICBvcHRpb25zPzogU21hcnRUYWJsZU9wdGlvbltdO1xyXG4gIHRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uPzogU21hcnRUYWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcclxuICBvblJvd0NsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBvblJvd0RvdWJsZUNsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBkZWZhdWx0QWN0aW9uQ29kZXM/OiBzdHJpbmdbXTtcclxuICBkZWZhdWx0QWN0aW9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcclxuICBoaWdobGlnaHRPblJvd0NsaWNrPzogYm9vbGVhbjtcclxuICBoaWdobGlnaHRDbGFzcz86IHN0cmluZztcclxuICBob3Zlcj86IGJvb2xlYW47XHJcbiAgc29ydEljb25Bc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25EZXNjPzogc3RyaW5nO1xyXG4gIHNvcnRJY29uTmV1dHJhbD86IHN0cmluZztcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgbWF4TnVtT2ZTZWxlY3RhYmxlUm93cz86IG51bWJlcjtcclxuICBzZWxlY3Rpb25Qcm9wZXJ0eT86IHN0cmluZztcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xyXG4gIHNob3dDaGVja2JveEluSGVhZGVyPzogYm9vbGVhbjtcclxuICBpc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIHNlbGVjdGFibGVQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgb25TZWxlY3Rpb24/OiAocm93OiBhbnkpID0+IFByb21pc2U8dm9pZD47XHJcbiAgb25BbGxTZWxlY3Rpb24/OiAoc2VsZWN0ZWQ6IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD47XHJcbiAgYXN5bmNPbkV4cGFuZD86IGJvb2xlYW47XHJcbiAgcm93RXhwYW5kZXI/OiBTbWFydFRhYmxlUm93RXhwYW5kZXI8VD47XHJcbiAgaGlnaGxpZ2h0UHJvcGVydHk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZVJvd0V4cGFuZGVyPFQ+IHtcclxuICBleHBhbmQocm93SWQ6IG51bWJlcik6IFQ7XHJcbiAgZXhwYW5kQXN5bmMocm93SWQ6IG51bWJlcik6IFByb21pc2U8VD47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTbWFydFRhYmxlPFQ+IGltcGxlbWVudHMgU21hcnRUYWJsZUludGVyZmFjZTxUPiB7XHJcbiAgdHlwZTogU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLk5PUk1BTCA9IFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bS5OT1JNQUw7XHJcbiAgdGl0bGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgdGFibGVIZWFkZXJzOiBzdHJpbmdbXTtcclxuICBjdXN0b21TbWFydFRhYmxlSGVhZGVycz86IFNtYXJ0VGFibGVIZWFkZXJbXTtcclxuICBjdXN0b21UYWJsZUhlYWRlcnMhOiBzdHJpbmdbXTtcclxuICB0YWJsZVJvd3M6IFRbXTtcclxuICB0YWJsZVR5cGU6IFNtYXJ0VGFibGVUeXBlO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbk1vZGVsPGFueT47XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFNtYXJ0VGFibGVPcHRpb25bXTtcclxuICB0YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbj86IFNtYXJ0VGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb247XHJcbiAgb25Sb3dDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XHJcbiAgb25Sb3dEb3VibGVDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XHJcbiAgZGVmYXVsdEFjdGlvbkNvZGVzPzogc3RyaW5nW107XHJcbiAgZGVmYXVsdEFjdGlvbnM/OiBTbWFydFRhYmxlQnV0dG9uW107XHJcbiAgaGlnaGxpZ2h0T25Sb3dDbGljaz86IGJvb2xlYW47XHJcbiAgaGlnaGxpZ2h0Q2xhc3M/OiBzdHJpbmc7XHJcbiAgaG92ZXI/OiBib29sZWFuO1xyXG4gIGV4cGFuZGFibGU/OiBib29sZWFuO1xyXG4gIGV4cGFuZGVkQ29tcG9uZW50PzogYW55O1xyXG4gIGFzeW5jT25FeHBhbmQ/OiBib29sZWFuO1xyXG4gIHNvcnRJY29uQXNjPzogc3RyaW5nO1xyXG4gIHNvcnRJY29uRGVzYz86IHN0cmluZztcclxuICBzb3J0SWNvbk5ldXRyYWw/OiBzdHJpbmc7XHJcbiAgc29ydGFibGU/OiBib29sZWFuO1xyXG4gIG1heE51bU9mU2VsZWN0YWJsZVJvd3M/OiBudW1iZXI7XHJcbiAgc2VsZWN0aW9uUHJvcGVydHk/OiBzdHJpbmc7XHJcbiAgaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBzZWxlY3RhYmxlUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIG9uU2VsZWN0aW9uPzogKHJvdzogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xyXG4gIG9uQWxsU2VsZWN0aW9uPzogKHNlbGVjdGVkOiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+O1xyXG4gIHJvd0V4cGFuZGVyPzogU21hcnRUYWJsZVJvd0V4cGFuZGVyPFQ+O1xyXG4gIGhpZ2hsaWdodFByb3BlcnR5Pzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb25maWc6IFNtYXJ0VGFibGVJbnRlcmZhY2U8VD4pIHtcclxuICAgIHRoaXMuZXhwYW5kYWJsZSA9IGNvbmZpZy5leHBhbmRhYmxlO1xyXG4gICAgdGhpcy5leHBhbmRlZENvbXBvbmVudCA9IGNvbmZpZy5leHBhbmRlZENvbXBvbmVudDtcclxuICAgIHRoaXMuYXN5bmNPbkV4cGFuZCA9IGNvbmZpZy5hc3luY09uRXhwYW5kO1xyXG4gICAgdGhpcy5oaWdobGlnaHRQcm9wZXJ0eSA9IGNvbmZpZy5oaWdobGlnaHRQcm9wZXJ0eTtcclxuXHJcbiAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzID0gY29uZmlnLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzO1xyXG5cclxuICAgIGlmICh0aGlzLmV4cGFuZGFibGUpIHtcclxuICAgICAgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycz8ucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgIHByb3BlcnR5TmFtZTogJ2V4cGFuZCcsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZVR5cGUgPSBjb25maWcudGFibGVUeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLnRhYmxlVHlwZSA9PT0gU21hcnRUYWJsZVR5cGUuQ0hFQ0tfQk9YKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgICAgcHJvcGVydHlOYW1lOiAnc2VsZWN0JyxcclxuICAgICAgICAgIHNob3dDaGVja2JveEluSGVhZGVyOlxyXG4gICAgICAgICAgICB0eXBlb2YgY29uZmlnLnNob3dDaGVja2JveEluSGVhZGVyID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiBjb25maWcuc2hvd0NoZWNrYm94SW5IZWFkZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi50aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzISxcclxuICAgICAgXTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy50YWJsZVR5cGUgPT09IFNtYXJ0VGFibGVUeXBlLkNIRUNLX0JPWCB8fFxyXG4gICAgICB0aGlzLnRhYmxlVHlwZSA9PT0gU21hcnRUYWJsZVR5cGUuUk9XX1NFTEVDVFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNNdWx0aXBsZSA9IGNvbmZpZy5pc011bHRpcGxlO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3Rpb25Qcm9wZXJ0eSA9IGNvbmZpZy5zZWxlY3Rpb25Qcm9wZXJ0eTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gPSBjb25maWcuc2VsZWN0aW9uID8/IG5ldyBTZWxlY3Rpb25Nb2RlbDxUPih0aGlzLmlzTXVsdGlwbGUsIFtdKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlSGVhZGVycyA9IHRoaXMuZ2V0UHJvcGVydHlOYW1lc0RlZXBseShjb25maWcudGFibGVSb3dzWzBdKTtcclxuXHJcbiAgICB0aGlzLnNldFRhYmxlSGVhZGVycygpO1xyXG5cclxuICAgIHRoaXMudGFibGVSb3dzID0gY29uZmlnLnRhYmxlUm93cztcclxuICAgIHRoaXMudGl0bGUgPSBjb25maWcudGl0bGU7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBjb25maWcub3B0aW9ucztcclxuICAgIHRoaXMudGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24gPSBjb25maWcudGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb247XHJcbiAgICB0aGlzLm9uUm93Q2xpY2sgPSBjb25maWcub25Sb3dDbGljaztcclxuICAgIHRoaXMub25Sb3dEb3VibGVDbGljayA9IGNvbmZpZy5vblJvd0RvdWJsZUNsaWNrO1xyXG4gICAgdGhpcy5kZWZhdWx0QWN0aW9ucyA9IGNvbmZpZy5kZWZhdWx0QWN0aW9ucztcclxuICAgIHRoaXMuZGVmYXVsdEFjdGlvbkNvZGVzID0gY29uZmlnLmRlZmF1bHRBY3Rpb25Db2RlcztcclxuICAgIHRoaXMuaGlnaGxpZ2h0T25Sb3dDbGljayA9IGNvbmZpZy5oaWdobGlnaHRPblJvd0NsaWNrO1xyXG4gICAgdGhpcy5oaWdobGlnaHRDbGFzcyA9IGNvbmZpZy5oaWdobGlnaHRDbGFzcztcclxuICAgIHRoaXMuaG92ZXIgPSBjb25maWcuaG92ZXI7XHJcbiAgICB0aGlzLnNvcnRJY29uQXNjID0gY29uZmlnLnNvcnRJY29uQXNjO1xyXG4gICAgdGhpcy5zb3J0SWNvbkRlc2MgPSBjb25maWcuc29ydEljb25EZXNjO1xyXG4gICAgdGhpcy5zb3J0SWNvbk5ldXRyYWwgPSBjb25maWcuc29ydEljb25OZXV0cmFsO1xyXG4gICAgdGhpcy5zb3J0YWJsZSA9IGNvbmZpZy5zb3J0YWJsZTtcclxuICAgIHRoaXMubWF4TnVtT2ZTZWxlY3RhYmxlUm93cyA9IGNvbmZpZy5tYXhOdW1PZlNlbGVjdGFibGVSb3dzO1xyXG4gICAgdGhpcy5pc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lID0gY29uZmlnLmlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWU7XHJcbiAgICB0aGlzLnNlbGVjdGFibGVQcm9wZXJ0eU5hbWUgPSBjb25maWcuc2VsZWN0YWJsZVByb3BlcnR5TmFtZTtcclxuICAgIHRoaXMub25TZWxlY3Rpb24gPSBjb25maWcub25TZWxlY3Rpb247XHJcbiAgICB0aGlzLm9uQWxsU2VsZWN0aW9uID0gY29uZmlnLm9uQWxsU2VsZWN0aW9uO1xyXG4gICAgdGhpcy5yb3dFeHBhbmRlciA9IGNvbmZpZy5yb3dFeHBhbmRlcjtcclxuXHJcbiAgICB0aGlzLnB1c2hPcHRpb25zKCk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGVsZW1lbnQ6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgIGlmIChlbGVtZW50ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhlbGVtZW50KTtcclxuICAgIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGVsZW1lbnQgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgIHR5cGVvZiBlbGVtZW50W3Byb3BlcnR5XSA9PT0gJ3N0cmluZycgfHxcclxuICAgICAgICB0eXBlb2YgZWxlbWVudFtwcm9wZXJ0eV0gPT09ICdib29sZWFuJyB8fFxyXG4gICAgICAgIHR5cGVvZiBlbGVtZW50W3Byb3BlcnR5XSA9PT0gJ251bWJlcicgfHxcclxuICAgICAgICBlbGVtZW50W3Byb3BlcnR5XSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgZWxlbWVudFtwcm9wZXJ0eV0gPT09IG51bGwgfHxcclxuICAgICAgICAhZWxlbWVudFtwcm9wZXJ0eV0gfHxcclxuICAgICAgICAhZWxlbWVudFxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGlubmVyUHJvcGVydGllcyA9IHRoaXMuZ2V0UHJvcGVydHlOYW1lc0RlZXBseShlbGVtZW50W3Byb3BlcnR5XSk7XHJcbiAgICAgIHByb3BlcnRpZXMucHVzaCguLi5pbm5lclByb3BlcnRpZXMpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcHJvcGVydGllcztcclxuICB9XHJcblxyXG4gIGdldFZhbHVlRGVlcGx5KG1vZGVsOiBhbnksIGtleTogc3RyaW5nKTogYW55IHtcclxuICAgIGxldCBzcGxpdHRlZEtleSA9IGtleS5zcGxpdCgnLicpO1xyXG4gICAgbGV0IHZhbHVlOiBhbnk7XHJcblxyXG4gICAgc3BsaXR0ZWRLZXkuZm9yRWFjaCgoazogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICB2YWx1ZSA9IG1vZGVsW2tdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWVba10gPT09IHVuZGVmaW5lZCB8fCB2YWx1ZVtrXSA9PT0gbnVsbCB8fCAhdmFsdWUpIHtcclxuICAgICAgICAgIHZhbHVlID0gJyc7XHJcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbHVlID0gdmFsdWVba107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1c2hPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudGFibGVIZWFkZXJzLnB1c2goJ29wdGlvbnMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFRhYmxlSGVhZGVycygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmIHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBvcmlnaW5hbEhlYWRlcnMgPSB0aGlzLnRhYmxlSGVhZGVycztcclxuICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSBbXTtcclxuICAgICAgdGhpcy5jdXN0b21UYWJsZUhlYWRlcnMgPSBbXTtcclxuICAgICAgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycy5mb3JFYWNoKCh0YWJsZUhlYWRlcikgPT4ge1xyXG4gICAgICAgIGxldCBwcm9wZXJ0eU5hbWVzID0gdGFibGVIZWFkZXIucHJvcGVydHlOYW1lLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgcHJvcGVydHlOYW1lcy5maWx0ZXIoKHByb3BlcnR5KSA9PiBvcmlnaW5hbEhlYWRlcnMuaW5jbHVkZXMocHJvcGVydHkpKSAmJlxyXG4gICAgICAgICAgIXRhYmxlSGVhZGVyLmlzSGlkZGVuXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLnByb3BlcnR5TmFtZSk7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLmxhYmVsKTtcclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgdGFibGVIZWFkZXIuYnV0dG9ucyB8fFxyXG4gICAgICAgICAgdGFibGVIZWFkZXIuaWNvbiB8fFxyXG4gICAgICAgICAgdGFibGVIZWFkZXIucHJvcGVydHlOYW1lID09PSAnZXhwYW5kJyB8fFxyXG4gICAgICAgICAgdGFibGVIZWFkZXIucHJvcGVydHlOYW1lID09PSAnc2VsZWN0J1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMucHVzaCh0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUpO1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21UYWJsZUhlYWRlcnMucHVzaCh0YWJsZUhlYWRlci5sYWJlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tVGFibGVIZWFkZXJzID0gdGhpcy50YWJsZUhlYWRlcnM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0dGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTFELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIseUNBQXVCLENBQUE7SUFDdkIsd0NBQXNCLENBQUE7SUFDdEIsMENBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBUUQsTUFBTSxDQUFOLElBQVksNEJBS1g7QUFMRCxXQUFZLDRCQUE0QjtJQUN0QywrRUFBSSxDQUFBO0lBQ0osK0VBQUksQ0FBQTtJQUNKLHVGQUFRLENBQUE7SUFDUiwrRUFBSSxDQUFBO0FBQ04sQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUF1Q0QsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6Qiw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQWdCRCxNQUFNLENBQU4sSUFBWSxvQkFNWDtBQU5ELFdBQVksb0JBQW9CO0lBQzlCLHFDQUFhLENBQUE7SUFDYixxQ0FBYSxDQUFBO0lBQ2IseUNBQWlCLENBQUE7SUFDakIseUNBQWlCLENBQUE7SUFDakIsK0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQU5XLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNL0I7QUFFRCxNQUFNLENBQU4sSUFBWSwrQkFHWDtBQUhELFdBQVksK0JBQStCO0lBQ3pDLGlHQUFVLENBQUE7SUFDViw2RkFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUhXLCtCQUErQixLQUEvQiwrQkFBK0IsUUFHMUM7QUFN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QUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUM3QztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uLCBVaUFjdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvYXBpJztcclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVUeXBlIHtcclxuICBJTkhFUklURUQgPSAnSW5oZXJpdGVkJyxcclxuICBDSEVDS19CT1ggPSAnQ2hlY2tCb3gnLFxyXG4gIFJPV19TRUxFQ1QgPSAnUm93U2VsZWN0JyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlT3B0aW9uIHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgY2FsbGJhY2s6IChpZDogc3RyaW5nKSA9PiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0eVR5cGUge1xyXG4gIERBVEUsXHJcbiAgVElNRSxcclxuICBEQVRFVElNRSxcclxuICBJQ09OLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVIZWFkZXJJY29ucyB7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGNvbG9yOiBUaGVtZVBhbGV0dGU7XHJcbiAgc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aFN0cmluZz86IHN0cmluZztcclxuICBzaG93SWNvbklmVmFsdWVFcXVhbHNXaXRoTnVtYmVyPzogbnVtYmVyO1xyXG4gIHNob3dJY29uSWZWYWx1ZVNtYWxsZXJUaGFuTnVtYmVyPzogbnVtYmVyO1xyXG4gIHNob3dJY29uSWZWYWx1ZUJpZ2dlclRoYW5OdW1iZXI/OiBudW1iZXI7XHJcbiAgc2hvd0ljb25JZlZhbHVlQm9vbGVhbj86IGJvb2xlYW47XHJcbiAgc2hvd0ljb25JZlZhbHVlTnVsbD86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlSGVhZGVyUHJvcGVydGllcyB7XHJcbiAgdHlwZTogU21hcnRUYWJsZUhlYWRlclByb3BlcnR5VHlwZTtcclxuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xyXG4gIGljb25zPzogU21hcnRUYWJsZUhlYWRlckljb25zW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUljb24ge1xyXG4gIGljb246IHN0cmluZztcclxuICBjb2xvcj86IFRoZW1lUGFsZXR0ZTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlSGVhZGVyIHtcclxuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcclxuICBwcm9wZXJ0aWVzPzogU21hcnRUYWJsZUhlYWRlclByb3BlcnRpZXM7XHJcbiAgYnV0dG9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcclxuICBpY29uPzogU21hcnRUYWJsZUljb247XHJcbiAgdHJhbnNsYXRvcj86ICgodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKSB8ICgodmFsdWU6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+KTtcclxuICBzaG93Q2hlY2tib3hJbkhlYWRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgb3JkZXI/OiBTbWFydFRhYmxlT3JkZXI7XHJcbiAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XHJcbiAgaXNTb3J0YWJsZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVPcmRlciB7XHJcbiAgQVNDID0gJ0FTQycsXHJcbiAgREVTQyA9ICdERVNDJyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlQnV0dG9uIHtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogVGhlbWVQYWxldHRlO1xyXG4gIGNvZGU/OiBzdHJpbmc7XHJcbiAgdHlwZTogU21hcnRUYWJsZUJ1dHRvblR5cGU7XHJcbiAgbWVudUl0ZW1CdXR0b25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xyXG4gIG1lbnVJdGVtQnV0dG9uc1Byb3BlcnR5TmFtZT86IHN0cmluZztcclxuICB0cmFuc2xhdG9yPzogKHVpQWN0aW9uOiBVaUFjdGlvbikgPT4gVWlBY3Rpb25EZXNjcmlwdG9yO1xyXG4gIGNhbGxiYWNrPzogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XHJcbiAgYXJncz86IGFueVtdO1xyXG4gIHNob3dCdXR0b25JZj86IChyb3c6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZUJ1dHRvblR5cGUge1xyXG4gIE1FTlUgPSAnTUVOVScsXHJcbiAgSUNPTiA9ICdJQ09OJyxcclxuICBOT1JNQUwgPSAnTk9STUFMJyxcclxuICBSQUlTRUQgPSAnUkFJU0VEJyxcclxuICBTRVBBUkFUT1IgPSAnU0VQQVJBVE9SJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbiB7XHJcbiAgSE9SSVpPTlRBTCxcclxuICBWRVJUSUNBTCxcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZTxUPiA9XHJcbiAgfCBTbWFydFRhYmxlSW50ZXJmYWNlPFQ+XHJcbiAgfCBTbWFydFRhYmxlR3JpZEludGVyZmFjZTxUPjtcclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bSB7XHJcbiAgTk9STUFMLFxyXG4gIEdSSUQsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUludGVyZmFjZTxUPiB7XHJcbiAgdHlwZTogU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLk5PUk1BTDtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0YWJsZUhlYWRlcnM/OiBzdHJpbmdbXTtcclxuICBjdXN0b21TbWFydFRhYmxlSGVhZGVycz86IFNtYXJ0VGFibGVIZWFkZXJbXTtcclxuICBjdXN0b21UYWJsZUhlYWRlcnM/OiBzdHJpbmdbXTtcclxuICB0YWJsZVJvd3M6IFRbXTtcclxuICB0YWJsZVR5cGU6IFNtYXJ0VGFibGVUeXBlO1xyXG4gIG9wdGlvbnM/OiBTbWFydFRhYmxlT3B0aW9uW107XHJcbiAgdGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24/OiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xyXG4gIG9uUm93Q2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIG9uUm93RG91YmxlQ2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIGRlZmF1bHRBY3Rpb25Db2Rlcz86IHN0cmluZ1tdO1xyXG4gIGRlZmF1bHRBY3Rpb25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xyXG4gIGhpZ2hsaWdodE9uUm93Q2xpY2s/OiBib29sZWFuO1xyXG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xyXG4gIGhvdmVyPzogYm9vbGVhbjtcclxuICBleHBhbmRhYmxlPzogYm9vbGVhbjtcclxuICBleHBhbmRlZENvbXBvbmVudD86IGFueTtcclxuICBhc3luY09uRXhwYW5kPzogYm9vbGVhbjtcclxuICBzb3J0SWNvbkFzYz86IHN0cmluZztcclxuICBzb3J0SWNvbkRlc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25OZXV0cmFsPzogc3RyaW5nO1xyXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICBtYXhOdW1PZlNlbGVjdGFibGVSb3dzPzogbnVtYmVyO1xyXG4gIHNlbGVjdGlvblByb3BlcnR5Pzogc3RyaW5nO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbk1vZGVsPGFueT47XHJcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuO1xyXG4gIGlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0YWJsZVByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBvblNlbGVjdGlvbj86IChyb3c6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBvbkFsbFNlbGVjdGlvbj86IChzZWxlY3RlZDogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPjtcclxuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcclxuICBoaWdobGlnaHRQcm9wZXJ0eT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVHcmlkSW50ZXJmYWNlPFQ+IHtcclxuICB0eXBlOiBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0uR1JJRDtcclxuICBjdXN0b21TbWFydFRhYmxlSGVhZGVycz86IFNtYXJ0VGFibGVIZWFkZXJbXTtcclxuICB0YWJsZVR5cGU6IFNtYXJ0VGFibGVUeXBlO1xyXG4gIG9wdGlvbnM/OiBTbWFydFRhYmxlT3B0aW9uW107XHJcbiAgdGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24/OiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xyXG4gIG9uUm93Q2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIG9uUm93RG91YmxlQ2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIGRlZmF1bHRBY3Rpb25Db2Rlcz86IHN0cmluZ1tdO1xyXG4gIGRlZmF1bHRBY3Rpb25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xyXG4gIGhpZ2hsaWdodE9uUm93Q2xpY2s/OiBib29sZWFuO1xyXG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xyXG4gIGhvdmVyPzogYm9vbGVhbjtcclxuICBzb3J0SWNvbkFzYz86IHN0cmluZztcclxuICBzb3J0SWNvbkRlc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25OZXV0cmFsPzogc3RyaW5nO1xyXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICBtYXhOdW1PZlNlbGVjdGFibGVSb3dzPzogbnVtYmVyO1xyXG4gIHNlbGVjdGlvblByb3BlcnR5Pzogc3RyaW5nO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbk1vZGVsPGFueT47XHJcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuO1xyXG4gIGlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0YWJsZVByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBvblNlbGVjdGlvbj86IChyb3c6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBvbkFsbFNlbGVjdGlvbj86IChzZWxlY3RlZDogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBhc3luY09uRXhwYW5kPzogYm9vbGVhbjtcclxuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcclxuICBoaWdobGlnaHRQcm9wZXJ0eT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlUm93RXhwYW5kZXI8VD4ge1xyXG4gIGV4cGFuZChyb3dJZDogbnVtYmVyKTogVDtcclxuICBleHBhbmRBc3luYyhyb3dJZDogbnVtYmVyKTogUHJvbWlzZTxUPjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNtYXJ0VGFibGU8VD4gaW1wbGVtZW50cyBTbWFydFRhYmxlSW50ZXJmYWNlPFQ+IHtcclxuICB0eXBlOiBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0uTk9STUFMID0gU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLk5PUk1BTDtcclxuICB0aXRsZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdO1xyXG4gIGN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPzogU21hcnRUYWJsZUhlYWRlcltdO1xyXG4gIGN1c3RvbVRhYmxlSGVhZGVycyE6IHN0cmluZ1tdO1xyXG4gIHRhYmxlUm93czogVFtdO1xyXG4gIHRhYmxlVHlwZTogU21hcnRUYWJsZVR5cGU7XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uTW9kZWw8YW55PjtcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBvcHRpb25zPzogU21hcnRUYWJsZU9wdGlvbltdO1xyXG4gIHRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uPzogU21hcnRUYWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcclxuICBvblJvd0NsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBvblJvd0RvdWJsZUNsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBkZWZhdWx0QWN0aW9uQ29kZXM/OiBzdHJpbmdbXTtcclxuICBkZWZhdWx0QWN0aW9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcclxuICBoaWdobGlnaHRPblJvd0NsaWNrPzogYm9vbGVhbjtcclxuICBoaWdobGlnaHRDbGFzcz86IHN0cmluZztcclxuICBob3Zlcj86IGJvb2xlYW47XHJcbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XHJcbiAgZXhwYW5kZWRDb21wb25lbnQ/OiBhbnk7XHJcbiAgYXN5bmNPbkV4cGFuZD86IGJvb2xlYW47XHJcbiAgc29ydEljb25Bc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25EZXNjPzogc3RyaW5nO1xyXG4gIHNvcnRJY29uTmV1dHJhbD86IHN0cmluZztcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgbWF4TnVtT2ZTZWxlY3RhYmxlUm93cz86IG51bWJlcjtcclxuICBzZWxlY3Rpb25Qcm9wZXJ0eT86IHN0cmluZztcclxuICBpc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIHNlbGVjdGFibGVQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgb25TZWxlY3Rpb24/OiAocm93OiBhbnkpID0+IFByb21pc2U8dm9pZD47XHJcbiAgb25BbGxTZWxlY3Rpb24/OiAoc2VsZWN0ZWQ6IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD47XHJcbiAgcm93RXhwYW5kZXI/OiBTbWFydFRhYmxlUm93RXhwYW5kZXI8VD47XHJcbiAgaGlnaGxpZ2h0UHJvcGVydHk/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU21hcnRUYWJsZUludGVyZmFjZTxUPikge1xyXG4gICAgdGhpcy5leHBhbmRhYmxlID0gY29uZmlnLmV4cGFuZGFibGU7XHJcbiAgICB0aGlzLmV4cGFuZGVkQ29tcG9uZW50ID0gY29uZmlnLmV4cGFuZGVkQ29tcG9uZW50O1xyXG4gICAgdGhpcy5hc3luY09uRXhwYW5kID0gY29uZmlnLmFzeW5jT25FeHBhbmQ7XHJcbiAgICB0aGlzLmhpZ2hsaWdodFByb3BlcnR5ID0gY29uZmlnLmhpZ2hsaWdodFByb3BlcnR5O1xyXG5cclxuICAgIHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgPSBjb25maWcuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM7XHJcblxyXG4gICAgaWYgKHRoaXMuZXhwYW5kYWJsZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnZXhwYW5kJyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlVHlwZSA9IGNvbmZpZy50YWJsZVR5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5DSEVDS19CT1gpIHtcclxuICAgICAgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6ICdzZWxlY3QnLFxyXG4gICAgICAgICAgc2hvd0NoZWNrYm94SW5IZWFkZXI6XHJcbiAgICAgICAgICAgIHR5cGVvZiBjb25maWcuc2hvd0NoZWNrYm94SW5IZWFkZXIgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6IGNvbmZpZy5zaG93Q2hlY2tib3hJbkhlYWRlcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhLFxyXG4gICAgICBdO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnRhYmxlVHlwZSA9PT0gU21hcnRUYWJsZVR5cGUuQ0hFQ0tfQk9YIHx8XHJcbiAgICAgIHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5ST1dfU0VMRUNUXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc011bHRpcGxlID0gY29uZmlnLmlzTXVsdGlwbGU7XHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGlvblByb3BlcnR5ID0gY29uZmlnLnNlbGVjdGlvblByb3BlcnR5O1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IGNvbmZpZy5zZWxlY3Rpb24gPz8gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRoaXMuaXNNdWx0aXBsZSwgW10pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVIZWFkZXJzID0gdGhpcy5nZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGNvbmZpZy50YWJsZVJvd3NbMF0pO1xyXG5cclxuICAgIHRoaXMuc2V0VGFibGVIZWFkZXJzKCk7XHJcblxyXG4gICAgdGhpcy50YWJsZVJvd3MgPSBjb25maWcudGFibGVSb3dzO1xyXG4gICAgdGhpcy50aXRsZSA9IGNvbmZpZy50aXRsZTtcclxuICAgIHRoaXMub3B0aW9ucyA9IGNvbmZpZy5vcHRpb25zO1xyXG4gICAgdGhpcy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbiA9IGNvbmZpZy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcclxuICAgIHRoaXMub25Sb3dDbGljayA9IGNvbmZpZy5vblJvd0NsaWNrO1xyXG4gICAgdGhpcy5vblJvd0RvdWJsZUNsaWNrID0gY29uZmlnLm9uUm93RG91YmxlQ2xpY2s7XHJcbiAgICB0aGlzLmRlZmF1bHRBY3Rpb25zID0gY29uZmlnLmRlZmF1bHRBY3Rpb25zO1xyXG4gICAgdGhpcy5kZWZhdWx0QWN0aW9uQ29kZXMgPSBjb25maWcuZGVmYXVsdEFjdGlvbkNvZGVzO1xyXG4gICAgdGhpcy5oaWdobGlnaHRPblJvd0NsaWNrID0gY29uZmlnLmhpZ2hsaWdodE9uUm93Q2xpY2s7XHJcbiAgICB0aGlzLmhpZ2hsaWdodENsYXNzID0gY29uZmlnLmhpZ2hsaWdodENsYXNzO1xyXG4gICAgdGhpcy5ob3ZlciA9IGNvbmZpZy5ob3ZlcjtcclxuICAgIHRoaXMuc29ydEljb25Bc2MgPSBjb25maWcuc29ydEljb25Bc2M7XHJcbiAgICB0aGlzLnNvcnRJY29uRGVzYyA9IGNvbmZpZy5zb3J0SWNvbkRlc2M7XHJcbiAgICB0aGlzLnNvcnRJY29uTmV1dHJhbCA9IGNvbmZpZy5zb3J0SWNvbk5ldXRyYWw7XHJcbiAgICB0aGlzLnNvcnRhYmxlID0gY29uZmlnLnNvcnRhYmxlO1xyXG4gICAgdGhpcy5tYXhOdW1PZlNlbGVjdGFibGVSb3dzID0gY29uZmlnLm1heE51bU9mU2VsZWN0YWJsZVJvd3M7XHJcbiAgICB0aGlzLmlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWUgPSBjb25maWcuaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZTtcclxuICAgIHRoaXMuc2VsZWN0YWJsZVByb3BlcnR5TmFtZSA9IGNvbmZpZy5zZWxlY3RhYmxlUHJvcGVydHlOYW1lO1xyXG4gICAgdGhpcy5vblNlbGVjdGlvbiA9IGNvbmZpZy5vblNlbGVjdGlvbjtcclxuICAgIHRoaXMub25BbGxTZWxlY3Rpb24gPSBjb25maWcub25BbGxTZWxlY3Rpb247XHJcbiAgICB0aGlzLnJvd0V4cGFuZGVyID0gY29uZmlnLnJvd0V4cGFuZGVyO1xyXG5cclxuICAgIHRoaXMucHVzaE9wdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIGdldFByb3BlcnR5TmFtZXNEZWVwbHkoZWxlbWVudDogYW55KTogc3RyaW5nW10ge1xyXG4gICAgaWYgKGVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGVsZW1lbnQpO1xyXG4gICAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZWxlbWVudCA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgdHlwZW9mIGVsZW1lbnRbcHJvcGVydHldID09PSAnc3RyaW5nJyB8fFxyXG4gICAgICAgIHR5cGVvZiBlbGVtZW50W3Byb3BlcnR5XSA9PT0gJ2Jvb2xlYW4nIHx8XHJcbiAgICAgICAgdHlwZW9mIGVsZW1lbnRbcHJvcGVydHldID09PSAnbnVtYmVyJyB8fFxyXG4gICAgICAgIGVsZW1lbnRbcHJvcGVydHldID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICBlbGVtZW50W3Byb3BlcnR5XSA9PT0gbnVsbCB8fFxyXG4gICAgICAgICFlbGVtZW50W3Byb3BlcnR5XSB8fFxyXG4gICAgICAgICFlbGVtZW50XHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW5uZXJQcm9wZXJ0aWVzID0gdGhpcy5nZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGVsZW1lbnRbcHJvcGVydHldKTtcclxuICAgICAgcHJvcGVydGllcy5wdXNoKC4uLmlubmVyUHJvcGVydGllcyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWVEZWVwbHkobW9kZWw6IGFueSwga2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgbGV0IHNwbGl0dGVkS2V5ID0ga2V5LnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgdmFsdWU6IGFueTtcclxuXHJcbiAgICBzcGxpdHRlZEtleS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IHtcclxuICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgIHZhbHVlID0gbW9kZWxba107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtrXSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlW2tdID09PSBudWxsIHx8ICF2YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSAnJztcclxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVtrXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVzaE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50YWJsZUhlYWRlcnMucHVzaCgnb3B0aW9ucycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VGFibGVIZWFkZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgJiYgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycy5sZW5ndGgpIHtcclxuICAgICAgbGV0IG9yaWdpbmFsSGVhZGVycyA9IHRoaXMudGFibGVIZWFkZXJzO1xyXG4gICAgICB0aGlzLnRhYmxlSGVhZGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzLmZvckVhY2goKHRhYmxlSGVhZGVyKSA9PiB7XHJcbiAgICAgICAgbGV0IHByb3BlcnR5TmFtZXMgPSB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUuc3BsaXQoJy4nKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmZpbHRlcigocHJvcGVydHkpID0+IG9yaWdpbmFsSGVhZGVycy5pbmNsdWRlcyhwcm9wZXJ0eSkpICYmXHJcbiAgICAgICAgICAhdGFibGVIZWFkZXIuaXNIaWRkZW5cclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIucHJvcGVydHlOYW1lKTtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tVGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIubGFiZWwpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5idXR0b25zIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5pY29uIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUgPT09ICdleHBhbmQnIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLnByb3BlcnR5TmFtZSk7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLmxhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21UYWJsZUhlYWRlcnMgPSB0aGlzLnRhYmxlSGVhZGVycztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -18,7 +18,7 @@ export class MaterialTableComponent extends Table {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
MaterialTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MaterialTableComponent, deps: [{ token: i1.ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
-
MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MaterialTableComponent, selector: "lib-material-table", usesInheritance: true, ngImport: i0, template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div class=\"smart-table-icon-container\">\r\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\r\n <div [ngStyle]=\"getImageResourceStyle(ir)\"\r\n ><smart-icon [icon]=\"ir.identifier!\" [color]=\"ir.color!\"> </smart-icon\r\n ></div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn.label }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <div *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\">\r\n <button\r\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ button.translator!(btn) }}\r\n </button>\r\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n <div *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\">\r\n <lib-default-actions-popup\r\n #defaultActionMenu\r\n [buttons]=\"getDefaultActionsForRow(element)!\"\r\n [row]=\"element\"\r\n ></lib-default-actions-popup>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row}\n"], components: [{ type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i8.DefaultActionsPopupComponent, selector: "lib-default-actions-popup", inputs: ["buttons", "row"] }, { type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "smartDateTime": i10.SmartDateTimePipe, "smartDate": i10.SmartDatePipe, "smartTime": i10.SmartTimePipe }, animations: [
|
|
21
|
+
MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MaterialTableComponent, selector: "lib-material-table", usesInheritance: true, ngImport: i0, template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div class=\"smart-table-icon-container\">\r\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\r\n <div [ngStyle]=\"getImageResourceStyle(ir)\"\r\n ><smart-icon [icon]=\"ir.identifier!\" [color]=\"ir.color!\"> </smart-icon\r\n ></div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn?.translator(btn)?.title }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <div *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\">\r\n <button\r\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n <div\r\n class=\"smart-table-icon-container\"\r\n [ngClass]=\"\r\n button.translator!(btn).iconPosition === 'POST' ? 'reversed' : ''\r\n \"\r\n ><smart-icon\r\n *ngIf=\"button.translator!(btn).icon\"\r\n [icon]=\"button.translator!(btn).icon!\"\r\n ></smart-icon>\r\n {{ button.translator!(btn).title }}</div\r\n >\r\n </button>\r\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n <div *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\">\r\n <lib-default-actions-popup\r\n #defaultActionMenu\r\n [buttons]=\"getDefaultActionsForRow(element)!\"\r\n [row]=\"element\"\r\n ></lib-default-actions-popup>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row}.reversed{flex-direction:row-reverse;gap:1rem}\n"], components: [{ type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i8.DefaultActionsPopupComponent, selector: "lib-default-actions-popup", inputs: ["buttons", "row"] }, { type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "smartDateTime": i10.SmartDateTimePipe, "smartDate": i10.SmartDatePipe, "smartTime": i10.SmartTimePipe }, animations: [
|
|
22
22
|
trigger('detailExpand', [
|
|
23
23
|
state('collapsed', style({ height: '0px', minHeight: '0' })),
|
|
24
24
|
state('expanded', style({ height: '*' })),
|
|
@@ -33,6 +33,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
33
33
|
state('expanded', style({ height: '*' })),
|
|
34
34
|
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
|
35
35
|
]),
|
|
36
|
-
], template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div class=\"smart-table-icon-container\">\r\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\r\n <div [ngStyle]=\"getImageResourceStyle(ir)\"\r\n ><smart-icon [icon]=\"ir.identifier!\" [color]=\"ir.color!\"> </smart-icon\r\n ></div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn.label }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <div *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\">\r\n <button\r\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n {{ button.translator!(btn) }}\r\n </button>\r\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n <div *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\">\r\n <lib-default-actions-popup\r\n #defaultActionMenu\r\n [buttons]=\"getDefaultActionsForRow(element)!\"\r\n [row]=\"element\"\r\n ></lib-default-actions-popup>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row}\n"] }]
|
|
36
|
+
], template: "<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div class=\"smart-table-icon-container\">\r\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\r\n <div [ngStyle]=\"getImageResourceStyle(ir)\"\r\n ><smart-icon [icon]=\"ir.identifier!\" [color]=\"ir.color!\"> </smart-icon\r\n ></div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element) : '') }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn?.translator(btn)?.title }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <div *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\">\r\n <button\r\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n >\r\n <div\r\n class=\"smart-table-icon-container\"\r\n [ngClass]=\"\r\n button.translator!(btn).iconPosition === 'POST' ? 'reversed' : ''\r\n \"\r\n ><smart-icon\r\n *ngIf=\"button.translator!(btn).icon\"\r\n [icon]=\"button.translator!(btn).icon!\"\r\n ></smart-icon>\r\n {{ button.translator!(btn).title }}</div\r\n >\r\n </button>\r\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n <div *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\">\r\n <lib-default-actions-popup\r\n #defaultActionMenu\r\n [buttons]=\"getDefaultActionsForRow(element)!\"\r\n [row]=\"element\"\r\n ></lib-default-actions-popup>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:whitesmoke}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row}.reversed{flex-direction:row-reverse;gap:1rem}\n"] }]
|
|
37
37
|
}], ctorParameters: function () { return [{ type: i1.ComponentFactoryService }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtdGFibGUvdGFibGVzL21hdGVyaWFsLXRhYmxlL21hdGVyaWFsLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3RhYmxlcy9tYXRlcmlhbC10YWJsZS9tYXRlcmlhbC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBZWpGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxLQUFLO0lBQy9DLFlBQVksU0FBa0M7UUFDNUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7O21IQUhVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGlGQ2pCbkMsOGdhQXlUQSw0bkhEaFRjO1FBQ1YsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUN0QixLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDNUQsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDdEYsQ0FBQztLQUNIOzJGQUVVLHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEI7d0JBQ1YsT0FBTyxDQUFDLGNBQWMsRUFBRTs0QkFDdEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDOzRCQUM1RCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDOzRCQUN6QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7eUJBQ3RGLENBQUM7cUJBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi90YWJsZSc7XHJcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudC1mYWN0b3J5LXNlcnZpY2UvcHJvamVjdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbWF0ZXJpYWwtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXRlcmlhbC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWF0ZXJpYWwtdGFibGUuY29tcG9uZW50LmNzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcclxuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JywgbWluSGVpZ2h0OiAnMCcgfSkpLFxyXG4gICAgICBzdGF0ZSgnZXhwYW5kZWQnLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFRhYmxlQ29tcG9uZW50IGV4dGVuZHMgVGFibGUge1xyXG4gIGNvbnN0cnVjdG9yKGNmU2VydmljZTogQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNmU2VydmljZSk7XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZVxyXG4gICNteVRhYmxlXHJcbiAgbWF0LXRhYmxlXHJcbiAgW2RhdGFTb3VyY2VdPVwic21hcnRUYWJsZS50YWJsZVJvd3NcIlxyXG4gIGNsYXNzPVwiZnVsbC13aWR0aFwiXHJcbiAgbXVsdGlUZW1wbGF0ZURhdGFSb3dzXHJcbj5cclxuICA8IS0tIENvbHVtbiBEZXNjcmlwdG9yIC0tPlxyXG4gIDxuZy1jb250YWluZXJcclxuICAgICpuZ0Zvcj1cImxldCBoZWFkZXIgb2Ygc21hcnRUYWJsZS50YWJsZUhlYWRlcnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgbWF0Q29sdW1uRGVmPVwie3sgaGVhZGVyIH19XCJcclxuICA+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJoZWFkZXIgPT09ICdpY29uJyB8fCBoZWFkZXIgPT09ICdpbWcnIHx8IGhlYWRlciA9PT0gJ29wdGlvbnMnIHx8IGhlYWRlciA9PT0gJ2J1dHRvbidcIlxyXG4gICAgICA+PC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXIgPT09ICdzZWxlY3QnXCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgKm5nSWY9XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIVtpXS5zaG93Q2hlY2tib3hJbkhlYWRlclwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHRvZ2dsZUFsbFJvd3MoKSA6IG51bGxcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic21hcnRUYWJsZS5zZWxlY3Rpb24hLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNtYXJ0VGFibGUuc2VsZWN0aW9uIS5oYXNWYWx1ZSgpICYmICFpc0FsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgW2FyaWEtbGFiZWxdPVwiY2hlY2tib3hMYWJlbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIVtpXS5zaG93Q2hlY2tib3hJbkhlYWRlclwiPlxyXG4gICAgICAgICAge3sgc21hcnRUYWJsZS5jdXN0b21UYWJsZUhlYWRlcnNbaV0gfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgaGVhZGVyICE9PSAnaWNvbicgJiZcclxuICAgICAgICAgIGhlYWRlciAhPT0gJ2ltZycgJiZcclxuICAgICAgICAgIGhlYWRlciAhPT0gJ29wdGlvbnMnICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdidXR0b24nICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdzZWxlY3QnICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdleHBhbmQnICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdhY3Rpb25zJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRUYWJsZS5zb3J0YWJsZTsgdGhlbiBzb3J0YWJsZTsgZWxzZSBub3RTb3J0YWJsZVwiPjwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc29ydGFibGU+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzb3J0QnV0dG9uQ2xpY2tlZCgkZXZlbnQsIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhW2ldKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5zb3J0YWJsZSAmJiBpc1NvcnRhYmxlKHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhW2ldKVwiXHJcbiAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvblwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHNtYXJ0VGFibGUuY3VzdG9tVGFibGVIZWFkZXJzW2ldIH19XHJcbiAgICAgICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvbkljb25cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZ2V0U29ydEljb24oaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCJzb3J0XCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRTb3J0SWNvbihoZWFkZXIpIVwiXHJcbiAgICAgICAgICAgID48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvbkljb25cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzU29ydE51bUljb24oaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCJzb3J0XCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRTb3J0TnVtSWNvbihoZWFkZXIpXCJcclxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub3RTb3J0YWJsZT5cclxuICAgICAgICAgIHt7IHNtYXJ0VGFibGUuY3VzdG9tVGFibGVIZWFkZXJzW2ldIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIiBbbmdDbGFzc109XCJpc0Rpc2FibGVkKGVsZW1lbnQpID8gJ2Rpc2FibGVkUm93JyA6ICcnXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnICYmXHJcbiAgICAgICAgICAhaXNEaXNhYmxlZChlbGVtZW50KVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJcclxuICAgICAgICAgICRldmVudFxyXG4gICAgICAgICAgICA/IHNldFNlbGVjdGlvbihcclxuICAgICAgICAgICAgICAgIHNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHlcclxuICAgICAgICAgICAgICAgICAgPyBzbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KGVsZW1lbnQsIHNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgICAgIDogZWxlbWVudFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChlbGVtZW50KVwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwiXHJcbiAgICAgICAgICBzbWFydFRhYmxlLnNlbGVjdGlvbiEuaXNTZWxlY3RlZChcclxuICAgICAgICAgICAgc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eVxyXG4gICAgICAgICAgICAgID8gc21hcnRUYWJsZS5nZXRWYWx1ZURlZXBseShlbGVtZW50LCBzbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5KVxyXG4gICAgICAgICAgICAgIDogZWxlbWVudFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgW2FyaWEtbGFiZWxdPVwiXHJcbiAgICAgICAgICBjaGVja2JveExhYmVsKFxyXG4gICAgICAgICAgICBzbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5XHJcbiAgICAgICAgICAgICAgPyBzbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KGVsZW1lbnQsIHNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllc1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy50eXBlID09PSB0eXBlKCkuREFURVRJTUVcIj5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgIGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcilcclxuICAgICAgICAgICAgICB8IHNtYXJ0RGF0ZVRpbWUgOiBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnRpZXM/LmRhdGVGb3JtYXRcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8udHlwZSA9PT0gdHlwZSgpLkRBVEVcIj5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgIGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcilcclxuICAgICAgICAgICAgICB8IHNtYXJ0RGF0ZSA6IHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8uZGF0ZUZvcm1hdFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy50eXBlID09PSB0eXBlKCkuVElNRVwiPlxyXG4gICAgICAgICAge3tcclxuICAgICAgICAgICAgZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVxyXG4gICAgICAgICAgICAgIHwgc21hcnRUaW1lIDogc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy5kYXRlRm9ybWF0XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8udHlwZSA9PT0gdHlwZSgpLklDT04gJiZcclxuICAgICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy5pY29ucz8ubGVuZ3RoXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAgIFtpY29uXT1cImdldEljb24oZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKSwgaSkhXCJcclxuICAgICAgICAgICAgW2NvbG9yXT1cImdldENvbG9yKGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlciksIGkpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvc21hcnQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzbWFydC10YWJsZS1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGlyIG9mIGdldEltYWdlUmVzb3VyY2VJY29ucyhlbGVtZW50LCBoZWFkZXIpXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cImdldEltYWdlUmVzb3VyY2VTdHlsZShpcilcIlxyXG4gICAgICAgICAgICA+PHNtYXJ0LWljb24gW2ljb25dPVwiaXIuaWRlbnRpZmllciFcIiBbY29sb3JdPVwiaXIuY29sb3IhXCI+IDwvc21hcnQtaWNvblxyXG4gICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJiBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmJ1dHRvbnNcIlxyXG4gICAgICAgIGNsYXNzPVwic21hcnQtdGFibGUtYnV0dG9ucy1jb2xcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uYnV0dG9uc1wiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dCdXR0b24oYnV0dG9uLCBlbGVtZW50KVwiIFtuZ1N3aXRjaF09XCJidXR0b24udHlwZVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBidXR0b24sIGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwic21hcnRUYWJsZUJ1dHRvblR5cGUuSUNPTlwiXHJcbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNtYXJ0LWljb24gdGl0bGU9XCJ7eyBidXR0b24ubGFiZWwgfX1cIiBbaWNvbl09XCJidXR0b24uaWNvbiFcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBidXR0b24sIGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwic21hcnRUYWJsZUJ1dHRvblR5cGUuTk9STUFMXCJcclxuICAgICAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNtYXJ0LWljb24gKm5nSWY9XCJidXR0b24uaWNvblwiIFtpY29uXT1cImJ1dHRvbi5pY29uXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCA/PyAoYnV0dG9uLnRyYW5zbGF0b3IgPyBidXR0b24udHJhbnNsYXRvcihlbGVtZW50KSA6ICcnKSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjdXN0b21CdXR0b25DbGlja2VkKCRldmVudCwgYnV0dG9uLCBlbGVtZW50KVwiXHJcbiAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInNtYXJ0VGFibGVCdXR0b25UeXBlLlJBSVNFRFwiXHJcbiAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgICAgICAgICBjb2xvcj1cInt7IGJ1dHRvbi5jb2xvciB9fVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCIgW2ljb25dPVwiYnV0dG9uLmljb25cIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgICAge3sgYnV0dG9uLmxhYmVsID8/IChidXR0b24udHJhbnNsYXRvciA/IGJ1dHRvbi50cmFuc2xhdG9yKGVsZW1lbnQpIDogJycpIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCJzbWFydFRhYmxlQnV0dG9uVHlwZS5NRU5VXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93TWVudUJ1dHRvbihlbGVtZW50LCBidXR0b24pXCJcclxuICAgICAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXN0b21CdXR0b25DbGlja2VkKCRldmVudCwgYnV0dG9uLCBlbGVtZW50LCB1bmRlZmluZWQsIHRydWUpXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uLmNvbG9yIH19XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCIgW2ljb25dPVwiYnV0dG9uLmljb25cIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgPz8gKGJ1dHRvbi50cmFuc2xhdG9yID8gYnV0dG9uLnRyYW5zbGF0b3IoZWxlbWVudCkgOiAnJykgfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnV0dG9uLm1lbnVJdGVtQnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ0biBvZiBidXR0b24ubWVudUl0ZW1CdXR0b25zXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ0biwgZWxlbWVudCwgdW5kZWZpbmVkLCB0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtYXJ0LWljb24gKm5nSWY9XCJidG4uaWNvblwiIFtpY29uXT1cImJ0bi5pY29uXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGJ0bi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJ1dHRvbi5tZW51SXRlbUJ1dHRvbnNQcm9wZXJ0eU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnRuIG9mIGdldFZhbHVlKGVsZW1lbnQsIGJ1dHRvbi5tZW51SXRlbUJ1dHRvbnNQcm9wZXJ0eU5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJidG4uY29kZSAhPT0gQUNUSU9OX1NFUEVSQVRPUlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ1dHRvbiwgZWxlbWVudCwgYnRuLCB0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgYnV0dG9uLnRyYW5zbGF0b3IhKGJ0bikgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJidG4uY29kZSA9PT0gQUNUSU9OX1NFUEVSQVRPUlwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uaWNvblwiPlxyXG4gICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAqbmdJZj1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uaWNvbj8uaWNvblwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmljb24/LmNzc0NsYXNzID8/ICcnXCJcclxuICAgICAgICAgIFtjb2xvcl09XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmljb24/LmNvbG9yXCJcclxuICAgICAgICAgIFtpY29uXT1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uaWNvbiEuaWNvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvc21hcnQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yICE9PSB1bmRlZmluZWRcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yIShnZXRWYWx1ZShlbGVtZW50LCBoZWFkZXIpKSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmXHJcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnR5TmFtZSA9PT0gJ2V4cGFuZCdcclxuICAgICAgICBcIlxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJleHBhbmQgcm93XCJcclxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGUoZWxlbWVudCwgJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImV4cGFuZGVkRWxlbWVudCAhPT0gZWxlbWVudFwiIFtpY29uXT1cIidrZXlib2FyZF9hcnJvd19kb3duJ1wiPjwvc21hcnQtaWNvbj5cclxuICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImV4cGFuZGVkRWxlbWVudCA9PT0gZWxlbWVudFwiIFtpY29uXT1cIidrZXlib2FyZF9hcnJvd191cCdcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICFzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIHx8XHJcbiAgICAgICAgICAoc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJlxyXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzICYmXHJcbiAgICAgICAgICAgICFzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmljb24gJiZcclxuICAgICAgICAgICAgIXNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uYnV0dG9ucyAmJlxyXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yICYmXHJcbiAgICAgICAgICAgICEoc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnKSAmJlxyXG4gICAgICAgICAgICAhKHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydHlOYW1lID09PSAnZXhwYW5kJykpXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzbWFydC1pY29uICpuZ0lmPVwiaGVhZGVyID09PSAnaWNvbidcIiBbaWNvbl09XCJnZXRWYWx1ZShlbGVtZW50LCBoZWFkZXIpIVwiPiA8L3NtYXJ0LWljb24+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgKm5nSWY9XCJoZWFkZXIgPT09ICdpbWcnXCJcclxuICAgICAgICAgIFtzcmNdPVwiZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVwiXHJcbiAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzbWFydHRhYmxlSW1nXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGhlYWRlciAhPT0gJ2ljb24nICYmXHJcbiAgICAgICAgICAgIGhlYWRlciAhPT0gJ2ltZycgJiZcclxuICAgICAgICAgICAgaGVhZGVyICE9PSAnb3B0aW9uJyAmJlxyXG4gICAgICAgICAgICBoZWFkZXIgIT09ICdidXR0b24nICYmXHJcbiAgICAgICAgICAgICFpc0ltYWdlUmVzb3VyY2UoZWxlbWVudCwgaGVhZGVyKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIFtpbm5lckh0bWxdPVwiZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNtYXJ0VGFibGUuZGVmYXVsdEFjdGlvbkNvZGVzICYmIHNtYXJ0VGFibGUuZGVmYXVsdEFjdGlvbkNvZGVzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bGliLWRlZmF1bHQtYWN0aW9ucy1wb3B1cFxyXG4gICAgICAgICAgI2RlZmF1bHRBY3Rpb25NZW51XHJcbiAgICAgICAgICBbYnV0dG9uc109XCJnZXREZWZhdWx0QWN0aW9uc0ZvclJvdyhlbGVtZW50KSFcIlxyXG4gICAgICAgICAgW3Jvd109XCJlbGVtZW50XCJcclxuICAgICAgICA+PC9saWItZGVmYXVsdC1hY3Rpb25zLXBvcHVwPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCBDb2x1bW4gLSBUaGUgZGV0YWlsIHJvdyBpcyBtYWRlIHVwIG9mIHRoaXMgb25lIGNvbHVtbiB0aGF0IHNwYW5zIGFjcm9zcyBhbGwgY29sdW1ucyAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImV4cGFuZGVkRGV0YWlsXCI+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFthdHRyLmNvbHNwYW5dPVwic21hcnRUYWJsZS50YWJsZUhlYWRlcnMubGVuZ3RoXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImV4YW1wbGUtZWxlbWVudC1kZXRhaWxcIlxyXG4gICAgICAgIFtAZGV0YWlsRXhwYW5kXT1cImVsZW1lbnQgPT0gZXhwYW5kZWRFbGVtZW50ID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZXhwYW5kZWRBcmVhPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJzbWFydFRhYmxlLnRhYmxlSGVhZGVyczsgc3RpY2t5OiB0cnVlXCI+PC90cj5cclxuICA8dHJcclxuICAgIG1hdC1yb3dcclxuICAgICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogc21hcnRUYWJsZS50YWJsZUhlYWRlcnNcIlxyXG4gICAgY2xhc3M9XCJleGFtcGxlLWVsZW1lbnQtcm93XCJcclxuICAgIFtjbGFzcy5leGFtcGxlLWV4cGFuZGVkLXJvd109XCJleHBhbmRlZEVsZW1lbnQgPT09IGVsZW1lbnRcIlxyXG4gICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICBpc0hpZ2hsaWdodGVkKGVsZW1lbnQpID8gc21hcnRUYWJsZS5oaWdobGlnaHRDbGFzcyEgOiAndW5zZWxlY3RlZCcsXHJcbiAgICAgIHNtYXJ0VGFibGUuaG92ZXIgPyAnc21hcnRUYWJsZVJvd0hvdmVyJyA6ICcnLFxyXG4gICAgICBpc1NlbGVjdGVkKGVsZW1lbnQpID8gJ3NlbGVjdGVkJyA6ICcnXHJcbiAgICBdXCJcclxuICAgIChjbGljayk9XCJoYW5kbGVPblJvd0NsaWNrKGVsZW1lbnQpXCJcclxuICAgIChkYmxjbGljayk9XCJoYW5kbGVPblJvd0RvdWJsZUNsaWNrKGVsZW1lbnQpXCJcclxuICA+PC90cj5cclxuICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydleHBhbmRlZERldGFpbCddXCIgY2xhc3M9XCJleGFtcGxlLWRldGFpbC1yb3dcIj48L3RyPlxyXG48L3RhYmxlPlxyXG4iXX0=
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtdGFibGUvdGFibGVzL21hdGVyaWFsLXRhYmxlL21hdGVyaWFsLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3RhYmxlcy9tYXRlcmlhbC10YWJsZS9tYXRlcmlhbC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBZWpGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxLQUFLO0lBQy9DLFlBQVksU0FBa0M7UUFDNUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7O21IQUhVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGlGQ2pCbkMsdWliQW1VQSwwcUhEMVRjO1FBQ1YsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUN0QixLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDNUQsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDdEYsQ0FBQztLQUNIOzJGQUVVLHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEI7d0JBQ1YsT0FBTyxDQUFDLGNBQWMsRUFBRTs0QkFDdEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDOzRCQUM1RCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDOzRCQUN6QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7eUJBQ3RGLENBQUM7cUJBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi90YWJsZSc7XHJcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudC1mYWN0b3J5LXNlcnZpY2UvcHJvamVjdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbWF0ZXJpYWwtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXRlcmlhbC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWF0ZXJpYWwtdGFibGUuY29tcG9uZW50LmNzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcclxuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JywgbWluSGVpZ2h0OiAnMCcgfSkpLFxyXG4gICAgICBzdGF0ZSgnZXhwYW5kZWQnLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFRhYmxlQ29tcG9uZW50IGV4dGVuZHMgVGFibGUge1xyXG4gIGNvbnN0cnVjdG9yKGNmU2VydmljZTogQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNmU2VydmljZSk7XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZVxyXG4gICNteVRhYmxlXHJcbiAgbWF0LXRhYmxlXHJcbiAgW2RhdGFTb3VyY2VdPVwic21hcnRUYWJsZS50YWJsZVJvd3NcIlxyXG4gIGNsYXNzPVwiZnVsbC13aWR0aFwiXHJcbiAgbXVsdGlUZW1wbGF0ZURhdGFSb3dzXHJcbj5cclxuICA8IS0tIENvbHVtbiBEZXNjcmlwdG9yIC0tPlxyXG4gIDxuZy1jb250YWluZXJcclxuICAgICpuZ0Zvcj1cImxldCBoZWFkZXIgb2Ygc21hcnRUYWJsZS50YWJsZUhlYWRlcnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgbWF0Q29sdW1uRGVmPVwie3sgaGVhZGVyIH19XCJcclxuICA+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJoZWFkZXIgPT09ICdpY29uJyB8fCBoZWFkZXIgPT09ICdpbWcnIHx8IGhlYWRlciA9PT0gJ29wdGlvbnMnIHx8IGhlYWRlciA9PT0gJ2J1dHRvbidcIlxyXG4gICAgICA+PC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXIgPT09ICdzZWxlY3QnXCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgKm5nSWY9XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIVtpXS5zaG93Q2hlY2tib3hJbkhlYWRlclwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHRvZ2dsZUFsbFJvd3MoKSA6IG51bGxcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic21hcnRUYWJsZS5zZWxlY3Rpb24hLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNtYXJ0VGFibGUuc2VsZWN0aW9uIS5oYXNWYWx1ZSgpICYmICFpc0FsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgW2FyaWEtbGFiZWxdPVwiY2hlY2tib3hMYWJlbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIVtpXS5zaG93Q2hlY2tib3hJbkhlYWRlclwiPlxyXG4gICAgICAgICAge3sgc21hcnRUYWJsZS5jdXN0b21UYWJsZUhlYWRlcnNbaV0gfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgaGVhZGVyICE9PSAnaWNvbicgJiZcclxuICAgICAgICAgIGhlYWRlciAhPT0gJ2ltZycgJiZcclxuICAgICAgICAgIGhlYWRlciAhPT0gJ29wdGlvbnMnICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdidXR0b24nICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdzZWxlY3QnICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdleHBhbmQnICYmXHJcbiAgICAgICAgICBoZWFkZXIgIT09ICdhY3Rpb25zJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRUYWJsZS5zb3J0YWJsZTsgdGhlbiBzb3J0YWJsZTsgZWxzZSBub3RTb3J0YWJsZVwiPjwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc29ydGFibGU+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzb3J0QnV0dG9uQ2xpY2tlZCgkZXZlbnQsIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhW2ldKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5zb3J0YWJsZSAmJiBpc1NvcnRhYmxlKHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhW2ldKVwiXHJcbiAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvblwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHNtYXJ0VGFibGUuY3VzdG9tVGFibGVIZWFkZXJzW2ldIH19XHJcbiAgICAgICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvbkljb25cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZ2V0U29ydEljb24oaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCJzb3J0XCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRTb3J0SWNvbihoZWFkZXIpIVwiXHJcbiAgICAgICAgICAgID48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvbkljb25cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzU29ydE51bUljb24oaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCJzb3J0XCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRTb3J0TnVtSWNvbihoZWFkZXIpXCJcclxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub3RTb3J0YWJsZT5cclxuICAgICAgICAgIHt7IHNtYXJ0VGFibGUuY3VzdG9tVGFibGVIZWFkZXJzW2ldIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIiBbbmdDbGFzc109XCJpc0Rpc2FibGVkKGVsZW1lbnQpID8gJ2Rpc2FibGVkUm93JyA6ICcnXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnICYmXHJcbiAgICAgICAgICAhaXNEaXNhYmxlZChlbGVtZW50KVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJcclxuICAgICAgICAgICRldmVudFxyXG4gICAgICAgICAgICA/IHNldFNlbGVjdGlvbihcclxuICAgICAgICAgICAgICAgIHNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHlcclxuICAgICAgICAgICAgICAgICAgPyBzbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KGVsZW1lbnQsIHNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgICAgIDogZWxlbWVudFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChlbGVtZW50KVwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwiXHJcbiAgICAgICAgICBzbWFydFRhYmxlLnNlbGVjdGlvbiEuaXNTZWxlY3RlZChcclxuICAgICAgICAgICAgc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eVxyXG4gICAgICAgICAgICAgID8gc21hcnRUYWJsZS5nZXRWYWx1ZURlZXBseShlbGVtZW50LCBzbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5KVxyXG4gICAgICAgICAgICAgIDogZWxlbWVudFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgW2FyaWEtbGFiZWxdPVwiXHJcbiAgICAgICAgICBjaGVja2JveExhYmVsKFxyXG4gICAgICAgICAgICBzbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5XHJcbiAgICAgICAgICAgICAgPyBzbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KGVsZW1lbnQsIHNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllc1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy50eXBlID09PSB0eXBlKCkuREFURVRJTUVcIj5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgIGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcilcclxuICAgICAgICAgICAgICB8IHNtYXJ0RGF0ZVRpbWUgOiBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnRpZXM/LmRhdGVGb3JtYXRcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8udHlwZSA9PT0gdHlwZSgpLkRBVEVcIj5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgIGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcilcclxuICAgICAgICAgICAgICB8IHNtYXJ0RGF0ZSA6IHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8uZGF0ZUZvcm1hdFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy50eXBlID09PSB0eXBlKCkuVElNRVwiPlxyXG4gICAgICAgICAge3tcclxuICAgICAgICAgICAgZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVxyXG4gICAgICAgICAgICAgIHwgc21hcnRUaW1lIDogc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy5kYXRlRm9ybWF0XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8udHlwZSA9PT0gdHlwZSgpLklDT04gJiZcclxuICAgICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy5pY29ucz8ubGVuZ3RoXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAgIFtpY29uXT1cImdldEljb24oZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKSwgaSkhXCJcclxuICAgICAgICAgICAgW2NvbG9yXT1cImdldENvbG9yKGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlciksIGkpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvc21hcnQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzbWFydC10YWJsZS1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGlyIG9mIGdldEltYWdlUmVzb3VyY2VJY29ucyhlbGVtZW50LCBoZWFkZXIpXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cImdldEltYWdlUmVzb3VyY2VTdHlsZShpcilcIlxyXG4gICAgICAgICAgICA+PHNtYXJ0LWljb24gW2ljb25dPVwiaXIuaWRlbnRpZmllciFcIiBbY29sb3JdPVwiaXIuY29sb3IhXCI+IDwvc21hcnQtaWNvblxyXG4gICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJiBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmJ1dHRvbnNcIlxyXG4gICAgICAgIGNsYXNzPVwic21hcnQtdGFibGUtYnV0dG9ucy1jb2xcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uYnV0dG9uc1wiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dCdXR0b24oYnV0dG9uLCBlbGVtZW50KVwiIFtuZ1N3aXRjaF09XCJidXR0b24udHlwZVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBidXR0b24sIGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwic21hcnRUYWJsZUJ1dHRvblR5cGUuSUNPTlwiXHJcbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNtYXJ0LWljb24gdGl0bGU9XCJ7eyBidXR0b24ubGFiZWwgfX1cIiBbaWNvbl09XCJidXR0b24uaWNvbiFcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBidXR0b24sIGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwic21hcnRUYWJsZUJ1dHRvblR5cGUuTk9STUFMXCJcclxuICAgICAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNtYXJ0LWljb24gKm5nSWY9XCJidXR0b24uaWNvblwiIFtpY29uXT1cImJ1dHRvbi5pY29uXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCA/PyAoYnV0dG9uLnRyYW5zbGF0b3IgPyBidXR0b24udHJhbnNsYXRvcihlbGVtZW50KSA6ICcnKSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjdXN0b21CdXR0b25DbGlja2VkKCRldmVudCwgYnV0dG9uLCBlbGVtZW50KVwiXHJcbiAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInNtYXJ0VGFibGVCdXR0b25UeXBlLlJBSVNFRFwiXHJcbiAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgICAgICAgICBjb2xvcj1cInt7IGJ1dHRvbi5jb2xvciB9fVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCIgW2ljb25dPVwiYnV0dG9uLmljb25cIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgICAge3sgYnV0dG9uLmxhYmVsID8/IChidXR0b24udHJhbnNsYXRvciA/IGJ1dHRvbi50cmFuc2xhdG9yKGVsZW1lbnQpIDogJycpIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCJzbWFydFRhYmxlQnV0dG9uVHlwZS5NRU5VXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93TWVudUJ1dHRvbihlbGVtZW50LCBidXR0b24pXCJcclxuICAgICAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXN0b21CdXR0b25DbGlja2VkKCRldmVudCwgYnV0dG9uLCBlbGVtZW50LCB1bmRlZmluZWQsIHRydWUpXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uLmNvbG9yIH19XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCIgW2ljb25dPVwiYnV0dG9uLmljb25cIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgPz8gKGJ1dHRvbi50cmFuc2xhdG9yID8gYnV0dG9uLnRyYW5zbGF0b3IoZWxlbWVudCkgOiAnJykgfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnV0dG9uLm1lbnVJdGVtQnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ0biBvZiBidXR0b24ubWVudUl0ZW1CdXR0b25zXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ0biwgZWxlbWVudCwgdW5kZWZpbmVkLCB0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtYXJ0LWljb24gKm5nSWY9XCJidG4uaWNvblwiIFtpY29uXT1cImJ0bi5pY29uXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGJ0bj8udHJhbnNsYXRvcihidG4pPy50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJ1dHRvbi5tZW51SXRlbUJ1dHRvbnNQcm9wZXJ0eU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnRuIG9mIGdldFZhbHVlKGVsZW1lbnQsIGJ1dHRvbi5tZW51SXRlbUJ1dHRvbnNQcm9wZXJ0eU5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJidG4uY29kZSAhPT0gQUNUSU9OX1NFUEVSQVRPUlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ1dHRvbiwgZWxlbWVudCwgYnRuLCB0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYXJ0LXRhYmxlLWljb24tY29udGFpbmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnRyYW5zbGF0b3IhKGJ0bikuaWNvblBvc2l0aW9uID09PSAnUE9TVCcgPyAncmV2ZXJzZWQnIDogJydcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjxzbWFydC1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJidXR0b24udHJhbnNsYXRvciEoYnRuKS5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJidXR0b24udHJhbnNsYXRvciEoYnRuKS5pY29uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ1dHRvbi50cmFuc2xhdG9yIShidG4pLnRpdGxlIH19PC9kaXZcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJidG4uY29kZSA9PT0gQUNUSU9OX1NFUEVSQVRPUlwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uaWNvblwiPlxyXG4gICAgICAgIDxzbWFydC1pY29uXHJcbiAgICAgICAgICAqbmdJZj1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uaWNvbj8uaWNvblwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmljb24/LmNzc0NsYXNzID8/ICcnXCJcclxuICAgICAgICAgIFtjb2xvcl09XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmljb24/LmNvbG9yXCJcclxuICAgICAgICAgIFtpY29uXT1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uaWNvbiEuaWNvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvc21hcnQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJlxyXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yICE9PSB1bmRlZmluZWRcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yIShnZXRWYWx1ZShlbGVtZW50LCBoZWFkZXIpKSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmXHJcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnR5TmFtZSA9PT0gJ2V4cGFuZCdcclxuICAgICAgICBcIlxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJleHBhbmQgcm93XCJcclxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGUoZWxlbWVudCwgJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImV4cGFuZGVkRWxlbWVudCAhPT0gZWxlbWVudFwiIFtpY29uXT1cIidrZXlib2FyZF9hcnJvd19kb3duJ1wiPjwvc21hcnQtaWNvbj5cclxuICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImV4cGFuZGVkRWxlbWVudCA9PT0gZWxlbWVudFwiIFtpY29uXT1cIidrZXlib2FyZF9hcnJvd191cCdcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICFzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIHx8XHJcbiAgICAgICAgICAoc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJlxyXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzICYmXHJcbiAgICAgICAgICAgICFzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmljb24gJiZcclxuICAgICAgICAgICAgIXNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uYnV0dG9ucyAmJlxyXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yICYmXHJcbiAgICAgICAgICAgICEoc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnKSAmJlxyXG4gICAgICAgICAgICAhKHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydHlOYW1lID09PSAnZXhwYW5kJykpXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzbWFydC1pY29uICpuZ0lmPVwiaGVhZGVyID09PSAnaWNvbidcIiBbaWNvbl09XCJnZXRWYWx1ZShlbGVtZW50LCBoZWFkZXIpIVwiPiA8L3NtYXJ0LWljb24+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgKm5nSWY9XCJoZWFkZXIgPT09ICdpbWcnXCJcclxuICAgICAgICAgIFtzcmNdPVwiZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVwiXHJcbiAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzbWFydHRhYmxlSW1nXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGhlYWRlciAhPT0gJ2ljb24nICYmXHJcbiAgICAgICAgICAgIGhlYWRlciAhPT0gJ2ltZycgJiZcclxuICAgICAgICAgICAgaGVhZGVyICE9PSAnb3B0aW9uJyAmJlxyXG4gICAgICAgICAgICBoZWFkZXIgIT09ICdidXR0b24nICYmXHJcbiAgICAgICAgICAgICFpc0ltYWdlUmVzb3VyY2UoZWxlbWVudCwgaGVhZGVyKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIFtpbm5lckh0bWxdPVwiZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNtYXJ0VGFibGUuZGVmYXVsdEFjdGlvbkNvZGVzICYmIHNtYXJ0VGFibGUuZGVmYXVsdEFjdGlvbkNvZGVzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bGliLWRlZmF1bHQtYWN0aW9ucy1wb3B1cFxyXG4gICAgICAgICAgI2RlZmF1bHRBY3Rpb25NZW51XHJcbiAgICAgICAgICBbYnV0dG9uc109XCJnZXREZWZhdWx0QWN0aW9uc0ZvclJvdyhlbGVtZW50KSFcIlxyXG4gICAgICAgICAgW3Jvd109XCJlbGVtZW50XCJcclxuICAgICAgICA+PC9saWItZGVmYXVsdC1hY3Rpb25zLXBvcHVwPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCBDb2x1bW4gLSBUaGUgZGV0YWlsIHJvdyBpcyBtYWRlIHVwIG9mIHRoaXMgb25lIGNvbHVtbiB0aGF0IHNwYW5zIGFjcm9zcyBhbGwgY29sdW1ucyAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImV4cGFuZGVkRGV0YWlsXCI+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFthdHRyLmNvbHNwYW5dPVwic21hcnRUYWJsZS50YWJsZUhlYWRlcnMubGVuZ3RoXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImV4YW1wbGUtZWxlbWVudC1kZXRhaWxcIlxyXG4gICAgICAgIFtAZGV0YWlsRXhwYW5kXT1cImVsZW1lbnQgPT0gZXhwYW5kZWRFbGVtZW50ID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZXhwYW5kZWRBcmVhPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJzbWFydFRhYmxlLnRhYmxlSGVhZGVyczsgc3RpY2t5OiB0cnVlXCI+PC90cj5cclxuICA8dHJcclxuICAgIG1hdC1yb3dcclxuICAgICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogc21hcnRUYWJsZS50YWJsZUhlYWRlcnNcIlxyXG4gICAgY2xhc3M9XCJleGFtcGxlLWVsZW1lbnQtcm93XCJcclxuICAgIFtjbGFzcy5leGFtcGxlLWV4cGFuZGVkLXJvd109XCJleHBhbmRlZEVsZW1lbnQgPT09IGVsZW1lbnRcIlxyXG4gICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICBpc0hpZ2hsaWdodGVkKGVsZW1lbnQpID8gc21hcnRUYWJsZS5oaWdobGlnaHRDbGFzcyEgOiAndW5zZWxlY3RlZCcsXHJcbiAgICAgIHNtYXJ0VGFibGUuaG92ZXIgPyAnc21hcnRUYWJsZVJvd0hvdmVyJyA6ICcnLFxyXG4gICAgICBpc1NlbGVjdGVkKGVsZW1lbnQpID8gJ3NlbGVjdGVkJyA6ICcnXHJcbiAgICBdXCJcclxuICAgIChjbGljayk9XCJoYW5kbGVPblJvd0NsaWNrKGVsZW1lbnQpXCJcclxuICAgIChkYmxjbGljayk9XCJoYW5kbGVPblJvd0RvdWJsZUNsaWNrKGVsZW1lbnQpXCJcclxuICA+PC90cj5cclxuICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydleHBhbmRlZERldGFpbCddXCIgY2xhc3M9XCJleGFtcGxlLWRldGFpbC1yb3dcIj48L3RyPlxyXG48L3RhYmxlPlxyXG4iXX0=
|
|
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
174
174
|
providedIn: 'root',
|
|
175
175
|
}]
|
|
176
176
|
}], ctorParameters: function () { return [{ type: i1.SmartViewContextService }]; } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUdsQixvQkFBb0IsR0FDckIsTUFBTSxRQUFRLENBQUM7OztBQU1oQixNQUFNLE9BQU8seUJBQXlCO0lBTXBDLFlBQW9CLFdBQW9DO1FBQXBDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUxoRCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFakQsb0JBQWUsR0FBa0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7UUF1S2hGLDJCQUFzQixHQUFvQyxJQUFJLEdBQUcsQ0FBQztZQUN4RTtnQkFDRSxRQUFRO2dCQUNSO29CQUNFLEtBQUssRUFBRSxFQUFFO29CQUNULElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO29CQUMvQixLQUFLLEVBQUUsUUFBUTtvQkFDZixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxJQUFJO29CQUN4QyxNQUFNLEVBQUU7d0JBQ04s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QUFDO2FBQ25GO2lCQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQ3JFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbkQ7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTywyQkFBMkIsQ0FDakMsSUFBWSxFQUNaLGtCQUFzQyxFQUN0QyxVQUF1RTtRQUV2RSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakUsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEdBQUcsZ0JBQWlCLENBQUMsTUFBTSxDQUFDO1FBQzFELGtCQUFrQixDQUFDLFVBQVUsQ0FBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0Msa0JBQWtCLENBQUMsVUFBVSxDQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFNUQsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDOztzSEF6S1UseUJBQXlCOzBIQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbWFydFN1YmplY3QgfSBmcm9tICcuLi8uLi9zbWFydC1zdWJqZWN0L3Byb2plY3RzJztcclxuaW1wb3J0IHtcclxuICBVaUFjdGlvbixcclxuICBVaUFjdGlvbkJ1dHRvbkljb25Qb3MsXHJcbiAgVWlBY3Rpb25CdXR0b25UeXBlLFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3IsXHJcbiAgVWlBY3Rpb25GZWVkYmFja1R5cGUsXHJcbn0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC12aWV3LWNvbnRleHQuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBsYW5ndWFnZUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICBrZXlzVG9UcmFuc2xhdGU6IHN0cmluZ1tdID0gWyd0aXRsZScsICd0ZXh0JywgJ3BsYWNlaG9sZGVyJywgJ2NhcHRpb24nLCAnZmVlZGJhY2tUZXh0J107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRleHQ6IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKSB7XHJcbiAgICBpZiAodGhpcy52aWV3Q29udGV4dC50cmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9UcmFuc2xhdGVTZXJ2aWNlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2VDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvVHJhbnNsYXRlU2VydmljZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1RyYW5zbGF0ZVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0XHJcbiAgICAgIC50cmFuc2xhdGVTZXJ2aWNlIS5vbkxhbmdDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZC5uZXh0KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFjdGlvbkRlc2NyaXB0b3IodWlBY3Rpb246IFVpQWN0aW9uKTogUHJvbWlzZTxVaUFjdGlvbkRlc2NyaXB0b3I+IHtcclxuICAgIGxldCBjb2RlID0gdWlBY3Rpb24uY29kZSE7XHJcbiAgICBsZXQgaXNVbmtvd24gPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgc2VydmVyOiBVaUFjdGlvbkRlc2NyaXB0b3IgfCB1bmRlZmluZWQgfCBudWxsID0gdWlBY3Rpb24uZGVzY3JpcHRvcjtcclxuICAgIGxldCBjbGllbnQ6IFVpQWN0aW9uRGVzY3JpcHRvciB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGxldCBhY3Rpb25EZXNjcmlwdG9yRnJvbURlc2NyaXB0b3JzID0gdGhpcy52aWV3Q29udGV4dC5nZXRBY3Rpb25EZXNjcmlwdG9ycygpPy5nZXQoY29kZSk7XHJcbiAgICBpZiAoYWN0aW9uRGVzY3JpcHRvckZyb21EZXNjcmlwdG9ycykge1xyXG4gICAgICBjbGllbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGlvbkRlc2NyaXB0b3JGcm9tRGVzY3JpcHRvcnMpKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYWN0aW9uRGVzY3JpcHRvcjogVWlBY3Rpb25EZXNjcmlwdG9yIHwgdW5kZWZpbmVkIHwgbnVsbDtcclxuICAgIGlmICghY2xpZW50KSB7XHJcbiAgICAgIC8vIHNlcnZlciBvbmx5XHJcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IgPSBzZXJ2ZXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBjbGllbnQgZXhpc3RzXHJcbiAgICAgIGlmIChzZXJ2ZXIpIHtcclxuICAgICAgICAvLyBzZXJ2ZXIgJiBjbGllbnQgLT4gbWVyZ2UgaW50byBjbGllbnQgd2hhdCdzIGZpbGxlZCBmcm9tIHNlcnZlclxyXG4gICAgICAgIHRoaXMubWVyZ2VBY3Rpb25EZXNjcmlwdG9ySW50b0NsaWVudChzZXJ2ZXIsIGNsaWVudCk7XHJcbiAgICAgIH1cclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IGNsaWVudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWFjdGlvbkRlc2NyaXB0b3IpIHtcclxuICAgICAgaXNVbmtvd24gPSB0cnVlO1xyXG4gICAgICBsZXQgdW5rb3duQWN0aW9uRGVzY3JpcHRvciA9IHRoaXMuYmFzaWNBY3Rpb25EZXNjcmlwdG9ycy5nZXQoJ1VOS09XTicpO1xyXG4gICAgICBhY3Rpb25EZXNjcmlwdG9yID0geyAuLi51bmtvd25BY3Rpb25EZXNjcmlwdG9yISB9O1xyXG4gICAgICBhY3Rpb25EZXNjcmlwdG9yIS50aXRsZSA9IGNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFhY3Rpb25EZXNjcmlwdG9yIS5kaWFsb2cpIHtcclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IHRoaXMuc2V0VXBVbmtvd25EaWFsb2dEZXNjcmlwdG9yKGNvZGUsIGFjdGlvbkRlc2NyaXB0b3IhLCAnZGlhbG9nJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFhY3Rpb25EZXNjcmlwdG9yIS5mZWVkYmFja1R5cGUgJiYgdWlBY3Rpb24uc3VibWl0KSB7XHJcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IhLmZlZWRiYWNrVHlwZSA9IFVpQWN0aW9uRmVlZGJhY2tUeXBlLlNuYWNrYmFyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2UgJiYgIWlzVW5rb3duICYmICFzZXJ2ZXIpIHtcclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IGF3YWl0IHRoaXMudHJhbnNsYXRlVWlBY3Rpb25EZXNjcmlwdG9yKGFjdGlvbkRlc2NyaXB0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhY3Rpb25EZXNjcmlwdG9yITtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VBY3Rpb25EZXNjcmlwdG9ySW50b0NsaWVudChcclxuICAgIHNlcnZlcjogVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG4gICAgY2xpZW50OiBVaUFjdGlvbkRlc2NyaXB0b3JcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChzZXJ2ZXIudGl0bGUpIHtcclxuICAgICAgY2xpZW50LnRpdGxlID0gc2VydmVyLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlcnZlci5pY29uKSB7XHJcbiAgICAgIGNsaWVudC5pY29uID0gc2VydmVyLmljb247XHJcbiAgICB9XHJcbiAgICBpZiAoc2VydmVyLmNvbG9yKSB7XHJcbiAgICAgIGNsaWVudC5jb2xvciA9IHNlcnZlci5jb2xvcjtcclxuICAgIH1cclxuICAgIGlmIChzZXJ2ZXIuY29uZmlybURpYWxvZykge1xyXG4gICAgICBpZiAoIWNsaWVudC5jb25maXJtRGlhbG9nKSB7XHJcbiAgICAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1lcmdlQWN0aW9uRGlhbG9nRGVzY3JpcHRvckludG9DbGllbnQoc2VydmVyLmNvbmZpcm1EaWFsb2csIGNsaWVudC5jb25maXJtRGlhbG9nKTtcclxuICAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFRPRE8gdXNlIHByb3AgbmFtZSB0byBoYW5kbGUgYWxsIGRpYWxvZ3NcclxuICAvLyBwcml2YXRlIG1lcmdlQWN0aW9uRGVzY3JpcHRvckRpYWxvZyhcclxuICAvLyAgIHNlcnZlcjogVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG4gIC8vICAgY2xpZW50OiBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgLy8gICBwcm9wOiBzdHJpbmdcclxuICAvLyApOiB2b2lkIHtcclxuICAvLyAgIC8vbGV0IHNlcnZlckRpYWxvZzogVWlBY3Rpb25EaWFsb2dEZXNjcmlwdG9yID0gc2VydmVyW3Byb3BdIGFzIFVpQWN0aW9uRGlhbG9nRGVzY3JpcHRvcjtcclxuICAvLyAgIGlmIChzZXJ2ZXIuY29uZmlybURpYWxvZykge1xyXG4gIC8vICAgICBpZiAoIWNsaWVudC5jb25maXJtRGlhbG9nKSB7XHJcbiAgLy8gICAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICB0aGlzLm1lcmdlQWN0aW9uRGlhbG9nRGVzY3JpcHRvckludG9DbGllbnQoc2VydmVyLmNvbmZpcm1EaWFsb2csIGNsaWVudC5jb25maXJtRGlhbG9nKTtcclxuICAvLyAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VBY3Rpb25EaWFsb2dEZXNjcmlwdG9ySW50b0NsaWVudChcclxuICAgIHNlcnZlckRpYWxvZzogVWlBY3Rpb25EaWFsb2dEZXNjcmlwdG9yLFxyXG4gICAgY2xpZW50RGlhbG9nOiBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3JcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChzZXJ2ZXJEaWFsb2cudGl0bGUpIHtcclxuICAgICAgY2xpZW50RGlhbG9nLnRpdGxlID0gc2VydmVyRGlhbG9nLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlcnZlckRpYWxvZy5wbGFjZWhvbGRlcikge1xyXG4gICAgICBjbGllbnREaWFsb2cucGxhY2Vob2xkZXIgPSBzZXJ2ZXJEaWFsb2cucGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VydmVyRGlhbG9nLnRleHQpIHtcclxuICAgICAgY2xpZW50RGlhbG9nLnRleHQgPSBzZXJ2ZXJEaWFsb2cudGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdHJhbnNsYXRlVWlBY3Rpb25EZXNjcmlwdG9yKFxyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yOiBVaUFjdGlvbkRlc2NyaXB0b3JcclxuICApOiBQcm9taXNlPFVpQWN0aW9uRGVzY3JpcHRvcj4ge1xyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yID0gYXdhaXQgdGhpcy5kZWVwVHJhbnNsYXRlKHVpQWN0aW9uRGVzY3JpcHRvcik7XHJcblxyXG4gICAgcmV0dXJuIHVpQWN0aW9uRGVzY3JpcHRvcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZGVlcFRyYW5zbGF0ZShfbW9kZWw6IGFueSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBsZXQgbW9kZWwgPSB7IC4uLl9tb2RlbCB9O1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIE9iamVjdC5rZXlzKG1vZGVsKS5tYXAoYXN5bmMgKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgbW9kZWxba2V5XSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICB0eXBlb2YgbW9kZWxba2V5XSA9PT0gJ3N0cmluZycgJiZcclxuICAgICAgICAgIG1vZGVsW2tleV0ubGVuZ3RoICYmXHJcbiAgICAgICAgICB0aGlzLmtleXNUb1RyYW5zbGF0ZS5pbmNsdWRlcyhrZXkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBtb2RlbFtrZXldID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC50cmFuc2xhdGVTZXJ2aWNlIS5nZXQobW9kZWxba2V5XSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlbFtrZXldICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG1vZGVsW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBtb2RlbFtrZXldID0gYXdhaXQgdGhpcy5kZWVwVHJhbnNsYXRlKG1vZGVsW2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbW9kZWw7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBtb2RlbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBVbmtvd25EaWFsb2dEZXNjcmlwdG9yKFxyXG4gICAgY29kZTogc3RyaW5nLFxyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yOiBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgICBkaWFsb2dUeXBlOiAnZGlhbG9nJyB8ICdjb25maXJtRGlhbG9nJyB8ICdpbnB1dERpYWxvZycgfCAnaW5wdXQyRGlhbG9nJ1xyXG4gICk6IFVpQWN0aW9uRGVzY3JpcHRvciB7XHJcbiAgICBsZXQgdW5rb3duRGVzY3JpcHRvciA9IHRoaXMuYmFzaWNBY3Rpb25EZXNjcmlwdG9ycy5nZXQoJ1VOS09XTicpO1xyXG5cclxuICAgIHVpQWN0aW9uRGVzY3JpcHRvcltkaWFsb2dUeXBlXSA9IHVua293bkRlc2NyaXB0b3IhLmRpYWxvZztcclxuICAgIHVpQWN0aW9uRGVzY3JpcHRvcltkaWFsb2dUeXBlXSEudGl0bGUgPSBjb2RlO1xyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yW2RpYWxvZ1R5cGVdIS5hY3Rpb25CdXR0b24uY2FwdGlvbiA9IGNvZGU7XHJcblxyXG4gICAgcmV0dXJuIHVpQWN0aW9uRGVzY3JpcHRvcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmFzaWNBY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPiA9IG5ldyBNYXAoW1xyXG4gICAgW1xyXG4gICAgICAnVU5LT1dOJyxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuTm9ybWFsLFxyXG4gICAgICAgIGNvbG9yOiAnYWNjZW50JyxcclxuICAgICAgICBpY29uOiAnUXVlc3Rpb24nLFxyXG4gICAgICAgIGljb25Db2xvcjogYHRleHQtcHJpbWFyeWAsXHJcbiAgICAgICAgaWNvblBvc2l0aW9uOiBVaUFjdGlvbkJ1dHRvbkljb25Qb3MuUG9zdCxcclxuICAgICAgICBkaWFsb2c6IHtcclxuICAgICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXInLFxyXG4gICAgICAgICAgYWN0aW9uQnV0dG9uOiB7XHJcbiAgICAgICAgICAgIGNhcHRpb246ICcnLFxyXG4gICAgICAgICAgICBjb2xvcjogJ2FjY2VudCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uOiB7XHJcbiAgICAgICAgICAgIGNhcHRpb246ICdNw6lnc2UnLFxyXG4gICAgICAgICAgICBjb2xvcjogJycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIF0pO1xyXG59XHJcbiJdfQ==
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUdsQixvQkFBb0IsR0FDckIsTUFBTSxRQUFRLENBQUM7OztBQU1oQixNQUFNLE9BQU8seUJBQXlCO0lBTXBDLFlBQW9CLFdBQW9DO1FBQXBDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUxoRCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFakQsb0JBQWUsR0FBa0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7UUF1S2hGLDJCQUFzQixHQUFvQyxJQUFJLEdBQUcsQ0FBQztZQUN4RTtnQkFDRSxRQUFRO2dCQUNSO29CQUNFLEtBQUssRUFBRSxFQUFFO29CQUNULElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO29CQUMvQixLQUFLLEVBQUUsUUFBUTtvQkFDZixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxJQUFJO29CQUN4QyxNQUFNLEVBQUU7d0JBQ04sS0FBSyxFQUFFLEVBQUU7d0JBQ1QsV0FBVyxFQUFFLGFBQWE7d0JBQzFCLFlBQVksRUFBRTs0QkFDWixPQUFPLEVBQUUsRUFBRTs0QkFDWCxLQUFLLEVBQUUsUUFBUTt5QkFDaEI7d0JBQ0QsWUFBWSxFQUFFOzRCQUNaLE9BQU8sRUFBRSxPQUFPOzRCQUNoQixLQUFLLEVBQUUsRUFBRTt5QkFDVjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBNUxELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztTQUNwQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RGLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxXQUFXO2FBQ2IsZ0JBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzlELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFrQjtRQUNqRCxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSyxDQUFDO1FBQzFCLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUVyQixJQUFJLE1BQU0sR0FBMEMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN4RSxJQUFJLE1BQU0sR0FBMEMsSUFBSSxDQUFDO1FBRXpELElBQUksK0JBQStCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RixJQUFJLCtCQUErQixFQUFFO1lBQ25DLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsSUFBSSxnQkFBdUQsQ0FBQztRQUM1RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsY0FBYztZQUNkLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztTQUMzQjthQUFNO1lBQ0wsZ0JBQWdCO1lBQ2hCLElBQUksTUFBTSxFQUFFO2dCQUNWLGlFQUFpRTtnQkFDakUsSUFBSSxDQUFDLCtCQUErQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN0RDtZQUNELGdCQUFnQixHQUFHLE1BQU0sQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLElBQUksc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2RSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsc0JBQXVCLEVBQUUsQ0FBQztZQUNsRCxnQkFBaUIsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxDQUFDLGdCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUM3QixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLGdCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3hGO1FBRUQsSUFBSSxDQUFDLGdCQUFpQixDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3RELGdCQUFpQixDQUFDLFlBQVksR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7U0FDaEU7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDN0QsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsMkJBQTJCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUM3RTtRQUVELE9BQU8sZ0JBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVNLCtCQUErQixDQUNwQyxNQUEwQixFQUMxQixNQUEwQjtRQUUxQixJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2YsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUM3QjtRQUNELElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDekIsTUFBTSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO2FBQzdDO1lBQ0QsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZGLE1BQU0sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsdUNBQXVDO0lBQ3ZDLGdDQUFnQztJQUNoQyxnQ0FBZ0M7SUFDaEMsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWiw2RkFBNkY7SUFDN0YsZ0NBQWdDO0lBQ2hDLG1DQUFtQztJQUNuQyxxREFBcUQ7SUFDckQsUUFBUTtJQUNSLDhGQUE4RjtJQUM5RixtREFBbUQ7SUFDbkQsTUFBTTtJQUNOLElBQUk7SUFFSSxxQ0FBcUMsQ0FDM0MsWUFBc0MsRUFDdEMsWUFBc0M7UUFFdEMsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFO1lBQ3RCLFlBQVksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztTQUN6QztRQUNELElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUM1QixZQUFZLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7U0FDckQ7UUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDckIsWUFBWSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywyQkFBMkIsQ0FDdkMsa0JBQXNDO1FBRXRDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBVztRQUNyQyxJQUFJLEtBQUssR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDMUIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUMzQyxJQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO2dCQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRO2dCQUM5QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTTtnQkFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ2xDO2dCQUNBLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ25GO2lCQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQ3JFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbkQ7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTywyQkFBMkIsQ0FDakMsSUFBWSxFQUNaLGtCQUFzQyxFQUN0QyxVQUF1RTtRQUV2RSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakUsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEdBQUcsZ0JBQWlCLENBQUMsTUFBTSxDQUFDO1FBQzFELGtCQUFrQixDQUFDLFVBQVUsQ0FBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0Msa0JBQWtCLENBQUMsVUFBVSxDQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFNUQsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDOztzSEF6S1UseUJBQXlCOzBIQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbWFydFN1YmplY3QgfSBmcm9tICcuLi8uLi9zbWFydC1zdWJqZWN0L3Byb2plY3RzJztcclxuaW1wb3J0IHtcclxuICBVaUFjdGlvbixcclxuICBVaUFjdGlvbkJ1dHRvbkljb25Qb3MsXHJcbiAgVWlBY3Rpb25CdXR0b25UeXBlLFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3IsXHJcbiAgVWlBY3Rpb25GZWVkYmFja1R5cGUsXHJcbn0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC12aWV3LWNvbnRleHQuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBsYW5ndWFnZUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICBrZXlzVG9UcmFuc2xhdGU6IHN0cmluZ1tdID0gWyd0aXRsZScsICd0ZXh0JywgJ3BsYWNlaG9sZGVyJywgJ2NhcHRpb24nLCAnZmVlZGJhY2tUZXh0J107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRleHQ6IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKSB7XHJcbiAgICBpZiAodGhpcy52aWV3Q29udGV4dC50cmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9UcmFuc2xhdGVTZXJ2aWNlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2VDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvVHJhbnNsYXRlU2VydmljZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1RyYW5zbGF0ZVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0XHJcbiAgICAgIC50cmFuc2xhdGVTZXJ2aWNlIS5vbkxhbmdDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZC5uZXh0KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFjdGlvbkRlc2NyaXB0b3IodWlBY3Rpb246IFVpQWN0aW9uKTogUHJvbWlzZTxVaUFjdGlvbkRlc2NyaXB0b3I+IHtcclxuICAgIGxldCBjb2RlID0gdWlBY3Rpb24uY29kZSE7XHJcbiAgICBsZXQgaXNVbmtvd24gPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgc2VydmVyOiBVaUFjdGlvbkRlc2NyaXB0b3IgfCB1bmRlZmluZWQgfCBudWxsID0gdWlBY3Rpb24uZGVzY3JpcHRvcjtcclxuICAgIGxldCBjbGllbnQ6IFVpQWN0aW9uRGVzY3JpcHRvciB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGxldCBhY3Rpb25EZXNjcmlwdG9yRnJvbURlc2NyaXB0b3JzID0gdGhpcy52aWV3Q29udGV4dC5nZXRBY3Rpb25EZXNjcmlwdG9ycygpPy5nZXQoY29kZSk7XHJcbiAgICBpZiAoYWN0aW9uRGVzY3JpcHRvckZyb21EZXNjcmlwdG9ycykge1xyXG4gICAgICBjbGllbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGlvbkRlc2NyaXB0b3JGcm9tRGVzY3JpcHRvcnMpKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYWN0aW9uRGVzY3JpcHRvcjogVWlBY3Rpb25EZXNjcmlwdG9yIHwgdW5kZWZpbmVkIHwgbnVsbDtcclxuICAgIGlmICghY2xpZW50KSB7XHJcbiAgICAgIC8vIHNlcnZlciBvbmx5XHJcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IgPSBzZXJ2ZXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBjbGllbnQgZXhpc3RzXHJcbiAgICAgIGlmIChzZXJ2ZXIpIHtcclxuICAgICAgICAvLyBzZXJ2ZXIgJiBjbGllbnQgLT4gbWVyZ2UgaW50byBjbGllbnQgd2hhdCdzIGZpbGxlZCBmcm9tIHNlcnZlclxyXG4gICAgICAgIHRoaXMubWVyZ2VBY3Rpb25EZXNjcmlwdG9ySW50b0NsaWVudChzZXJ2ZXIsIGNsaWVudCk7XHJcbiAgICAgIH1cclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IGNsaWVudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWFjdGlvbkRlc2NyaXB0b3IpIHtcclxuICAgICAgaXNVbmtvd24gPSB0cnVlO1xyXG4gICAgICBsZXQgdW5rb3duQWN0aW9uRGVzY3JpcHRvciA9IHRoaXMuYmFzaWNBY3Rpb25EZXNjcmlwdG9ycy5nZXQoJ1VOS09XTicpO1xyXG4gICAgICBhY3Rpb25EZXNjcmlwdG9yID0geyAuLi51bmtvd25BY3Rpb25EZXNjcmlwdG9yISB9O1xyXG4gICAgICBhY3Rpb25EZXNjcmlwdG9yIS50aXRsZSA9IGNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFhY3Rpb25EZXNjcmlwdG9yIS5kaWFsb2cpIHtcclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IHRoaXMuc2V0VXBVbmtvd25EaWFsb2dEZXNjcmlwdG9yKGNvZGUsIGFjdGlvbkRlc2NyaXB0b3IhLCAnZGlhbG9nJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFhY3Rpb25EZXNjcmlwdG9yIS5mZWVkYmFja1R5cGUgJiYgdWlBY3Rpb24uc3VibWl0KSB7XHJcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IhLmZlZWRiYWNrVHlwZSA9IFVpQWN0aW9uRmVlZGJhY2tUeXBlLlNuYWNrYmFyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2UgJiYgIWlzVW5rb3duICYmICFzZXJ2ZXIpIHtcclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IGF3YWl0IHRoaXMudHJhbnNsYXRlVWlBY3Rpb25EZXNjcmlwdG9yKGFjdGlvbkRlc2NyaXB0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhY3Rpb25EZXNjcmlwdG9yITtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtZXJnZUFjdGlvbkRlc2NyaXB0b3JJbnRvQ2xpZW50KFxyXG4gICAgc2VydmVyOiBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgICBjbGllbnQ6IFVpQWN0aW9uRGVzY3JpcHRvclxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHNlcnZlci50aXRsZSkge1xyXG4gICAgICBjbGllbnQudGl0bGUgPSBzZXJ2ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VydmVyLmljb24pIHtcclxuICAgICAgY2xpZW50Lmljb24gPSBzZXJ2ZXIuaWNvbjtcclxuICAgIH1cclxuICAgIGlmIChzZXJ2ZXIuY29sb3IpIHtcclxuICAgICAgY2xpZW50LmNvbG9yID0gc2VydmVyLmNvbG9yO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlcnZlci5jb25maXJtRGlhbG9nKSB7XHJcbiAgICAgIGlmICghY2xpZW50LmNvbmZpcm1EaWFsb2cpIHtcclxuICAgICAgICBjbGllbnQuY29uZmlybURpYWxvZyA9IHNlcnZlci5jb25maXJtRGlhbG9nO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubWVyZ2VBY3Rpb25EaWFsb2dEZXNjcmlwdG9ySW50b0NsaWVudChzZXJ2ZXIuY29uZmlybURpYWxvZywgY2xpZW50LmNvbmZpcm1EaWFsb2cpO1xyXG4gICAgICBjbGllbnQuY29uZmlybURpYWxvZyA9IHNlcnZlci5jb25maXJtRGlhbG9nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVE9ETyB1c2UgcHJvcCBuYW1lIHRvIGhhbmRsZSBhbGwgZGlhbG9nc1xyXG4gIC8vIHByaXZhdGUgbWVyZ2VBY3Rpb25EZXNjcmlwdG9yRGlhbG9nKFxyXG4gIC8vICAgc2VydmVyOiBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgLy8gICBjbGllbnQ6IFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICAvLyAgIHByb3A6IHN0cmluZ1xyXG4gIC8vICk6IHZvaWQge1xyXG4gIC8vICAgLy9sZXQgc2VydmVyRGlhbG9nOiBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgPSBzZXJ2ZXJbcHJvcF0gYXMgVWlBY3Rpb25EaWFsb2dEZXNjcmlwdG9yO1xyXG4gIC8vICAgaWYgKHNlcnZlci5jb25maXJtRGlhbG9nKSB7XHJcbiAgLy8gICAgIGlmICghY2xpZW50LmNvbmZpcm1EaWFsb2cpIHtcclxuICAvLyAgICAgICBjbGllbnQuY29uZmlybURpYWxvZyA9IHNlcnZlci5jb25maXJtRGlhbG9nO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIHRoaXMubWVyZ2VBY3Rpb25EaWFsb2dEZXNjcmlwdG9ySW50b0NsaWVudChzZXJ2ZXIuY29uZmlybURpYWxvZywgY2xpZW50LmNvbmZpcm1EaWFsb2cpO1xyXG4gIC8vICAgICBjbGllbnQuY29uZmlybURpYWxvZyA9IHNlcnZlci5jb25maXJtRGlhbG9nO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgcHJpdmF0ZSBtZXJnZUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3JJbnRvQ2xpZW50KFxyXG4gICAgc2VydmVyRGlhbG9nOiBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3IsXHJcbiAgICBjbGllbnREaWFsb2c6IFVpQWN0aW9uRGlhbG9nRGVzY3JpcHRvclxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHNlcnZlckRpYWxvZy50aXRsZSkge1xyXG4gICAgICBjbGllbnREaWFsb2cudGl0bGUgPSBzZXJ2ZXJEaWFsb2cudGl0bGU7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VydmVyRGlhbG9nLnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgIGNsaWVudERpYWxvZy5wbGFjZWhvbGRlciA9IHNlcnZlckRpYWxvZy5wbGFjZWhvbGRlcjtcclxuICAgIH1cclxuICAgIGlmIChzZXJ2ZXJEaWFsb2cudGV4dCkge1xyXG4gICAgICBjbGllbnREaWFsb2cudGV4dCA9IHNlcnZlckRpYWxvZy50ZXh0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB0cmFuc2xhdGVVaUFjdGlvbkRlc2NyaXB0b3IoXHJcbiAgICB1aUFjdGlvbkRlc2NyaXB0b3I6IFVpQWN0aW9uRGVzY3JpcHRvclxyXG4gICk6IFByb21pc2U8VWlBY3Rpb25EZXNjcmlwdG9yPiB7XHJcbiAgICB1aUFjdGlvbkRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLmRlZXBUcmFuc2xhdGUodWlBY3Rpb25EZXNjcmlwdG9yKTtcclxuXHJcbiAgICByZXR1cm4gdWlBY3Rpb25EZXNjcmlwdG9yO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBkZWVwVHJhbnNsYXRlKF9tb2RlbDogYW55KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGxldCBtb2RlbCA9IHsgLi4uX21vZGVsIH07XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgT2JqZWN0LmtleXMobW9kZWwpLm1hcChhc3luYyAoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBtb2RlbFtrZXldICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgIHR5cGVvZiBtb2RlbFtrZXldID09PSAnc3RyaW5nJyAmJlxyXG4gICAgICAgICAgbW9kZWxba2V5XS5sZW5ndGggJiZcclxuICAgICAgICAgIHRoaXMua2V5c1RvVHJhbnNsYXRlLmluY2x1ZGVzKGtleSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG1vZGVsW2tleV0gPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2UhLmdldChtb2RlbFtrZXldKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG1vZGVsW2tleV0gIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgbW9kZWxba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIG1vZGVsW2tleV0gPSBhd2FpdCB0aGlzLmRlZXBUcmFuc2xhdGUobW9kZWxba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtb2RlbDtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcFVua293bkRpYWxvZ0Rlc2NyaXB0b3IoXHJcbiAgICBjb2RlOiBzdHJpbmcsXHJcbiAgICB1aUFjdGlvbkRlc2NyaXB0b3I6IFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICAgIGRpYWxvZ1R5cGU6ICdkaWFsb2cnIHwgJ2NvbmZpcm1EaWFsb2cnIHwgJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnXHJcbiAgKTogVWlBY3Rpb25EZXNjcmlwdG9yIHtcclxuICAgIGxldCB1bmtvd25EZXNjcmlwdG9yID0gdGhpcy5iYXNpY0FjdGlvbkRlc2NyaXB0b3JzLmdldCgnVU5LT1dOJyk7XHJcblxyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yW2RpYWxvZ1R5cGVdID0gdW5rb3duRGVzY3JpcHRvciEuZGlhbG9nO1xyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yW2RpYWxvZ1R5cGVdIS50aXRsZSA9IGNvZGU7XHJcbiAgICB1aUFjdGlvbkRlc2NyaXB0b3JbZGlhbG9nVHlwZV0hLmFjdGlvbkJ1dHRvbi5jYXB0aW9uID0gY29kZTtcclxuXHJcbiAgICByZXR1cm4gdWlBY3Rpb25EZXNjcmlwdG9yO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiYXNpY0FjdGlvbkRlc2NyaXB0b3JzOiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+ID0gbmV3IE1hcChbXHJcbiAgICBbXHJcbiAgICAgICdVTktPV04nLFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHR5cGU6IFVpQWN0aW9uQnV0dG9uVHlwZS5Ob3JtYWwsXHJcbiAgICAgICAgY29sb3I6ICdhY2NlbnQnLFxyXG4gICAgICAgIGljb246ICdRdWVzdGlvbicsXHJcbiAgICAgICAgaWNvbkNvbG9yOiBgdGV4dC1wcmltYXJ5YCxcclxuICAgICAgICBpY29uUG9zaXRpb246IFVpQWN0aW9uQnV0dG9uSWNvblBvcy5Qb3N0LFxyXG4gICAgICAgIGRpYWxvZzoge1xyXG4gICAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlcicsXHJcbiAgICAgICAgICBhY3Rpb25CdXR0b246IHtcclxuICAgICAgICAgICAgY2FwdGlvbjogJycsXHJcbiAgICAgICAgICAgIGNvbG9yOiAnYWNjZW50JyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b246IHtcclxuICAgICAgICAgICAgY2FwdGlvbjogJ03DqWdzZScsXHJcbiAgICAgICAgICAgIGNvbG9yOiAnJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgXSk7XHJcbn1cclxuIl19
|