acebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ "use strict";!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).React={})}(this,function(e){function r(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nj.length&&j.push(e)}function Q(e,t,n){return null==e?0:function O(e,t,n,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case a:case o:l=!0}}if(l)return n(i,e,""===t?"."+P(e,0):t),1;if(l=0,t=""===t?".":t+":",Array.isArray(e))for(var u=0;u>>1,i=e[r];if(!(void 0!==i&&0D(o,n))void 0!==l&&0>D(l,o)?(e[r]=l,e[s]=n,r=s):(e[r]=o,e[a]=n,r=a);else{if(!(void 0!==l&&0>D(l,n)))break e;e[r]=l,e[s]=n,r=s}}}return t}return null}function D(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}function F(e){for(var t=n(fe);null!==t;){if(null===t.callback)E(fe);else{if(!(t.startTime<=e))break;E(fe),t.sortIndex=t.expirationTime,S(ce,t)}t=n(fe)}}function T(e){if(ve=!1,F(e),!me)if(null!==n(ce))me=!0,G(U);else{var t=n(fe);null!==t&&X(T,t.startTime-e)}}function U(e,t){me=!1,ve&&(ve=!1,Y()),he=!0;var r=ge;try{for(F(t),pe=n(ce);null!==pe&&(!(pe.expirationTime>t)||e&&!$());){var i=pe.callback;if(null!==i){pe.callback=null,ge=pe.priorityLevel;var a=i(pe.expirationTime<=t);t=W(),"function"==typeof a?pe.callback=a:pe===n(ce)&&E(ce),F(t)}else E(ce);pe=n(ce)}if(null!==pe)var o=!0;else{var s=n(fe);null!==s&&X(T,s.startTime-t),o=!1}return o}finally{pe=null,ge=r,he=!1}}function oa(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var i="function"==typeof Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,o=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,u=i?Symbol.for("react.profiler"):60114,c=i?Symbol.for("react.provider"):60109,f=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,p=i?Symbol.for("react.suspense"):60113,g=i?Symbol.for("react.memo"):60115,h=i?Symbol.for("react.lazy"):60116,m="function"==typeof Symbol&&Symbol.iterator,v=Object.getOwnPropertySymbols,y=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable,x=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;var t={};for(e=0;10>e;e++)t["_"+String.fromCharCode(e)]=e;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(e){n[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");for(var n,r=Object(e),i=1;i=se},i=function(){},I=function(e){0>e||125i?(e.sortIndex=a,S(fe,e),null===n(ce)&&e===n(fe)&&(ve?Y():ve=!0,X(T,a-i))):(e.sortIndex=r,S(ce,e),me||he||(me=!0,G(U))),e},unstable_cancelCallback:function(e){e.callback=null},unstable_wrapCallback:function(e){var t=ge;return function(){var n=ge;ge=t;try{return e.apply(this,arguments)}finally{ge=n}}},unstable_getCurrentPriorityLevel:function(){return ge},unstable_shouldYield:function(){var e=W();F(e);var t=n(ce);return t!==pe&&null!==pe&&null!==t&&null!==t.callback&&t.startTime<=e&&t.expirationTime { RefreshRuntime.register(type, "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx " + id); }; window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform; } var _s = $RefreshSig$(); import __vite__cjsImport3_react from "/node_modules/.vite/deps/react.js?v=3ec5d53b"; const React = __vite__cjsImport3_react.__esModule ? __vite__cjsImport3_react.default : __vite__cjsImport3_react; import { Document, Page, Text, View, StyleSheet, PDFViewer, Image, Font, pdf } from "/node_modules/.vite/deps/@react-pdf_renderer.js?v=3ec5d53b"; const RedHatLogo = "/red-hat-logo.png"; Font.registerHyphenationCallback((word) => [word]); Font.register({ family: "RedHatDisplay", fonts: [ { src: "/fonts/RedHatDisplay-Regular.ttf", fontWeight: "normal", fontStyle: "normal" }, { src: "/fonts/RedHatDisplay-Bold.ttf", fontWeight: "bold", fontStyle: "normal" }, { src: "/fonts/RedHatDisplay-Italic.ttf", fontWeight: "normal", fontStyle: "italic" }, { src: "/fonts/RedHatDisplay-BoldItalic.ttf", fontWeight: "bold", fontStyle: "italic" } ] }); const getInitials = (name) => { return name.split(" ").map((part) => part.charAt(0).toUpperCase()).join("."); }; const styles = StyleSheet.create({ page: { flexDirection: "column", backgroundColor: "white", padding: 40, fontFamily: "RedHatDisplay", fontSize: 10, color: "#333333" }, redColor: { color: "#ee0000" }, blueColor: { color: "#0066cc" }, section: { marginBottom: 18, width: "100%" }, header: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", marginBottom: 25, paddingBottom: 15, borderBottomColor: "#d2d2d2", borderBottomWidth: 1, borderBottomStyle: "solid" }, headerContent: { flexGrow: 1 }, headerImageContainer: { width: 100, height: 40, alignItems: "flex-end", justifyContent: "center" }, logo: { width: 80, marginRight: 5 }, name: { fontSize: 20, fontFamily: "RedHatDisplay", fontWeight: "bold", marginBottom: 5 }, jobTitle: { fontSize: 14, fontFamily: "RedHatDisplay", color: "#ee0000", marginBottom: 5 }, sectionTitle: { fontSize: 12, fontFamily: "RedHatDisplay", fontWeight: "bold", color: "#ee0000", marginBottom: 10, textTransform: "uppercase", paddingBottom: 3, borderBottomColor: "#d2d2d2", borderBottomWidth: 0.5, borderBottomStyle: "solid" }, table: { display: "flex", width: "auto", marginBottom: 10 }, tableRow: { flexDirection: "row", alignItems: "center", minHeight: 24, paddingTop: 3, paddingBottom: 3, borderBottomColor: "#d2d2d2", borderBottomWidth: 0.5, borderBottomStyle: "solid" }, tableRowLast: { flexDirection: "row", alignItems: "center", minHeight: 24, paddingTop: 3, paddingBottom: 3 }, tableHeaderRow: { flexDirection: "row", alignItems: "center", minHeight: 24, paddingTop: 3, paddingBottom: 3, backgroundColor: "#f5f5f5", borderBottomColor: "#d2d2d2", borderBottomWidth: 1, borderBottomStyle: "solid" }, tableCell: { padding: 3 }, tableCellHeader: { padding: 0.3, color: "#ee0000", fontWeight: "bold" }, tableCol15: { width: "15%" }, tableCol20: { width: "20%" }, tableCol25: { width: "25%" }, tableCol30: { width: "30%" }, tableCol33: { width: "33.33%" }, tableCol35: { width: "35%" }, tableCol40: { width: "40%" }, tableCol50: { width: "50%" }, tableCol55: { width: "55%" }, tableCol60: { width: "60%" }, tableCol70: { width: "70%" }, tableCol75: { width: "75%" }, tableCol80: { width: "80%" }, bold: { fontWeight: "bold" }, italic: { fontStyle: "italic" }, text: { lineHeight: 1.4 }, listItem: { flexDirection: "row", marginBottom: 3, paddingLeft: 6 }, bullet: { width: 6, marginRight: 4 }, footer: { position: "absolute", bottom: 30, left: 40, right: 40, flexDirection: "row", alignItems: "center", fontSize: 8, color: "#666666", paddingTop: 8, borderTopColor: "#d2d2d2", borderTopWidth: 0.5, borderTopStyle: "solid" }, footerLeft: { width: "30%" }, footerCenter: { width: "40%", textAlign: "center" }, footerRight: { width: "30%", textAlign: "right" }, sectionNumber: { marginRight: 5, fontWeight: "bold" }, paragraph: { marginBottom: 6, lineHeight: 1 }, sectionRow: { flexDirection: "row", marginBottom: 5 }, educationItem: { marginBottom: 4 } }); const CVDocument = ({ cv }) => { const initials = getInitials(cv.generalInfo.name); const lastKeySkillIndex = cv.keySkills.length - 1; const lastExpIndex = cv.experiences.length - 1; const lastCertIndex = cv.certifications.length - 1; return /* @__PURE__ */ jsxDEV(Document, { title: `${cv.generalInfo.name} - CV`, children: /* @__PURE__ */ jsxDEV(Page, { size: "A4", style: styles.page, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.header, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.headerContent, children: [ /* @__PURE__ */ jsxDEV(Text, { style: styles.name, children: cv.generalInfo.name }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 281, columnNumber: 11 }, this), /* @__PURE__ */ jsxDEV(Text, { style: styles.jobTitle, children: [ cv.generalInfo.jobTitle, ", Red Hat Consulting" ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 282, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 280, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.headerImageContainer, children: /* @__PURE__ */ jsxDEV(Image, { src: RedHatLogo, style: styles.logo }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 285, columnNumber: 11 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 284, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 279, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.section, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.sectionRow, children: /* @__PURE__ */ jsxDEV(Text, { style: styles.sectionTitle, children: "1. General Information" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 292, columnNumber: 11 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 291, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.table, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.tableRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { style: styles.bold, children: "Name" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 299, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 298, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: initials }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 302, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 301, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { style: styles.bold, children: "Nationality" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 305, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 304, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: cv.generalInfo.nationality }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 308, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 307, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 297, columnNumber: 11 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.tableRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { style: styles.bold, children: "Job Title" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 315, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 314, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: cv.generalInfo.jobTitle }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 318, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 317, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { style: styles.bold, children: "Location" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 321, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 320, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: cv.generalInfo.location }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 324, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 323, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 313, columnNumber: 11 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.tableRowLast, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { style: styles.bold, children: "Languages" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 331, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 330, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: cv.generalInfo.languages }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 334, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 333, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { style: styles.bold, children: "Education" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 337, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 336, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: cv.education.map( (edu, i) => /* @__PURE__ */ jsxDEV(Text, { style: styles.educationItem, children: edu.degree }, i, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 341, columnNumber: 17 }, this) ) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 339, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 329, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 295, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 290, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.section, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.sectionRow, children: /* @__PURE__ */ jsxDEV(Text, { style: styles.sectionTitle, children: "2. Key Skills" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 351, columnNumber: 11 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 350, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.table, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.tableHeaderRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol30], children: /* @__PURE__ */ jsxDEV(Text, { children: "Area" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 358, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 357, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol70], children: /* @__PURE__ */ jsxDEV(Text, { children: "Information" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 361, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 360, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 356, columnNumber: 11 }, this), cv.keySkills.map( (skill, index) => /* @__PURE__ */ jsxDEV(View, { style: index === lastKeySkillIndex ? styles.tableRowLast : styles.tableRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol30], children: /* @__PURE__ */ jsxDEV(Text, { style: styles.bold, children: skill.category }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 369, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 368, columnNumber: 15 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol70], children: /* @__PURE__ */ jsxDEV(Text, { children: skill.description }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 372, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 371, columnNumber: 15 }, this) ] }, index, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 367, columnNumber: 13 }, this) ) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 354, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 349, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.section, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.sectionRow, children: /* @__PURE__ */ jsxDEV(Text, { style: styles.sectionTitle, children: "3. Projects" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 382, columnNumber: 11 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 381, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.table, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.tableHeaderRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol15], children: /* @__PURE__ */ jsxDEV(Text, { children: "Industry" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 389, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 388, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol15], children: /* @__PURE__ */ jsxDEV(Text, { children: "Date" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 392, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 391, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol15], children: /* @__PURE__ */ jsxDEV(Text, { children: "Location" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 395, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 394, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol55], children: /* @__PURE__ */ jsxDEV(Text, { children: "Description" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 398, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 397, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 387, columnNumber: 11 }, this), cv.experiences.map( (exp, index) => /* @__PURE__ */ jsxDEV(View, { style: index === lastExpIndex ? styles.tableRowLast : styles.tableRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol15], children: /* @__PURE__ */ jsxDEV(Text, { children: exp.industry }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 406, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 405, columnNumber: 15 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol15], children: /* @__PURE__ */ jsxDEV(Text, { children: exp.date }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 409, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 408, columnNumber: 15 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol15], children: /* @__PURE__ */ jsxDEV(Text, { children: exp.location }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 412, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 411, columnNumber: 15 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol55], children: /* @__PURE__ */ jsxDEV(Text, { children: exp.description }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 415, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 414, columnNumber: 15 }, this) ] }, index, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 404, columnNumber: 13 }, this) ) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 385, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 380, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.section, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.sectionRow, children: /* @__PURE__ */ jsxDEV(Text, { style: styles.sectionTitle, children: "4. Training & Certifications" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 425, columnNumber: 11 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 424, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.table, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.tableHeaderRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol80], children: /* @__PURE__ */ jsxDEV(Text, { children: "Qualification" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 432, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 431, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol20], children: /* @__PURE__ */ jsxDEV(Text, { children: "Date" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 435, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 434, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 430, columnNumber: 11 }, this), cv.certifications.map( (cert, index) => /* @__PURE__ */ jsxDEV(View, { style: index === lastCertIndex ? styles.tableRowLast : styles.tableRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol80], children: /* @__PURE__ */ jsxDEV(Text, { children: cert.qualification }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 443, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 442, columnNumber: 15 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol20], children: /* @__PURE__ */ jsxDEV(Text, { children: cert.date }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 446, columnNumber: 17 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 445, columnNumber: 15 }, this) ] }, index, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 441, columnNumber: 13 }, this) ) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 428, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 423, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.section, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.sectionRow, children: /* @__PURE__ */ jsxDEV(Text, { style: styles.sectionTitle, children: "5. Further Information" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 456, columnNumber: 11 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 455, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(Text, { style: styles.paragraph, children: "Information on availability, schedule and rates should be referred to the Services Delivery Manager (contact information below):" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 459, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.table, children: [ /* @__PURE__ */ jsxDEV(View, { style: styles.tableHeaderRow, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "Role" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 467, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 466, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "Name" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 470, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 469, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "Email" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 473, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 472, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCellHeader, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "Phone" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 476, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 475, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 465, columnNumber: 11 }, this), /* @__PURE__ */ jsxDEV(View, { style: styles.tableRowLast, children: [ /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "Services Consulting Manager" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 483, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 482, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "Wolfgang Mild" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 486, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 485, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "wmild@redhat.com" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 489, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 488, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV(View, { style: [styles.tableCell, styles.tableCol25], children: /* @__PURE__ */ jsxDEV(Text, { children: "+43-676-852100209" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 492, columnNumber: 15 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 491, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 481, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 463, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(Text, { style: styles.paragraph, children: "Information on security clearances, visas etc. should be directed towards the SDM and are dealt with directly with the customer." }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 497, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 454, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV(View, { fixed: true, style: styles.footer, children: [ /* @__PURE__ */ jsxDEV(Text, { style: styles.footerLeft, children: [ "CV: ", initials ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 506, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV(Text, { style: styles.footerCenter, render: ({ pageNumber, totalPages }) => `Page ${pageNumber} of ${totalPages}` }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 507, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 505, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 277, columnNumber: 5 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 276, columnNumber: 5 }, this); }; _c = CVDocument; export const ReactPDFGenerator = ({ cv }) => { _s(); const [isLoading, setIsLoading] = React.useState(true); React.useEffect(() => { const timer = setTimeout(() => { setIsLoading(false); }, 800); return () => clearTimeout(timer); }, []); const previewContainerStyle = { display: "flex", flexDirection: "column", height: "100vh", width: "100%", background: "#f5f5f5", overflow: "hidden" }; const toolbarStyle = { padding: "10px 20px", background: "#333", color: "white", display: "flex", justifyContent: "space-between", alignItems: "center", boxShadow: "0 2px 4px rgba(0,0,0,0.2)", zIndex: 10 }; const buttonStyle = { background: "#ee0000", color: "white", border: "none", padding: "8px 15px", borderRadius: "4px", cursor: "pointer", fontWeight: "bold", fontSize: "14px", marginLeft: "10px" }; const viewerWrapperStyle = { flex: 1, overflow: "hidden", position: "relative" }; const loadingOverlayStyle = { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, background: "rgba(255,255,255,0.9)", display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", zIndex: 5 }; return /* @__PURE__ */ jsxDEV("div", { style: previewContainerStyle, children: [ /* @__PURE__ */ jsxDEV("div", { style: toolbarStyle, children: [ /* @__PURE__ */ jsxDEV("div", { children: [ /* @__PURE__ */ jsxDEV("strong", { children: cv.generalInfo.name }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 593, columnNumber: 11 }, this), " - CV Preview" ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 592, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV("div", { children: [ /* @__PURE__ */ jsxDEV( "button", { style: buttonStyle, onClick: () => window.print(), children: "Print CV" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 596, columnNumber: 11 }, this ), /* @__PURE__ */ jsxDEV( "button", { style: { ...buttonStyle, background: "#0066cc" }, onClick: () => generatePDF(cv), children: "Download PDF" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 602, columnNumber: 11 }, this ) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 595, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 591, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV("div", { style: viewerWrapperStyle, children: [ isLoading && /* @__PURE__ */ jsxDEV("div", { style: loadingOverlayStyle, children: [ /* @__PURE__ */ jsxDEV("div", { style: { fontSize: "24px", marginBottom: "10px", color: "#ee0000" }, children: "Loading CV Preview" }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 616, columnNumber: 13 }, this), /* @__PURE__ */ jsxDEV("div", { style: { fontSize: "14px", color: "#555" }, children: "This may take a moment while we prepare your document..." }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 619, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 615, columnNumber: 9 }, this), /* @__PURE__ */ jsxDEV( PDFViewer, { style: { width: "100%", height: "100%" }, showToolbar: false, children: /* @__PURE__ */ jsxDEV(CVDocument, { cv }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 633, columnNumber: 11 }, this) }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 626, columnNumber: 9 }, this ) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 612, columnNumber: 7 }, this), /* @__PURE__ */ jsxDEV("style", { dangerouslySetInnerHTML: { __html: ` @media print { body * { visibility: hidden; } .react-pdf__Page { visibility: visible; position: absolute; left: 0; top: 0; } .react-pdf__Page * { visibility: visible; } } ` } }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 638, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 589, columnNumber: 5 }, this); }; _s(ReactPDFGenerator, "Yt82d/dvZsn5nYh5sqDQjv+rJ38="); _c2 = ReactPDFGenerator; export const generatePDF = async (cv) => { const loadingElement = document.createElement("div"); loadingElement.style.position = "fixed"; loadingElement.style.top = "20px"; loadingElement.style.right = "20px"; loadingElement.style.background = "#333"; loadingElement.style.color = "white"; loadingElement.style.padding = "15px 20px"; loadingElement.style.borderRadius = "5px"; loadingElement.style.boxShadow = "0 2px 8px rgba(0,0,0,0.2)"; loadingElement.style.zIndex = "9999"; loadingElement.style.display = "flex"; loadingElement.style.alignItems = "center"; loadingElement.style.gap = "10px"; loadingElement.innerHTML = `
Generating PDF...
`; const styleElement = document.createElement("style"); styleElement.innerHTML = ` @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `; document.head.appendChild(styleElement); document.body.appendChild(loadingElement); try { const doc = /* @__PURE__ */ jsxDEV(CVDocument, { cv }, void 0, false, { fileName: "/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", lineNumber: 692, columnNumber: 17 }, this); let blob; try { const timeoutPromise = new Promise((_, reject) => { setTimeout(() => reject(new Error("PDF generation timed out")), 15e3); }); blob = await Promise.race( [ pdf(doc).toBlob(), timeoutPromise ] ); } catch (blobError) { console.error("Error creating PDF blob:", blobError); throw new Error("Failed to create PDF: " + (blobError instanceof Error ? blobError.message : "Unknown error")); } if (!blob || blob.size < 1e3) { throw new Error("Generated PDF is invalid or too small"); } const url = URL.createObjectURL(blob); const link = document.createElement("a"); link.href = url; link.download = `${cv.generalInfo.name.replace(/\s+/g, "_")}_CV.pdf`; document.body.appendChild(link); link.click(); setTimeout(() => { URL.revokeObjectURL(url); document.body.removeChild(link); loadingElement.style.background = "#2e7d32"; loadingElement.innerHTML = `
PDF Downloaded Successfully
`; setTimeout(() => { if (document.body.contains(loadingElement)) { document.body.removeChild(loadingElement); } }, 3e3); }, 100); } catch (err) { console.error("Error generating PDF:", err); loadingElement.style.background = "#c62828"; loadingElement.innerHTML = `
Error: ${err instanceof Error ? err.message : "Unknown error"}
`; setTimeout(() => { if (document.body.contains(loadingElement)) { document.body.removeChild(loadingElement); } }, 5e3); } }; var _c, _c2; $RefreshReg$(_c, "CVDocument"); $RefreshReg$(_c2, "ReactPDFGenerator"); if (import.meta.hot && !inWebWorker) { window.$RefreshReg$ = prevRefreshReg; window.$RefreshSig$ = prevRefreshSig; } if (import.meta.hot && !inWebWorker) { RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => { RefreshRuntime.registerExportsForReactRefresh("/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", currentExports); import.meta.hot.accept((nextExports) => { if (!nextExports) return; const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/home/josie/development/services-cv-generator/src/components/ReactPDFGenerator.tsx", currentExports, nextExports); if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage); }); }); } //# sourceMappingURL=data:application/json;base64,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QVNtQyxLQUFLO0FBQ1pmLFlBQVFDLE1BQU0seUJBQXlCYyxHQUFHO0FBRzFDbkMsbUJBQWVHLE1BQU10QixhQUFhO0FBQ2xDbUIsbUJBQWVLLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQSxvQkFJWDhCLGVBQWVuQixRQUFRbUIsSUFBSWIsVUFBVSxlQUFlO0FBQUE7QUFJcEU1QyxlQUFXLE1BQU07QUFDZixVQUFJdUIsU0FBU1EsS0FBS3lCLFNBQVNsQyxjQUFjLEdBQUc7QUFDMUNDLGlCQUFTUSxLQUFLd0IsWUFBWWpDLGNBQWM7QUFBQSxNQUMxQztBQUFBLElBQ0YsR0FBRyxHQUFJO0FBQUEsRUFDVDtBQUNGO0FBQUUsSUFBQS9CLElBQUE4QjtBQUFBcUMsYUFBQW5FLElBQUE7QUFBQW1FLGFBQUFyQyxLQUFBIiwibmFtZXMiOlsiRG9jdW1lbnQiLCJQYWdlIiwiVGV4dCIsIlZpZXciLCJTdHlsZVNoZWV0IiwiUERGVmlld2VyIiwiSW1hZ2UiLCJGb250IiwicGRmIiwiUmVkSGF0TG9nbyIsInJlZ2lzdGVySHlwaGVuYXRpb25DYWxsYmFjayIsIndvcmQiLCJyZWdpc3RlciIsImZhbWlseSIsImZvbnRzIiwic3JjIiwiZm9udFdlaWdodCIsImZvbnRTdHlsZSIsImdldEluaXRpYWxzIiwibmFtZSIsInNwbGl0IiwibWFwIiwicGFydCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwiam9pbiIsInN0eWxlcyIsImNyZWF0ZSIsInBhZ2UiLCJmbGV4RGlyZWN0aW9uIiwiYmFja2dyb3VuZENvbG9yIiwicGFkZGluZyIsImZvbnRGYW1pbHkiLCJmb250U2l6ZSIsImNvbG9yIiwicmVkQ29sb3IiLCJibHVlQ29sb3IiLCJzZWN0aW9uIiwibWFyZ2luQm90dG9tIiwid2lkdGgiLCJoZWFkZXIiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckJvdHRvbVN0eWxlIiwiaGVhZGVyQ29udGVudCIsImZsZXhHcm93IiwiaGVhZGVySW1hZ2VDb250YWluZXIiLCJoZWlnaHQiLCJsb2dvIiwibWFyZ2luUmlnaHQiLCJqb2JUaXRsZSIsInNlY3Rpb25UaXRsZSIsInRleHRUcmFuc2Zvcm0iLCJ0YWJsZSIsImRpc3BsYXkiLCJ0YWJsZVJvdyIsIm1pbkhlaWdodCIsInBhZGRpbmdUb3AiLCJ0YWJsZVJvd0xhc3QiLCJ0YWJsZUhlYWRlclJvdyIsInRhYmxlQ2VsbCIsInRhYmxlQ2VsbEhlYWRlciIsInRhYmxlQ29sMTUiLCJ0YWJsZUNvbDIwIiwidGFibGVDb2wyNSIsInRhYmxlQ29sMzAiLCJ0YWJsZUNvbDMzIiwidGFibGVDb2wzNSIsInRhYmxlQ29sNDAiLCJ0YWJsZUNvbDUwIiwidGFibGVDb2w1NSIsInRhYmxlQ29sNjAiLCJ0YWJsZUNvbDcwIiwidGFibGVDb2w3NSIsInRhYmxlQ29sODAiLCJib2xkIiwiaXRhbGljIiwidGV4dCIsImxpbmVIZWlnaHQiLCJsaXN0SXRlbSIsInBhZGRpbmdMZWZ0IiwiYnVsbGV0IiwiZm9vdGVyIiwicG9zaXRpb24iLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJib3JkZXJUb3BDb2xvciIsImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyVG9wU3R5bGUiLCJmb290ZXJMZWZ0IiwiZm9vdGVyQ2VudGVyIiwidGV4dEFsaWduIiwiZm9vdGVyUmlnaHQiLCJzZWN0aW9uTnVtYmVyIiwicGFyYWdyYXBoIiwic2VjdGlvblJvdyIsImVkdWNhdGlvbkl0ZW0iLCJDVkRvY3VtZW50IiwiY3YiLCJpbml0aWFscyIsImdlbmVyYWxJbmZvIiwibGFzdEtleVNraWxsSW5kZXgiLCJrZXlTa2lsbHMiLCJsZW5ndGgiLCJsYXN0RXhwSW5kZXgiLCJleHBlcmllbmNlcyIsImxhc3RDZXJ0SW5kZXgiLCJjZXJ0aWZpY2F0aW9ucyIsIm5hdGlvbmFsaXR5IiwibG9jYXRpb24iLCJsYW5ndWFnZXMiLCJlZHVjYXRpb24iLCJlZHUiLCJpIiwiZGVncmVlIiwic2tpbGwiLCJpbmRleCIsImNhdGVnb3J5IiwiZGVzY3JpcHRpb24iLCJleHAiLCJpbmR1c3RyeSIsImRhdGUiLCJjZXJ0IiwicXVhbGlmaWNhdGlvbiIsInBhZ2VOdW1iZXIiLCJ0b3RhbFBhZ2VzIiwiX2MiLCJSZWFjdFBERkdlbmVyYXRvciIsIl9zIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInRpbWVyIiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsInByZXZpZXdDb250YWluZXJTdHlsZSIsImJhY2tncm91bmQiLCJvdmVyZmxvdyIsInRvb2xiYXJTdHlsZSIsImJveFNoYWRvdyIsInpJbmRleCIsImJ1dHRvblN0eWxlIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiY3Vyc29yIiwibWFyZ2luTGVmdCIsInZpZXdlcldyYXBwZXJTdHlsZSIsImZsZXgiLCJsb2FkaW5nT3ZlcmxheVN0eWxlIiwidG9wIiwid2luZG93IiwicHJpbnQiLCJnZW5lcmF0ZVBERiIsIl9faHRtbCIsIl9jMiIsImxvYWRpbmdFbGVtZW50IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJnYXAiLCJpbm5lckhUTUwiLCJzdHlsZUVsZW1lbnQiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJib2R5IiwiZG9jIiwiYmxvYiIsInRpbWVvdXRQcm9taXNlIiwiUHJvbWlzZSIsIl8iLCJyZWplY3QiLCJFcnJvciIsInJhY2UiLCJ0b0Jsb2IiLCJibG9iRXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJtZXNzYWdlIiwic2l6ZSIsInVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImxpbmsiLCJocmVmIiwiZG93bmxvYWQiLCJyZXBsYWNlIiwiY2xpY2siLCJyZXZva2VPYmplY3RVUkwiLCJyZW1vdmVDaGlsZCIsImNvbnRhaW5zIiwiZXJyIiwiJFJlZnJlc2hSZWckIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIlJlYWN0UERGR2VuZXJhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgXG4gIERvY3VtZW50LCBcbiAgUGFnZSwgXG4gIFRleHQsIFxuICBWaWV3LCBcbiAgU3R5bGVTaGVldCwgXG4gIFBERlZpZXdlcixcbiAgSW1hZ2UsIFxuICBGb250LCBcbiAgTGluayxcbiAgcGRmXG59IGZyb20gJ0ByZWFjdC1wZGYvcmVuZGVyZXInO1xuaW1wb3J0IHsgQ1YgfSBmcm9tICcuLi90eXBlcy9jdic7XG5cbi8vIEZvciBSZWFjdCBQREYgdG8gcHJvcGVybHkgaGFuZGxlIGxvY2FsIGZpbGVzIGluIHRoZSBwdWJsaWMgZGlyZWN0b3J5XG4vLyB3ZSBzaG91bGQgdXNlIHRoZSBhYnNvbHV0ZSBwYXRoIGZyb20gdGhlIGRvbWFpbiByb290XG5jb25zdCBSZWRIYXRMb2dvID0gJy9yZWQtaGF0LWxvZ28ucG5nJztcblxuLy8gUmVnaXN0ZXIgc3lzdGVtIGZvbnRzIGZvciBiZXR0ZXIgY29tcGF0aWJpbGl0eVxuRm9udC5yZWdpc3Rlckh5cGhlbmF0aW9uQ2FsbGJhY2sod29yZCA9PiBbd29yZF0pO1xuXG4vLyBSZWdpc3RlciBSZWQgSGF0IERpc3BsYXkgZm9udCB1c2luZyBmb250U291cmNlIGFwcHJvYWNoXG5Gb250LnJlZ2lzdGVyKHtcbiAgZmFtaWx5OiAnUmVkSGF0RGlzcGxheScsXG4gIGZvbnRzOiBbXG4gICAgeyBcbiAgICAgIHNyYzogJy9mb250cy9SZWRIYXREaXNwbGF5LVJlZ3VsYXIudHRmJyxcbiAgICAgIGZvbnRXZWlnaHQ6ICdub3JtYWwnLFxuICAgICAgZm9udFN0eWxlOiAnbm9ybWFsJ1xuICAgIH0sXG4gICAgeyBcbiAgICAgIHNyYzogJy9mb250cy9SZWRIYXREaXNwbGF5LUJvbGQudHRmJyxcbiAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICAgIGZvbnRTdHlsZTogJ25vcm1hbCdcbiAgICB9LFxuICAgIHsgXG4gICAgICBzcmM6ICcvZm9udHMvUmVkSGF0RGlzcGxheS1JdGFsaWMudHRmJyxcbiAgICAgIGZvbnRXZWlnaHQ6ICdub3JtYWwnLFxuICAgICAgZm9udFN0eWxlOiAnaXRhbGljJ1xuICAgIH0sXG4gICAgeyBcbiAgICAgIHNyYzogJy9mb250cy9SZWRIYXREaXNwbGF5LUJvbGRJdGFsaWMudHRmJyxcbiAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICAgIGZvbnRTdHlsZTogJ2l0YWxpYydcbiAgICB9XG4gIF1cbn0pO1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IGluaXRpYWxzIGZyb20gYSBuYW1lXG5jb25zdCBnZXRJbml0aWFscyA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gbmFtZVxuICAgIC5zcGxpdCgnICcpXG4gICAgLm1hcChwYXJ0ID0+IHBhcnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkpXG4gICAgLmpvaW4oJy4nKTtcbn07XG5cbi8vIENyZWF0ZSBzdHlsZXMgLSBVcGRhdGVkIHRvIGJldHRlciBtYXRjaCBSZWQgSGF0IENWIGV4YW1wbGVzXG5jb25zdCBzdHlsZXMgPSBTdHlsZVNoZWV0LmNyZWF0ZSh7XG4gIHBhZ2U6IHtcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgcGFkZGluZzogNDAsXG4gICAgZm9udEZhbWlseTogJ1JlZEhhdERpc3BsYXknLFxuICAgIGZvbnRTaXplOiAxMCxcbiAgICBjb2xvcjogJyMzMzMzMzMnLFxuICB9LFxuICByZWRDb2xvcjoge1xuICAgIGNvbG9yOiAnI2VlMDAwMCcsXG4gIH0sXG4gIGJsdWVDb2xvcjoge1xuICAgIGNvbG9yOiAnIzAwNjZjYycsXG4gIH0sXG4gIHNlY3Rpb246IHtcbiAgICBtYXJnaW5Cb3R0b206IDE4LFxuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGhlYWRlcjoge1xuICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgbWFyZ2luQm90dG9tOiAyNSxcbiAgICBwYWRkaW5nQm90dG9tOiAxNSxcbiAgICBib3JkZXJCb3R0b21Db2xvcjogJyNkMmQyZDInLFxuICAgIGJvcmRlckJvdHRvbVdpZHRoOiAxLFxuICAgIGJvcmRlckJvdHRvbVN0eWxlOiAnc29saWQnLFxuICB9LFxuICBoZWFkZXJDb250ZW50OiB7XG4gICAgZmxleEdyb3c6IDEsXG4gIH0sXG4gIGhlYWRlckltYWdlQ29udGFpbmVyOiB7XG4gICAgd2lkdGg6IDEwMCxcbiAgICBoZWlnaHQ6IDQwLFxuICAgIGFsaWduSXRlbXM6ICdmbGV4LWVuZCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICBsb2dvOiB7XG4gICAgd2lkdGg6IDgwLFxuICAgIG1hcmdpblJpZ2h0OiA1LFxuICB9LFxuICBuYW1lOiB7XG4gICAgZm9udFNpemU6IDIwLFxuICAgIGZvbnRGYW1pbHk6ICdSZWRIYXREaXNwbGF5JyxcbiAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgbWFyZ2luQm90dG9tOiA1LFxuICB9LFxuICBqb2JUaXRsZToge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBmb250RmFtaWx5OiAnUmVkSGF0RGlzcGxheScsXG4gICAgY29sb3I6ICcjZWUwMDAwJyxcbiAgICBtYXJnaW5Cb3R0b206IDUsXG4gIH0sXG4gIHNlY3Rpb25UaXRsZToge1xuICAgIGZvbnRTaXplOiAxMixcbiAgICBmb250RmFtaWx5OiAnUmVkSGF0RGlzcGxheScsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIGNvbG9yOiAnI2VlMDAwMCcsXG4gICAgbWFyZ2luQm90dG9tOiAxMCxcbiAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJyxcbiAgICBwYWRkaW5nQm90dG9tOiAzLFxuICAgIGJvcmRlckJvdHRvbUNvbG9yOiAnI2QyZDJkMicsXG4gICAgYm9yZGVyQm90dG9tV2lkdGg6IDAuNSxcbiAgICBib3JkZXJCb3R0b21TdHlsZTogJ3NvbGlkJyxcbiAgfSxcbiAgdGFibGU6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICdhdXRvJyxcbiAgICBtYXJnaW5Cb3R0b206IDEwLFxuICB9LFxuICB0YWJsZVJvdzoge1xuICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIG1pbkhlaWdodDogMjQsXG4gICAgcGFkZGluZ1RvcDogMyxcbiAgICBwYWRkaW5nQm90dG9tOiAzLFxuICAgIGJvcmRlckJvdHRvbUNvbG9yOiAnI2QyZDJkMicsXG4gICAgYm9yZGVyQm90dG9tV2lkdGg6IDAuNSxcbiAgICBib3JkZXJCb3R0b21TdHlsZTogJ3NvbGlkJyxcbiAgfSxcbiAgdGFibGVSb3dMYXN0OiB7XG4gICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgbWluSGVpZ2h0OiAyNCxcbiAgICBwYWRkaW5nVG9wOiAzLFxuICAgIHBhZGRpbmdCb3R0b206IDMsXG4gIH0sXG4gIHRhYmxlSGVhZGVyUm93OiB7XG4gICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgbWluSGVpZ2h0OiAyNCxcbiAgICBwYWRkaW5nVG9wOiAzLFxuICAgIHBhZGRpbmdCb3R0b206IDMsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2Y1ZjVmNScsXG4gICAgYm9yZGVyQm90dG9tQ29sb3I6ICcjZDJkMmQyJyxcbiAgICBib3JkZXJCb3R0b21XaWR0aDogMSxcbiAgICBib3JkZXJCb3R0b21TdHlsZTogJ3NvbGlkJyxcbiAgfSxcbiAgdGFibGVDZWxsOiB7XG4gICAgcGFkZGluZzogMyxcbiAgfSxcbiAgdGFibGVDZWxsSGVhZGVyOiB7XG4gICAgcGFkZGluZzouMyxcbiAgICBjb2xvcjogJyNlZTAwMDAnLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgfSxcbiAgdGFibGVDb2wxNToge1xuICAgIHdpZHRoOiAnMTUlJyxcbiAgfSxcbiAgdGFibGVDb2wyMDoge1xuICAgIHdpZHRoOiAnMjAlJyxcbiAgfSxcbiAgdGFibGVDb2wyNToge1xuICAgIHdpZHRoOiAnMjUlJyxcbiAgfSxcbiAgdGFibGVDb2wzMDoge1xuICAgIHdpZHRoOiAnMzAlJyxcbiAgfSxcbiAgdGFibGVDb2wzMzoge1xuICAgIHdpZHRoOiAnMzMuMzMlJyxcbiAgfSxcbiAgdGFibGVDb2wzNToge1xuICAgIHdpZHRoOiAnMzUlJyxcbiAgfSxcbiAgdGFibGVDb2w0MDoge1xuICAgIHdpZHRoOiAnNDAlJyxcbiAgfSxcbiAgdGFibGVDb2w1MDoge1xuICAgIHdpZHRoOiAnNTAlJyxcbiAgfSxcbiAgdGFibGVDb2w1NToge1xuICAgIHdpZHRoOiAnNTUlJyxcbiAgfSxcbiAgdGFibGVDb2w2MDoge1xuICAgIHdpZHRoOiAnNjAlJyxcbiAgfSxcbiAgdGFibGVDb2w3MDoge1xuICAgIHdpZHRoOiAnNzAlJyxcbiAgfSxcbiAgdGFibGVDb2w3NToge1xuICAgIHdpZHRoOiAnNzUlJyxcbiAgfSxcbiAgdGFibGVDb2w4MDoge1xuICAgIHdpZHRoOiAnODAlJyxcbiAgfSxcbiAgYm9sZDoge1xuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgfSxcbiAgaXRhbGljOiB7XG4gICAgZm9udFN0eWxlOiAnaXRhbGljJyxcbiAgfSxcbiAgdGV4dDoge1xuICAgIGxpbmVIZWlnaHQ6IDEuNCxcbiAgfSxcbiAgbGlzdEl0ZW06IHtcbiAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICBtYXJnaW5Cb3R0b206IDMsXG4gICAgcGFkZGluZ0xlZnQ6IDYsXG4gIH0sXG4gIGJ1bGxldDoge1xuICAgIHdpZHRoOiA2LFxuICAgIG1hcmdpblJpZ2h0OiA0LFxuICB9LFxuICBmb290ZXI6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBib3R0b206IDMwLFxuICAgIGxlZnQ6IDQwLFxuICAgIHJpZ2h0OiA0MCxcbiAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBmb250U2l6ZTogOCxcbiAgICBjb2xvcjogJyM2NjY2NjYnLFxuICAgIHBhZGRpbmdUb3A6IDgsXG4gICAgYm9yZGVyVG9wQ29sb3I6ICcjZDJkMmQyJyxcbiAgICBib3JkZXJUb3BXaWR0aDogMC41LFxuICAgIGJvcmRlclRvcFN0eWxlOiAnc29saWQnLFxuICB9LFxuICBmb290ZXJMZWZ0OiB7XG4gICAgd2lkdGg6ICczMCUnLFxuICB9LFxuICBmb290ZXJDZW50ZXI6IHtcbiAgICB3aWR0aDogJzQwJScsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgfSxcbiAgZm9vdGVyUmlnaHQ6IHtcbiAgICB3aWR0aDogJzMwJScsXG4gICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICB9LFxuICBzZWN0aW9uTnVtYmVyOiB7XG4gICAgbWFyZ2luUmlnaHQ6IDUsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICB9LFxuICBwYXJhZ3JhcGg6IHtcbiAgICBtYXJnaW5Cb3R0b206IDYsXG4gICAgbGluZUhlaWdodDogMSxcbiAgfSxcbiAgc2VjdGlvblJvdzoge1xuICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgIG1hcmdpbkJvdHRvbTogNSxcbiAgfSxcbiAgZWR1Y2F0aW9uSXRlbToge1xuICAgIG1hcmdpbkJvdHRvbTogNCxcbiAgfSxcbn0pO1xuXG4vLyBQREYgRG9jdW1lbnQgY29tcG9uZW50XG5jb25zdCBDVkRvY3VtZW50ID0gKHsgY3YgfTogeyBjdjogQ1YgfSkgPT4ge1xuICAvLyBHZXQgaW5pdGlhbHMgZm9yIGhlYWRlciBhbmQgZm9vdGVyXG4gIGNvbnN0IGluaXRpYWxzID0gZ2V0SW5pdGlhbHMoY3YuZ2VuZXJhbEluZm8ubmFtZSk7XG4gIFxuICAvLyBMYXN0IHJvdyBpbmRleCBmb3IgZWFjaCBzZWN0aW9uIHRvIGF2b2lkIGJvdHRvbSBib3JkZXJcbiAgY29uc3QgbGFzdEtleVNraWxsSW5kZXggPSBjdi5rZXlTa2lsbHMubGVuZ3RoIC0gMTtcbiAgY29uc3QgbGFzdEV4cEluZGV4ID0gY3YuZXhwZXJpZW5jZXMubGVuZ3RoIC0gMTtcbiAgY29uc3QgbGFzdENlcnRJbmRleCA9IGN2LmNlcnRpZmljYXRpb25zLmxlbmd0aCAtIDE7XG4gIFxuICByZXR1cm4gKFxuICA8RG9jdW1lbnQgdGl0bGU9e2Ake2N2LmdlbmVyYWxJbmZvLm5hbWV9IC0gQ1ZgfT5cbiAgICA8UGFnZSBzaXplPVwiQTRcIiBzdHlsZT17c3R5bGVzLnBhZ2V9PlxuICAgICAgey8qIEhlYWRlciB3aXRoIExvZ28gKi99XG4gICAgICA8VmlldyBzdHlsZT17c3R5bGVzLmhlYWRlcn0+XG4gICAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMuaGVhZGVyQ29udGVudH0+XG4gICAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlcy5uYW1lfT57Y3YuZ2VuZXJhbEluZm8ubmFtZX08L1RleHQ+XG4gICAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlcy5qb2JUaXRsZX0+e2N2LmdlbmVyYWxJbmZvLmpvYlRpdGxlfSwgUmVkIEhhdCBDb25zdWx0aW5nPC9UZXh0PlxuICAgICAgICA8L1ZpZXc+XG4gICAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMuaGVhZGVySW1hZ2VDb250YWluZXJ9PlxuICAgICAgICAgIDxJbWFnZSBzcmM9e1JlZEhhdExvZ299IHN0eWxlPXtzdHlsZXMubG9nb30gLz5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuXG4gICAgICB7LyogMS4gR2VuZXJhbCBJbmZvcm1hdGlvbiAqL31cbiAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMuc2VjdGlvbn0+XG4gICAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMuc2VjdGlvblJvd30+XG4gICAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlcy5zZWN0aW9uVGl0bGV9PjEuIEdlbmVyYWwgSW5mb3JtYXRpb248L1RleHQ+XG4gICAgICAgIDwvVmlldz5cbiAgICAgICAgXG4gICAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMudGFibGV9PlxuICAgICAgICAgIHsvKiBSb3cgMSAqL31cbiAgICAgICAgICA8VmlldyBzdHlsZT17c3R5bGVzLnRhYmxlUm93fT5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbCwgc3R5bGVzLnRhYmxlQ29sMjVdfT5cbiAgICAgICAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlcy5ib2xkfT5OYW1lPC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dD57aW5pdGlhbHN9PC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLmJvbGR9Pk5hdGlvbmFsaXR5PC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dD57Y3YuZ2VuZXJhbEluZm8ubmF0aW9uYWxpdHl9PC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICBcbiAgICAgICAgICB7LyogUm93IDIgKi99XG4gICAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy50YWJsZVJvd30+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGwsIHN0eWxlcy50YWJsZUNvbDI1XX0+XG4gICAgICAgICAgICAgIDxUZXh0IHN0eWxlPXtzdHlsZXMuYm9sZH0+Sm9iIFRpdGxlPC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dD57Y3YuZ2VuZXJhbEluZm8uam9iVGl0bGV9PC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLmJvbGR9PkxvY2F0aW9uPC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dD57Y3YuZ2VuZXJhbEluZm8ubG9jYXRpb259PC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICBcbiAgICAgICAgICB7LyogUm93IDMgLSBsYXN0IHJvdyB3aXRob3V0IGJvdHRvbSBib3JkZXIgKi99XG4gICAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy50YWJsZVJvd0xhc3R9PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLmJvbGR9Pkxhbmd1YWdlczwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbCwgc3R5bGVzLnRhYmxlQ29sMjVdfT5cbiAgICAgICAgICAgICAgPFRleHQ+e2N2LmdlbmVyYWxJbmZvLmxhbmd1YWdlc308L1RleHQ+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGwsIHN0eWxlcy50YWJsZUNvbDI1XX0+XG4gICAgICAgICAgICAgIDxUZXh0IHN0eWxlPXtzdHlsZXMuYm9sZH0+RWR1Y2F0aW9uPC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICB7Y3YuZWR1Y2F0aW9uLm1hcCgoZWR1LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlcy5lZHVjYXRpb25JdGVtfSBrZXk9e2l9PntlZHUuZGVncmVlfTwvVGV4dD5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG5cbiAgICAgIHsvKiAyLiBLZXkgU2tpbGxzICovfVxuICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy5zZWN0aW9ufT5cbiAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy5zZWN0aW9uUm93fT5cbiAgICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLnNlY3Rpb25UaXRsZX0+Mi4gS2V5IFNraWxsczwvVGV4dD5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgICBcbiAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy50YWJsZX0+XG4gICAgICAgICAgey8qIFRhYmxlIGhlYWRlciAqL31cbiAgICAgICAgICA8VmlldyBzdHlsZT17c3R5bGVzLnRhYmxlSGVhZGVyUm93fT5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sMzBdfT5cbiAgICAgICAgICAgICAgPFRleHQ+QXJlYTwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sNzBdfT5cbiAgICAgICAgICAgICAgPFRleHQ+SW5mb3JtYXRpb248L1RleHQ+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBUYWJsZSBjb250ZW50IC0gaXRlcmF0ZSB0aHJvdWdoIHNraWxscyAqL31cbiAgICAgICAgICB7Y3Yua2V5U2tpbGxzLm1hcCgoc2tpbGwsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8VmlldyBrZXk9e2luZGV4fSBzdHlsZT17aW5kZXggPT09IGxhc3RLZXlTa2lsbEluZGV4ID8gc3R5bGVzLnRhYmxlUm93TGFzdCA6IHN0eWxlcy50YWJsZVJvd30+XG4gICAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbCwgc3R5bGVzLnRhYmxlQ29sMzBdfT5cbiAgICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLmJvbGR9Pntza2lsbC5jYXRlZ29yeX08L1RleHQ+XG4gICAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2w3MF19PlxuICAgICAgICAgICAgICAgIDxUZXh0Pntza2lsbC5kZXNjcmlwdGlvbn08L1RleHQ+XG4gICAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuXG4gICAgICB7LyogMy4gRXhwZXJpZW5jZSAqL31cbiAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMuc2VjdGlvbn0+XG4gICAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMuc2VjdGlvblJvd30+XG4gICAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlcy5zZWN0aW9uVGl0bGV9PjMuIFByb2plY3RzPC9UZXh0PlxuICAgICAgICA8L1ZpZXc+XG4gICAgICAgIFxuICAgICAgICA8VmlldyBzdHlsZT17c3R5bGVzLnRhYmxlfT5cbiAgICAgICAgICB7LyogVGFibGUgaGVhZGVyICovfVxuICAgICAgICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMudGFibGVIZWFkZXJSb3d9PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsSGVhZGVyLCBzdHlsZXMudGFibGVDb2wxNV19PlxuICAgICAgICAgICAgICA8VGV4dD5JbmR1c3RyeTwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sMTVdfT5cbiAgICAgICAgICAgICAgPFRleHQ+RGF0ZTwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sMTVdfT5cbiAgICAgICAgICAgICAgPFRleHQ+TG9jYXRpb248L1RleHQ+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGxIZWFkZXIsIHN0eWxlcy50YWJsZUNvbDU1XX0+XG4gICAgICAgICAgICAgIDxUZXh0PkRlc2NyaXB0aW9uPC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICBcbiAgICAgICAgICB7LyogVGFibGUgY29udGVudCAqL31cbiAgICAgICAgICB7Y3YuZXhwZXJpZW5jZXMubWFwKChleHAsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8VmlldyBrZXk9e2luZGV4fSBzdHlsZT17aW5kZXggPT09IGxhc3RFeHBJbmRleCA/IHN0eWxlcy50YWJsZVJvd0xhc3QgOiBzdHlsZXMudGFibGVSb3d9PlxuICAgICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGwsIHN0eWxlcy50YWJsZUNvbDE1XX0+XG4gICAgICAgICAgICAgICAgPFRleHQ+e2V4cC5pbmR1c3RyeX08L1RleHQ+XG4gICAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wxNV19PlxuICAgICAgICAgICAgICAgIDxUZXh0PntleHAuZGF0ZX08L1RleHQ+XG4gICAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wxNV19PlxuICAgICAgICAgICAgICAgIDxUZXh0PntleHAubG9jYXRpb259PC9UZXh0PlxuICAgICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbCwgc3R5bGVzLnRhYmxlQ29sNTVdfT5cbiAgICAgICAgICAgICAgICA8VGV4dD57ZXhwLmRlc2NyaXB0aW9ufTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG5cbiAgICAgIHsvKiA0LiBUcmFpbmluZyAmIENlcnRpZmljYXRpb25zICovfVxuICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy5zZWN0aW9ufT5cbiAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy5zZWN0aW9uUm93fT5cbiAgICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLnNlY3Rpb25UaXRsZX0+NC4gVHJhaW5pbmcgJiBDZXJ0aWZpY2F0aW9uczwvVGV4dD5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgICBcbiAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy50YWJsZX0+XG4gICAgICAgICAgey8qIFRhYmxlIGhlYWRlciAqL31cbiAgICAgICAgICA8VmlldyBzdHlsZT17c3R5bGVzLnRhYmxlSGVhZGVyUm93fT5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sODBdfT5cbiAgICAgICAgICAgICAgPFRleHQ+UXVhbGlmaWNhdGlvbjwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sMjBdfT5cbiAgICAgICAgICAgICAgPFRleHQ+RGF0ZTwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgXG4gICAgICAgICAgey8qIFRhYmxlIGNvbnRlbnQgKi99XG4gICAgICAgICAge2N2LmNlcnRpZmljYXRpb25zLm1hcCgoY2VydCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxWaWV3IGtleT17aW5kZXh9IHN0eWxlPXtpbmRleCA9PT0gbGFzdENlcnRJbmRleCA/IHN0eWxlcy50YWJsZVJvd0xhc3QgOiBzdHlsZXMudGFibGVSb3d9PlxuICAgICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGwsIHN0eWxlcy50YWJsZUNvbDgwXX0+XG4gICAgICAgICAgICAgICAgPFRleHQ+e2NlcnQucXVhbGlmaWNhdGlvbn08L1RleHQ+XG4gICAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyMF19PlxuICAgICAgICAgICAgICAgIDxUZXh0PntjZXJ0LmRhdGV9PC9UZXh0PlxuICAgICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvVmlldz5cbiAgICAgIDwvVmlldz5cblxuICAgICAgey8qIDUuIEZ1cnRoZXIgSW5mb3JtYXRpb24gKi99XG4gICAgICA8VmlldyBzdHlsZT17c3R5bGVzLnNlY3Rpb259PlxuICAgICAgICA8VmlldyBzdHlsZT17c3R5bGVzLnNlY3Rpb25Sb3d9PlxuICAgICAgICAgIDxUZXh0IHN0eWxlPXtzdHlsZXMuc2VjdGlvblRpdGxlfT41LiBGdXJ0aGVyIEluZm9ybWF0aW9uPC9UZXh0PlxuICAgICAgICA8L1ZpZXc+XG4gICAgICAgIFxuICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLnBhcmFncmFwaH0+XG4gICAgICAgICAgSW5mb3JtYXRpb24gb24gYXZhaWxhYmlsaXR5LCBzY2hlZHVsZSBhbmQgcmF0ZXMgc2hvdWxkIGJlIHJlZmVycmVkIHRvIHRoZSBTZXJ2aWNlcyBEZWxpdmVyeSBNYW5hZ2VyIChjb250YWN0IGluZm9ybWF0aW9uIGJlbG93KTpcbiAgICAgICAgPC9UZXh0PlxuICAgICAgICBcbiAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy50YWJsZX0+XG4gICAgICAgICAgey8qIFRhYmxlIGhlYWRlciAqL31cbiAgICAgICAgICA8VmlldyBzdHlsZT17c3R5bGVzLnRhYmxlSGVhZGVyUm93fT5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sMjVdfT5cbiAgICAgICAgICAgICAgPFRleHQ+Um9sZTwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sMjVdfT5cbiAgICAgICAgICAgICAgPFRleHQ+TmFtZTwvVGV4dD5cbiAgICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICAgIDxWaWV3IHN0eWxlPXtbc3R5bGVzLnRhYmxlQ2VsbEhlYWRlciwgc3R5bGVzLnRhYmxlQ29sMjVdfT5cbiAgICAgICAgICAgICAgPFRleHQ+RW1haWw8L1RleHQ+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGxIZWFkZXIsIHN0eWxlcy50YWJsZUNvbDI1XX0+XG4gICAgICAgICAgICAgIDxUZXh0PlBob25lPC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgICBcbiAgICAgICAgICB7LyogU0RNIGluZm9ybWF0aW9uIC0gbGFzdCByb3cgd2l0aG91dCBib3JkZXIgKi99XG4gICAgICAgICAgPFZpZXcgc3R5bGU9e3N0eWxlcy50YWJsZVJvd0xhc3R9PlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMudGFibGVDZWxsLCBzdHlsZXMudGFibGVDb2wyNV19PlxuICAgICAgICAgICAgICA8VGV4dD5TZXJ2aWNlcyBDb25zdWx0aW5nIE1hbmFnZXI8L1RleHQ+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGwsIHN0eWxlcy50YWJsZUNvbDI1XX0+XG4gICAgICAgICAgICAgIDxUZXh0PldvbGZnYW5nIE1pbGQ8L1RleHQ+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGwsIHN0eWxlcy50YWJsZUNvbDI1XX0+XG4gICAgICAgICAgICAgIDxUZXh0PndtaWxkQHJlZGhhdC5jb208L1RleHQ+XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy50YWJsZUNlbGwsIHN0eWxlcy50YWJsZUNvbDI1XX0+XG4gICAgICAgICAgICAgIDxUZXh0Pis0My02NzYtODUyMTAwMjA5PC9UZXh0PlxuICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgICBcbiAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlcy5wYXJhZ3JhcGh9PlxuICAgICAgICAgIEluZm9ybWF0aW9uIG9uIHNlY3VyaXR5IGNsZWFyYW5jZXMsIHZpc2FzIGV0Yy4gc2hvdWxkIGJlIGRpcmVjdGVkIHRvd2FyZHMgdGhlIFNETSBhbmQgYXJlIGRlYWx0IHdpdGggZGlyZWN0bHkgd2l0aCB0aGUgY3VzdG9tZXIuXG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgXG4gICAgICAgIHsvKiBObyBtb3JlIGNvbmRpdGlvbmFsIGNvbnRlbnQgaW4gRnVydGhlciBJbmZvcm1hdGlvbiBzZWN0aW9uICovfVxuICAgICAgPC9WaWV3PlxuXG4gICAgICB7LyogRm9vdGVyIHdpdGggcGFnZSBudW1iZXIgYW5kIGluaXRpYWxzICovfVxuICAgICAgPFZpZXcgZml4ZWQgc3R5bGU9e3N0eWxlcy5mb290ZXJ9PlxuICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLmZvb3RlckxlZnR9PkNWOiB7aW5pdGlhbHN9PC9UZXh0PlxuICAgICAgICA8VGV4dCBzdHlsZT17c3R5bGVzLmZvb3RlckNlbnRlcn0gcmVuZGVyPXsoeyBwYWdlTnVtYmVyLCB0b3RhbFBhZ2VzIH0pID0+IGBQYWdlICR7cGFnZU51bWJlcn0gb2YgJHt0b3RhbFBhZ2VzfWB9IC8+XG4gICAgICA8L1ZpZXc+XG4gICAgPC9QYWdlPlxuICA8L0RvY3VtZW50PlxuICApO1xufTtcblxuaW50ZXJmYWNlIFJlYWN0UERGR2VuZXJhdG9yUHJvcHMge1xuICBjdjogQ1Y7XG59XG5cbmV4cG9ydCBjb25zdCBSZWFjdFBERkdlbmVyYXRvcjogUmVhY3QuRkM8UmVhY3RQREZHZW5lcmF0b3JQcm9wcz4gPSAoeyBjdiB9KSA9PiB7XG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcblxuICAvLyBIYW5kbGUgbG9hZGluZyBzdGF0ZVxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNldCBhIHRpbWVvdXQgdG8gc2ltdWxhdGUgbG9hZGluZyBhbmQgZW5zdXJlIGZvbnRzIGFyZSBsb2FkZWRcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICB9LCA4MDApO1xuICAgIFxuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpO1xuICB9LCBbXSk7XG5cbiAgLy8gUHJldmlldyBjb250YWluZXIgc3R5bGVzXG4gIGNvbnN0IHByZXZpZXdDb250YWluZXJTdHlsZSA9IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgYXMgY29uc3QsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgfTtcbiAgXG4gIC8vIFRvb2xiYXIgc3R5bGVzXG4gIGNvbnN0IHRvb2xiYXJTdHlsZSA9IHtcbiAgICBwYWRkaW5nOiAnMTBweCAyMHB4JyxcbiAgICBiYWNrZ3JvdW5kOiAnIzMzMycsXG4gICAgY29sb3I6ICd3aGl0ZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYm94U2hhZG93OiAnMCAycHggNHB4IHJnYmEoMCwwLDAsMC4yKScsXG4gICAgekluZGV4OiAxMCxcbiAgfTtcbiAgXG4gIC8vIEJ1dHRvbiBzdHlsZXNcbiAgY29uc3QgYnV0dG9uU3R5bGUgPSB7XG4gICAgYmFja2dyb3VuZDogJyNlZTAwMDAnLFxuICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIHBhZGRpbmc6ICc4cHggMTVweCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBmb250V2VpZ2h0OiAnYm9sZCcgYXMgY29uc3QsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBtYXJnaW5MZWZ0OiAnMTBweCcsXG4gIH07XG4gIFxuICAvLyBWaWV3ZXIgd3JhcHBlciBzdHlsZXNcbiAgY29uc3Qgdmlld2VyV3JhcHBlclN0eWxlID0ge1xuICAgIGZsZXg6IDEsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnIGFzIGNvbnN0LFxuICB9O1xuICBcbiAgLy8gTG9hZGluZyBvdmVybGF5IHN0eWxlc1xuICBjb25zdCBsb2FkaW5nT3ZlcmxheVN0eWxlID0ge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnIGFzIGNvbnN0LFxuICAgIHRvcDogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBiYWNrZ3JvdW5kOiAncmdiYSgyNTUsMjU1LDI1NSwwLjkpJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgYXMgY29uc3QsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIHpJbmRleDogNSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3ByZXZpZXdDb250YWluZXJTdHlsZX0+XG4gICAgICB7LyogVG9vbGJhciAqL31cbiAgICAgIDxkaXYgc3R5bGU9e3Rvb2xiYXJTdHlsZX0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHN0cm9uZz57Y3YuZ2VuZXJhbEluZm8ubmFtZX08L3N0cm9uZz4gLSBDViBQcmV2aWV3XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICBzdHlsZT17YnV0dG9uU3R5bGV9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB3aW5kb3cucHJpbnQoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICBQcmludCBDVlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICBzdHlsZT17ey4uLmJ1dHRvblN0eWxlLCBiYWNrZ3JvdW5kOiAnIzAwNjZjYyd9fVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZ2VuZXJhdGVQREYoY3YpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIERvd25sb2FkIFBERlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICB7LyogUERGIFZpZXdlciBXcmFwcGVyICovfVxuICAgICAgPGRpdiBzdHlsZT17dmlld2VyV3JhcHBlclN0eWxlfT5cbiAgICAgICAgey8qIExvYWRpbmcgT3ZlcmxheSAqL31cbiAgICAgICAge2lzTG9hZGluZyAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17bG9hZGluZ092ZXJsYXlTdHlsZX0+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAnMjRweCcsIG1hcmdpbkJvdHRvbTogJzEwcHgnLCBjb2xvcjogJyNlZTAwMDAnIH19PlxuICAgICAgICAgICAgICBMb2FkaW5nIENWIFByZXZpZXdcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnLCBjb2xvcjogJyM1NTUnIH19PlxuICAgICAgICAgICAgICBUaGlzIG1heSB0YWtlIGEgbW9tZW50IHdoaWxlIHdlIHByZXBhcmUgeW91ciBkb2N1bWVudC4uLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIFxuICAgICAgICB7LyogUERGIFZpZXdlciB3aXRoIGVuaGFuY2VkIHNldHRpbmdzIGZvciBhY2N1cmF0ZSByZW5kZXJpbmcgKi99XG4gICAgICAgIDxQREZWaWV3ZXIgXG4gICAgICAgICAgc3R5bGU9e3sgXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLCBcbiAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgIH19XG4gICAgICAgICAgc2hvd1Rvb2xiYXI9e2ZhbHNlfVxuICAgICAgICA+XG4gICAgICAgICAgPENWRG9jdW1lbnQgY3Y9e2N2fSAvPlxuICAgICAgICA8L1BERlZpZXdlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICB7LyogUHJpbnQgc3R5bGVzIHRvIGVuc3VyZSBiZXR0ZXIgcHJpbnQgcmVuZGVyaW5nICovfVxuICAgICAgPHN0eWxlIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogYFxuICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgIGJvZHkgKiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIC5yZWFjdC1wZGZfX1BhZ2Uge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5yZWFjdC1wZGZfX1BhZ2UgKiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH19IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG4vLyBFeHBvcnQgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBjYWxsZWQgdG8gZ2VuZXJhdGUgYW5kIHNhdmUvb3BlbiB0aGUgUERGXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVQREYgPSBhc3luYyAoY3Y6IENWKSA9PiB7XG4gIC8vIENyZWF0ZSBhIGxvYWRpbmcgbm90aWZpY2F0aW9uXG4gIGNvbnN0IGxvYWRpbmdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGxvYWRpbmdFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgbG9hZGluZ0VsZW1lbnQuc3R5bGUudG9wID0gJzIwcHgnO1xuICBsb2FkaW5nRWxlbWVudC5zdHlsZS5yaWdodCA9ICcyMHB4JztcbiAgbG9hZGluZ0VsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9ICcjMzMzJztcbiAgbG9hZGluZ0VsZW1lbnQuc3R5bGUuY29sb3IgPSAnd2hpdGUnO1xuICBsb2FkaW5nRWxlbWVudC5zdHlsZS5wYWRkaW5nID0gJzE1cHggMjBweCc7XG4gIGxvYWRpbmdFbGVtZW50LnN0eWxlLmJvcmRlclJhZGl1cyA9ICc1cHgnO1xuICBsb2FkaW5nRWxlbWVudC5zdHlsZS5ib3hTaGFkb3cgPSAnMCAycHggOHB4IHJnYmEoMCwwLDAsMC4yKSc7XG4gIGxvYWRpbmdFbGVtZW50LnN0eWxlLnpJbmRleCA9ICc5OTk5JztcbiAgbG9hZGluZ0VsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgbG9hZGluZ0VsZW1lbnQuc3R5bGUuYWxpZ25JdGVtcyA9ICdjZW50ZXInO1xuICBsb2FkaW5nRWxlbWVudC5zdHlsZS5nYXAgPSAnMTBweCc7XG4gIGxvYWRpbmdFbGVtZW50LmlubmVySFRNTCA9IGBcbiAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpOyBib3JkZXItdG9wOiAzcHggc29saWQgd2hpdGU7IGJvcmRlci1yYWRpdXM6IDUwJTsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcIj48L2Rpdj5cbiAgICA8ZGl2PkdlbmVyYXRpbmcgUERGLi4uPC9kaXY+XG4gIGA7XG4gIFxuICAvLyBBZGQgYW5pbWF0aW9uIHN0eWxlXG4gIGNvbnN0IHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHN0eWxlRWxlbWVudC5pbm5lckhUTUwgPSBgXG4gICAgQGtleWZyYW1lcyBzcGluIHtcbiAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gICAgfVxuICBgO1xuICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGluZ0VsZW1lbnQpO1xuICBcbiAgdHJ5IHtcbiAgICAvLyBDcmVhdGUgdGhlIFBERiBkb2N1bWVudFxuICAgIGNvbnN0IGRvYyA9IDxDVkRvY3VtZW50IGN2PXtjdn0gLz47XG4gICAgXG4gICAgLy8gQ29udmVydCB0byBibG9iIHdpdGggdGltZW91dFxuICAgIGxldCBibG9iO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0aW1lb3V0UHJvbWlzZSA9IG5ldyBQcm9taXNlPEJsb2I+KChfLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKCdQREYgZ2VuZXJhdGlvbiB0aW1lZCBvdXQnKSksIDE1MDAwKTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBibG9iID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgcGRmKGRvYykudG9CbG9iKCksXG4gICAgICAgIHRpbWVvdXRQcm9taXNlXG4gICAgICBdKTtcbiAgICB9IGNhdGNoIChibG9iRXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNyZWF0aW5nIFBERiBibG9iOicsIGJsb2JFcnJvcik7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgUERGOiAnICsgKGJsb2JFcnJvciBpbnN0YW5jZW9mIEVycm9yID8gYmxvYkVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpKTtcbiAgICB9XG4gICAgXG4gICAgLy8gVmVyaWZ5IHdlIGhhdmUgYSB2YWxpZCBibG9iXG4gICAgaWYgKCFibG9iIHx8IGJsb2Iuc2l6ZSA8IDEwMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignR2VuZXJhdGVkIFBERiBpcyBpbnZhbGlkIG9yIHRvbyBzbWFsbCcpO1xuICAgIH1cbiAgICBcbiAgICAvLyBDcmVhdGUgVVJMIGFuZCB0cmlnZ2VyIGRvd25sb2FkXG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBcbiAgICAvLyBDcmVhdGUgZG93bmxvYWQgbGlua1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsuZG93bmxvYWQgPSBgJHtjdi5nZW5lcmFsSW5mby5uYW1lLnJlcGxhY2UoL1xccysvZywgJ18nKX1fQ1YucGRmYDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICBcbiAgICAvLyBDbGVhbiB1cFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcbiAgICAgIFxuICAgICAgLy8gU2hvdyBzdWNjZXNzIG5vdGlmaWNhdGlvblxuICAgICAgbG9hZGluZ0VsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9ICcjMmU3ZDMyJztcbiAgICAgIGxvYWRpbmdFbGVtZW50LmlubmVySFRNTCA9IGBcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MUw5IDE2LjE3elwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxkaXY+UERGIERvd25sb2FkZWQgU3VjY2Vzc2Z1bGx5PC9kaXY+XG4gICAgICBgO1xuICAgICAgXG4gICAgICAvLyBSZW1vdmUgc3VjY2VzcyBub3RpZmljYXRpb24gYWZ0ZXIgMyBzZWNvbmRzXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGFpbnMobG9hZGluZ0VsZW1lbnQpKSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsb2FkaW5nRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMDApO1xuICAgIH0sIDEwMCk7XG4gICAgXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdlbmVyYXRpbmcgUERGOicsIGVycik7XG4gICAgXG4gICAgLy8gU2hvdyBlcnJvciBub3RpZmljYXRpb25cbiAgICBsb2FkaW5nRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gJyNjNjI4MjgnO1xuICAgIGxvYWRpbmdFbGVtZW50LmlubmVySFRNTCA9IGBcbiAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aCBkPVwiTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMiAxOSA2LjQxelwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgPGRpdj5FcnJvcjogJHtlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfTwvZGl2PlxuICAgIGA7XG4gICAgXG4gICAgLy8gUmVtb3ZlIGVycm9yIG5vdGlmaWNhdGlvbiBhZnRlciA1IHNlY29uZHNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGxvYWRpbmdFbGVtZW50KSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxvYWRpbmdFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9LCA1MDAwKTtcbiAgfVxufTsgIl0sImZpbGUiOiIvaG9tZS9qb3NpZS9kZXZlbG9wbWVudC9zZXJ2aWNlcy1jdi1nZW5lcmF0b3Ivc3JjL2NvbXBvbmVudHMvUmVhY3RQREZHZW5lcmF0b3IudHN4In0=