@patternfly/quickstarts 6.0.0-alpha.1 → 6.0.0-alpha.2

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.
@@ -11000,6 +11000,7 @@ const QuickStartContextDefaults = {
11000
11000
  markdown: null,
11001
11001
  loading: false,
11002
11002
  alwaysShowTaskReview: true,
11003
+ focusOnQuickStart: true,
11003
11004
  };
11004
11005
  const QuickStartContext = createContext(QuickStartContextDefaults);
11005
11006
  const getResource = (resource, options, resourceBundle, lng) => {
@@ -26228,72 +26229,77 @@ function getDefaultOpts (simple) {
26228
26229
  },
26229
26230
  smartIndentationFix: {
26230
26231
  defaultValue: false,
26231
- description: 'Tries to smartly fix indentation in es6 strings',
26232
+ describe: 'Tries to smartly fix indentation in es6 strings',
26232
26233
  type: 'boolean'
26233
26234
  },
26234
26235
  disableForced4SpacesIndentedSublists: {
26235
26236
  defaultValue: false,
26236
- description: 'Disables the requirement of indenting nested sublists by 4 spaces',
26237
+ describe: 'Disables the requirement of indenting nested sublists by 4 spaces',
26237
26238
  type: 'boolean'
26238
26239
  },
26239
26240
  simpleLineBreaks: {
26240
26241
  defaultValue: false,
26241
- description: 'Parses simple line breaks as <br> (GFM Style)',
26242
+ describe: 'Parses simple line breaks as <br> (GFM Style)',
26242
26243
  type: 'boolean'
26243
26244
  },
26244
26245
  requireSpaceBeforeHeadingText: {
26245
26246
  defaultValue: false,
26246
- description: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',
26247
+ describe: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',
26247
26248
  type: 'boolean'
26248
26249
  },
26249
26250
  ghMentions: {
26250
26251
  defaultValue: false,
26251
- description: 'Enables github @mentions',
26252
+ describe: 'Enables github @mentions',
26252
26253
  type: 'boolean'
26253
26254
  },
26254
26255
  ghMentionsLink: {
26255
26256
  defaultValue: 'https://github.com/{u}',
26256
- description: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',
26257
+ describe: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',
26257
26258
  type: 'string'
26258
26259
  },
26259
26260
  encodeEmails: {
26260
26261
  defaultValue: true,
26261
- description: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',
26262
+ describe: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',
26262
26263
  type: 'boolean'
26263
26264
  },
26264
26265
  openLinksInNewWindow: {
26265
26266
  defaultValue: false,
26266
- description: 'Open all links in new windows',
26267
+ describe: 'Open all links in new windows',
26267
26268
  type: 'boolean'
26268
26269
  },
26269
26270
  backslashEscapesHTMLTags: {
26270
26271
  defaultValue: false,
26271
- description: 'Support for HTML Tag escaping. ex: \<div>foo\</div>',
26272
+ describe: 'Support for HTML Tag escaping. ex: \<div>foo\</div>',
26272
26273
  type: 'boolean'
26273
26274
  },
26274
26275
  emoji: {
26275
26276
  defaultValue: false,
26276
- description: 'Enable emoji support. Ex: `this is a :smile: emoji`',
26277
+ describe: 'Enable emoji support. Ex: `this is a :smile: emoji`',
26277
26278
  type: 'boolean'
26278
26279
  },
26279
26280
  underline: {
26280
26281
  defaultValue: false,
26281
- description: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`',
26282
+ describe: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`',
26283
+ type: 'boolean'
26284
+ },
26285
+ ellipsis: {
26286
+ defaultValue: true,
26287
+ describe: 'Replaces three dots with the ellipsis unicode character',
26282
26288
  type: 'boolean'
26283
26289
  },
26284
26290
  completeHTMLDocument: {
26285
26291
  defaultValue: false,
26286
- description: 'Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags',
26292
+ describe: 'Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags',
26287
26293
  type: 'boolean'
26288
26294
  },
26289
26295
  metadata: {
26290
26296
  defaultValue: false,
26291
- description: 'Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).',
26297
+ describe: 'Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).',
26292
26298
  type: 'boolean'
26293
26299
  },
26294
26300
  splitAdjacentBlockquotes: {
26295
26301
  defaultValue: false,
26296
- description: 'Split adjacent blockquote blocks',
26302
+ describe: 'Split adjacent blockquote blocks',
26297
26303
  type: 'boolean'
26298
26304
  }
26299
26305
  };
