extramark 0.3.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +9 -9
- package/README.md +88 -96
- package/bin/extramark.js +45 -54
- package/package.json +25 -42
- package/src/index.js +19 -26
- package/CHANGELOG.md +0 -22
- package/bin/utils/logger.js +0 -5
- package/dist/extramark.js +0 -15822
- package/dist/extramark.js.map +0 -1
- package/dist/extramark.min.js +0 -961
- package/lib/extramark.js +0 -15818
- package/src/syntax/critic.js +0 -11
package/dist/extramark.min.js
DELETED
|
@@ -1,961 +0,0 @@
|
|
|
1
|
-
"use strict";var ExtraMark=function(t){'use strict';var we=String.fromCodePoint,Ce=Math.floor,Ae=String.fromCharCode;// Create a lookup array where anything but characters in `chars` string
|
|
2
|
-
// and alphanumeric chars is percent-encoded.
|
|
3
|
-
//
|
|
4
|
-
function s(e){var r=$U[e],t,n;if(r)return r;for(r=$U[e]=[],t=0;128>t;t++)n=Ae(t),/^[0-9a-z]$/i.test(n)?r.push(n):r.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)r[e.charCodeAt(t)]=e[t];return r}// Encode unsafe characters with percent-encoding, skipping already
|
|
5
|
-
// encoded sequences.
|
|
6
|
-
//
|
|
7
|
-
// - string - string to encode
|
|
8
|
-
// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)
|
|
9
|
-
// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)
|
|
10
|
-
//
|
|
11
|
-
function o(e,r,t){var n="",a,c,p,u,d;for("string"!=typeof r&&(t=r,r=o.defaultChars),"undefined"==typeof t&&(t=!0),d=s(r),(a=0,c=e.length);a<c;a++){if(p=e.charCodeAt(a),t&&37===p/* % */&&a+2<c&&/^[0-9a-f]{2}$/i.test(e.slice(a+1,a+3))){n+=e.slice(a,a+3),a+=2;continue}if(128>p){n+=d[p];continue}if(55296<=p&&57343>=p){if(55296<=p&&56319>=p&&a+1<c&&(u=e.charCodeAt(a+1),56320<=u&&57343>=u)){n+=encodeURIComponent(e[a]+e[a+1]),a++;continue}n+="%EF%BF%BD";continue}n+=encodeURIComponent(e[a])}return n}function a(e){var r=JU[e],t,n;if(r)return r;for(r=JU[e]=[],t=0;128>t;t++)n=Ae(t),r.push(n);for(t=0;t<e.length;t++)n=e.charCodeAt(t),r[n]="%"+("0"+n.toString(16).toUpperCase()).slice(-2);return r}// Decode percent-encoded string.
|
|
12
|
-
//
|
|
13
|
-
function l(e,r){var t;return"string"!=typeof r&&(r=l.defaultChars),t=a(r),e.replace(/(%[a-f0-9]{2})+/gi,function(e){var r="",n,s,o,a,c,p,u;for(n=0,s=e.length;n<s;n+=3){if(o=parseInt(e.slice(n+1,n+3),16),128>o){r+=t[o];continue}if(192==(224&o)&&n+3<s&&(a=parseInt(e.slice(n+4,n+6),16),128==(192&a))){u=1984&o<<6|63&a,r+=128>u?"\uFFFD\uFFFD":Ae(u),n+=3;continue}if(224==(240&o)&&n+6<s&&(a=parseInt(e.slice(n+4,n+6),16),c=parseInt(e.slice(n+7,n+9),16),128==(192&a)&&128==(192&c))){u=61440&o<<12|4032&a<<6|63&c,r+=2048>u||55296<=u&&57343>=u?"\uFFFD\uFFFD\uFFFD":Ae(u),n+=6;continue}if(240==(248&o)&&n+9<s&&(a=parseInt(e.slice(n+4,n+6),16),c=parseInt(e.slice(n+7,n+9),16),p=parseInt(e.slice(n+10,n+12),16),128==(192&a)&&128==(192&c)&&128==(192&p))){u=1835008&o<<18|258048&a<<12|4032&c<<6|63&p,65536>u||1114111<u?r+="\uFFFD\uFFFD\uFFFD\uFFFD":(u-=65536,r+=Ae(55296+(u>>10),56320+(1023&u))),n+=9;continue}r+="\uFFFD"}return r})}// Copyright Joyent, Inc. and other Node contributors.
|
|
14
|
-
// Changes from joyent/node:
|
|
15
|
-
//
|
|
16
|
-
// 1. No leading slash in paths,
|
|
17
|
-
// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`
|
|
18
|
-
//
|
|
19
|
-
// 2. Backslashes are not replaced with slashes,
|
|
20
|
-
// so `http:\\example.org\` is treated like a relative path
|
|
21
|
-
//
|
|
22
|
-
// 3. Trailing colon is treated like a part of the path,
|
|
23
|
-
// i.e. in `http://example.org:foo` pathname is `:foo`
|
|
24
|
-
//
|
|
25
|
-
// 4. Nothing is URL-encoded in the resulting object,
|
|
26
|
-
// (in joyent/node some chars in auth and paths are encoded)
|
|
27
|
-
//
|
|
28
|
-
// 5. `url.parse()` does not have `parseQueryString` argument
|
|
29
|
-
//
|
|
30
|
-
// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,
|
|
31
|
-
// which can be constructed using other parts of the url.
|
|
32
|
-
//
|
|
33
|
-
function c(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}// Reference: RFC 3986, RFC 1808, RFC 2396
|
|
34
|
-
// define these here so at least they only have to be
|
|
35
|
-
// compiled once on the first module load.
|
|
36
|
-
/**
|
|
37
|
-
* new Renderer()
|
|
38
|
-
*
|
|
39
|
-
* Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.
|
|
40
|
-
**/function p(){this.rules=IB({},NB)}/**
|
|
41
|
-
* Renderer.renderAttrs(token) -> String
|
|
42
|
-
*
|
|
43
|
-
* Render token attributes to string.
|
|
44
|
-
**/ /**
|
|
45
|
-
* class Ruler
|
|
46
|
-
*
|
|
47
|
-
* Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and
|
|
48
|
-
* [[MarkdownIt#inline]] to manage sequences of functions (rules):
|
|
49
|
-
*
|
|
50
|
-
* - keep rules in defined order
|
|
51
|
-
* - assign the name to each rule
|
|
52
|
-
* - enable/disable rules
|
|
53
|
-
* - add/replace rules
|
|
54
|
-
* - allow assign rules to additional named chains (in the same)
|
|
55
|
-
* - cacheing lists of active rules
|
|
56
|
-
*
|
|
57
|
-
* You will not need use this class directly until write plugins. For simple
|
|
58
|
-
* rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and
|
|
59
|
-
* [[MarkdownIt.use]].
|
|
60
|
-
**/ /**
|
|
61
|
-
* new Ruler()
|
|
62
|
-
**/function u(){this.__rules__=[],this.__cache__=null}////////////////////////////////////////////////////////////////////////////////
|
|
63
|
-
// Helper methods, should not be used directly
|
|
64
|
-
// Find rule index by name
|
|
65
|
-
//
|
|
66
|
-
function d(e){return /^<a[>\s]/i.test(e)}function h(e){return /^<\/a\s*>/i.test(e)}function m(e,r){return FB[r.toLowerCase()]}function g(e){var r=0,t,n;for(t=e.length-1;0<=t;t--)n=e[t],"text"!==n.type||r||(n.content=n.content.replace(ZB,m)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function f(e){var r=0,t,n;for(t=e.length-1;0<=t;t--)n=e[t],"text"===n.type&&!r&&GB.test(n.content)&&(n.content=n.content.replace(/\+-/g,"\xB1")// .., ..., ....... -> …
|
|
67
|
-
// but ?..... & !..... -> ?.. & !..
|
|
68
|
-
.replace(/\.{2,}/g,"\u2026").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",")// em-dash
|
|
69
|
-
.replace(/(^|[^-])---([^-]|$)/mg,"$1\u2014$2")// en-dash
|
|
70
|
-
.replace(/(^|\s)--(\s|$)/mg,"$1\u2013$2").replace(/(^|[^-\s])--([^-\s]|$)/mg,"$1\u2013$2")),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}/* ’ */function b(e,r,t){return e.substr(0,r)+t+e.substr(r+1)}function _(e,r){var n,s,o,a,l,c,p,u,d,h,m,g,f,_,k,y,x,v,q,L,w;for(q=[],n=0;n<e.length;n++){for(s=e[n],p=e[n].level,x=q.length-1;0<=x&&!(q[x].level<=p);x--);if(q.length=x+1,"text"===s.type){o=s.content,l=0,c=o.length;/*eslint no-labels:0,block-scoped-var:0*/OUTER:for(;l<c&&(QB.lastIndex=l,a=QB.exec(o),!!a);){if(k=y=!0,l=a.index+1,v="'"===a[0],d=32,0<=a.index-1)d=o.charCodeAt(a.index-1);else for(x=n-1;0<=x&&"softbreak"!==e[x].type&&"hardbreak"!==e[x].type;x--)// lastChar defaults to 0x20
|
|
71
|
-
if("text"===e[x].type){d=e[x].content.charCodeAt(e[x].content.length-1);break}// Find next character,
|
|
72
|
-
// default to space if it's the end of the line
|
|
73
|
-
//
|
|
74
|
-
if(h=32,l<c)h=o.charCodeAt(l);else for(x=n+1;x<e.length&&"softbreak"!==e[x].type&&"hardbreak"!==e[x].type;x++)// nextChar defaults to 0x20
|
|
75
|
-
if("text"===e[x].type){h=e[x].content.charCodeAt(0);break}if(m=YB(d)||JB(Ae(d)),g=YB(h)||JB(Ae(h)),f=$B(d),_=$B(h),_?k=!1:g&&!(f||m)&&(k=!1),f?y=!1:m&&!(_||g)&&(y=!1),34===h/* " */&&"\""===a[0]&&48<=d/* 0 */&&57>=d/* 9 */&&(y=k=!1),k&&y&&(k=!1,y=g),!k&&!y){v&&(s.content=b(s.content,a.index,"\u2019"));continue}if(y)// this could be a closing quote, rewind the stack to get a match
|
|
76
|
-
for(x=q.length-1;0<=x&&(u=q[x],!(q[x].level<p));x--)if(u.single===v&&q[x].level===p){u=q[x],v?(L=r.md.options.quotes[2],w=r.md.options.quotes[3]):(L=r.md.options.quotes[0],w=r.md.options.quotes[1]),s.content=b(s.content,a.index,w),e[u.token].content=b(e[u.token].content,u.pos,L),l+=w.length-1,u.token===n&&(l+=L.length-1),o=s.content,c=o.length,q.length=x;continue OUTER}k?q.push({token:n,pos:a.index,single:v,level:p}):y&&v&&(s.content=b(s.content,a.index,"\u2019"))}}}}// Token class
|
|
77
|
-
/**
|
|
78
|
-
* class Token
|
|
79
|
-
**/ /**
|
|
80
|
-
* new Token(type, tag, nesting)
|
|
81
|
-
*
|
|
82
|
-
* Create new token and fill passed properties.
|
|
83
|
-
**/function k(e,r,t){this.type=e,this.tag=r,this.attrs=null,this.map=null,this.nesting=t,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}/**
|
|
84
|
-
* Token.attrIndex(name) -> Number
|
|
85
|
-
*
|
|
86
|
-
* Search attribute index by name.
|
|
87
|
-
**/function y(e,r,t){this.src=e,this.env=t,this.tokens=[],this.inlineMode=!1,this.md=r}// re-export Token class to use in core rules
|
|
88
|
-
/**
|
|
89
|
-
* new Core()
|
|
90
|
-
**/function x(){this.ruler=new PB;for(var e=0;e<XB.length;e++)this.ruler.push(XB[e][0],XB[e][1])}/**
|
|
91
|
-
* Core.process(state)
|
|
92
|
-
*
|
|
93
|
-
* Executes core chain rules.
|
|
94
|
-
**/function v(e,r){var t=e.bMarks[r]+e.blkIndent,n=e.eMarks[r];return e.src.substr(t,n-t)}function q(e){var r=[],t=0,n=e.length,s=0,o=0,a=!1,i=0,l;for(l=e.charCodeAt(t);t<n;)96===l/* ` */?a?(a=!1,i=t):0==s%2&&(a=!0,i=t):124===l/* | */&&0==s%2&&!a&&(r.push(e.substring(o,t)),o=t+1),92===l/* \ */?s++:s=0,t++,t===n&&a&&(a=!1,t=i+1),l=e.charCodeAt(t);return r.push(e.substring(o)),r}// Search `[-+*][\n ]`, returns next pos after marker on success
|
|
95
|
-
// or -1 on fail.
|
|
96
|
-
function L(e,r){var t,n,s,o;// Check bullet
|
|
97
|
-
return n=e.bMarks[r]+e.tShift[r],s=e.eMarks[r],t=e.src.charCodeAt(n++),42!==t/* * */&&45!==t/* - */&&43!==t/* + */?-1:n<s&&(o=e.src.charCodeAt(n),!aO(o))?-1:n}// Search `\d+[.)][\n ]`, returns next pos after marker on success
|
|
98
|
-
// or -1 on fail.
|
|
99
|
-
function w(e,r){var t=e.bMarks[r]+e.tShift[r],n=t,s=e.eMarks[r],o;// List marker should have at least 2 chars (digit + dot)
|
|
100
|
-
if(n+1>=s)return-1;if(o=e.src.charCodeAt(n++),48>o/* 0 */||57<o/* 9 */)return-1;for(;;){// EOL -> fail
|
|
101
|
-
if(n>=s)return-1;if(o=e.src.charCodeAt(n++),48<=o/* 0 */&&57>=o/* 9 */){// List marker should have no more than 9 digits
|
|
102
|
-
// (prevents integer overflow in browsers)
|
|
103
|
-
if(10<=n-t)return-1;continue}// found valid marker
|
|
104
|
-
if(41===o/* ) */||46===o/* . */)break;return-1}return n<s&&(o=e.src.charCodeAt(n),!aO(o))?-1:n}function C(e,r){var t=e.level+2,n,s;for(n=r+2,s=e.tokens.length-2;n<s;n++)e.tokens[n].level===t&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}function A(e,r,t,n){var o,a,i,l,c,p,u,d;for(this.src=e,this.md=r,this.env=t,this.tokens=n,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",a=this.src,d=!1,(i=l=p=u=0,c=a.length);l<c;l++){if(o=a.charCodeAt(l),!d)if(vO(o)){p++,9===o?u+=4-u%4:u++;continue}else d=!0;(10===o||l===c-1)&&(10!==o&&l++,this.bMarks.push(i),this.eMarks.push(l),this.tShift.push(p),this.sCount.push(u),this.bsCount.push(0),d=!1,p=0,u=0,i=l+1)}// Push fake entry to simplify cache bounds checks
|
|
105
|
-
this.bMarks.push(a.length),this.eMarks.push(a.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}// Push new token to "stream".
|
|
106
|
-
//
|
|
107
|
-
/**
|
|
108
|
-
* new ParserBlock()
|
|
109
|
-
**/function S(){this.ruler=new PB;for(var e=0;e<qO.length;e++)this.ruler.push(qO[e][0],qO[e][1],{alt:(qO[e][2]||[]).slice()})}// Generate tokens for input range
|
|
110
|
-
//
|
|
111
|
-
// Skip text characters for text token, place those to pending buffer
|
|
112
|
-
// '{}$%@~+=:' reserved for extentions
|
|
113
|
-
// !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, or ~
|
|
114
|
-
// !!!! Don't confuse with "Markdown ASCII Punctuation" chars
|
|
115
|
-
// http://spec.commonmark.org/0.15/#ascii-punctuation-character
|
|
116
|
-
function E(e){return 10/* \n */===e||33/* ! */===e||35/* # */===e||36/* $ */===e||37/* % */===e||38/* & */===e||42/* * */===e||43/* + */===e||45/* - */===e||58/* : */===e||60/* < */===e||61/* = */===e||62/* > */===e||64/* @ */===e||91/* [ */===e||92/* \ */===e||93/* ] */===e||94/* ^ */===e||95/* _ */===e||96/* ` */===e||123/* { */===e||125/* } */===e||126/* ~ */===e}function T(e,r){var t=[],n=r.length,s,o,a,l,c;for(s=0;s<n;s++)(a=r[s],126===a.marker/* ~ */)&&-1!==a.end&&(l=r[a.end],c=e.tokens[a.token],c.type="s_open",c.tag="s",c.nesting=1,c.markup="~~",c.content="",c=e.tokens[l.token],c.type="s_close",c.tag="s",c.nesting=-1,c.markup="~~",c.content="","text"===e.tokens[l.token-1].type&&"~"===e.tokens[l.token-1].content&&t.push(l.token-1));// If a marker sequence has an odd number of characters, it's splitted
|
|
117
|
-
// like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the
|
|
118
|
-
// start of the sequence.
|
|
119
|
-
//
|
|
120
|
-
// So, we have to move all those markers after subsequent s_close tags.
|
|
121
|
-
//
|
|
122
|
-
for(;t.length;){for(s=t.pop(),o=s+1;o<e.tokens.length&&"s_close"===e.tokens[o].type;)o++;o--,s!==o&&(c=e.tokens[o],e.tokens[o]=e.tokens[s],e.tokens[s]=c)}}// Walk through delimiter list and replace text tokens with tags
|
|
123
|
-
//
|
|
124
|
-
function D(e,r){var t=r.length,n,s,o,a,l,c;for(n=t-1;0<=n;n--)(s=r[n],95===s.marker/* _ */||42===s.marker/* * */)&&// Process only opening markers
|
|
125
|
-
-1!==s.end&&(o=r[s.end],c=0<n&&r[n-1].end===s.end+1&&r[n-1].token===s.token-1&&r[s.end+1].token===o.token+1&&r[n-1].marker===s.marker,l=Ae(s.marker),a=e.tokens[s.token],a.type=c?"strong_open":"em_open",a.tag=c?"strong":"em",a.nesting=1,a.markup=c?l+l:l,a.content="",a=e.tokens[o.token],a.type=c?"strong_close":"em_close",a.tag=c?"strong":"em",a.nesting=-1,a.markup=c?l+l:l,a.content="",c&&(e.tokens[r[n-1].token].content="",e.tokens[r[s.end+1].token].content="",n--))}// Walk through delimiter list and replace text tokens with tags
|
|
126
|
-
//
|
|
127
|
-
function I(e){/*eslint no-bitwise:0*/var r=32|e;// to lower case
|
|
128
|
-
return 97<=r/* a */&&122>=r/* z */}// For each opening emphasis-like marker find a matching closing one
|
|
129
|
-
function z(e,r){var t={},n=r.length,s,o,a,i,l,c,p,u;for(s=0;s<n;s++)if(a=r[s],a.length=a.length||0,a.close){for(t.hasOwnProperty(a.marker)||(t[a.marker]=[-1,-1,-1]),l=t[a.marker][a.length%3],c=-1,o=s-a.jump-1;o>l;o-=i.jump+1)if(i=r[o],i.marker===a.marker&&(-1===c&&(c=o),i.open&&0>i.end&&i.level===a.level&&(p=!1,(i.close||a.open)&&0==(i.length+a.length)%3&&(0!=i.length%3||0!=a.length%3)&&(p=!0),!p))){u=0<o&&!r[o-1].open?r[o-1].jump+1:0,a.jump=s-o+u,a.open=!1,i.end=s,i.jump=u,i.close=!1,c=-1;break}-1!==c&&(t[a.marker][(a.length||0)%3]=c)}// Previously calculated lower bounds (previous fails)
|
|
130
|
-
// for each marker and each delimiter length modulo 3.
|
|
131
|
-
}function R(e,r,t,n){this.src=e,this.env=t,this.md=r,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[]}// Flush pending text
|
|
132
|
-
//
|
|
133
|
-
/**
|
|
134
|
-
* new ParserInline()
|
|
135
|
-
**/function N(){var e;/**
|
|
136
|
-
* ParserInline#ruler -> Ruler
|
|
137
|
-
*
|
|
138
|
-
* [[Ruler]] instance. Keep configuration of inline rules.
|
|
139
|
-
**/for(this.ruler=new PB,e=0;e<WO.length;e++)this.ruler.push(WO[e][0],WO[e][1]);/**
|
|
140
|
-
* ParserInline#ruler2 -> Ruler
|
|
141
|
-
*
|
|
142
|
-
* [[Ruler]] instance. Second ruler used for post-processing
|
|
143
|
-
* (e.g. in emphasis-like rules).
|
|
144
|
-
**/for(this.ruler2=new PB,e=0;e<QO.length;e++)this.ruler2.push(QO[e][0],QO[e][1])}// Skip single token by running all rules in validation mode;
|
|
145
|
-
// returns `true` if any rule reported success
|
|
146
|
-
//
|
|
147
|
-
// Helpers
|
|
148
|
-
// Merge objects
|
|
149
|
-
//
|
|
150
|
-
function M(e/*from1, from2, from3, ...*/){var r=Array.prototype.slice.call(arguments,1);return r.forEach(function(r){r&&Object.keys(r).forEach(function(t){e[t]=r[t]})}),e}function P(e){return Object.prototype.toString.call(e)}function V(e){return"[object String]"===P(e)}function U(e){return"[object Object]"===P(e)}function B(e){return"[object RegExp]"===P(e)}function O(e){return"[object Function]"===P(e)}function j(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}////////////////////////////////////////////////////////////////////////////////
|
|
151
|
-
function G(e){return Object.keys(e||{}).reduce(function(e,r){return e||re.hasOwnProperty(r)},!1)}/*eslint-enable max-len*/ ////////////////////////////////////////////////////////////////////////////////
|
|
152
|
-
function H(e){e.__index__=-1,e.__text_cache__=""}function Z(e){return function(r,t){var n=r.slice(t);return e.test(n)?n.match(e)[0].length:0}}function F(){return function(e,r){r.normalize(e)}}// Schemas compiler. Build regexps.
|
|
153
|
-
//
|
|
154
|
-
function $(e){function r(e){return e.replace("%TLDS%",n.src_tlds)}// Reset compiled data
|
|
155
|
-
function t(e,r){throw new Error("(LinkifyIt) Invalid schema \""+e+"\": "+r)}// Load & clone RE patterns.
|
|
156
|
-
var n=e.re=XO(e.__opts__),s=e.__tlds__.slice();// Define dynamic patterns
|
|
157
|
-
e.onCompile(),e.__tlds_replaced__||s.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),s.push(n.src_xn),n.src_tlds=s.join("|"),n.email_fuzzy=RegExp(r(n.tpl_email_fuzzy),"i"),n.link_fuzzy=RegExp(r(n.tpl_link_fuzzy),"i"),n.link_no_ip_fuzzy=RegExp(r(n.tpl_link_no_ip_fuzzy),"i"),n.host_fuzzy_test=RegExp(r(n.tpl_host_fuzzy_test),"i");//
|
|
158
|
-
// Compile each schema
|
|
159
|
-
//
|
|
160
|
-
var o=[];e.__compiled__={},Object.keys(e.__schemas__).forEach(function(r){var n=e.__schemas__[r];// skip disabled methods
|
|
161
|
-
if(null!==n){var s={validate:null,link:null};return e.__compiled__[r]=s,U(n)?(B(n.validate)?s.validate=Z(n.validate):O(n.validate)?s.validate=n.validate:t(r,n),void(O(n.normalize)?s.normalize=n.normalize:n.normalize?t(r,n):s.normalize=F())):V(n)?void o.push(r):void t(r,n)}}),o.forEach(function(r){e.__compiled__[e.__schemas__[r]]&&(e.__compiled__[r].validate=e.__compiled__[e.__schemas__[r]].validate,e.__compiled__[r].normalize=e.__compiled__[e.__schemas__[r]].normalize)}),e.__compiled__[""]={validate:null,normalize:F()};//
|
|
162
|
-
// Build schema condition
|
|
163
|
-
//
|
|
164
|
-
var a=Object.keys(e.__compiled__).filter(function(r){// Filter disabled & fake schemas
|
|
165
|
-
return 0<r.length&&e.__compiled__[r]}).map(j).join("|");// (?!_) cause 1.5x slowdown
|
|
166
|
-
e.re.schema_test=RegExp("(^|(?!_)(?:[><\uFF5C]|"+n.src_ZPCc+"))("+a+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uFF5C]|"+n.src_ZPCc+"))("+a+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),H(e)}/**
|
|
167
|
-
* class Match
|
|
168
|
-
*
|
|
169
|
-
* Match result. Single element of array, returned by [[LinkifyIt#match]]
|
|
170
|
-
**/function J(e,r){var t=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(t,n);/**
|
|
171
|
-
* Match#schema -> String
|
|
172
|
-
*
|
|
173
|
-
* Prefix (protocol) for matched string.
|
|
174
|
-
**/this.schema=e.__schema__.toLowerCase(),this.index=t+r,this.lastIndex=n+r,this.raw=s,this.text=s,this.url=s}function Y(e,r){var t=new J(e,r);return e.__compiled__[t.schema].normalize(t,e),t}/**
|
|
175
|
-
* class LinkifyIt
|
|
176
|
-
**/ /**
|
|
177
|
-
* new LinkifyIt(schemas, options)
|
|
178
|
-
* - schemas (Object): Optional. Additional schemas to validate (prefix/validator)
|
|
179
|
-
* - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }
|
|
180
|
-
*
|
|
181
|
-
* Creates new linkifier instance with optional additional schemas.
|
|
182
|
-
* Can be called without `new` keyword for convenience.
|
|
183
|
-
*
|
|
184
|
-
* By default understands:
|
|
185
|
-
*
|
|
186
|
-
* - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links
|
|
187
|
-
* - "fuzzy" links and emails (example.com, foo@bar.com).
|
|
188
|
-
*
|
|
189
|
-
* `schemas` is an object, where each key/value describes protocol/rule:
|
|
190
|
-
*
|
|
191
|
-
* - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`
|
|
192
|
-
* for example). `linkify-it` makes shure that prefix is not preceeded with
|
|
193
|
-
* alphanumeric char and symbols. Only whitespaces and punctuation allowed.
|
|
194
|
-
* - __value__ - rule to check tail after link prefix
|
|
195
|
-
* - _String_ - just alias to existing rule
|
|
196
|
-
* - _Object_
|
|
197
|
-
* - _validate_ - validator function (should return matched length on success),
|
|
198
|
-
* or `RegExp`.
|
|
199
|
-
* - _normalize_ - optional function to normalize text & url of matched result
|
|
200
|
-
* (for example, for @twitter mentions).
|
|
201
|
-
*
|
|
202
|
-
* `options`:
|
|
203
|
-
*
|
|
204
|
-
* - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.
|
|
205
|
-
* - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts
|
|
206
|
-
* like version numbers. Default `false`.
|
|
207
|
-
* - __fuzzyEmail__ - recognize emails without `mailto:` prefix.
|
|
208
|
-
*
|
|
209
|
-
**/function W(e,r){return this instanceof W?void(// Cache last tested result. Used to skip repeating steps on next `match` call.
|
|
210
|
-
// Next scan position
|
|
211
|
-
!r&&G(e)&&(r=e,e={}),this.__opts__=M({},re,r),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=M({},ej,e),this.__compiled__={},this.__tlds__=rj,this.__tlds_replaced__=!1,this.re={},$(this)):new W(e,r)}/** chainable
|
|
212
|
-
* LinkifyIt#add(schema, definition)
|
|
213
|
-
* - schema (String): rule name (fixed pattern prefix)
|
|
214
|
-
* - definition (String|RegExp|Object): schema definition
|
|
215
|
-
*
|
|
216
|
-
* Add new rule definition. See constructor description for details.
|
|
217
|
-
**/ /*--------------------------------------------------------------------------*/ /**
|
|
218
|
-
* A generic error utility function.
|
|
219
|
-
* @private
|
|
220
|
-
* @param {String} type The error type.
|
|
221
|
-
* @returns {Error} Throws a `RangeError` with the applicable error message.
|
|
222
|
-
*/function Q(e){throw new RangeError(hj[e])}/**
|
|
223
|
-
* A generic `Array#map` utility function.
|
|
224
|
-
* @private
|
|
225
|
-
* @param {Array} array The array to iterate over.
|
|
226
|
-
* @param {Function} callback The function that gets called for every array
|
|
227
|
-
* item.
|
|
228
|
-
* @returns {Array} A new array of values returned by the callback function.
|
|
229
|
-
*/function K(e,r){const t=[];for(let n=e.length;n--;)t[n]=r(e[n]);return t}/**
|
|
230
|
-
* A simple `Array#map`-like wrapper to work with domain name strings or email
|
|
231
|
-
* addresses.
|
|
232
|
-
* @private
|
|
233
|
-
* @param {String} domain The domain name or email address.
|
|
234
|
-
* @param {Function} callback The function that gets called for every
|
|
235
|
-
* character.
|
|
236
|
-
* @returns {Array} A new string of characters returned by the callback
|
|
237
|
-
* function.
|
|
238
|
-
*/function X(e,r){const t=e.split("@");let n="";1<t.length&&(n=t[0]+"@",e=t[1]),e=e.replace(dj,".");const s=e.split("."),o=K(s,r).join(".");return n+o}/**
|
|
239
|
-
* Creates an array containing the numeric code points of each Unicode
|
|
240
|
-
* character in the string. While JavaScript uses UCS-2 internally,
|
|
241
|
-
* this function will convert a pair of surrogate halves (each of which
|
|
242
|
-
* UCS-2 exposes as separate characters) into a single code point,
|
|
243
|
-
* matching UTF-16.
|
|
244
|
-
* @see `punycode.ucs2.encode`
|
|
245
|
-
* @see <https://mathiasbynens.be/notes/javascript-encoding>
|
|
246
|
-
* @memberOf punycode.ucs2
|
|
247
|
-
* @name decode
|
|
248
|
-
* @param {String} string The Unicode input string (UCS-2).
|
|
249
|
-
* @returns {Array} The new array of code points.
|
|
250
|
-
*/function te(e){const r=[];let t=0;for(const n=e.length;t<n;){const s=e.charCodeAt(t++);if(55296<=s&&56319>=s&&t<n){// It's a high surrogate, and there is a next character.
|
|
251
|
-
const n=e.charCodeAt(t++);56320==(64512&n)?r.push(((1023&s)<<10)+(1023&n)+65536):(r.push(s),t--)}else r.push(s)}return r}/**
|
|
252
|
-
* Creates a string based on an array of numeric code points.
|
|
253
|
-
* @see `punycode.ucs2.decode`
|
|
254
|
-
* @memberOf punycode.ucs2
|
|
255
|
-
* @name encode
|
|
256
|
-
* @param {Array} codePoints The array of numeric code points.
|
|
257
|
-
* @returns {String} The new Unicode string (UCS-2).
|
|
258
|
-
*/function se(e){// url should be normalized at this point, and existing entities are decoded
|
|
259
|
-
var r=e.trim().toLowerCase();return!Lj.test(r)||!!wj.test(r)}////////////////////////////////////////////////////////////////////////////////
|
|
260
|
-
function oe(e){var r=aB.parse(e,!0);if(r.hostname&&(!r.protocol||0<=Cj.indexOf(r.protocol)))// Encode hostnames in urls like:
|
|
261
|
-
// `http://host/`, `https://host/`, `mailto:user@host`, `//host/`
|
|
262
|
-
//
|
|
263
|
-
// We don't encode unknown schemas, because it's likely that we encode
|
|
264
|
-
// something we shouldn't (e.g. `skype:name` treated as `skype:host`)
|
|
265
|
-
//
|
|
266
|
-
try{r.hostname=vj.toASCII(r.hostname)}catch(e){/**/}return aB.encode(aB.format(r))}function ae(e){var r=aB.parse(e,!0);if(r.hostname&&(!r.protocol||0<=Cj.indexOf(r.protocol)))// Encode hostnames in urls like:
|
|
267
|
-
// `http://host/`, `https://host/`, `mailto:user@host`, `//host/`
|
|
268
|
-
//
|
|
269
|
-
// We don't encode unknown schemas, because it's likely that we encode
|
|
270
|
-
// something we shouldn't (e.g. `skype:name` treated as `skype:host`)
|
|
271
|
-
//
|
|
272
|
-
try{r.hostname=vj.toUnicode(r.hostname)}catch(e){/**/}return aB.decode(aB.format(r))}/**
|
|
273
|
-
* class MarkdownIt
|
|
274
|
-
*
|
|
275
|
-
* Main parser/renderer class.
|
|
276
|
-
*
|
|
277
|
-
* ##### Usage
|
|
278
|
-
*
|
|
279
|
-
* ```javascript
|
|
280
|
-
* // node.js, "classic" way:
|
|
281
|
-
* var MarkdownIt = require('markdown-it'),
|
|
282
|
-
* md = new MarkdownIt();
|
|
283
|
-
* var result = md.render('# markdown-it rulezz!');
|
|
284
|
-
*
|
|
285
|
-
* // node.js, the same, but with sugar:
|
|
286
|
-
* var md = require('markdown-it')();
|
|
287
|
-
* var result = md.render('# markdown-it rulezz!');
|
|
288
|
-
*
|
|
289
|
-
* // browser without AMD, added to "window" on script load
|
|
290
|
-
* // Note, there are no dash.
|
|
291
|
-
* var md = window.markdownit();
|
|
292
|
-
* var result = md.render('# markdown-it rulezz!');
|
|
293
|
-
* ```
|
|
294
|
-
*
|
|
295
|
-
* Single line rendering, without paragraph wrap:
|
|
296
|
-
*
|
|
297
|
-
* ```javascript
|
|
298
|
-
* var md = require('markdown-it')();
|
|
299
|
-
* var result = md.renderInline('__markdown-it__ rulezz!');
|
|
300
|
-
* ```
|
|
301
|
-
**/ /**
|
|
302
|
-
* new MarkdownIt([presetName, options])
|
|
303
|
-
* - presetName (String): optional, `commonmark` / `zero`
|
|
304
|
-
* - options (Object)
|
|
305
|
-
*
|
|
306
|
-
* Creates parser instanse with given config. Can be called without `new`.
|
|
307
|
-
*
|
|
308
|
-
* ##### presetName
|
|
309
|
-
*
|
|
310
|
-
* MarkdownIt provides named presets as a convenience to quickly
|
|
311
|
-
* enable/disable active syntax rules and options for common use cases.
|
|
312
|
-
*
|
|
313
|
-
* - ["commonmark"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -
|
|
314
|
-
* configures parser to strict [CommonMark](http://commonmark.org/) mode.
|
|
315
|
-
* - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -
|
|
316
|
-
* similar to GFM, used when no preset name given. Enables all available rules,
|
|
317
|
-
* but still without html, typographer & autolinker.
|
|
318
|
-
* - ["zero"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -
|
|
319
|
-
* all rules disabled. Useful to quickly setup your config via `.enable()`.
|
|
320
|
-
* For example, when you need only `bold` and `italic` markup and nothing else.
|
|
321
|
-
*
|
|
322
|
-
* ##### options:
|
|
323
|
-
*
|
|
324
|
-
* - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!
|
|
325
|
-
* That's not safe! You may need external sanitizer to protect output from XSS.
|
|
326
|
-
* It's better to extend features via plugins, instead of enabling HTML.
|
|
327
|
-
* - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags
|
|
328
|
-
* (`<br />`). This is needed only for full CommonMark compatibility. In real
|
|
329
|
-
* world you will need HTML output.
|
|
330
|
-
* - __breaks__ - `false`. Set `true` to convert `\n` in paragraphs into `<br>`.
|
|
331
|
-
* - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.
|
|
332
|
-
* Can be useful for external highlighters.
|
|
333
|
-
* - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.
|
|
334
|
-
* - __typographer__ - `false`. Set `true` to enable [some language-neutral
|
|
335
|
-
* replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +
|
|
336
|
-
* quotes beautification (smartquotes).
|
|
337
|
-
* - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement
|
|
338
|
-
* pairs, when typographer enabled and smartquotes on. For example, you can
|
|
339
|
-
* use `'«»„“'` for Russian, `'„“‚‘'` for German, and
|
|
340
|
-
* `['«\xA0', '\xA0»', '‹\xA0', '\xA0›']` for French (including nbsp).
|
|
341
|
-
* - __highlight__ - `null`. Highlighter function for fenced code blocks.
|
|
342
|
-
* Highlighter `function (str, lang)` should return escaped HTML. It can also
|
|
343
|
-
* return empty string if the source was not changed and should be escaped
|
|
344
|
-
* externaly. If result starts with <pre... internal wrapper is skipped.
|
|
345
|
-
*
|
|
346
|
-
* ##### Example
|
|
347
|
-
*
|
|
348
|
-
* ```javascript
|
|
349
|
-
* // commonmark mode
|
|
350
|
-
* var md = require('markdown-it')('commonmark');
|
|
351
|
-
*
|
|
352
|
-
* // default mode
|
|
353
|
-
* var md = require('markdown-it')();
|
|
354
|
-
*
|
|
355
|
-
* // enable everything
|
|
356
|
-
* var md = require('markdown-it')({
|
|
357
|
-
* html: true,
|
|
358
|
-
* linkify: true,
|
|
359
|
-
* typographer: true
|
|
360
|
-
* });
|
|
361
|
-
* ```
|
|
362
|
-
*
|
|
363
|
-
* ##### Syntax highlighting
|
|
364
|
-
*
|
|
365
|
-
* ```js
|
|
366
|
-
* var hljs = require('highlight.js') // https://highlightjs.org/
|
|
367
|
-
*
|
|
368
|
-
* var md = require('markdown-it')({
|
|
369
|
-
* highlight: function (str, lang) {
|
|
370
|
-
* if (lang && hljs.getLanguage(lang)) {
|
|
371
|
-
* try {
|
|
372
|
-
* return hljs.highlight(lang, str, true).value;
|
|
373
|
-
* } catch (__) {}
|
|
374
|
-
* }
|
|
375
|
-
*
|
|
376
|
-
* return ''; // use external default escaping
|
|
377
|
-
* }
|
|
378
|
-
* });
|
|
379
|
-
* ```
|
|
380
|
-
*
|
|
381
|
-
* Or with full wrapper override (if you need assign class to `<pre>`):
|
|
382
|
-
*
|
|
383
|
-
* ```javascript
|
|
384
|
-
* var hljs = require('highlight.js') // https://highlightjs.org/
|
|
385
|
-
*
|
|
386
|
-
* // Actual default values
|
|
387
|
-
* var md = require('markdown-it')({
|
|
388
|
-
* highlight: function (str, lang) {
|
|
389
|
-
* if (lang && hljs.getLanguage(lang)) {
|
|
390
|
-
* try {
|
|
391
|
-
* return '<pre class="hljs"><code>' +
|
|
392
|
-
* hljs.highlight(lang, str, true).value +
|
|
393
|
-
* '</code></pre>';
|
|
394
|
-
* } catch (__) {}
|
|
395
|
-
* }
|
|
396
|
-
*
|
|
397
|
-
* return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
|
|
398
|
-
* }
|
|
399
|
-
* });
|
|
400
|
-
* ```
|
|
401
|
-
*
|
|
402
|
-
**/function ie(e,r){return this instanceof ie?void(/**
|
|
403
|
-
* MarkdownIt#inline -> ParserInline
|
|
404
|
-
*
|
|
405
|
-
* Instance of [[ParserInline]]. You may need it to add new rules when
|
|
406
|
-
* writing plugins. For simple rules control use [[MarkdownIt.disable]] and
|
|
407
|
-
* [[MarkdownIt.enable]].
|
|
408
|
-
**/ /**
|
|
409
|
-
* MarkdownIt#block -> ParserBlock
|
|
410
|
-
*
|
|
411
|
-
* Instance of [[ParserBlock]]. You may need it to add new rules when
|
|
412
|
-
* writing plugins. For simple rules control use [[MarkdownIt.disable]] and
|
|
413
|
-
* [[MarkdownIt.enable]].
|
|
414
|
-
**/ /**
|
|
415
|
-
* MarkdownIt#core -> Core
|
|
416
|
-
*
|
|
417
|
-
* Instance of [[Core]] chain executor. You may need it to add new rules when
|
|
418
|
-
* writing plugins. For simple rules control use [[MarkdownIt.disable]] and
|
|
419
|
-
* [[MarkdownIt.enable]].
|
|
420
|
-
**/ /**
|
|
421
|
-
* MarkdownIt#renderer -> Renderer
|
|
422
|
-
*
|
|
423
|
-
* Instance of [[Renderer]]. Use it to modify output look. Or to add rendering
|
|
424
|
-
* rules for new token types, generated by plugins.
|
|
425
|
-
*
|
|
426
|
-
* ##### Example
|
|
427
|
-
*
|
|
428
|
-
* ```javascript
|
|
429
|
-
* var md = require('markdown-it')();
|
|
430
|
-
*
|
|
431
|
-
* function myToken(tokens, idx, options, env, self) {
|
|
432
|
-
* //...
|
|
433
|
-
* return result;
|
|
434
|
-
* };
|
|
435
|
-
*
|
|
436
|
-
* md.renderer.rules['my_token'] = myToken
|
|
437
|
-
* ```
|
|
438
|
-
*
|
|
439
|
-
* See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).
|
|
440
|
-
**/ /**
|
|
441
|
-
* MarkdownIt#linkify -> LinkifyIt
|
|
442
|
-
*
|
|
443
|
-
* [linkify-it](https://github.com/markdown-it/linkify-it) instance.
|
|
444
|
-
* Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)
|
|
445
|
-
* rule.
|
|
446
|
-
**/ /**
|
|
447
|
-
* MarkdownIt#validateLink(url) -> Boolean
|
|
448
|
-
*
|
|
449
|
-
* Link validation function. CommonMark allows too much in links. By default
|
|
450
|
-
* we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas
|
|
451
|
-
* except some embedded image types.
|
|
452
|
-
*
|
|
453
|
-
* You can change this behaviour:
|
|
454
|
-
*
|
|
455
|
-
* ```javascript
|
|
456
|
-
* var md = require('markdown-it')();
|
|
457
|
-
* // enable everything
|
|
458
|
-
* md.validateLink = function () { return true; }
|
|
459
|
-
* ```
|
|
460
|
-
**/ /**
|
|
461
|
-
* MarkdownIt#normalizeLink(url) -> String
|
|
462
|
-
*
|
|
463
|
-
* Function used to encode link url to a machine-readable format,
|
|
464
|
-
* which includes url-encoding, punycode, etc.
|
|
465
|
-
**/ /**
|
|
466
|
-
* MarkdownIt#normalizeLinkText(url) -> String
|
|
467
|
-
*
|
|
468
|
-
* Function used to decode link url to a human-readable format`
|
|
469
|
-
**/ // Expose utils & helpers for easy acces from plugins
|
|
470
|
-
/**
|
|
471
|
-
* MarkdownIt#utils -> utils
|
|
472
|
-
*
|
|
473
|
-
* Assorted utility functions, useful to write plugins. See details
|
|
474
|
-
* [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).
|
|
475
|
-
**/ /**
|
|
476
|
-
* MarkdownIt#helpers -> helpers
|
|
477
|
-
*
|
|
478
|
-
* Link components parser functions, useful to write plugins. See details
|
|
479
|
-
* [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).
|
|
480
|
-
**/!r&&!dB.isString(e)&&(r=e||{},e="default"),this.inline=new KO,this.block=new LO,this.core=new eO,this.renderer=new MB,this.linkify=new tj,this.validateLink=se,this.normalizeLink=oe,this.normalizeLinkText=ae,this.utils=dB,this.helpers=dB.assign({},DB),this.options={},this.configure(e),r&&this.set(r)):new ie(e,r)}/** chainable
|
|
481
|
-
* MarkdownIt.set(options)
|
|
482
|
-
*
|
|
483
|
-
* Set parser options (in the same format as in constructor). Probably, you
|
|
484
|
-
* will never need it, but you can change options after constructor call.
|
|
485
|
-
*
|
|
486
|
-
* ##### Example
|
|
487
|
-
*
|
|
488
|
-
* ```javascript
|
|
489
|
-
* var md = require('markdown-it')()
|
|
490
|
-
* .set({ html: true, breaks: true })
|
|
491
|
-
* .set({ typographer, true });
|
|
492
|
-
* ```
|
|
493
|
-
*
|
|
494
|
-
* __Note:__ To achieve the best possible performance, don't modify a
|
|
495
|
-
* `markdown-it` instance options on the fly. If you need multiple configurations
|
|
496
|
-
* it's best to create multiple instances and initialize each with separate
|
|
497
|
-
* config.
|
|
498
|
-
**/function ce(e,t){var n=e.posMax,s=e.pos,o,a,i;if(94!==e.src.charCodeAt(s)/* ^ */)return!1;if(t)return!1;// don't run any pairs in validation mode
|
|
499
|
-
if(s+2>=n)return!1;for(e.pos=s+1;e.pos<n;){if(94===e.src.charCodeAt(e.pos)/* ^ */){o=!0;break}e.md.inline.skipToken(e)}return o&&s+1!==e.pos?(a=e.src.slice(s+1,e.pos),a.match(/(^|[^\\])(\\\\)*\s/))?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,i=e.push("sup_open","sup",1),i.markup="^",i=e.push("text","",0),i.content=a.replace(r,"$1"),i=e.push("sup_close","sup",-1),i.markup="^",e.pos=e.posMax+1,e.posMax=n,!0):(e.pos=s,!1);// found!
|
|
500
|
-
}function pe(e,r){var t=e.posMax,s=e.pos,o,a,i;if(126!==e.src.charCodeAt(s)/* ~ */)return!1;if(r)return!1;// don't run any pairs in validation mode
|
|
501
|
-
if(s+2>=t)return!1;for(e.pos=s+1;e.pos<t;){if(126===e.src.charCodeAt(e.pos)/* ~ */){o=!0;break}e.md.inline.skipToken(e)}return o&&s+1!==e.pos?(a=e.src.slice(s+1,e.pos),a.match(/(^|[^\\])(\\\\)*\s/))?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,i=e.push("sub_open","sub",1),i.markup="~",i=e.push("text","",0),i.content=a.replace(n,"$1"),i=e.push("sub_close","sub",-1),i.markup="~",e.pos=e.posMax+1,e.posMax=t,!0):(e.pos=s,!1);// found!
|
|
502
|
-
}// Process footnotes
|
|
503
|
-
// Renderer partials
|
|
504
|
-
function ue(e,r,t,s/*, slf*/){var o=(+(e[r].meta.id+1)).toString(),n="";return"string"==typeof s.docId&&(n="-"+s.docId+"-"),n+o}function de(e,r/*, options, env, slf*/){var t=(+(e[r].meta.id+1)).toString();return 0<e[r].meta.subId&&(t+=":"+e[r].meta.subId),"["+t+"]"}function he(e,r,t,n,s){var o=s.rules.footnote_anchor_name(e,r,t,n,s),a=s.rules.footnote_caption(e,r,t,n,s),i=o;return 0<e[r].meta.subId&&(i+=":"+e[r].meta.subId),"<sup class=\"footnote-ref\"><a href=\"#fn"+o+"\" id=\"fnref"+i+"\">"+a+"</a></sup>"}function me(e,r,t){return(t.xhtmlOut?"<hr class=\"footnotes-sep\" />\n":"<hr class=\"footnotes-sep\">\n")+"<section class=\"footnotes\">\n<ol class=\"footnotes-list\">\n"}function fe(){return"</ol>\n</section>\n"}function be(e,r,t,n,s){var o=s.rules.footnote_anchor_name(e,r,t,n,s);return 0<e[r].meta.subId&&(o+=":"+e[r].meta.subId),"<li id=\"fn"+o+"\" class=\"footnote-item\">"}function _e(){return"</li>\n"}function ke(e,r,t,n,s){var o=s.rules.footnote_anchor_name(e,r,t,n,s);/* ↩ with escape code to prevent display as Apple Emoji on iOS */return 0<e[r].meta.subId&&(o+=":"+e[r].meta.subId)," <a href=\"#fnref"+o+"\" class=\"footnote-backref\">\u21A9\uFE0E</a>"}function ye(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function xe(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function ve(e){for(var r=1,t;r<arguments.length;r++)t=null==arguments[r]?{}:arguments[r],r%2?xe(t,!0).forEach(function(r){ye(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):xe(t).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))});return e}function qe(e){return e.replace(Dj.regex,Dj.render).replace(Ej.regex,Ej.render).replace(Tj.regex,Tj.render).replace(Rj.regex,Rj.render).replace(zj.regex,zj.render)}function Le(e){e.src=qe(e.src)}var Se="\xE1",Ee="\u0102",Te="\u0103",De="\u223E",Ie="\u223F",ze="\u223E\u0333",Ne="\xC2",Me="\xE2",Pe="\xB4",Ve="\u0410",Ue="\u0430",Be="\xC6",Oe="\xE6",je="\u2061",Ge="\uD835\uDD04",He="\uD835\uDD1E",Ze="\xC0",Fe="\xE0",$e="\u2135",Je="\u2135",Ye="\u0391",We="\u03B1",Qe="\u0100",Ke="\u0101",Xe="\u2A3F",er="&",rr="&",tr="\u2A55",nr="\u2A53",sr="\u2227",ar="\u2A5C",ir="\u2A58",lr="\u2A5A",cr="\u2220",ur="\u29A4",dr="\u2220",hr="\u29A8",mr="\u29A9",gr="\u29AA",fr="\u29AB",br="\u29AC",_r="\u29AD",kr="\u29AE",yr="\u29AF",xr="\u2221",vr="\u221F",qr="\u22BE",Lr="\u299D",Cr="\u2222",Ar="\xC5",Sr="\u237C",Er="\u0104",Tr="\u0105",Dr="\uD835\uDD38",Ir="\uD835\uDD52",zr="\u2A6F",Rr="\u2248",Nr="\u2A70",Mr="\u224A",Vr="\u224B",Ur="'",Br="\u2061",jr="\u2248",Gr="\u224A",Hr="\xC5",Zr="\xE5",Fr="\uD835\uDC9C",$r="\uD835\uDCB6",Jr="\u2254",Yr="*",Wr="\u2248",Qr="\u224D",Kr="\xC3",Xr="\xE3",et="\xC4",rt="\xE4",tt="\u2233",nt="\u2A11",st="\u224C",ot="\u03F6",at="\u2035",ct="\u223D",pt="\u22CD",ut="\u2216",dt="\u2AE7",ht="\u22BD",mt="\u2305",ft="\u2306",bt="\u2305",_t="\u23B5",kt="\u23B6",yt="\u224C",xt="\u0411",vt="\u0431",qt="\u201E",wt="\u2235",Ct="\u2235",At="\u2235",St="\u29B0",Et="\u03F6",Tt="\u212C",Dt="\u212C",It="\u0392",zt="\u03B2",Rt="\u2136",Nt="\u226C",Mt="\uD835\uDD05",Pt="\uD835\uDD1F",Vt="\u22C2",Ut="\u25EF",Bt="\u22C3",Ot="\u2A00",jt="\u2A01",Ht="\u2A02",Zt="\u2A06",Ft="\u2605",$t="\u25BD",Jt="\u25B3",Yt="\u2A04",Wt="\u22C1",Qt="\u22C0",Kt="\u290D",Xt="\u29EB",en="\u25AA",rn="\u25B4",tn="\u25BE",nn="\u25C2",sn="\u25B8",on="\u2423",an="\u2592",ln="\u2591",cn="\u2593",pn="\u2588",un="=\u20E5",dn="\u2261\u20E5",hn="\u2AED",mn="\u2310",gn="\uD835\uDD39",fn="\uD835\uDD53",bn="\u22A5",_n="\u22A5",kn="\u22C8",yn="\u29C9",xn="\u2510",vn="\u2555",qn="\u2556",Ln="\u2557",wn="\u250C",Cn="\u2552",An="\u2553",Sn="\u2554",En="\u2500",Tn="\u2550",Dn="\u252C",In="\u2564",zn="\u2565",Rn="\u2566",Nn="\u2534",Mn="\u2567",Pn="\u2568",Vn="\u2569",Un="\u229F",Bn="\u229E",On="\u22A0",jn="\u2518",Gn="\u255B",Hn="\u255C",Zn="\u255D",Fn="\u2514",$n="\u2558",Jn="\u2559",Yn="\u255A",Wn="\u2502",Qn="\u2551",Kn="\u253C",Xn="\u256A",es="\u256B",rs="\u256C",ts="\u2524",ns="\u2561",ss="\u2562",os="\u2563",as="\u251C",is="\u255E",ls="\u255F",cs="\u2560",ps="\u2035",us="\u02D8",ds="\u02D8",hs="\xA6",ms="\uD835\uDCB7",gs="\u212C",fs="\u204F",bs="\u223D",_s="\u22CD",ks="\u29C5",ys="\\",xs="\u27C8",vs="\u2022",qs="\u2022",Ls="\u224E",ws="\u2AAE",Cs="\u224F",As="\u224E",Ss="\u224F",Es="\u0106",Ts="\u0107",Ds="\u2A44",Is="\u2A49",zs="\u2A4B",Rs="\u2229",Ns="\u22D2",Ms="\u2A47",Ps="\u2A40",Vs="\u2145",Us="\u2229\uFE00",Bs="\u2041",Os="\u02C7",js="\u212D",Gs="\u2A4D",Hs="\u010C",Zs="\u010D",Fs="\xC7",$s="\xE7",Js="\u0108",Ys="\u0109",Ws="\u2230",Qs="\u2A4C",Ks="\u2A50",Xs="\u010A",eo="\u010B",ro="\xB8",to="\xB8",no="\u29B2",so="\xA2",oo="\xB7",ao="\xB7",io="\uD835\uDD20",lo="\u212D",co="\u0427",po="\u0447",uo="\u2713",ho="\u2713",mo="\u03A7",go="\u03C7",fo="\u02C6",bo="\u2257",_o="\u21BA",ko="\u21BB",yo="\u229B",xo="\u229A",vo="\u229D",qo="\u2299",Lo="\xAE",wo="\u24C8",Co="\u2296",Ao="\u2295",So="\u2297",Eo="\u25CB",To="\u29C3",Do="\u2257",Io="\u2A10",zo="\u2AEF",Ro="\u29C2",No="\u2232",Mo="\u201D",Po="\u2019",Vo="\u2663",Uo="\u2663",Bo=":",Oo="\u2237",jo="\u2A74",Go="\u2254",Ho="\u2254",Zo=",",Fo="@",$o="\u2201",Jo="\u2218",Yo="\u2201",Wo="\u2102",Qo="\u2245",Ko="\u2A6D",Xo="\u2261",ea="\u222E",ra="\u222F",ta="\u222E",na="\uD835\uDD54",sa="\u2102",oa="\u2210",aa="\u2210",ia="\xA9",la="\xA9",ca="\u2117",pa="\u2233",ua="\u21B5",da="\u2717",ha="\u2A2F",ma="\uD835\uDC9E",ga="\uD835\uDCB8",fa="\u2ACF",ba="\u2AD1",_a="\u2AD0",ka="\u2AD2",ya="\u22EF",xa="\u2938",va="\u2935",qa="\u22DE",La="\u22DF",wa="\u21B6",Ca="\u293D",Aa="\u2A48",Sa="\u2A46",Ea="\u224D",Ta="\u222A",Da="\u22D3",Ia="\u2A4A",za="\u228D",Ra="\u2A45",Na="\u222A\uFE00",Ma="\u21B7",Pa="\u293C",Va="\u22DE",Ua="\u22DF",Ba="\u22CE",Oa="\u22CF",ja="\xA4",Ga="\u21B6",Ha="\u21B7",Za="\u22CE",Fa="\u22CF",$a="\u2232",Ja="\u2231",Ya="\u232D",Wa="\u2020",Qa="\u2021",Ka="\u2138",Xa="\u2193",ei="\u21A1",ri="\u21D3",ti="\u2010",si="\u2AE4",oi="\u22A3",ai="\u290F",li="\u02DD",ci="\u010E",ui="\u010F",di="\u0414",hi="\u0434",mi="\u2021",gi="\u21CA",fi="\u2145",bi="\u2146",_i="\u2911",ki="\u2A77",yi="\xB0",vi="\u2207",qi="\u0394",Li="\u03B4",wi="\u29B1",Ci="\u297F",Ai="\uD835\uDD07",Si="\uD835\uDD21",Ei="\u2965",Ti="\u21C3",Di="\u21C2",Ii="\xB4",zi="\u02D9",Ri="\u02DD",Ni="`",Mi="\u02DC",Vi="\u22C4",Ui="\u22C4",Bi="\u22C4",Oi="\u2666",ji="\u2666",Gi="\xA8",Hi="\u2146",Zi="\u03DD",Fi="\u22F2",$i="\xF7",Ji="\xF7",Yi="\u22C7",Wi="\u22C7",Qi="\u0402",Ki="\u0452",rl="\u231E",tl="\u230D",nl="$",sl="\uD835\uDD3B",ol="\uD835\uDD55",al="\xA8",il="\u02D9",cl="\u20DC",pl="\u2250",ul="\u2251",dl="\u2250",hl="\u2238",ml="\u2214",fl="\u22A1",bl="\u2306",_l="\u222F",kl="\xA8",yl="\u21D3",xl="\u21D0",vl="\u21D4",ql="\u2AE4",wl="\u27F8",Cl="\u27FA",Al="\u27F9",Sl="\u21D2",El="\u22A8",Tl="\u21D1",Dl="\u21D5",Il="\u2225",zl="\u2913",Rl="\u2193",Nl="\u2193",Ml="\u21D3",Pl="\u21F5",Vl="\u0311",Ul="\u21CA",Bl="\u21C3",Ol="\u21C2",jl="\u2950",Gl="\u295E",Hl="\u2956",Zl="\u21BD",Fl="\u295F",$l="\u2957",Jl="\u21C1",Yl="\u21A7",Wl="\u22A4",Ql="\u2910",Kl="\u231F",Xl="\u230C",ec="\uD835\uDC9F",rc="\uD835\uDCB9",tc="\u0405",nc="\u0455",oc="\u29F6",ac="\u0110",lc="\u0111",cc="\u22F1",pc="\u25BF",uc="\u25BE",dc="\u21F5",hc="\u296F",mc="\u29A6",gc="\u040F",fc="\u045F",bc="\u27FF",_c="\xC9",kc="\xE9",yc="\u2A6E",xc="\u011A",vc="\u011B",qc="\xCA",Lc="\xEA",wc="\u2256",Cc="\u2255",Ac="\u042D",Ec="\u044D",Tc="\u2A77",Dc="\u0116",Ic="\u0117",zc="\u2251",Rc="\u2147",ee="\u2252",Nc="\uD835\uDD08",Mc="\uD835\uDD22",Pc="\u2A9A",Vc="\xC8",Uc="\xE8",Bc="\u2A96",Oc="\u2A98",jc="\u2A99",el="\u2208",Gc="\u23E7",Hc="\u2113",Zc="\u2A95",Fc="\u2A97",$c="\u0112",Jc="\u0113",Yc="\u2205",Wc="\u2205",Qc="\u25FB",Kc="\u2205",Xc="\u25AB",ep="\u2004",rp="\u2005",tp="\u2003",np="\u014A",sp="\u014B",op="\u2002",ap="\u0118",ip="\u0119",lp="\uD835\uDD3C",cp="\uD835\uDD56",pp="\u22D5",up="\u29E3",dp="\u2A71",hp="\u03B5",gp="\u0395",fp="\u03B5",bp="\u03F5",_p="\u2256",kp="\u2255",yp="\u2242",xp="\u2A96",vp="\u2A95",qp="\u2A75",Lp="=",Cp="\u2242",Ap="\u225F",Sp="\u21CC",Ep="\u2261",Tp="\u2A78",Dp="\u29E5",Ip="\u2971",zp="\u2253",Rp="\u212F",Np="\u2130",Mp="\u2250",Pp="\u2A73",Vp="\u2242",Up="\u0397",Bp="\u03B7",Op="\xD0",jp="\xF0",Gp="\xCB",Hp="\xEB",Zp="\u20AC",Fp="!",$p="\u2203",Jp="\u2203",Yp="\u2130",Wp="\u2147",Qp="\u2147",Kp="\u2252",Xp="\u0424",eu="\u0444",ru="\u2640",tu="\uFB03",su="\uFB00",ou="\uFB04",au="\uD835\uDD09",iu="\uD835\uDD23",lu="\uFB01",cu="\u25FC",pu="\u25AA",uu="fj",du="\u266D",hu="\uFB02",gu="\u25B1",fu="\u0192",bu="\uD835\uDD3D",_u="\uD835\uDD57",ku="\u2200",yu="\u2200",xu="\u22D4",vu="\u2AD9",qu="\u2131",Lu="\u2A0D",wu="\xBD",Cu="\u2153",Au="\xBC",Su="\u2155",Eu="\u2159",Tu="\u215B",Du="\u2154",Iu="\u2156",zu="\xBE",Ru="\u2157",Pu="\u215C",Vu="\u2158",Uu="\u215A",Bu="\u215D",Ou="\u215E",ju="\u2044",Gu="\u2322",Hu="\uD835\uDCBB",Zu="\u2131",Fu="\u01F5",$u="\u0393",Ju="\u03B3",Yu="\u03DC",Wu="\u03DD",Qu="\u2A86",Ku="\u011E",Xu="\u011F",ed="\u0122",rd="\u011C",td="\u011D",nd="\u0413",sd="\u0433",od="\u0120",ad="\u0121",id="\u2265",ge="\u2267",ld="\u2A8C",cd="\u22DB",pd="\u2265",ud="\u2267",dd="\u2A7E",hd="\u2AA9",md="\u2A7E",gd="\u2A80",fd="\u2A82",bd="\u2A84",_d="\u22DB\uFE00",kd="\u2A94",yd="\uD835\uDD0A",xd="\uD835\uDD24",vd="\u226B",qd="\u22D9",Ld="\u22D9",wd="\u2137",Cd="\u0403",Ad="\u0453",Sd="\u2AA5",Ed="\u2277",gl="\u2A92",Td="\u2AA4",Dd="\u2A8A",Id="\u2A8A",zd="\u2A88",Rd="\u2269",Nd="\u2A88",Md="\u2269",Pd="\u22E7",Vd="\uD835\uDD3E",Ud="\uD835\uDD58",Bd="`",Od="\u2265",jd="\u22DB",Gd="\u2267",Hd="\u2AA2",Zd="\u2277",Fd="\u2A7E",$d="\u2273",Jd="\uD835\uDCA2",Yd="\u210A",Wd="\u2273",Qd="\u2A8E",Kd="\u2A90",Xd="\u2AA7",eh="\u2A7A",rh=">",gt=">",th="\u226B",Gt="\u22D7",nh="\u2995",sh="\u2A7C",oh="\u2A86",ah="\u2978",ih="\u22D7",lh="\u22DB",ch="\u2A8C",ph="\u2277",uh="\u2273",dh="\u2269\uFE00",hh="\u2269\uFE00",mh="\u02C7",gh="\u200A",fh="\xBD",bh="\u210B",_h="\u042A",kh="\u044A",yh="\u2948",xh="\u2194",vh="\u21D4",qh="\u21AD",Lh="^",wh="\u210F",Ch="\u0124",Ah="\u0125",Sh="\u2665",Eh="\u2665",Th="\u2026",Dh="\u22B9",Ih="\uD835\uDD25",zh="\u210C",Rh="\u210B",Nh="\u2925",Mh="\u2926",Ph="\u21FF",Vh="\u223B",Uh="\u21A9",Bh="\u21AA",Oh="\uD835\uDD59",jh="\u210D",Gh="\u2015",Hh="\u2500",Zh="\uD835\uDCBD",Fh="\u210B",$h="\u210F",Jh="\u0126",Yh="\u0127",Wh="\u224E",Qh="\u224F",Kh="\u2043",Xh="\u2010",em="\xCD",rm="\xED",tm="\u2063",ic="\xCE",nm="\xEE",sm="\u0418",om="\u0438",am="\u0130",im="\u0415",lm="\u0435",cm="\xA1",um="\u21D4",dm="\uD835\uDD26",hm="\u2111",mm="\xCC",gm="\xEC",fm="\u2148",ii="\u2A0C",bm="\u222D",_m="\u29DC",km="\u2129",ym="\u0132",xm="\u0133",vm="\u012A",qm="\u012B",Lm="\u2111",wm="\u2148",Cm="\u2110",Am="\u2111",Sm="\u0131",Em="\u2111",Tm="\u22B7",Dm="\u01B5",Im="\u21D2",zm="\u2105",Rm="\u221E",Nm="\u29DD",Mm="\u0131",Pm="\u22BA",Vm="\u222B",Um="\u222C",Bm="\u2124",Om="\u222B",jm="\u22BA",Gm="\u22C2",Hm="\u2A17",Zm="\u2A3C",Fm="\u2063",$m="\u2062",Jm="\u0401",Ym="\u0451",Wm="\u012E",Qm="\u012F",Km="\uD835\uDD40",Xm="\uD835\uDD5A",eg="\u0399",rg="\u03B9",tg="\u2A3C",ng="\xBF",sg="\uD835\uDCBE",og="\u2110",ag="\u2208",ig="\u22F5",cg="\u22F9",pg="\u22F4",ug="\u22F3",dg="\u2208",hg="\u2062",it="\u0128",mg="\u0129",gg="\u0406",fg="\u0456",bg="\xCF",_g="\xEF",kg="\u0134",yg="\u0135",xg="\u0419",vg="\u0439",qg="\uD835\uDD0D",Lg="\uD835\uDD27",wg="\u0237",Cg="\uD835\uDD41",Ag="\uD835\uDD5B",Sg="\uD835\uDCA5",Eg="\uD835\uDCBF",Tg="\u0408",Dg="\u0458",Ig="\u0404",zg="\u0454",Rg="\u039A",Ng="\u03BA",Mg="\u03F0",Pg="\u0136",Vg="\u0137",Ug="\u041A",Bg="\u043A",Og="\uD835\uDD0E",jg="\uD835\uDD28",Gg="\u0138",Hg="\u0425",Zg="\u0445",Fg="\u040C",$g="\u045C",Jg="\uD835\uDD42",Yg="\uD835\uDD5C",Wg="\uD835\uDCA6",Qg="\uD835\uDCC0",Kg="\u21DA",Xg="\u0139",ef="\u013A",rf="\u29B4",tf="\u2112",nf="\u039B",sf="\u03BB",of="\u27E8",af="\u27EA",lf="\u2991",cf="\u27E8",pf="\u2A85",uf="\u2112",df="\xAB",hf="\u21E4",mf="\u291F",gf="\u2190",ff="\u219E",bf="\u21D0",_f="\u291D",kf="\u21A9",yf="\u21AB",xf="\u2939",vf="\u2973",qf="\u21A2",Lf="\u2919",wf="\u291B",Cf="\u2AAB",Af="\u2AAD",Sf="\u2AAD\uFE00",Ef="\u290C",Tf="\u290E",Df="\u2772",If="{",zf="[",Rf="\u298B",Nf="\u298F",Mf="\u298D",Pf="\u013D",Vf="\u013E",Uf="\u013B",Bf="\u013C",Of="\u2308",jf="{",Gf="\u041B",Hf="\u043B",Zf="\u2936",Ff="\u201C",$f="\u201E",Jf="\u2967",Yf="\u294B",Wf="\u21B2",Qf="\u2264",le="\u2266",Kf="\u27E8",Xf="\u21E4",eb="\u2190",rb="\u2190",tb="\u21D0",nb="\u21C6",sb="\u21A2",ob="\u2308",ab="\u27E6",ib="\u2961",lb="\u2959",cb="\u21C3",pb="\u230A",ub="\u21BD",db="\u21BC",hb="\u21C7",mb="\u2194",gb="\u2194",fb="\u21D4",bb="\u21C6",_b="\u21CB",kb="\u21AD",yb="\u294E",xb="\u21A4",vb="\u22A3",qb="\u295A",Lb="\u22CB",wb="\u29CF",Cb="\u22B2",Ab="\u22B4",Sb="\u2951",Eb="\u2960",Tb="\u2958",Db="\u21BF",Ib="\u2952",zb="\u21BC",Rb="\u2A8B",Nb="\u22DA",Mb="\u2264",Pb="\u2266",Vb="\u2A7D",Ub="\u2AA8",Bb="\u2A7D",Ob="\u2A7F",jb="\u2A81",Gb="\u2A83",Hb="\u22DA\uFE00",Zb="\u2A93",Fb="\u2A85",$b="\u22D6",Jb="\u22DA",Yb="\u2A8B",Wb="\u22DA",Qb="\u2266",Kb="\u2276",Xb="\u2276",e_="\u2AA1",r_="\u2272",t_="\u2A7D",n_="\u2272",s_="\u297C",o_="\u230A",a_="\uD835\uDD0F",i_="\uD835\uDD29",l_="\u2276",lg="\u2A91",c_="\u2962",p_="\u21BD",u_="\u21BC",d_="\u296A",h_="\u2584",m_="\u0409",g_="\u0459",f_="\u21C7",b_="\u226A",ll="\u22D8",Ll="\u231E",__="\u21DA",k_="\u296B",y_="\u25FA",x_="\u013F",v_="\u0140",q_="\u23B0",L_="\u23B0",w_="\u2A89",C_="\u2A89",A_="\u2A87",S_="\u2268",E_="\u2A87",T_="\u2268",D_="\u22E6",I_="\u27EC",z_="\u21FD",R_="\u27E6",N_="\u27F5",M_="\u27F5",P_="\u27F8",V_="\u27F7",U_="\u27F7",B_="\u27FA",O_="\u27FC",j_="\u27F6",G_="\u27F6",H_="\u27F9",Z_="\u21AB",F_="\u21AC",$_="\u2985",J_="\uD835\uDD43",Y_="\uD835\uDD5D",W_="\u2A2D",Q_="\u2A34",K_="\u2217",X_="_",ek="\u2199",rk="\u2198",tk="\u25CA",nk="\u25CA",sk="\u29EB",ok="(",ak="\u2993",ik="\u21C6",lk="\u231F",ck="\u21CB",pk="\u296D",uk="\u200E",dk="\u22BF",hk="\u2039",mk="\uD835\uDCC1",gk="\u2112",fk="\u21B0",bk="\u21B0",_k="\u2272",kk="\u2A8D",yk="\u2A8F",xk="[",vk="\u2018",qk="\u201A",Lk="\u0141",wk="\u0142",Ck="\u2AA6",Ak="\u2A79",Sk="<",lt="<",Ek="\u226A",Lt="\u22D6",Tk="\u22CB",Dk="\u22C9",Ik="\u2976",zk="\u2A7B",Rk="\u25C3",Nk="\u22B4",Mk="\u25C2",Pk="\u2996",Vk="\u294A",Uk="\u2966",Bk="\u2268\uFE00",Ok="\u2268\uFE00",jk="\xAF",Gk="\u2642",Hk="\u2720",Zk="\u2720",Fk="\u21A6",$k="\u21A6",Jk="\u21A7",Yk="\u21A4",Wk="\u21A5",Qk="\u25AE",Kk="\u2A29",Xk="\u041C",ey="\u043C",ry="\u2014",ty="\u223A",ny="\u2221",sy="\u205F",oy="\u2133",ay="\uD835\uDD10",iy="\uD835\uDD2A",ly="\u2127",cy="\xB5",py="*",uy="\u2AF0",dy="\u2223",hy="\xB7",my="\u229F",gy="\u2212",fy="\u2238",by="\u2A2A",_y="\u2213",ky="\u2ADB",yy="\u2026",xy="\u2213",vy="\u22A7",qy="\uD835\uDD44",Ly="\uD835\uDD5E",wy="\u2213",mp="\uD835\uDCC2",Cy="\u2133",Ay="\u223E",Sy="\u039C",Mu="\u03BC",mu="\u22B8",Ey="\u22B8",Ty="\u2207",Dy="\u0143",Iy="\u0144",zy="\u2220\u20D2",Ry="\u2249",Ny="\u2A70\u0338",My="\u224B\u0338",Py="\u0149",Vy="\u2249",Uy="\u266E",By="\u2115",Oy="\u266E",jy="\xA0",Gy="\u224E\u0338",Hy="\u224F\u0338",Zy="\u2A43",Fy="\u0147",$y="\u0148",Jy="\u0145",Yy="\u0146",Wy="\u2247",Qy="\u2A6D\u0338",Ky="\u2A42",Xy="\u041D",ex="\u043D",tx="\u2013",nx="\u2924",sx="\u2197",ox="\u21D7",ax="\u2197",ix="\u2260",ne="\u2250\u0338",lx="\u200B",cx="\u200B",px="\u200B",ux="\u200B",dx="\u2262",hx="\u2928",mx="\u2242\u0338",gx="\u226B",fx="\u226A",bx="\n",_x="\u2204",kx="\u2204",yx="\uD835\uDD11",xx="\uD835\uDD2B",vx="\u2267\u0338",qx="\u2271",Lx="\u2271",wx="\u2267\u0338",Cx="\u2A7E\u0338",Ax="\u2A7E\u0338",Sx="\u22D9\u0338",Ex="\u2275",Tx="\u226B\u20D2",Dx="\u226F",Ix="\u226F",zx="\u226B\u0338",Rx="\u21AE",Nx="\u21CE",Mx="\u2AF2",Px="\u220B",ni="\u22FC",Vx="\u22FA",Ux="\u220B",Bx="\u040A",Ox="\u045A",jx="\u219A",Gx="\u21CD",Hx="\u2025",Zx="\u2266\u0338",Fx="\u2270",$x="\u219A",Jx="\u21CD",Yx="\u21AE",Wx="\u21CE",Qx="\u2270",Kx="\u2266\u0338",Xx="\u2A7D\u0338",ev="\u2A7D\u0338",rv="\u226E",tv="\u22D8\u0338",nv="\u2274",sv="\u226A\u20D2",ov="\u226E",av="\u22EA",iv="\u22EC",lv="\u226A\u0338",cv="\u2224",pv="\u2060",uv="\xA0",dv="\uD835\uDD5F",hv="\u2115",mv="\u2AEC",gv="\xAC",fv="\u2262",bv="\u226D",_v="\u2226",kv="\u2209",yv="\u2260",xv="\u2242\u0338",vv="\u2204",qv="\u226F",Lv="\u2271",wv="\u2267\u0338",Cv="\u226B\u0338",Av="\u2279",Sv="\u2A7E\u0338",Ev="\u2275",Tv="\u224E\u0338",Dv="\u224F\u0338",Iv="\u2209",zv="\u22F5\u0338",Rv="\u22F9\u0338",Nv="\u2209",Mv="\u22F7",Pv="\u22F6",Vv="\u29CF\u0338",Uv="\u22EA",Bv="\u22EC",Ov="\u226E",jv="\u2270",Gv="\u2278",Hv="\u226A\u0338",Zv="\u2A7D\u0338",Fv="\u2274",$v="\u2AA2\u0338",Jv="\u2AA1\u0338",Yv="\u220C",Wv="\u220C",Qv="\u22FE",Kv="\u22FD",Xv="\u2280",eq="\u2AAF\u0338",rq="\u22E0",tq="\u220C",nq="\u29D0\u0338",sq="\u22EB",oq="\u22ED",aq="\u228F\u0338",iq="\u22E2",lq="\u2290\u0338",cq="\u22E3",pq="\u2282\u20D2",uq="\u2288",dq="\u2281",hq="\u2AB0\u0338",mq="\u22E1",gq="\u227F\u0338",fq="\u2283\u20D2",bq="\u2289",_q="\u2241",kq="\u2244",yq="\u2247",xq="\u2249",vq="\u2224",qq="\u2226",Lq="\u2226",wq="\u2AFD\u20E5",Cq="\u2202\u0338",Aq="\u2A14",Sq="\u2280",Eq="\u22E0",Tq="\u2280",Dq="\u2AAF\u0338",Iq="\u2AAF\u0338",zq="\u2933\u0338",Rq="\u219B",Nq="\u21CF",Mq="\u219D\u0338",Pq="\u219B",Vq="\u21CF",Uq="\u22EB",Bq="\u22ED",Oq="\u2281",jq="\u22E1",Gq="\u2AB0\u0338",Hq="\uD835\uDCA9",Zq="\uD835\uDCC3",Fq="\u2224",$q="\u2226",Jq="\u2241",Yq="\u2244",Wq="\u2244",Qq="\u2224",Kq="\u2226",Xq="\u22E2",eL="\u22E3",rL="\u2284",tL="\u2AC5\u0338",nL="\u2288",sL="\u2282\u20D2",oL="\u2288",aL="\u2AC5\u0338",iL="\u2281",lL="\u2AB0\u0338",cL="\u2285",pL="\u2AC6\u0338",uL="\u2289",dL="\u2283\u20D2",hL="\u2289",mL="\u2AC6\u0338",gL="\u2279",fL="\xD1",bL="\xF1",_L="\u2278",kL="\u22EA",yL="\u22EC",xL="\u22EB",vL="\u22ED",qL="\u039D",Nu="\u03BD",nu="#",LL="\u2116",wL="\u2007",CL="\u224D\u20D2",AL="\u22AC",SL="\u22AD",EL="\u22AE",TL="\u22AF",DL="\u2265\u20D2",IL=">\u20D2",zL="\u2904",RL="\u29DE",NL="\u2902",ML="\u2264\u20D2",PL="<\u20D2",VL="\u22B4\u20D2",UL="\u2903",BL="\u22B5\u20D2",OL="\u223C\u20D2",jL="\u2923",GL="\u2196",HL="\u21D6",ZL="\u2196",FL="\u2927",$L="\xD3",JL="\xF3",YL="\u229B",WL="\xD4",QL="\xF4",KL="\u229A",XL="\u041E",ew="\u043E",rw="\u229D",tw="\u0150",nw="\u0151",sw="\u2A38",ow="\u2299",aw="\u29BC",iw="\u0152",lw="\u0153",cw="\u29BF",pw="\uD835\uDD12",uw="\uD835\uDD2C",dw="\u02DB",hw="\xD2",mw="\xF2",gw="\u29C1",fw="\u29B5",bw="\u03A9",_w="\u222E",kw="\u21BA",yw="\u29BE",xw="\u29BB",vw="\u203E",qw="\u29C0",Lw="\u014C",ww="\u014D",Cw="\u03A9",Aw="\u03C9",Sw="\u039F",Ew="\u03BF",Tw="\u29B6",Dw="\u2296",Iw="\uD835\uDD46",zw="\uD835\uDD60",Rw="\u29B7",Nw="\u201C",Mw="\u2018",Pw="\u29B9",Vw="\u2295",Uw="\u21BB",Bw="\u2A54",Or="\u2228",or="\u2A5D",Ow="\u2134",jw="\u2134",Gw="\xAA",Hw="\xBA",Zw="\u22B6",Fw="\u2A56",$w="\u2A57",Jw="\u2A5B",Yw="\u24C8",Ww="\uD835\uDCAA",Qw="\u2134",Kw="\xD8",Xw="\xF8",eC="\u2298",rC="\xD5",tC="\xF5",nC="\u2A36",sC="\u2A37",oC="\u2297",aC="\xD6",iC="\xF6",lC="\u233D",cC="\u203E",pC="\u23DE",uC="\u23B4",dC="\u23DC",hC="\xB6",mC="\u2225",gC="\u2225",fC="\u2AF3",bC="\u2AFD",_C="\u2202",kC="\u2202",yC="\u041F",xC="\u043F",vC="%",qC=".",LC="\u2030",wC="\u22A5",CC="\u2031",AC="\uD835\uDD13",SC="\uD835\uDD2D",EC="\u03A6",TC="\u03C6",DC="\u03D5",IC="\u2133",zC="\u260E",RC="\u03A0",Pi="\u03C0",pi="\u22D4",NC="\u03D6",MC="\u210F",PC="\u210E",VC="\u210F",UC="\u2A23",BC="\u229E",OC="\u2A22",jC="+",GC="\u2214",HC="\u2A25",ZC="\u2A72",FC="\xB1",$C="\xB1",JC="\u2A26",YC="\u2A27",WC="\xB1",pm="\u210C",QC="\u2A15",KC="\uD835\uDD61",XC="\u2119",eA="\xA3",rA="\u2AB7",tA="\u2ABB",Pr="\u227A",pr="\u227C",nA="\u2AB7",sA="\u227A",oA="\u227C",aA="\u227A",iA="\u2AAF",lA="\u227C",cA="\u227E",pA="\u2AAF",uA="\u2AB9",dA="\u2AB5",hA="\u22E8",mA="\u2AAF",gA="\u2AB3",fA="\u227E",bA="\u2032",_A="\u2033",kA="\u2119",yA="\u2AB9",xA="\u2AB5",vA="\u22E8",qA="\u220F",LA="\u220F",wA="\u232E",CA="\u2312",AA="\u2313",SA="\u221D",EA="\u221D",TA="\u2237",DA="\u221D",IA="\u227E",zA="\u22B0",RA="\uD835\uDCAB",NA="\uD835\uDCC5",MA="\u03A8",PA="\u03C8",VA="\u2008",UA="\uD835\uDD14",BA="\uD835\uDD2E",OA="\u2A0C",jA="\uD835\uDD62",GA="\u211A",HA="\u2057",ZA="\uD835\uDCAC",FA="\uD835\uDCC6",$A="\u210D",JA="\u2A16",YA="?",WA="\u225F",QA="\"",KA="\"",XA="\u21DB",eS="\u223D\u0331",rS="\u0154",tS="\u0155",nS="\u221A",sS="\u29B3",oS="\u27E9",aS="\u27EB",iS="\u2992",lS="\u29A5",cS="\u27E9",pS="\xBB",uS="\u2975",dS="\u21E5",hS="\u2920",mS="\u2933",gS="\u2192",fS="\u21A0",bS="\u21D2",_S="\u291E",kS="\u21AA",yS="\u21AC",xS="\u2945",vS="\u2974",qS="\u2916",LS="\u21A3",wS="\u219D",CS="\u291A",AS="\u291C",SS="\u2236",ES="\u211A",TS="\u290D",DS="\u290F",IS="\u2910",zS="\u2773",RS="}",NS="]",MS="\u298C",PS="\u298E",VS="\u2990",US="\u0158",BS="\u0159",OS="\u0156",jS="\u0157",GS="\u2309",HS="}",ZS="\u0420",FS="\u0440",$S="\u2937",JS="\u2969",YS="\u201D",WS="\u201D",QS="\u21B3",KS="\u211C",XS="\u211B",eE="\u211C",rE="\u211D",tE="\u211C",Re="\u25AD",nE="\xAE",sE="\xAE",oE="\u220B",aE="\u21CB",iE="\u296F",lE="\u297D",cE="\u230B",pE="\uD835\uDD2F",uE="\u211C",dE="\u2964",hE="\u21C1",mE="\u21C0",gE="\u296C",fE="\u03A1",bE="\u03C1",_E="\u03F1",kE="\u27E9",yE="\u21E5",xE="\u2192",vE="\u2192",qE="\u21D2",LE="\u21C4",wE="\u21A3",CE="\u2309",AE="\u27E7",SE="\u295D",EE="\u2955",TE="\u21C2",DE="\u230B",IE="\u21C1",zE="\u21C0",RE="\u21C4",NE="\u21CC",ME="\u21C9",PE="\u219D",VE="\u21A6",UE="\u22A2",BE="\u295B",OE="\u22CC",jE="\u29D0",GE="\u22B3",HE="\u22B5",ZE="\u294F",FE="\u295C",$E="\u2954",JE="\u21BE",YE="\u2953",WE="\u21C0",QE="\u02DA",KE="\u2253",XE="\u21C4",eT="\u21CC",rT="\u200F",tT="\u23B1",nT="\u23B1",sT="\u2AEE",oT="\u27ED",aT="\u21FE",iT="\u27E7",lT="\u2986",cT="\uD835\uDD63",pT="\u211D",uT="\u2A2E",dT="\u2A35",hT="\u2970",mT=")",gT="\u2994",fT="\u2A12",bT="\u21C9",_T="\u21DB",kT="\u203A",yT="\uD835\uDCC7",xT="\u211B",vT="\u21B1",qT="\u21B1",LT="]",wT="\u2019",CT="\u2019",AT="\u22CC",ST="\u22CA",ET="\u25B9",TT="\u22B5",DT="\u25B8",IT="\u29CE",zT="\u29F4",RT="\u2968",NT="\u211E",rx="\u015A",MT="\u015B",PT="\u201A",VT="\u2AB8",UT="\u0160",BT="\u0161",OT="\u2ABC",Sc="\u227B",sc="\u227D",jT="\u2AB0",GT="\u2AB4",HT="\u015E",ZT="\u015F",FT="\u015C",$T="\u015D",JT="\u2ABA",YT="\u2AB6",WT="\u22E9",QT="\u2A13",KT="\u227F",XT="\u0421",eD="\u0441",rD="\u22A1",tD="\u22C5",nD="\u2A66",sD="\u2925",oD="\u2198",aD="\u21D8",iD="\u2198",lD="\xA7",cD=";",pD="\u2929",uD="\u2216",dD="\u2216",hD="\u2736",mD="\uD835\uDD16",gD="\uD835\uDD30",fD="\u2322",bD="\u266F",_D="\u0429",kD="\u0449",yD="\u0428",xD="\u0448",vD="\u2193",qD="\u2190",LD="\u2223",wD="\u2225",CD="\u2192",AD="\u2191",SD="\xAD",ED="\u03A3",TD="\u03C3",DD="\u03C2",ID="\u03C2",zD="\u223C",RD="\u2A6A",ND="\u2243",MD="\u2243",PD="\u2A9E",VD="\u2AA0",UD="\u2A9D",BD="\u2A9F",OD="\u2246",jD="\u2A24",GD="\u2972",HD="\u2190",ZD="\u2218",FD="\u2216",$D="\u2A33",JD="\u29E4",YD="\u2223",WD="\u2323",QD="\u2AAA",KD="\u2AAC",XD="\u2AAC\uFE00",eI="\u042C",rI="\u044C",tI="\u233F",nI="\u29C4",sI="/",oI="\uD835\uDD4A",aI="\uD835\uDD64",iI="\u2660",lI="\u2660",cI="\u2225",pI="\u2293",uI="\u2293\uFE00",dI="\u2294",hI="\u2294\uFE00",mI="\u221A",gI="\u228F",fI="\u2291",bI="\u228F",_I="\u2291",kI="\u2290",yI="\u2292",xI="\u2290",vI="\u2292",qI="\u25A1",LI="\u25A1",wI="\u2293",CI="\u228F",AI="\u2291",SI="\u2290",EI="\u2292",TI="\u2294",DI="\u25AA",II="\u25A1",zI="\u25AA",RI="\u2192",NI="\uD835\uDCAE",MI="\uD835\uDCC8",PI="\u2216",VI="\u2323",UI="\u22C6",BI="\u22C6",OI="\u2606",jI="\u2605",GI="\u03F5",HI="\u03D5",ZI="\xAF",FI="\u2282",$I="\u22D0",JI="\u2ABD",YI="\u2AC5",WI="\u2286",QI="\u2AC3",KI="\u2AC1",XI="\u2ACB",ez="\u228A",rz="\u2ABF",tz="\u2979",nz="\u2282",sz="\u22D0",oz="\u2286",az="\u2AC5",iz="\u2286",lz="\u228A",cz="\u2ACB",pz="\u2AC7",uz="\u2AD5",dz="\u2AD3",hz="\u2AB8",mz="\u227B",gz="\u227D",fz="\u227B",bz="\u2AB0",_z="\u227D",kz="\u227F",yz="\u2AB0",xz="\u2ABA",vz="\u2AB6",qz="\u22E9",Lz="\u227F",wz="\u220B",Cz="\u2211",Az="\u2211",Sz="\u266A",Ez="\xB9",Tz="\xB2",Dz="\xB3",Iz="\u2283",zz="\u22D1",Rz="\u2ABE",Nz="\u2AD8",Mz="\u2AC6",Pz="\u2287",Vz="\u2AC4",Uz="\u2283",Bz="\u2287",Oz="\u27C9",jz="\u2AD7",Gz="\u297B",Hz="\u2AC2",Zz="\u2ACC",Fz="\u228B",$z="\u2AC0",Jz="\u2283",Yz="\u22D1",Wz="\u2287",Qz="\u2AC6",Kz="\u228B",Xz="\u2ACC",eR="\u2AC8",rR="\u2AD4",tR="\u2AD6",nR="\u2926",sR="\u2199",oR="\u21D9",aR="\u2199",iR="\u292A",lR="\xDF",cR="\t",pR="\u2316",uR="\u03A4",dR="\u03C4",hR="\u23B4",mR="\u0164",gR="\u0165",fR="\u0162",bR="\u0163",_R="\u0422",kR="\u0442",yR="\u20DB",xR="\u2315",vR="\uD835\uDD17",qR="\uD835\uDD31",LR="\u2234",wR="\u2234",CR="\u2234",AR="\u0398",SR="\u03B8",ER="\u03D1",TR="\u03D1",DR="\u2248",IR="\u223C",zR="\u205F\u200A",RR="\u2009",NR="\u2009",MR="\u2248",PR="\u223C",VR="\xDE",UR="\xFE",BR="\u02DC",OR="\u223C",jR="\u2243",GR="\u2245",HR="\u2248",ZR="\u2A31",FR="\u22A0",$R="\xD7",JR="\u2A30",YR="\u222D",WR="\u2928",QR="\u2336",KR="\u2AF1",XR="\u22A4",eN="\uD835\uDD4B",rN="\uD835\uDD65",tN="\u2ADA",nN="\u2929",sN="\u2034",oN="\u2122",aN="\u2122",iN="\u25B5",lN="\u25BF",cN="\u25C3",pN="\u22B4",uN="\u225C",dN="\u25B9",hN="\u22B5",mN="\u25EC",gN="\u225C",fN="\u2A3A",bN="\u20DB",_N="\u2A39",kN="\u29CD",yN="\u2A3B",xN="\u23E2",vN="\uD835\uDCAF",qN="\uD835\uDCC9",LN="\u0426",wN="\u0446",CN="\u040B",AN="\u045B",SN="\u0166",EN="\u0167",TN="\u226C",DN="\u219E",IN="\u21A0",zN="\xDA",RN="\xFA",NN="\u2191",MN="\u219F",PN="\u21D1",VN="\u2949",UN="\u040E",BN="\u045E",ON="\u016C",jN="\u016D",GN="\xDB",HN="\xFB",ZN="\u0423",FN="\u0443",$N="\u21C5",JN="\u0170",YN="\u0171",WN="\u296E",QN="\u297E",KN="\uD835\uDD18",XN="\uD835\uDD32",eM="\xD9",rM="\xF9",tM="\u2963",nM="\u21BF",sM="\u21BE",oM="\u2580",aM="\u231C",iM="\u231C",lM="\u230F",cM="\u25F8",pM="\u016A",uM="\u016B",dM="\xA8",hM="_",mM="\u23DF",gM="\u23B5",fM="\u23DD",bM="\u22C3",_M="\u228E",kM="\u0172",yM="\u0173",xM="\uD835\uDD4C",vM="\uD835\uDD66",qM="\u2912",LM="\u2191",wM="\u2191",CM="\u21D1",AM="\u21C5",SM="\u2195",EM="\u2195",TM="\u21D5",DM="\u296E",IM="\u21BF",zM="\u21BE",RM="\u228E",NM="\u2196",MM="\u2197",PM="\u03C5",VM="\u03D2",UM="\u03D2",BM="\u03A5",OM="\u03C5",jM="\u21A5",GM="\u22A5",HM="\u21C8",ZM="\u231D",FM="\u231D",$M="\u230E",JM="\u016E",YM="\u016F",WM="\u25F9",QM="\uD835\uDCB0",KM="\uD835\uDCCA",XM="\u22F0",eP="\u0168",rP="\u0169",tP="\u25B5",nP="\u25B4",sP="\u21C8",oP="\xDC",aP="\xFC",iP="\u29A7",lP="\u299C",cP="\u03F5",pP="\u03F0",uP="\u2205",dP="\u03D5",hP="\u03D6",mP="\u221D",gP="\u2195",fP="\u21D5",bP="\u03F1",_P="\u03C2",kP="\u228A\uFE00",yP="\u2ACB\uFE00",xP="\u228B\uFE00",vP="\u2ACC\uFE00",qP="\u03D1",LP="\u22B2",wP="\u22B3",CP="\u2AE8",AP="\u2AEB",SP="\u2AE9",EP="\u0412",TP="\u0432",DP="\u22A2",IP="\u22A8",zP="\u22A9",RP="\u22AB",NP="\u2AE6",MP="\u22BB",PP="\u2228",VP="\u22C1",UP="\u225A",BP="\u22EE",OP="|",jP="\u2016",GP="|",HP="\u2016",ZP="\u2223",FP="|",$P="\u2758",JP="\u2240",YP="\u200A",WP="\uD835\uDD19",QP="\uD835\uDD33",KP="\u22B2",XP="\u2282\u20D2",eV="\u2283\u20D2",rV="\uD835\uDD4D",tV="\uD835\uDD67",nV="\u221D",sV="\u22B3",oV="\uD835\uDCB1",aV="\uD835\uDCCB",iV="\u2ACB\uFE00",lV="\u228A\uFE00",cV="\u2ACC\uFE00",pV="\u228B\uFE00",uV="\u22AA",dV="\u299A",hV="\u0174",mV="\u0175",gV="\u2A5F",fV="\u2227",bV="\u22C0",_V="\u2259",kV="\u2118",yV="\uD835\uDD1A",xV="\uD835\uDD34",vV="\uD835\uDD4E",qV="\uD835\uDD68",LV="\u2118",wp="\u2240",wr="\u2240",wV="\uD835\uDCB2",CV="\uD835\uDCCC",AV="\u22C2",SV="\u25EF",EV="\u22C3",TV="\u25BD",DV="\uD835\uDD1B",IV="\uD835\uDD35",zV="\u27F7",RV="\u27FA",NV="\u039E",Xi="\u03BE",xi="\u27F5",MV="\u27F8",PV="\u27FC",VV="\u22FB",UV="\u2A00",BV="\uD835\uDD4F",OV="\uD835\uDD69",jV="\u2A01",GV="\u2A02",HV="\u27F6",ZV="\u27F9",FV="\uD835\uDCB3",$V="\uD835\uDCCD",JV="\u2A06",YV="\u2A04",WV="\u25B3",QV="\u22C1",KV="\u22C0",XV="\xDD",eU="\xFD",rU="\u042F",tU="\u044F",nU="\u0176",sU="\u0177",oU="\u042B",aU="\u044B",iU="\xA5",lU="\uD835\uDD1C",cU="\uD835\uDD36",pU="\u0407",uU="\u0457",dU="\uD835\uDD50",hU="\uD835\uDD6A",mU="\uD835\uDCB4",gU="\uD835\uDCCE",fU="\u042E",bU="\u044E",_U="\xFF",kU="\u0178",yU="\u0179",xU="\u017A",vU="\u017D",qU="\u017E",LU="\u0417",wU="\u0437",CU="\u017B",AU="\u017C",SU="\u2128",EU="\u200B",TU="\u0396",DU="\u03B6",IU="\uD835\uDD37",zU="\u2128",RU="\u0416",NU="\u0436",MU="\u21DD",PU="\uD835\uDD6B",VU="\u2124",UU="\uD835\uDCB5",BU="\uD835\uDCCF",OU="\u200D",jU="\u200C",GU=/*#__PURE__*/Object.freeze({Aacute:"\xC1",aacute:Se,Abreve:Ee,abreve:Te,ac:De,acd:Ie,acE:ze,Acirc:Ne,acirc:Me,acute:Pe,Acy:Ve,acy:Ue,AElig:Be,aelig:Oe,af:je,Afr:Ge,afr:He,Agrave:Ze,agrave:Fe,alefsym:$e,aleph:Je,Alpha:Ye,alpha:We,Amacr:Qe,amacr:Ke,amalg:Xe,amp:er,AMP:rr,andand:tr,And:nr,and:sr,andd:ar,andslope:ir,andv:lr,ang:cr,ange:ur,angle:dr,angmsdaa:hr,angmsdab:mr,angmsdac:gr,angmsdad:fr,angmsdae:br,angmsdaf:_r,angmsdag:kr,angmsdah:yr,angmsd:xr,angrt:vr,angrtvb:qr,angrtvbd:Lr,angsph:Cr,angst:Ar,angzarr:Sr,Aogon:Er,aogon:Tr,Aopf:Dr,aopf:Ir,apacir:zr,ap:Rr,apE:Nr,ape:Mr,apid:Vr,apos:Ur,ApplyFunction:Br,approx:jr,approxeq:Gr,Aring:Hr,aring:Zr,Ascr:Fr,ascr:$r,Assign:Jr,ast:Yr,asymp:Wr,asympeq:Qr,Atilde:Kr,atilde:Xr,Auml:et,auml:rt,awconint:tt,awint:nt,backcong:st,backepsilon:ot,backprime:at,backsim:ct,backsimeq:pt,Backslash:ut,Barv:dt,barvee:ht,barwed:mt,Barwed:ft,barwedge:bt,bbrk:_t,bbrktbrk:kt,bcong:yt,Bcy:xt,bcy:vt,bdquo:qt,becaus:wt,because:Ct,Because:At,bemptyv:St,bepsi:Et,bernou:Tt,Bernoullis:Dt,Beta:It,beta:zt,beth:Rt,between:Nt,Bfr:Mt,bfr:Pt,bigcap:Vt,bigcirc:Ut,bigcup:Bt,bigodot:Ot,bigoplus:jt,bigotimes:Ht,bigsqcup:Zt,bigstar:Ft,bigtriangledown:$t,bigtriangleup:Jt,biguplus:Yt,bigvee:Wt,bigwedge:Qt,bkarow:Kt,blacklozenge:Xt,blacksquare:en,blacktriangle:rn,blacktriangledown:tn,blacktriangleleft:nn,blacktriangleright:sn,blank:on,blk12:an,blk14:ln,blk34:cn,block:pn,bne:un,bnequiv:dn,bNot:hn,bnot:mn,Bopf:gn,bopf:fn,bot:bn,bottom:_n,bowtie:kn,boxbox:yn,boxdl:xn,boxdL:vn,boxDl:qn,boxDL:Ln,boxdr:wn,boxdR:Cn,boxDr:An,boxDR:Sn,boxh:En,boxH:Tn,boxhd:Dn,boxHd:In,boxhD:zn,boxHD:Rn,boxhu:Nn,boxHu:Mn,boxhU:Pn,boxHU:Vn,boxminus:Un,boxplus:Bn,boxtimes:On,boxul:jn,boxuL:Gn,boxUl:Hn,boxUL:Zn,boxur:Fn,boxuR:$n,boxUr:Jn,boxUR:Yn,boxv:Wn,boxV:Qn,boxvh:Kn,boxvH:Xn,boxVh:es,boxVH:rs,boxvl:ts,boxvL:ns,boxVl:ss,boxVL:os,boxvr:as,boxvR:is,boxVr:ls,boxVR:cs,bprime:ps,breve:us,Breve:ds,brvbar:hs,bscr:ms,Bscr:gs,bsemi:fs,bsim:bs,bsime:_s,bsolb:ks,bsol:ys,bsolhsub:xs,bull:vs,bullet:qs,bump:Ls,bumpE:ws,bumpe:Cs,Bumpeq:As,bumpeq:Ss,Cacute:Es,cacute:Ts,capand:Ds,capbrcup:Is,capcap:zs,cap:Rs,Cap:Ns,capcup:Ms,capdot:Ps,CapitalDifferentialD:Vs,caps:Us,caret:Bs,caron:Os,Cayleys:js,ccaps:Gs,Ccaron:Hs,ccaron:Zs,Ccedil:Fs,ccedil:$s,Ccirc:Js,ccirc:Ys,Cconint:Ws,ccups:Qs,ccupssm:Ks,Cdot:Xs,cdot:eo,cedil:ro,Cedilla:to,cemptyv:no,cent:so,centerdot:oo,CenterDot:ao,cfr:io,Cfr:lo,CHcy:co,chcy:po,check:uo,checkmark:ho,Chi:mo,chi:go,circ:fo,circeq:bo,circlearrowleft:_o,circlearrowright:ko,circledast:yo,circledcirc:xo,circleddash:vo,CircleDot:qo,circledR:Lo,circledS:wo,CircleMinus:Co,CirclePlus:Ao,CircleTimes:So,cir:Eo,cirE:To,cire:Do,cirfnint:Io,cirmid:zo,cirscir:Ro,ClockwiseContourIntegral:No,CloseCurlyDoubleQuote:Mo,CloseCurlyQuote:Po,clubs:Vo,clubsuit:Uo,colon:Bo,Colon:Oo,Colone:jo,colone:Go,coloneq:Ho,comma:Zo,commat:Fo,comp:$o,compfn:Jo,complement:Yo,complexes:Wo,cong:Qo,congdot:Ko,Congruent:Xo,conint:ea,Conint:ra,ContourIntegral:ta,copf:na,Copf:sa,coprod:oa,Coproduct:aa,copy:ia,COPY:la,copysr:ca,CounterClockwiseContourIntegral:pa,crarr:ua,cross:da,Cross:ha,Cscr:ma,cscr:ga,csub:fa,csube:ba,csup:_a,csupe:ka,ctdot:ya,cudarrl:xa,cudarrr:va,cuepr:qa,cuesc:La,cularr:wa,cularrp:Ca,cupbrcap:Aa,cupcap:Sa,CupCap:Ea,cup:Ta,Cup:Da,cupcup:Ia,cupdot:za,cupor:Ra,cups:Na,curarr:Ma,curarrm:Pa,curlyeqprec:Va,curlyeqsucc:Ua,curlyvee:Ba,curlywedge:Oa,curren:ja,curvearrowleft:Ga,curvearrowright:Ha,cuvee:Za,cuwed:Fa,cwconint:$a,cwint:Ja,cylcty:Ya,dagger:Wa,Dagger:Qa,daleth:Ka,darr:Xa,Darr:ei,dArr:ri,dash:ti,Dashv:si,dashv:oi,dbkarow:ai,dblac:li,Dcaron:ci,dcaron:ui,Dcy:di,dcy:hi,ddagger:mi,ddarr:gi,DD:fi,dd:bi,DDotrahd:_i,ddotseq:ki,deg:yi,Del:vi,Delta:qi,delta:Li,demptyv:wi,dfisht:Ci,Dfr:Ai,dfr:Si,dHar:Ei,dharl:Ti,dharr:Di,DiacriticalAcute:Ii,DiacriticalDot:zi,DiacriticalDoubleAcute:Ri,DiacriticalGrave:Ni,DiacriticalTilde:Mi,diam:Vi,diamond:Ui,Diamond:Bi,diamondsuit:Oi,diams:ji,die:Gi,DifferentialD:Hi,digamma:Zi,disin:Fi,div:$i,divide:Ji,divideontimes:Yi,divonx:Wi,DJcy:Qi,djcy:Ki,dlcorn:rl,dlcrop:tl,dollar:nl,Dopf:sl,dopf:ol,Dot:al,dot:il,DotDot:cl,doteq:pl,doteqdot:ul,DotEqual:dl,dotminus:hl,dotplus:ml,dotsquare:fl,doublebarwedge:bl,DoubleContourIntegral:_l,DoubleDot:kl,DoubleDownArrow:yl,DoubleLeftArrow:xl,DoubleLeftRightArrow:vl,DoubleLeftTee:ql,DoubleLongLeftArrow:wl,DoubleLongLeftRightArrow:Cl,DoubleLongRightArrow:Al,DoubleRightArrow:Sl,DoubleRightTee:El,DoubleUpArrow:Tl,DoubleUpDownArrow:Dl,DoubleVerticalBar:Il,DownArrowBar:zl,downarrow:Rl,DownArrow:Nl,Downarrow:Ml,DownArrowUpArrow:Pl,DownBreve:Vl,downdownarrows:Ul,downharpoonleft:Bl,downharpoonright:Ol,DownLeftRightVector:jl,DownLeftTeeVector:Gl,DownLeftVectorBar:Hl,DownLeftVector:Zl,DownRightTeeVector:Fl,DownRightVectorBar:$l,DownRightVector:Jl,DownTeeArrow:Yl,DownTee:Wl,drbkarow:Ql,drcorn:Kl,drcrop:Xl,Dscr:ec,dscr:rc,DScy:tc,dscy:nc,dsol:oc,Dstrok:ac,dstrok:lc,dtdot:cc,dtri:pc,dtrif:uc,duarr:dc,duhar:hc,dwangle:mc,DZcy:gc,dzcy:fc,dzigrarr:bc,Eacute:_c,eacute:kc,easter:yc,Ecaron:xc,ecaron:vc,Ecirc:qc,ecirc:Lc,ecir:wc,ecolon:Cc,Ecy:Ac,ecy:Ec,eDDot:Tc,Edot:Dc,edot:Ic,eDot:zc,ee:Rc,efDot:ee,Efr:Nc,efr:Mc,eg:Pc,Egrave:Vc,egrave:Uc,egs:Bc,egsdot:Oc,el:jc,Element:el,elinters:Gc,ell:Hc,els:Zc,elsdot:Fc,Emacr:$c,emacr:Jc,empty:Yc,emptyset:Wc,EmptySmallSquare:Qc,emptyv:Kc,EmptyVerySmallSquare:Xc,emsp13:ep,emsp14:rp,emsp:tp,ENG:np,eng:sp,ensp:op,Eogon:ap,eogon:ip,Eopf:lp,eopf:cp,epar:pp,eparsl:up,eplus:dp,epsi:hp,Epsilon:gp,epsilon:fp,epsiv:bp,eqcirc:_p,eqcolon:kp,eqsim:yp,eqslantgtr:xp,eqslantless:vp,Equal:qp,equals:Lp,EqualTilde:Cp,equest:Ap,Equilibrium:Sp,equiv:Ep,equivDD:Tp,eqvparsl:Dp,erarr:Ip,erDot:zp,escr:Rp,Escr:Np,esdot:Mp,Esim:Pp,esim:Vp,Eta:Up,eta:Bp,ETH:Op,eth:jp,Euml:Gp,euml:Hp,euro:Zp,excl:Fp,exist:$p,Exists:Jp,expectation:Yp,exponentiale:Wp,ExponentialE:Qp,fallingdotseq:Kp,Fcy:Xp,fcy:eu,female:ru,ffilig:tu,fflig:su,ffllig:ou,Ffr:au,ffr:iu,filig:lu,FilledSmallSquare:cu,FilledVerySmallSquare:pu,fjlig:uu,flat:du,fllig:hu,fltns:gu,fnof:fu,Fopf:bu,fopf:_u,forall:ku,ForAll:yu,fork:xu,forkv:vu,Fouriertrf:qu,fpartint:Lu,frac12:wu,frac13:Cu,frac14:Au,frac15:Su,frac16:Eu,frac18:Tu,frac23:Du,frac25:Iu,frac34:zu,frac35:Ru,frac38:Pu,frac45:Vu,frac56:Uu,frac58:Bu,frac78:Ou,frasl:ju,frown:Gu,fscr:Hu,Fscr:Zu,gacute:Fu,Gamma:$u,gamma:Ju,Gammad:Yu,gammad:Wu,gap:Qu,Gbreve:Ku,gbreve:Xu,Gcedil:ed,Gcirc:rd,gcirc:td,Gcy:nd,gcy:sd,Gdot:od,gdot:ad,ge:id,gE:ge,gEl:ld,gel:cd,geq:pd,geqq:ud,geqslant:dd,gescc:hd,ges:md,gesdot:gd,gesdoto:fd,gesdotol:bd,gesl:_d,gesles:kd,Gfr:yd,gfr:xd,gg:vd,Gg:qd,ggg:Ld,gimel:wd,GJcy:Cd,gjcy:Ad,gla:Sd,gl:Ed,glE:gl,glj:Td,gnap:Dd,gnapprox:Id,gne:zd,gnE:Rd,gneq:Nd,gneqq:Md,gnsim:Pd,Gopf:Vd,gopf:Ud,grave:Bd,GreaterEqual:Od,GreaterEqualLess:jd,GreaterFullEqual:Gd,GreaterGreater:Hd,GreaterLess:Zd,GreaterSlantEqual:Fd,GreaterTilde:$d,Gscr:Jd,gscr:Yd,gsim:Wd,gsime:Qd,gsiml:Kd,gtcc:Xd,gtcir:eh,gt:rh,GT:gt,Gt:th,gtdot:Gt,gtlPar:nh,gtquest:sh,gtrapprox:oh,gtrarr:ah,gtrdot:ih,gtreqless:lh,gtreqqless:ch,gtrless:ph,gtrsim:uh,gvertneqq:dh,gvnE:hh,Hacek:mh,hairsp:gh,half:fh,hamilt:bh,HARDcy:_h,hardcy:kh,harrcir:yh,harr:xh,hArr:vh,harrw:qh,Hat:Lh,hbar:wh,Hcirc:Ch,hcirc:Ah,hearts:Sh,heartsuit:Eh,hellip:Th,hercon:Dh,hfr:Ih,Hfr:zh,HilbertSpace:Rh,hksearow:Nh,hkswarow:Mh,hoarr:Ph,homtht:Vh,hookleftarrow:Uh,hookrightarrow:Bh,hopf:Oh,Hopf:jh,horbar:Gh,HorizontalLine:Hh,hscr:Zh,Hscr:Fh,hslash:$h,Hstrok:Jh,hstrok:Yh,HumpDownHump:Wh,HumpEqual:Qh,hybull:Kh,hyphen:Xh,Iacute:em,iacute:rm,ic:tm,Icirc:ic,icirc:nm,Icy:sm,icy:om,Idot:am,IEcy:im,iecy:lm,iexcl:cm,iff:um,ifr:dm,Ifr:hm,Igrave:mm,igrave:gm,ii:fm,iiiint:ii,iiint:bm,iinfin:_m,iiota:km,IJlig:ym,ijlig:xm,Imacr:vm,imacr:qm,image:Lm,ImaginaryI:wm,imagline:Cm,imagpart:Am,imath:Sm,Im:Em,imof:Tm,imped:Dm,Implies:Im,incare:zm,infin:Rm,infintie:Nm,inodot:Mm,intcal:Pm,int:Vm,Int:Um,integers:Bm,Integral:Om,intercal:jm,Intersection:Gm,intlarhk:Hm,intprod:Zm,InvisibleComma:Fm,InvisibleTimes:$m,IOcy:Jm,iocy:Ym,Iogon:Wm,iogon:Qm,Iopf:Km,iopf:Xm,Iota:eg,iota:rg,iprod:tg,iquest:ng,iscr:sg,Iscr:og,isin:ag,isindot:ig,isinE:cg,isins:pg,isinsv:ug,isinv:dg,it:hg,Itilde:it,itilde:mg,Iukcy:gg,iukcy:fg,Iuml:bg,iuml:_g,Jcirc:kg,jcirc:yg,Jcy:xg,jcy:vg,Jfr:qg,jfr:Lg,jmath:wg,Jopf:Cg,jopf:Ag,Jscr:Sg,jscr:Eg,Jsercy:Tg,jsercy:Dg,Jukcy:Ig,jukcy:zg,Kappa:Rg,kappa:Ng,kappav:Mg,Kcedil:Pg,kcedil:Vg,Kcy:Ug,kcy:Bg,Kfr:Og,kfr:jg,kgreen:Gg,KHcy:Hg,khcy:Zg,KJcy:Fg,kjcy:$g,Kopf:Jg,kopf:Yg,Kscr:Wg,kscr:Qg,lAarr:Kg,Lacute:Xg,lacute:ef,laemptyv:rf,lagran:tf,Lambda:nf,lambda:sf,lang:of,Lang:af,langd:lf,langle:cf,lap:pf,Laplacetrf:uf,laquo:df,larrb:hf,larrbfs:mf,larr:gf,Larr:ff,lArr:bf,larrfs:_f,larrhk:kf,larrlp:yf,larrpl:xf,larrsim:vf,larrtl:qf,latail:Lf,lAtail:wf,lat:Cf,late:Af,lates:Sf,lbarr:Ef,lBarr:Tf,lbbrk:Df,lbrace:If,lbrack:zf,lbrke:Rf,lbrksld:Nf,lbrkslu:Mf,Lcaron:Pf,lcaron:Vf,Lcedil:Uf,lcedil:Bf,lceil:Of,lcub:jf,Lcy:Gf,lcy:Hf,ldca:Zf,ldquo:Ff,ldquor:$f,ldrdhar:Jf,ldrushar:Yf,ldsh:Wf,le:Qf,lE:le,LeftAngleBracket:Kf,LeftArrowBar:Xf,leftarrow:eb,LeftArrow:rb,Leftarrow:tb,LeftArrowRightArrow:nb,leftarrowtail:sb,LeftCeiling:ob,LeftDoubleBracket:ab,LeftDownTeeVector:ib,LeftDownVectorBar:lb,LeftDownVector:cb,LeftFloor:pb,leftharpoondown:ub,leftharpoonup:db,leftleftarrows:hb,leftrightarrow:mb,LeftRightArrow:gb,Leftrightarrow:fb,leftrightarrows:bb,leftrightharpoons:_b,leftrightsquigarrow:kb,LeftRightVector:yb,LeftTeeArrow:xb,LeftTee:vb,LeftTeeVector:qb,leftthreetimes:Lb,LeftTriangleBar:wb,LeftTriangle:Cb,LeftTriangleEqual:Ab,LeftUpDownVector:Sb,LeftUpTeeVector:Eb,LeftUpVectorBar:Tb,LeftUpVector:Db,LeftVectorBar:Ib,LeftVector:zb,lEg:Rb,leg:Nb,leq:Mb,leqq:Pb,leqslant:Vb,lescc:Ub,les:Bb,lesdot:Ob,lesdoto:jb,lesdotor:Gb,lesg:Hb,lesges:Zb,lessapprox:Fb,lessdot:$b,lesseqgtr:Jb,lesseqqgtr:Yb,LessEqualGreater:Wb,LessFullEqual:Qb,LessGreater:Kb,lessgtr:Xb,LessLess:e_,lesssim:r_,LessSlantEqual:t_,LessTilde:n_,lfisht:s_,lfloor:o_,Lfr:a_,lfr:i_,lg:l_,lgE:lg,lHar:c_,lhard:p_,lharu:u_,lharul:d_,lhblk:h_,LJcy:m_,ljcy:g_,llarr:f_,ll:b_,Ll:ll,llcorner:Ll,Lleftarrow:__,llhard:k_,lltri:y_,Lmidot:x_,lmidot:v_,lmoustache:q_,lmoust:L_,lnap:w_,lnapprox:C_,lne:A_,lnE:S_,lneq:E_,lneqq:T_,lnsim:D_,loang:I_,loarr:z_,lobrk:R_,longleftarrow:N_,LongLeftArrow:M_,Longleftarrow:P_,longleftrightarrow:V_,LongLeftRightArrow:U_,Longleftrightarrow:B_,longmapsto:O_,longrightarrow:j_,LongRightArrow:G_,Longrightarrow:H_,looparrowleft:Z_,looparrowright:F_,lopar:$_,Lopf:J_,lopf:Y_,loplus:W_,lotimes:Q_,lowast:K_,lowbar:X_,LowerLeftArrow:ek,LowerRightArrow:rk,loz:tk,lozenge:nk,lozf:sk,lpar:ok,lparlt:ak,lrarr:ik,lrcorner:lk,lrhar:ck,lrhard:pk,lrm:uk,lrtri:dk,lsaquo:hk,lscr:mk,Lscr:gk,lsh:fk,Lsh:bk,lsim:_k,lsime:kk,lsimg:yk,lsqb:xk,lsquo:vk,lsquor:qk,Lstrok:Lk,lstrok:wk,ltcc:Ck,ltcir:Ak,lt:Sk,LT:lt,Lt:Ek,ltdot:Lt,lthree:Tk,ltimes:Dk,ltlarr:Ik,ltquest:zk,ltri:Rk,ltrie:Nk,ltrif:Mk,ltrPar:Pk,lurdshar:Vk,luruhar:Uk,lvertneqq:Bk,lvnE:Ok,macr:jk,male:Gk,malt:Hk,maltese:Zk,map:Fk,mapsto:$k,mapstodown:Jk,mapstoleft:Yk,mapstoup:Wk,marker:Qk,mcomma:Kk,Mcy:Xk,mcy:ey,mdash:ry,mDDot:ty,measuredangle:ny,MediumSpace:sy,Mellintrf:oy,Mfr:ay,mfr:iy,mho:ly,micro:cy,midast:py,midcir:uy,mid:dy,middot:hy,minusb:my,minus:gy,minusd:fy,minusdu:by,MinusPlus:_y,mlcp:ky,mldr:yy,mnplus:xy,models:vy,Mopf:qy,mopf:Ly,mp:wy,mscr:mp,Mscr:Cy,mstpos:Ay,Mu:Sy,mu:Mu,multimap:mu,mumap:Ey,nabla:Ty,Nacute:Dy,nacute:Iy,nang:zy,nap:Ry,napE:Ny,napid:My,napos:Py,napprox:Vy,natural:Uy,naturals:By,natur:Oy,nbsp:jy,nbump:Gy,nbumpe:Hy,ncap:Zy,Ncaron:Fy,ncaron:$y,Ncedil:Jy,ncedil:Yy,ncong:Wy,ncongdot:Qy,ncup:Ky,Ncy:Xy,ncy:ex,ndash:tx,nearhk:nx,nearr:sx,neArr:ox,nearrow:ax,ne:ix,nedot:ne,NegativeMediumSpace:lx,NegativeThickSpace:cx,NegativeThinSpace:px,NegativeVeryThinSpace:ux,nequiv:dx,nesear:hx,nesim:mx,NestedGreaterGreater:gx,NestedLessLess:fx,NewLine:bx,nexist:_x,nexists:kx,Nfr:yx,nfr:xx,ngE:vx,nge:qx,ngeq:Lx,ngeqq:wx,ngeqslant:Cx,nges:Ax,nGg:Sx,ngsim:Ex,nGt:Tx,ngt:Dx,ngtr:Ix,nGtv:zx,nharr:Rx,nhArr:Nx,nhpar:Mx,ni:Px,nis:ni,nisd:Vx,niv:Ux,NJcy:Bx,njcy:Ox,nlarr:jx,nlArr:Gx,nldr:Hx,nlE:Zx,nle:Fx,nleftarrow:$x,nLeftarrow:Jx,nleftrightarrow:Yx,nLeftrightarrow:Wx,nleq:Qx,nleqq:Kx,nleqslant:Xx,nles:ev,nless:rv,nLl:tv,nlsim:nv,nLt:sv,nlt:ov,nltri:av,nltrie:iv,nLtv:lv,nmid:cv,NoBreak:pv,NonBreakingSpace:uv,nopf:dv,Nopf:hv,Not:mv,not:gv,NotCongruent:fv,NotCupCap:bv,NotDoubleVerticalBar:_v,NotElement:kv,NotEqual:yv,NotEqualTilde:xv,NotExists:vv,NotGreater:qv,NotGreaterEqual:Lv,NotGreaterFullEqual:wv,NotGreaterGreater:Cv,NotGreaterLess:Av,NotGreaterSlantEqual:Sv,NotGreaterTilde:Ev,NotHumpDownHump:Tv,NotHumpEqual:Dv,notin:Iv,notindot:zv,notinE:Rv,notinva:Nv,notinvb:Mv,notinvc:Pv,NotLeftTriangleBar:Vv,NotLeftTriangle:Uv,NotLeftTriangleEqual:Bv,NotLess:Ov,NotLessEqual:jv,NotLessGreater:Gv,NotLessLess:Hv,NotLessSlantEqual:Zv,NotLessTilde:Fv,NotNestedGreaterGreater:$v,NotNestedLessLess:Jv,notni:Yv,notniva:Wv,notnivb:Qv,notnivc:Kv,NotPrecedes:Xv,NotPrecedesEqual:eq,NotPrecedesSlantEqual:rq,NotReverseElement:tq,NotRightTriangleBar:nq,NotRightTriangle:sq,NotRightTriangleEqual:oq,NotSquareSubset:aq,NotSquareSubsetEqual:iq,NotSquareSuperset:lq,NotSquareSupersetEqual:cq,NotSubset:pq,NotSubsetEqual:uq,NotSucceeds:dq,NotSucceedsEqual:hq,NotSucceedsSlantEqual:mq,NotSucceedsTilde:gq,NotSuperset:fq,NotSupersetEqual:bq,NotTilde:_q,NotTildeEqual:kq,NotTildeFullEqual:yq,NotTildeTilde:xq,NotVerticalBar:vq,nparallel:qq,npar:Lq,nparsl:wq,npart:Cq,npolint:Aq,npr:Sq,nprcue:Eq,nprec:Tq,npreceq:Dq,npre:Iq,nrarrc:zq,nrarr:Rq,nrArr:Nq,nrarrw:Mq,nrightarrow:Pq,nRightarrow:Vq,nrtri:Uq,nrtrie:Bq,nsc:Oq,nsccue:jq,nsce:Gq,Nscr:Hq,nscr:Zq,nshortmid:Fq,nshortparallel:$q,nsim:Jq,nsime:Yq,nsimeq:Wq,nsmid:Qq,nspar:Kq,nsqsube:Xq,nsqsupe:eL,nsub:rL,nsubE:tL,nsube:nL,nsubset:sL,nsubseteq:oL,nsubseteqq:aL,nsucc:iL,nsucceq:lL,nsup:cL,nsupE:pL,nsupe:uL,nsupset:dL,nsupseteq:hL,nsupseteqq:mL,ntgl:gL,Ntilde:fL,ntilde:bL,ntlg:_L,ntriangleleft:kL,ntrianglelefteq:yL,ntriangleright:xL,ntrianglerighteq:vL,Nu:qL,nu:Nu,num:nu,numero:LL,numsp:wL,nvap:CL,nvdash:AL,nvDash:SL,nVdash:EL,nVDash:TL,nvge:DL,nvgt:IL,nvHarr:zL,nvinfin:RL,nvlArr:NL,nvle:ML,nvlt:PL,nvltrie:VL,nvrArr:UL,nvrtrie:BL,nvsim:OL,nwarhk:jL,nwarr:GL,nwArr:HL,nwarrow:ZL,nwnear:FL,Oacute:$L,oacute:JL,oast:YL,Ocirc:WL,ocirc:QL,ocir:KL,Ocy:XL,ocy:ew,odash:rw,Odblac:tw,odblac:nw,odiv:sw,odot:ow,odsold:aw,OElig:iw,oelig:lw,ofcir:cw,Ofr:pw,ofr:uw,ogon:dw,Ograve:hw,ograve:mw,ogt:gw,ohbar:fw,ohm:bw,oint:_w,olarr:kw,olcir:yw,olcross:xw,oline:vw,olt:qw,Omacr:Lw,omacr:ww,Omega:Cw,omega:Aw,Omicron:Sw,omicron:Ew,omid:Tw,ominus:Dw,Oopf:Iw,oopf:zw,opar:Rw,OpenCurlyDoubleQuote:Nw,OpenCurlyQuote:Mw,operp:Pw,oplus:Vw,orarr:Uw,Or:Bw,or:Or,ord:or,order:Ow,orderof:jw,ordf:Gw,ordm:Hw,origof:Zw,oror:Fw,orslope:$w,orv:Jw,oS:Yw,Oscr:Ww,oscr:Qw,Oslash:Kw,oslash:Xw,osol:eC,Otilde:rC,otilde:tC,otimesas:nC,Otimes:sC,otimes:oC,Ouml:aC,ouml:iC,ovbar:lC,OverBar:cC,OverBrace:pC,OverBracket:uC,OverParenthesis:dC,para:hC,parallel:mC,par:gC,parsim:fC,parsl:bC,part:_C,PartialD:kC,Pcy:yC,pcy:xC,percnt:vC,period:qC,permil:LC,perp:wC,pertenk:CC,Pfr:AC,pfr:SC,Phi:EC,phi:TC,phiv:DC,phmmat:IC,phone:zC,Pi:RC,pi:Pi,pitchfork:pi,piv:NC,planck:MC,planckh:PC,plankv:VC,plusacir:UC,plusb:BC,pluscir:OC,plus:jC,plusdo:GC,plusdu:HC,pluse:ZC,PlusMinus:FC,plusmn:$C,plussim:JC,plustwo:YC,pm:WC,Poincareplane:pm,pointint:QC,popf:KC,Popf:XC,pound:eA,prap:rA,Pr:tA,pr:Pr,prcue:pr,precapprox:nA,prec:sA,preccurlyeq:oA,Precedes:aA,PrecedesEqual:iA,PrecedesSlantEqual:lA,PrecedesTilde:cA,preceq:pA,precnapprox:uA,precneqq:dA,precnsim:hA,pre:mA,prE:gA,precsim:fA,prime:bA,Prime:_A,primes:kA,prnap:yA,prnE:xA,prnsim:vA,prod:qA,Product:LA,profalar:wA,profline:CA,profsurf:AA,prop:SA,Proportional:EA,Proportion:TA,propto:DA,prsim:IA,prurel:zA,Pscr:RA,pscr:NA,Psi:MA,psi:PA,puncsp:VA,Qfr:UA,qfr:BA,qint:OA,qopf:jA,Qopf:GA,qprime:HA,Qscr:ZA,qscr:FA,quaternions:$A,quatint:JA,quest:YA,questeq:WA,quot:QA,QUOT:KA,rAarr:XA,race:eS,Racute:rS,racute:tS,radic:nS,raemptyv:sS,rang:oS,Rang:aS,rangd:iS,range:lS,rangle:cS,raquo:pS,rarrap:uS,rarrb:dS,rarrbfs:hS,rarrc:mS,rarr:gS,Rarr:fS,rArr:bS,rarrfs:_S,rarrhk:kS,rarrlp:yS,rarrpl:xS,rarrsim:vS,Rarrtl:qS,rarrtl:LS,rarrw:wS,ratail:CS,rAtail:AS,ratio:SS,rationals:ES,rbarr:TS,rBarr:DS,RBarr:IS,rbbrk:zS,rbrace:RS,rbrack:NS,rbrke:MS,rbrksld:PS,rbrkslu:VS,Rcaron:US,rcaron:BS,Rcedil:OS,rcedil:jS,rceil:GS,rcub:HS,Rcy:ZS,rcy:FS,rdca:$S,rdldhar:JS,rdquo:YS,rdquor:WS,rdsh:QS,real:KS,realine:XS,realpart:eE,reals:rE,Re:tE,rect:Re,reg:nE,REG:sE,ReverseElement:oE,ReverseEquilibrium:aE,ReverseUpEquilibrium:iE,rfisht:lE,rfloor:cE,rfr:pE,Rfr:uE,rHar:dE,rhard:hE,rharu:mE,rharul:gE,Rho:fE,rho:bE,rhov:_E,RightAngleBracket:kE,RightArrowBar:yE,rightarrow:xE,RightArrow:vE,Rightarrow:qE,RightArrowLeftArrow:LE,rightarrowtail:wE,RightCeiling:CE,RightDoubleBracket:AE,RightDownTeeVector:SE,RightDownVectorBar:EE,RightDownVector:TE,RightFloor:DE,rightharpoondown:IE,rightharpoonup:zE,rightleftarrows:RE,rightleftharpoons:NE,rightrightarrows:ME,rightsquigarrow:PE,RightTeeArrow:VE,RightTee:UE,RightTeeVector:BE,rightthreetimes:OE,RightTriangleBar:jE,RightTriangle:GE,RightTriangleEqual:HE,RightUpDownVector:ZE,RightUpTeeVector:FE,RightUpVectorBar:$E,RightUpVector:JE,RightVectorBar:YE,RightVector:WE,ring:QE,risingdotseq:KE,rlarr:XE,rlhar:eT,rlm:rT,rmoustache:tT,rmoust:nT,rnmid:sT,roang:oT,roarr:aT,robrk:iT,ropar:lT,ropf:cT,Ropf:pT,roplus:uT,rotimes:dT,RoundImplies:hT,rpar:mT,rpargt:gT,rppolint:fT,rrarr:bT,Rrightarrow:_T,rsaquo:kT,rscr:yT,Rscr:xT,rsh:vT,Rsh:qT,rsqb:LT,rsquo:wT,rsquor:CT,rthree:AT,rtimes:ST,rtri:ET,rtrie:TT,rtrif:DT,rtriltri:IT,RuleDelayed:zT,ruluhar:RT,rx:NT,Sacute:rx,sacute:MT,sbquo:PT,scap:VT,Scaron:UT,scaron:BT,Sc:OT,sc:Sc,sccue:sc,sce:jT,scE:GT,Scedil:HT,scedil:ZT,Scirc:FT,scirc:$T,scnap:JT,scnE:YT,scnsim:WT,scpolint:QT,scsim:KT,Scy:XT,scy:eD,sdotb:rD,sdot:tD,sdote:nD,searhk:sD,searr:oD,seArr:aD,searrow:iD,sect:lD,semi:cD,seswar:pD,setminus:uD,setmn:dD,sext:hD,Sfr:mD,sfr:gD,sfrown:fD,sharp:bD,SHCHcy:_D,shchcy:kD,SHcy:yD,shcy:xD,ShortDownArrow:vD,ShortLeftArrow:qD,shortmid:LD,shortparallel:wD,ShortRightArrow:CD,ShortUpArrow:AD,shy:SD,Sigma:ED,sigma:TD,sigmaf:DD,sigmav:ID,sim:zD,simdot:RD,sime:ND,simeq:MD,simg:PD,simgE:VD,siml:UD,simlE:BD,simne:OD,simplus:jD,simrarr:GD,slarr:HD,SmallCircle:ZD,smallsetminus:FD,smashp:$D,smeparsl:JD,smid:YD,smile:WD,smt:QD,smte:KD,smtes:XD,SOFTcy:eI,softcy:rI,solbar:tI,solb:nI,sol:sI,Sopf:oI,sopf:aI,spades:iI,spadesuit:lI,spar:cI,sqcap:pI,sqcaps:uI,sqcup:dI,sqcups:hI,Sqrt:mI,sqsub:gI,sqsube:fI,sqsubset:bI,sqsubseteq:_I,sqsup:kI,sqsupe:yI,sqsupset:xI,sqsupseteq:vI,square:qI,Square:LI,SquareIntersection:wI,SquareSubset:CI,SquareSubsetEqual:AI,SquareSuperset:SI,SquareSupersetEqual:EI,SquareUnion:TI,squarf:DI,squ:II,squf:zI,srarr:RI,Sscr:NI,sscr:MI,ssetmn:PI,ssmile:VI,sstarf:UI,Star:BI,star:OI,starf:jI,straightepsilon:GI,straightphi:HI,strns:ZI,sub:FI,Sub:$I,subdot:JI,subE:YI,sube:WI,subedot:QI,submult:KI,subnE:XI,subne:ez,subplus:rz,subrarr:tz,subset:nz,Subset:sz,subseteq:oz,subseteqq:az,SubsetEqual:iz,subsetneq:lz,subsetneqq:cz,subsim:pz,subsub:uz,subsup:dz,succapprox:hz,succ:mz,succcurlyeq:gz,Succeeds:fz,SucceedsEqual:bz,SucceedsSlantEqual:_z,SucceedsTilde:kz,succeq:yz,succnapprox:xz,succneqq:vz,succnsim:qz,succsim:Lz,SuchThat:wz,sum:Cz,Sum:Az,sung:Sz,sup1:Ez,sup2:Tz,sup3:Dz,sup:Iz,Sup:zz,supdot:Rz,supdsub:Nz,supE:Mz,supe:Pz,supedot:Vz,Superset:Uz,SupersetEqual:Bz,suphsol:Oz,suphsub:jz,suplarr:Gz,supmult:Hz,supnE:Zz,supne:Fz,supplus:$z,supset:Jz,Supset:Yz,supseteq:Wz,supseteqq:Qz,supsetneq:Kz,supsetneqq:Xz,supsim:eR,supsub:rR,supsup:tR,swarhk:nR,swarr:sR,swArr:oR,swarrow:aR,swnwar:iR,szlig:lR,Tab:cR,target:pR,Tau:uR,tau:dR,tbrk:hR,Tcaron:mR,tcaron:gR,Tcedil:fR,tcedil:bR,Tcy:_R,tcy:kR,tdot:yR,telrec:xR,Tfr:vR,tfr:qR,there4:LR,therefore:wR,Therefore:CR,Theta:AR,theta:SR,thetasym:ER,thetav:TR,thickapprox:DR,thicksim:IR,ThickSpace:zR,ThinSpace:RR,thinsp:NR,thkap:MR,thksim:PR,THORN:VR,thorn:UR,tilde:BR,Tilde:OR,TildeEqual:jR,TildeFullEqual:GR,TildeTilde:HR,timesbar:ZR,timesb:FR,times:$R,timesd:JR,tint:YR,toea:WR,topbot:QR,topcir:KR,top:XR,Topf:eN,topf:rN,topfork:tN,tosa:nN,tprime:sN,trade:oN,TRADE:aN,triangle:iN,triangledown:lN,triangleleft:cN,trianglelefteq:pN,triangleq:uN,triangleright:dN,trianglerighteq:hN,tridot:mN,trie:gN,triminus:fN,TripleDot:bN,triplus:_N,trisb:kN,tritime:yN,trpezium:xN,Tscr:vN,tscr:qN,TScy:LN,tscy:wN,TSHcy:CN,tshcy:AN,Tstrok:SN,tstrok:EN,twixt:TN,twoheadleftarrow:DN,twoheadrightarrow:IN,Uacute:zN,uacute:RN,uarr:NN,Uarr:MN,uArr:PN,Uarrocir:VN,Ubrcy:UN,ubrcy:BN,Ubreve:ON,ubreve:jN,Ucirc:GN,ucirc:HN,Ucy:ZN,ucy:FN,udarr:$N,Udblac:JN,udblac:YN,udhar:WN,ufisht:QN,Ufr:KN,ufr:XN,Ugrave:eM,ugrave:rM,uHar:tM,uharl:nM,uharr:sM,uhblk:oM,ulcorn:aM,ulcorner:iM,ulcrop:lM,ultri:cM,Umacr:pM,umacr:uM,uml:dM,UnderBar:hM,UnderBrace:mM,UnderBracket:gM,UnderParenthesis:fM,Union:bM,UnionPlus:_M,Uogon:kM,uogon:yM,Uopf:xM,uopf:vM,UpArrowBar:qM,uparrow:LM,UpArrow:wM,Uparrow:CM,UpArrowDownArrow:AM,updownarrow:SM,UpDownArrow:EM,Updownarrow:TM,UpEquilibrium:DM,upharpoonleft:IM,upharpoonright:zM,uplus:RM,UpperLeftArrow:NM,UpperRightArrow:MM,upsi:PM,Upsi:VM,upsih:UM,Upsilon:BM,upsilon:OM,UpTeeArrow:jM,UpTee:GM,upuparrows:HM,urcorn:ZM,urcorner:FM,urcrop:$M,Uring:JM,uring:YM,urtri:WM,Uscr:QM,uscr:KM,utdot:XM,Utilde:eP,utilde:rP,utri:tP,utrif:nP,uuarr:sP,Uuml:oP,uuml:aP,uwangle:iP,vangrt:lP,varepsilon:cP,varkappa:pP,varnothing:uP,varphi:dP,varpi:hP,varpropto:mP,varr:gP,vArr:fP,varrho:bP,varsigma:_P,varsubsetneq:kP,varsubsetneqq:yP,varsupsetneq:xP,varsupsetneqq:vP,vartheta:qP,vartriangleleft:LP,vartriangleright:wP,vBar:CP,Vbar:AP,vBarv:SP,Vcy:EP,vcy:TP,vdash:DP,vDash:IP,Vdash:zP,VDash:RP,Vdashl:NP,veebar:MP,vee:PP,Vee:VP,veeeq:UP,vellip:BP,verbar:OP,Verbar:jP,vert:GP,Vert:HP,VerticalBar:ZP,VerticalLine:FP,VerticalSeparator:$P,VerticalTilde:JP,VeryThinSpace:YP,Vfr:WP,vfr:QP,vltri:KP,vnsub:XP,vnsup:eV,Vopf:rV,vopf:tV,vprop:nV,vrtri:sV,Vscr:oV,vscr:aV,vsubnE:iV,vsubne:lV,vsupnE:cV,vsupne:pV,Vvdash:uV,vzigzag:dV,Wcirc:hV,wcirc:mV,wedbar:gV,wedge:fV,Wedge:bV,wedgeq:_V,weierp:kV,Wfr:yV,wfr:xV,Wopf:vV,wopf:qV,wp:LV,wr:wp,wreath:wr,Wscr:wV,wscr:CV,xcap:AV,xcirc:SV,xcup:EV,xdtri:TV,Xfr:DV,xfr:IV,xharr:zV,xhArr:RV,Xi:NV,xi:Xi,xlarr:xi,xlArr:MV,xmap:PV,xnis:VV,xodot:UV,Xopf:BV,xopf:OV,xoplus:jV,xotime:GV,xrarr:HV,xrArr:ZV,Xscr:FV,xscr:$V,xsqcup:JV,xuplus:YV,xutri:WV,xvee:QV,xwedge:KV,Yacute:XV,yacute:eU,YAcy:rU,yacy:tU,Ycirc:nU,ycirc:sU,Ycy:oU,ycy:aU,yen:iU,Yfr:lU,yfr:cU,YIcy:pU,yicy:uU,Yopf:dU,yopf:hU,Yscr:mU,yscr:gU,YUcy:fU,yucy:bU,yuml:_U,Yuml:kU,Zacute:yU,zacute:xU,Zcaron:vU,zcaron:qU,Zcy:LU,zcy:wU,Zdot:CU,zdot:AU,zeetrf:SU,ZeroWidthSpace:EU,Zeta:TU,zeta:DU,zfr:IU,Zfr:zU,ZHcy:RU,zhcy:NU,zigrarr:MU,zopf:PU,Zopf:VU,Zscr:UU,zscr:BU,zwj:OU,zwnj:jU,default:{Aacute:"\xC1",aacute:Se,Abreve:Ee,abreve:Te,ac:De,acd:Ie,acE:ze,Acirc:Ne,acirc:Me,acute:Pe,Acy:Ve,acy:Ue,AElig:Be,aelig:Oe,af:je,Afr:Ge,afr:He,Agrave:Ze,agrave:Fe,alefsym:$e,aleph:Je,Alpha:Ye,alpha:We,Amacr:Qe,amacr:Ke,amalg:Xe,amp:er,AMP:rr,andand:tr,And:nr,and:sr,andd:ar,andslope:ir,andv:lr,ang:cr,ange:ur,angle:dr,angmsdaa:hr,angmsdab:mr,angmsdac:gr,angmsdad:fr,angmsdae:br,angmsdaf:_r,angmsdag:kr,angmsdah:yr,angmsd:xr,angrt:vr,angrtvb:qr,angrtvbd:Lr,angsph:Cr,angst:Ar,angzarr:Sr,Aogon:Er,aogon:Tr,Aopf:Dr,aopf:Ir,apacir:zr,ap:Rr,apE:Nr,ape:Mr,apid:Vr,apos:Ur,ApplyFunction:Br,approx:jr,approxeq:Gr,Aring:Hr,aring:Zr,Ascr:Fr,ascr:$r,Assign:Jr,ast:Yr,asymp:Wr,asympeq:Qr,Atilde:Kr,atilde:Xr,Auml:et,auml:rt,awconint:tt,awint:nt,backcong:st,backepsilon:ot,backprime:at,backsim:ct,backsimeq:pt,Backslash:ut,Barv:dt,barvee:ht,barwed:mt,Barwed:ft,barwedge:bt,bbrk:_t,bbrktbrk:kt,bcong:yt,Bcy:xt,bcy:vt,bdquo:qt,becaus:wt,because:Ct,Because:At,bemptyv:St,bepsi:Et,bernou:Tt,Bernoullis:Dt,Beta:It,beta:zt,beth:Rt,between:Nt,Bfr:Mt,bfr:Pt,bigcap:Vt,bigcirc:Ut,bigcup:Bt,bigodot:Ot,bigoplus:jt,bigotimes:Ht,bigsqcup:Zt,bigstar:Ft,bigtriangledown:$t,bigtriangleup:Jt,biguplus:Yt,bigvee:Wt,bigwedge:Qt,bkarow:Kt,blacklozenge:Xt,blacksquare:en,blacktriangle:rn,blacktriangledown:tn,blacktriangleleft:nn,blacktriangleright:sn,blank:on,blk12:an,blk14:ln,blk34:cn,block:pn,bne:un,bnequiv:dn,bNot:hn,bnot:mn,Bopf:gn,bopf:fn,bot:bn,bottom:_n,bowtie:kn,boxbox:yn,boxdl:xn,boxdL:vn,boxDl:qn,boxDL:Ln,boxdr:wn,boxdR:Cn,boxDr:An,boxDR:Sn,boxh:En,boxH:Tn,boxhd:Dn,boxHd:In,boxhD:zn,boxHD:Rn,boxhu:Nn,boxHu:Mn,boxhU:Pn,boxHU:Vn,boxminus:Un,boxplus:Bn,boxtimes:On,boxul:jn,boxuL:Gn,boxUl:Hn,boxUL:Zn,boxur:Fn,boxuR:$n,boxUr:Jn,boxUR:Yn,boxv:Wn,boxV:Qn,boxvh:Kn,boxvH:Xn,boxVh:es,boxVH:rs,boxvl:ts,boxvL:ns,boxVl:ss,boxVL:os,boxvr:as,boxvR:is,boxVr:ls,boxVR:cs,bprime:ps,breve:us,Breve:ds,brvbar:hs,bscr:ms,Bscr:gs,bsemi:fs,bsim:bs,bsime:_s,bsolb:ks,bsol:ys,bsolhsub:xs,bull:vs,bullet:qs,bump:Ls,bumpE:ws,bumpe:Cs,Bumpeq:As,bumpeq:Ss,Cacute:Es,cacute:Ts,capand:Ds,capbrcup:Is,capcap:zs,cap:Rs,Cap:Ns,capcup:Ms,capdot:Ps,CapitalDifferentialD:Vs,caps:Us,caret:Bs,caron:Os,Cayleys:js,ccaps:Gs,Ccaron:Hs,ccaron:Zs,Ccedil:Fs,ccedil:$s,Ccirc:Js,ccirc:Ys,Cconint:Ws,ccups:Qs,ccupssm:Ks,Cdot:Xs,cdot:eo,cedil:ro,Cedilla:to,cemptyv:no,cent:so,centerdot:oo,CenterDot:ao,cfr:io,Cfr:lo,CHcy:co,chcy:po,check:uo,checkmark:ho,Chi:mo,chi:go,circ:fo,circeq:bo,circlearrowleft:_o,circlearrowright:ko,circledast:yo,circledcirc:xo,circleddash:vo,CircleDot:qo,circledR:Lo,circledS:wo,CircleMinus:Co,CirclePlus:Ao,CircleTimes:So,cir:Eo,cirE:To,cire:Do,cirfnint:Io,cirmid:zo,cirscir:Ro,ClockwiseContourIntegral:No,CloseCurlyDoubleQuote:Mo,CloseCurlyQuote:Po,clubs:Vo,clubsuit:Uo,colon:Bo,Colon:Oo,Colone:jo,colone:Go,coloneq:Ho,comma:Zo,commat:Fo,comp:$o,compfn:Jo,complement:Yo,complexes:Wo,cong:Qo,congdot:Ko,Congruent:Xo,conint:ea,Conint:ra,ContourIntegral:ta,copf:na,Copf:sa,coprod:oa,Coproduct:aa,copy:ia,COPY:la,copysr:ca,CounterClockwiseContourIntegral:pa,crarr:ua,cross:da,Cross:ha,Cscr:ma,cscr:ga,csub:fa,csube:ba,csup:_a,csupe:ka,ctdot:ya,cudarrl:xa,cudarrr:va,cuepr:qa,cuesc:La,cularr:wa,cularrp:Ca,cupbrcap:Aa,cupcap:Sa,CupCap:Ea,cup:Ta,Cup:Da,cupcup:Ia,cupdot:za,cupor:Ra,cups:Na,curarr:Ma,curarrm:Pa,curlyeqprec:Va,curlyeqsucc:Ua,curlyvee:Ba,curlywedge:Oa,curren:ja,curvearrowleft:Ga,curvearrowright:Ha,cuvee:Za,cuwed:Fa,cwconint:$a,cwint:Ja,cylcty:Ya,dagger:Wa,Dagger:Qa,daleth:Ka,darr:Xa,Darr:ei,dArr:ri,dash:ti,Dashv:si,dashv:oi,dbkarow:ai,dblac:li,Dcaron:ci,dcaron:ui,Dcy:di,dcy:hi,ddagger:mi,ddarr:gi,DD:fi,dd:bi,DDotrahd:_i,ddotseq:ki,deg:yi,Del:vi,Delta:qi,delta:Li,demptyv:wi,dfisht:Ci,Dfr:Ai,dfr:Si,dHar:Ei,dharl:Ti,dharr:Di,DiacriticalAcute:Ii,DiacriticalDot:zi,DiacriticalDoubleAcute:Ri,DiacriticalGrave:Ni,DiacriticalTilde:Mi,diam:Vi,diamond:Ui,Diamond:Bi,diamondsuit:Oi,diams:ji,die:Gi,DifferentialD:Hi,digamma:Zi,disin:Fi,div:$i,divide:Ji,divideontimes:Yi,divonx:Wi,DJcy:Qi,djcy:Ki,dlcorn:rl,dlcrop:tl,dollar:nl,Dopf:sl,dopf:ol,Dot:al,dot:il,DotDot:cl,doteq:pl,doteqdot:ul,DotEqual:dl,dotminus:hl,dotplus:ml,dotsquare:fl,doublebarwedge:bl,DoubleContourIntegral:_l,DoubleDot:kl,DoubleDownArrow:yl,DoubleLeftArrow:xl,DoubleLeftRightArrow:vl,DoubleLeftTee:ql,DoubleLongLeftArrow:wl,DoubleLongLeftRightArrow:Cl,DoubleLongRightArrow:Al,DoubleRightArrow:Sl,DoubleRightTee:El,DoubleUpArrow:Tl,DoubleUpDownArrow:Dl,DoubleVerticalBar:Il,DownArrowBar:zl,downarrow:Rl,DownArrow:Nl,Downarrow:Ml,DownArrowUpArrow:Pl,DownBreve:Vl,downdownarrows:Ul,downharpoonleft:Bl,downharpoonright:Ol,DownLeftRightVector:jl,DownLeftTeeVector:Gl,DownLeftVectorBar:Hl,DownLeftVector:Zl,DownRightTeeVector:Fl,DownRightVectorBar:$l,DownRightVector:Jl,DownTeeArrow:Yl,DownTee:Wl,drbkarow:Ql,drcorn:Kl,drcrop:Xl,Dscr:ec,dscr:rc,DScy:tc,dscy:nc,dsol:oc,Dstrok:ac,dstrok:lc,dtdot:cc,dtri:pc,dtrif:uc,duarr:dc,duhar:hc,dwangle:mc,DZcy:gc,dzcy:fc,dzigrarr:bc,Eacute:_c,eacute:kc,easter:yc,Ecaron:xc,ecaron:vc,Ecirc:qc,ecirc:Lc,ecir:wc,ecolon:Cc,Ecy:Ac,ecy:Ec,eDDot:Tc,Edot:Dc,edot:Ic,eDot:zc,ee:Rc,efDot:ee,Efr:Nc,efr:Mc,eg:Pc,Egrave:Vc,egrave:Uc,egs:Bc,egsdot:Oc,el:jc,Element:el,elinters:Gc,ell:Hc,els:Zc,elsdot:Fc,Emacr:$c,emacr:Jc,empty:Yc,emptyset:Wc,EmptySmallSquare:Qc,emptyv:Kc,EmptyVerySmallSquare:Xc,emsp13:ep,emsp14:rp,emsp:tp,ENG:np,eng:sp,ensp:op,Eogon:ap,eogon:ip,Eopf:lp,eopf:cp,epar:pp,eparsl:up,eplus:dp,epsi:hp,Epsilon:gp,epsilon:fp,epsiv:bp,eqcirc:_p,eqcolon:kp,eqsim:yp,eqslantgtr:xp,eqslantless:vp,Equal:qp,equals:Lp,EqualTilde:Cp,equest:Ap,Equilibrium:Sp,equiv:Ep,equivDD:Tp,eqvparsl:Dp,erarr:Ip,erDot:zp,escr:Rp,Escr:Np,esdot:Mp,Esim:Pp,esim:Vp,Eta:Up,eta:Bp,ETH:Op,eth:jp,Euml:Gp,euml:Hp,euro:Zp,excl:Fp,exist:$p,Exists:Jp,expectation:Yp,exponentiale:Wp,ExponentialE:Qp,fallingdotseq:Kp,Fcy:Xp,fcy:eu,female:ru,ffilig:tu,fflig:su,ffllig:ou,Ffr:au,ffr:iu,filig:lu,FilledSmallSquare:cu,FilledVerySmallSquare:pu,fjlig:uu,flat:du,fllig:hu,fltns:gu,fnof:fu,Fopf:bu,fopf:_u,forall:ku,ForAll:yu,fork:xu,forkv:vu,Fouriertrf:qu,fpartint:Lu,frac12:wu,frac13:Cu,frac14:Au,frac15:Su,frac16:Eu,frac18:Tu,frac23:Du,frac25:Iu,frac34:zu,frac35:Ru,frac38:Pu,frac45:Vu,frac56:Uu,frac58:Bu,frac78:Ou,frasl:ju,frown:Gu,fscr:Hu,Fscr:Zu,gacute:Fu,Gamma:$u,gamma:Ju,Gammad:Yu,gammad:Wu,gap:Qu,Gbreve:Ku,gbreve:Xu,Gcedil:ed,Gcirc:rd,gcirc:td,Gcy:nd,gcy:sd,Gdot:od,gdot:ad,ge:id,gE:ge,gEl:ld,gel:cd,geq:pd,geqq:ud,geqslant:dd,gescc:hd,ges:md,gesdot:gd,gesdoto:fd,gesdotol:bd,gesl:_d,gesles:kd,Gfr:yd,gfr:xd,gg:vd,Gg:qd,ggg:Ld,gimel:wd,GJcy:Cd,gjcy:Ad,gla:Sd,gl:Ed,glE:gl,glj:Td,gnap:Dd,gnapprox:Id,gne:zd,gnE:Rd,gneq:Nd,gneqq:Md,gnsim:Pd,Gopf:Vd,gopf:Ud,grave:Bd,GreaterEqual:Od,GreaterEqualLess:jd,GreaterFullEqual:Gd,GreaterGreater:Hd,GreaterLess:Zd,GreaterSlantEqual:Fd,GreaterTilde:$d,Gscr:Jd,gscr:Yd,gsim:Wd,gsime:Qd,gsiml:Kd,gtcc:Xd,gtcir:eh,gt:rh,GT:gt,Gt:th,gtdot:Gt,gtlPar:nh,gtquest:sh,gtrapprox:oh,gtrarr:ah,gtrdot:ih,gtreqless:lh,gtreqqless:ch,gtrless:ph,gtrsim:uh,gvertneqq:dh,gvnE:hh,Hacek:mh,hairsp:gh,half:fh,hamilt:bh,HARDcy:_h,hardcy:kh,harrcir:yh,harr:xh,hArr:vh,harrw:qh,Hat:Lh,hbar:wh,Hcirc:Ch,hcirc:Ah,hearts:Sh,heartsuit:Eh,hellip:Th,hercon:Dh,hfr:Ih,Hfr:zh,HilbertSpace:Rh,hksearow:Nh,hkswarow:Mh,hoarr:Ph,homtht:Vh,hookleftarrow:Uh,hookrightarrow:Bh,hopf:Oh,Hopf:jh,horbar:Gh,HorizontalLine:Hh,hscr:Zh,Hscr:Fh,hslash:$h,Hstrok:Jh,hstrok:Yh,HumpDownHump:Wh,HumpEqual:Qh,hybull:Kh,hyphen:Xh,Iacute:em,iacute:rm,ic:tm,Icirc:ic,icirc:nm,Icy:sm,icy:om,Idot:am,IEcy:im,iecy:lm,iexcl:cm,iff:um,ifr:dm,Ifr:hm,Igrave:mm,igrave:gm,ii:fm,iiiint:ii,iiint:bm,iinfin:_m,iiota:km,IJlig:ym,ijlig:xm,Imacr:vm,imacr:qm,image:Lm,ImaginaryI:wm,imagline:Cm,imagpart:Am,imath:Sm,Im:Em,imof:Tm,imped:Dm,Implies:Im,incare:zm,in:"\u2208",infin:Rm,infintie:Nm,inodot:Mm,intcal:Pm,int:Vm,Int:Um,integers:Bm,Integral:Om,intercal:jm,Intersection:Gm,intlarhk:Hm,intprod:Zm,InvisibleComma:Fm,InvisibleTimes:$m,IOcy:Jm,iocy:Ym,Iogon:Wm,iogon:Qm,Iopf:Km,iopf:Xm,Iota:eg,iota:rg,iprod:tg,iquest:ng,iscr:sg,Iscr:og,isin:ag,isindot:ig,isinE:cg,isins:pg,isinsv:ug,isinv:dg,it:hg,Itilde:it,itilde:mg,Iukcy:gg,iukcy:fg,Iuml:bg,iuml:_g,Jcirc:kg,jcirc:yg,Jcy:xg,jcy:vg,Jfr:qg,jfr:Lg,jmath:wg,Jopf:Cg,jopf:Ag,Jscr:Sg,jscr:Eg,Jsercy:Tg,jsercy:Dg,Jukcy:Ig,jukcy:zg,Kappa:Rg,kappa:Ng,kappav:Mg,Kcedil:Pg,kcedil:Vg,Kcy:Ug,kcy:Bg,Kfr:Og,kfr:jg,kgreen:Gg,KHcy:Hg,khcy:Zg,KJcy:Fg,kjcy:$g,Kopf:Jg,kopf:Yg,Kscr:Wg,kscr:Qg,lAarr:Kg,Lacute:Xg,lacute:ef,laemptyv:rf,lagran:tf,Lambda:nf,lambda:sf,lang:of,Lang:af,langd:lf,langle:cf,lap:pf,Laplacetrf:uf,laquo:df,larrb:hf,larrbfs:mf,larr:gf,Larr:ff,lArr:bf,larrfs:_f,larrhk:kf,larrlp:yf,larrpl:xf,larrsim:vf,larrtl:qf,latail:Lf,lAtail:wf,lat:Cf,late:Af,lates:Sf,lbarr:Ef,lBarr:Tf,lbbrk:Df,lbrace:If,lbrack:zf,lbrke:Rf,lbrksld:Nf,lbrkslu:Mf,Lcaron:Pf,lcaron:Vf,Lcedil:Uf,lcedil:Bf,lceil:Of,lcub:jf,Lcy:Gf,lcy:Hf,ldca:Zf,ldquo:Ff,ldquor:$f,ldrdhar:Jf,ldrushar:Yf,ldsh:Wf,le:Qf,lE:le,LeftAngleBracket:Kf,LeftArrowBar:Xf,leftarrow:eb,LeftArrow:rb,Leftarrow:tb,LeftArrowRightArrow:nb,leftarrowtail:sb,LeftCeiling:ob,LeftDoubleBracket:ab,LeftDownTeeVector:ib,LeftDownVectorBar:lb,LeftDownVector:cb,LeftFloor:pb,leftharpoondown:ub,leftharpoonup:db,leftleftarrows:hb,leftrightarrow:mb,LeftRightArrow:gb,Leftrightarrow:fb,leftrightarrows:bb,leftrightharpoons:_b,leftrightsquigarrow:kb,LeftRightVector:yb,LeftTeeArrow:xb,LeftTee:vb,LeftTeeVector:qb,leftthreetimes:Lb,LeftTriangleBar:wb,LeftTriangle:Cb,LeftTriangleEqual:Ab,LeftUpDownVector:Sb,LeftUpTeeVector:Eb,LeftUpVectorBar:Tb,LeftUpVector:Db,LeftVectorBar:Ib,LeftVector:zb,lEg:Rb,leg:Nb,leq:Mb,leqq:Pb,leqslant:Vb,lescc:Ub,les:Bb,lesdot:Ob,lesdoto:jb,lesdotor:Gb,lesg:Hb,lesges:Zb,lessapprox:Fb,lessdot:$b,lesseqgtr:Jb,lesseqqgtr:Yb,LessEqualGreater:Wb,LessFullEqual:Qb,LessGreater:Kb,lessgtr:Xb,LessLess:e_,lesssim:r_,LessSlantEqual:t_,LessTilde:n_,lfisht:s_,lfloor:o_,Lfr:a_,lfr:i_,lg:l_,lgE:lg,lHar:c_,lhard:p_,lharu:u_,lharul:d_,lhblk:h_,LJcy:m_,ljcy:g_,llarr:f_,ll:b_,Ll:ll,llcorner:Ll,Lleftarrow:__,llhard:k_,lltri:y_,Lmidot:x_,lmidot:v_,lmoustache:q_,lmoust:L_,lnap:w_,lnapprox:C_,lne:A_,lnE:S_,lneq:E_,lneqq:T_,lnsim:D_,loang:I_,loarr:z_,lobrk:R_,longleftarrow:N_,LongLeftArrow:M_,Longleftarrow:P_,longleftrightarrow:V_,LongLeftRightArrow:U_,Longleftrightarrow:B_,longmapsto:O_,longrightarrow:j_,LongRightArrow:G_,Longrightarrow:H_,looparrowleft:Z_,looparrowright:F_,lopar:$_,Lopf:J_,lopf:Y_,loplus:W_,lotimes:Q_,lowast:K_,lowbar:X_,LowerLeftArrow:ek,LowerRightArrow:rk,loz:tk,lozenge:nk,lozf:sk,lpar:ok,lparlt:ak,lrarr:ik,lrcorner:lk,lrhar:ck,lrhard:pk,lrm:uk,lrtri:dk,lsaquo:hk,lscr:mk,Lscr:gk,lsh:fk,Lsh:bk,lsim:_k,lsime:kk,lsimg:yk,lsqb:xk,lsquo:vk,lsquor:qk,Lstrok:Lk,lstrok:wk,ltcc:Ck,ltcir:Ak,lt:Sk,LT:lt,Lt:Ek,ltdot:Lt,lthree:Tk,ltimes:Dk,ltlarr:Ik,ltquest:zk,ltri:Rk,ltrie:Nk,ltrif:Mk,ltrPar:Pk,lurdshar:Vk,luruhar:Uk,lvertneqq:Bk,lvnE:Ok,macr:jk,male:Gk,malt:Hk,maltese:Zk,Map:"\u2905",map:Fk,mapsto:$k,mapstodown:Jk,mapstoleft:Yk,mapstoup:Wk,marker:Qk,mcomma:Kk,Mcy:Xk,mcy:ey,mdash:ry,mDDot:ty,measuredangle:ny,MediumSpace:sy,Mellintrf:oy,Mfr:ay,mfr:iy,mho:ly,micro:cy,midast:py,midcir:uy,mid:dy,middot:hy,minusb:my,minus:gy,minusd:fy,minusdu:by,MinusPlus:_y,mlcp:ky,mldr:yy,mnplus:xy,models:vy,Mopf:qy,mopf:Ly,mp:wy,mscr:mp,Mscr:Cy,mstpos:Ay,Mu:Sy,mu:Mu,multimap:mu,mumap:Ey,nabla:Ty,Nacute:Dy,nacute:Iy,nang:zy,nap:Ry,napE:Ny,napid:My,napos:Py,napprox:Vy,natural:Uy,naturals:By,natur:Oy,nbsp:jy,nbump:Gy,nbumpe:Hy,ncap:Zy,Ncaron:Fy,ncaron:$y,Ncedil:Jy,ncedil:Yy,ncong:Wy,ncongdot:Qy,ncup:Ky,Ncy:Xy,ncy:ex,ndash:tx,nearhk:nx,nearr:sx,neArr:ox,nearrow:ax,ne:ix,nedot:ne,NegativeMediumSpace:lx,NegativeThickSpace:cx,NegativeThinSpace:px,NegativeVeryThinSpace:ux,nequiv:dx,nesear:hx,nesim:mx,NestedGreaterGreater:gx,NestedLessLess:fx,NewLine:bx,nexist:_x,nexists:kx,Nfr:yx,nfr:xx,ngE:vx,nge:qx,ngeq:Lx,ngeqq:wx,ngeqslant:Cx,nges:Ax,nGg:Sx,ngsim:Ex,nGt:Tx,ngt:Dx,ngtr:Ix,nGtv:zx,nharr:Rx,nhArr:Nx,nhpar:Mx,ni:Px,nis:ni,nisd:Vx,niv:Ux,NJcy:Bx,njcy:Ox,nlarr:jx,nlArr:Gx,nldr:Hx,nlE:Zx,nle:Fx,nleftarrow:$x,nLeftarrow:Jx,nleftrightarrow:Yx,nLeftrightarrow:Wx,nleq:Qx,nleqq:Kx,nleqslant:Xx,nles:ev,nless:rv,nLl:tv,nlsim:nv,nLt:sv,nlt:ov,nltri:av,nltrie:iv,nLtv:lv,nmid:cv,NoBreak:pv,NonBreakingSpace:uv,nopf:dv,Nopf:hv,Not:mv,not:gv,NotCongruent:fv,NotCupCap:bv,NotDoubleVerticalBar:_v,NotElement:kv,NotEqual:yv,NotEqualTilde:xv,NotExists:vv,NotGreater:qv,NotGreaterEqual:Lv,NotGreaterFullEqual:wv,NotGreaterGreater:Cv,NotGreaterLess:Av,NotGreaterSlantEqual:Sv,NotGreaterTilde:Ev,NotHumpDownHump:Tv,NotHumpEqual:Dv,notin:Iv,notindot:zv,notinE:Rv,notinva:Nv,notinvb:Mv,notinvc:Pv,NotLeftTriangleBar:Vv,NotLeftTriangle:Uv,NotLeftTriangleEqual:Bv,NotLess:Ov,NotLessEqual:jv,NotLessGreater:Gv,NotLessLess:Hv,NotLessSlantEqual:Zv,NotLessTilde:Fv,NotNestedGreaterGreater:$v,NotNestedLessLess:Jv,notni:Yv,notniva:Wv,notnivb:Qv,notnivc:Kv,NotPrecedes:Xv,NotPrecedesEqual:eq,NotPrecedesSlantEqual:rq,NotReverseElement:tq,NotRightTriangleBar:nq,NotRightTriangle:sq,NotRightTriangleEqual:oq,NotSquareSubset:aq,NotSquareSubsetEqual:iq,NotSquareSuperset:lq,NotSquareSupersetEqual:cq,NotSubset:pq,NotSubsetEqual:uq,NotSucceeds:dq,NotSucceedsEqual:hq,NotSucceedsSlantEqual:mq,NotSucceedsTilde:gq,NotSuperset:fq,NotSupersetEqual:bq,NotTilde:_q,NotTildeEqual:kq,NotTildeFullEqual:yq,NotTildeTilde:xq,NotVerticalBar:vq,nparallel:qq,npar:Lq,nparsl:wq,npart:Cq,npolint:Aq,npr:Sq,nprcue:Eq,nprec:Tq,npreceq:Dq,npre:Iq,nrarrc:zq,nrarr:Rq,nrArr:Nq,nrarrw:Mq,nrightarrow:Pq,nRightarrow:Vq,nrtri:Uq,nrtrie:Bq,nsc:Oq,nsccue:jq,nsce:Gq,Nscr:Hq,nscr:Zq,nshortmid:Fq,nshortparallel:$q,nsim:Jq,nsime:Yq,nsimeq:Wq,nsmid:Qq,nspar:Kq,nsqsube:Xq,nsqsupe:eL,nsub:rL,nsubE:tL,nsube:nL,nsubset:sL,nsubseteq:oL,nsubseteqq:aL,nsucc:iL,nsucceq:lL,nsup:cL,nsupE:pL,nsupe:uL,nsupset:dL,nsupseteq:hL,nsupseteqq:mL,ntgl:gL,Ntilde:fL,ntilde:bL,ntlg:_L,ntriangleleft:kL,ntrianglelefteq:yL,ntriangleright:xL,ntrianglerighteq:vL,Nu:qL,nu:Nu,num:nu,numero:LL,numsp:wL,nvap:CL,nvdash:AL,nvDash:SL,nVdash:EL,nVDash:TL,nvge:DL,nvgt:IL,nvHarr:zL,nvinfin:RL,nvlArr:NL,nvle:ML,nvlt:PL,nvltrie:VL,nvrArr:UL,nvrtrie:BL,nvsim:OL,nwarhk:jL,nwarr:GL,nwArr:HL,nwarrow:ZL,nwnear:FL,Oacute:$L,oacute:JL,oast:YL,Ocirc:WL,ocirc:QL,ocir:KL,Ocy:XL,ocy:ew,odash:rw,Odblac:tw,odblac:nw,odiv:sw,odot:ow,odsold:aw,OElig:iw,oelig:lw,ofcir:cw,Ofr:pw,ofr:uw,ogon:dw,Ograve:hw,ograve:mw,ogt:gw,ohbar:fw,ohm:bw,oint:_w,olarr:kw,olcir:yw,olcross:xw,oline:vw,olt:qw,Omacr:Lw,omacr:ww,Omega:Cw,omega:Aw,Omicron:Sw,omicron:Ew,omid:Tw,ominus:Dw,Oopf:Iw,oopf:zw,opar:Rw,OpenCurlyDoubleQuote:Nw,OpenCurlyQuote:Mw,operp:Pw,oplus:Vw,orarr:Uw,Or:Bw,or:Or,ord:or,order:Ow,orderof:jw,ordf:Gw,ordm:Hw,origof:Zw,oror:Fw,orslope:$w,orv:Jw,oS:Yw,Oscr:Ww,oscr:Qw,Oslash:Kw,oslash:Xw,osol:eC,Otilde:rC,otilde:tC,otimesas:nC,Otimes:sC,otimes:oC,Ouml:aC,ouml:iC,ovbar:lC,OverBar:cC,OverBrace:pC,OverBracket:uC,OverParenthesis:dC,para:hC,parallel:mC,par:gC,parsim:fC,parsl:bC,part:_C,PartialD:kC,Pcy:yC,pcy:xC,percnt:vC,period:qC,permil:LC,perp:wC,pertenk:CC,Pfr:AC,pfr:SC,Phi:EC,phi:TC,phiv:DC,phmmat:IC,phone:zC,Pi:RC,pi:Pi,pitchfork:pi,piv:NC,planck:MC,planckh:PC,plankv:VC,plusacir:UC,plusb:BC,pluscir:OC,plus:jC,plusdo:GC,plusdu:HC,pluse:ZC,PlusMinus:FC,plusmn:$C,plussim:JC,plustwo:YC,pm:WC,Poincareplane:pm,pointint:QC,popf:KC,Popf:XC,pound:eA,prap:rA,Pr:tA,pr:Pr,prcue:pr,precapprox:nA,prec:sA,preccurlyeq:oA,Precedes:aA,PrecedesEqual:iA,PrecedesSlantEqual:lA,PrecedesTilde:cA,preceq:pA,precnapprox:uA,precneqq:dA,precnsim:hA,pre:mA,prE:gA,precsim:fA,prime:bA,Prime:_A,primes:kA,prnap:yA,prnE:xA,prnsim:vA,prod:qA,Product:LA,profalar:wA,profline:CA,profsurf:AA,prop:SA,Proportional:EA,Proportion:TA,propto:DA,prsim:IA,prurel:zA,Pscr:RA,pscr:NA,Psi:MA,psi:PA,puncsp:VA,Qfr:UA,qfr:BA,qint:OA,qopf:jA,Qopf:GA,qprime:HA,Qscr:ZA,qscr:FA,quaternions:$A,quatint:JA,quest:YA,questeq:WA,quot:QA,QUOT:KA,rAarr:XA,race:eS,Racute:rS,racute:tS,radic:nS,raemptyv:sS,rang:oS,Rang:aS,rangd:iS,range:lS,rangle:cS,raquo:pS,rarrap:uS,rarrb:dS,rarrbfs:hS,rarrc:mS,rarr:gS,Rarr:fS,rArr:bS,rarrfs:_S,rarrhk:kS,rarrlp:yS,rarrpl:xS,rarrsim:vS,Rarrtl:qS,rarrtl:LS,rarrw:wS,ratail:CS,rAtail:AS,ratio:SS,rationals:ES,rbarr:TS,rBarr:DS,RBarr:IS,rbbrk:zS,rbrace:RS,rbrack:NS,rbrke:MS,rbrksld:PS,rbrkslu:VS,Rcaron:US,rcaron:BS,Rcedil:OS,rcedil:jS,rceil:GS,rcub:HS,Rcy:ZS,rcy:FS,rdca:$S,rdldhar:JS,rdquo:YS,rdquor:WS,rdsh:QS,real:KS,realine:XS,realpart:eE,reals:rE,Re:tE,rect:Re,reg:nE,REG:sE,ReverseElement:oE,ReverseEquilibrium:aE,ReverseUpEquilibrium:iE,rfisht:lE,rfloor:cE,rfr:pE,Rfr:uE,rHar:dE,rhard:hE,rharu:mE,rharul:gE,Rho:fE,rho:bE,rhov:_E,RightAngleBracket:kE,RightArrowBar:yE,rightarrow:xE,RightArrow:vE,Rightarrow:qE,RightArrowLeftArrow:LE,rightarrowtail:wE,RightCeiling:CE,RightDoubleBracket:AE,RightDownTeeVector:SE,RightDownVectorBar:EE,RightDownVector:TE,RightFloor:DE,rightharpoondown:IE,rightharpoonup:zE,rightleftarrows:RE,rightleftharpoons:NE,rightrightarrows:ME,rightsquigarrow:PE,RightTeeArrow:VE,RightTee:UE,RightTeeVector:BE,rightthreetimes:OE,RightTriangleBar:jE,RightTriangle:GE,RightTriangleEqual:HE,RightUpDownVector:ZE,RightUpTeeVector:FE,RightUpVectorBar:$E,RightUpVector:JE,RightVectorBar:YE,RightVector:WE,ring:QE,risingdotseq:KE,rlarr:XE,rlhar:eT,rlm:rT,rmoustache:tT,rmoust:nT,rnmid:sT,roang:oT,roarr:aT,robrk:iT,ropar:lT,ropf:cT,Ropf:pT,roplus:uT,rotimes:dT,RoundImplies:hT,rpar:mT,rpargt:gT,rppolint:fT,rrarr:bT,Rrightarrow:_T,rsaquo:kT,rscr:yT,Rscr:xT,rsh:vT,Rsh:qT,rsqb:LT,rsquo:wT,rsquor:CT,rthree:AT,rtimes:ST,rtri:ET,rtrie:TT,rtrif:DT,rtriltri:IT,RuleDelayed:zT,ruluhar:RT,rx:NT,Sacute:rx,sacute:MT,sbquo:PT,scap:VT,Scaron:UT,scaron:BT,Sc:OT,sc:Sc,sccue:sc,sce:jT,scE:GT,Scedil:HT,scedil:ZT,Scirc:FT,scirc:$T,scnap:JT,scnE:YT,scnsim:WT,scpolint:QT,scsim:KT,Scy:XT,scy:eD,sdotb:rD,sdot:tD,sdote:nD,searhk:sD,searr:oD,seArr:aD,searrow:iD,sect:lD,semi:cD,seswar:pD,setminus:uD,setmn:dD,sext:hD,Sfr:mD,sfr:gD,sfrown:fD,sharp:bD,SHCHcy:_D,shchcy:kD,SHcy:yD,shcy:xD,ShortDownArrow:vD,ShortLeftArrow:qD,shortmid:LD,shortparallel:wD,ShortRightArrow:CD,ShortUpArrow:AD,shy:SD,Sigma:ED,sigma:TD,sigmaf:DD,sigmav:ID,sim:zD,simdot:RD,sime:ND,simeq:MD,simg:PD,simgE:VD,siml:UD,simlE:BD,simne:OD,simplus:jD,simrarr:GD,slarr:HD,SmallCircle:ZD,smallsetminus:FD,smashp:$D,smeparsl:JD,smid:YD,smile:WD,smt:QD,smte:KD,smtes:XD,SOFTcy:eI,softcy:rI,solbar:tI,solb:nI,sol:sI,Sopf:oI,sopf:aI,spades:iI,spadesuit:lI,spar:cI,sqcap:pI,sqcaps:uI,sqcup:dI,sqcups:hI,Sqrt:mI,sqsub:gI,sqsube:fI,sqsubset:bI,sqsubseteq:_I,sqsup:kI,sqsupe:yI,sqsupset:xI,sqsupseteq:vI,square:qI,Square:LI,SquareIntersection:wI,SquareSubset:CI,SquareSubsetEqual:AI,SquareSuperset:SI,SquareSupersetEqual:EI,SquareUnion:TI,squarf:DI,squ:II,squf:zI,srarr:RI,Sscr:NI,sscr:MI,ssetmn:PI,ssmile:VI,sstarf:UI,Star:BI,star:OI,starf:jI,straightepsilon:GI,straightphi:HI,strns:ZI,sub:FI,Sub:$I,subdot:JI,subE:YI,sube:WI,subedot:QI,submult:KI,subnE:XI,subne:ez,subplus:rz,subrarr:tz,subset:nz,Subset:sz,subseteq:oz,subseteqq:az,SubsetEqual:iz,subsetneq:lz,subsetneqq:cz,subsim:pz,subsub:uz,subsup:dz,succapprox:hz,succ:mz,succcurlyeq:gz,Succeeds:fz,SucceedsEqual:bz,SucceedsSlantEqual:_z,SucceedsTilde:kz,succeq:yz,succnapprox:xz,succneqq:vz,succnsim:qz,succsim:Lz,SuchThat:wz,sum:Cz,Sum:Az,sung:Sz,sup1:Ez,sup2:Tz,sup3:Dz,sup:Iz,Sup:zz,supdot:Rz,supdsub:Nz,supE:Mz,supe:Pz,supedot:Vz,Superset:Uz,SupersetEqual:Bz,suphsol:Oz,suphsub:jz,suplarr:Gz,supmult:Hz,supnE:Zz,supne:Fz,supplus:$z,supset:Jz,Supset:Yz,supseteq:Wz,supseteqq:Qz,supsetneq:Kz,supsetneqq:Xz,supsim:eR,supsub:rR,supsup:tR,swarhk:nR,swarr:sR,swArr:oR,swarrow:aR,swnwar:iR,szlig:lR,Tab:cR,target:pR,Tau:uR,tau:dR,tbrk:hR,Tcaron:mR,tcaron:gR,Tcedil:fR,tcedil:bR,Tcy:_R,tcy:kR,tdot:yR,telrec:xR,Tfr:vR,tfr:qR,there4:LR,therefore:wR,Therefore:CR,Theta:AR,theta:SR,thetasym:ER,thetav:TR,thickapprox:DR,thicksim:IR,ThickSpace:zR,ThinSpace:RR,thinsp:NR,thkap:MR,thksim:PR,THORN:VR,thorn:UR,tilde:BR,Tilde:OR,TildeEqual:jR,TildeFullEqual:GR,TildeTilde:HR,timesbar:ZR,timesb:FR,times:$R,timesd:JR,tint:YR,toea:WR,topbot:QR,topcir:KR,top:XR,Topf:eN,topf:rN,topfork:tN,tosa:nN,tprime:sN,trade:oN,TRADE:aN,triangle:iN,triangledown:lN,triangleleft:cN,trianglelefteq:pN,triangleq:uN,triangleright:dN,trianglerighteq:hN,tridot:mN,trie:gN,triminus:fN,TripleDot:bN,triplus:_N,trisb:kN,tritime:yN,trpezium:xN,Tscr:vN,tscr:qN,TScy:LN,tscy:wN,TSHcy:CN,tshcy:AN,Tstrok:SN,tstrok:EN,twixt:TN,twoheadleftarrow:DN,twoheadrightarrow:IN,Uacute:zN,uacute:RN,uarr:NN,Uarr:MN,uArr:PN,Uarrocir:VN,Ubrcy:UN,ubrcy:BN,Ubreve:ON,ubreve:jN,Ucirc:GN,ucirc:HN,Ucy:ZN,ucy:FN,udarr:$N,Udblac:JN,udblac:YN,udhar:WN,ufisht:QN,Ufr:KN,ufr:XN,Ugrave:eM,ugrave:rM,uHar:tM,uharl:nM,uharr:sM,uhblk:oM,ulcorn:aM,ulcorner:iM,ulcrop:lM,ultri:cM,Umacr:pM,umacr:uM,uml:dM,UnderBar:hM,UnderBrace:mM,UnderBracket:gM,UnderParenthesis:fM,Union:bM,UnionPlus:_M,Uogon:kM,uogon:yM,Uopf:xM,uopf:vM,UpArrowBar:qM,uparrow:LM,UpArrow:wM,Uparrow:CM,UpArrowDownArrow:AM,updownarrow:SM,UpDownArrow:EM,Updownarrow:TM,UpEquilibrium:DM,upharpoonleft:IM,upharpoonright:zM,uplus:RM,UpperLeftArrow:NM,UpperRightArrow:MM,upsi:PM,Upsi:VM,upsih:UM,Upsilon:BM,upsilon:OM,UpTeeArrow:jM,UpTee:GM,upuparrows:HM,urcorn:ZM,urcorner:FM,urcrop:$M,Uring:JM,uring:YM,urtri:WM,Uscr:QM,uscr:KM,utdot:XM,Utilde:eP,utilde:rP,utri:tP,utrif:nP,uuarr:sP,Uuml:oP,uuml:aP,uwangle:iP,vangrt:lP,varepsilon:cP,varkappa:pP,varnothing:uP,varphi:dP,varpi:hP,varpropto:mP,varr:gP,vArr:fP,varrho:bP,varsigma:_P,varsubsetneq:kP,varsubsetneqq:yP,varsupsetneq:xP,varsupsetneqq:vP,vartheta:qP,vartriangleleft:LP,vartriangleright:wP,vBar:CP,Vbar:AP,vBarv:SP,Vcy:EP,vcy:TP,vdash:DP,vDash:IP,Vdash:zP,VDash:RP,Vdashl:NP,veebar:MP,vee:PP,Vee:VP,veeeq:UP,vellip:BP,verbar:OP,Verbar:jP,vert:GP,Vert:HP,VerticalBar:ZP,VerticalLine:FP,VerticalSeparator:$P,VerticalTilde:JP,VeryThinSpace:YP,Vfr:WP,vfr:QP,vltri:KP,vnsub:XP,vnsup:eV,Vopf:rV,vopf:tV,vprop:nV,vrtri:sV,Vscr:oV,vscr:aV,vsubnE:iV,vsubne:lV,vsupnE:cV,vsupne:pV,Vvdash:uV,vzigzag:dV,Wcirc:hV,wcirc:mV,wedbar:gV,wedge:fV,Wedge:bV,wedgeq:_V,weierp:kV,Wfr:yV,wfr:xV,Wopf:vV,wopf:qV,wp:LV,wr:wp,wreath:wr,Wscr:wV,wscr:CV,xcap:AV,xcirc:SV,xcup:EV,xdtri:TV,Xfr:DV,xfr:IV,xharr:zV,xhArr:RV,Xi:NV,xi:Xi,xlarr:xi,xlArr:MV,xmap:PV,xnis:VV,xodot:UV,Xopf:BV,xopf:OV,xoplus:jV,xotime:GV,xrarr:HV,xrArr:ZV,Xscr:FV,xscr:$V,xsqcup:JV,xuplus:YV,xutri:WV,xvee:QV,xwedge:KV,Yacute:XV,yacute:eU,YAcy:rU,yacy:tU,Ycirc:nU,ycirc:sU,Ycy:oU,ycy:aU,yen:iU,Yfr:lU,yfr:cU,YIcy:pU,yicy:uU,Yopf:dU,yopf:hU,Yscr:mU,yscr:gU,YUcy:fU,yucy:bU,yuml:_U,Yuml:kU,Zacute:yU,zacute:xU,Zcaron:vU,zcaron:qU,Zcy:LU,zcy:wU,Zdot:CU,zdot:AU,zeetrf:SU,ZeroWidthSpace:EU,Zeta:TU,zeta:DU,zfr:IU,Zfr:zU,ZHcy:RU,zhcy:NU,zigrarr:MU,zopf:PU,Zopf:VU,Zscr:UU,zscr:BU,zwj:OU,zwnj:jU}}),HU=function(e){return e&&e["default"]||e}(GU),ZU=HU,FU=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,$U={};o.defaultChars=";/?:@&=+$,-_.!~*'()#",o.componentChars="-_.!~*'()";var JU={};/* eslint-disable no-bitwise */l.defaultChars=";/?:@&=+$,#",l.componentChars="";var YU=/^([a-z0-9.+-]+:)/i,WU=/:[0-9]*$/,// Special case for a simple path URL
|
|
505
|
-
QU=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,// RFC 2396: characters not allowed for various reasons.
|
|
506
|
-
KU=["{","}","|","\\","^","`"].concat(["<",">","\"","`"," ","\r","\n","\t"]),// Allowed by RFCs, but cause of XSS attacks. Always escape these.
|
|
507
|
-
XU=["'"].concat(KU),// Characters that are never ever allowed in a hostname.
|
|
508
|
-
// Note that any invalid chars are also handled, but these
|
|
509
|
-
// are the ones that are *expected* to be seen, so we fast-path
|
|
510
|
-
// them.
|
|
511
|
-
eB=["%","/","?",";","#"].concat(XU),rB=["/","?","#"],tB=/^[+a-z0-9A-Z_-]{0,63}$/,nB=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,// protocols that can allow "unsafe" and "unwise" chars.
|
|
512
|
-
/* eslint-disable no-script-url */ // protocols that never have a hostname.
|
|
513
|
-
sB={javascript:!0,"javascript:":!0},// protocols that always contain a // bit.
|
|
514
|
-
oB={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};c.prototype.parse=function(e,r){var t=e,n,s,o,a,c;// trim before proceeding.
|
|
515
|
-
// This is to support parse stuff like " http://foo.com \n"
|
|
516
|
-
if(t=t.trim(),!r&&1===e.split("#").length){// Try fast path regexp
|
|
517
|
-
var p=QU.exec(t);if(p)return this.pathname=p[1],p[2]&&(this.search=p[2]),this}var u=YU.exec(t);if(u&&(u=u[0],o=u.toLowerCase(),this.protocol=u,t=t.substr(u.length)),(r||u||t.match(/^\/\/[^@\/]+@[^@\/]+/))&&(c="//"===t.substr(0,2),c&&!(u&&sB[u])&&(t=t.substr(2),this.slashes=!0)),!sB[u]&&(c||u&&!oB[u])){// there's a hostname.
|
|
518
|
-
// the first instance of /, ?, ;, or # ends the host.
|
|
519
|
-
//
|
|
520
|
-
// If there is an @ in the hostname, then non-host chars *are* allowed
|
|
521
|
-
// to the left of the last @ sign, unless some host-ending character
|
|
522
|
-
// comes *before* the @-sign.
|
|
523
|
-
// URLs are obnoxious.
|
|
524
|
-
//
|
|
525
|
-
// ex:
|
|
526
|
-
// http://a@b@c/ => user:a@b host:c
|
|
527
|
-
// http://a@b?@c => user:a host:c path:/?@c
|
|
528
|
-
// v0.12 TODO(isaacs): This is not quite how Chrome does things.
|
|
529
|
-
// Review our test case against browsers more comprehensively.
|
|
530
|
-
// find the first instance of any hostEndingChars
|
|
531
|
-
var d=-1;for(n=0;n<rB.length;n++)a=t.indexOf(rB[n]),-1!==a&&(-1===d||a<d)&&(d=a);// at this point, either we have an explicit point where the
|
|
532
|
-
// auth portion cannot go past, or the last @ char is the decider.
|
|
533
|
-
var h,m;for(m=-1===d?t.lastIndexOf("@"):t.lastIndexOf("@",d),-1!==m&&(h=t.slice(0,m),t=t.slice(m+1),this.auth=h),d=-1,n=0;n<eB.length;n++)a=t.indexOf(eB[n]),-1!==a&&(-1===d||a<d)&&(d=a);// if we still have not hit it, then the entire thing is a host.
|
|
534
|
-
-1===d&&(d=t.length),":"===t[d-1]&&d--;var g=t.slice(0,d);t=t.slice(d),this.parseHost(g),this.hostname=this.hostname||"";// if hostname begins with [ and ends with ]
|
|
535
|
-
// assume that it's an IPv6 address.
|
|
536
|
-
var f="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];// validate a little.
|
|
537
|
-
if(!f){var b=this.hostname.split(/\./);for(n=0,s=b.length;n<s;n++){var _=b[n];if(_&&!_.match(tB)){for(var y="",x=0,v=_.length;x<v;x++)y+=127<_.charCodeAt(x)?// we replace non-ASCII char with a temporary placeholder
|
|
538
|
-
// we need this to make sure size of hostname is not
|
|
539
|
-
// broken by replacing non-ASCII by nothing
|
|
540
|
-
"x":_[x];// we test again with ASCII char only
|
|
541
|
-
if(!y.match(tB)){var k=b.slice(0,n),q=b.slice(n+1),L=_.match(nB);L&&(k.push(L[1]),q.unshift(L[2])),q.length&&(t=q.join(".")+t),this.hostname=k.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),f&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}// chop off from the tail first.
|
|
542
|
-
var w=t.indexOf("#");-1!==w&&(this.hash=t.substr(w),t=t.slice(0,w));var C=t.indexOf("?");return-1!==C&&(this.search=t.substr(C),t=t.slice(0,C)),t&&(this.pathname=t),oB[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},c.prototype.parseHost=function(e){var r=WU.exec(e);r&&(r=r[0],":"!==r&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)};var aB={encode:o,decode:l,format:function(e){var r="";return r+=e.protocol||"",r+=e.slashes?"//":"",r+=e.auth?e.auth+"@":"",r+=e.hostname&&-1!==e.hostname.indexOf(":")?"["+e.hostname+"]":e.hostname||"",r+=e.port?":"+e.port:"",r+=e.pathname||"",r+=e.search||"",r+=e.hash||"",r},parse:/* eslint-enable no-script-url */function(e,r){if(e&&e instanceof c)return e;var t=new c;return t.parse(e,r),t}},iB=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,lB=/[\0-\x1F\x7F-\x9F]/,cB=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,pB=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,uB={Any:iB,Cc:lB,Cf:cB,P:FU,Z:pB},dB=function(e,r){return r={exports:{}},e(r,r.exports),r.exports}(function(e,r){function t(e){return Object.prototype.toString.call(e)}function n(e,r){return l.call(e,r)}// Merge objects
|
|
543
|
-
//
|
|
544
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
545
|
-
function s(e){/*eslint no-bitwise:0*/ // broken sequence
|
|
546
|
-
return!(55296<=e&&57343>=e)&&!(64976<=e&&65007>=e)&&65535!=(65535&e)&&65534!=(65535&e)&&!(0<=e&&8>=e)&&11!==e&&!(14<=e&&31>=e)&&!(127<=e&&159>=e)&&!(1114111<e);// never used
|
|
547
|
-
// control codes
|
|
548
|
-
// out of range
|
|
549
|
-
}function o(e){/*eslint no-bitwise:0*/if(65535<e){e-=65536;var r=55296+(e>>10),t=56320+(1023&e);return Ae(r,t)}return Ae(e)}function a(e,r){var t=0;return n(ZU,r)?ZU[r]:35===r.charCodeAt(0)/* # */&&d.test(r)&&(t="x"===r[1].toLowerCase()?parseInt(r.slice(2),16):parseInt(r.slice(1),10),s(t))?o(t):e}/*function replaceEntities(str) {
|
|
550
|
-
if (str.indexOf('&') < 0) { return str; }
|
|
551
|
-
|
|
552
|
-
return str.replace(ENTITY_RE, replaceEntityPattern);
|
|
553
|
-
}*/function i(e){return g[e]}var l=Object.prototype.hasOwnProperty,c=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,p=/&([a-z#][a-z0-9]{1,31});/gi,u=new RegExp(c.source+"|"+p.source,"gi"),d=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,h=/[&<>"]/,m=/[&<>"]/g,g={"&":"&","<":"<",">":">",'"':"""},f=/[.?*+^$[\]\\(){}|-]/g;r.lib={},r.lib.mdurl=aB,r.lib.ucmicro=uB,r.assign=function(e/*from1, from2, from3, ...*/){var r=Array.prototype.slice.call(arguments,1);return r.forEach(function(r){if(r){if("object"!=typeof r)throw new TypeError(r+"must be object");Object.keys(r).forEach(function(t){e[t]=r[t]})}}),e}// Remove element from array and put another array at those position.
|
|
554
|
-
// Useful for some operations with tokens
|
|
555
|
-
,r.isString=function(e){return"[object String]"===t(e)},r.has=n,r.unescapeMd=function(e){return 0>e.indexOf("\\")?e:e.replace(c,"$1")},r.unescapeAll=function(e){return 0>e.indexOf("\\")&&0>e.indexOf("&")?e:e.replace(u,function(e,r,t){return r?r:a(e,t)})}////////////////////////////////////////////////////////////////////////////////
|
|
556
|
-
,r.isValidEntityCode=s,r.fromCodePoint=o,r.escapeHtml=function(e){return h.test(e)?e.replace(m,i):e}////////////////////////////////////////////////////////////////////////////////
|
|
557
|
-
,r.arrayReplaceAt=function(e,r,t){return[].concat(e.slice(0,r),t,e.slice(r+1))},r.isSpace=////////////////////////////////////////////////////////////////////////////////
|
|
558
|
-
function(e){return 9===e||32===e}// Zs (unicode class) || [\t\f\v\r\n]
|
|
559
|
-
,r.isWhiteSpace=function(e){return!!(8192<=e&&8202>=e)||9===e||10===e||11===e||12===e||13===e||32===e||160===e||5760===e||8239===e||8287===e||12288===e}////////////////////////////////////////////////////////////////////////////////
|
|
560
|
-
/*eslint-disable max-len*/ // Currently without astral characters support.
|
|
561
|
-
,r.isMdAsciiPunct=// Markdown ASCII punctuation characters.
|
|
562
|
-
//
|
|
563
|
-
// !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, or ~
|
|
564
|
-
// http://spec.commonmark.org/0.15/#ascii-punctuation-character
|
|
565
|
-
//
|
|
566
|
-
// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.
|
|
567
|
-
//
|
|
568
|
-
function(e){return 33/* ! */===e||34/* " */===e||35/* # */===e||36/* $ */===e||37/* % */===e||38/* & */===e||39/* ' */===e||40/* ( */===e||41/* ) */===e||42/* * */===e||43/* + */===e||44/* , */===e||45/* - */===e||46/* . */===e||47/* / */===e||58/* : */===e||59/* ; */===e||60/* < */===e||61/* = */===e||62/* > */===e||63/* ? */===e||64/* @ */===e||91/* [ */===e||92/* \ */===e||93/* ] */===e||94/* ^ */===e||95/* _ */===e||96/* ` */===e||123/* { */===e||124/* | */===e||125/* } */===e||126/* ~ */===e}// Hepler to unify [reference labels].
|
|
569
|
-
//
|
|
570
|
-
,r.isPunctChar=function(e){return FU.test(e)},r.escapeRE=function(e){return e.replace(f,"\\$&")},r.normalizeReference=function(e){// .toLowerCase().toUpperCase() should get rid of all differences
|
|
571
|
-
// between letter variants.
|
|
572
|
-
//
|
|
573
|
-
// Simple .toLowerCase() doesn't normalize 125 code points correctly,
|
|
574
|
-
// and .toUpperCase doesn't normalize 6 of them (list of exceptions:
|
|
575
|
-
// İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently
|
|
576
|
-
// uppercased versions).
|
|
577
|
-
//
|
|
578
|
-
// Here's an example showing how it happens. Lets take greek letter omega:
|
|
579
|
-
// uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)
|
|
580
|
-
//
|
|
581
|
-
// Unicode entries:
|
|
582
|
-
// 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;
|
|
583
|
-
// 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398
|
|
584
|
-
// 03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398
|
|
585
|
-
// 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;
|
|
586
|
-
//
|
|
587
|
-
// Case-insensitive comparison should treat all of them as equivalent.
|
|
588
|
-
//
|
|
589
|
-
// But .toLowerCase() doesn't change ϑ (it's already lowercase),
|
|
590
|
-
// and .toUpperCase() doesn't change ϴ (already uppercase).
|
|
591
|
-
//
|
|
592
|
-
// Applying first lower then upper case normalizes any character:
|
|
593
|
-
// '\u0398\u03f4\u03b8\u03d1'.toLowerCase().toUpperCase() === '\u0398\u0398\u0398\u0398'
|
|
594
|
-
//
|
|
595
|
-
// Note: this is equivalent to unicode case folding; unicode normalization
|
|
596
|
-
// is a different step that is not required here.
|
|
597
|
-
//
|
|
598
|
-
// Final result should be uppercased, because it's later stored in an object
|
|
599
|
-
// (this avoid a conflict with Object.prototype members,
|
|
600
|
-
// most notably, `__proto__`)
|
|
601
|
-
//
|
|
602
|
-
return e=e.trim().replace(/\s+/g," "),"\u1E7E"==="\u1E9E".toLowerCase()&&(e=e.replace(/ẞ/g,"\xDF")),e.toLowerCase().toUpperCase()}////////////////////////////////////////////////////////////////////////////////
|
|
603
|
-
// Re-export libraries commonly used in both markdown-it and its plugins,
|
|
604
|
-
// so plugins won't have to depend on them explicitly, which reduces their
|
|
605
|
-
// bundled size (e.g. a browser build).
|
|
606
|
-
//
|
|
607
|
-
}),hB=dB.lib,mB=dB.assign,gB=dB.isString,fB=dB.has,bB=dB.unescapeMd,_B=dB.unescapeAll,kB=dB.isValidEntityCode,yB=dB.fromCodePoint,xB=dB.escapeHtml,vB=dB.arrayReplaceAt,qB=dB.isSpace,LB=dB.isWhiteSpace,wB=dB.isMdAsciiPunct,CB=dB.isPunctChar,AB=dB.escapeRE,SB=dB.normalizeReference,EB=dB.unescapeAll,TB=dB.unescapeAll,DB={parseLinkLabel:function(e,r,t){var n=-1,s=e.posMax,o=e.pos,a,i,l,c;for(e.pos=r+1,a=1;e.pos<s;){if(l=e.src.charCodeAt(e.pos),93===l&&(a--,0===a)/* ] */){i=!0;break}if(c=e.pos,e.md.inline.skipToken(e),91===l/* [ */)if(c===e.pos-1)a++;else if(t)return e.pos=o,-1}return i&&(n=e.pos),e.pos=o,n},parseLinkDestination:function(e,r,t){var n=r,s={ok:!1,pos:0,lines:0,str:""},o,a;if(60===e.charCodeAt(r)/* < */){for(r++;r<t;){if(o=e.charCodeAt(r),10===o/* \n */)return s;if(62===o/* > */)return s.pos=r+1,s.str=EB(e.slice(n+1,r)),s.ok=!0,s;if(92===o/* \ */&&r+1<t){r+=2;continue}r++}// no closing '>'
|
|
608
|
-
return s}// this should be ... } else { ... branch
|
|
609
|
-
for(a=0;r<t&&(o=e.charCodeAt(r),32!==o)&&!(32>o||127===o);){if(92===o/* \ */&&r+1<t){r+=2;continue}if(40===o/* ( */&&a++,41===o/* ) */){if(0===a)break;a--}r++}return n===r?s:0===a?(s.str=EB(e.slice(n,r)),s.lines=0,s.pos=r,s.ok=!0,s):s},parseLinkTitle:function(e,r,t){var n=0,s=r,o={ok:!1,pos:0,lines:0,str:""},a,i;if(r>=t)return o;if(i=e.charCodeAt(r),34!==i/* " */&&39!==i/* ' */&&40!==i/* ( */)return o;for(r++,40===i&&(i=41);r<t;){if(a=e.charCodeAt(r),a===i)return o.pos=r+1,o.lines=n,o.str=TB(e.slice(s+1,r)),o.ok=!0,o;10===a?n++:92===a/* \ */&&r+1<t&&(r++,10===e.charCodeAt(r)&&n++),r++}return o}},IB=dB.assign,zB=dB.unescapeAll,RB=dB.escapeHtml,NB={};NB.code_inline=function(e,r,t,n,s){var o=e[r];return"<code"+s.renderAttrs(o)+">"+RB(e[r].content)+"</code>"},NB.code_block=function(e,r,t,n,s){var o=e[r];return"<pre"+s.renderAttrs(o)+"><code>"+RB(e[r].content)+"</code></pre>\n"},NB.fence=function(e,r,t,n,s){var o=e[r],a=o.info?zB(o.info).trim():"",l="",c,p,u,d;return a&&(l=a.split(/\s+/g)[0]),c=t.highlight?t.highlight(o.content,l)||RB(o.content):RB(o.content),0===c.indexOf("<pre")?c+"\n":a?(p=o.attrIndex("class"),u=o.attrs?o.attrs.slice():[],0>p?u.push(["class",t.langPrefix+l]):u[p][1]+=" "+t.langPrefix+l,d={attrs:u},"<pre><code"+s.renderAttrs(d)+">"+c+"</code></pre>\n"):"<pre><code"+s.renderAttrs(o)+">"+c+"</code></pre>\n";// If language exists, inject class gently, without modifying original token.
|
|
610
|
-
// May be, one day we will add .clone() for token and simplify this part, but
|
|
611
|
-
// now we prefer to keep things local.
|
|
612
|
-
},NB.image=function(e,r,t,n,s){var o=e[r];// "alt" attr MUST be set, even if empty. Because it's mandatory and
|
|
613
|
-
// should be placed on proper position for tests.
|
|
614
|
-
//
|
|
615
|
-
// Replace content with actual value
|
|
616
|
-
return o.attrs[o.attrIndex("alt")][1]=s.renderInlineAsText(o.children,t,n),s.renderToken(e,r,t)},NB.hardbreak=function(e,r,t/*, env */){return t.xhtmlOut?"<br />\n":"<br>\n"},NB.softbreak=function(e,r,t/*, env */){return t.breaks?t.xhtmlOut?"<br />\n":"<br>\n":"\n"},NB.text=function(e,r/*, options, env */){return RB(e[r].content)},NB.html_block=function(e,r/*, options, env */){return e[r].content},NB.html_inline=function(e,r/*, options, env */){return e[r].content},p.prototype.renderAttrs=function(e){var r,t,n;if(!e.attrs)return"";for(n="",r=0,t=e.attrs.length;r<t;r++)n+=" "+RB(e.attrs[r][0])+"=\""+RB(e.attrs[r][1])+"\"";return n},p.prototype.renderToken=function(e,r,t){var n="",s=!1,o=e[r],a;// Tight list paragraphs
|
|
617
|
-
return o.hidden?"":(o.block&&-1!==o.nesting&&r&&e[r-1].hidden&&(n+="\n"),n+=(-1===o.nesting?"</":"<")+o.tag,n+=this.renderAttrs(o),0===o.nesting&&t.xhtmlOut&&(n+=" /"),o.block&&(s=!0,1===o.nesting&&r+1<e.length&&(a=e[r+1],"inline"===a.type||a.hidden?s=!1:-1===a.nesting&&a.tag===o.tag&&(s=!1))),n+=s?">\n":">",n);// Insert a newline between hidden paragraph and subsequent opening
|
|
618
|
-
// block-level tag.
|
|
619
|
-
//
|
|
620
|
-
// For example, here we should insert a newline before blockquote:
|
|
621
|
-
// - a
|
|
622
|
-
// >
|
|
623
|
-
//
|
|
624
|
-
},p.prototype.renderInline=function(e,r,t){for(var n="",s=this.rules,o=0,a=e.length,l;o<a;o++)l=e[o].type,n+="undefined"==typeof s[l]?this.renderToken(e,o,r):s[l](e,o,r,t,this);return n},p.prototype.renderInlineAsText=function(e,r,t){for(var n="",s=0,o=e.length;s<o;s++)"text"===e[s].type?n+=e[s].content:"image"===e[s].type&&(n+=this.renderInlineAsText(e[s].children,r,t));return n},p.prototype.render=function(e,r,t){var n="",s=this.rules,o,a,l;for(o=0,a=e.length;o<a;o++)l=e[o].type,n+="inline"===l?this.renderInline(e[o].children,r,t):"undefined"==typeof s[l]?this.renderToken(e,o,r,t):s[e[o].type](e,o,r,t,this);return n};var MB=p;u.prototype.__find__=function(e){for(var r=0;r<this.__rules__.length;r++)if(this.__rules__[r].name===e)return r;return-1},u.prototype.__compile__=function(){var e=this,r=[""];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){0>r.indexOf(e)&&r.push(e)})}),e.__cache__={},r.forEach(function(r){e.__cache__[r]=[],e.__rules__.forEach(function(t){!t.enabled||r&&0>t.alt.indexOf(r)||e.__cache__[r].push(t.fn)})})},u.prototype.at=function(e,r,t){var n=this.__find__(e);if(-1===n)throw new Error("Parser rule not found: "+e);this.__rules__[n].fn=r,this.__rules__[n].alt=(t||{}).alt||[],this.__cache__=null},u.prototype.before=function(e,r,t,n){var s=this.__find__(e);if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s,0,{name:r,enabled:!0,fn:t,alt:(n||{}).alt||[]}),this.__cache__=null},u.prototype.after=function(e,r,t,n){var s=this.__find__(e);if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s+1,0,{name:r,enabled:!0,fn:t,alt:(n||{}).alt||[]}),this.__cache__=null},u.prototype.push=function(e,r,t){this.__rules__.push({name:e,enabled:!0,fn:r,alt:(t||{}).alt||[]}),this.__cache__=null},u.prototype.enable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];// Search by name and enable
|
|
625
|
-
return e.forEach(function(e){var n=this.__find__(e);if(0>n){if(r)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!0,t.push(e)},this),this.__cache__=null,t},u.prototype.enableOnly=function(e,r){Array.isArray(e)||(e=[e]),this.__rules__.forEach(function(e){e.enabled=!1}),this.enable(e,r)},u.prototype.disable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];// Search by name and disable
|
|
626
|
-
return e.forEach(function(e){var n=this.__find__(e);if(0>n){if(r)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!1,t.push(e)},this),this.__cache__=null,t},u.prototype.getRules=function(e){// Chain can be empty, if rules disabled. But we still have to return Array.
|
|
627
|
-
return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]};var PB=u,VB=/\r\n?|\n/g,UB=/\0/g,BB=function(e){var r=e.tokens,t,n,s;// Parse inlines
|
|
628
|
-
for(n=0,s=r.length;n<s;n++)t=r[n],"inline"===t.type&&e.md.inline.parse(t.content,e.md,e.env,t.children)},OB=dB.arrayReplaceAt,jB=function(e){var r=e.tokens,t,n,s,o,a,c,p,u,m,g,f,b,_,k,y,x,v;if(e.md.options.linkify)for(n=0,s=r.length;n<s;n++)if("inline"===r[n].type&&e.md.linkify.pretest(r[n].content))// We scan from the end, to keep position when new tags added.
|
|
629
|
-
// Use reversed logic in links start/end match
|
|
630
|
-
for(o=r[n].children,_=0,t=o.length-1;0<=t;t--){// Skip content of markdown links
|
|
631
|
-
if(c=o[t],"link_close"===c.type){for(t--;o[t].level!==c.level&&"link_open"!==o[t].type;)t--;continue}// Skip content of html tag links
|
|
632
|
-
if(("html_inline"===c.type&&(d(c.content)&&0<_&&_--,h(c.content)&&_++),!(0<_))&&"text"===c.type&&e.md.linkify.test(c.content)){for(m=c.content,v=e.md.linkify.match(m),p=[],b=c.level,f=0,u=0;u<v.length;u++)(k=v[u].url,y=e.md.normalizeLink(k),!!e.md.validateLink(y))&&(x=v[u].text,x=v[u].schema?"mailto:"!==v[u].schema||/^mailto:/i.test(x)?e.md.normalizeLinkText(x):e.md.normalizeLinkText("mailto:"+x).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+x).replace(/^http:\/\//,""),g=v[u].index,g>f&&(a=new e.Token("text","",0),a.content=m.slice(f,g),a.level=b,p.push(a)),a=new e.Token("link_open","a",1),a.attrs=[["href",y]],a.level=b++,a.markup="linkify",a.info="auto",p.push(a),a=new e.Token("text","",0),a.content=x,a.level=b,p.push(a),a=new e.Token("link_close","a",-1),a.level=--b,a.markup="linkify",a.info="auto",p.push(a),f=v[u].lastIndex);f<m.length&&(a=new e.Token("text","",0),a.content=m.slice(f),a.level=b,p.push(a)),r[n].children=o=OB(o,t,p)}}},GB=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,HB=/\((c|tm|r|p)\)/i,ZB=/\((c|tm|r|p)\)/ig,FB={c:"\xA9",r:"\xAE",p:"\xA7",tm:"\u2122"},$B=dB.isWhiteSpace,JB=dB.isPunctChar,YB=dB.isMdAsciiPunct,WB=/['"]/,QB=/['"]/g;// Normalize input string
|
|
633
|
-
k.prototype.attrIndex=function(e){var r,t,n;if(!this.attrs)return-1;for(r=this.attrs,t=0,n=r.length;t<n;t++)if(r[t][0]===e)return t;return-1},k.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},k.prototype.attrSet=function(e,r){var t=this.attrIndex(e),n=[e,r];0>t?this.attrPush(n):this.attrs[t]=n},k.prototype.attrGet=function(e){var r=this.attrIndex(e),t=null;return 0<=r&&(t=this.attrs[r][1]),t},k.prototype.attrJoin=function(e,r){var t=this.attrIndex(e);0>t?this.attrPush([e,r]):this.attrs[t][1]=this.attrs[t][1]+" "+r};var KB=k;y.prototype.Token=KB;var XB=[["normalize",function(e){var r;// Normalize newlines
|
|
634
|
-
r=e.src.replace(VB,"\n"),r=r.replace(UB,"\uFFFD"),e.src=r}],["block",function(e){var r;e.inlineMode?(r=new e.Token("inline","",0),r.content=e.src,r.map=[0,1],r.children=[],e.tokens.push(r)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}],["inline",BB],["linkify",jB],["replacements",function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;0<=r;r--)"inline"===e.tokens[r].type&&(HB.test(e.tokens[r].content)&&g(e.tokens[r].children),GB.test(e.tokens[r].content)&&f(e.tokens[r].children))}],["smartquotes",function(e){/*eslint max-depth:0*/var r;if(e.md.options.typographer)for(r=e.tokens.length-1;0<=r;r--)"inline"===e.tokens[r].type&&WB.test(e.tokens[r].content)&&_(e.tokens[r].children,e)}]];x.prototype.process=function(e){var r,t,n;for(n=this.ruler.getRules(""),r=0,t=n.length;r<t;r++)n[r](e)},x.prototype.State=y;var eO=x,rO=dB.isSpace,tO=function(e,r,n,s){var o,a,l,c,p,u,d,h,m,g,f,b;// should have at least two lines
|
|
635
|
-
if(r+2>n)return!1;if(p=r+1,e.sCount[p]<e.blkIndent)return!1;// if it's indented more than 3 spaces, it should be a code block
|
|
636
|
-
if(4<=e.sCount[p]-e.blkIndent)return!1;// first character of the second line should be '|', '-', ':',
|
|
637
|
-
// and no other characters are allowed but spaces;
|
|
638
|
-
// basically, this is the equivalent of /^[-:|][-:|\s]*$/ regexp
|
|
639
|
-
if(l=e.bMarks[p]+e.tShift[p],l>=e.eMarks[p])return!1;if(o=e.src.charCodeAt(l++),124!==o/* | */&&45!==o/* - */&&58!==o/* : */)return!1;for(;l<e.eMarks[p];){if(o=e.src.charCodeAt(l),124!==o/* | */&&45!==o/* - */&&58!==o/* : */&&!rO(o))return!1;l++}for(a=v(e,r+1),u=a.split("|"),m=[],c=0;c<u.length;c++){if(g=u[c].trim(),!g)// allow empty columns before and after table, but not in between columns;
|
|
640
|
-
// e.g. allow ` |---| `, disallow ` ---||--- `
|
|
641
|
-
if(0===c||c===u.length-1)continue;else return!1;if(!/^:?-+:?$/.test(g))return!1;58===g.charCodeAt(g.length-1)/* : */?m.push(58===g.charCodeAt(0)/* : */?"center":"right"):58===g.charCodeAt(0)/* : */?m.push("left"):m.push("")}if(a=v(e,r).trim(),-1===a.indexOf("|"))return!1;if(4<=e.sCount[r]-e.blkIndent)return!1;if(u=q(a.replace(/^\||\|$/g,"")),d=u.length,d>m.length)return!1;if(s)return!0;for(h=e.push("table_open","table",1),h.map=f=[r,0],h=e.push("thead_open","thead",1),h.map=[r,r+1],h=e.push("tr_open","tr",1),h.map=[r,r+1],c=0;c<u.length;c++)h=e.push("th_open","th",1),h.map=[r,r+1],m[c]&&(h.attrs=[["style","text-align:"+m[c]]]),h=e.push("inline","",0),h.content=u[c].trim(),h.map=[r,r+1],h.children=[],h=e.push("th_close","th",-1);for(h=e.push("tr_close","tr",-1),h=e.push("thead_close","thead",-1),h=e.push("tbody_open","tbody",1),h.map=b=[r+2,0],p=r+2;p<n&&!(e.sCount[p]<e.blkIndent)&&(a=v(e,p).trim(),-1!==a.indexOf("|"))&&!(4<=e.sCount[p]-e.blkIndent);p++){for(u=q(a.replace(/^\||\|$/g,"")),h=e.push("tr_open","tr",1),c=0;c<d;c++)h=e.push("td_open","td",1),m[c]&&(h.attrs=[["style","text-align:"+m[c]]]),h=e.push("inline","",0),h.content=u[c]?u[c].trim():"",h.children=[],h=e.push("td_close","td",-1);h=e.push("tr_close","tr",-1)}return h=e.push("tbody_close","tbody",-1),h=e.push("table_close","table",-1),f[1]=b[1]=p,e.line=p,!0},nO=dB.isSpace,sO=function(e,r,t,n){var s=e.lineMax,o=e.bMarks[r]+e.tShift[r],a=e.eMarks[r],c,p,u,d,h,m,g,f,b,_,k,y,x,v,q,L,w,C,A,S;// if it's indented more than 3 spaces, it should be a code block
|
|
642
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;// check the block quote marker
|
|
643
|
-
if(62!==e.src.charCodeAt(o++)/* > */)return!1;// we know that it's going to be a valid blockquote,
|
|
644
|
-
// so no point trying to find the end of it in silent mode
|
|
645
|
-
if(n)return!0;// skip spaces after ">" and re-calculate offset
|
|
646
|
-
for(d=b=e.sCount[r]+o-(e.bMarks[r]+e.tShift[r]),32===e.src.charCodeAt(o)/* space */?(o++,d++,b++,c=!1,L=!0):9===e.src.charCodeAt(o)/* tab */?(L=!0,3==(e.bsCount[r]+b)%4?(o++,d++,b++,c=!1):c=!0):L=!1,_=[e.bMarks[r]],e.bMarks[r]=o;o<a&&(p=e.src.charCodeAt(o),nO(p));)9===p?b+=4-(b+e.bsCount[r]+(c?1:0))%4:b++,o++;// Search the end of the block
|
|
647
|
-
//
|
|
648
|
-
// Block ends with either:
|
|
649
|
-
// 1. an empty line outside:
|
|
650
|
-
// ```
|
|
651
|
-
// > test
|
|
652
|
-
//
|
|
653
|
-
// ```
|
|
654
|
-
// 2. an empty line inside:
|
|
655
|
-
// ```
|
|
656
|
-
// >
|
|
657
|
-
// test
|
|
658
|
-
// ```
|
|
659
|
-
// 3. another tag:
|
|
660
|
-
// ```
|
|
661
|
-
// > test
|
|
662
|
-
// - - -
|
|
663
|
-
// ```
|
|
664
|
-
for(k=[e.bsCount[r]],e.bsCount[r]=e.sCount[r]+1+(L?1:0),m=o>=a,v=[e.sCount[r]],e.sCount[r]=b-d,q=[e.tShift[r]],e.tShift[r]=o-e.bMarks[r],C=e.md.block.ruler.getRules("blockquote"),x=e.parentType,e.parentType="blockquote",S=!1,f=r+1;f<t&&(e.sCount[f]<e.blkIndent&&(S=!0),o=e.bMarks[f]+e.tShift[f],a=e.eMarks[f],!(o>=a));f++){if(62===e.src.charCodeAt(o++)/* > */&&!S){for(d=b=e.sCount[f]+o-(e.bMarks[f]+e.tShift[f]),32===e.src.charCodeAt(o)/* space */?(o++,d++,b++,c=!1,L=!0):9===e.src.charCodeAt(o)/* tab */?(L=!0,3==(e.bsCount[f]+b)%4?(o++,d++,b++,c=!1):c=!0):L=!1,_.push(e.bMarks[f]),e.bMarks[f]=o;o<a&&(p=e.src.charCodeAt(o),nO(p));)9===p?b+=4-(b+e.bsCount[f]+(c?1:0))%4:b++,o++;m=o>=a,k.push(e.bsCount[f]),e.bsCount[f]=e.sCount[f]+1+(L?1:0),v.push(e.sCount[f]),e.sCount[f]=b-d,q.push(e.tShift[f]),e.tShift[f]=o-e.bMarks[f];continue}// Case 2: line is not inside the blockquote, and the last line was empty.
|
|
665
|
-
if(m)break;// Case 3: another tag found.
|
|
666
|
-
for(w=!1,u=0,h=C.length;u<h;u++)if(C[u](e,f,t,!0)){w=!0;break}if(w){e.lineMax=f,0!==e.blkIndent&&(_.push(e.bMarks[f]),k.push(e.bsCount[f]),q.push(e.tShift[f]),v.push(e.sCount[f]),e.sCount[f]-=e.blkIndent);break}_.push(e.bMarks[f]),k.push(e.bsCount[f]),q.push(e.tShift[f]),v.push(e.sCount[f]),e.sCount[f]=-1}// Restore original tShift; this might not be necessary since the parser
|
|
667
|
-
// has already been here, but just to make sure we can do that.
|
|
668
|
-
for(y=e.blkIndent,e.blkIndent=0,A=e.push("blockquote_open","blockquote",1),A.markup=">",A.map=g=[r,0],e.md.block.tokenize(e,r,f),A=e.push("blockquote_close","blockquote",-1),A.markup=">",e.lineMax=s,e.parentType=x,g[1]=e.line,u=0;u<q.length;u++)e.bMarks[u+r]=_[u],e.tShift[u+r]=q[u],e.sCount[u+r]=v[u],e.bsCount[u+r]=k[u];return e.blkIndent=y,!0},oO=dB.isSpace,aO=dB.isSpace,iO=function(e,r,t,n){var s=Math.min,o=!1,a=!0,c,p,u,d,h,m,g,f,b,_,k,y,x,v,q,A,S,E,T,D,I,z,R,N,M,P,V,U;// if it's indented more than 3 spaces, it should be a code block
|
|
669
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;// Special case:
|
|
670
|
-
// - item 1
|
|
671
|
-
// - item 2
|
|
672
|
-
// - item 3
|
|
673
|
-
// - item 4
|
|
674
|
-
// - this one is a paragraph continuation
|
|
675
|
-
if(0<=e.listIndent&&4<=e.sCount[r]-e.listIndent&&e.sCount[r]<e.blkIndent)return!1;// limit conditions when list can interrupt
|
|
676
|
-
// a paragraph (validation mode only)
|
|
677
|
-
// Detect list type and position after marker
|
|
678
|
-
if(n&&"paragraph"===e.parentType&&e.tShift[r]>=e.blkIndent&&(o=!0),0<=(R=w(e,r))){// If we're starting a new ordered list right after
|
|
679
|
-
// a paragraph, it should start with 1.
|
|
680
|
-
if(g=!0,M=e.bMarks[r]+e.tShift[r],x=+e.src.substr(M,R-M-1),o&&1!==x)return!1;}else if(0<=(R=L(e,r)))g=!1;else return!1;// If we're starting a new unordered list right after
|
|
681
|
-
// a paragraph, first line should not be empty.
|
|
682
|
-
if(o&&e.skipSpaces(R)>=e.eMarks[r])return!1;// We should terminate list on style change. Remember first one to compare.
|
|
683
|
-
// For validation mode we can terminate immediately
|
|
684
|
-
if(y=e.src.charCodeAt(R-1),n)return!0;// Start list
|
|
685
|
-
for(k=e.tokens.length,g?(U=e.push("ordered_list_open","ol",1),1!==x&&(U.attrs=[["start",x]])):U=e.push("bullet_list_open","ul",1),U.map=_=[r,0],U.markup=Ae(y),q=r,N=!1,V=e.md.block.ruler.getRules("list"),E=e.parentType,e.parentType="list";q<t;){for(z=R,v=e.eMarks[q],m=A=e.sCount[q]+R-(e.bMarks[r]+e.tShift[r]);z<v;){if(c=e.src.charCodeAt(z),9===c)A+=4-(A+e.bsCount[q])%4;else if(32===c)A++;else break;z++}if(p=z,h=p>=v?1:A-m,4<h&&(h=1),d=m+h,U=e.push("list_item_open","li",1),U.markup=Ae(y),U.map=f=[r,0],I=e.tight,D=e.tShift[r],T=e.sCount[r],S=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=d,e.tight=!0,e.tShift[r]=p-e.bMarks[r],e.sCount[r]=A,p>=v&&e.isEmpty(r+1)?e.line=s(e.line+2,t):e.md.block.tokenize(e,r,t,!0),(!e.tight||N)&&(a=!1),N=1<e.line-r&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=S,e.tShift[r]=D,e.sCount[r]=T,e.tight=I,U=e.push("list_item_close","li",-1),U.markup=Ae(y),q=r=e.line,f[1]=q,p=e.bMarks[r],q>=t)break;//
|
|
686
|
-
// Try to check if list is terminated or continued.
|
|
687
|
-
//
|
|
688
|
-
if(e.sCount[q]<e.blkIndent)break;// if it's indented more than 3 spaces, it should be a code block
|
|
689
|
-
if(4<=e.sCount[r]-e.blkIndent)break;// fail if terminating block found
|
|
690
|
-
for(P=!1,u=0,b=V.length;u<b;u++)if(V[u](e,q,t,!0)){P=!0;break}if(P)break;// fail if list has another type
|
|
691
|
-
if(g){if(R=w(e,q),0>R)break;}else if(R=L(e,q),0>R)break;if(y!==e.src.charCodeAt(R-1))break}// Finalize list
|
|
692
|
-
return U=g?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1),U.markup=Ae(y),_[1]=q,e.line=q,e.parentType=E,a&&C(e,k),!0},lO=dB.normalizeReference,cO=dB.isSpace,pO=function(e,r,t,n){var s=0,o=e.bMarks[r]+e.tShift[r],a=e.eMarks[r],c=r+1,p,u,d,h,m,g,f,b,_,k,y,x,v,q,L,w;// if it's indented more than 3 spaces, it should be a code block
|
|
693
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;if(91!==e.src.charCodeAt(o)/* [ */)return!1;// Simple check to quickly interrupt scan on [link](url) at the start of line.
|
|
694
|
-
// Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54
|
|
695
|
-
for(;++o<a;)if(93===e.src.charCodeAt(o)/* ] */&&92!==e.src.charCodeAt(o-1)/* \ */){if(o+1===a)return!1;if(58!==e.src.charCodeAt(o+1)/* : */)return!1;break}for(h=e.lineMax,L=e.md.block.ruler.getRules("reference"),k=e.parentType,e.parentType="reference";c<h&&!e.isEmpty(c);c++)// this would be a code block normally, but after paragraph
|
|
696
|
-
// it's considered a lazy continuation regardless of what's there
|
|
697
|
-
if(!(3<e.sCount[c]-e.blkIndent)&&!(0>e.sCount[c]))// quirk for blockquotes, this line should already be checked by that rule
|
|
698
|
-
{for(q=!1,g=0,f=L.length;g<f;g++)if(L[g](e,c,h,!0)){q=!0;break}if(q)break}// Some tags can terminate paragraph without empty line.
|
|
699
|
-
for(v=e.getLines(r,c,e.blkIndent,!1).trim(),a=v.length,o=1;o<a;o++){if(p=v.charCodeAt(o),91===p/* [ */)return!1;if(93===p/* ] */){_=o;break}else 10===p/* \n */?s++:92===p/* \ */&&(o++,o<a&&10===v.charCodeAt(o)&&s++)}if(0>_||58!==v.charCodeAt(_+1)/* : */)return!1;// [label]: destination 'title'
|
|
700
|
-
// ^^^ skip optional whitespace here
|
|
701
|
-
for(o=_+2;o<a;o++)if(p=v.charCodeAt(o),10===p)s++;else if(cO(p));else break;// [label]: destination 'title'
|
|
702
|
-
// ^^^^^^^^^^^ parse this
|
|
703
|
-
if(y=e.md.helpers.parseLinkDestination(v,o,a),!y.ok)return!1;if(m=e.md.normalizeLink(y.str),!e.md.validateLink(m))return!1;for(o=y.pos,s+=y.lines,u=o,d=s,x=o;o<a;o++)if(p=v.charCodeAt(o),10===p)s++;else if(cO(p));else break;// [label]: destination 'title'
|
|
704
|
-
// ^^^^^^^ parse this
|
|
705
|
-
// skip trailing spaces until the rest of the line
|
|
706
|
-
for(y=e.md.helpers.parseLinkTitle(v,o,a),o<a&&x!==o&&y.ok?(w=y.str,o=y.pos,s+=y.lines):(w="",o=u,s=d);o<a&&(p=v.charCodeAt(o),!!cO(p));)o++;if(o<a&&10!==v.charCodeAt(o)&&w)for(w="",o=u,s=d;o<a&&(p=v.charCodeAt(o),!!cO(p));)o++;return!(o<a&&10!==v.charCodeAt(o))&&(b=lO(v.slice(1,_)),!!b)&&(!!n||("undefined"==typeof e.env.references&&(e.env.references={}),"undefined"==typeof e.env.references[b]&&(e.env.references[b]={title:w,href:m}),e.parentType=k,e.line=r+s+1,!0));// Reference can not terminate anything. This check is for safety only.
|
|
707
|
-
/*istanbul ignore if*/},uO=dB.isSpace,dO=function(e,r,t/*, silent*/){var n=r+1,s=e.md.block.ruler.getRules("paragraph"),o,a,c,p,u,d,h,m,g,f;// if it's indented more than 3 spaces, it should be a code block
|
|
708
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;// use paragraph to match terminatorRules
|
|
709
|
-
// jump line-by-line until empty one or EOF
|
|
710
|
-
for(f=e.parentType,e.parentType="paragraph";n<t&&!e.isEmpty(n);n++)// this would be a code block normally, but after paragraph
|
|
711
|
-
// it's considered a lazy continuation regardless of what's there
|
|
712
|
-
if(!(3<e.sCount[n]-e.blkIndent)){//
|
|
713
|
-
// Check for underline in setext header
|
|
714
|
-
//
|
|
715
|
-
if(e.sCount[n]>=e.blkIndent&&(d=e.bMarks[n]+e.tShift[n],h=e.eMarks[n],d<h&&(g=e.src.charCodeAt(d),(45===g/* - */||61===g)&&(d=e.skipChars(d,g),d=e.skipSpaces(d),d>=h)/* = */))){m=61===g/* = */?1:2;break}// quirk for blockquotes, this line should already be checked by that rule
|
|
716
|
-
if(!(0>e.sCount[n])){for(a=!1,c=0,p=s.length;c<p;c++)if(s[c](e,n,t,!0)){a=!0;break}if(a)break}// Some tags can terminate paragraph without empty line.
|
|
717
|
-
}return!!m&&(o=e.getLines(r,n,e.blkIndent,!1).trim(),e.line=n+1,u=e.push("heading_open","h"+(m+""),1),u.markup=Ae(g),u.map=[r,e.line],u=e.push("inline","",0),u.content=o,u.map=[r,e.line-1],u.children=[],u=e.push("heading_close","h"+(m+""),-1),u.markup=Ae(g),e.parentType=f,!0)},hO="<[A-Za-z][A-Za-z0-9\\-]*"+("(?:\\s+"+"[a-zA-Z_:][a-zA-Z0-9:._-]*"+"(?:\\s*=\\s*"+("(?:"+"[^\"'=<>`\\x00-\\x20]+"+"|"+"'[^']*'"+"|"+"\"[^\"]*\""+")")+")?)")+"*\\s*\\/?>",mO="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",gO=new RegExp("^(?:"+hO+"|"+mO+"|"+"<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->"+"|"+"<[?].*?[?]>"+"|"+"<![A-Z]+\\s+[^>]*>"+"|"+"<!\\[CDATA\\[[\\s\\S]*?\\]\\]>"+")"),fO=new RegExp("^(?:"+hO+"|"+mO+")"),bO={HTML_TAG_RE:gO,HTML_OPEN_CLOSE_TAG_RE:fO},_O=bO.HTML_OPEN_CLOSE_TAG_RE,kO=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"].join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(_O.source+"\\s*$"),/^$/,!1]],yO=function(e,r,t,n){var s=e.bMarks[r]+e.tShift[r],o=e.eMarks[r],a,l,c,p;// if it's indented more than 3 spaces, it should be a code block
|
|
718
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(s)/* < */)return!1;for(p=e.src.slice(s,o),a=0;a<kO.length&&!kO[a][0].test(p);a++);if(a===kO.length)return!1;if(n)// true if this sequence can be a terminator, false otherwise
|
|
719
|
-
return kO[a][2];// If we are here - we detected HTML block.
|
|
720
|
-
// Let's roll down till block end.
|
|
721
|
-
if(l=r+1,!kO[a][1].test(p))for(;l<t&&!(e.sCount[l]<e.blkIndent);l++)if(s=e.bMarks[l]+e.tShift[l],o=e.eMarks[l],p=e.src.slice(s,o),kO[a][1].test(p)){0!==p.length&&l++;break}return e.line=l,c=e.push("html_block","",0),c.map=[r,l],c.content=e.getLines(r,l,e.blkIndent,!0),!0},xO=function(e,r/*, endLine*/){var t=r+1,n=e.md.block.ruler.getRules("paragraph"),s=e.lineMax,o,a,c,p,u,d;// jump line-by-line until empty one or EOF
|
|
722
|
-
for(d=e.parentType,e.parentType="paragraph";t<s&&!e.isEmpty(t);t++)// this would be a code block normally, but after paragraph
|
|
723
|
-
// it's considered a lazy continuation regardless of what's there
|
|
724
|
-
if(!(3<e.sCount[t]-e.blkIndent)&&!(0>e.sCount[t]))// quirk for blockquotes, this line should already be checked by that rule
|
|
725
|
-
{for(a=!1,c=0,p=n.length;c<p;c++)if(n[c](e,t,s,!0)){a=!0;break}if(a)break}// Some tags can terminate paragraph without empty line.
|
|
726
|
-
return o=e.getLines(r,t,e.blkIndent,!1).trim(),e.line=t,u=e.push("paragraph_open","p",1),u.map=[r,e.line],u=e.push("inline","",0),u.content=o,u.map=[r,e.line],u.children=[],u=e.push("paragraph_close","p",-1),e.parentType=d,!0},vO=dB.isSpace;A.prototype.push=function(e,r,t){var n=new KB(e,r,t);return n.block=!0,0>t&&this.level--,n.level=this.level,0<t&&this.level++,this.tokens.push(n),n},A.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},A.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;e<r&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},A.prototype.skipSpaces=function(e){for(var r=this.src.length,t;e<r&&(t=this.src.charCodeAt(e),!!vO(t));e++);return e},A.prototype.skipSpacesBack=function(e,r){if(e<=r)return e;for(;e>r;)if(!vO(this.src.charCodeAt(--e)))return e+1;return e},A.prototype.skipChars=function(e,r){for(var t=this.src.length;e<t&&this.src.charCodeAt(e)===r;e++);return e},A.prototype.skipCharsBack=function(e,r,t){if(e<=t)return e;for(;e>t;)if(r!==this.src.charCodeAt(--e))return e+1;return e},A.prototype.getLines=function(e,r,t,n){var s=e,o,a,l,c,p,u,d;if(e>=r)return"";for(u=Array(r-e),o=0;s<r;s++,o++){for(a=0,d=c=this.bMarks[s],p=s+1<r||n?this.eMarks[s]+1:this.eMarks[s];c<p&&a<t;){if(l=this.src.charCodeAt(c),vO(l))9===l?a+=4-(a+this.bsCount[s])%4:a++;else if(c-d<this.tShift[s])a++;else break;c++}u[o]=a>t?Array(a-t+1).join(" ")+this.src.slice(c,p):this.src.slice(c,p)}return u.join("")},A.prototype.Token=KB;var qO=[// First 2 params - rule name & source. Secondary array - list of rules,
|
|
727
|
-
// which can be terminated by this one.
|
|
728
|
-
["table",tO,["paragraph","reference"]],["code",function(e,r,t/*, silent*/){var n,s,o;if(4>e.sCount[r]-e.blkIndent)return!1;for(s=n=r+1;n<t;){if(e.isEmpty(n)){n++;continue}if(4<=e.sCount[n]-e.blkIndent){n++,s=n;continue}break}return e.line=s,o=e.push("code_block","code",0),o.content=e.getLines(r,s,4+e.blkIndent,!0),o.map=[r,e.line],!0}],["fence",function(e,r,t,n){var s=!1,o=e.bMarks[r]+e.tShift[r],a=e.eMarks[r],i,l,c,p,u,d,h;// if it's indented more than 3 spaces, it should be a code block
|
|
729
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;if(o+3>a)return!1;if(i=e.src.charCodeAt(o),126!==i/* ~ */&&96!==i/* ` */)return!1;// scan marker length
|
|
730
|
-
if(u=o,o=e.skipChars(o,i),l=o-u,3>l)return!1;if(h=e.src.slice(u,o),c=e.src.slice(o,a),96===i&&0<=c.indexOf(Ae(i))/* ` */)return!1;// Since start is found, we can report success here in validation mode
|
|
731
|
-
if(n)return!0;// search end of block
|
|
732
|
-
for(p=r;;){if(p++,p>=t)// unclosed block should be autoclosed by end of document.
|
|
733
|
-
// also block seems to be autoclosed by end of parent
|
|
734
|
-
break;if(o=u=e.bMarks[p]+e.tShift[p],a=e.eMarks[p],o<a&&e.sCount[p]<e.blkIndent)// non-empty line with negative indent should stop the list:
|
|
735
|
-
// - ```
|
|
736
|
-
// test
|
|
737
|
-
break;if(e.src.charCodeAt(o)===i&&!(4<=e.sCount[p]-e.blkIndent)&&(o=e.skipChars(o,i),!(o-u<l))&&(o=e.skipSpaces(o),!(o<a)))// closing code fence must be at least as long as the opening one
|
|
738
|
-
// closing fence should be indented less than 4 spaces
|
|
739
|
-
{s=!0;// found!
|
|
740
|
-
break}// make sure tail has spaces only
|
|
741
|
-
}// If a fence has heading spaces, they should be removed from its inner block
|
|
742
|
-
return l=e.sCount[r],e.line=p+(s?1:0),d=e.push("fence","code",0),d.info=c,d.content=e.getLines(r+1,p,l,!0),d.markup=h,d.map=[r,e.line],!0},["paragraph","reference","blockquote","list"]],["blockquote",sO,["paragraph","reference","blockquote","list"]],["hr",function(e,r,t,n){var s=e.bMarks[r]+e.tShift[r],o=e.eMarks[r],a,i,l,c;// if it's indented more than 3 spaces, it should be a code block
|
|
743
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;// Check hr marker
|
|
744
|
-
if(a=e.src.charCodeAt(s++),42!==a/* * */&&45!==a/* - */&&95!==a/* _ */)return!1;// markers can be mixed with spaces, but there should be at least 3 of them
|
|
745
|
-
for(i=1;s<o;){if(l=e.src.charCodeAt(s++),l!==a&&!oO(l))return!1;l===a&&i++}return!(3>i)&&(!!n||(e.line=r+1,c=e.push("hr","hr",0),c.map=[r,e.line],c.markup=Array(i+1).join(Ae(a)),!0))},["paragraph","reference","blockquote","list"]],["list",iO,["paragraph","reference","blockquote"]],["reference",pO],["heading",function(e,r,t,n){var s=e.bMarks[r]+e.tShift[r],o=e.eMarks[r],a,i,l,c;// if it's indented more than 3 spaces, it should be a code block
|
|
746
|
-
if(4<=e.sCount[r]-e.blkIndent)return!1;if(a=e.src.charCodeAt(s),35!==a/* # */||s>=o)return!1;// count heading level
|
|
747
|
-
for(i=1,a=e.src.charCodeAt(++s);35===a/* # */&&s<o&&6>=i;)i++,a=e.src.charCodeAt(++s);return!(6<i||s<o&&!uO(a))&&(!!n||(o=e.skipSpacesBack(o,s),l=e.skipCharsBack(o,35,s),l>s&&uO(e.src.charCodeAt(l-1))&&(o=l),e.line=r+1,c=e.push("heading_open","h"+(i+""),1),c.markup="########".slice(0,i),c.map=[r,e.line],c=e.push("inline","",0),c.content=e.src.slice(s,o).trim(),c.map=[r,e.line],c.children=[],c=e.push("heading_close","h"+(i+""),-1),c.markup="########".slice(0,i),!0));// Let's cut tails like ' ### ' from the end of string
|
|
748
|
-
},["paragraph","reference","blockquote"]],["lheading",dO],["html_block",yO,["paragraph","reference","blockquote"]],["paragraph",xO]];S.prototype.tokenize=function(e,r,t){for(var n=this.ruler.getRules(""),s=n.length,o=r,a=!1,l=e.md.options.maxNesting,c,p;o<t&&(e.line=o=e.skipEmptyLines(o),!(o>=t))&&!(e.sCount[o]<e.blkIndent);){// If nesting level exceeded - skip tail to the end. That's not ordinary
|
|
749
|
-
// situation and we should not care about content.
|
|
750
|
-
if(e.level>=l){e.line=t;break}// Try all possible rules.
|
|
751
|
-
// On success, rule should:
|
|
752
|
-
//
|
|
753
|
-
// - update `state.line`
|
|
754
|
-
// - update `state.tokens`
|
|
755
|
-
// - return true
|
|
756
|
-
for(p=0;p<s&&(c=n[p](e,o,t,!1),!c);p++);// set state.tight if we had an empty line before current tag
|
|
757
|
-
// i.e. latest empty line should not count
|
|
758
|
-
e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),o=e.line,o<t&&e.isEmpty(o)&&(a=!0,o++,e.line=o)}},S.prototype.parse=function(e,r,t,n){var s;e&&(s=new this.State(e,r,t,n),this.tokenize(s,s.line,s.lineMax))},S.prototype.State=A;for(var LO=S,wO=function(e,r){for(var t=e.pos;t<e.posMax&&!E(e.src.charCodeAt(t));)t++;return t!==e.pos&&(r||(e.pending+=e.src.slice(e.pos,t)),e.pos=t,!0)},CO=dB.isSpace,AO=function(e,r){var t=e.pos,n,s;if(10!==e.src.charCodeAt(t)/* \n */)return!1;// skip heading spaces for next line
|
|
759
|
-
for(n=e.pending.length-1,s=e.posMax,r||(0<=n&&32===e.pending.charCodeAt(n)?1<=n&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),t++;t<s&&CO(e.src.charCodeAt(t));)t++;return e.pos=t,!0},SO=dB.isSpace,EO=[],TO=0;256>TO;TO++)EO.push(0);["\\","!","\"","#","$","%","&","'","(",")","*","+",",",".","/",":",";","<","=",">","?","@","[","]","^","_","`","{","|","}","~","-"].forEach(function(e){EO[e.charCodeAt(0)]=1});var DO=function(e,r){var t=e.pos,n=e.src.charCodeAt(t),s,o,a,l,c;if(r)return!1;if(126!==n/* ~ */)return!1;if(o=e.scanDelims(e.pos,!0),l=o.length,c=Ae(n),2>l)return!1;for(l%2&&(a=e.push("text","",0),a.content=c,l--),s=0;s<l;s+=2)a=e.push("text","",0),a.content=c+c,e.delimiters.push({marker:n,length:0,// disable "rule of 3" length checks meant for emphasis
|
|
760
|
-
jump:s,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,!0},IO={tokenize:DO,postProcess:function(e){var r=e.tokens_meta,t=e.tokens_meta.length,n;for(T(e,e.delimiters),n=0;n<t;n++)r[n]&&r[n].delimiters&&T(e,r[n].delimiters)}},zO=function(e,r){var t=e.pos,n=e.src.charCodeAt(t),s,o,a;if(r)return!1;if(95!==n/* _ */&&42!==n/* * */)return!1;for(o=e.scanDelims(e.pos,42===n),s=0;s<o.length;s++)a=e.push("text","",0),a.content=Ae(n),e.delimiters.push({// Char code of the starting marker (number).
|
|
761
|
-
//
|
|
762
|
-
marker:n,// Total length of these series of delimiters.
|
|
763
|
-
//
|
|
764
|
-
length:o.length,// An amount of characters before this one that's equivalent to
|
|
765
|
-
// current one. In plain English: if this delimiter does not open
|
|
766
|
-
// an emphasis, neither do previous `jump` characters.
|
|
767
|
-
//
|
|
768
|
-
// Used to skip sequences like "*****" in one step, for 1st asterisk
|
|
769
|
-
// value will be 0, for 2nd it's 1 and so on.
|
|
770
|
-
//
|
|
771
|
-
jump:s,// A position of the token this delimiter corresponds to.
|
|
772
|
-
//
|
|
773
|
-
token:e.tokens.length-1,// If this delimiter is matched as a valid opener, `end` will be
|
|
774
|
-
// equal to its position, otherwise it's `-1`.
|
|
775
|
-
//
|
|
776
|
-
end:-1,// Boolean flags that determine if this delimiter could open or close
|
|
777
|
-
// an emphasis.
|
|
778
|
-
//
|
|
779
|
-
open:o.can_open,close:o.can_close});return e.pos+=o.length,!0},RO={tokenize:zO,postProcess:function(e){var r=e.tokens_meta,t=e.tokens_meta.length,n;for(D(e,e.delimiters),n=0;n<t;n++)r[n]&&r[n].delimiters&&D(e,r[n].delimiters)}},NO=dB.normalizeReference,MO=dB.isSpace,PO=dB.normalizeReference,VO=dB.isSpace,UO=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,BO=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/,OO=bO.HTML_TAG_RE,jO=dB.has,GO=dB.isValidEntityCode,HO=dB.fromCodePoint,ZO=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,FO=/^&([a-z][a-z0-9]{1,31});/i,$O=dB.isWhiteSpace,JO=dB.isPunctChar,YO=dB.isMdAsciiPunct;// Parse backticks
|
|
780
|
-
R.prototype.pushPending=function(){var e=new KB("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},R.prototype.push=function(e,r,t){this.pending&&this.pushPending();var n=new KB(e,r,t),s=null;return 0>t&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,0<t&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],s={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(s),n},R.prototype.scanDelims=function(e,r){var t=e,n=!0,s=!0,o=this.posMax,a=this.src.charCodeAt(e),i,l,c,p,u,d,h,m,g;// treat beginning of the line as a whitespace
|
|
781
|
-
for(i=0<e?this.src.charCodeAt(e-1):32;t<o&&this.src.charCodeAt(t)===a;)t++;return c=t-e,l=t<o?this.src.charCodeAt(t):32,h=YO(i)||JO(Ae(i)),g=YO(l)||JO(Ae(l)),d=$O(i),m=$O(l),m?n=!1:g&&!(d||h)&&(n=!1),d?s=!1:h&&!(m||g)&&(s=!1),r?(p=n,u=s):(p=n&&(!s||h),u=s&&(!n||g)),{can_open:p,can_close:u,length:c}},R.prototype.Token=KB;var WO=[["text",wO],["newline",AO],["escape",function(e,r){var t=e.pos,n=e.posMax,s;if(92!==e.src.charCodeAt(t)/* \ */)return!1;if(t++,t<n){if(s=e.src.charCodeAt(t),256>s&&0!==EO[s])return r||(e.pending+=e.src[t]),e.pos+=2,!0;if(10===s){// skip leading whitespaces from next line
|
|
782
|
-
for(r||e.push("hardbreak","br",0),t++;t<n&&(s=e.src.charCodeAt(t),!!SO(s));)t++;return e.pos=t,!0}}return r||(e.pending+="\\"),e.pos++,!0}],["backticks",function(e,r){var t=e.pos,n=e.src.charCodeAt(t),s,o,a,i,l,c;if(96!==n/* ` */)return!1;for(s=t,t++,o=e.posMax;t<o&&96===e.src.charCodeAt(t)/* ` */;)t++;for(a=e.src.slice(s,t),i=l=t;-1!==(i=e.src.indexOf("`",l));){for(l=i+1;l<o&&96===e.src.charCodeAt(l)/* ` */;)l++;if(l-i===a.length)return r||(c=e.push("code_inline","code",0),c.markup=a,c.content=e.src.slice(t,i).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=l,!0}return r||(e.pending+=a),e.pos+=a.length,!0}],["strikethrough",IO.tokenize],["emphasis",RO.tokenize],["link",function(e,r){var t="",n=e.pos,s=e.posMax,o=e.pos,a=!0,i,l,c,p,u,d,h,m,g,f;if(91!==e.src.charCodeAt(e.pos)/* [ */)return!1;// parser failed to find ']', so it's not a valid link
|
|
783
|
-
if(u=e.pos+1,p=e.md.helpers.parseLinkLabel(e,e.pos,!0),0>p)return!1;if(d=p+1,d<s&&40===e.src.charCodeAt(d)/* ( */){for(a=!1,d++;d<s&&(l=e.src.charCodeAt(d),MO(l)||10===l);d++);if(d>=s)return!1;// [link]( <href> "title" )
|
|
784
|
-
// ^^^^^^ parsing link destination
|
|
785
|
-
for(o=d,h=e.md.helpers.parseLinkDestination(e.src,d,e.posMax),h.ok&&(t=e.md.normalizeLink(h.str),e.md.validateLink(t)?d=h.pos:t=""),o=d;d<s&&(l=e.src.charCodeAt(d),MO(l)||10===l);d++);// [link]( <href> "title" )
|
|
786
|
-
// ^^^^^^^ parsing link title
|
|
787
|
-
if(h=e.md.helpers.parseLinkTitle(e.src,d,e.posMax),d<s&&o!==d&&h.ok)// [link]( <href> "title" )
|
|
788
|
-
// ^^ skipping these spaces
|
|
789
|
-
for(g=h.str,d=h.pos;d<s&&(l=e.src.charCodeAt(d),MO(l)||10===l);d++);else g="";(d>=s||41!==e.src.charCodeAt(d)/* ) */)&&(a=!0),d++}if(a){//
|
|
790
|
-
// Link reference
|
|
791
|
-
//
|
|
792
|
-
if("undefined"==typeof e.env.references)return!1;if(d<s&&91===e.src.charCodeAt(d)/* [ */?(o=d+1,d=e.md.helpers.parseLinkLabel(e,d),0<=d?c=e.src.slice(o,d++):d=p+1):d=p+1,c||(c=e.src.slice(u,p)),m=e.env.references[NO(c)],!m)return e.pos=n,!1;t=m.href,g=m.title}//
|
|
793
|
-
// We found the end of the link, and know for a fact it's a valid link;
|
|
794
|
-
// so all that's left to do is to call tokenizer.
|
|
795
|
-
//
|
|
796
|
-
return r||(e.pos=u,e.posMax=p,f=e.push("link_open","a",1),f.attrs=i=[["href",t]],g&&i.push(["title",g]),e.md.inline.tokenize(e),f=e.push("link_close","a",-1)),e.pos=d,e.posMax=s,!0}],["image",function(e,r){var t="",n=e.pos,s=e.posMax,o,a,i,l,c,p,u,d,h,m,g,f,b;if(33!==e.src.charCodeAt(e.pos)/* ! */)return!1;if(91!==e.src.charCodeAt(e.pos+1)/* [ */)return!1;// parser failed to find ']', so it's not a valid link
|
|
797
|
-
if(p=e.pos+2,c=e.md.helpers.parseLinkLabel(e,e.pos+1,!1),0>c)return!1;if(u=c+1,u<s&&40===e.src.charCodeAt(u)/* ( */){for(u++;u<s&&(a=e.src.charCodeAt(u),VO(a)||10===a);u++);if(u>=s)return!1;// [link]( <href> "title" )
|
|
798
|
-
// ^^^^^^ parsing link destination
|
|
799
|
-
for(b=u,h=e.md.helpers.parseLinkDestination(e.src,u,e.posMax),h.ok&&(t=e.md.normalizeLink(h.str),e.md.validateLink(t)?u=h.pos:t=""),b=u;u<s&&(a=e.src.charCodeAt(u),VO(a)||10===a);u++);// [link]( <href> "title" )
|
|
800
|
-
// ^^^^^^^ parsing link title
|
|
801
|
-
if(h=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<s&&b!==u&&h.ok)// [link]( <href> "title" )
|
|
802
|
-
// ^^ skipping these spaces
|
|
803
|
-
for(m=h.str,u=h.pos;u<s&&(a=e.src.charCodeAt(u),VO(a)||10===a);u++);else m="";if(u>=s||41!==e.src.charCodeAt(u)/* ) */)return e.pos=n,!1;u++}else{//
|
|
804
|
-
// Link reference
|
|
805
|
-
//
|
|
806
|
-
if("undefined"==typeof e.env.references)return!1;if(u<s&&91===e.src.charCodeAt(u)/* [ */?(b=u+1,u=e.md.helpers.parseLinkLabel(e,u),0<=u?l=e.src.slice(b,u++):u=c+1):u=c+1,l||(l=e.src.slice(p,c)),d=e.env.references[PO(l)],!d)return e.pos=n,!1;t=d.href,m=d.title}//
|
|
807
|
-
// We found the end of the link, and know for a fact it's a valid link;
|
|
808
|
-
// so all that's left to do is to call tokenizer.
|
|
809
|
-
//
|
|
810
|
-
return r||(i=e.src.slice(p,c),e.md.inline.parse(i,e.md,e.env,f=[]),g=e.push("image","img",0),g.attrs=o=[["src",t],["alt",""]],g.children=f,g.content=i,m&&o.push(["title",m])),e.pos=u,e.posMax=s,!0}],["autolink",function(e,r){var t=e.pos,n,s,o,a,i,l;return 60===e.src.charCodeAt(t)/* < */&&(n=e.src.slice(t),!(0>n.indexOf(">"))&&(BO.test(n)?(s=n.match(BO),a=s[0].slice(1,-1),i=e.md.normalizeLink(a),!!e.md.validateLink(i))&&(r||(l=e.push("link_open","a",1),l.attrs=[["href",i]],l.markup="autolink",l.info="auto",l=e.push("text","",0),l.content=e.md.normalizeLinkText(a),l=e.push("link_close","a",-1),l.markup="autolink",l.info="auto"),e.pos+=s[0].length,!0):!!UO.test(n)&&(o=n.match(UO),a=o[0].slice(1,-1),i=e.md.normalizeLink("mailto:"+a),!!e.md.validateLink(i))&&(r||(l=e.push("link_open","a",1),l.attrs=[["href",i]],l.markup="autolink",l.info="auto",l=e.push("text","",0),l.content=e.md.normalizeLinkText(a),l=e.push("link_close","a",-1),l.markup="autolink",l.info="auto"),e.pos+=o[0].length,!0)))}],["html_inline",function(e,r){var t=e.pos,n,s,o,a;return!!e.md.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(t)/* < */||t+2>=o))&&(n=e.src.charCodeAt(t+1),33===n/* ! */||63===n/* ? */||47===n/* / */||I(n))&&(s=e.src.slice(t).match(OO),!!s)&&(r||(a=e.push("html_inline","",0),a.content=e.src.slice(t,t+s[0].length)),e.pos+=s[0].length,!0);// Check start
|
|
811
|
-
// Quick fail on second char
|
|
812
|
-
}],["entity",function(e,r){var t=e.pos,n=e.posMax,s,o,a;if(38!==e.src.charCodeAt(t)/* & */)return!1;if(t+1<n)if(s=e.src.charCodeAt(t+1),35===s/* # */){if(a=e.src.slice(t).match(ZO),a)return r||(o="x"===a[1][0].toLowerCase()?parseInt(a[1].slice(1),16):parseInt(a[1],10),e.pending+=GO(o)?HO(o):HO(65533)),e.pos+=a[0].length,!0;}else if(a=e.src.slice(t).match(FO),a&&jO(ZU,a[1]))return r||(e.pending+=ZU[a[1]]),e.pos+=a[0].length,!0;return r||(e.pending+="&"),e.pos++,!0}]],QO=[["balance_pairs",function(e){var r=e.tokens_meta,t=e.tokens_meta.length,n;for(z(e,e.delimiters),n=0;n<t;n++)r[n]&&r[n].delimiters&&z(e,r[n].delimiters)}],["strikethrough",IO.postProcess],["emphasis",RO.postProcess],["text_collapse",function(e){var r=0,t=e.tokens,n=e.tokens.length,s,o;for(s=o=0;s<n;s++)// closing tag
|
|
813
|
-
0>t[s].nesting&&r--,t[s].level=r,0<t[s].nesting&&r++,"text"===t[s].type&&s+1<n&&"text"===t[s+1].type?t[s+1].content=t[s].content+t[s+1].content:(s!==o&&(t[o]=t[s]),o++);s!==o&&(t.length=o)}]];// Parser rules
|
|
814
|
-
N.prototype.skipToken=function(e){var r=e.pos,t=this.ruler.getRules(""),n=t.length,s=e.md.options.maxNesting,o=e.cache,a,l;if("undefined"!=typeof o[r])return void(e.pos=o[r]);if(e.level<s)for(l=0;l<n&&(e.level++,a=t[l](e,!0),e.level--,!a);l++);else// Too much nesting, just skip until the end of the paragraph.
|
|
815
|
-
//
|
|
816
|
-
// NOTE: this will cause links to behave incorrectly in the following case,
|
|
817
|
-
// when an amount of `[` is exactly equal to `maxNesting + 1`:
|
|
818
|
-
//
|
|
819
|
-
// [[[[[[[[[[[[[[[[[[[[[foo]()
|
|
820
|
-
//
|
|
821
|
-
// TODO: remove this workaround when CM standard will allow nested links
|
|
822
|
-
// (we can replace it by preventing links from being parsed in
|
|
823
|
-
// validation mode)
|
|
824
|
-
//
|
|
825
|
-
e.pos=e.posMax;a||e.pos++,o[r]=e.pos},N.prototype.tokenize=function(e){for(var r=this.ruler.getRules(""),t=r.length,n=e.posMax,s=e.md.options.maxNesting,o,a;e.pos<n;){// Try all possible rules.
|
|
826
|
-
// On success, rule should:
|
|
827
|
-
//
|
|
828
|
-
// - update `state.pos`
|
|
829
|
-
// - update `state.tokens`
|
|
830
|
-
// - return true
|
|
831
|
-
if(e.level<s)for(a=0;a<t&&(o=r[a](e,!1),!o);a++);if(o){if(e.pos>=n)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},N.prototype.parse=function(e,r,t,n){var s=new this.State(e,r,t,n),o,a,l;for(this.tokenize(s),a=this.ruler2.getRules(""),l=a.length,o=0;o<l;o++)a[o](s)},N.prototype.State=R;var KO=N,XO=function e(r){var e={};// Use direct extract instead of `regenerate` to reduse browserified size
|
|
832
|
-
e.src_Any=iB.source,e.src_Cc=lB.source,e.src_Z=pB.source,e.src_P=FU.source,e.src_ZPCc=[e.src_Z,e.src_P,e.src_Cc].join("|"),e.src_ZCc=[e.src_Z,e.src_Cc].join("|");return e.src_pseudo_letter="(?:(?![><\uFF5C]|"+e.src_ZPCc+")"+e.src_Any+")",e.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",e.src_auth="(?:(?:(?!"+e.src_ZCc+"|[@/\\[\\]()]).)+@)?",e.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",e.src_host_terminator="(?=$|[><\uFF5C]|"+e.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+e.src_ZPCc+"))",e.src_path="(?:[/?#](?:(?!"+e.src_ZCc+"|[><\uFF5C]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+e.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+e.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+e.src_ZCc+"|[}]).)*\\}|\\\"(?:(?!"+e.src_ZCc+"|[\"]).)+\\\"|\\'(?:(?!"+e.src_ZCc+"|[']).)+\\'|\\'(?="+e.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+e.src_ZCc+"|[.]).|"+(r&&r["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|"// `---` => long dash, terminate
|
|
833
|
-
:"\\-+|")+"\\,(?!"+e.src_ZCc+").|\\!(?!"+e.src_ZCc+"|[!]).|\\?(?!"+e.src_ZCc+"|[?]).)+|\\/)?",e.src_email_name="[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\\"\\.a-zA-Z0-9_]*",e.src_xn="xn--[a-z0-9\\-]{1,59}",e.src_domain_root=// Allow letters & digits (http://test1)
|
|
834
|
-
"(?:"+e.src_xn+"|"+e.src_pseudo_letter+"{1,63})",e.src_domain="(?:"+e.src_xn+"|(?:"+e.src_pseudo_letter+")|(?:"+e.src_pseudo_letter+"(?:-|"+e.src_pseudo_letter+"){0,61}"+e.src_pseudo_letter+"))",e.src_host="(?:(?:(?:(?:"+e.src_domain+")\\.)*"+e.src_domain/*_root*/+"))",e.tpl_host_fuzzy="(?:"+e.src_ip4+"|(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%)))",e.tpl_host_no_ip_fuzzy="(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%))",e.src_host_strict=e.src_host+e.src_host_terminator,e.tpl_host_fuzzy_strict=e.tpl_host_fuzzy+e.src_host_terminator,e.src_host_port_strict=e.src_host+e.src_port+e.src_host_terminator,e.tpl_host_port_fuzzy_strict=e.tpl_host_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_port_no_ip_fuzzy_strict=e.tpl_host_no_ip_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+e.src_ZPCc+"|>|$))",e.tpl_email_fuzzy="(^|[><\uFF5C]|\"|\\(|"+e.src_ZCc+")("+e.src_email_name+"@"+e.tpl_host_fuzzy_strict+")",e.tpl_link_fuzzy=// Fuzzy link can't be prepended with .:/\- and non punctuation.
|
|
835
|
-
// but can start with > (markdown blockquote)
|
|
836
|
-
"(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+e.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+e.tpl_host_port_fuzzy_strict+e.src_path+")",e.tpl_link_no_ip_fuzzy=// Fuzzy link can't be prepended with .:/\- and non punctuation.
|
|
837
|
-
// but can start with > (markdown blockquote)
|
|
838
|
-
"(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+e.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+e.tpl_host_port_no_ip_fuzzy_strict+e.src_path+")",e},re={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1},ej={"http:":{validate:function(e,r,t){var n=e.slice(r);return t.re.http||(t.re.http=new RegExp("^\\/\\/"+t.re.src_auth+t.re.src_host_port_strict+t.re.src_path,"i")),t.re.http.test(n)?n.match(t.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,r,t){var n=e.slice(r);return t.re.no_http||(t.re.no_http=new RegExp("^"+t.re.src_auth+// Don't allow single-level domains, because of false positives like '//test'
|
|
839
|
-
// with code comments
|
|
840
|
-
"(?:localhost|(?:(?:"+t.re.src_domain+")\\.)+"+t.re.src_domain_root+")"+t.re.src_port+t.re.src_host_terminator+t.re.src_path,"i")),t.re.no_http.test(n)?3<=r&&":"===e[r-3]?0:3<=r&&"/"===e[r-3]?0:n.match(t.re.no_http)[0].length:0}},"mailto:":{validate:function(e,r,t){var n=e.slice(r);return t.re.mailto||(t.re.mailto=new RegExp("^"+t.re.src_email_name+"@"+t.re.src_host_strict,"i")),t.re.mailto.test(n)?n.match(t.re.mailto)[0].length:0}}},rj=["biz","com","edu","gov","net","org","pro","web","xxx","aero","asia","coop","info","museum","name","shop","\u0440\u0444"];W.prototype.add=function(e,r){return this.__schemas__[e]=r,$(this),this},W.prototype.set=function(e){return this.__opts__=M(this.__opts__,e),this},W.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,t,n,s,o,a,i,l,c;// try to scan for link with schema - that's the most simple rule
|
|
841
|
-
if(this.re.schema_test.test(e))for(i=this.re.schema_search,i.lastIndex=0;null!==(r=i.exec(e));)if(s=this.testSchemaAt(e,r[2],i.lastIndex),s){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),0<=l&&(0>this.__index__||l<this.__index__)&&null!==(t=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=t.index+t[1].length,(0>this.__index__||o<this.__index__)&&(this.__schema__="",this.__index__=o,this.__last_index__=t.index+t[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&(c=e.indexOf("@"),0<=c&&null!==(n=e.match(this.re.email_fuzzy))&&(o=n.index+n[1].length,a=n.index+n[0].length,(0>this.__index__||o<this.__index__||o===this.__index__&&a>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=a))),0<=this.__index__},W.prototype.pretest=function(e){return this.re.pretest.test(e)},W.prototype.testSchemaAt=function(e,r,t){// If not supported schema check requested - terminate
|
|
842
|
-
return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,t,this):0},W.prototype.match=function(e){var r=0,t=[];// Try to take previous element from cache, if .test() called before
|
|
843
|
-
0<=this.__index__&&this.__text_cache__===e&&(t.push(Y(this,r)),r=this.__last_index__);// Scan string until end reached
|
|
844
|
-
for(// Cut head if cache was used
|
|
845
|
-
var n=r?e.slice(r):e;this.test(n);)t.push(Y(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return t.length?t:null},W.prototype.tlds=function(e,r){return(e=Array.isArray(e)?e:[e],!r)?(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,$(this),this):(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,r,t){return e!==t[r-1]}).reverse(),$(this),this)},W.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},W.prototype.onCompile=function(){};var tj=W;/** Highest positive signed 32-bit float value */const nj=2147483647,sj=36,oj=1,aj=26,ij=72,lj=128,cj="-",pj=/^xn--/,uj=/[^\0-\x7E]/,dj=/[\x2E\u3002\uFF0E\uFF61]/g,hj={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},mj=sj-oj,gj=Ce,fj=Ae,bj=function(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:sj},_j=function(e,r){// 0..25 map to ASCII a..z or A..Z
|
|
846
|
-
// 26..35 map to ASCII 0..9
|
|
847
|
-
return e+22+75*(26>e)-((0!=r)<<5)},kj=function(e,r,t){let n=0;for(e=t?gj(e/700):e>>1,e+=gj(e/r);/* no initialization */e>mj*aj>>1;n+=sj)e=gj(e/mj);return gj(n+(mj+1)*e/(e+38))},yj=function(e){// Don't use UCS-2.
|
|
848
|
-
const r=[],s=e.length;let o=0,t=lj,a=ij,l=e.lastIndexOf(cj);0>l&&(l=0);for(let t=0;t<l;++t)128<=e.charCodeAt(t)&&Q("not-basic"),r.push(e.charCodeAt(t));// Main decoding loop: start just after the last delimiter if any basic code
|
|
849
|
-
// points were copied; start at the beginning otherwise.
|
|
850
|
-
for(let n=0<l?l+1:0,i;n<s;)/* no final expression */{i=o;for(let r=1,i=sj;;/* no condition */i+=sj){n>=s&&Q("invalid-input");const l=bj(e.charCodeAt(n++));(l>=sj||l>gj((nj-o)/r))&&Q("overflow"),o+=l*r;const c=i<=a?oj:i>=a+aj?aj:i-a;if(l<c)break;const t=sj-c;r>gj(nj/t)&&Q("overflow"),r*=t}const l=r.length+1;a=kj(o-i,l,0==i),gj(o/l)>nj-t&&Q("overflow"),t+=gj(o/l),o%=l,r.splice(o++,0,t)}return we(...r)},xj=function(e){const r=[];// Convert the input in UCS-2 to an array of Unicode code points.
|
|
851
|
-
e=te(e);// Cache the length.
|
|
852
|
-
let t=e.length,s=lj,o=0,a=ij;// Initialize the state.
|
|
853
|
-
// Handle the basic code points.
|
|
854
|
-
for(const t of e)128>t&&r.push(fj(t));let i=r.length,l=i;// Main encoding loop:
|
|
855
|
-
for(i&&r.push(cj);l<t;){// All non-basic code points < n have been handled already. Find the next
|
|
856
|
-
// larger one:
|
|
857
|
-
let t=nj;for(const r of e)r>=s&&r<t&&(t=r);// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
|
|
858
|
-
// but guard against overflow.
|
|
859
|
-
const n=l+1;t-s>gj((nj-o)/n)&&Q("overflow"),o+=(t-s)*n,s=t;for(const t of e)if(t<s&&++o>nj&&Q("overflow"),t==s){// Represent delta as a generalized variable-length integer.
|
|
860
|
-
let e=o;for(let n=sj;;/* no condition */n+=sj){const s=n<=a?oj:n>=a+aj?aj:n-a;if(e<s)break;const t=e-s,o=sj-s;r.push(fj(_j(s+t%o,0))),e=gj(t/o)}r.push(fj(_j(e,0))),a=kj(o,n,l==i),o=0,++l}++o,++s}return r.join("")},vj={/**
|
|
861
|
-
* A string representing the current Punycode.js version number.
|
|
862
|
-
* @memberOf punycode
|
|
863
|
-
* @type String
|
|
864
|
-
*/version:"2.1.0",/**
|
|
865
|
-
* An object of methods to convert from JavaScript's internal character
|
|
866
|
-
* representation (UCS-2) to Unicode code points, and back.
|
|
867
|
-
* @see <https://mathiasbynens.be/notes/javascript-encoding>
|
|
868
|
-
* @memberOf punycode
|
|
869
|
-
* @type Object
|
|
870
|
-
*/ucs2:{decode:te,encode:e=>we(...e)},decode:yj,encode:xj,toASCII:function(e){return X(e,function(e){return uj.test(e)?"xn--"+xj(e):e})},toUnicode:function(e){return X(e,function(e){return pj.test(e)?yj(e.slice(4).toLowerCase()):e})}};// aka. 0x7FFFFFFF or 2^31-1
|
|
871
|
-
/** Bootstring parameters */ // markdown-it default options
|
|
872
|
-
var qj={default:{options:{html:!1,// Enable HTML tags in source
|
|
873
|
-
xhtmlOut:!1,// Use '/' to close single tags (<br />)
|
|
874
|
-
breaks:!1,// Convert '\n' in paragraphs into <br>
|
|
875
|
-
langPrefix:"language-",// CSS language prefix for fenced blocks
|
|
876
|
-
linkify:!1,// autoconvert URL-like texts to links
|
|
877
|
-
// Enable some language-neutral replacements + quotes beautification
|
|
878
|
-
typographer:!1,// Double + single quotes replacement pairs, when typographer enabled,
|
|
879
|
-
// and smartquotes on. Could be either a String or an Array.
|
|
880
|
-
//
|
|
881
|
-
// For example, you can use '«»„“' for Russian, '„“‚‘' for German,
|
|
882
|
-
// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
|
|
883
|
-
quotes:"\u201C\u201D\u2018\u2019",/* “”‘’ */ // Highlighter function. Should return escaped HTML,
|
|
884
|
-
// or '' if the source string is not changed and should be escaped externaly.
|
|
885
|
-
// If result starts with <pre... internal wrapper is skipped.
|
|
886
|
-
//
|
|
887
|
-
// function (/*str, lang*/) { return ''; }
|
|
888
|
-
//
|
|
889
|
-
highlight:null,maxNesting:100// Internal protection, recursion limit
|
|
890
|
-
},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,// Enable HTML tags in source
|
|
891
|
-
xhtmlOut:!1,// Use '/' to close single tags (<br />)
|
|
892
|
-
breaks:!1,// Convert '\n' in paragraphs into <br>
|
|
893
|
-
langPrefix:"language-",// CSS language prefix for fenced blocks
|
|
894
|
-
linkify:!1,// autoconvert URL-like texts to links
|
|
895
|
-
// Enable some language-neutral replacements + quotes beautification
|
|
896
|
-
typographer:!1,// Double + single quotes replacement pairs, when typographer enabled,
|
|
897
|
-
// and smartquotes on. Could be either a String or an Array.
|
|
898
|
-
//
|
|
899
|
-
// For example, you can use '«»„“' for Russian, '„“‚‘' for German,
|
|
900
|
-
// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
|
|
901
|
-
quotes:"\u201C\u201D\u2018\u2019",/* “”‘’ */ // Highlighter function. Should return escaped HTML,
|
|
902
|
-
// or '' if the source string is not changed and should be escaped externaly.
|
|
903
|
-
// If result starts with <pre... internal wrapper is skipped.
|
|
904
|
-
//
|
|
905
|
-
// function (/*str, lang*/) { return ''; }
|
|
906
|
-
//
|
|
907
|
-
highlight:null,maxNesting:20// Internal protection, recursion limit
|
|
908
|
-
},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}},commonmark:{options:{html:!0,// Enable HTML tags in source
|
|
909
|
-
xhtmlOut:!0,// Use '/' to close single tags (<br />)
|
|
910
|
-
breaks:!1,// Convert '\n' in paragraphs into <br>
|
|
911
|
-
langPrefix:"language-",// CSS language prefix for fenced blocks
|
|
912
|
-
linkify:!1,// autoconvert URL-like texts to links
|
|
913
|
-
// Enable some language-neutral replacements + quotes beautification
|
|
914
|
-
typographer:!1,// Double + single quotes replacement pairs, when typographer enabled,
|
|
915
|
-
// and smartquotes on. Could be either a String or an Array.
|
|
916
|
-
//
|
|
917
|
-
// For example, you can use '«»„“' for Russian, '„“‚‘' for German,
|
|
918
|
-
// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
|
|
919
|
-
quotes:"\u201C\u201D\u2018\u2019",/* “”‘’ */ // Highlighter function. Should return escaped HTML,
|
|
920
|
-
// or '' if the source string is not changed and should be escaped externaly.
|
|
921
|
-
// If result starts with <pre... internal wrapper is skipped.
|
|
922
|
-
//
|
|
923
|
-
// function (/*str, lang*/) { return ''; }
|
|
924
|
-
//
|
|
925
|
-
highlight:null,maxNesting:20// Internal protection, recursion limit
|
|
926
|
-
},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},Lj=/^(vbscript|javascript|file|data):/,wj=/^data:image\/(gif|png|jpeg|webp);/,Cj=["http:","https:","mailto:"];// "Zero" preset, with nothing enabled. Useful for manual configuring of simple
|
|
927
|
-
ie.prototype.set=function(e){return dB.assign(this.options,e),this},ie.prototype.configure=function(e){var r=this,t;if(dB.isString(e)&&(t=e,e=qj[t],!e))throw new Error("Wrong `markdown-it` preset \""+t+"\", check name");if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&r.set(e.options),e.components&&Object.keys(e.components).forEach(function(t){e.components[t].rules&&r[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&r[t].ruler2.enableOnly(e.components[t].rules2)}),this},ie.prototype.enable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(r){t=t.concat(this[r].ruler.enable(e,!0))},this),t=t.concat(this.inline.ruler2.enable(e,!0));var n=e.filter(function(e){return 0>t.indexOf(e)});if(n.length&&!r)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},ie.prototype.disable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(r){t=t.concat(this[r].ruler.disable(e,!0))},this),t=t.concat(this.inline.ruler2.disable(e,!0));var n=e.filter(function(e){return 0>t.indexOf(e)});if(n.length&&!r)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},ie.prototype.use=function(e/*, params, ... */){var r=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,r),this},ie.prototype.parse=function(e,r){if("string"!=typeof e)throw new Error("Input data should be a String");var t=new this.core.State(e,this,r);return this.core.process(t),t.tokens},ie.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},ie.prototype.parseInline=function(e,r){var t=new this.core.State(e,this,r);return t.inlineMode=!0,this.core.process(t),t.tokens},ie.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)};var Aj={false:"push",true:"unshift"},Sj=Object.prototype.hasOwnProperty,e=function e(r,s){s=Object.assign({},e.defaults,s),r.core.ruler.push("anchor",function(e){var t={},n=e.tokens,a=Array.isArray(s.level)?(o=s.level,function(e){return o.includes(e)}):function(r){return function(t){return t>=r}}(s.level),o;n.filter(function(e){return"heading_open"===e.type}).filter(function(e){return a(+e.tag.substr(1))}).forEach(function(a){var r=n[n.indexOf(a)+1].children.filter(function(e){return"text"===e.type||"code_inline"===e.type}).reduce(function(r,t){return r+t.content},""),o=a.attrGet("id");null==o&&(o=function(e,n){for(var r=e,s=2;Sj.call(n,r);)r=e+"-"+s++;return n[r]=!0,r}(s.slugify(r),t),a.attrPush(["id",o])),s.permalink&&s.renderPermalink(o,s,e,n.indexOf(a)),s.callback&&s.callback(a,{slug:o,title:r})})})};e.defaults={level:1,slugify:function(e){return encodeURIComponent((e+"").trim().toLowerCase().replace(/\s+/g,"-"))},permalink:!1,renderPermalink:function(n,e,r,t){var s=[Object.assign(new r.Token("link_open","a",1),{attrs:[["class",e.permalinkClass],["href",e.permalinkHref(n,r)],["aria-hidden","true"]]}),Object.assign(new r.Token("html_block","",0),{content:e.permalinkSymbol}),new r.Token("link_close","a",-1)],o;e.permalinkSpace&&s[Aj[!e.permalinkBefore]](Object.assign(new r.Token("text","",0),{content:" "})),(o=r.tokens[t+1].children)[Aj[e.permalinkBefore]].apply(o,s)},permalinkClass:"header-anchor",permalinkSpace:!0,permalinkSymbol:"\xB6",permalinkBefore:!1,permalinkHref:function(e){return"#"+e}};// Process definition lists
|
|
928
|
-
var r=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g,n=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;// Process ^superscript^
|
|
929
|
-
const Ej={regex:/\{\+\+([\0-\uFFFF]*?)\+\+\}/g,validate:()=>!0,annotate(e){return ve({type:"addition"},e)},render(e,r){return""===r.trim()?"\n\n<ins class=\"break\"> </ins>\n\n":"<ins>".concat(r,"</ins>")}},Tj={regex:/\{\x2D\x2D([\0-\uFFFF]*?)\x2D\x2D\}/g,validate:()=>!0,annotate(e){return ve({type:"deletion"},e)},render(e,r){return""===r.trim()?"<del> </del> ":"<del>".concat(r,"</del>")}},Dj={regex:/\{~~([\0-\uFFFF]*?)~>([\0-\uFFFF]*?)~~\}/g,validate:()=>!0,annotate(e){return ve({type:"substitution"},e)},render(e,r,t){return Tj.render(e,r)+Ej.render(e,t).trimLeft()}},Ij="==}",zj={regex:/\{>>([\0-\uFFFF]*?)<<\}/g,validate:e=>{let{input:r,index:t}=e;return r.substr(t-Ij.length,Ij.length)!==Ij},annotate(e){return ve({type:"comment"},e)},render(e,r){return"<span class=\"critic comment\">".concat(r,"</span>")}},Rj={regex:/\{==([\0-\uFFFF]*?)==\}\{>>([\0-\uFFFF]*?)<<\}/g,validate:()=>!0,annotate(e){return ve({type:"highlight"},e)},render(e,r,t){return"<mark>".concat(r,"</mark>").concat(zj.render(e,t))}},Nj=new ie("commonmark");Nj.set({typographer:!0}),Nj.enable("replacements").enable("table"),Nj.use(e,[1,2,3]).use(function(e){// Search `[:~][\n ]`, returns next pos after marker on success
|
|
930
|
-
// or -1 on fail.
|
|
931
|
-
function r(e,r){var t=e.bMarks[r]+e.tShift[r],n=e.eMarks[r],s,o;return t>=n?-1:(o=e.src.charCodeAt(t++),126!==o/* ~ */&&58!==o/* : */)?-1:(s=e.skipSpaces(t),t===s?-1:s>=n?-1:t);// Check bullet
|
|
932
|
-
// no empty definitions, e.g. " : "
|
|
933
|
-
}function t(e,r){var t=e.level+2,n,s;for(n=r+2,s=e.tokens.length-2;n<s;n++)e.tokens[n].level===t&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}var n=e.utils.isSpace;e.block.ruler.before("paragraph","deflist",function(e,s,o,a){var i,l,c,p,u,d,h,m,g,f,b,_,k,y,x,v,q,L,w,C;if(a)// quirk: validation mode validates a dd block only, not a whole deflist
|
|
934
|
-
return!(0>e.ddIndent)&&0<=r(e,s);if(g=s+1,g>=o)return!1;if(e.isEmpty(g)&&(g++,g>=o))return!1;if(e.sCount[g]<e.blkIndent)return!1;if(l=r(e,g),0>l)return!1;// Start list
|
|
935
|
-
h=e.tokens.length,w=!0,C=e.push("dl_open","dl",1),C.map=d=[s,0],p=s,c=g;// One definition list can contain multiple DTs,
|
|
936
|
-
// and one DT can be followed by multiple DDs.
|
|
937
|
-
//
|
|
938
|
-
// Thus, there is two loops here, and label is
|
|
939
|
-
// needed to break out of the second one
|
|
940
|
-
//
|
|
941
|
-
/*eslint no-labels:0,block-scoped-var:0*/OUTER:for(;;){for(L=!1,C=e.push("dt_open","dt",1),C.map=[p,p],C=e.push("inline","",0),C.map=[p,p],C.content=e.getLines(p,p+1,e.blkIndent,!1).trim(),C.children=[],C=e.push("dt_close","dt",-1);;){for(C=e.push("dd_open","dd",1),C.map=u=[g,0],q=l,m=e.eMarks[c],f=e.sCount[c]+l-(e.bMarks[c]+e.tShift[c]);q<m&&(i=e.src.charCodeAt(q),n(i));)9===i?f+=4-f%4:f++,q++;if(l=q,v=e.tight,b=e.ddIndent,_=e.blkIndent,x=e.tShift[c],y=e.sCount[c],k=e.parentType,e.blkIndent=e.ddIndent=e.sCount[c]+2,e.tShift[c]=l-e.bMarks[c],e.sCount[c]=f,e.tight=!0,e.parentType="deflist",e.md.block.tokenize(e,c,o,!0),(!e.tight||L)&&(w=!1),L=1<e.line-c&&e.isEmpty(e.line-1),e.tShift[c]=x,e.sCount[c]=y,e.tight=v,e.parentType=k,e.blkIndent=_,e.ddIndent=b,C=e.push("dd_close","dd",-1),u[1]=g=e.line,g>=o)break OUTER;if(e.sCount[g]<e.blkIndent)break OUTER;if(l=r(e,g),0>l)break;c=g}if(g>=o)break;if(p=g,e.isEmpty(p))break;if(e.sCount[p]<e.blkIndent)break;if(c=p+1,c>=o)break;if(e.isEmpty(c)&&c++,c>=o)break;if(e.sCount[c]<e.blkIndent)break;if(l=r(e,c),0>l)break;// go to the next loop iteration:
|
|
942
|
-
// insert DT and DD tags and repeat checking
|
|
943
|
-
}// Finilize list
|
|
944
|
-
return C=e.push("dl_close","dl",-1),d[1]=g,e.line=g,w&&t(e,h),!0},{alt:["paragraph","reference"]})}).use(function(e){e.inline.ruler.after("emphasis","sup",ce)}).use(function(e){e.inline.ruler.after("emphasis","sub",pe)}).use(function(e){function r(e){var r=e.tokens,a,c,p,u,d,h,g,f,b,_,k,y,x;if(e.env.abbreviations)for(y=new RegExp("(?:"+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,r){return r.length-e.length}).map(t).join("|")+")"),k="(^|"+s+"|"+o+"|["+[" ","\r","\n","$","+","<","=",">","^","`","|","~"].map(t).join("")+"])("+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,r){return r.length-e.length}).map(t).join("|")+")($|"+s+"|"+o+"|["+[" ","\r","\n","$","+","<","=",">","^","`","|","~"].map(t).join("")+"])",b=new RegExp(k,"g"),(c=0,p=r.length);c<p;c++)if("inline"===r[c].type)// We scan from the end, to keep position when new tags added.
|
|
945
|
-
for(u=r[c].children,a=u.length-1;0<=a;a--)if((x=u[a],"text"===x.type)&&(f=0,h=x.content,b.lastIndex=0,g=[],!!y.test(h)))// fast regexp run to determine whether there are any abbreviated words
|
|
946
|
-
// in the current token
|
|
947
|
-
{for(;_=b.exec(h);)(0<_.index||0<_[1].length)&&(d=new e.Token("text","",0),d.content=h.slice(f,_.index+_[1].length),g.push(d)),d=new e.Token("abbr_open","abbr",1),d.attrs=[["title",e.env.abbreviations[":"+_[2]]]],g.push(d),d=new e.Token("text","",0),d.content=_[2],g.push(d),d=new e.Token("abbr_close","abbr",-1),g.push(d),b.lastIndex-=_[3].length,f=b.lastIndex;g.length&&(f<h.length&&(d=new e.Token("text","",0),d.content=h.slice(f),g.push(d)),r[c].children=u=n(u,a,g))}}var t=e.utils.escapeRE,n=e.utils.arrayReplaceAt,s=e.utils.lib.ucmicro.P.source,o=e.utils.lib.ucmicro.Z.source;// ASCII characters in Cc, Sc, Sm, Sk categories we should terminate on;
|
|
948
|
-
// you can check character classes here:
|
|
949
|
-
// http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
|
950
|
-
e.block.ruler.before("reference","abbr_def",function(e,r,t,n){var s=e.bMarks[r]+e.tShift[r],o=e.eMarks[r],a,i,l,c,p;if(s+2>=o)return!1;if(42!==e.src.charCodeAt(s++)/* * */)return!1;if(91!==e.src.charCodeAt(s++)/* [ */)return!1;for(c=s;s<o;s++){if(l=e.src.charCodeAt(s),91===l/* [ */)return!1;if(93===l/* ] */){p=s;break}else 92===l/* \ */&&s++}return!(0>p||58!==e.src.charCodeAt(p+1)/* : */)&&(!!n||(a=e.src.slice(c,p).replace(/\\(.)/g,"$1"),i=e.src.slice(p+2,o).trim(),0!==a.length)&&0!==i.length&&(e.env.abbreviations||(e.env.abbreviations={}),"undefined"==typeof e.env.abbreviations[":"+a]&&(e.env.abbreviations[":"+a]=i),e.line=r+1,!0))},{alt:["paragraph","reference"]}),e.core.ruler.after("linkify","abbr_replace",r)}).use(function(e){// Process footnote block definition
|
|
951
|
-
// Process inline footnotes (^[...])
|
|
952
|
-
// Process footnote references ([^...])
|
|
953
|
-
// Glue footnote tokens to end of token stream
|
|
954
|
-
function r(e){var r=!1,n={},s,o,a,c,p,u,d,h,m,g;if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return"footnote_reference_open"===e.type?(r=!0,m=[],g=e.meta.label,!1):"footnote_reference_close"===e.type?(r=!1,n[":"+g]=m,!1):(r&&m.push(e),!r)}),!!e.env.footnotes.list)){for(u=e.env.footnotes.list,d=new e.Token("footnote_block_open","",1),e.tokens.push(d),(s=0,o=u.length);s<o;s++){for(d=new e.Token("footnote_open","",1),d.meta={id:s,label:u[s].label},e.tokens.push(d),u[s].tokens?(h=[],d=new e.Token("paragraph_open","p",1),d.block=!0,h.push(d),d=new e.Token("inline","",0),d.children=u[s].tokens,d.content=u[s].content,h.push(d),d=new e.Token("paragraph_close","p",-1),d.block=!0,h.push(d)):u[s].label&&(h=n[":"+u[s].label]),e.tokens=e.tokens.concat(h),p="paragraph_close"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,c=0<u[s].count?u[s].count:1,a=0;a<c;a++)d=new e.Token("footnote_anchor","",0),d.meta={id:s,subId:a,label:u[s].label},e.tokens.push(d);p&&e.tokens.push(p),d=new e.Token("footnote_close","",-1),e.tokens.push(d)}d=new e.Token("footnote_block_close","",-1),e.tokens.push(d)}}var t=e.helpers.parseLinkLabel,n=e.utils.isSpace;e.renderer.rules.footnote_ref=he,e.renderer.rules.footnote_block_open=me,e.renderer.rules.footnote_block_close=fe,e.renderer.rules.footnote_open=be,e.renderer.rules.footnote_close=_e,e.renderer.rules.footnote_anchor=ke,e.renderer.rules.footnote_caption=de,e.renderer.rules.footnote_anchor_name=ue,e.block.ruler.before("reference","footnote_def",function(e,r,t,s){var o=e.bMarks[r]+e.tShift[r],a=e.eMarks[r],i,l,c,p,u,d,h,m,g,f,b;// line should be at least 5 chars - "[^x]:"
|
|
955
|
-
if(o+4>a)return!1;if(91!==e.src.charCodeAt(o)/* [ */)return!1;if(94!==e.src.charCodeAt(o+1)/* ^ */)return!1;for(u=o+2;u<a;u++){if(32===e.src.charCodeAt(u))return!1;if(93===e.src.charCodeAt(u)/* ] */)break}if(u===o+2)return!1;// no empty footnote labels
|
|
956
|
-
if(u+1>=a||58!==e.src.charCodeAt(++u)/* : */)return!1;if(s)return!0;for(u++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),d=e.src.slice(o+2,u-2),e.env.footnotes.refs[":"+d]=-1,h=new e.Token("footnote_reference_open","",1),h.meta={label:d},h.level=e.level++,e.tokens.push(h),i=e.bMarks[r],l=e.tShift[r],c=e.sCount[r],p=e.parentType,b=u,m=g=e.sCount[r]+u-(e.bMarks[r]+e.tShift[r]);u<a&&(f=e.src.charCodeAt(u),n(f));)9===f?g+=4-g%4:g++,u++;return e.tShift[r]=u-b,e.sCount[r]=g-m,e.bMarks[r]=b,e.blkIndent+=4,e.parentType="footnote",e.sCount[r]<e.blkIndent&&(e.sCount[r]+=e.blkIndent),e.md.block.tokenize(e,r,t,!0),e.parentType=p,e.blkIndent-=4,e.tShift[r]=l,e.sCount[r]=c,e.bMarks[r]=i,h=new e.Token("footnote_reference_close","",-1),h.level=--e.level,e.tokens.push(h),!0},{alt:["paragraph","reference"]}),e.inline.ruler.after("image","footnote_inline",function(e,r){var n=e.posMax,s=e.pos,o,a,i,l,c;return!(s+2>=n)&&94===e.src.charCodeAt(s)/* ^ */&&91===e.src.charCodeAt(s+1)/* [ */&&(o=s+2,a=t(e,s+1),!(0>a))&&(r||(!e.env.footnotes&&(e.env.footnotes={}),!e.env.footnotes.list&&(e.env.footnotes.list=[]),i=e.env.footnotes.list.length,e.md.inline.parse(e.src.slice(o,a),e.md,e.env,c=[]),l=e.push("footnote_ref","",0),l.meta={id:i},e.env.footnotes.list[i]={content:e.src.slice(o,a),tokens:c}),e.pos=a+1,e.posMax=n,!0);// We found the end of the link, and know for a fact it's a valid link;
|
|
957
|
-
// so all that's left to do is to call tokenizer.
|
|
958
|
-
//
|
|
959
|
-
}),e.inline.ruler.after("footnote_inline","footnote_ref",function(e,r){var t=e.posMax,n=e.pos,s,o,a,i,l;// should be at least 4 chars - "[^x]"
|
|
960
|
-
if(n+3>t)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(n)/* [ */)return!1;if(94!==e.src.charCodeAt(n+1)/* ^ */)return!1;for(o=n+2;o<t;o++){if(32===e.src.charCodeAt(o))return!1;if(10===e.src.charCodeAt(o))return!1;if(93===e.src.charCodeAt(o)/* ] */)break}return o!==n+2&&!(o>=t)&&(o++,s=e.src.slice(n+2,o-1),"undefined"!=typeof e.env.footnotes.refs[":"+s])&&(r||(!e.env.footnotes.list&&(e.env.footnotes.list=[]),0>e.env.footnotes.refs[":"+s]?(a=e.env.footnotes.list.length,e.env.footnotes.list[a]={label:s,count:0},e.env.footnotes.refs[":"+s]=a):a=e.env.footnotes.refs[":"+s],i=e.env.footnotes.list[a].count,e.env.footnotes.list[a].count++,l=e.push("footnote_ref","",0),l.meta={id:a,subId:i,label:s}),e.pos=o,e.posMax=t,!0);// no empty footnote labels
|
|
961
|
-
}),e.core.ruler.after("inline","footnote_tail",r)}).use(function(e){e.core.ruler.before("block","critic-markup",Le)});const Mj=Nj.parse.bind(Nj),Pj=Nj.render.bind(Nj);return t.parse=Mj,t.render=Pj,t}({});
|