UNPKG

@hsorby/vue3-highlightjs

Version:

Syntax highlighting with highlight.js for Vue.js 3.x

947 lines 1.43 MB
var _r = { exports: {} }; function dr(n) { return n instanceof Map ? n.clear = n.delete = n.set = function() { throw new Error("map is read-only"); } : n instanceof Set && (n.add = n.clear = n.delete = function() { throw new Error("set is read-only"); }), Object.freeze(n), Object.getOwnPropertyNames(n).forEach(function(e) { var t = n[e]; typeof t == "object" && !Object.isFrozen(t) && dr(t); }), n; } _r.exports = dr; _r.exports.default = dr; class fr { constructor(e) { e.data === void 0 && (e.data = {}), this.data = e.data, this.isMatchIgnored = !1; } ignoreMatch() { this.isMatchIgnored = !0; } } function sl(n) { return n.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#x27;"); } function _e(n, ...e) { const t = /* @__PURE__ */ Object.create(null); for (const a in n) t[a] = n[a]; return e.forEach(function(a) { for (const i in a) t[i] = a[i]; }), t; } const Dc = "</span>", Or = (n) => !!n.scope || n.sublanguage && n.language, hc = (n, { prefix: e }) => { if (n.includes(".")) { const t = n.split("."); return [ `${e}${t.shift()}`, ...t.map((a, i) => `${a}${"_".repeat(i + 1)}`) ].join(" "); } return `${e}${n}`; }; class Mc { constructor(e, t) { this.buffer = "", this.classPrefix = t.classPrefix, e.walk(this); } addText(e) { this.buffer += sl(e); } openNode(e) { if (!Or(e)) return; let t = ""; e.sublanguage ? t = `language-${e.language}` : t = hc(e.scope, { prefix: this.classPrefix }), this.span(t); } closeNode(e) { !Or(e) || (this.buffer += Dc); } value() { return this.buffer; } span(e) { this.buffer += `<span class="${e}">`; } } const Ir = (n = {}) => { const e = { children: [] }; return Object.assign(e, n), e; }; class ur { constructor() { this.rootNode = Ir(), this.stack = [this.rootNode]; } get top() { return this.stack[this.stack.length - 1]; } get root() { return this.rootNode; } add(e) { this.top.children.push(e); } openNode(e) { const t = Ir({ scope: e }); this.add(t), this.stack.push(t); } closeNode() { if (this.stack.length > 1) return this.stack.pop(); } closeAllNodes() { for (; this.closeNode(); ) ; } toJSON() { return JSON.stringify(this.rootNode, null, 4); } walk(e) { return this.constructor._walk(e, this.rootNode); } static _walk(e, t) { return typeof t == "string" ? e.addText(t) : t.children && (e.openNode(t), t.children.forEach((a) => this._walk(e, a)), e.closeNode(t)), e; } static _collapse(e) { typeof e != "string" && (!e.children || (e.children.every((t) => typeof t == "string") ? e.children = [e.children.join("")] : e.children.forEach((t) => { ur._collapse(t); }))); } } class Lc extends ur { constructor(e) { super(), this.options = e; } addKeyword(e, t) { e !== "" && (this.openNode(t), this.addText(e), this.closeNode()); } addText(e) { e !== "" && this.add(e); } addSublanguage(e, t) { const a = e.root; a.sublanguage = !0, a.language = t, this.add(a); } toHTML() { return new Mc(this, this.options).value(); } finalize() { return !0; } } function Ne(n) { return n ? typeof n == "string" ? n : n.source : null; } function ll(n) { return pe("(?=", n, ")"); } function xc(n) { return pe("(?:", n, ")*"); } function Pc(n) { return pe("(?:", n, ")?"); } function pe(...n) { return n.map((t) => Ne(t)).join(""); } function wc(n) { const e = n[n.length - 1]; return typeof e == "object" && e.constructor === Object ? (n.splice(n.length - 1, 1), e) : {}; } function Er(...n) { const e = wc(n); return "(" + (e.capture ? "" : "?:") + n.map((a) => Ne(a)).join("|") + ")"; } function cl(n) { return new RegExp(n.toString() + "|").exec("").length - 1; } function kc(n, e) { const t = n && n.exec(e); return t && t.index === 0; } const Uc = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; function mr(n, { joinWith: e }) { let t = 0; return n.map((a) => { t += 1; const i = t; let o = Ne(a), s = ""; for (; o.length > 0; ) { const r = Uc.exec(o); if (!r) { s += o; break; } s += o.substring(0, r.index), o = o.substring(r.index + r[0].length), r[0][0] === "\\" && r[1] ? s += "\\" + String(Number(r[1]) + i) : (s += r[0], r[0] === "(" && t++); } return s; }).map((a) => `(${a})`).join(e); } const Fc = /\b\B/, _l = "[a-zA-Z]\\w*", pr = "[a-zA-Z_]\\w*", dl = "\\b\\d+(\\.\\d+)?", ul = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", El = "\\b(0b[01]+)", Bc = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", Gc = (n = {}) => { const e = /^#![ ]*\//; return n.binary && (n.begin = pe( e, /.*\b/, n.binary, /\b.*/ )), _e({ scope: "meta", begin: e, end: /$/, relevance: 0, "on:begin": (t, a) => { t.index !== 0 && a.ignoreMatch(); } }, n); }, Ce = { begin: "\\\\[\\s\\S]", relevance: 0 }, Yc = { scope: "string", begin: "'", end: "'", illegal: "\\n", contains: [Ce] }, qc = { scope: "string", begin: '"', end: '"', illegal: "\\n", contains: [Ce] }, Hc = { begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ }, De = function(n, e, t = {}) { const a = _e( { scope: "comment", begin: n, end: e, contains: [] }, t ); a.contains.push({ scope: "doctag", begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, excludeBegin: !0, relevance: 0 }); const i = Er( "I", "a", "is", "so", "us", "to", "at", "if", "in", "it", "on", /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, /[A-Za-z]+[-][a-z]+/, /[A-Za-z][a-z]{2,}/ ); return a.contains.push( { begin: pe( /[ ]+/, "(", i, /[.]?[:]?([.][ ]|[ ])/, "){3}" ) } ), a; }, Vc = De("//", "$"), Wc = De("/\\*", "\\*/"), zc = De("#", "$"), Kc = { scope: "number", begin: dl, relevance: 0 }, $c = { scope: "number", begin: ul, relevance: 0 }, Qc = { scope: "number", begin: El, relevance: 0 }, Xc = { begin: /(?=\/[^/\n]*\/)/, contains: [{ scope: "regexp", begin: /\//, end: /\/[gimuy]*/, illegal: /\n/, contains: [ Ce, { begin: /\[/, end: /\]/, relevance: 0, contains: [Ce] } ] }] }, Zc = { scope: "title", begin: _l, relevance: 0 }, Jc = { scope: "title", begin: pr, relevance: 0 }, jc = { begin: "\\.\\s*" + pr, relevance: 0 }, e_ = function(n) { return Object.assign( n, { "on:begin": (e, t) => { t.data._beginMatch = e[1]; }, "on:end": (e, t) => { t.data._beginMatch !== e[1] && t.ignoreMatch(); } } ); }; var ve = /* @__PURE__ */ Object.freeze({ __proto__: null, MATCH_NOTHING_RE: Fc, IDENT_RE: _l, UNDERSCORE_IDENT_RE: pr, NUMBER_RE: dl, C_NUMBER_RE: ul, BINARY_NUMBER_RE: El, RE_STARTERS_RE: Bc, SHEBANG: Gc, BACKSLASH_ESCAPE: Ce, APOS_STRING_MODE: Yc, QUOTE_STRING_MODE: qc, PHRASAL_WORDS_MODE: Hc, COMMENT: De, C_LINE_COMMENT_MODE: Vc, C_BLOCK_COMMENT_MODE: Wc, HASH_COMMENT_MODE: zc, NUMBER_MODE: Kc, C_NUMBER_MODE: $c, BINARY_NUMBER_MODE: Qc, REGEXP_MODE: Xc, TITLE_MODE: Zc, UNDERSCORE_TITLE_MODE: Jc, METHOD_GUARD: jc, END_SAME_AS_BEGIN: e_ }); function t_(n, e) { n.input[n.index - 1] === "." && e.ignoreMatch(); } function n_(n, e) { n.className !== void 0 && (n.scope = n.className, delete n.className); } function a_(n, e) { !e || !n.beginKeywords || (n.begin = "\\b(" + n.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", n.__beforeBegin = t_, n.keywords = n.keywords || n.beginKeywords, delete n.beginKeywords, n.relevance === void 0 && (n.relevance = 0)); } function r_(n, e) { !Array.isArray(n.illegal) || (n.illegal = Er(...n.illegal)); } function i_(n, e) { if (!!n.match) { if (n.begin || n.end) throw new Error("begin & end are not supported with match"); n.begin = n.match, delete n.match; } } function o_(n, e) { n.relevance === void 0 && (n.relevance = 1); } const s_ = (n, e) => { if (!n.beforeMatch) return; if (n.starts) throw new Error("beforeMatch cannot be used with starts"); const t = Object.assign({}, n); Object.keys(n).forEach((a) => { delete n[a]; }), n.keywords = t.keywords, n.begin = pe(t.beforeMatch, ll(t.begin)), n.starts = { relevance: 0, contains: [ Object.assign(t, { endsParent: !0 }) ] }, n.relevance = 0, delete t.beforeMatch; }, l_ = [ "of", "and", "for", "in", "not", "or", "if", "then", "parent", "list", "value" ], c_ = "keyword"; function ml(n, e, t = c_) { const a = /* @__PURE__ */ Object.create(null); return typeof n == "string" ? i(t, n.split(" ")) : Array.isArray(n) ? i(t, n) : Object.keys(n).forEach(function(o) { Object.assign( a, ml(n[o], e, o) ); }), a; function i(o, s) { e && (s = s.map((r) => r.toLowerCase())), s.forEach(function(r) { const l = r.split("|"); a[l[0]] = [o, __(l[0], l[1])]; }); } } function __(n, e) { return e ? Number(e) : d_(n) ? 0 : 1; } function d_(n) { return l_.includes(n.toLowerCase()); } const Ar = {}, me = (n) => { console.error(n); }, vr = (n, ...e) => { console.log(`WARN: ${n}`, ...e); }, ge = (n, e) => { Ar[`${n}/${e}`] || (console.log(`Deprecated as of ${n}. ${e}`), Ar[`${n}/${e}`] = !0); }, ye = new Error(); function pl(n, e, { key: t }) { let a = 0; const i = n[t], o = {}, s = {}; for (let r = 1; r <= e.length; r++) s[r + a] = i[r], o[r + a] = !0, a += cl(e[r - 1]); n[t] = s, n[t]._emit = o, n[t]._multi = !0; } function u_(n) { if (!!Array.isArray(n.begin)) { if (n.skip || n.excludeBegin || n.returnBegin) throw me("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), ye; if (typeof n.beginScope != "object" || n.beginScope === null) throw me("beginScope must be object"), ye; pl(n, n.begin, { key: "beginScope" }), n.begin = mr(n.begin, { joinWith: "" }); } } function E_(n) { if (!!Array.isArray(n.end)) { if (n.skip || n.excludeEnd || n.returnEnd) throw me("skip, excludeEnd, returnEnd not compatible with endScope: {}"), ye; if (typeof n.endScope != "object" || n.endScope === null) throw me("endScope must be object"), ye; pl(n, n.end, { key: "endScope" }), n.end = mr(n.end, { joinWith: "" }); } } function m_(n) { n.scope && typeof n.scope == "object" && n.scope !== null && (n.beginScope = n.scope, delete n.scope); } function p_(n) { m_(n), typeof n.beginScope == "string" && (n.beginScope = { _wrap: n.beginScope }), typeof n.endScope == "string" && (n.endScope = { _wrap: n.endScope }), u_(n), E_(n); } function S_(n) { function e(s, r) { return new RegExp( Ne(s), "m" + (n.case_insensitive ? "i" : "") + (n.unicodeRegex ? "u" : "") + (r ? "g" : "") ); } class t { constructor() { this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0; } addRule(r, l) { l.position = this.position++, this.matchIndexes[this.matchAt] = l, this.regexes.push([l, r]), this.matchAt += cl(r) + 1; } compile() { this.regexes.length === 0 && (this.exec = () => null); const r = this.regexes.map((l) => l[1]); this.matcherRe = e(mr(r, { joinWith: "|" }), !0), this.lastIndex = 0; } exec(r) { this.matcherRe.lastIndex = this.lastIndex; const l = this.matcherRe.exec(r); if (!l) return null; const c = l.findIndex((d, E) => E > 0 && d !== void 0), _ = this.matchIndexes[c]; return l.splice(0, c), Object.assign(l, _); } } class a { constructor() { this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0; } getMatcher(r) { if (this.multiRegexes[r]) return this.multiRegexes[r]; const l = new t(); return this.rules.slice(r).forEach(([c, _]) => l.addRule(c, _)), l.compile(), this.multiRegexes[r] = l, l; } resumingScanAtSamePosition() { return this.regexIndex !== 0; } considerAll() { this.regexIndex = 0; } addRule(r, l) { this.rules.push([r, l]), l.type === "begin" && this.count++; } exec(r) { const l = this.getMatcher(this.regexIndex); l.lastIndex = this.lastIndex; let c = l.exec(r); if (this.resumingScanAtSamePosition() && !(c && c.index === this.lastIndex)) { const _ = this.getMatcher(0); _.lastIndex = this.lastIndex + 1, c = _.exec(r); } return c && (this.regexIndex += c.position + 1, this.regexIndex === this.count && this.considerAll()), c; } } function i(s) { const r = new a(); return s.contains.forEach((l) => r.addRule(l.begin, { rule: l, type: "begin" })), s.terminatorEnd && r.addRule(s.terminatorEnd, { type: "end" }), s.illegal && r.addRule(s.illegal, { type: "illegal" }), r; } function o(s, r) { const l = s; if (s.isCompiled) return l; [ n_, i_, p_, s_ ].forEach((_) => _(s, r)), n.compilerExtensions.forEach((_) => _(s, r)), s.__beforeBegin = null, [ a_, r_, o_ ].forEach((_) => _(s, r)), s.isCompiled = !0; let c = null; return typeof s.keywords == "object" && s.keywords.$pattern && (s.keywords = Object.assign({}, s.keywords), c = s.keywords.$pattern, delete s.keywords.$pattern), c = c || /\w+/, s.keywords && (s.keywords = ml(s.keywords, n.case_insensitive)), l.keywordPatternRe = e(c, !0), r && (s.begin || (s.begin = /\B|\b/), l.beginRe = e(l.begin), !s.end && !s.endsWithParent && (s.end = /\B|\b/), s.end && (l.endRe = e(l.end)), l.terminatorEnd = Ne(l.end) || "", s.endsWithParent && r.terminatorEnd && (l.terminatorEnd += (s.end ? "|" : "") + r.terminatorEnd)), s.illegal && (l.illegalRe = e(s.illegal)), s.contains || (s.contains = []), s.contains = [].concat(...s.contains.map(function(_) { return g_(_ === "self" ? s : _); })), s.contains.forEach(function(_) { o(_, l); }), s.starts && o(s.starts, r), l.matcher = i(l), l; } if (n.compilerExtensions || (n.compilerExtensions = []), n.contains && n.contains.includes("self")) throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); return n.classNameAliases = _e(n.classNameAliases || {}), o(n); } function Sl(n) { return n ? n.endsWithParent || Sl(n.starts) : !1; } function g_(n) { return n.variants && !n.cachedVariants && (n.cachedVariants = n.variants.map(function(e) { return _e(n, { variants: null }, e); })), n.cachedVariants ? n.cachedVariants : Sl(n) ? _e(n, { starts: n.starts ? _e(n.starts) : null }) : Object.isFrozen(n) ? _e(n) : n; } var T_ = "11.6.0"; class b_ extends Error { constructor(e, t) { super(e), this.name = "HTMLInjectionError", this.html = t; } } const Le = sl, yr = _e, Dr = Symbol("nomatch"), R_ = 7, N_ = function(n) { const e = /* @__PURE__ */ Object.create(null), t = /* @__PURE__ */ Object.create(null), a = []; let i = !0; const o = "Could not find the language '{}', did you forget to load/include a language module?", s = { disableAutodetect: !0, name: "Plain text", contains: [] }; let r = { ignoreUnescapedHTML: !1, throwUnescapedHTML: !1, noHighlightRe: /^(no-?highlight)$/i, languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, classPrefix: "hljs-", cssSelector: "pre code", languages: null, __emitter: Lc }; function l(b) { return r.noHighlightRe.test(b); } function c(b) { let v = b.className + " "; v += b.parentNode ? b.parentNode.className : ""; const h = r.languageDetectRe.exec(v); if (h) { const w = M(h[1]); return w || (vr(o.replace("{}", h[1])), vr("Falling back to no-highlight mode for this block.", b)), w ? h[1] : "no-highlight"; } return v.split(/\s+/).find((w) => l(w) || M(w)); } function _(b, v, h) { let w = "", F = ""; typeof v == "object" ? (w = b, h = v.ignoreIllegals, F = v.language) : (ge("10.7.0", "highlight(lang, code, ...args) has been deprecated."), ge("10.7.0", `Please use highlight(code, options) instead. https://github.com/highlightjs/highlight.js/issues/2277`), F = b, w = v), h === void 0 && (h = !0); const K = { code: w, language: F }; G("before:highlight", K); const j = K.result ? K.result : d(K.language, K.code, h); return j.code = K.code, G("after:highlight", j), j; } function d(b, v, h, w) { const F = /* @__PURE__ */ Object.create(null); function K(I, y) { return I.keywords[y]; } function j() { if (!x.keywords) { J.addText(H); return; } let I = 0; x.keywordPatternRe.lastIndex = 0; let y = x.keywordPatternRe.exec(H), P = ""; for (; y; ) { P += H.substring(I, y.index); const U = ie.case_insensitive ? y[0].toLowerCase() : y[0], ee = K(x, U); if (ee) { const [oe, be] = ee; if (J.addText(P), P = "", F[U] = (F[U] || 0) + 1, F[U] <= R_ && (ce += be), oe.startsWith("_")) P += y[0]; else { const Re = ie.classNameAliases[oe] || oe; J.addKeyword(y[0], Re); } } else P += y[0]; I = x.keywordPatternRe.lastIndex, y = x.keywordPatternRe.exec(H); } P += H.substring(I), J.addText(P); } function te() { if (H === "") return; let I = null; if (typeof x.subLanguage == "string") { if (!e[x.subLanguage]) { J.addText(H); return; } I = d(x.subLanguage, H, !0, Se[x.subLanguage]), Se[x.subLanguage] = I._top; } else I = m(H, x.subLanguage.length ? x.subLanguage : null); x.relevance > 0 && (ce += I.relevance), J.addSublanguage(I._emitter, I.language); } function Y() { x.subLanguage != null ? te() : j(), H = ""; } function W(I, y) { let P = 1; const U = y.length - 1; for (; P <= U; ) { if (!I._emit[P]) { P++; continue; } const ee = ie.classNameAliases[I[P]] || I[P], oe = y[P]; ee ? J.addKeyword(oe, ee) : (H = oe, j(), H = ""), P++; } } function q(I, y) { return I.scope && typeof I.scope == "string" && J.openNode(ie.classNameAliases[I.scope] || I.scope), I.beginScope && (I.beginScope._wrap ? (J.addKeyword(H, ie.classNameAliases[I.beginScope._wrap] || I.beginScope._wrap), H = "") : I.beginScope._multi && (W(I.beginScope, y), H = "")), x = Object.create(I, { parent: { value: x } }), x; } function B(I, y, P) { let U = kc(I.endRe, P); if (U) { if (I["on:end"]) { const ee = new fr(I); I["on:end"](y, ee), ee.isMatchIgnored && (U = !1); } if (U) { for (; I.endsParent && I.parent; ) I = I.parent; return I; } } if (I.endsWithParent) return B(I.parent, y, P); } function $(I) { return x.matcher.regexIndex === 0 ? (H += I[0], 1) : (Ee = !0, 0); } function Z(I) { const y = I[0], P = I.rule, U = new fr(P), ee = [P.__beforeBegin, P["on:begin"]]; for (const oe of ee) if (!!oe && (oe(I, U), U.isMatchIgnored)) return $(y); return P.skip ? H += y : (P.excludeBegin && (H += y), Y(), !P.returnBegin && !P.excludeBegin && (H = y)), q(P, I), P.returnBegin ? 0 : y.length; } function ne(I) { const y = I[0], P = v.substring(I.index), U = B(x, I, P); if (!U) return Dr; const ee = x; x.endScope && x.endScope._wrap ? (Y(), J.addKeyword(y, x.endScope._wrap)) : x.endScope && x.endScope._multi ? (Y(), W(x.endScope, I)) : ee.skip ? H += y : (ee.returnEnd || ee.excludeEnd || (H += y), Y(), ee.excludeEnd && (H = y)); do x.scope && J.closeNode(), !x.skip && !x.subLanguage && (ce += x.relevance), x = x.parent; while (x !== U.parent); return U.starts && q(U.starts, I), ee.returnEnd ? 0 : y.length; } function re() { const I = []; for (let y = x; y !== ie; y = y.parent) y.scope && I.unshift(y.scope); I.forEach((y) => J.openNode(y)); } let se = {}; function le(I, y) { const P = y && y[0]; if (H += I, P == null) return Y(), 0; if (se.type === "begin" && y.type === "end" && se.index === y.index && P === "") { if (H += v.slice(y.index, y.index + 1), !i) { const U = new Error(`0 width match regex (${b})`); throw U.languageName = b, U.badRule = se.rule, U; } return 1; } if (se = y, y.type === "begin") return Z(y); if (y.type === "illegal" && !h) { const U = new Error('Illegal lexeme "' + P + '" for mode "' + (x.scope || "<unnamed>") + '"'); throw U.mode = x, U; } else if (y.type === "end") { const U = ne(y); if (U !== Dr) return U; } if (y.type === "illegal" && P === "") return 1; if (ue > 1e5 && ue > y.index * 3) throw new Error("potential infinite loop, way more iterations than matches"); return H += P, P.length; } const ie = M(b); if (!ie) throw me(o.replace("{}", b)), new Error('Unknown language: "' + b + '"'); const Te = S_(ie); let de = "", x = w || Te; const Se = {}, J = new r.__emitter(r); re(); let H = "", ce = 0, ae = 0, ue = 0, Ee = !1; try { for (x.matcher.considerAll(); ; ) { ue++, Ee ? Ee = !1 : x.matcher.considerAll(), x.matcher.lastIndex = ae; const I = x.matcher.exec(v); if (!I) break; const y = v.substring(ae, I.index), P = le(y, I); ae = I.index + P; } return le(v.substring(ae)), J.closeAllNodes(), J.finalize(), de = J.toHTML(), { language: b, value: de, relevance: ce, illegal: !1, _emitter: J, _top: x }; } catch (I) { if (I.message && I.message.includes("Illegal")) return { language: b, value: Le(v), illegal: !0, relevance: 0, _illegalBy: { message: I.message, index: ae, context: v.slice(ae - 100, ae + 100), mode: I.mode, resultSoFar: de }, _emitter: J }; if (i) return { language: b, value: Le(v), illegal: !1, relevance: 0, errorRaised: I, _emitter: J, _top: x }; throw I; } } function E(b) { const v = { value: Le(b), illegal: !1, relevance: 0, _top: s, _emitter: new r.__emitter(r) }; return v._emitter.addText(b), v; } function m(b, v) { v = v || r.languages || Object.keys(e); const h = E(b), w = v.filter(M).filter(D).map( (Y) => d(Y, b, !1) ); w.unshift(h); const F = w.sort((Y, W) => { if (Y.relevance !== W.relevance) return W.relevance - Y.relevance; if (Y.language && W.language) { if (M(Y.language).supersetOf === W.language) return 1; if (M(W.language).supersetOf === Y.language) return -1; } return 0; }), [K, j] = F, te = K; return te.secondBest = j, te; } function p(b, v, h) { const w = v && t[v] || h; b.classList.add("hljs"), b.classList.add(`language-${w}`); } function S(b) { let v = null; const h = c(b); if (l(h)) return; if (G( "before:highlightElement", { el: b, language: h } ), b.children.length > 0 && (r.ignoreUnescapedHTML || (console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), console.warn("The element with unescaped HTML:"), console.warn(b)), r.throwUnescapedHTML)) throw new b_( "One of your code blocks includes unescaped HTML.", b.innerHTML ); v = b; const w = v.textContent, F = h ? _(w, { language: h, ignoreIllegals: !0 }) : m(w); b.innerHTML = F.value, p(b, h, F.language), b.result = { language: F.language, re: F.relevance, relevance: F.relevance }, F.secondBest && (b.secondBest = { language: F.secondBest.language, relevance: F.secondBest.relevance }), G("after:highlightElement", { el: b, result: F, text: w }); } function g(b) { r = yr(r, b); } const T = () => { R(), ge("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); }; function N() { R(), ge("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); } let C = !1; function R() { if (document.readyState === "loading") { C = !0; return; } document.querySelectorAll(r.cssSelector).forEach(S); } function O() { C && R(); } typeof window < "u" && window.addEventListener && window.addEventListener("DOMContentLoaded", O, !1); function f(b, v) { let h = null; try { h = v(n); } catch (w) { if (me("Language definition for '{}' could not be registered.".replace("{}", b)), i) me(w); else throw w; h = s; } h.name || (h.name = b), e[b] = h, h.rawDefinition = v.bind(null, n), h.aliases && k(h.aliases, { languageName: b }); } function L(b) { delete e[b]; for (const v of Object.keys(t)) t[v] === b && delete t[v]; } function A() { return Object.keys(e); } function M(b) { return b = (b || "").toLowerCase(), e[b] || e[t[b]]; } function k(b, { languageName: v }) { typeof b == "string" && (b = [b]), b.forEach((h) => { t[h.toLowerCase()] = v; }); } function D(b) { const v = M(b); return v && !v.disableAutodetect; } function V(b) { b["before:highlightBlock"] && !b["before:highlightElement"] && (b["before:highlightElement"] = (v) => { b["before:highlightBlock"]( Object.assign({ block: v.el }, v) ); }), b["after:highlightBlock"] && !b["after:highlightElement"] && (b["after:highlightElement"] = (v) => { b["after:highlightBlock"]( Object.assign({ block: v.el }, v) ); }); } function X(b) { V(b), a.push(b); } function G(b, v) { const h = b; a.forEach(function(w) { w[h] && w[h](v); }); } function z(b) { return ge("10.7.0", "highlightBlock will be removed entirely in v12.0"), ge("10.7.0", "Please use highlightElement now."), S(b); } Object.assign(n, { highlight: _, highlightAuto: m, highlightAll: R, highlightElement: S, highlightBlock: z, configure: g, initHighlighting: T, initHighlightingOnLoad: N, registerLanguage: f, unregisterLanguage: L, listLanguages: A, getLanguage: M, registerAliases: k, autoDetection: D, inherit: yr, addPlugin: X }), n.debugMode = function() { i = !1; }, n.safeMode = function() { i = !0; }, n.versionString = T_, n.regex = { concat: pe, lookahead: ll, either: Er, optional: Pc, anyNumberOfTimes: xc }; for (const b in ve) typeof ve[b] == "object" && _r.exports(ve[b]); return Object.assign(n, ve), n; }; var fe = N_({}), C_ = fe; fe.HighlightJS = fe; fe.default = fe; var xe, hr; function f_() { if (hr) return xe; hr = 1; function n(e) { const t = "[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]+", o = "\u0434\u0430\u043B\u0435\u0435 " + "\u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C\u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0434\u043B\u044F \u0435\u0441\u043B\u0438 \u0438 \u0438\u0437 \u0438\u043B\u0438 \u0438\u043D\u0430\u0447\u0435 \u0438\u043D\u0430\u0447\u0435\u0435\u0441\u043B\u0438 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043A\u043E\u043D\u0435\u0446\u0446\u0438\u043A\u043B\u0430 \u043D\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043F\u0435\u0440\u0435\u043C \u043F\u043E \u043F\u043E\u043A\u0430 \u043F\u043E\u043F\u044B\u0442\u043A\u0430 \u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0442\u043E\u0433\u0434\u0430 \u0446\u0438\u043A\u043B \u044D\u043A\u0441\u043F\u043E\u0440\u0442 ", l = "\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0438\u0437\u0444\u0430\u0439\u043B\u0430 " + "\u0432\u0435\u0431\u043A\u043B\u0438\u0435\u043D\u0442 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u043D\u0435\u0448\u043D\u0435\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u043A\u043B\u0438\u0435\u043D\u0442 \u043A\u043E\u043D\u0435\u0446\u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043B\u0438\u0435\u043D\u0442 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0432\u0435\u0440 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0441\u043B\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u043E\u0431\u044B\u0447\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043D\u043A\u0438\u0439\u043A\u043B\u0438\u0435\u043D\u0442 ", c = "\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u0430\u043D\u0438\u0446 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u043E\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 ", _ = "ansitooem oemtoansi \u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0438\u043E\u0434 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0434\u0430\u0442\u0430\u0433\u043E\u0434 \u0434\u0430\u0442\u0430\u043C\u0435\u0441\u044F\u0446 \u0434\u0430\u0442\u0430\u0447\u0438\u0441\u043B\u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0438\u0431 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u0434\u0441\u0438\u043C\u0432 \u043A\u043E\u043D\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043A\u043E\u043D\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u043D\u0435\u0434\u0435\u043B\u0438 \u043B\u043E\u0433 \u043B\u043E\u043310 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043D\u0430\u0431\u043E\u0440\u0430\u043F\u0440\u0430\u0432 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0432\u0438\u0434 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0441\u0447\u0435\u0442 \u043D\u0430\u0439\u0442\u0438\u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043D\u0430\u0447\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u0433\u043E\u0434\u0430 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u043D\u0435\u0434\u0435\u043B\u0438\u0433\u043E\u0434\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u044F\u0437\u044B\u043A \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043E\u043A\u043D\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0438\u043E\u0434\u0441\u0442\u0440 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u0442\u0443\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0430 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u043F\u0438\u0441\u044C \u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043C \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043F\u043E \u0441\u0438\u043C\u0432 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0447\u0435\u0442\u043F\u043E\u043A\u043E\u0434\u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0435\u0432\u0440\u0435\u043C\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0442\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043D\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043F\u043E \u0444\u0438\u043A\u0441\u0448\u0430\u0431\u043B\u043E\u043D \u0448\u0430\u0431\u043B\u043E\u043D ", d = "acos asin atan base64\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 base64\u0441\u0442\u0440\u043E\u043A\u0430 cos exp log log10 pow sin sqrt tan xml\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 xml\u0441\u0442\u0440\u043E\u043A\u0430 xml\u0442\u0438\u043F xml\u0442\u0438\u043F\u0437\u043D\u0447 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0435\u043E\u043A\u043D\u043E \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u043B\u0435\u0432\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u0434\u0430\u0442\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0447\u0438\u0441\u043B\u043E \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u0447\u0442\u0435\u043D\u0438\u044Fxml \u0432\u043E\u043F\u0440\u043E\u0441 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0440\u0435\u0433 \u0432\u044B\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u043F\u0440\u0430\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432\u044B\u0447\u0438\u0441\u043B\u0438\u0442\u044C \u0433\u043E\u0434 \u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B\u0432\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u0430\u0442\u0430 \u0434\u0435\u043D\u044C \u0434\u0435\u043D\u044C\u0433\u043E\u0434\u0430 \u0434\u0435\u043D\u044C\u043D\u0435\u0434\u0435\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u043C\u0435\u0441\u044F\u0446 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cjson \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cxml \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u0437\u0430\u043F\u0438\u0441\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0438\u0442\u044C\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0437\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0444\u0430\u0439\u043B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u0438\u0437xml\u0442\u0438\u043F\u0430 \u0438\u043C\u043F\u043E\u0440\u0442\u043C\u043E\u0434\u0435\u043B\u0438xdto \u0438\u043C\u044F\u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430 \u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438\u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043A\u043E\u0434\u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043A\u043E\u043D\u0435\u0446\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u0434\u043D\u044F \u043A\u043E\u043D\u0435\u0446\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0438\u043D\u0443\u0442\u044B \u043A\u043E\u043D\u0435\u0446\u043D\u0435\u0434\u0435\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u0447\u0430\u0441\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0444\u0430\u0439\u043B \u043A\u0440\u0430\u0442\u043A\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043B\u0435\u0432 \u043C\u0430\u043A\u0441 \u043C\u0435\u0441\u0442\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u043C\u0435\u0441\u044F\u0446 \u043C\u0438\u043D \u043C\u0438\u043D\u0443\u0442\u0430 \u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043D\u0430\u0439\u0442\u0438 \u043D\u0430\u0439\u0442\u0438\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u043D\u0430\u0439\u0442\u0438\u043E\u043A\u043D\u043E\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435\u043D\u0430\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u0441\u0441\u044B\u043B\u043A\u0430\u043C \u043D\u0430\u0439\u0442\u0438\u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u0434\u043D\u044F \u043D\u0430\u0447\u0430\u043B\u043E\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0438\u043D\u0443\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0447\u0430\u0441\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0443\u0441\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0438\u0441\u043A\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u