@@ -26501,7 +26507,7 @@ showdown.subParser = function (name, func) {
26501
26507
  * Gets or registers an extension
26502
26508
  * @static
26503
26509
  * @param {string} name
26504
- * @param {object|function=} ext
26510
+ * @param {object|object[]|function=} ext
26505
26511
  * @returns {*}
26506
26512
  */
26507
26513
  showdown.extension = function (name, ext) {
@@ -26820,6 +26826,20 @@ showdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash
26820
26826
  return text;
26821
26827
  };
26822
26828
 
26829
+ /**
26830
+ * Unescape HTML entities
26831
+ * @param txt
26832
+ * @returns {string}
26833
+ */
26834
+ showdown.helper.unescapeHTMLEntities = function (txt) {
26835
+
26836
+ return txt
26837
+ .replace(/&quot;/g, '"')
26838
+ .replace(/&lt;/g, '<')
26839
+ .replace(/&gt;/g, '>')
26840
+ .replace(/&amp;/g, '&');
26841
+ };
26842
+
26823
26843
  var rgxFindMatchPos = function (str, left, right, flags) {
26824
26844
  var f = flags || '',
26825
26845
  g = f.indexOf('g') > -1,
@@ -27024,11 +27044,35 @@ showdown.helper.encodeEmailAddress = function (mail) {
27024
27044
  return mail;
27025
27045
  };
27026
27046
 
27047
+ /**
27048
+ *
27049
+ * @param str
27050
+ * @param targetLength
27051
+ * @param padString
27052
+ * @returns {string}
27053
+ */
27054
+ showdown.helper.padEnd = function padEnd (str, targetLength, padString) {
27055
+ /*jshint bitwise: false*/
27056
+ // eslint-disable-next-line space-infix-ops
27057
+ targetLength = targetLength>>0; //floor if number or convert non-number to 0;
27058
+ /*jshint bitwise: true*/
27059
+ padString = String(padString || ' ');
27060
+ if (str.length > targetLength) {
27061
+ return String(str);
27062
+ } else {
27063
+ targetLength = targetLength - str.length;
27064
+ if (targetLength > padString.length) {
27065
+ padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed
27066
+ }
27067
+ return String(str) + padString.slice(0,targetLength);
27068
+ }
27069
+ };
27070
+
27027
27071
  /**
27028
27072
  * POLYFILLS
27029
27073
  */
27030
27074
  // use this instead of builtin is undefined for IE8 compatibility
27031
- if (typeof(console) === 'undefined') {
27075
+ if (typeof (console) === 'undefined') {
27032
27076
  console = {
27033
27077
  warn: function (msg) {
27034
27078
  alert(msg);
@@ -28229,8 +28273,8 @@ showdown.helper.emojis = {
28229
28273
  'zzz':'\ud83d\udca4',
28230
28274
 
28231
28275
  /* special emojis :P */
28232
- 'octocat': '<img width="20" height="20" align="absmiddle" src="data:image/png;base64,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">',
28233
- 'showdown': '<img width="20" height="20" align="absmiddle" src="data:image/png;base64,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/GMzLdsAAECtaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTAtMjRUMTM6MzE6MzArMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8cGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHBob3Rvc2hvcDpMYXllck5hbWU+UyAtPC9waG90b3Nob3A6TGF5ZXJOYW1lPgogICAgICAgICAgICAgICAgICA8cGhvdG9zaG9wOkxheWVyVGV4dD5TIC08L3Bob3Rvc2hvcDpMYXllclRleHQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6N2NkMzQxNzctOWYyZi0yNDRiLWEyYjQtMzU1MzJkY2Y1MWJiPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6M2E1YzgxYmYtYjhiNy0xMWU3LTk0NDktYTQ2MzdlZjJkNjMzPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEwLTI0VDEzOjMxOjMwKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjdjZDM0MTc3LTlmMmYtMjQ0Yi1hMmI0LTM1NTMyZGNmNTFiYjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjYwQzVBRTY1RjY5Q0U0MTE5NDVBODU1RTNCQ0E3RUVCPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pse7bzcAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA1JJREFUeNrsm1+OmlAUhz+aeS9dwZggJn1AnRUMO6jpBgZXULuC2hWUWUGZBTSxKyiuoA4mfUBMnB04K5g+9DihRBHlyh/lJLwIXLgf99xzzu9etZeXFy7Z3nDh1gBoAFy4XeVtQNO0zNcapmUDfUBPnFoBfhQGq6IBaHmjwD4Ahmk5wAD4kKG5J8CNwsAFaHe6DvA9cc0wCgOv8gDka3vA9RHNPgo0D7hNnJtGYWBXxgV2dH4MfMnRRA+Y1WIO2NJ5F/ikoKm3tYsChmkNFHW+fmHQMC1dfHaXPQP3wM1yMdc2B/AOGALTWobBmI1Shu0UGCwX83XyRBQGawHntTtdG5gUNfxVu4CTNqNv6/wWGL7kCc+1AmCYVisl3I2ydD4GYZUCs7IjoLXrxHIx9w9tLAqDCfBwDrXAY457x+cAoCfuwRGjYFUnAGk+PsjR7s8Dn1VeLWCYVlpDw+VivjVHSHt+u9PVJbzGzZXQWTkAkz0V31fATUaEsjVJlQBs4FeGcteLgzgbAALBA+4y3voAeJL8nA0AHfClnM1qm1HhnYUidCSE+KzvSSJUTwAxCOMcpfETMFYpfRUKIAbCFhC3OTJJJwqDWS0BxED0JZ4Pjix1P2+E0loCSMBwyK4S/xc1ojBwag8gMU84cvTKGgmlAYhngu1O9xAXuVE5J1QCQCz3bwHuHvdQui5QKQAxEO6eEKpsFCgTRSXkvdoxSlBMCxhJJbgrrbZRtHCiShN0pRB6PeQ3ckBw2K0oKXMBVYJIP+Nvh9qulFivGoBt1lLQxowT2ykBXCfnhZIglgYACWmqXQv+baioBYCeiCQHm+QEg1O7RhF7hO4OhSAhcJKSFU7qBGADwZeqMMuXn6TUBw8qlaMrirNb4LdhWlP+SWD+cjFfxTpuS2GUpik+o3jFSEkqbJiWn0P0OMSGqlWiOu0TvD+FRHZKAE+oW+cfRmEwqlsesJJEJs8y91QqP+9UL6lqEtz2gpuNEY5sm9sIHln2DRa2aFKGJtiXkZEMiWtgVvRKUSUFkSKt2S7fAGgAXLYpmQQXf36MUChTZdUa2u8/rkvPA6Tz30r4eH3ybcBS5gJ6SaNXb+aABkA1AMxKenclBZLW/He4cYEGwEXb3wEASelexk6LIIIAAAAASUVORK5CYII=">'
28276
+ 'octocat': '<img alt=":octocat:" height="20" width="20" align="absmiddle" src="https://assets-cdn.github.com/images/icons/emoji/octocat.png">',
28277
+ 'showdown': '<span style="font-family: \'Anonymous Pro\', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;">S</span>'
28234
28278
  };
28235
28279
 
28236
28280
  /**
@@ -28279,10 +28323,10 @@ showdown.Converter = function (converterOptions) {
28279
28323
  */
28280
28324
  setConvFlavor = setFlavor,
28281
28325
 
28282
- /**
28283
- * Metadata of the document
28284
- * @type {{parsed: {}, raw: string, format: string}}
28285
- */
28326
+ /**
28327
+ * Metadata of the document
28328
+ * @type {{parsed: {}, raw: string, format: string}}
28329
+ */
28286
28330
  metadata = {
28287
28331
  parsed: {},
28288
28332
  raw: '',
@@ -28341,7 +28385,7 @@ showdown.Converter = function (converterOptions) {
28341
28385
  'Please inform the developer that the extension should be updated!');
28342
28386
  legacyExtensionLoading(showdown.extensions[ext], ext);
28343
28387
  return;
28344
- // END LEGACY SUPPORT CODE
28388
+ // END LEGACY SUPPORT CODE
28345
28389
 
28346
28390
  } else if (!showdown.helper.isUndefined(extensions[ext])) {
28347
28391
  ext = extensions[ext];
@@ -28521,8 +28565,8 @@ showdown.Converter = function (converterOptions) {
28521
28565
  text = text.replace(/\r\n/g, '\n'); // DOS to Unix
28522
28566
  text = text.replace(/\r/g, '\n'); // Mac to Unix
28523
28567
 
28524
- // Stardardize line spaces (nbsp causes trouble in older browsers and some regex flavors)
28525
- text = text.replace(/\u00A0/g, ' ');
28568
+ // Stardardize line spaces
28569
+ text = text.replace(/\u00A0/g, '&nbsp;');
28526
28570
 
28527
28571
  if (options.smartIndentationFix) {
28528
28572
  text = rTrimInputText(text);
@@ -28577,6 +28621,112 @@ showdown.Converter = function (converterOptions) {
28577
28621
  return text;
28578
28622
  };
28579
28623
 
28624
+ /**
28625
+ * Converts an HTML string into a markdown string
28626
+ * @param src
28627
+ * @param [HTMLParser] A WHATWG DOM and HTML parser, such as JSDOM. If none is supplied, window.document will be used.
28628
+ * @returns {string}
28629
+ */
28630
+ this.makeMarkdown = this.makeMd = function (src, HTMLParser) {
28631
+
28632
+ // replace \r\n with \n
28633
+ src = src.replace(/\r\n/g, '\n');
28634
+ src = src.replace(/\r/g, '\n'); // old macs
28635
+
28636
+ // due to an edge case, we need to find this: > <
28637
+ // to prevent removing of non silent white spaces
28638
+ // ex: <em>this is</em> <strong>sparta</strong>
28639
+ src = src.replace(/>[ \t]+</, '>¨NBSP;<');
28640
+
28641
+ if (!HTMLParser) {
28642
+ if (window && window.document) {
28643
+ HTMLParser = window.document;
28644
+ } else {
28645
+ throw new Error('HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM');
28646
+ }
28647
+ }
28648
+
28649
+ var doc = HTMLParser.createElement('div');
28650
+ doc.innerHTML = src;
28651
+
28652
+ var globals = {
28653
+ preList: substitutePreCodeTags(doc)
28654
+ };
28655
+
28656
+ // remove all newlines and collapse spaces
28657
+ clean(doc);
28658
+
28659
+ // some stuff, like accidental reference links must now be escaped
28660
+ // TODO
28661
+ // doc.innerHTML = doc.innerHTML.replace(/\[[\S\t ]]/);
28662
+
28663
+ var nodes = doc.childNodes,
28664
+ mdDoc = '';
28665
+
28666
+ for (var i = 0; i < nodes.length; i++) {
28667
+ mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals);
28668
+ }
28669
+
28670
+ function clean (node) {
28671
+ for (var n = 0; n < node.childNodes.length; ++n) {
28672
+ var child = node.childNodes[n];
28673
+ if (child.nodeType === 3) {
28674
+ if (!/\S/.test(child.nodeValue) && !/^[ ]+$/.test(child.nodeValue)) {
28675
+ node.removeChild(child);
28676
+ --n;
28677
+ } else {
28678
+ child.nodeValue = child.nodeValue.split('\n').join(' ');
28679
+ child.nodeValue = child.nodeValue.replace(/(\s)+/g, '$1');
28680
+ }
28681
+ } else if (child.nodeType === 1) {
28682
+ clean(child);
28683
+ }
28684
+ }
28685
+ }
28686
+
28687
+ // find all pre tags and replace contents with placeholder
28688
+ // we need this so that we can remove all indentation from html
28689
+ // to ease up parsing
28690
+ function substitutePreCodeTags (doc) {
28691
+
28692
+ var pres = doc.querySelectorAll('pre'),
28693
+ presPH = [];
28694
+
28695
+ for (var i = 0; i < pres.length; ++i) {
28696
+
28697
+ if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') {
28698
+ var content = pres[i].firstChild.innerHTML.trim(),
28699
+ language = pres[i].firstChild.getAttribute('data-language') || '';
28700
+
28701
+ // if data-language attribute is not defined, then we look for class language-*
28702
+ if (language === '') {
28703
+ var classes = pres[i].firstChild.className.split(' ');
28704
+ for (var c = 0; c < classes.length; ++c) {
28705
+ var matches = classes[c].match(/^language-(.+)$/);
28706
+ if (matches !== null) {
28707
+ language = matches[1];
28708
+ break;
28709
+ }
28710
+ }
28711
+ }
28712
+
28713
+ // unescape html entities in content
28714
+ content = showdown.helper.unescapeHTMLEntities(content);
28715
+
28716
+ presPH.push(content);
28717
+ pres[i].outerHTML = '<precode language="' + language + '" precodenum="' + i.toString() + '"></precode>';
28718
+ } else {
28719
+ presPH.push(pres[i].innerHTML);
28720
+ pres[i].innerHTML = '';
28721
+ pres[i].setAttribute('prenum', i.toString());
28722
+ }
28723
+ }
28724
+ return presPH;
28725
+ }
28726
+
28727
+ return mdDoc;
28728
+ };
28729
+
28580
28730
  /**
28581
28731
  * Set an option of this Converter instance
28582
28732
  * @param {string} key
@@ -28660,12 +28810,12 @@ showdown.Converter = function (converterOptions) {
28660
28810
  var ext = extension[a];
28661
28811
  for (var i = 0; i < langExtensions.length; ++i) {
28662
28812
  if (langExtensions[i] === ext) {
28663
- langExtensions[i].splice(i, 1);
28813
+ langExtensions.splice(i, 1);
28664
28814
  }
28665
28815
  }
28666
- for (var ii = 0; ii < outputModifiers.length; ++i) {
28816
+ for (var ii = 0; ii < outputModifiers.length; ++ii) {
28667
28817
  if (outputModifiers[ii] === ext) {
28668
- outputModifiers[ii].splice(i, 1);
28818
+ outputModifiers.splice(ii, 1);
28669
28819
  }
28670
28820
  }
28671
28821
  }
@@ -28778,7 +28928,7 @@ showdown.subParser('anchors', function (text, options, globals) {
28778
28928
  // to external links. Hash links (#) open in same page
28779
28929
  if (options.openLinksInNewWindow && !/^#/.test(url)) {
28780
28930
  // escaped _
28781
- result += ' target="¨E95Eblank"';
28931
+ result += ' rel="noopener noreferrer" target="¨E95Eblank"';
28782
28932
  }
28783
28933
 
28784
28934
  result += '>' + linkText + '</a>';
@@ -28796,7 +28946,7 @@ showdown.subParser('anchors', function (text, options, globals) {
28796
28946
 
28797
28947
  // normal cases
28798
28948
  text = text.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,
28799
- writeAnchorTag);
28949
+ writeAnchorTag);
28800
28950
 
28801
28951
  // handle reference-style shortcuts: [link text]
28802
28952
  // These must come last in case you've also got [link test][1]
@@ -28805,7 +28955,7 @@ showdown.subParser('anchors', function (text, options, globals) {
28805
28955
 
28806
28956
  // Lastly handle GithubMentions if option is enabled
28807
28957
  if (options.ghMentions) {
28808
- text = text.replace(/(^|\s)(\\)?(@([a-z\d\-]+))(?=[.!?;,[\]()]|\s|$)/gmi, function (wm, st, escape, mentions, username) {
28958
+ text = text.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gmi, function (wm, st, escape, mentions, username) {
28809
28959
  if (escape === '\\') {
28810
28960
  return st + mentions;
28811
28961
  }
@@ -28817,7 +28967,7 @@ showdown.subParser('anchors', function (text, options, globals) {
28817
28967
  var lnk = options.ghMentionsLink.replace(/\{u}/g, username),
28818
28968
  target = '';
28819
28969
  if (options.openLinksInNewWindow) {
28820
- target = ' target="¨E95Eblank"';
28970
+ target = ' rel="noopener noreferrer" target="¨E95Eblank"';
28821
28971
  }
28822
28972
  return st + '<a href="' + lnk + '"' + target + '>' + mentions + '</a>';
28823
28973
  });
@@ -28850,7 +29000,7 @@ var simpleURLRegex = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'
28850
29000
  append = trailingPunctuation;
28851
29001
  }
28852
29002
  if (options.openLinksInNewWindow) {
28853
- target = ' target="¨E95Eblank"';
29003
+ target = ' rel="noopener noreferrer" target="¨E95Eblank"';
28854
29004
  }
28855
29005
  return lmc + '<a href="' + link + '"' + target + '>' + lnkTxt + '</a>' + append + tmc;
28856
29006
  };
@@ -29044,7 +29194,7 @@ showdown.subParser('codeSpans', function (text, options, globals) {
29044
29194
 
29045
29195
  text = globals.converter._dispatch('codeSpans.before', text, options, globals);
29046
29196
 
29047
- if (typeof(text) === 'undefined') {
29197
+ if (typeof (text) === 'undefined') {
29048
29198
  text = '';
29049
29199
  }
29050
29200
  text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,
@@ -29064,7 +29214,7 @@ showdown.subParser('codeSpans', function (text, options, globals) {
29064
29214
  });
29065
29215
 
29066
29216
  /**
29067
- * Turn Markdown link shortcuts into XHTML <a> tags.
29217
+ * Create a full HTML document from the processed markdown
29068
29218
  */
29069
29219
  showdown.subParser('completeHTMLDocument', function (text, options, globals) {
29070
29220
 
@@ -29160,6 +29310,10 @@ showdown.subParser('detab', function (text, options, globals) {
29160
29310
 
29161
29311
  showdown.subParser('ellipsis', function (text, options, globals) {
29162
29312
 
29313
+ if (!options.ellipsis) {
29314
+ return text;
29315
+ }
29316
+
29163
29317
  text = globals.converter._dispatch('ellipsis.before', text, options, globals);
29164
29318
 
29165
29319
  text = text.replace(/\.\.\./g, '…');
@@ -29170,8 +29324,9 @@ showdown.subParser('ellipsis', function (text, options, globals) {
29170
29324
  });
29171
29325
 
29172
29326
  /**
29173
- * These are all the transformations that occur *within* block-level
29174
- * tags like paragraphs, headers, and list items.
29327
+ * Turn emoji codes into emojis
29328
+ *
29329
+ * List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis
29175
29330
  */
29176
29331
  showdown.subParser('emoji', function (text, options, globals) {
29177
29332
 
@@ -29233,7 +29388,7 @@ showdown.subParser('encodeBackslashEscapes', function (text, options, globals) {
29233
29388
  text = globals.converter._dispatch('encodeBackslashEscapes.before', text, options, globals);
29234
29389
 
29235
29390
  text = text.replace(/\\(\\)/g, showdown.helper.escapeCharactersCallback);
29236
- text = text.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g, showdown.helper.escapeCharactersCallback);
29391
+ text = text.replace(/\\([`*_{}\[\]()>#+.!~=|:-])/g, showdown.helper.escapeCharactersCallback);
29237
29392
 
29238
29393
  text = globals.converter._dispatch('encodeBackslashEscapes.after', text, options, globals);
29239
29394
  return text;
@@ -29309,7 +29464,7 @@ showdown.subParser('githubCodeBlocks', function (text, options, globals) {
29309
29464
 
29310
29465
  text += '¨0';
29311
29466
 
29312
- text = text.replace(/(?:^|\n)(```+|~~~+)([^\s`~]*)\n([\s\S]*?)\n\1/g, function (wholeMatch, delim, language, codeblock) {
29467
+ text = text.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g, function (wholeMatch, delim, language, codeblock) {
29313
29468
  var end = (options.omitExtraWLInCodeBlocks) ? '' : '\n';
29314
29469
 
29315
29470
  // First parse the github code block
@@ -29450,7 +29605,7 @@ showdown.subParser('hashHTMLBlocks', function (text, options, globals) {
29450
29605
 
29451
29606
  //2. Split the text in that position
29452
29607
  var subTexts = showdown.helper.splitAtIndex(text, opTagPos),
29453
- //3. Match recursively
29608
+ //3. Match recursively
29454
29609
  newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im');
29455
29610
 
29456
29611
  // prevent an infinite loop
@@ -29565,13 +29720,13 @@ showdown.subParser('headers', function (text, options, globals) {
29565
29720
 
29566
29721
  var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),
29567
29722
 
29568
- // Set text-style headers:
29569
- // Header 1
29570
- // ========
29571
- //
29572
- // Header 2
29573
- // --------
29574
- //
29723
+ // Set text-style headers:
29724
+ // Header 1
29725
+ // ========
29726
+ //
29727
+ // Header 2
29728
+ // --------
29729
+ //
29575
29730
  setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm,
29576
29731
  setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm;
29577
29732
 
@@ -29762,7 +29917,7 @@ showdown.subParser('images', function (text, options, globals) {
29762
29917
  url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);
29763
29918
  var result = '<img src="' + url + '" alt="' + altText + '"';
29764
29919
 
29765
- if (title) {
29920
+ if (title && showdown.helper.isString(title)) {
29766
29921
  title = title
29767
29922
  .replace(/"/g, '&quot;')
29768
29923
  //title = showdown.helper.escapeCharacters(title, '*_', false);
@@ -29823,10 +29978,10 @@ showdown.subParser('italicsAndBold', function (text, options, globals) {
29823
29978
 
29824
29979
  // Parse underscores
29825
29980
  if (options.literalMidWordUnderscores) {
29826
- text = text.replace(/\b___(\S[\s\S]*)___\b/g, function (wm, txt) {
29981
+ text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) {
29827
29982
  return parseInside (txt, '<strong><em>', '</em></strong>');
29828
29983
  });
29829
- text = text.replace(/\b__(\S[\s\S]*)__\b/g, function (wm, txt) {
29984
+ text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) {
29830
29985
  return parseInside (txt, '<strong>', '</strong>');
29831
29986
  });
29832
29987
  text = text.replace(/\b_(\S[\s\S]*?)_\b/g, function (wm, txt) {
@@ -29847,13 +30002,13 @@ showdown.subParser('italicsAndBold', function (text, options, globals) {
29847
30002
 
29848
30003
  // Now parse asterisks
29849
30004
  if (options.literalMidWordAsterisks) {
29850
- text = text.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g, function (wm, lead, txt) {
30005
+ text = text.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g, function (wm, lead, txt) {
29851
30006
  return parseInside (txt, lead + '<strong><em>', '</em></strong>');
29852
30007
  });
29853
- text = text.replace(/([^*]|^)\B\*\*(\S[\s\S]+?)\*\*\B(?!\*)/g, function (wm, lead, txt) {
30008
+ text = text.replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g, function (wm, lead, txt) {
29854
30009
  return parseInside (txt, lead + '<strong>', '</strong>');
29855
30010
  });
29856
- text = text.replace(/([^*]|^)\B\*(\S[\s\S]+?)\*\B(?!\*)/g, function (wm, lead, txt) {
30011
+ text = text.replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g, function (wm, lead, txt) {
29857
30012
  return parseInside (txt, lead + '<em>', '</em>');
29858
30013
  });
29859
30014
  } else {
@@ -30307,14 +30462,19 @@ showdown.subParser('strikethrough', function (text, options, globals) {
30307
30462
  */
30308
30463
  showdown.subParser('stripLinkDefinitions', function (text, options, globals) {
30309
30464
 
30310
- var regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,
30311
- base64Regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm;
30465
+ var regex = /^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,
30466
+ base64Regex = /^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm;
30312
30467
 
30313
30468
  // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
30314
30469
  text += '¨0';
30315
30470
 
30316
30471
  var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) {
30472
+
30473
+ // if there aren't two instances of linkId it must not be a reference link so back out
30317
30474
  linkId = linkId.toLowerCase();
30475
+ if (text.toLowerCase().split(linkId).length - 1 < 2) {
30476
+ return wholeMatch;
30477
+ }
30318
30478
  if (url.match(/^data:.+?\/.+?;base64,/)) {
30319
30479
  // remove newlines
30320
30480
  globals.gUrls[linkId] = url.replace(/\s/g, '');
@@ -30360,7 +30520,7 @@ showdown.subParser('tables', function (text, options, globals) {
30360
30520
  }
30361
30521
 
30362
30522
  var tableRgx = /^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,
30363
- //singeColTblRgx = /^ {0,3}\|.+\|\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n(?: {0,3}\|.+\|\n)+(?:\n\n|¨0)/gm;
30523
+ //singeColTblRgx = /^ {0,3}\|.+\|\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n(?: {0,3}\|.+\|\n)+(?:\n\n|¨0)/gm;
30364
30524
  singeColTblRgx = /^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm;
30365
30525
 
30366
30526
  function parseStyles (sLine) {
@@ -30502,11 +30662,17 @@ showdown.subParser('underline', function (text, options, globals) {
30502
30662
  text = globals.converter._dispatch('underline.before', text, options, globals);
30503
30663
 
30504
30664
  if (options.literalMidWordUnderscores) {
30505
- text = text.replace(/\b_?__(\S[\s\S]*)___?\b/g, function (wm, txt) {
30665
+ text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) {
30666
+ return '<u>' + txt + '</u>';
30667
+ });
30668
+ text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) {
30506
30669
  return '<u>' + txt + '</u>';
30507
30670
  });
30508
30671
  } else {
30509
- text = text.replace(/_?__(\S[\s\S]*?)___?/g, function (wm, m) {
30672
+ text = text.replace(/___(\S[\s\S]*?)___/g, function (wm, m) {
30673
+ return (/\S$/.test(m)) ? '<u>' + m + '</u>' : wm;
30674
+ });
30675
+ text = text.replace(/__(\S[\s\S]*?)__/g, function (wm, m) {
30510
30676
  return (/\S$/.test(m)) ? '<u>' + m + '</u>' : wm;
30511
30677
  });
30512
30678
  }
@@ -30534,6 +30700,474 @@ showdown.subParser('unescapeSpecialChars', function (text, options, globals) {
30534
30700
  return text;
30535
30701
  });
30536
30702
 
30703
+ showdown.subParser('makeMarkdown.blockquote', function (node, globals) {
30704
+
30705
+ var txt = '';
30706
+ if (node.hasChildNodes()) {
30707
+ var children = node.childNodes,
30708
+ childrenLength = children.length;
30709
+
30710
+ for (var i = 0; i < childrenLength; ++i) {
30711
+ var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals);
30712
+
30713
+ if (innerTxt === '') {
30714
+ continue;
30715
+ }
30716
+ txt += innerTxt;
30717
+ }
30718
+ }
30719
+ // cleanup
30720
+ txt = txt.trim();
30721
+ txt = '> ' + txt.split('\n').join('\n> ');
30722
+ return txt;
30723
+ });
30724
+
30725
+ showdown.subParser('makeMarkdown.codeBlock', function (node, globals) {
30726
+
30727
+ var lang = node.getAttribute('language'),
30728
+ num = node.getAttribute('precodenum');
30729
+ return '```' + lang + '\n' + globals.preList[num] + '\n```';
30730
+ });
30731
+
30732
+ showdown.subParser('makeMarkdown.codeSpan', function (node) {
30733
+
30734
+ return '`' + node.innerHTML + '`';
30735
+ });
30736
+
30737
+ showdown.subParser('makeMarkdown.emphasis', function (node, globals) {
30738
+
30739
+ var txt = '';
30740
+ if (node.hasChildNodes()) {
30741
+ txt += '*';
30742
+ var children = node.childNodes,
30743
+ childrenLength = children.length;
30744
+ for (var i = 0; i < childrenLength; ++i) {
30745
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
30746
+ }
30747
+ txt += '*';
30748
+ }
30749
+ return txt;
30750
+ });
30751
+
30752
+ showdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) {
30753
+
30754
+ var headerMark = new Array(headerLevel + 1).join('#'),
30755
+ txt = '';
30756
+
30757
+ if (node.hasChildNodes()) {
30758
+ txt = headerMark + ' ';
30759
+ var children = node.childNodes,
30760
+ childrenLength = children.length;
30761
+
30762
+ for (var i = 0; i < childrenLength; ++i) {
30763
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
30764
+ }
30765
+ }
30766
+ return txt;
30767
+ });
30768
+
30769
+ showdown.subParser('makeMarkdown.hr', function () {
30770
+
30771
+ return '---';
30772
+ });
30773
+
30774
+ showdown.subParser('makeMarkdown.image', function (node) {
30775
+
30776
+ var txt = '';
30777
+ if (node.hasAttribute('src')) {
30778
+ txt += '![' + node.getAttribute('alt') + '](';
30779
+ txt += '<' + node.getAttribute('src') + '>';
30780
+ if (node.hasAttribute('width') && node.hasAttribute('height')) {
30781
+ txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height');
30782
+ }
30783
+
30784
+ if (node.hasAttribute('title')) {
30785
+ txt += ' "' + node.getAttribute('title') + '"';
30786
+ }
30787
+ txt += ')';
30788
+ }
30789
+ return txt;
30790
+ });
30791
+
30792
+ showdown.subParser('makeMarkdown.links', function (node, globals) {
30793
+
30794
+ var txt = '';
30795
+ if (node.hasChildNodes() && node.hasAttribute('href')) {
30796
+ var children = node.childNodes,
30797
+ childrenLength = children.length;
30798
+ txt = '[';
30799
+ for (var i = 0; i < childrenLength; ++i) {
30800
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
30801
+ }
30802
+ txt += '](';
30803
+ txt += '<' + node.getAttribute('href') + '>';
30804
+ if (node.hasAttribute('title')) {
30805
+ txt += ' "' + node.getAttribute('title') + '"';
30806
+ }
30807
+ txt += ')';
30808
+ }
30809
+ return txt;
30810
+ });
30811
+
30812
+ showdown.subParser('makeMarkdown.list', function (node, globals, type) {
30813
+
30814
+ var txt = '';
30815
+ if (!node.hasChildNodes()) {
30816
+ return '';
30817
+ }
30818
+ var listItems = node.childNodes,
30819
+ listItemsLenght = listItems.length,
30820
+ listNum = node.getAttribute('start') || 1;
30821
+
30822
+ for (var i = 0; i < listItemsLenght; ++i) {
30823
+ if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') {
30824
+ continue;
30825
+ }
30826
+
30827
+ // define the bullet to use in list
30828
+ var bullet = '';
30829
+ if (type === 'ol') {
30830
+ bullet = listNum.toString() + '. ';
30831
+ } else {
30832
+ bullet = '- ';
30833
+ }
30834
+
30835
+ // parse list item
30836
+ txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals);
30837
+ ++listNum;
30838
+ }
30839
+
30840
+ // add comment at the end to prevent consecutive lists to be parsed as one
30841
+ txt += '\n<!-- -->\n';
30842
+ return txt.trim();
30843
+ });
30844
+
30845
+ showdown.subParser('makeMarkdown.listItem', function (node, globals) {
30846
+
30847
+ var listItemTxt = '';
30848
+
30849
+ var children = node.childNodes,
30850
+ childrenLenght = children.length;
30851
+
30852
+ for (var i = 0; i < childrenLenght; ++i) {
30853
+ listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals);
30854
+ }
30855
+ // if it's only one liner, we need to add a newline at the end
30856
+ if (!/\n$/.test(listItemTxt)) {
30857
+ listItemTxt += '\n';
30858
+ } else {
30859
+ // it's multiparagraph, so we need to indent
30860
+ listItemTxt = listItemTxt
30861
+ .split('\n')
30862
+ .join('\n ')
30863
+ .replace(/^ {4}$/gm, '')
30864
+ .replace(/\n\n+/g, '\n\n');
30865
+ }
30866
+
30867
+ return listItemTxt;
30868
+ });
30869
+
30870
+
30871
+
30872
+ showdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {
30873
+
30874
+ spansOnly = spansOnly || false;
30875
+
30876
+ var txt = '';
30877
+
30878
+ // edge case of text without wrapper paragraph
30879
+ if (node.nodeType === 3) {
30880
+ return showdown.subParser('makeMarkdown.txt')(node, globals);
30881
+ }
30882
+
30883
+ // HTML comment
30884
+ if (node.nodeType === 8) {
30885
+ return '<!--' + node.data + '-->\n\n';
30886
+ }
30887
+
30888
+ // process only node elements
30889
+ if (node.nodeType !== 1) {
30890
+ return '';
30891
+ }
30892
+
30893
+ var tagName = node.tagName.toLowerCase();
30894
+
30895
+ switch (tagName) {
30896
+
30897
+ //
30898
+ // BLOCKS
30899
+ //
30900
+ case 'h1':
30901
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\n\n'; }
30902
+ break;
30903
+ case 'h2':
30904
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\n\n'; }
30905
+ break;
30906
+ case 'h3':
30907
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\n\n'; }
30908
+ break;
30909
+ case 'h4':
30910
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\n\n'; }
30911
+ break;
30912
+ case 'h5':
30913
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\n\n'; }
30914
+ break;
30915
+ case 'h6':
30916
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\n\n'; }
30917
+ break;
30918
+
30919
+ case 'p':
30920
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\n\n'; }
30921
+ break;
30922
+
30923
+ case 'blockquote':
30924
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\n\n'; }
30925
+ break;
30926
+
30927
+ case 'hr':
30928
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\n\n'; }
30929
+ break;
30930
+
30931
+ case 'ol':
30932
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\n\n'; }
30933
+ break;
30934
+
30935
+ case 'ul':
30936
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\n\n'; }
30937
+ break;
30938
+
30939
+ case 'precode':
30940
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\n\n'; }
30941
+ break;
30942
+
30943
+ case 'pre':
30944
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\n\n'; }
30945
+ break;
30946
+
30947
+ case 'table':
30948
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\n\n'; }
30949
+ break;
30950
+
30951
+ //
30952
+ // SPANS
30953
+ //
30954
+ case 'code':
30955
+ txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);
30956
+ break;
30957
+
30958
+ case 'em':
30959
+ case 'i':
30960
+ txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);
30961
+ break;
30962
+
30963
+ case 'strong':
30964
+ case 'b':
30965
+ txt = showdown.subParser('makeMarkdown.strong')(node, globals);
30966
+ break;
30967
+
30968
+ case 'del':
30969
+ txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);
30970
+ break;
30971
+
30972
+ case 'a':
30973
+ txt = showdown.subParser('makeMarkdown.links')(node, globals);
30974
+ break;
30975
+
30976
+ case 'img':
30977
+ txt = showdown.subParser('makeMarkdown.image')(node, globals);
30978
+ break;
30979
+
30980
+ default:
30981
+ txt = node.outerHTML + '\n\n';
30982
+ }
30983
+
30984
+ // common normalization
30985
+ // TODO eventually
30986
+
30987
+ return txt;
30988
+ });
30989
+
30990
+ showdown.subParser('makeMarkdown.paragraph', function (node, globals) {
30991
+
30992
+ var txt = '';
30993
+ if (node.hasChildNodes()) {
30994
+ var children = node.childNodes,
30995
+ childrenLength = children.length;
30996
+ for (var i = 0; i < childrenLength; ++i) {
30997
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
30998
+ }
30999
+ }
31000
+
31001
+ // some text normalization
31002
+ txt = txt.trim();
31003
+
31004
+ return txt;
31005
+ });
31006
+
31007
+ showdown.subParser('makeMarkdown.pre', function (node, globals) {
31008
+
31009
+ var num = node.getAttribute('prenum');
31010
+ return '<pre>' + globals.preList[num] + '</pre>';
31011
+ });
31012
+
31013
+ showdown.subParser('makeMarkdown.strikethrough', function (node, globals) {
31014
+
31015
+ var txt = '';
31016
+ if (node.hasChildNodes()) {
31017
+ txt += '~~';
31018
+ var children = node.childNodes,
31019
+ childrenLength = children.length;
31020
+ for (var i = 0; i < childrenLength; ++i) {
31021
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
31022
+ }
31023
+ txt += '~~';
31024
+ }
31025
+ return txt;
31026
+ });
31027
+
31028
+ showdown.subParser('makeMarkdown.strong', function (node, globals) {
31029
+
31030
+ var txt = '';
31031
+ if (node.hasChildNodes()) {
31032
+ txt += '**';
31033
+ var children = node.childNodes,
31034
+ childrenLength = children.length;
31035
+ for (var i = 0; i < childrenLength; ++i) {
31036
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
31037
+ }
31038
+ txt += '**';
31039
+ }
31040
+ return txt;
31041
+ });
31042
+
31043
+ showdown.subParser('makeMarkdown.table', function (node, globals) {
31044
+
31045
+ var txt = '',
31046
+ tableArray = [[], []],
31047
+ headings = node.querySelectorAll('thead>tr>th'),
31048
+ rows = node.querySelectorAll('tbody>tr'),
31049
+ i, ii;
31050
+ for (i = 0; i < headings.length; ++i) {
31051
+ var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals),
31052
+ allign = '---';
31053
+
31054
+ if (headings[i].hasAttribute('style')) {
31055
+ var style = headings[i].getAttribute('style').toLowerCase().replace(/\s/g, '');
31056
+ switch (style) {
31057
+ case 'text-align:left;':
31058
+ allign = ':---';
31059
+ break;
31060
+ case 'text-align:right;':
31061
+ allign = '---:';
31062
+ break;
31063
+ case 'text-align:center;':
31064
+ allign = ':---:';
31065
+ break;
31066
+ }
31067
+ }
31068
+ tableArray[0][i] = headContent.trim();
31069
+ tableArray[1][i] = allign;
31070
+ }
31071
+
31072
+ for (i = 0; i < rows.length; ++i) {
31073
+ var r = tableArray.push([]) - 1,
31074
+ cols = rows[i].getElementsByTagName('td');
31075
+
31076
+ for (ii = 0; ii < headings.length; ++ii) {
31077
+ var cellContent = ' ';
31078
+ if (typeof cols[ii] !== 'undefined') {
31079
+ cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals);
31080
+ }
31081
+ tableArray[r].push(cellContent);
31082
+ }
31083
+ }
31084
+
31085
+ var cellSpacesCount = 3;
31086
+ for (i = 0; i < tableArray.length; ++i) {
31087
+ for (ii = 0; ii < tableArray[i].length; ++ii) {
31088
+ var strLen = tableArray[i][ii].length;
31089
+ if (strLen > cellSpacesCount) {
31090
+ cellSpacesCount = strLen;
31091
+ }
31092
+ }
31093
+ }
31094
+
31095
+ for (i = 0; i < tableArray.length; ++i) {
31096
+ for (ii = 0; ii < tableArray[i].length; ++ii) {
31097
+ if (i === 1) {
31098
+ if (tableArray[i][ii].slice(-1) === ':') {
31099
+ tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':';
31100
+ } else {
31101
+ tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-');
31102
+ }
31103
+ } else {
31104
+ tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount);
31105
+ }
31106
+ }
31107
+ txt += '| ' + tableArray[i].join(' | ') + ' |\n';
31108
+ }
31109
+
31110
+ return txt.trim();
31111
+ });
31112
+
31113
+ showdown.subParser('makeMarkdown.tableCell', function (node, globals) {
31114
+
31115
+ var txt = '';
31116
+ if (!node.hasChildNodes()) {
31117
+ return '';
31118
+ }
31119
+ var children = node.childNodes,
31120
+ childrenLength = children.length;
31121
+
31122
+ for (var i = 0; i < childrenLength; ++i) {
31123
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true);
31124
+ }
31125
+ return txt.trim();
31126
+ });
31127
+
31128
+ showdown.subParser('makeMarkdown.txt', function (node) {
31129
+
31130
+ var txt = node.nodeValue;
31131
+
31132
+ // multiple spaces are collapsed
31133
+ txt = txt.replace(/ +/g, ' ');
31134
+
31135
+ // replace the custom ¨NBSP; with a space
31136
+ txt = txt.replace(/¨NBSP;/g, ' ');
31137
+
31138
+ // ", <, > and & should replace escaped html entities
31139
+ txt = showdown.helper.unescapeHTMLEntities(txt);
31140
+
31141
+ // escape markdown magic characters
31142
+ // emphasis, strong and strikethrough - can appear everywhere
31143
+ // we also escape pipe (|) because of tables
31144
+ // and escape ` because of code blocks and spans
31145
+ txt = txt.replace(/([*_~|`])/g, '\\$1');
31146
+
31147
+ // escape > because of blockquotes
31148
+ txt = txt.replace(/^(\s*)>/g, '\\$1>');
31149
+
31150
+ // hash character, only troublesome at the beginning of a line because of headers
31151
+ txt = txt.replace(/^#/gm, '\\#');
31152
+
31153
+ // horizontal rules
31154
+ txt = txt.replace(/^(\s*)([-=]{3,})(\s*)$/, '$1\\$2$3');
31155
+
31156
+ // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer
31157
+ txt = txt.replace(/^( {0,3}\d+)\./gm, '$1\\.');
31158
+
31159
+ // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)
31160
+ txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\$2');
31161
+
31162
+ // images and links, ] followed by ( is problematic, so we escape it
31163
+ txt = txt.replace(/]([\s]*)\(/g, '\\]$1\\(');
31164
+
31165
+ // reference URIs must also be escaped
31166
+ txt = txt.replace(/^ {0,3}\[([\S \t]*?)]:/gm, '\\[$1]:');
31167
+
31168
+ return txt;
31169
+ });
31170
+
30537
31171
  var root = this;
30538
31172
 
30539
31173
  // AMD Loader
@@ -31020,28 +31654,47 @@ exports["default"] = exports.OutlinedClockIcon;
31020
31654
 
31021
31655
  var OutlinedClockIcon = /*@__PURE__*/getDefaultExportFromCjs(outlinedClockIcon);
31022
31656
 
31657
+ var outlinedBookmarkIcon = createCommonjsModule(function (module, exports) {
31658
+ exports.__esModule = true;
31659
+ exports.OutlinedBookmarkIconConfig = {
31660
+ name: 'OutlinedBookmarkIcon',
31661
+ height: 512,
31662
+ width: 384,
31663
+ svgPath: 'M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z',
31664
+ yOffset: 0,
31665
+ xOffset: 0,
31666
+ };
31667
+ exports.OutlinedBookmarkIcon = createIcon_1.createIcon(exports.OutlinedBookmarkIconConfig);
31668
+ exports["default"] = exports.OutlinedBookmarkIcon;
31669
+ });
31670
+
31671
+ var OutlinedBookmarkIcon = /*@__PURE__*/getDefaultExportFromCjs(outlinedBookmarkIcon);
31672
+
31023
31673
  const statusColorMap = {
31024
31674
  [QuickStartStatus.COMPLETE]: 'green',
31025
31675
  [QuickStartStatus.IN_PROGRESS]: 'purple',
31026
31676
  [QuickStartStatus.NOT_STARTED]: 'grey',
31027
31677
  };
31028
- const QuickStartTileHeader = ({ status, duration, name, type, quickStartId, }) => {
31678
+ const QuickStartTileHeader = ({ status, duration, name, type, quickStartId, action, }) => {
31029
31679
  const { getResource } = React.useContext(QuickStartContext);
31030
31680
  const statusLocaleMap = {
31031
31681
  [QuickStartStatus.COMPLETE]: getResource('Complete'),
31032
31682
  [QuickStartStatus.IN_PROGRESS]: getResource('In progress'),
31033
31683
  [QuickStartStatus.NOT_STARTED]: getResource('Not started'),
31034
31684
  };
31685
+ const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) || OutlinedBookmarkIcon;
31035
31686
  return (React.createElement("div", { className: "pfext-quick-start-tile-header" },
31036
- React.createElement(Title, { headingLevel: "h3", "data-test": "title", id: quickStartId },
31037
- React.createElement(QuickStartMarkdownView, { content: name })),
31687
+ React.createElement(Flex, { flexWrap: { default: 'nowrap' } },
31688
+ React.createElement(Title, { headingLevel: "h3", "data-test": "title", id: quickStartId },
31689
+ React.createElement(QuickStartMarkdownView, { content: name })),
31690
+ action && (React.createElement(Button, Object.assign({ "aria-label": action['aria-label'], icon: React.createElement(ActionIcon, null), variant: "plain", onClick: action.onClick }, action.buttonProps)))),
31038
31691
  React.createElement("div", { className: "pfext-quick-start-tile-header__status" },
31039
31692
  type && (React.createElement(Label, { className: "pfext-quick-start-tile-header--margin", color: type.color }, type.text)),
31040
31693
  duration && (React.createElement(Label, { variant: "outline", "data-test": "duration", icon: React.createElement(OutlinedClockIcon, null), className: "pfext-quick-start-tile-header--margin" }, getResource('{{duration, number}} minutes', duration).replace('{{duration, number}}', duration))),
31041
31694
  status !== QuickStartStatus.NOT_STARTED && (React.createElement(Label, { variant: "outline", color: statusColorMap[status], icon: React.createElement(StatusIcon, { status: status }), "data-test": "status" }, statusLocaleMap[status])))));
31042
31695
  };
31043
31696
 
31044
- const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, }) => {
31697
+ const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, action, }) => {
31045
31698
  const { metadata: { name: id }, spec: { icon, tasks, displayName, description, durationMinutes, prerequisites, link, type }, } = quickStart;
31046
31699
  const { setActiveQuickStart, footer } = React.useContext(QuickStartContext);
31047
31700
  const ref = React.useRef(null);
@@ -31065,26 +31718,31 @@ const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, })
31065
31718
  const handleClick = (e) => {
31066
31719
  var _a;
31067
31720
  if ((_a = ref.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {
31068
- if (link) {
31069
- window.open(link.href);
31070
- }
31071
- else {
31721
+ if (!link) {
31072
31722
  setActiveQuickStart(id, tasks === null || tasks === void 0 ? void 0 : tasks.length);
31073
31723
  }
31074
31724
  onClick();
31075
31725
  }
31076
31726
  };
31077
- return (React.createElement("div", { ref: ref },
31078
- React.createElement(CatalogTile, { id: id + '-catalog-tile', style: {
31727
+ const linkProps = link
31728
+ ? {
31729
+ href: link.href,
31730
+ target: '_blank',
31731
+ rel: 'noreferrer',
31732
+ }
31733
+ : {};
31734
+ return (React.createElement("div", { ref: ref, onClick: handleClick },
31735
+ React.createElement(CatalogTile, Object.assign({ id: id + '-catalog-tile', style: {
31079
31736
  cursor: 'pointer',
31080
- }, icon: quickStartIcon, className: "pfext-quick-start-tile", "data-testid": `qs-card-${camelize(displayName)}`, featured: isActive, title: React.createElement(QuickStartTileHeader, { name: displayName, status: status, duration: durationMinutes, type: type, quickStartId: id }), onClick: handleClick, onKeyDown: (event) => {
31737
+ }, icon: quickStartIcon, className: "pfext-quick-start-tile", "data-testid": `qs-card-${camelize(displayName)}`, featured: isActive, title: React.createElement(QuickStartTileHeader, { name: displayName, status: status, duration: durationMinutes, type: type, quickStartId: id, action: action }), onKeyDown: (event) => {
31081
31738
  if (event.key === 'Enter' || event.key === ' ') {
31082
31739
  setActiveQuickStart(id, tasks === null || tasks === void 0 ? void 0 : tasks.length);
31083
31740
  onClick();
31084
31741
  }
31085
- },
31086
- // https://github.com/patternfly/patternfly-react/issues/7039
31087
- href: link === null || link === void 0 ? void 0 : link.href, "data-test": `tile ${id}`, description: React.createElement(QuickStartTileDescription, { description: description, prerequisites: prerequisites }), footer: footerComponent, tabIndex: 0 })));
31742
+ } }, linkProps, { "data-test": `tile ${id}`, description: React.createElement(QuickStartTileDescription, { description: description, prerequisites: prerequisites }), footer: footerComponent, tabIndex: 0,
31743
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
31744
+ // @ts-ignore-next-line
31745
+ isSelectableRaised: true }))));
31088
31746
  };
31089
31747
 
31090
31748
  const QuickStartCatalog = ({ quickStarts }) => {
@@ -31327,12 +31985,13 @@ var ArrowRightIcon = /*@__PURE__*/getDefaultExportFromCjs(arrowRightIcon);
31327
31985
 
31328
31986
  const QuickStartTaskHeader = ({ title, taskIndex, subtitle, taskStatus, size, isActiveTask, onTaskSelect, children, }) => {
31329
31987
  const titleRef = React.useRef(null);
31988
+ const { focusOnQuickStart } = React.useContext(QuickStartContext);
31330
31989
  React.useEffect(() => {
31331
- if (isActiveTask) {
31990
+ if (focusOnQuickStart && isActiveTask) {
31332
31991
  // Focus the WizardNavItem button element that contains the title
31333
31992
  titleRef.current.parentNode.focus();
31334
31993
  }
31335
- }, [isActiveTask]);
31994
+ }, [focusOnQuickStart, isActiveTask]);
31336
31995
  css('pfext-quick-start-task-header__title', {
31337
31996
  'pfext-quick-start-task-header__title-success': taskStatus === QuickStartTaskStatus.SUCCESS,
31338
31997
  'pfext-quick-start-task-header__title-failed': taskStatus === (QuickStartTaskStatus.FAILED || QuickStartTaskStatus.VISITED),
@@ -31499,7 +32158,7 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
31499
32158
  const getQuickStartActiveTask = React.useCallback(() => {
31500
32159
  let activeTaskNumber = 0;
31501
32160
  while (activeTaskNumber !== totalTasks &&
31502
- activeQuickStartState[`taskStatus${activeTaskNumber}`] !== QuickStartTaskStatus.INIT) {
32161
+ activeQuickStartState[`taskStatus${activeTaskNumber}`] === QuickStartTaskStatus.SUCCESS) {
31503
32162
  activeTaskNumber++;
31504
32163
  }
31505
32164
  return activeTaskNumber;
@@ -31542,7 +32201,7 @@ const useScrollTopOnTaskNumberChange = (node, taskNumber) => {
31542
32201
  const QuickStartPanelContent = (_a) => {
31543
32202
  var { quickStarts = [], handleClose, activeQuickStartID, appendTo, isResizable = true, showClose = true, headerVariant = '' } = _a, props = __rest(_a, ["quickStarts", "handleClose", "activeQuickStartID", "appendTo", "isResizable", "showClose", "headerVariant"]);
31544
32203
  const titleRef = React.useRef(null);
31545
- const { getResource, activeQuickStartState } = React.useContext(QuickStartContext);
32204
+ const { getResource, activeQuickStartState, focusOnQuickStart } = React.useContext(QuickStartContext);
31546
32205
  const [contentRef, setContentRef] = React.useState();
31547
32206
  const shadows = useScrollShadows(contentRef);
31548
32207
  const quickStart = quickStarts.find((qs) => qs.metadata.name === activeQuickStartID);
@@ -31567,10 +32226,10 @@ const QuickStartPanelContent = (_a) => {
31567
32226
  return Number.parseInt(taskNumber) + 1;
31568
32227
  };
31569
32228
  React.useEffect(() => {
31570
- if (quickStart) {
32229
+ if (focusOnQuickStart && quickStart) {
31571
32230
  titleRef.current.focus();
31572
32231
  }
31573
- }, [quickStart]);
32232
+ }, [focusOnQuickStart, quickStart]);
31574
32233
  const content = quickStart ? (React.createElement(DrawerPanelContent, Object.assign({ isResizable: isResizable, className: "pfext-quick-start__base", "data-testid": `qs-drawer-${camelize(quickStart.spec.displayName)}`, "data-qs": `qs-step-${getStep()}`, "data-test": "quickstart drawer" }, props),
31575
32234
  React.createElement("div", { className: headerClasses },
31576
32235
  React.createElement(DrawerHead, null,