igniteui-angular 14.2.0-alpha.4 → 14.2.0-beta.0

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.
@@ -14,7 +14,7 @@ export class ExcelStrings {
14
14
  }
15
15
  static getStyles() {
16
16
  return ExcelStrings.XML_STRING +
17
- '<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main"><fonts count="2" x14ac:knownFonts="1"><font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font><font><sz val="11"/><color rgb="FFB7B7B7"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts><fills count="3"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill><fill><patternFill patternType="solid"><fgColor rgb="FF0D1822"/><bgColor indexed="64"/></patternFill></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="4"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/> <xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/> <xf numFmtId="0" fontId="1" fillId="2" borderId="0" xfId="0"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles><dxfs count="0"/><tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>';
17
+ '<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main"><fonts count="2" x14ac:knownFonts="1"><font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font><font><sz val="11"/><color rgb="FFB7B7B7"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts><fills count="3"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill><fill><patternFill patternType="solid"><fgColor rgb="FF0D1822"/><bgColor indexed="64"/></patternFill></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="5"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"><alignment horizontal="center" vertical="center"/></xf></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles><dxfs count="0"/><tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>';
18
18
  }
19
19
  static getWorkbook(worksheetName) {
20
20
  return ExcelStrings.XML_STRING + `<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x15" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><fileVersion appName="xl" lastEdited="6" lowestEdited="6" rupBuild="14420"/><workbookPr filterPrivacy="1" defaultThemeVersion="164011"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="22260" windowHeight="12645"/></bookViews><sheets><sheet name="${worksheetName}" sheetId="1" r:id="rId1"/></sheets><calcPr calcId="162913"/><extLst><ext uri="{140A7094-0E35-4892-8432-C4D2E57EDEB5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:workbookPr chartTrackingRefBase="1"/></ext></extLst></workbook>`;
@@ -91,4 +91,4 @@ ${tableParts}</worksheet>`;
91
91
  /* eslint-disable max-len */
92
92
  ExcelStrings.XML_STRING = '<?xml version="1.0" encoding="UTF-8"?>\r\n';
93
93
  ExcelStrings.SHARED_STRING_RELATIONSHIP = '<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml" />';
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leGNlbC9leGNlbC1zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxNQUFNLE9BQU8sWUFBWTtJQUtkLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyxxaEJBQXFoQixDQUFDO0lBQzNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFxQjtRQUN0QyxPQUFPLFlBQVksQ0FBQyxVQUFVLEdBQUcsa2dCQUFrZ0IsYUFBYSxxTkFBcU4sQ0FBQztJQUMxd0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRywwaEJBQTBoQixDQUFDO0lBQ2hrQixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVE7UUFDbEIsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLHloTkFBeWhOLENBQUM7SUFDL2pOLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUztRQUNuQixPQUFPLFlBQVksQ0FBQyxVQUFVO1lBQzlCLCs0REFBKzRELENBQUM7SUFDcDVELENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQXFCO1FBQzNDLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyxza0JBQXNrQixhQUFhLHdRQUF3USxDQUFDO0lBQ2o0QixDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQjtRQUMxQixPQUFPLFlBQVksQ0FBQyxVQUFVLEdBQUcsOE9BQThPLENBQUM7SUFDcFIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsZ0JBQWdCO1FBQzFDLElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQyxVQUFVLEdBQUcsc2VBQXNlLENBQUM7UUFFOWdCLElBQUksZ0JBQWdCLEVBQUU7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WyIvKiogQGhpZGRlbiAqL1xuZXhwb3J0IGNsYXNzIEV4Y2VsU3RyaW5ncyB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgIG1heC1sZW4gKi9cbiAgICBwcml2YXRlIHN0YXRpYyBYTUxfU1RSSU5HID0gJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/Plxcclxcbic7XG4gICAgcHJpdmF0ZSBzdGF0aWMgU0hBUkVEX1NUUklOR19SRUxBVElPTlNISVAgPSAnPFJlbGF0aW9uc2hpcCBJZD1cInJJZDRcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zaGFyZWRTdHJpbmdzXCIgVGFyZ2V0PVwic2hhcmVkU3RyaW5ncy54bWxcIiAvPic7XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbHMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxSZWxhdGlvbnNoaXBzIHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzXCI+PFJlbGF0aW9uc2hpcCBJZD1cInJJZDNcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0aWVzXCIgVGFyZ2V0PVwiZG9jUHJvcHMvYXBwLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMlwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzXCIgVGFyZ2V0PVwiZG9jUHJvcHMvY29yZS54bWxcIi8+PFJlbGF0aW9uc2hpcCBJZD1cInJJZDFcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudFwiIFRhcmdldD1cInhsL3dvcmtib29rLnhtbFwiLz48L1JlbGF0aW9uc2hpcHM+JztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEFwcCh3b3Jrc2hlZXROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyBgPFByb3BlcnRpZXMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9leHRlbmRlZC1wcm9wZXJ0aWVzXCIgeG1sbnM6dnQ9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9kb2NQcm9wc1ZUeXBlc1wiPjxBcHBsaWNhdGlvbj5NaWNyb3NvZnQgRXhjZWw8L0FwcGxpY2F0aW9uPjxEb2NTZWN1cml0eT4wPC9Eb2NTZWN1cml0eT48U2NhbGVDcm9wPmZhbHNlPC9TY2FsZUNyb3A+PEhlYWRpbmdQYWlycz48dnQ6dmVjdG9yIHNpemU9XCIyXCIgYmFzZVR5cGU9XCJ2YXJpYW50XCI+PHZ0OnZhcmlhbnQ+PHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3RyPjwvdnQ6dmFyaWFudD48dnQ6dmFyaWFudD48dnQ6aTQ+MTwvdnQ6aTQ+PC92dDp2YXJpYW50PjwvdnQ6dmVjdG9yPjwvSGVhZGluZ1BhaXJzPjxUaXRsZXNPZlBhcnRzPjx2dDp2ZWN0b3Igc2l6ZT1cIjFcIiBiYXNlVHlwZT1cImxwc3RyXCI+PHZ0Omxwc3RyPiR7d29ya3NoZWV0TmFtZX08L3Z0Omxwc3RyPjwvdnQ6dmVjdG9yPjwvVGl0bGVzT2ZQYXJ0cz48Q29tcGFueT48L0NvbXBhbnk+PExpbmtzVXBUb0RhdGU+ZmFsc2U8L0xpbmtzVXBUb0RhdGU+PFNoYXJlZERvYz5mYWxzZTwvU2hhcmVkRG9jPjxIeXBlcmxpbmtzQ2hhbmdlZD5mYWxzZTwvSHlwZXJsaW5rc0NoYW5nZWQ+PEFwcFZlcnNpb24+MTYuMDMwMDwvQXBwVmVyc2lvbj48L1Byb3BlcnRpZXM+YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldENvcmUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxjcDpjb3JlUHJvcGVydGllcyB4bWxuczpjcD1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzXCIgeG1sbnM6ZGM9XCJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xL1wiIHhtbG5zOmRjdGVybXM9XCJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvXCIgeG1sbnM6ZGNtaXR5cGU9XCJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvXCIgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIj48ZGM6Y3JlYXRvcj48L2RjOmNyZWF0b3I+PGNwOmxhc3RNb2RpZmllZEJ5PjwvY3A6bGFzdE1vZGlmaWVkQnk+PGRjdGVybXM6Y3JlYXRlZCB4c2k6dHlwZT1cImRjdGVybXM6VzNDRFRGXCI+MjAxNS0wNi0wNVQxODoxNzoyMFo8L2RjdGVybXM6Y3JlYXRlZD48ZGN0ZXJtczptb2RpZmllZCB4c2k6dHlwZT1cImRjdGVybXM6VzNDRFRGXCI+MjAxNS0wNi0wNVQxODoxNzoyNlo8L2RjdGVybXM6bW9kaWZpZWQ+PC9jcDpjb3JlUHJvcGVydGllcz4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGhlbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxhOnRoZW1lIHhtbG5zOmE9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpblwiIG5hbWU9XCJPZmZpY2UgVGhlbWVcIj48YTp0aGVtZUVsZW1lbnRzPjxhOmNsclNjaGVtZSBuYW1lPVwiT2ZmaWNlXCI+PGE6ZGsxPjxhOnN5c0NsciB2YWw9XCJ3aW5kb3dUZXh0XCIgbGFzdENscj1cIjAwMDAwMFwiLz48L2E6ZGsxPjxhOmx0MT48YTpzeXNDbHIgdmFsPVwid2luZG93XCIgbGFzdENscj1cIkZGRkZGRlwiLz48L2E6bHQxPjxhOmRrMj48YTpzcmdiQ2xyIHZhbD1cIjQ0NTQ2QVwiLz48L2E6ZGsyPjxhOmx0Mj48YTpzcmdiQ2xyIHZhbD1cIkU3RTZFNlwiLz48L2E6bHQyPjxhOmFjY2VudDE+PGE6c3JnYkNsciB2YWw9XCI1QjlCRDVcIi8+PC9hOmFjY2VudDE+PGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD1cIkVEN0QzMVwiLz48L2E6YWNjZW50Mj48YTphY2NlbnQzPjxhOnNyZ2JDbHIgdmFsPVwiQTVBNUE1XCIvPjwvYTphY2NlbnQzPjxhOmFjY2VudDQ+PGE6c3JnYkNsciB2YWw9XCJGRkMwMDBcIi8+PC9hOmFjY2VudDQ+PGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD1cIjQ0NzJDNFwiLz48L2E6YWNjZW50NT48YTphY2NlbnQ2PjxhOnNyZ2JDbHIgdmFsPVwiNzBBRDQ3XCIvPjwvYTphY2NlbnQ2PjxhOmhsaW5rPjxhOnNyZ2JDbHIgdmFsPVwiMDU2M0MxXCIvPjwvYTpobGluaz48YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD1cIjk1NEY3MlwiLz48L2E6Zm9sSGxpbms+PC9hOmNsclNjaGVtZT48YTpmb250U2NoZW1lIG5hbWU9XCJPZmZpY2VcIj48YTptYWpvckZvbnQ+PGE6bGF0aW4gdHlwZWZhY2U9XCJDYWxpYnJpIExpZ2h0XCIgcGFub3NlPVwiMDIwRjAzMDIwMjAyMDQwMzAyMDRcIi8+PGE6ZWEgdHlwZWZhY2U9XCJcIi8+PGE6Y3MgdHlwZWZhY2U9XCJcIi8+PGE6Zm9udCBzY3JpcHQ9XCJKcGFuXCIgdHlwZWZhY2U9XCLmuLjjgrTjgrfjg4Pjgq8gTGlnaHRcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5nXCIgdHlwZWZhY2U9XCLrp5HsnYAg6rOg65SVXCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFuc1wiIHR5cGVmYWNlPVwi562J57q/IExpZ2h0XCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFudFwiIHR5cGVmYWNlPVwi5paw57Sw5piO6auUXCIvPjxhOmZvbnQgc2NyaXB0PVwiQXJhYlwiIHR5cGVmYWNlPVwiVGltZXMgTmV3IFJvbWFuXCIvPjxhOmZvbnQgc2NyaXB0PVwiSGViclwiIHR5cGVmYWNlPVwiVGltZXMgTmV3IFJvbWFuXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhaVwiIHR5cGVmYWNlPVwiVGFob21hXCIvPjxhOmZvbnQgc2NyaXB0PVwiRXRoaVwiIHR5cGVmYWNlPVwiTnlhbGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJCZW5nXCIgdHlwZWZhY2U9XCJWcmluZGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJHdWpyXCIgdHlwZWZhY2U9XCJTaHJ1dGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJLaG1yXCIgdHlwZWZhY2U9XCJNb29sQm9yYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJLbmRhXCIgdHlwZWZhY2U9XCJUdW5nYVwiLz48YTpmb250IHNjcmlwdD1cIkd1cnVcIiB0eXBlZmFjZT1cIlJhYXZpXCIvPjxhOmZvbnQgc2NyaXB0PVwiQ2Fuc1wiIHR5cGVmYWNlPVwiRXVwaGVtaWFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDaGVyXCIgdHlwZWZhY2U9XCJQbGFudGFnZW5ldCBDaGVyb2tlZVwiLz48YTpmb250IHNjcmlwdD1cIllpaWlcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBZaSBCYWl0aVwiLz48YTpmb250IHNjcmlwdD1cIlRpYnRcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBIaW1hbGF5YVwiLz48YTpmb250IHNjcmlwdD1cIlRoYWFcIiB0eXBlZmFjZT1cIk1WIEJvbGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJEZXZhXCIgdHlwZWZhY2U9XCJNYW5nYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUZWx1XCIgdHlwZWZhY2U9XCJHYXV0YW1pXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGFtbFwiIHR5cGVmYWNlPVwiTGF0aGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTeXJjXCIgdHlwZWZhY2U9XCJFc3RyYW5nZWxvIEVkZXNzYVwiLz48YTpmb250IHNjcmlwdD1cIk9yeWFcIiB0eXBlZmFjZT1cIkthbGluZ2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNbHltXCIgdHlwZWZhY2U9XCJLYXJ0aWthXCIvPjxhOmZvbnQgc2NyaXB0PVwiTGFvb1wiIHR5cGVmYWNlPVwiRG9rQ2hhbXBhXCIvPjxhOmZvbnQgc2NyaXB0PVwiU2luaFwiIHR5cGVmYWNlPVwiSXNrb29sYSBQb3RhXCIvPjxhOmZvbnQgc2NyaXB0PVwiTW9uZ1wiIHR5cGVmYWNlPVwiTW9uZ29saWFuIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVmlldFwiIHR5cGVmYWNlPVwiVGltZXMgTmV3IFJvbWFuXCIvPjxhOmZvbnQgc2NyaXB0PVwiVWlnaFwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IFVpZ2h1clwiLz48YTpmb250IHNjcmlwdD1cIkdlb3JcIiB0eXBlZmFjZT1cIlN5bGZhZW5cIi8+PC9hOm1ham9yRm9udD48YTptaW5vckZvbnQ+PGE6bGF0aW4gdHlwZWZhY2U9XCJDYWxpYnJpXCIgcGFub3NlPVwiMDIwRjA1MDIwMjAyMDQwMzAyMDRcIi8+PGE6ZWEgdHlwZWZhY2U9XCJcIi8+PGE6Y3MgdHlwZWZhY2U9XCJcIi8+PGE6Zm9udCBzY3JpcHQ9XCJKcGFuXCIgdHlwZWZhY2U9XCLmuLjjgrTjgrfjg4Pjgq9cIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5nXCIgdHlwZWZhY2U9XCLrp5HsnYAg6rOg65SVXCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFuc1wiIHR5cGVmYWNlPVwi562J57q/XCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFudFwiIHR5cGVmYWNlPVwi5paw57Sw5piO6auUXCIvPjxhOmZvbnQgc2NyaXB0PVwiQXJhYlwiIHR5cGVmYWNlPVwiQXJpYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIZWJyXCIgdHlwZWZhY2U9XCJBcmlhbFwiLz48YTpmb250IHNjcmlwdD1cIlRoYWlcIiB0eXBlZmFjZT1cIlRhaG9tYVwiLz48YTpmb250IHNjcmlwdD1cIkV0aGlcIiB0eXBlZmFjZT1cIk55YWxhXCIvPjxhOmZvbnQgc2NyaXB0PVwiQmVuZ1wiIHR5cGVmYWNlPVwiVnJpbmRhXCIvPjxhOmZvbnQgc2NyaXB0PVwiR3VqclwiIHR5cGVmYWNlPVwiU2hydXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiS2htclwiIHR5cGVmYWNlPVwiRGF1blBlbmhcIi8+PGE6Zm9udCBzY3JpcHQ9XCJLbmRhXCIgdHlwZWZhY2U9XCJUdW5nYVwiLz48YTpmb250IHNjcmlwdD1cIkd1cnVcIiB0eXBlZmFjZT1cIlJhYXZpXCIvPjxhOmZvbnQgc2NyaXB0PVwiQ2Fuc1wiIHR5cGVmYWNlPVwiRXVwaGVtaWFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDaGVyXCIgdHlwZWZhY2U9XCJQbGFudGFnZW5ldCBDaGVyb2tlZVwiLz48YTpmb250IHNjcmlwdD1cIllpaWlcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBZaSBCYWl0aVwiLz48YTpmb250IHNjcmlwdD1cIlRpYnRcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBIaW1hbGF5YVwiLz48YTpmb250IHNjcmlwdD1cIlRoYWFcIiB0eXBlZmFjZT1cIk1WIEJvbGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJEZXZhXCIgdHlwZWZhY2U9XCJNYW5nYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUZWx1XCIgdHlwZWZhY2U9XCJHYXV0YW1pXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGFtbFwiIHR5cGVmYWNlPVwiTGF0aGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTeXJjXCIgdHlwZWZhY2U9XCJFc3RyYW5nZWxvIEVkZXNzYVwiLz48YTpmb250IHNjcmlwdD1cIk9yeWFcIiB0eXBlZmFjZT1cIkthbGluZ2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNbHltXCIgdHlwZWZhY2U9XCJLYXJ0aWthXCIvPjxhOmZvbnQgc2NyaXB0PVwiTGFvb1wiIHR5cGVmYWNlPVwiRG9rQ2hhbXBhXCIvPjxhOmZvbnQgc2NyaXB0PVwiU2luaFwiIHR5cGVmYWNlPVwiSXNrb29sYSBQb3RhXCIvPjxhOmZvbnQgc2NyaXB0PVwiTW9uZ1wiIHR5cGVmYWNlPVwiTW9uZ29saWFuIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVmlldFwiIHR5cGVmYWNlPVwiQXJpYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJVaWdoXCIgdHlwZWZhY2U9XCJNaWNyb3NvZnQgVWlnaHVyXCIvPjxhOmZvbnQgc2NyaXB0PVwiR2VvclwiIHR5cGVmYWNlPVwiU3lsZmFlblwiLz48L2E6bWlub3JGb250PjwvYTpmb250U2NoZW1lPjxhOmZtdFNjaGVtZSBuYW1lPVwiT2ZmaWNlXCI+PGE6ZmlsbFN0eWxlTHN0PjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIi8+PC9hOnNvbGlkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9XCIxXCI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPVwiMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOmx1bU1vZCB2YWw9XCIxMTAwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjEwNTAwMFwiLz48YTp0aW50IHZhbD1cIjY3MDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz1cIjUwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjEwNTAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTAzMDAwXCIvPjxhOnRpbnQgdmFsPVwiNzMwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiMTAwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjEwNTAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTA5MDAwXCIvPjxhOnRpbnQgdmFsPVwiODEwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PC9hOmdzTHN0PjxhOmxpbiBhbmc9XCI1NDAwMDAwXCIgc2NhbGVkPVwiMFwiLz48L2E6Z3JhZEZpbGw+PGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPVwiMVwiPjxhOmdzTHN0PjxhOmdzIHBvcz1cIjBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpzYXRNb2QgdmFsPVwiMTAzMDAwXCIvPjxhOmx1bU1vZCB2YWw9XCIxMDIwMDBcIi8+PGE6dGludCB2YWw9XCI5NDAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCI1MDAwMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOnNhdE1vZCB2YWw9XCIxMTAwMDBcIi8+PGE6bHVtTW9kIHZhbD1cIjEwMDAwMFwiLz48YTpzaGFkZSB2YWw9XCIxMDAwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiMTAwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjk5MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMjAwMDBcIi8+PGE6c2hhZGUgdmFsPVwiNzgwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PC9hOmdzTHN0PjxhOmxpbiBhbmc9XCI1NDAwMDAwXCIgc2NhbGVkPVwiMFwiLz48L2E6Z3JhZEZpbGw+PC9hOmZpbGxTdHlsZUxzdD48YTpsblN0eWxlTHN0PjxhOmxuIHc9XCI2MzUwXCIgY2FwPVwiZmxhdFwiIGNtcGQ9XCJzbmdcIiBhbGduPVwiY3RyXCI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD1cInNvbGlkXCIvPjxhOm1pdGVyIGxpbT1cIjgwMDAwMFwiLz48L2E6bG4+PGE6bG4gdz1cIjEyNzAwXCIgY2FwPVwiZmxhdFwiIGNtcGQ9XCJzbmdcIiBhbGduPVwiY3RyXCI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD1cInNvbGlkXCIvPjxhOm1pdGVyIGxpbT1cIjgwMDAwMFwiLz48L2E6bG4+PGE6bG4gdz1cIjE5MDUwXCIgY2FwPVwiZmxhdFwiIGNtcGQ9XCJzbmdcIiBhbGduPVwiY3RyXCI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD1cInNvbGlkXCIvPjxhOm1pdGVyIGxpbT1cIjgwMDAwMFwiLz48L2E6bG4+PC9hOmxuU3R5bGVMc3Q+PGE6ZWZmZWN0U3R5bGVMc3Q+PGE6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0THN0Lz48L2E6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0THN0Lz48L2E6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0THN0PjxhOm91dGVyU2hkdyBibHVyUmFkPVwiNTcxNTBcIiBkaXN0PVwiMTkwNTBcIiBkaXI9XCI1NDAwMDAwXCIgYWxnbj1cImN0clwiIHJvdFdpdGhTaGFwZT1cIjBcIj48YTpzcmdiQ2xyIHZhbD1cIjAwMDAwMFwiPjxhOmFscGhhIHZhbD1cIjYzMDAwXCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+PC9hOmVmZmVjdExzdD48L2E6ZWZmZWN0U3R5bGU+PC9hOmVmZmVjdFN0eWxlTHN0PjxhOmJnRmlsbFN0eWxlTHN0PjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIi8+PC9hOnNvbGlkRmlsbD48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6dGludCB2YWw9XCI5NTAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTcwMDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOnNvbGlkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9XCIxXCI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPVwiMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOnRpbnQgdmFsPVwiOTMwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjE1MDAwMFwiLz48YTpzaGFkZSB2YWw9XCI5ODAwMFwiLz48YTpsdW1Nb2QgdmFsPVwiMTAyMDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz1cIjUwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6dGludCB2YWw9XCI5ODAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTMwMDAwXCIvPjxhOnNoYWRlIHZhbD1cIjkwMDAwXCIvPjxhOmx1bU1vZCB2YWw9XCIxMDMwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiMTAwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6c2hhZGUgdmFsPVwiNjMwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjEyMDAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz1cIjU0MDAwMDBcIiBzY2FsZWQ9XCIwXCIvPjwvYTpncmFkRmlsbD48L2E6YmdGaWxsU3R5bGVMc3Q+PC9hOmZtdFNjaGVtZT48L2E6dGhlbWVFbGVtZW50cz48YTpvYmplY3REZWZhdWx0cy8+PGE6ZXh0cmFDbHJTY2hlbWVMc3QvPjxhOmV4dExzdD48YTpleHQgdXJpPVwiezA1QTRDMjVDLTA4NUUtNDM0MC04NUEzLUE1NTMxRTUxMERCMn1cIj48dGhtMTU6dGhlbWVGYW1pbHkgeG1sbnM6dGhtMTU9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS90aGVtZW1sLzIwMTIvbWFpblwiIG5hbWU9XCJPZmZpY2UgVGhlbWVcIiBpZD1cIns2MkY5MzlCNi05M0FGLTREQjgtOUM2Qi1ENkM3REZEQzU4OUZ9XCIgdmlkPVwiezRBM0M0NkU4LTYxQ0MtNDYwMy1BNTg5LTc0MjJBNDdBOEU0QX1cIi8+PC9hOmV4dD48L2E6ZXh0THN0PjwvYTp0aGVtZT4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U3R5bGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArXG4gICAgICAgICc8c3R5bGVTaGVldCB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpblwiIHhtbG5zOm1jPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDZcIiBtYzpJZ25vcmFibGU9XCJ4MTRhYyB4MTZyMlwiIHhtbG5zOngxNGFjPVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWNcIiB4bWxuczp4MTZyMj1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNS8wMi9tYWluXCI+PGZvbnRzIGNvdW50PVwiMlwiIHgxNGFjOmtub3duRm9udHM9XCIxXCI+PGZvbnQ+PHN6IHZhbD1cIjExXCIvPjxjb2xvciB0aGVtZT1cIjFcIi8+PG5hbWUgdmFsPVwiQ2FsaWJyaVwiLz48ZmFtaWx5IHZhbD1cIjJcIi8+PHNjaGVtZSB2YWw9XCJtaW5vclwiLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD1cIjExXCIvPjxjb2xvciByZ2I9XCJGRkI3QjdCN1wiLz48bmFtZSB2YWw9XCJDYWxpYnJpXCIvPjxmYW1pbHkgdmFsPVwiMlwiLz48c2NoZW1lIHZhbD1cIm1pbm9yXCIvPjwvZm9udD48L2ZvbnRzPjxmaWxscyBjb3VudD1cIjNcIj48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJub25lXCIvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJncmF5MTI1XCIvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJzb2xpZFwiPjxmZ0NvbG9yIHJnYj1cIkZGMEQxODIyXCIvPjxiZ0NvbG9yIGluZGV4ZWQ9XCI2NFwiLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48L2ZpbGxzPjxib3JkZXJzIGNvdW50PVwiMVwiPjxib3JkZXI+PGxlZnQvPjxyaWdodC8+PHRvcC8+PGJvdHRvbS8+PGRpYWdvbmFsLz48L2JvcmRlcj48L2JvcmRlcnM+PGNlbGxTdHlsZVhmcyBjb3VudD1cIjFcIj48eGYgbnVtRm10SWQ9XCIwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIi8+PC9jZWxsU3R5bGVYZnM+PGNlbGxYZnMgY291bnQ9XCI0XCI+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIi8+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+IDx4ZiBudW1GbXRJZD1cIjE0XCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz4gPHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjFcIiBmaWxsSWQ9XCIyXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIi8+PC9jZWxsWGZzPjxjZWxsU3R5bGVzIGNvdW50PVwiMVwiPjxjZWxsU3R5bGUgbmFtZT1cIk5vcm1hbFwiIHhmSWQ9XCIwXCIgYnVpbHRpbklkPVwiMFwiLz48L2NlbGxTdHlsZXM+PGR4ZnMgY291bnQ9XCIwXCIvPjx0YWJsZVN0eWxlcyBjb3VudD1cIjBcIiBkZWZhdWx0VGFibGVTdHlsZT1cIlRhYmxlU3R5bGVNZWRpdW0yXCIgZGVmYXVsdFBpdm90U3R5bGU9XCJQaXZvdFN0eWxlTGlnaHQxNlwiLz48ZXh0THN0PjxleHQgdXJpPVwie0VCNzlERUYyLTgwQjgtNDNlNS05NUJELTU0Q0JEREY5MDIwQ31cIiB4bWxuczp4MTQ9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9tYWluXCI+PHgxNDpzbGljZXJTdHlsZXMgZGVmYXVsdFNsaWNlclN0eWxlPVwiU2xpY2VyU3R5bGVMaWdodDFcIi8+PC9leHQ+PGV4dCB1cmk9XCJ7OTI2MEE1MTAtRjMwMS00NmE4LTg2MzUtRjUxMkQ2NEJFNUY1fVwiIHhtbG5zOngxNT1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxMC8xMS9tYWluXCI+PHgxNTp0aW1lbGluZVN0eWxlcyBkZWZhdWx0VGltZWxpbmVTdHlsZT1cIlRpbWVTbGljZXJTdHlsZUxpZ2h0MVwiLz48L2V4dD48L2V4dExzdD48L3N0eWxlU2hlZXQ+JztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFdvcmtib29rKHdvcmtzaGVldE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArIGA8d29ya2Jvb2sgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW5cIiB4bWxuczpyPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwc1wiIHhtbG5zOm1jPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDZcIiBtYzpJZ25vcmFibGU9XCJ4MTVcIiB4bWxuczp4MTU9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpblwiPjxmaWxlVmVyc2lvbiBhcHBOYW1lPVwieGxcIiBsYXN0RWRpdGVkPVwiNlwiIGxvd2VzdEVkaXRlZD1cIjZcIiBydXBCdWlsZD1cIjE0NDIwXCIvPjx3b3JrYm9va1ByIGZpbHRlclByaXZhY3k9XCIxXCIgZGVmYXVsdFRoZW1lVmVyc2lvbj1cIjE2NDAxMVwiLz48Ym9va1ZpZXdzPjx3b3JrYm9va1ZpZXcgeFdpbmRvdz1cIjBcIiB5V2luZG93PVwiMFwiIHdpbmRvd1dpZHRoPVwiMjIyNjBcIiB3aW5kb3dIZWlnaHQ9XCIxMjY0NVwiLz48L2Jvb2tWaWV3cz48c2hlZXRzPjxzaGVldCBuYW1lPVwiJHt3b3Jrc2hlZXROYW1lfVwiIHNoZWV0SWQ9XCIxXCIgcjppZD1cInJJZDFcIi8+PC9zaGVldHM+PGNhbGNQciBjYWxjSWQ9XCIxNjI5MTNcIi8+PGV4dExzdD48ZXh0IHVyaT1cInsxNDBBNzA5NC0wRTM1LTQ4OTItODQzMi1DNEQyRTU3RURFQjV9XCIgeG1sbnM6eDE1PVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDEwLzExL21haW5cIj48eDE1Ondvcmtib29rUHIgY2hhcnRUcmFja2luZ1JlZkJhc2U9XCIxXCIvPjwvZXh0PjwvZXh0THN0Pjwvd29ya2Jvb2s+YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFdvcmtzaGVldFJlbHMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgYDxSZWxhdGlvbnNoaXBzIHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzXCI+PFJlbGF0aW9uc2hpcCBJZD1cInJJZDFcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy90YWJsZVwiIFRhcmdldD1cIi4uL3RhYmxlcy90YWJsZTEueG1sXCIvPjwvUmVsYXRpb25zaGlwcz5gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0V29ya2Jvb2tSZWxzKGhhc1NoYXJlZFN0cmluZ3MpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmV0VmFsID0gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyBgPFJlbGF0aW9uc2hpcHMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHNcIj48UmVsYXRpb25zaGlwIElkPVwicklkM1wiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlc1wiIFRhcmdldD1cInN0eWxlcy54bWxcIi8+PFJlbGF0aW9uc2hpcCBJZD1cInJJZDJcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy90aGVtZVwiIFRhcmdldD1cInRoZW1lL3RoZW1lMS54bWxcIi8+PFJlbGF0aW9uc2hpcCBJZD1cInJJZDFcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXRcIiBUYXJnZXQ9XCJ3b3Jrc2hlZXRzL3NoZWV0MS54bWxcIi8+YDtcblxuICAgICAgICBpZiAoaGFzU2hhcmVkU3RyaW5ncykge1xuICAgICAgICAgICAgcmV0VmFsICs9IEV4Y2VsU3RyaW5ncy5TSEFSRURfU1RSSU5HX1JFTEFUSU9OU0hJUDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldFZhbCArPSAnPC9SZWxhdGlvbnNoaXBzPic7XG5cbiAgICAgICAgcmV0dXJuIHJldFZhbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFNoZWV0WE1MKGRpbWVuc2lvbjogc3RyaW5nLCBmcmVlemVQYW5lOiBzdHJpbmcsIGNvbHM6IHN0cmluZywgc2hlZXREYXRhOiBzdHJpbmcsIGhhc1RhYmxlOiBib29sZWFuLCBvdXRsaW5lTGV2ZWwgPSAwLCBpc0hpZXJhcmNoaWNhbDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGhhc091dGxpbmUgPSBvdXRsaW5lTGV2ZWwgPiAwO1xuICAgICAgICBjb25zdCB0YWJsZVBhcnRzID0gaGFzVGFibGUgPyAnPHRhYmxlUGFydHMgY291bnQ9XCIxXCI+PHRhYmxlUGFydCByOmlkPVwicklkMVwiLz48L3RhYmxlUGFydHM+JyA6ICcnO1xuICAgICAgICBjb25zdCBzaGVldE91dGxpbmVQcm9wID0gaGFzT3V0bGluZSA/ICc8c2hlZXRQcj48b3V0bGluZVByIHN1bW1hcnlCZWxvdz1cIjBcIi8+PC9zaGVldFByPicgOiAnJztcbiAgICAgICAgY29uc3Qgc091dGxpbmVMZXZlbCA9ICBoYXNPdXRsaW5lID8gYG91dGxpbmVMZXZlbFJvdz1cIiR7b3V0bGluZUxldmVsfVwiYCA6ICcnO1xuICAgICAgICBjb25zdCBkaW1lbnNpb25zID0gaXNIaWVyYXJjaGljYWwgPyAnJyA6IGA8ZGltZW5zaW9uIHJlZj1cIiR7ZGltZW5zaW9ufVwiLz5gO1xuXG4gICAgICAgIC8vIHJldHVybiBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArXG4gICAgICAgIC8vICAgICAnPHdvcmtzaGVldCB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpblwiIHhtbG5zOnI9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzXCIgeG1sbnM6bWM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNlwiIG1jOklnbm9yYWJsZT1cIngxNGFjXCIgeG1sbnM6eDE0YWM9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hY1wiPjxkaW1lbnNpb24gcmVmPVwiJyArIGRpbWVuc2lvbiArICdcIi8+PHNoZWV0Vmlld3M+PHNoZWV0VmlldyB0YWJTZWxlY3RlZD1cIjFcIiB3b3JrYm9va1ZpZXdJZD1cIjBcIj4nICsgZnJlZXplUGFuZSArICc8L3NoZWV0Vmlldz48L3NoZWV0Vmlld3M+PHNoZWV0Rm9ybWF0UHIgZGVmYXVsdFJvd0hlaWdodD1cIjE1XCIgeDE0YWM6ZHlEZXNjZW50PVwiMC4yNVwiLz4nICsgY29scyArIHNoZWV0RGF0YSArICc8cGFnZU1hcmdpbnMgbGVmdD1cIjAuN1wiIHJpZ2h0PVwiMC43XCIgdG9wPVwiMC43NVwiIGJvdHRvbT1cIjAuNzVcIiBoZWFkZXI9XCIwLjNcIiBmb290ZXI9XCIwLjNcIi8+JyArIHRhYmxlUGFydHMgKyAnPC93b3Jrc2hlZXQ+JztcblxuICAgICAgICByZXR1cm4gYCR7RXhjZWxTdHJpbmdzLlhNTF9TVFJJTkd9XG48d29ya3NoZWV0IHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgeG1sbnM6cj1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHNcIiB4bWxuczptYz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2XCIgbWM6SWdub3JhYmxlPVwieDE0YWNcIiB4bWxuczp4MTRhYz1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjXCI+XG4ke3NoZWV0T3V0bGluZVByb3B9XG4ke2RpbWVuc2lvbnN9XG48c2hlZXRWaWV3cz48c2hlZXRWaWV3IHRhYlNlbGVjdGVkPVwiMVwiIHdvcmtib29rVmlld0lkPVwiMFwiPiR7ZnJlZXplUGFuZX08L3NoZWV0Vmlldz48L3NoZWV0Vmlld3M+XG48c2hlZXRGb3JtYXRQciBkZWZhdWx0Um93SGVpZ2h0PVwiMTVcIiAke3NPdXRsaW5lTGV2ZWx9IHgxNGFjOmR5RGVzY2VudD1cIjAuMjVcIi8+XG4ke2NvbHN9XG4ke3NoZWV0RGF0YX1cbjxwYWdlTWFyZ2lucyBsZWZ0PVwiMC43XCIgcmlnaHQ9XCIwLjdcIiB0b3A9XCIwLjc1XCIgYm90dG9tPVwiMC43NVwiIGhlYWRlcj1cIjAuM1wiIGZvb3Rlcj1cIjAuM1wiLz5cbiR7dGFibGVQYXJ0c308L3dvcmtzaGVldD5gO1xuXG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRTaGFyZWRTdHJpbmdYTUwoY291bnQ6IG51bWJlciwgdW5pcXVlQ291bnQ6IG51bWJlciwgdGFibGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArICc8c3N0IHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgY291bnQ9XCInICsgY291bnQgKyAnXCIgdW5pcXVlQ291bnQ9XCInICsgdW5pcXVlQ291bnQgKyAnXCI+JyArIHRhYmxlICsgJzwvc3N0Pic7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb250ZW50VHlwZXNYTUwoaGFzU2hhcmVkU3RyaW5nczogYm9vbGVhbiwgaGFzVGFibGU6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBsZXQgY29udGVudFR5cGVzID0gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgK1xuICAgICAgICBgPFR5cGVzIHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzXFxcIj5cbiAgICAgICAgICAgIDxEZWZhdWx0IEV4dGVuc2lvbj1cInJlbHNcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sXCIvPlxuICAgICAgICAgICAgPERlZmF1bHQgRXh0ZW5zaW9uPVwieG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi94bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIveGwvd29ya2Jvb2sueG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIveGwvdGhlbWUvdGhlbWUxLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lK3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC9zdHlsZXMueG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL2RvY1Byb3BzL2NvcmUueG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5jb3JlLXByb3BlcnRpZXMreG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL2RvY1Byb3BzL2FwcC54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5leHRlbmRlZC1wcm9wZXJ0aWVzK3htbFwiLz5gO1xuXG4gICAgICAgIGNvbnRlbnRUeXBlcyArPSBoYXNTaGFyZWRTdHJpbmdzID9cbiAgICAgICAgYFx0PE92ZXJyaWRlIFBhcnROYW1lPVwiL3hsL3NoYXJlZFN0cmluZ3MueG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRTdHJpbmdzK3htbFwiLz5gIDogJyc7XG5cbiAgICAgICAgY29udGVudFR5cGVzICs9IGhhc1RhYmxlID9cbiAgICAgICAgICAgIGA8T3ZlcnJpZGUgUGFydE5hbWU9XCIveGwvdGFibGVzL3RhYmxlMS54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlK3htbFwiLz5gIDogJyc7XG4gICAgICAgIGNvbnRlbnRUeXBlcyArPSBgPC9UeXBlcz5gO1xuXG4gICAgICAgIHJldHVybiBjb250ZW50VHlwZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRUYWJsZXNYTUwoYXV0b0ZpbHRlckRpbWVuc2lvbjogc3RyaW5nLCB0YWJsZURpbWVuc2lvbjogc3RyaW5nLCB0YWJsZUNvbHVtbnM6IHN0cmluZywgc29ydDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke0V4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HfTx0YWJsZSB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpblwiIGlkPVwiMVwiIG5hbWU9XCJUYWJsZTFcIiBkaXNwbGF5TmFtZT1cIlRhYmxlMVwiIHJlZj1cIiR7dGFibGVEaW1lbnNpb259XCIgdG90YWxzUm93U2hvd249XCIwXCI+XG4gICAgPGF1dG9GaWx0ZXIgcmVmPVwiJHthdXRvRmlsdGVyRGltZW5zaW9ufVwiLz4ke3NvcnR9JHt0YWJsZUNvbHVtbnN9PHRhYmxlU3R5bGVJbmZvIG5hbWU9XCJUYWJsZVN0eWxlTWVkaXVtMlwiIHNob3dGaXJzdENvbHVtbj1cIjBcIiBzaG93TGFzdENvbHVtbj1cIjBcIiBzaG93Um93U3RyaXBlcz1cIjFcIiBzaG93Q29sdW1uU3RyaXBlcz1cIjBcIi8+XG48L3RhYmxlPmA7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgIG1heC1sZW4gKi9cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RXhjZWxDb2x1bW4oaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIC8vIFJldHVybnMgdGhlIGV4Y2VsIGNvbHVtbiBuYW1lIGZvciBnaXZlbiAwLWJhc2VkIGluZGV4XG4gICAgICAgIC8vIEZvciBleGFtcGxlIDI3IHNob3VsZCByZXR1cm4gXCJBQlwiXG4gICAgICAgIGxldCByZXR1cm5TdHJpbmcgPSAnJztcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYXIgPSBpbmRleCAlIDI2O1xuICAgICAgICAgICAgcmV0dXJuU3RyaW5nID0gU3RyaW5nLmZyb21DaGFyQ29kZSg2NSArIGNoYXIpICsgcmV0dXJuU3RyaW5nO1xuICAgICAgICAgICAgaW5kZXggPSBNYXRoLmZsb29yKGluZGV4IC8gMjYpIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0dXJuU3RyaW5nO1xuICAgIH1cbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leGNlbC9leGNlbC1zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxNQUFNLE9BQU8sWUFBWTtJQUtkLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyxxaEJBQXFoQixDQUFDO0lBQzNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFxQjtRQUN0QyxPQUFPLFlBQVksQ0FBQyxVQUFVLEdBQUcsa2dCQUFrZ0IsYUFBYSxxTkFBcU4sQ0FBQztJQUMxd0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRywwaEJBQTBoQixDQUFDO0lBQ2hrQixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVE7UUFDbEIsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLHloTkFBeWhOLENBQUM7SUFDL2pOLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUztRQUNuQixPQUFPLFlBQVksQ0FBQyxVQUFVO1lBQzlCLG9oRUFBb2hFLENBQUM7SUFDemhFLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQXFCO1FBQzNDLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyxza0JBQXNrQixhQUFhLHdRQUF3USxDQUFDO0lBQ2o0QixDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQjtRQUMxQixPQUFPLFlBQVksQ0FBQyxVQUFVLEdBQUcsOE9BQThPLENBQUM7SUFDcFIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsZ0JBQWdCO1FBQzFDLElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQyxVQUFVLEdBQUcsc2VBQXNlLENBQUM7UUFFOWdCLElBQUksZ0JBQWdCLEVBQUU7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WyIvKiogQGhpZGRlbiAqL1xuZXhwb3J0IGNsYXNzIEV4Y2VsU3RyaW5ncyB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgIG1heC1sZW4gKi9cbiAgICBwcml2YXRlIHN0YXRpYyBYTUxfU1RSSU5HID0gJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/Plxcclxcbic7XG4gICAgcHJpdmF0ZSBzdGF0aWMgU0hBUkVEX1NUUklOR19SRUxBVElPTlNISVAgPSAnPFJlbGF0aW9uc2hpcCBJZD1cInJJZDRcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zaGFyZWRTdHJpbmdzXCIgVGFyZ2V0PVwic2hhcmVkU3RyaW5ncy54bWxcIiAvPic7XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbHMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxSZWxhdGlvbnNoaXBzIHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzXCI+PFJlbGF0aW9uc2hpcCBJZD1cInJJZDNcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0aWVzXCIgVGFyZ2V0PVwiZG9jUHJvcHMvYXBwLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMlwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzXCIgVGFyZ2V0PVwiZG9jUHJvcHMvY29yZS54bWxcIi8+PFJlbGF0aW9uc2hpcCBJZD1cInJJZDFcIiBUeXBlPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudFwiIFRhcmdldD1cInhsL3dvcmtib29rLnhtbFwiLz48L1JlbGF0aW9uc2hpcHM+JztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEFwcCh3b3Jrc2hlZXROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyBgPFByb3BlcnRpZXMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9leHRlbmRlZC1wcm9wZXJ0aWVzXCIgeG1sbnM6dnQ9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9kb2NQcm9wc1ZUeXBlc1wiPjxBcHBsaWNhdGlvbj5NaWNyb3NvZnQgRXhjZWw8L0FwcGxpY2F0aW9uPjxEb2NTZWN1cml0eT4wPC9Eb2NTZWN1cml0eT48U2NhbGVDcm9wPmZhbHNlPC9TY2FsZUNyb3A+PEhlYWRpbmdQYWlycz48dnQ6dmVjdG9yIHNpemU9XCIyXCIgYmFzZVR5cGU9XCJ2YXJpYW50XCI+PHZ0OnZhcmlhbnQ+PHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3RyPjwvdnQ6dmFyaWFudD48dnQ6dmFyaWFudD48dnQ6aTQ+MTwvdnQ6aTQ+PC92dDp2YXJpYW50PjwvdnQ6dmVjdG9yPjwvSGVhZGluZ1BhaXJzPjxUaXRsZXNPZlBhcnRzPjx2dDp2ZWN0b3Igc2l6ZT1cIjFcIiBiYXNlVHlwZT1cImxwc3RyXCI+PHZ0Omxwc3RyPiR7d29ya3NoZWV0TmFtZX08L3Z0Omxwc3RyPjwvdnQ6dmVjdG9yPjwvVGl0bGVzT2ZQYXJ0cz48Q29tcGFueT48L0NvbXBhbnk+PExpbmtzVXBUb0RhdGU+ZmFsc2U8L0xpbmtzVXBUb0RhdGU+PFNoYXJlZERvYz5mYWxzZTwvU2hhcmVkRG9jPjxIeXBlcmxpbmtzQ2hhbmdlZD5mYWxzZTwvSHlwZXJsaW5rc0NoYW5nZWQ+PEFwcFZlcnNpb24+MTYuMDMwMDwvQXBwVmVyc2lvbj48L1Byb3BlcnRpZXM+YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldENvcmUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxjcDpjb3JlUHJvcGVydGllcyB4bWxuczpjcD1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzXCIgeG1sbnM6ZGM9XCJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xL1wiIHhtbG5zOmRjdGVybXM9XCJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvXCIgeG1sbnM6ZGNtaXR5cGU9XCJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvXCIgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIj48ZGM6Y3JlYXRvcj48L2RjOmNyZWF0b3I+PGNwOmxhc3RNb2RpZmllZEJ5PjwvY3A6bGFzdE1vZGlmaWVkQnk+PGRjdGVybXM6Y3JlYXRlZCB4c2k6dHlwZT1cImRjdGVybXM6VzNDRFRGXCI+MjAxNS0wNi0wNVQxODoxNzoyMFo8L2RjdGVybXM6Y3JlYXRlZD48ZGN0ZXJtczptb2RpZmllZCB4c2k6dHlwZT1cImRjdGVybXM6VzNDRFRGXCI+MjAxNS0wNi0wNVQxODoxNzoyNlo8L2RjdGVybXM6bW9kaWZpZWQ+PC9jcDpjb3JlUHJvcGVydGllcz4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGhlbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxhOnRoZW1lIHhtbG5zOmE9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpblwiIG5hbWU9XCJPZmZpY2UgVGhlbWVcIj48YTp0aGVtZUVsZW1lbnRzPjxhOmNsclNjaGVtZSBuYW1lPVwiT2ZmaWNlXCI+PGE6ZGsxPjxhOnN5c0NsciB2YWw9XCJ3aW5kb3dUZXh0XCIgbGFzdENscj1cIjAwMDAwMFwiLz48L2E6ZGsxPjxhOmx0MT48YTpzeXNDbHIgdmFsPVwid2luZG93XCIgbGFzdENscj1cIkZGRkZGRlwiLz48L2E6bHQxPjxhOmRrMj48YTpzcmdiQ2xyIHZhbD1cIjQ0NTQ2QVwiLz48L2E6ZGsyPjxhOmx0Mj48YTpzcmdiQ2xyIHZhbD1cIkU3RTZFNlwiLz48L2E6bHQyPjxhOmFjY2VudDE+PGE6c3JnYkNsciB2YWw9XCI1QjlCRDVcIi8+PC9hOmFjY2VudDE+PGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD1cIkVEN0QzMVwiLz48L2E6YWNjZW50Mj48YTphY2NlbnQzPjxhOnNyZ2JDbHIgdmFsPVwiQTVBNUE1XCIvPjwvYTphY2NlbnQzPjxhOmFjY2VudDQ+PGE6c3JnYkNsciB2YWw9XCJGRkMwMDBcIi8+PC9hOmFjY2VudDQ+PGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD1cIjQ0NzJDNFwiLz48L2E6YWNjZW50NT48YTphY2NlbnQ2PjxhOnNyZ2JDbHIgdmFsPVwiNzBBRDQ3XCIvPjwvYTphY2NlbnQ2PjxhOmhsaW5rPjxhOnNyZ2JDbHIgdmFsPVwiMDU2M0MxXCIvPjwvYTpobGluaz48YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD1cIjk1NEY3MlwiLz48L2E6Zm9sSGxpbms+PC9hOmNsclNjaGVtZT48YTpmb250U2NoZW1lIG5hbWU9XCJPZmZpY2VcIj48YTptYWpvckZvbnQ+PGE6bGF0aW4gdHlwZWZhY2U9XCJDYWxpYnJpIExpZ2h0XCIgcGFub3NlPVwiMDIwRjAzMDIwMjAyMDQwMzAyMDRcIi8+PGE6ZWEgdHlwZWZhY2U9XCJcIi8+PGE6Y3MgdHlwZWZhY2U9XCJcIi8+PGE6Zm9udCBzY3JpcHQ9XCJKcGFuXCIgdHlwZWZhY2U9XCLmuLjjgrTjgrfjg4Pjgq8gTGlnaHRcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5nXCIgdHlwZWZhY2U9XCLrp5HsnYAg6rOg65SVXCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFuc1wiIHR5cGVmYWNlPVwi562J57q/IExpZ2h0XCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFudFwiIHR5cGVmYWNlPVwi5paw57Sw5piO6auUXCIvPjxhOmZvbnQgc2NyaXB0PVwiQXJhYlwiIHR5cGVmYWNlPVwiVGltZXMgTmV3IFJvbWFuXCIvPjxhOmZvbnQgc2NyaXB0PVwiSGViclwiIHR5cGVmYWNlPVwiVGltZXMgTmV3IFJvbWFuXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhaVwiIHR5cGVmYWNlPVwiVGFob21hXCIvPjxhOmZvbnQgc2NyaXB0PVwiRXRoaVwiIHR5cGVmYWNlPVwiTnlhbGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJCZW5nXCIgdHlwZWZhY2U9XCJWcmluZGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJHdWpyXCIgdHlwZWZhY2U9XCJTaHJ1dGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJLaG1yXCIgdHlwZWZhY2U9XCJNb29sQm9yYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJLbmRhXCIgdHlwZWZhY2U9XCJUdW5nYVwiLz48YTpmb250IHNjcmlwdD1cIkd1cnVcIiB0eXBlZmFjZT1cIlJhYXZpXCIvPjxhOmZvbnQgc2NyaXB0PVwiQ2Fuc1wiIHR5cGVmYWNlPVwiRXVwaGVtaWFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDaGVyXCIgdHlwZWZhY2U9XCJQbGFudGFnZW5ldCBDaGVyb2tlZVwiLz48YTpmb250IHNjcmlwdD1cIllpaWlcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBZaSBCYWl0aVwiLz48YTpmb250IHNjcmlwdD1cIlRpYnRcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBIaW1hbGF5YVwiLz48YTpmb250IHNjcmlwdD1cIlRoYWFcIiB0eXBlZmFjZT1cIk1WIEJvbGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJEZXZhXCIgdHlwZWZhY2U9XCJNYW5nYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUZWx1XCIgdHlwZWZhY2U9XCJHYXV0YW1pXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGFtbFwiIHR5cGVmYWNlPVwiTGF0aGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTeXJjXCIgdHlwZWZhY2U9XCJFc3RyYW5nZWxvIEVkZXNzYVwiLz48YTpmb250IHNjcmlwdD1cIk9yeWFcIiB0eXBlZmFjZT1cIkthbGluZ2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNbHltXCIgdHlwZWZhY2U9XCJLYXJ0aWthXCIvPjxhOmZvbnQgc2NyaXB0PVwiTGFvb1wiIHR5cGVmYWNlPVwiRG9rQ2hhbXBhXCIvPjxhOmZvbnQgc2NyaXB0PVwiU2luaFwiIHR5cGVmYWNlPVwiSXNrb29sYSBQb3RhXCIvPjxhOmZvbnQgc2NyaXB0PVwiTW9uZ1wiIHR5cGVmYWNlPVwiTW9uZ29saWFuIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVmlldFwiIHR5cGVmYWNlPVwiVGltZXMgTmV3IFJvbWFuXCIvPjxhOmZvbnQgc2NyaXB0PVwiVWlnaFwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IFVpZ2h1clwiLz48YTpmb250IHNjcmlwdD1cIkdlb3JcIiB0eXBlZmFjZT1cIlN5bGZhZW5cIi8+PC9hOm1ham9yRm9udD48YTptaW5vckZvbnQ+PGE6bGF0aW4gdHlwZWZhY2U9XCJDYWxpYnJpXCIgcGFub3NlPVwiMDIwRjA1MDIwMjAyMDQwMzAyMDRcIi8+PGE6ZWEgdHlwZWZhY2U9XCJcIi8+PGE6Y3MgdHlwZWZhY2U9XCJcIi8+PGE6Zm9udCBzY3JpcHQ9XCJKcGFuXCIgdHlwZWZhY2U9XCLmuLjjgrTjgrfjg4Pjgq9cIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5nXCIgdHlwZWZhY2U9XCLrp5HsnYAg6rOg65SVXCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFuc1wiIHR5cGVmYWNlPVwi562J57q/XCIvPjxhOmZvbnQgc2NyaXB0PVwiSGFudFwiIHR5cGVmYWNlPVwi5paw57Sw5piO6auUXCIvPjxhOmZvbnQgc2NyaXB0PVwiQXJhYlwiIHR5cGVmYWNlPVwiQXJpYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIZWJyXCIgdHlwZWZhY2U9XCJBcmlhbFwiLz48YTpmb250IHNjcmlwdD1cIlRoYWlcIiB0eXBlZmFjZT1cIlRhaG9tYVwiLz48YTpmb250IHNjcmlwdD1cIkV0aGlcIiB0eXBlZmFjZT1cIk55YWxhXCIvPjxhOmZvbnQgc2NyaXB0PVwiQmVuZ1wiIHR5cGVmYWNlPVwiVnJpbmRhXCIvPjxhOmZvbnQgc2NyaXB0PVwiR3VqclwiIHR5cGVmYWNlPVwiU2hydXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiS2htclwiIHR5cGVmYWNlPVwiRGF1blBlbmhcIi8+PGE6Zm9udCBzY3JpcHQ9XCJLbmRhXCIgdHlwZWZhY2U9XCJUdW5nYVwiLz48YTpmb250IHNjcmlwdD1cIkd1cnVcIiB0eXBlZmFjZT1cIlJhYXZpXCIvPjxhOmZvbnQgc2NyaXB0PVwiQ2Fuc1wiIHR5cGVmYWNlPVwiRXVwaGVtaWFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDaGVyXCIgdHlwZWZhY2U9XCJQbGFudGFnZW5ldCBDaGVyb2tlZVwiLz48YTpmb250IHNjcmlwdD1cIllpaWlcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBZaSBCYWl0aVwiLz48YTpmb250IHNjcmlwdD1cIlRpYnRcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBIaW1hbGF5YVwiLz48YTpmb250IHNjcmlwdD1cIlRoYWFcIiB0eXBlZmFjZT1cIk1WIEJvbGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJEZXZhXCIgdHlwZWZhY2U9XCJNYW5nYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUZWx1XCIgdHlwZWZhY2U9XCJHYXV0YW1pXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGFtbFwiIHR5cGVmYWNlPVwiTGF0aGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTeXJjXCIgdHlwZWZhY2U9XCJFc3RyYW5nZWxvIEVkZXNzYVwiLz48YTpmb250IHNjcmlwdD1cIk9yeWFcIiB0eXBlZmFjZT1cIkthbGluZ2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNbHltXCIgdHlwZWZhY2U9XCJLYXJ0aWthXCIvPjxhOmZvbnQgc2NyaXB0PVwiTGFvb1wiIHR5cGVmYWNlPVwiRG9rQ2hhbXBhXCIvPjxhOmZvbnQgc2NyaXB0PVwiU2luaFwiIHR5cGVmYWNlPVwiSXNrb29sYSBQb3RhXCIvPjxhOmZvbnQgc2NyaXB0PVwiTW9uZ1wiIHR5cGVmYWNlPVwiTW9uZ29saWFuIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVmlldFwiIHR5cGVmYWNlPVwiQXJpYWxcIi8+PGE6Zm9udCBzY3JpcHQ9XCJVaWdoXCIgdHlwZWZhY2U9XCJNaWNyb3NvZnQgVWlnaHVyXCIvPjxhOmZvbnQgc2NyaXB0PVwiR2VvclwiIHR5cGVmYWNlPVwiU3lsZmFlblwiLz48L2E6bWlub3JGb250PjwvYTpmb250U2NoZW1lPjxhOmZtdFNjaGVtZSBuYW1lPVwiT2ZmaWNlXCI+PGE6ZmlsbFN0eWxlTHN0PjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIi8+PC9hOnNvbGlkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9XCIxXCI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPVwiMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOmx1bU1vZCB2YWw9XCIxMTAwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjEwNTAwMFwiLz48YTp0aW50IHZhbD1cIjY3MDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz1cIjUwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjEwNTAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTAzMDAwXCIvPjxhOnRpbnQgdmFsPVwiNzMwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiMTAwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjEwNTAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTA5MDAwXCIvPjxhOnRpbnQgdmFsPVwiODEwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PC9hOmdzTHN0PjxhOmxpbiBhbmc9XCI1NDAwMDAwXCIgc2NhbGVkPVwiMFwiLz48L2E6Z3JhZEZpbGw+PGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPVwiMVwiPjxhOmdzTHN0PjxhOmdzIHBvcz1cIjBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpzYXRNb2QgdmFsPVwiMTAzMDAwXCIvPjxhOmx1bU1vZCB2YWw9XCIxMDIwMDBcIi8+PGE6dGludCB2YWw9XCI5NDAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCI1MDAwMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOnNhdE1vZCB2YWw9XCIxMTAwMDBcIi8+PGE6bHVtTW9kIHZhbD1cIjEwMDAwMFwiLz48YTpzaGFkZSB2YWw9XCIxMDAwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiMTAwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjk5MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMjAwMDBcIi8+PGE6c2hhZGUgdmFsPVwiNzgwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PC9hOmdzTHN0PjxhOmxpbiBhbmc9XCI1NDAwMDAwXCIgc2NhbGVkPVwiMFwiLz48L2E6Z3JhZEZpbGw+PC9hOmZpbGxTdHlsZUxzdD48YTpsblN0eWxlTHN0PjxhOmxuIHc9XCI2MzUwXCIgY2FwPVwiZmxhdFwiIGNtcGQ9XCJzbmdcIiBhbGduPVwiY3RyXCI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD1cInNvbGlkXCIvPjxhOm1pdGVyIGxpbT1cIjgwMDAwMFwiLz48L2E6bG4+PGE6bG4gdz1cIjEyNzAwXCIgY2FwPVwiZmxhdFwiIGNtcGQ9XCJzbmdcIiBhbGduPVwiY3RyXCI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD1cInNvbGlkXCIvPjxhOm1pdGVyIGxpbT1cIjgwMDAwMFwiLz48L2E6bG4+PGE6bG4gdz1cIjE5MDUwXCIgY2FwPVwiZmxhdFwiIGNtcGQ9XCJzbmdcIiBhbGduPVwiY3RyXCI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD1cInNvbGlkXCIvPjxhOm1pdGVyIGxpbT1cIjgwMDAwMFwiLz48L2E6bG4+PC9hOmxuU3R5bGVMc3Q+PGE6ZWZmZWN0U3R5bGVMc3Q+PGE6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0THN0Lz48L2E6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0THN0Lz48L2E6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0THN0PjxhOm91dGVyU2hkdyBibHVyUmFkPVwiNTcxNTBcIiBkaXN0PVwiMTkwNTBcIiBkaXI9XCI1NDAwMDAwXCIgYWxnbj1cImN0clwiIHJvdFdpdGhTaGFwZT1cIjBcIj48YTpzcmdiQ2xyIHZhbD1cIjAwMDAwMFwiPjxhOmFscGhhIHZhbD1cIjYzMDAwXCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+PC9hOmVmZmVjdExzdD48L2E6ZWZmZWN0U3R5bGU+PC9hOmVmZmVjdFN0eWxlTHN0PjxhOmJnRmlsbFN0eWxlTHN0PjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIi8+PC9hOnNvbGlkRmlsbD48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6dGludCB2YWw9XCI5NTAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTcwMDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOnNvbGlkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9XCIxXCI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPVwiMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOnRpbnQgdmFsPVwiOTMwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjE1MDAwMFwiLz48YTpzaGFkZSB2YWw9XCI5ODAwMFwiLz48YTpsdW1Nb2QgdmFsPVwiMTAyMDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz1cIjUwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6dGludCB2YWw9XCI5ODAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTMwMDAwXCIvPjxhOnNoYWRlIHZhbD1cIjkwMDAwXCIvPjxhOmx1bU1vZCB2YWw9XCIxMDMwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiMTAwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6c2hhZGUgdmFsPVwiNjMwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjEyMDAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz1cIjU0MDAwMDBcIiBzY2FsZWQ9XCIwXCIvPjwvYTpncmFkRmlsbD48L2E6YmdGaWxsU3R5bGVMc3Q+PC9hOmZtdFNjaGVtZT48L2E6dGhlbWVFbGVtZW50cz48YTpvYmplY3REZWZhdWx0cy8+PGE6ZXh0cmFDbHJTY2hlbWVMc3QvPjxhOmV4dExzdD48YTpleHQgdXJpPVwiezA1QTRDMjVDLTA4NUUtNDM0MC04NUEzLUE1NTMxRTUxMERCMn1cIj48dGhtMTU6dGhlbWVGYW1pbHkgeG1sbnM6dGhtMTU9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS90aGVtZW1sLzIwMTIvbWFpblwiIG5hbWU9XCJPZmZpY2UgVGhlbWVcIiBpZD1cIns2MkY5MzlCNi05M0FGLTREQjgtOUM2Qi1ENkM3REZEQzU4OUZ9XCIgdmlkPVwiezRBM0M0NkU4LTYxQ0MtNDYwMy1BNTg5LTc0MjJBNDdBOEU0QX1cIi8+PC9hOmV4dD48L2E6ZXh0THN0PjwvYTp0aGVtZT4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U3R5bGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArXG4gICAgICAgICc8c3R5bGVTaGVldCB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpblwiIHhtbG5zOm1jPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDZcIiBtYzpJZ25vcmFibGU9XCJ4MTRhYyB4MTZyMlwiIHhtbG5zOngxNGFjPVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWNcIiB4bWxuczp4MTZyMj1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNS8wMi9tYWluXCI+PGZvbnRzIGNvdW50PVwiMlwiIHgxNGFjOmtub3duRm9udHM9XCIxXCI+PGZvbnQ+PHN6IHZhbD1cIjExXCIvPjxjb2xvciB0aGVtZT1cIjFcIi8+PG5hbWUgdmFsPVwiQ2FsaWJyaVwiLz48ZmFtaWx5IHZhbD1cIjJcIi8+PHNjaGVtZSB2YWw9XCJtaW5vclwiLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD1cIjExXCIvPjxjb2xvciByZ2I9XCJGRkI3QjdCN1wiLz48bmFtZSB2YWw9XCJDYWxpYnJpXCIvPjxmYW1pbHkgdmFsPVwiMlwiLz48c2NoZW1lIHZhbD1cIm1pbm9yXCIvPjwvZm9udD48L2ZvbnRzPjxmaWxscyBjb3VudD1cIjNcIj48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJub25lXCIvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJncmF5MTI1XCIvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJzb2xpZFwiPjxmZ0NvbG9yIHJnYj1cIkZGMEQxODIyXCIvPjxiZ0NvbG9yIGluZGV4ZWQ9XCI2NFwiLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48L2ZpbGxzPjxib3JkZXJzIGNvdW50PVwiMVwiPjxib3JkZXI+PGxlZnQvPjxyaWdodC8+PHRvcC8+PGJvdHRvbS8+PGRpYWdvbmFsLz48L2JvcmRlcj48L2JvcmRlcnM+PGNlbGxTdHlsZVhmcyBjb3VudD1cIjFcIj48eGYgbnVtRm10SWQ9XCIwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIi8+PC9jZWxsU3R5bGVYZnM+PGNlbGxYZnMgY291bnQ9XCI1XCI+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIi8+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMTRcIiBmb250SWQ9XCIwXCIgZmlsbElkPVwiMFwiIGJvcmRlcklkPVwiMFwiIHhmSWQ9XCIwXCIgYXBwbHlOdW1iZXJGb3JtYXQ9XCIxXCIvPjx4ZiBudW1GbXRJZD1cIjBcIiBmb250SWQ9XCIxXCIgZmlsbElkPVwiMlwiIGJvcmRlcklkPVwiMFwiIHhmSWQ9XCIwXCIvPjx4ZiBudW1GbXRJZD1cIjBcIiBmb250SWQ9XCIwXCIgZmlsbElkPVwiMFwiIGJvcmRlcklkPVwiMFwiIHhmSWQ9XCIwXCIgYXBwbHlBbGlnbm1lbnQ9XCIxXCI+PGFsaWdubWVudCBob3Jpem9udGFsPVwiY2VudGVyXCIgdmVydGljYWw9XCJjZW50ZXJcIi8+PC94Zj48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9XCIxXCI+PGNlbGxTdHlsZSBuYW1lPVwiTm9ybWFsXCIgeGZJZD1cIjBcIiBidWlsdGluSWQ9XCIwXCIvPjwvY2VsbFN0eWxlcz48ZHhmcyBjb3VudD1cIjBcIi8+PHRhYmxlU3R5bGVzIGNvdW50PVwiMFwiIGRlZmF1bHRUYWJsZVN0eWxlPVwiVGFibGVTdHlsZU1lZGl1bTJcIiBkZWZhdWx0UGl2b3RTdHlsZT1cIlBpdm90U3R5bGVMaWdodDE2XCIvPjxleHRMc3Q+PGV4dCB1cmk9XCJ7RUI3OURFRjItODBCOC00M2U1LTk1QkQtNTRDQkRERjkwMjBDfVwiIHhtbG5zOngxND1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L21haW5cIj48eDE0OnNsaWNlclN0eWxlcyBkZWZhdWx0U2xpY2VyU3R5bGU9XCJTbGljZXJTdHlsZUxpZ2h0MVwiLz48L2V4dD48ZXh0IHVyaT1cIns5MjYwQTUxMC1GMzAxLTQ2YTgtODYzNS1GNTEyRDY0QkU1RjV9XCIgeG1sbnM6eDE1PVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDEwLzExL21haW5cIj48eDE1OnRpbWVsaW5lU3R5bGVzIGRlZmF1bHRUaW1lbGluZVN0eWxlPVwiVGltZVNsaWNlclN0eWxlTGlnaHQxXCIvPjwvZXh0PjwvZXh0THN0Pjwvc3R5bGVTaGVldD4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0V29ya2Jvb2sod29ya3NoZWV0TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgYDx3b3JrYm9vayB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpblwiIHhtbG5zOnI9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzXCIgeG1sbnM6bWM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNlwiIG1jOklnbm9yYWJsZT1cIngxNVwiIHhtbG5zOngxNT1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxMC8xMS9tYWluXCI+PGZpbGVWZXJzaW9uIGFwcE5hbWU9XCJ4bFwiIGxhc3RFZGl0ZWQ9XCI2XCIgbG93ZXN0RWRpdGVkPVwiNlwiIHJ1cEJ1aWxkPVwiMTQ0MjBcIi8+PHdvcmtib29rUHIgZmlsdGVyUHJpdmFjeT1cIjFcIiBkZWZhdWx0VGhlbWVWZXJzaW9uPVwiMTY0MDExXCIvPjxib29rVmlld3M+PHdvcmtib29rVmlldyB4V2luZG93PVwiMFwiIHlXaW5kb3c9XCIwXCIgd2luZG93V2lkdGg9XCIyMjI2MFwiIHdpbmRvd0hlaWdodD1cIjEyNjQ1XCIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9XCIke3dvcmtzaGVldE5hbWV9XCIgc2hlZXRJZD1cIjFcIiByOmlkPVwicklkMVwiLz48L3NoZWV0cz48Y2FsY1ByIGNhbGNJZD1cIjE2MjkxM1wiLz48ZXh0THN0PjxleHQgdXJpPVwiezE0MEE3MDk0LTBFMzUtNDg5Mi04NDMyLUM0RDJFNTdFREVCNX1cIiB4bWxuczp4MTU9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpblwiPjx4MTU6d29ya2Jvb2tQciBjaGFydFRyYWNraW5nUmVmQmFzZT1cIjFcIi8+PC9leHQ+PC9leHRMc3Q+PC93b3JrYm9vaz5gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0V29ya3NoZWV0UmVscygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyBgPFJlbGF0aW9uc2hpcHMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHNcIj48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RhYmxlXCIgVGFyZ2V0PVwiLi4vdGFibGVzL3RhYmxlMS54bWxcIi8+PC9SZWxhdGlvbnNoaXBzPmA7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRXb3JrYm9va1JlbHMoaGFzU2hhcmVkU3RyaW5ncyk6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXRWYWwgPSBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArIGA8UmVsYXRpb25zaGlwcyB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwc1wiPjxSZWxhdGlvbnNoaXAgSWQ9XCJySWQzXCIgVHlwZT1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzXCIgVGFyZ2V0PVwic3R5bGVzLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMlwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lXCIgVGFyZ2V0PVwidGhlbWUvdGhlbWUxLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldFwiIFRhcmdldD1cIndvcmtzaGVldHMvc2hlZXQxLnhtbFwiLz5gO1xuXG4gICAgICAgIGlmIChoYXNTaGFyZWRTdHJpbmdzKSB7XG4gICAgICAgICAgICByZXRWYWwgKz0gRXhjZWxTdHJpbmdzLlNIQVJFRF9TVFJJTkdfUkVMQVRJT05TSElQO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0VmFsICs9ICc8L1JlbGF0aW9uc2hpcHM+JztcblxuICAgICAgICByZXR1cm4gcmV0VmFsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2hlZXRYTUwoZGltZW5zaW9uOiBzdHJpbmcsIGZyZWV6ZVBhbmU6IHN0cmluZywgY29sczogc3RyaW5nLCBzaGVldERhdGE6IHN0cmluZywgaGFzVGFibGU6IGJvb2xlYW4sIG91dGxpbmVMZXZlbCA9IDAsIGlzSGllcmFyY2hpY2FsOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGFzT3V0bGluZSA9IG91dGxpbmVMZXZlbCA+IDA7XG4gICAgICAgIGNvbnN0IHRhYmxlUGFydHMgPSBoYXNUYWJsZSA/ICc8dGFibGVQYXJ0cyBjb3VudD1cIjFcIj48dGFibGVQYXJ0IHI6aWQ9XCJySWQxXCIvPjwvdGFibGVQYXJ0cz4nIDogJyc7XG4gICAgICAgIGNvbnN0IHNoZWV0T3V0bGluZVByb3AgPSBoYXNPdXRsaW5lID8gJzxzaGVldFByPjxvdXRsaW5lUHIgc3VtbWFyeUJlbG93PVwiMFwiLz48L3NoZWV0UHI+JyA6ICcnO1xuICAgICAgICBjb25zdCBzT3V0bGluZUxldmVsID0gIGhhc091dGxpbmUgPyBgb3V0bGluZUxldmVsUm93PVwiJHtvdXRsaW5lTGV2ZWx9XCJgIDogJyc7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBpc0hpZXJhcmNoaWNhbCA/ICcnIDogYDxkaW1lbnNpb24gcmVmPVwiJHtkaW1lbnNpb259XCIvPmA7XG5cbiAgICAgICAgLy8gcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICtcbiAgICAgICAgLy8gICAgICc8d29ya3NoZWV0IHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgeG1sbnM6cj1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHNcIiB4bWxuczptYz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2XCIgbWM6SWdub3JhYmxlPVwieDE0YWNcIiB4bWxuczp4MTRhYz1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjXCI+PGRpbWVuc2lvbiByZWY9XCInICsgZGltZW5zaW9uICsgJ1wiLz48c2hlZXRWaWV3cz48c2hlZXRWaWV3IHRhYlNlbGVjdGVkPVwiMVwiIHdvcmtib29rVmlld0lkPVwiMFwiPicgKyBmcmVlemVQYW5lICsgJzwvc2hlZXRWaWV3Pjwvc2hlZXRWaWV3cz48c2hlZXRGb3JtYXRQciBkZWZhdWx0Um93SGVpZ2h0PVwiMTVcIiB4MTRhYzpkeURlc2NlbnQ9XCIwLjI1XCIvPicgKyBjb2xzICsgc2hlZXREYXRhICsgJzxwYWdlTWFyZ2lucyBsZWZ0PVwiMC43XCIgcmlnaHQ9XCIwLjdcIiB0b3A9XCIwLjc1XCIgYm90dG9tPVwiMC43NVwiIGhlYWRlcj1cIjAuM1wiIGZvb3Rlcj1cIjAuM1wiLz4nICsgdGFibGVQYXJ0cyArICc8L3dvcmtzaGVldD4nO1xuXG4gICAgICAgIHJldHVybiBgJHtFeGNlbFN0cmluZ3MuWE1MX1NUUklOR31cbjx3b3Jrc2hlZXQgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW5cIiB4bWxuczpyPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwc1wiIHhtbG5zOm1jPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDZcIiBtYzpJZ25vcmFibGU9XCJ4MTRhY1wiIHhtbG5zOngxNGFjPVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWNcIj5cbiR7c2hlZXRPdXRsaW5lUHJvcH1cbiR7ZGltZW5zaW9uc31cbjxzaGVldFZpZXdzPjxzaGVldFZpZXcgdGFiU2VsZWN0ZWQ9XCIxXCIgd29ya2Jvb2tWaWV3SWQ9XCIwXCI+JHtmcmVlemVQYW5lfTwvc2hlZXRWaWV3Pjwvc2hlZXRWaWV3cz5cbjxzaGVldEZvcm1hdFByIGRlZmF1bHRSb3dIZWlnaHQ9XCIxNVwiICR7c091dGxpbmVMZXZlbH0geDE0YWM6ZHlEZXNjZW50PVwiMC4yNVwiLz5cbiR7Y29sc31cbiR7c2hlZXREYXRhfVxuPHBhZ2VNYXJnaW5zIGxlZnQ9XCIwLjdcIiByaWdodD1cIjAuN1wiIHRvcD1cIjAuNzVcIiBib3R0b209XCIwLjc1XCIgaGVhZGVyPVwiMC4zXCIgZm9vdGVyPVwiMC4zXCIvPlxuJHt0YWJsZVBhcnRzfTwvd29ya3NoZWV0PmA7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFNoYXJlZFN0cmluZ1hNTChjb3VudDogbnVtYmVyLCB1bmlxdWVDb3VudDogbnVtYmVyLCB0YWJsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxzc3QgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW5cIiBjb3VudD1cIicgKyBjb3VudCArICdcIiB1bmlxdWVDb3VudD1cIicgKyB1bmlxdWVDb3VudCArICdcIj4nICsgdGFibGUgKyAnPC9zc3Q+JztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRUeXBlc1hNTChoYXNTaGFyZWRTdHJpbmdzOiBib29sZWFuLCBoYXNUYWJsZTogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGxldCBjb250ZW50VHlwZXMgPSBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArXG4gICAgICAgIGA8VHlwZXMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXNcXFwiPlxuICAgICAgICAgICAgPERlZmF1bHQgRXh0ZW5zaW9uPVwicmVsc1wiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIi8+XG4gICAgICAgICAgICA8RGVmYXVsdCBFeHRlbnNpb249XCJ4bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC93b3JrYm9vay54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL3hsL3dvcmtzaGVldHMvc2hlZXQxLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC90aGVtZS90aGVtZTEueG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL3hsL3N0eWxlcy54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIvZG9jUHJvcHMvY29yZS54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIvZG9jUHJvcHMvYXBwLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sXCIvPmA7XG5cbiAgICAgICAgY29udGVudFR5cGVzICs9IGhhc1NoYXJlZFN0cmluZ3MgP1xuICAgICAgICBgXHQ8T3ZlcnJpZGUgUGFydE5hbWU9XCIveGwvc2hhcmVkU3RyaW5ncy54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZFN0cmluZ3MreG1sXCIvPmAgOiAnJztcblxuICAgICAgICBjb250ZW50VHlwZXMgKz0gaGFzVGFibGUgP1xuICAgICAgICAgICAgYDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC90YWJsZXMvdGFibGUxLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sXCIvPmAgOiAnJztcbiAgICAgICAgY29udGVudFR5cGVzICs9IGA8L1R5cGVzPmA7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFRhYmxlc1hNTChhdXRvRmlsdGVyRGltZW5zaW9uOiBzdHJpbmcsIHRhYmxlRGltZW5zaW9uOiBzdHJpbmcsIHRhYmxlQ29sdW1uczogc3RyaW5nLCBzb3J0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7RXhjZWxTdHJpbmdzLlhNTF9TVFJJTkd9PHRhYmxlIHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgaWQ9XCIxXCIgbmFtZT1cIlRhYmxlMVwiIGRpc3BsYXlOYW1lPVwiVGFibGUxXCIgcmVmPVwiJHt0YWJsZURpbWVuc2lvbn1cIiB0b3RhbHNSb3dTaG93bj1cIjBcIj5cbiAgICA8YXV0b0ZpbHRlciByZWY9XCIke2F1dG9GaWx0ZXJEaW1lbnNpb259XCIvPiR7c29ydH0ke3RhYmxlQ29sdW1uc308dGFibGVTdHlsZUluZm8gbmFtZT1cIlRhYmxlU3R5bGVNZWRpdW0yXCIgc2hvd0ZpcnN0Q29sdW1uPVwiMFwiIHNob3dMYXN0Q29sdW1uPVwiMFwiIHNob3dSb3dTdHJpcGVzPVwiMVwiIHNob3dDb2x1bW5TdHJpcGVzPVwiMFwiLz5cbjwvdGFibGU+YDtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSAgbWF4LWxlbiAqL1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRFeGNlbENvbHVtbihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgLy8gUmV0dXJucyB0aGUgZXhjZWwgY29sdW1uIG5hbWUgZm9yIGdpdmVuIDAtYmFzZWQgaW5kZXhcbiAgICAgICAgLy8gRm9yIGV4YW1wbGUgMjcgc2hvdWxkIHJldHVybiBcIkFCXCJcbiAgICAgICAgbGV0IHJldHVyblN0cmluZyA9ICcnO1xuICAgICAgICB3aGlsZSAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgY2hhciA9IGluZGV4ICUgMjY7XG4gICAgICAgICAgICByZXR1cm5TdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDY1ICsgY2hhcikgKyByZXR1cm5TdHJpbmc7XG4gICAgICAgICAgICBpbmRleCA9IE1hdGguZmxvb3IoaW5kZXggLyAyNikgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR1cm5TdHJpbmc7XG4gICAgfVxufVxuIl19
@@ -36,9 +36,15 @@ export class WorksheetData {
36
36
  get hasMultiColumnHeader() {
37
37
  return this._hasMultiColumnHeader;
38
38
  }
39
+ get hasMultiRowHeader() {
40
+ return this._hasMultiRowHeader;
41
+ }
39
42
  get isHierarchical() {
40
43
  return this._isHierarchical;
41
44
  }
45
+ get isPivotGrid() {
46
+ return this._isPivotGrid;
47
+ }
42
48
  get multiColumnHeaderRows() {
43
49
  return !this.options.ignoreMultiColumnHeaders ? Array.from(this.owners.values()).map(c => c.maxLevel).reduce((a, b) => a + b) : 0;
44
50
  }
@@ -46,9 +52,12 @@ export class WorksheetData {
46
52
  this._dataDictionary = new WorksheetDataDictionary(this.columnCount, this.options.columnWidth, this.columnWidths);
47
53
  this._hasMultiColumnHeader = Array.from(this.owners.values())
48
54
  .some(o => o.columns.some(col => !col.skip && col.headerType === HeaderType.MultiColumnHeader));
55
+ this._hasMultiRowHeader = Array.from(this.owners.values())
56
+ .some(o => o.columns.some(col => !col.skip && col.headerType === HeaderType.MultiRowHeader));
49
57
  this._isHierarchical = this.data[0]?.type === ExportRecordType.HierarchicalGridRecord
50
58
  || !(typeof (Array.from(this.owners.keys())[0]) === 'string');
51
- if (this._isHierarchical || (this._hasMultiColumnHeader && !this.options.ignoreMultiColumnHeaders)) {
59
+ this._isPivotGrid = this.data[0]?.type === ExportRecordType.PivotGridRecord;
60
+ if (this._isHierarchical || this._isPivotGrid || (this._hasMultiColumnHeader && !this.options.ignoreMultiColumnHeaders)) {
52
61
  this.options.exportAsTable = false;
53
62
  }
54
63
  if (!this._data || this._data.length === 0) {
@@ -61,4 +70,4 @@ export class WorksheetData {
61
70
  this._rowCount = this._data.length + this.multiColumnHeaderRows + 1;
62
71
  }
63
72
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NoZWV0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZXhjZWwvd29ya3NoZWV0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBOEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsY0FBYztBQUNkLE1BQU0sT0FBTyxhQUFhO0lBT3RCLFlBQW9CLEtBQXNCLEVBQ3ZCLE9BQWdDLEVBQ2hDLElBQVMsRUFDVCxXQUFtQixFQUNuQixRQUFrQixFQUNsQix1QkFBK0IsRUFDL0IsWUFBc0IsRUFDdEIsS0FBa0IsRUFDbEIsTUFBNkI7UUFSNUIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FB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R0FBRyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlclR5cGUsIEV4cG9ydFJlY29yZFR5cGUsIElDb2x1bW5MaXN0LCBJRXhwb3J0UmVjb3JkIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2Jhc2UtZXhwb3J0LXNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwb3J0VXRpbGl0aWVzIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2V4cG9ydC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSWd4RXhjZWxFeHBvcnRlck9wdGlvbnMgfSBmcm9tICcuL2V4Y2VsLWV4cG9ydGVyLW9wdGlvbnMnO1xuaW1wb3J0IHsgV29ya3NoZWV0RGF0YURpY3Rpb25hcnkgfSBmcm9tICcuL3dvcmtzaGVldC1kYXRhLWRpY3Rpb25hcnknO1xuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtzaGVldERhdGEge1xuICAgIHByaXZhdGUgX3Jvd0NvdW50OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZGF0YURpY3Rpb25hcnk6IFdvcmtzaGVldERhdGFEaWN0aW9uYXJ5O1xuICAgIHByaXZhdGUgX2lzU3BlY2lhbERhdGE6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaGFzTXVsdGlDb2x1bW5IZWFkZXI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaXNIaWVyYXJjaGljYWw6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kYXRhOiBJRXhwb3J0UmVjb3JkW10sXG4gICAgICAgICAgICAgICAgcHVibGljIG9wdGlvbnM6IElneEV4Y2VsRXhwb3J0ZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgIHB1YmxpYyBzb3J0OiBhbnksXG4gICAgICAgICAgICAgICAgcHVibGljIGNvbHVtbkNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgcHVibGljIHJvb3RLZXlzOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgaW5kZXhPZkxhc3RQaW5uZWRDb2x1bW46IG51bWJlcixcbiAgICAgICAgICAgICAgICBwdWJsaWMgY29sdW1uV2lkdGhzOiBudW1iZXJbXSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgb3duZXI6IElDb2x1bW5MaXN0LFxuICAgICAgICAgICAgICAgIHB1YmxpYyBvd25lcnM6IE1hcDxhbnksIElDb2x1bW5MaXN0Pikge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YSgpOiBJRXhwb3J0UmVjb3JkW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dDb3VudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3dDb3VudFxuICAgICAgICAgICAgfHwgdGhpcy5yb3dDb3VudCA9PT0gdGhpcy5vd25lci5tYXhMZXZlbCArIDFcbiAgICAgICAgICAgIHx8ICF0aGlzLmNvbHVtbkNvdW50XG4gICAgICAgICAgICB8fCB0aGlzLm93bmVyLmNvbHVtbnMuZXZlcnkoYyA9PiBjLnNraXApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNTcGVjaWFsRGF0YSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU3BlY2lhbERhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRhRGljdGlvbmFyeSgpOiBXb3Jrc2hlZXREYXRhRGljdGlvbmFyeSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhRGljdGlvbmFyeTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc011bHRpQ29sdW1uSGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzTXVsdGlDb2x1bW5IZWFkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0hpZXJhcmNoaWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGllcmFyY2hpY2FsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbXVsdGlDb2x1bW5IZWFkZXJSb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAhdGhpcy5vcHRpb25zLmlnbm9yZU11bHRpQ29sdW1uSGVhZGVycyA/IEFycmF5LmZyb20odGhpcy5vd25lcnMudmFsdWVzKCkpLm1hcChjID0+IGMubWF4TGV2ZWwpLnJlZHVjZSgoYSxiKSA9PiBhICsgYikgOiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZURhdGEoKSB7XG4gICAgICAgIHRoaXMuX2RhdGFEaWN0aW9uYXJ5ID0gbmV3IFdvcmtzaGVldERhdGFEaWN0aW9uYXJ5KHRoaXMuY29sdW1uQ291bnQsIHRoaXMub3B0aW9ucy5jb2x1bW5XaWR0aCwgdGhpcy5jb2x1bW5XaWR0aHMpO1xuXG4gICAgICAgIHRoaXMuX2hhc011bHRpQ29sdW1uSGVhZGVyID0gQXJyYXkuZnJvbSh0aGlzLm93bmVycy52YWx1ZXMoKSlcbiAgICAgICAgICAgIC5zb21lKG8gPT4gby5jb2x1bW5zLnNvbWUoY29sID0+ICFjb2wuc2tpcCAmJiBjb2wuaGVhZGVyVHlwZSA9PT0gSGVhZGVyVHlwZS5NdWx0aUNvbHVtbkhlYWRlcikpO1xuXG4gICAgICAgIHRoaXMuX2lzSGllcmFyY2hpY2FsID0gdGhpcy5kYXRhWzBdPy50eXBlID09PSBFeHBvcnRSZWNvcmRUeXBlLkhpZXJhcmNoaWNhbEdyaWRSZWNvcmRcbiAgICAgICAgICAgIHx8ICEodHlwZW9mKEFycmF5LmZyb20odGhpcy5vd25lcnMua2V5cygpKVswXSkgPT09ICdzdHJpbmcnKTtcblxuICAgICAgICBpZiAodGhpcy5faXNIaWVyYXJjaGljYWwgfHwgKHRoaXMuX2hhc011bHRpQ29sdW1uSGVhZGVyICYmICF0aGlzLm9wdGlvbnMuaWdub3JlTXVsdGlDb2x1bW5IZWFkZXJzKSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmV4cG9ydEFzVGFibGUgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fZGF0YSB8fCB0aGlzLl9kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc0hpZXJhcmNoaWNhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jvd0NvdW50ID0gdGhpcy5vd25lci5tYXhMZXZlbCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lzU3BlY2lhbERhdGEgPSBFeHBvcnRVdGlsaXRpZXMuaXNTcGVjaWFsRGF0YSh0aGlzLl9kYXRhWzBdLmRhdGEpO1xuICAgICAgICB0aGlzLl9yb3dDb3VudCA9IHRoaXMuX2RhdGEubGVuZ3RoICsgdGhpcy5tdWx0aUNvbHVtbkhlYWRlclJvd3MgKyAxO1xuICAgIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NoZWV0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZXhjZWwvd29ya3NoZWV0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBOEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsY0FBYztBQUNkLE1BQU0sT0FBTyxhQUFhO0lBU3RCLFlBQW9CLEtBQXNCLEVBQ3ZCLE9BQWdDLEVBQ2hDLElBQVMsRUFDVCxXQUFtQixFQUNuQixRQUFrQixFQUNsQix1QkFBK0IsRUFDL0IsWUFBc0IsRUFDdEIsS0FBa0IsRUFDbEIsTUFBNkI7UUFSNUIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FB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QUFZLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDckgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUM1QztZQUVELE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJUeXBlLCBFeHBvcnRSZWNvcmRUeXBlLCBJQ29sdW1uTGlzdCwgSUV4cG9ydFJlY29yZCB9IGZyb20gJy4uL2V4cG9ydGVyLWNvbW1vbi9iYXNlLWV4cG9ydC1zZXJ2aWNlJztcbmltcG9ydCB7IEV4cG9ydFV0aWxpdGllcyB9IGZyb20gJy4uL2V4cG9ydGVyLWNvbW1vbi9leHBvcnQtdXRpbGl0aWVzJztcbmltcG9ydCB7IElneEV4Y2VsRXhwb3J0ZXJPcHRpb25zIH0gZnJvbSAnLi9leGNlbC1leHBvcnRlci1vcHRpb25zJztcbmltcG9ydCB7IFdvcmtzaGVldERhdGFEaWN0aW9uYXJ5IH0gZnJvbSAnLi93b3Jrc2hlZXQtZGF0YS1kaWN0aW9uYXJ5JztcblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBjbGFzcyBXb3Jrc2hlZXREYXRhIHtcbiAgICBwcml2YXRlIF9yb3dDb3VudDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2RhdGFEaWN0aW9uYXJ5OiBXb3Jrc2hlZXREYXRhRGljdGlvbmFyeTtcbiAgICBwcml2YXRlIF9pc1NwZWNpYWxEYXRhOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2hhc011bHRpQ29sdW1uSGVhZGVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2hhc011bHRpUm93SGVhZGVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2lzSGllcmFyY2hpY2FsOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2lzUGl2b3RHcmlkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YTogSUV4cG9ydFJlY29yZFtdLFxuICAgICAgICAgICAgICAgIHB1YmxpYyBvcHRpb25zOiBJZ3hFeGNlbEV4cG9ydGVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBwdWJsaWMgc29ydDogYW55LFxuICAgICAgICAgICAgICAgIHB1YmxpYyBjb2x1bW5Db3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgIHB1YmxpYyByb290S2V5czogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgcHVibGljIGluZGV4T2ZMYXN0UGlubmVkQ29sdW1uOiBudW1iZXIsXG4gICAgICAgICAgICAgICAgcHVibGljIGNvbHVtbldpZHRoczogbnVtYmVyW10sXG4gICAgICAgICAgICAgICAgcHVibGljIG93bmVyOiBJQ29sdW1uTGlzdCxcbiAgICAgICAgICAgICAgICBwdWJsaWMgb3duZXJzOiBNYXA8YW55LCBJQ29sdW1uTGlzdD4pIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGEoKTogSUV4cG9ydFJlY29yZFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93Q291bnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucm93Q291bnRcbiAgICAgICAgICAgIHx8IHRoaXMucm93Q291bnQgPT09IHRoaXMub3duZXIubWF4TGV2ZWwgKyAxXG4gICAgICAgICAgICB8fCAhdGhpcy5jb2x1bW5Db3VudFxuICAgICAgICAgICAgfHwgdGhpcy5vd25lci5jb2x1bW5zLmV2ZXJ5KGMgPT4gYy5za2lwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU3BlY2lhbERhdGEoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1NwZWNpYWxEYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YURpY3Rpb25hcnkoKTogV29ya3NoZWV0RGF0YURpY3Rpb25hcnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YURpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNNdWx0aUNvbHVtbkhlYWRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc011bHRpQ29sdW1uSGVhZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzTXVsdGlSb3dIZWFkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNNdWx0aVJvd0hlYWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzSGllcmFyY2hpY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNIaWVyYXJjaGljYWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1Bpdm90R3JpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUGl2b3RHcmlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbXVsdGlDb2x1bW5IZWFkZXJSb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAhdGhpcy5vcHRpb25zLmlnbm9yZU11bHRpQ29sdW1uSGVhZGVycyA/IEFycmF5LmZyb20odGhpcy5vd25lcnMudmFsdWVzKCkpLm1hcChjID0+IGMubWF4TGV2ZWwpLnJlZHVjZSgoYSxiKSA9PiBhICsgYikgOiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZURhdGEoKSB7XG4gICAgICAgIHRoaXMuX2RhdGFEaWN0aW9uYXJ5ID0gbmV3IFdvcmtzaGVldERhdGFEaWN0aW9uYXJ5KHRoaXMuY29sdW1uQ291bnQsIHRoaXMub3B0aW9ucy5jb2x1bW5XaWR0aCwgdGhpcy5jb2x1bW5XaWR0aHMpO1xuXG4gICAgICAgIHRoaXMuX2hhc011bHRpQ29sdW1uSGVhZGVyID0gQXJyYXkuZnJvbSh0aGlzLm93bmVycy52YWx1ZXMoKSlcbiAgICAgICAgICAgIC5zb21lKG8gPT4gby5jb2x1bW5zLnNvbWUoY29sID0+ICFjb2wuc2tpcCAmJiBjb2wuaGVhZGVyVHlwZSA9PT0gSGVhZGVyVHlwZS5NdWx0aUNvbHVtbkhlYWRlcikpO1xuXG4gICAgICAgIHRoaXMuX2hhc011bHRpUm93SGVhZGVyID0gQXJyYXkuZnJvbSh0aGlzLm93bmVycy52YWx1ZXMoKSlcbiAgICAgICAgICAgIC5zb21lKG8gPT4gby5jb2x1bW5zLnNvbWUoY29sID0+ICFjb2wuc2tpcCAmJiBjb2wuaGVhZGVyVHlwZSA9PT0gSGVhZGVyVHlwZS5NdWx0aVJvd0hlYWRlcikpO1xuXG4gICAgICAgIHRoaXMuX2lzSGllcmFyY2hpY2FsID0gdGhpcy5kYXRhWzBdPy50eXBlID09PSBFeHBvcnRSZWNvcmRUeXBlLkhpZXJhcmNoaWNhbEdyaWRSZWNvcmRcbiAgICAgICAgICAgIHx8ICEodHlwZW9mKEFycmF5LmZyb20odGhpcy5vd25lcnMua2V5cygpKVswXSkgPT09ICdzdHJpbmcnKTtcblxuICAgICAgICB0aGlzLl9pc1Bpdm90R3JpZCA9IHRoaXMuZGF0YVswXT8udHlwZSA9PT0gRXhwb3J0UmVjb3JkVHlwZS5QaXZvdEdyaWRSZWNvcmQ7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzSGllcmFyY2hpY2FsIHx8IHRoaXMuX2lzUGl2b3RHcmlkIHx8ICh0aGlzLl9oYXNNdWx0aUNvbHVtbkhlYWRlciAmJiAhdGhpcy5vcHRpb25zLmlnbm9yZU11bHRpQ29sdW1uSGVhZGVycykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5leHBvcnRBc1RhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX2RhdGEgfHwgdGhpcy5fZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNIaWVyYXJjaGljYWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yb3dDb3VudCA9IHRoaXMub3duZXIubWF4TGV2ZWwgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1NwZWNpYWxEYXRhID0gRXhwb3J0VXRpbGl0aWVzLmlzU3BlY2lhbERhdGEodGhpcy5fZGF0YVswXS5kYXRhKTtcbiAgICAgICAgdGhpcy5fcm93Q291bnQgPSB0aGlzLl9kYXRhLmxlbmd0aCArIHRoaXMubXVsdGlDb2x1bW5IZWFkZXJSb3dzICsgMTtcbiAgICB9XG59XG4iXX0=