aboutsummaryrefslogtreecommitdiff
path: root/src/main/resources/js/prettify.js
blob: 5c0d71d80f6d8da5f30e98a579005032676715bd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
!function () {/*

 Copyright (C) 2013 Google Inc.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

 Copyright (C) 2006 Google Inc.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
*/
    (function () {
        function aa(g) {
            function r() {
                try {
                    L.doScroll("left")
                } catch (ba) {
                    k.setTimeout(r, 50);
                    return
                }
                x("poll")
            }

            function x(r) {
                if ("readystatechange" != r.type || "complete" == z.readyState) ("load" == r.type ? k : z)[B](n + r.type, x, !1), !l && (l = !0) && g.call(k, r.type || r)
            }

            var X = z.addEventListener, l = !1, E = !0, v = X ? "addEventListener" : "attachEvent",
                B = X ? "removeEventListener" : "detachEvent", n = X ? "" : "on";
            if ("complete" == z.readyState) g.call(k, "lazy"); else {
                if (z.createEventObject && L.doScroll) {
                    try {
                        E = !k.frameElement
                    } catch (ba) {
                    }
                    E && r()
                }
                z[v](n +
                    "DOMContentLoaded", x, !1);
                z[v](n + "readystatechange", x, !1);
                k[v](n + "load", x, !1)
            }
        }

        function T() {
            U && aa(function () {
                var g = M.length;
                ca(g ? function () {
                    for (var r = 0; r < g; ++r) (function (g) {
                        k.setTimeout(function () {
                            k.exports[M[g]].apply(k, arguments)
                        }, 0)
                    })(r)
                } : void 0)
            })
        }

        for (var k = window, z = document, L = z.documentElement, N = z.head || z.getElementsByTagName("head")[0] || L, B = "", F = z.getElementsByTagName("script"), l = F.length; 0 <= --l;) {
            var O = F[l], Y = O.src.match(/^[^?#]*\/run_prettify\.js(\?[^#]*)?(?:#.*)?$/);
            if (Y) {
                B = Y[1] || "";
                O.parentNode.removeChild(O);
                break
            }
        }
        var U = !0, H = [], P = [], M = [];
        B.replace(/[?&]([^&=]+)=([^&]+)/g, function (g, r, x) {
            x = decodeURIComponent(x);
            r = decodeURIComponent(r);
            "autorun" == r ? U = !/^[0fn]/i.test(x) : "lang" == r ? H.push(x) : "skin" == r ? P.push(x) : "callback" == r && M.push(x)
        });
        l = 0;
        for (B = H.length; l < B; ++l) (function () {
            var g = z.createElement("script");
            g.onload = g.onerror = g.onreadystatechange = function () {
                !g || g.readyState && !/loaded|complete/.test(g.readyState) || (g.onerror = g.onload = g.onreadystatechange = null, --S, S || k.setTimeout(T, 0), g.parentNode && g.parentNode.removeChild(g),
                    g = null)
            };
            g.type = "text/javascript";
            g.src = "https://cdn.rawgit.com/google/code-prettify/master/loader/lang-" + encodeURIComponent(H[l]) + ".js";
            N.insertBefore(g, N.firstChild)
        })(H[l]);
        for (var S = H.length, F = [], l = 0, B = P.length; l < B; ++l) F.push("https://cdn.rawgit.com/google/code-prettify/master/loader/skins/" + encodeURIComponent(P[l]) + ".css");
        F.push("/css/lightTheme.css");
        (function (g) {
            function r(l) {
                if (l !== x) {
                    var k = z.createElement("link");
                    k.rel = "stylesheet";
                    k.type =
                        "text/css";
                    l + 1 < x && (k.error = k.onerror = function () {
                        r(l + 1)
                    });
                    k.href = g[l];
                    N.appendChild(k)
                }
            }

            var x = g.length;
            r(0)
        })(F);
        var ca = function () {
            "undefined" !== typeof window && (window.PR_SHOULD_USE_CONTINUATION = !0);
            var g;
            (function () {
                function r(a) {
                    function d(e) {
                        var a = e.charCodeAt(0);
                        if (92 !== a) return a;
                        var c = e.charAt(1);
                        return (a = k[c]) ? a : "0" <= c && "7" >= c ? parseInt(e.substring(1), 8) : "u" === c || "x" === c ? parseInt(e.substring(2), 16) : e.charCodeAt(1)
                    }

                    function f(e) {
                        if (32 > e) return (16 > e ? "\\x0" : "\\x") + e.toString(16);
                        e = String.fromCharCode(e);
                        return "\\" === e || "-" === e || "]" === e || "^" === e ? "\\" + e : e
                    }

                    function c(e) {
                        var c = e.substring(1, e.length - 1).match(RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]", "g"));
                        e = [];
                        var a = "^" === c[0], b = ["["];
                        a && b.push("^");
                        for (var a = a ? 1 : 0, h = c.length; a < h; ++a) {
                            var m = c[a];
                            if (/\\[bdsw]/i.test(m)) b.push(m); else {
                                var m = d(m), p;
                                a + 2 < h && "-" === c[a + 1] ? (p = d(c[a + 2]), a += 2) : p = m;
                                e.push([m, p]);
                                65 > p || 122 < m || (65 > p || 90 < m || e.push([Math.max(65, m) | 32, Math.min(p, 90) | 32]), 97 > p || 122 < m ||
                                e.push([Math.max(97, m) & -33, Math.min(p, 122) & -33]))
                            }
                        }
                        e.sort(function (e, a) {
                            return e[0] - a[0] || a[1] - e[1]
                        });
                        c = [];
                        h = [];
                        for (a = 0; a < e.length; ++a) m = e[a], m[0] <= h[1] + 1 ? h[1] = Math.max(h[1], m[1]) : c.push(h = m);
                        for (a = 0; a < c.length; ++a) m = c[a], b.push(f(m[0])), m[1] > m[0] && (m[1] + 1 > m[0] && b.push("-"), b.push(f(m[1])));
                        b.push("]");
                        return b.join("")
                    }

                    function g(e) {
                        for (var a = e.source.match(RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)",
                            "g")), b = a.length, d = [], h = 0, m = 0; h < b; ++h) {
                            var p = a[h];
                            "(" === p ? ++m : "\\" === p.charAt(0) && (p = +p.substring(1)) && (p <= m ? d[p] = -1 : a[h] = f(p))
                        }
                        for (h = 1; h < d.length; ++h) -1 === d[h] && (d[h] = ++r);
                        for (m = h = 0; h < b; ++h) p = a[h], "(" === p ? (++m, d[m] || (a[h] = "(?:")) : "\\" === p.charAt(0) && (p = +p.substring(1)) && p <= m && (a[h] = "\\" + d[p]);
                        for (h = 0; h < b; ++h) "^" === a[h] && "^" !== a[h + 1] && (a[h] = "");
                        if (e.ignoreCase && A) for (h = 0; h < b; ++h) p = a[h], e = p.charAt(0), 2 <= p.length && "[" === e ? a[h] = c(p) : "\\" !== e && (a[h] = p.replace(/[a-zA-Z]/g, function (a) {
                            a = a.charCodeAt(0);
                            return "[" + String.fromCharCode(a & -33, a | 32) + "]"
                        }));
                        return a.join("")
                    }

                    for (var r = 0, A = !1, q = !1, I = 0, b = a.length; I < b; ++I) {
                        var t = a[I];
                        if (t.ignoreCase) q = !0; else if (/[a-z]/i.test(t.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ""))) {
                            A = !0;
                            q = !1;
                            break
                        }
                    }
                    for (var k = {b: 8, t: 9, n: 10, v: 11, f: 12, r: 13}, u = [], I = 0, b = a.length; I < b; ++I) {
                        t = a[I];
                        if (t.global || t.multiline) throw Error("" + t);
                        u.push("(?:" + g(t) + ")")
                    }
                    return new RegExp(u.join("|"), q ? "gi" : "g")
                }

                function l(a, d) {
                    function f(a) {
                        var b = a.nodeType;
                        if (1 == b) {
                            if (!c.test(a.className)) {
                                for (b =
                                         a.firstChild; b; b = b.nextSibling) f(b);
                                b = a.nodeName.toLowerCase();
                                if ("br" === b || "li" === b) g[q] = "\n", A[q << 1] = r++, A[q++ << 1 | 1] = a
                            }
                        } else if (3 == b || 4 == b) b = a.nodeValue, b.length && (b = d ? b.replace(/\r\n?/g, "\n") : b.replace(/[ \t\r\n]+/g, " "), g[q] = b, A[q << 1] = r, r += b.length, A[q++ << 1 | 1] = a)
                    }

                    var c = /(?:^|\s)nocode(?:\s|$)/, g = [], r = 0, A = [], q = 0;
                    f(a);
                    return {a: g.join("").replace(/\n$/, ""), c: A}
                }

                function k(a, d, f, c, g) {
                    f && (a = {h: a, l: 1, j: null, m: null, a: f, c: null, i: d, g: null}, c(a), g.push.apply(g, a.g))
                }

                function z(a) {
                    for (var d = void 0, f = a.firstChild; f; f =
                        f.nextSibling) var c = f.nodeType, d = 1 === c ? d ? a : f : 3 === c ? S.test(f.nodeValue) ? a : d : d;
                    return d === a ? void 0 : d
                }

                function E(a, d) {
                    function f(a) {
                        for (var q = a.i, r = a.h, b = [q, "pln"], t = 0, A = a.a.match(g) || [], u = {}, e = 0, l = A.length; e < l; ++e) {
                            var D = A[e], w = u[D], h = void 0, m;
                            if ("string" === typeof w) m = !1; else {
                                var p = c[D.charAt(0)];
                                if (p) h = D.match(p[1]), w = p[0]; else {
                                    for (m = 0; m < n; ++m) if (p = d[m], h = D.match(p[1])) {
                                        w = p[0];
                                        break
                                    }
                                    h || (w = "pln")
                                }
                                !(m = 5 <= w.length && "lang-" === w.substring(0, 5)) || h && "string" === typeof h[1] || (m = !1, w = "src");
                                m || (u[D] = w)
                            }
                            p = t;
                            t += D.length;
                            if (m) {
                                m = h[1];
                                var C = D.indexOf(m), G = C + m.length;
                                h[2] && (G = D.length - h[2].length, C = G - m.length);
                                w = w.substring(5);
                                k(r, q + p, D.substring(0, C), f, b);
                                k(r, q + p + C, m, F(w, m), b);
                                k(r, q + p + G, D.substring(G), f, b)
                            } else b.push(q + p, w)
                        }
                        a.g = b
                    }

                    var c = {}, g;
                    (function () {
                        for (var f = a.concat(d), q = [], k = {}, b = 0, t = f.length; b < t; ++b) {
                            var n = f[b], u = n[3];
                            if (u) for (var e = u.length; 0 <= --e;) c[u.charAt(e)] = n;
                            n = n[1];
                            u = "" + n;
                            k.hasOwnProperty(u) || (q.push(n), k[u] = null)
                        }
                        q.push(/[\0-\uffff]/);
                        g = r(q)
                    })();
                    var n = d.length;
                    return f
                }

                function v(a) {
                    var d =
                        [], f = [];
                    a.tripleQuotedStrings ? d.push(["str", /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, null, "'\""]) : a.multiLineStrings ? d.push(["str", /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, "'\"`"]) : d.push(["str", /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, "\"'"]);
                    a.verbatimStrings &&
                    f.push(["str", /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
                    var c = a.hashComments;
                    c && (a.cStyleComments ? (1 < c ? d.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, "#"]) : d.push(["com", /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#"]), f.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, null])) : d.push(["com", /^#[^\r\n]*/, null, "#"]));
                    a.cStyleComments && (f.push(["com", /^\/\/[^\r\n]*/, null]), f.push(["com", /^\/\*[\s\S]*?(?:\*\/|$)/,
                        null]));
                    if (c = a.regexLiterals) {
                        var g = (c = 1 < c ? "" : "\n\r") ? "." : "[\\S\\s]";
                        f.push(["lang-regex", RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(" + ("/(?=[^/*" + c + "])(?:[^/\\x5B\\x5C" + c + "]|\\x5C" + g + "|\\x5B(?:[^\\x5C\\x5D" + c + "]|\\x5C" + g + ")*(?:\\x5D|$))+/") + ")")])
                    }
                    (c = a.types) && f.push(["typ", c]);
                    c = ("" + a.keywords).replace(/^ | $/g, "");
                    c.length && f.push(["kwd",
                        new RegExp("^(?:" + c.replace(/[\s,]+/g, "|") + ")\\b"), null]);
                    d.push(["pln", /^\s+/, null, " \r\n\t\u00a0"]);
                    c = "^.[^\\s\\w.$@'\"`/\\\\]*";
                    a.regexLiterals && (c += "(?!s*/)");
                    f.push(["lit", /^@[a-z_$][a-z_$@0-9]*/i, null], ["typ", /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], ["pln", /^[a-z_$][a-z_$@0-9]*/i, null], ["lit", /^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i, null, "0123456789"], ["pln", /^\\[\s\S]?/, null], ["pun", new RegExp(c), null]);
                    return E(d, f)
                }

                function B(a, d, f) {
                    function c(a) {
                        var b =
                            a.nodeType;
                        if (1 == b && !r.test(a.className)) if ("br" === a.nodeName.toLowerCase()) g(a), a.parentNode && a.parentNode.removeChild(a); else for (a = a.firstChild; a; a = a.nextSibling) c(a); else if ((3 == b || 4 == b) && f) {
                            var e = a.nodeValue, d = e.match(n);
                            d && (b = e.substring(0, d.index), a.nodeValue = b, (e = e.substring(d.index + d[0].length)) && a.parentNode.insertBefore(q.createTextNode(e), a.nextSibling), g(a), b || a.parentNode.removeChild(a))
                        }
                    }

                    function g(a) {
                        function c(a, b) {
                            var e = b ? a.cloneNode(!1) : a, p = a.parentNode;
                            if (p) {
                                var p = c(p, 1), d = a.nextSibling;
                                p.appendChild(e);
                                for (var f = d; f; f = d) d = f.nextSibling, p.appendChild(f)
                            }
                            return e
                        }

                        for (; !a.nextSibling;) if (a = a.parentNode, !a) return;
                        a = c(a.nextSibling, 0);
                        for (var e; (e = a.parentNode) && 1 === e.nodeType;) a = e;
                        b.push(a)
                    }

                    for (var r = /(?:^|\s)nocode(?:\s|$)/, n = /\r\n?|\n/, q = a.ownerDocument, k = q.createElement("li"); a.firstChild;) k.appendChild(a.firstChild);
                    for (var b = [k], t = 0; t < b.length; ++t) c(b[t]);
                    d === (d | 0) && b[0].setAttribute("value", d);
                    var l = q.createElement("ol");
                    l.className = "linenums";
                    d = Math.max(0, d - 1 | 0) || 0;
                    for (var t =
                        0, u = b.length; t < u; ++t) k = b[t], k.className = "L" + (t + d) % 10, k.firstChild || k.appendChild(q.createTextNode("\u00a0")), l.appendChild(k);
                    a.appendChild(l)
                }

                function n(a, d) {
                    for (var f = d.length; 0 <= --f;) {
                        var c = d[f];
                        V.hasOwnProperty(c) ? Q.console && console.warn("cannot override language handler %s", c) : V[c] = a
                    }
                }

                function F(a, d) {
                    a && V.hasOwnProperty(a) || (a = /^\s*</.test(d) ? "default-markup" : "default-code");
                    return V[a]
                }

                function H(a) {
                    var d = a.j;
                    try {
                        var f = l(a.h, a.l), c = f.a;
                        a.a = c;
                        a.c = f.c;
                        a.i = 0;
                        F(d, c)(a);
                        var g = /\bMSIE\s(\d+)/.exec(navigator.userAgent),
                            g = g && 8 >= +g[1], d = /\n/g, r = a.a, k = r.length, f = 0, q = a.c, n = q.length, c = 0,
                            b = a.g, t = b.length, v = 0;
                        b[t] = k;
                        var u, e;
                        for (e = u = 0; e < t;) b[e] !== b[e + 2] ? (b[u++] = b[e++], b[u++] = b[e++]) : e += 2;
                        t = u;
                        for (e = u = 0; e < t;) {
                            for (var x = b[e], z = b[e + 1], w = e + 2; w + 2 <= t && b[w + 1] === z;) w += 2;
                            b[u++] = x;
                            b[u++] = z;
                            e = w
                        }
                        b.length = u;
                        var h = a.h;
                        a = "";
                        h && (a = h.style.display, h.style.display = "none");
                        try {
                            for (; c < n;) {
                                var m = q[c + 2] || k, p = b[v + 2] || k, w = Math.min(m, p), C = q[c + 1], G;
                                if (1 !== C.nodeType && (G = r.substring(f, w))) {
                                    g && (G = G.replace(d, "\r"));
                                    C.nodeValue = G;
                                    var Z = C.ownerDocument,
                                        W = Z.createElement("span");
                                    W.className = b[v + 1];
                                    var B = C.parentNode;
                                    B.replaceChild(W, C);
                                    W.appendChild(C);
                                    f < m && (q[c + 1] = C = Z.createTextNode(r.substring(w, m)), B.insertBefore(C, W.nextSibling))
                                }
                                f = w;
                                f >= m && (c += 2);
                                f >= p && (v += 2)
                            }
                        } finally {
                            h && (h.style.display = a)
                        }
                    } catch (y) {
                        Q.console && console.log(y && y.stack || y)
                    }
                }

                var Q = "undefined" !== typeof window ? window : {}, J = ["break,continue,do,else,for,if,return,while"],
                    K = [[J, "auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,restrict,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
                        "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],
                    R = [K, "alignas,alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,noexcept,noreturn,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
                    L = [K, "abstract,assert,boolean,byte,extends,finally,final,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],
                    M = [K, "abstract,add,alias,as,ascending,async,await,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,get,global,group,implicit,in,interface,internal,into,is,join,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,remove,sbyte,sealed,select,set,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,value,var,virtual,where,yield"],
                    K = [K, "abstract,async,await,constructor,debugger,enum,eval,export,from,function,get,import,implements,instanceof,interface,let,null,of,set,undefined,var,with,yield,Infinity,NaN"],
                    N = [J, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
                    O = [J, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
                    J = [J, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
                    P = /^(DIR|FILE|array|vector|(de|priority_)?queue|(forward_)?list|stack|(const_)?(reverse_)?iterator|(unordered_)?(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
                    S = /\S/, T = v({
                        keywords: [R, M, L, K, "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END", N, O, J],
                        hashComments: !0,
                        cStyleComments: !0,
                        multiLineStrings: !0,
                        regexLiterals: !0
                    }), V = {};
                n(T, ["default-code"]);
                n(E([], [["pln", /^[^<?]+/], ["dec", /^<!\w[^>]*(?:>|$)/], ["com", /^<\!--[\s\S]*?(?:-\->|$)/], ["lang-", /^<\?([\s\S]+?)(?:\?>|$)/], ["lang-", /^<%([\s\S]+?)(?:%>|$)/], ["pun", /^(?:<[%?]|[%?]>)/], ["lang-",
                    /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], ["lang-js", /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], ["lang-css", /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], ["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]]), "default-markup htm html mxml xhtml xml xsl".split(" "));
                n(E([["pln", /^[\s]+/, null, " \t\r\n"], ["atv", /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, "\"'"]], [["tag", /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], ["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], ["lang-uq.val", /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
                    ["pun", /^[=<>\/]+/], ["lang-js", /^on\w+\s*=\s*\"([^\"]+)\"/i], ["lang-js", /^on\w+\s*=\s*\'([^\']+)\'/i], ["lang-js", /^on\w+\s*=\s*([^\"\'>\s]+)/i], ["lang-css", /^style\s*=\s*\"([^\"]+)\"/i], ["lang-css", /^style\s*=\s*\'([^\']+)\'/i], ["lang-css", /^style\s*=\s*([^\"\'>\s]+)/i]]), ["in.tag"]);
                n(E([], [["atv", /^[\s\S]+/]]), ["uq.val"]);
                n(v({keywords: R, hashComments: !0, cStyleComments: !0, types: P}), "c cc cpp cxx cyc m".split(" "));
                n(v({keywords: "null,true,false"}), ["json"]);
                n(v({
                    keywords: M, hashComments: !0, cStyleComments: !0,
                    verbatimStrings: !0, types: P
                }), ["cs"]);
                n(v({keywords: L, cStyleComments: !0}), ["java"]);
                n(v({keywords: J, hashComments: !0, multiLineStrings: !0}), ["bash", "bsh", "csh", "sh"]);
                n(v({
                    keywords: N,
                    hashComments: !0,
                    multiLineStrings: !0,
                    tripleQuotedStrings: !0
                }), ["cv", "py", "python"]);
                n(v({
                        keywords: "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
                        hashComments: !0,
                        multiLineStrings: !0,
                        regexLiterals: 2
                    }),
                    ["perl", "pl", "pm"]);
                n(v({keywords: O, hashComments: !0, multiLineStrings: !0, regexLiterals: !0}), ["rb", "ruby"]);
                n(v({keywords: K, cStyleComments: !0, regexLiterals: !0}), ["javascript", "js", "ts", "typescript"]);
                n(v({
                    keywords: "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",
                    hashComments: 3,
                    cStyleComments: !0,
                    multilineStrings: !0,
                    tripleQuotedStrings: !0,
                    regexLiterals: !0
                }), ["coffee"]);
                n(E([], [["str", /^[\s\S]+/]]),
                    ["regex"]);
                var U = Q.PR = {
                    createSimpleLexer: E,
                    registerLangHandler: n,
                    sourceDecorator: v,
                    PR_ATTRIB_NAME: "atn",
                    PR_ATTRIB_VALUE: "atv",
                    PR_COMMENT: "com",
                    PR_DECLARATION: "dec",
                    PR_KEYWORD: "kwd",
                    PR_LITERAL: "lit",
                    PR_NOCODE: "nocode",
                    PR_PLAIN: "pln",
                    PR_PUNCTUATION: "pun",
                    PR_SOURCE: "src",
                    PR_STRING: "str",
                    PR_TAG: "tag",
                    PR_TYPE: "typ",
                    prettyPrintOne: function (a, d, f) {
                        f = f || !1;
                        d = d || null;
                        var c = document.createElement("div");
                        c.innerHTML = "<pre>" + a + "</pre>";
                        c = c.firstChild;
                        f && B(c, f, !0);
                        H({j: d, m: f, h: c, l: 1, a: null, i: null, c: null, g: null});
                        return c.innerHTML
                    },
                    prettyPrint: g = function (a, d) {
                        function f() {
                            for (var c = Q.PR_SHOULD_USE_CONTINUATION ? b.now() + 250 : Infinity; t < r.length && b.now() < c; t++) {
                                for (var d = r[t], k = h, n = d; n = n.previousSibling;) {
                                    var q = n.nodeType, l = (7 === q || 8 === q) && n.nodeValue;
                                    if (l ? !/^\??prettify\b/.test(l) : 3 !== q || /\S/.test(n.nodeValue)) break;
                                    if (l) {
                                        k = {};
                                        l.replace(/\b(\w+)=([\w:.%+-]+)/g, function (a, b, c) {
                                            k[b] = c
                                        });
                                        break
                                    }
                                }
                                n = d.className;
                                if ((k !== h || u.test(n)) && !e.test(n)) {
                                    q = !1;
                                    for (l = d.parentNode; l; l = l.parentNode) if (w.test(l.tagName) && l.className &&
                                        u.test(l.className)) {
                                        q = !0;
                                        break
                                    }
                                    if (!q) {
                                        d.className += " prettyprinted";
                                        q = k.lang;
                                        if (!q) {
                                            var q = n.match(v), A;
                                            !q && (A = z(d)) && D.test(A.tagName) && (q = A.className.match(v));
                                            q && (q = q[1])
                                        }
                                        if (x.test(d.tagName)) l = 1; else var l = d.currentStyle, y = g.defaultView,
                                            l = (l = l ? l.whiteSpace : y && y.getComputedStyle ? y.getComputedStyle(d, null).getPropertyValue("white-space") : 0) && "pre" === l.substring(0, 3);
                                        y = k.linenums;
                                        (y = "true" === y || +y) || (y = (y = n.match(/\blinenums\b(?::(\d+))?/)) ? y[1] && y[1].length ? +y[1] : !0 : !1);
                                        y && B(d, y, l);
                                        H({
                                            j: q, h: d, m: y,
                                            l: l, a: null, i: null, c: null, g: null
                                        })
                                    }
                                }
                            }
                            t < r.length ? Q.setTimeout(f, 250) : "function" === typeof a && a()
                        }

                        for (var c = d || document.body, g = c.ownerDocument || document, c = [c.getElementsByTagName("pre"), c.getElementsByTagName("code"), c.getElementsByTagName("xmp")], r = [], k = 0; k < c.length; ++k) for (var n = 0, l = c[k].length; n < l; ++n) r.push(c[k][n]);
                        var c = null, b = Date;
                        b.now || (b = {
                            now: function () {
                                return +new Date
                            }
                        });
                        var t = 0, v = /\blang(?:uage)?-([\w.]+)(?!\S)/, u = /\bprettyprint\b/, e = /\bprettyprinted\b/,
                            x = /pre|xmp/i, D = /^code$/i, w = /^(?:pre|code|xmp)$/i,
                            h = {};
                        f()
                    }
                }, R = Q.define;
                "function" === typeof R && R.amd && R("google-code-prettify", [], function () {
                    return U
                })
            })();
            return g
        }();
        S || k.setTimeout(T, 0)
    })();
}();