function e(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e}function t(e){return""!==e}function r(e,t){return e.hasOwnProperty(t)||(e[t]=!0),e}function n(e){if(!e)return[];var n=function(e){return e?e.split(/[\t\n\f\r ]+/).filter(t):[]}(e);return Object.keys(n.reduce(r,{}))}function a(e,t){for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r])}function i(e,t){var r=e.prototype;if(!(r instanceof t)){let n=function(){};n.prototype=t.prototype,n=new n,a(r,n),e.prototype=r=n}r.constructor!=e&&("function"!=typeof e&&console.error("unknown Class:"+e),r.constructor=e)}function o(e,t){if(t instanceof Error)var r=t;else r=this,Error.call(this,vt[e]),this.message=vt[e],Error.captureStackTrace&&Error.captureStackTrace(this,o);return r.code=e,t&&(this.message=this.message+": "+t),r}function s(){}function l(e,t){this._node=e,this._refresh=t,c(this)}function c(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!==t){var r=e._refresh(e._node);if(K(e,"length",r.length),!e.$$length||e.$$length>r.length)for(var n=r.length;n in e;n++)({}).hasOwnProperty.call(e,n)&&delete e[n];a(r,e),e._inc=t}}function u(){}function h(e,t){for(var r=e.length;r--;)if(e[r]===t)return r}function p(e,t,r,n){if(n?t[h(t,n)]=r:t[t.length++]=r,e){r.ownerElement=e;var a=e.ownerDocument;a&&(n&&E(a,e,n),function(e,t,r){e&&e._inc++,r.namespaceURI===it.XMLNS&&(t._nsMap[r.prefix?r.localName:""]=r.value)}(a,e,r))}}function d(e,t,r){var n=h(t,r);if(0>n)throw new o(Nt,Error(e.tagName+"@"+r));for(var a=t.length-1;a>n;)t[n]=t[++n];if(t.length=a,e){var i=e.ownerDocument;i&&(E(i,e,r),r.ownerElement=null)}}function f(){}function m(){}function g(e){return("<"==e?"<":">"==e&&">")||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";"}function w(e,t){if(t(e))return!0;if(e=e.firstChild)do{if(w(e,t))return!0}while(e=e.nextSibling)}function b(){this.ownerDocument=this}function E(e,t,r,n){e&&e._inc++,r.namespaceURI===it.XMLNS&&delete t._nsMap[r.prefix?r.localName:""]}function v(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var a=t.firstChild,i=0;a;)n[i++]=a,a=a.nextSibling;n.length=i,delete n[n.length]}}}function y(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,v(e.ownerDocument,e),t}function N(e){return e&&e.nodeType===m.DOCUMENT_TYPE_NODE}function T(e){return e&&e.nodeType===m.ELEMENT_NODE}function x(e){return e&&e.nodeType===m.TEXT_NODE}function S(e,t){var r=e.childNodes||[];if(at(r,T)||N(t))return!1;var n=at(r,N);return!(t&&n&&r.indexOf(n)>r.indexOf(t))}function D(e,t){var r=e.childNodes||[];if(at(r,(function(e){return T(e)&&e!==t})))return!1;var n=at(r,N);return!(t&&n&&r.indexOf(n)>r.indexOf(t))}function A(e,t,r){var n=e.childNodes||[],a=t.childNodes||[];if(t.nodeType===m.DOCUMENT_FRAGMENT_NODE){var i=a.filter(T);if(i.length>1||at(a,x))throw new o(yt,"More than one element or text in fragment");if(1===i.length&&!S(e,r))throw new o(yt,"Element in fragment can not be inserted before doctype")}if(T(t)&&!S(e,r))throw new o(yt,"Only one element can be added and only after doctype");if(N(t)){if(at(n,N))throw new o(yt,"Only one doctype is allowed");var s=at(n,T);if(r&&n.indexOf(s)1||at(a,x))throw new o(yt,"More than one element or text in fragment");if(1===i.length&&!D(e,r))throw new o(yt,"Element in fragment can not be inserted before doctype")}if(T(t)&&!D(e,r))throw new o(yt,"Only one element can be added and only after doctype");if(N(t)){if(at(n,(function(e){return N(e)&&e!==r})))throw new o(yt,"Only one doctype is allowed");var s=at(n,T);if(r&&n.indexOf(s)h;h++)if("xmlns"===i.item(h).name){u=i.item(h).value;break}if(!u)for(var p=a.length-1;p>=0;p--)if(""===(d=a[p]).prefix&&d.namespace===e.namespaceURI){u=d.namespace;break}if(u!==e.namespaceURI)for(p=a.length-1;p>=0;p--){var d;if((d=a[p]).namespace===e.namespaceURI){d.prefix&&(c=d.prefix+":"+l);break}}}t.push("<",c);for(var f=0;o>f;f++)"xmlns"==(m=i.item(f)).prefix?a.push({prefix:m.localName,namespace:m.value}):"xmlns"==m.nodeName&&a.push({prefix:"",namespace:m.value});for(f=0;o>f;f++){var m,w,b;G(m=i.item(f),0,a)&&(j(t,(w=m.prefix||"")?"xmlns:"+w:"xmlns",b=m.namespaceURI),a.push({prefix:w,namespace:b})),$(m,t,r,n,a)}if(l===c&&G(e,0,a)&&(j(t,(w=e.prefix||"")?"xmlns:"+w:"xmlns",b=e.namespaceURI),a.push({prefix:w,namespace:b})),s||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(l)){if(t.push(">"),r&&/^script$/i.test(l))for(;s;)s.data?t.push(s.data):$(s,t,r,n,a.slice()),s=s.nextSibling;else for(;s;)$(s,t,r,n,a.slice()),s=s.nextSibling;t.push("")}else t.push("/>");return;case mt:case wt:for(s=e.firstChild;s;)$(s,t,r,n,a.slice()),s=s.nextSibling;return;case lt:return j(t,e.name,e.value);case ct:return t.push(e.data.replace(/[<&>]/g,g));case ut:return t.push("");case ft:return t.push("\x3c!--",e.data,"--\x3e");case gt:var E=e.publicId,v=e.systemId;if(t.push("");else if(v&&"."!=v)t.push(" SYSTEM ",v,">");else{var y=e.internalSubset;y&&t.push(" [",y,"]"),t.push(">")}return;case dt:return t.push("");case ht:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function z(e,t,r){var n;switch(t.nodeType){case st:(n=t.cloneNode(!1)).ownerDocument=e;case wt:break;case lt:r=!0}if(n||(n=t.cloneNode(!1)),n.ownerDocument=e,n.parentNode=null,r)for(var a=t.firstChild;a;)n.appendChild(z(e,a,r)),a=a.nextSibling;return n}function Y(e,t,r){var n=new t.constructor;for(var a in t)if({}.hasOwnProperty.call(t,a)){var i=t[a];"object"!=typeof i&&i!=n[a]&&(n[a]=i)}switch(t.childNodes&&(n.childNodes=new s),n.ownerDocument=e,n.nodeType){case st:var o=t.attributes,l=n.attributes=new u,c=o.length;l._ownerElement=n;for(var h=0;c>h;h++)n.setAttributeNode(Y(e,o.item(h),!0));break;case lt:r=!0}if(r)for(var p=t.firstChild;p;)n.appendChild(Y(e,p,r)),p=p.nextSibling;return n}function K(e,t,r){e[t]=r}function Z(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,Z)}function J(){}function W(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function Q(e,t,r,n,a,i){function o(e,t,n){r.attributeNames.hasOwnProperty(e)&&i.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,a),n)}for(var s,l=++t,c=It;;){var u=e.charAt(l);switch(u){case"=":if(c===kt)s=e.slice(t,l),c=Mt;else{if(c!==Ot)throw Error("attribute equal must after attrName");c=Mt}break;case"'":case'"':if(c===Mt||c===kt){if(c===kt&&(i.warning('attribute value must after "="'),s=e.slice(t,l)),0>=(l=e.indexOf(u,t=l+1)))throw Error("attribute value no end '"+u+"' match");o(s,h=e.slice(t,l),t-1),c=Pt}else{if(c!=Ut)throw Error('attribute value must after "="');o(s,h=e.slice(t,l),t),i.warning('attribute "'+s+'" missed start quot('+u+")!!"),t=l+1,c=Pt}break;case"/":switch(c){case It:r.setTagName(e.slice(t,l));case Pt:case Vt:case Ft:c=Ft,r.closed=!0;case Ut:case kt:break;case Ot:r.closed=!0;break;default:throw Error("attribute invalid close char('/')")}break;case"":return i.error("unexpected end of input"),c==It&&r.setTagName(e.slice(t,l)),l;case">":switch(c){case It:r.setTagName(e.slice(t,l));case Pt:case Vt:case Ft:break;case Ut:case kt:"/"===(h=e.slice(t,l)).slice(-1)&&(r.closed=!0,h=h.slice(0,-1));case Ot:c===Ot&&(h=s),c==Ut?(i.warning('attribute "'+h+'" missed quot(")!'),o(s,h,t)):(qt.isHTML(n[""])&&h.match(/^(?:disabled|checked|selected)$/i)||i.warning('attribute "'+h+'" missed value!! "'+h+'" instead!!'),o(h,h,t));break;case Mt:throw Error("attribute value missed!!")}return l;case"€":u=" ";default:if(u>" ")switch(c){case Ot:qt.isHTML(n[""])&&s.match(/^(?:disabled|checked|selected)$/i)||i.warning('attribute "'+s+'" missed value!! "'+s+'" instead2!!'),o(s,s,t),t=l,c=kt;break;case Pt:i.warning('attribute space is required"'+s+'"!!');case Vt:c=kt,t=l;break;case Mt:c=Ut,t=l;break;case Ft:throw Error("elements closed character '/' and '>' must be connected to")}else switch(c){case It:r.setTagName(e.slice(t,l)),c=Vt;break;case kt:s=e.slice(t,l),c=Ot;break;case Ut:var h=e.slice(t,l);i.warning('attribute "'+h+'" missed quot(")!!'),o(s,h,t);case Pt:c=Vt}}l++}}function ee(e,t,r){for(var n=e.tagName,a=null,i=e.length;i--;){var o=e[i],s=o.qName,l=o.value;if((p=s.indexOf(":"))>0)var c=o.prefix=s.slice(0,p),u=s.slice(p+1),h="xmlns"===c&&u;else u=s,c=null,h="xmlns"===s&&"";o.localName=u,!1!==h&&(null==a&&(a={},ne(r,r={})),r[h]=a[h]=l,o.uri=qt.XMLNS,t.startPrefixMapping(h,l))}for(i=e.length;i--;)(c=(o=e[i]).prefix)&&("xml"===c&&(o.uri=qt.XML),"xmlns"!==c&&(o.uri=r[c||""]));var p;(p=n.indexOf(":"))>0?(c=e.prefix=n.slice(0,p),u=e.localName=n.slice(p+1)):(c=null,u=e.localName=n);var d=e.uri=r[c||""];if(t.startElement(d,u,n,e),!e.closed)return e.currentNSMap=r,e.localNSMap=a,!0;if(t.endElement(d,u,n),a)for(c in a)({}).hasOwnProperty.call(a,c)&&t.endPrefixMapping(c)}function te(e,t,r,n,a){if(/^(?:script|textarea)$/i.test(r)){var i=e.indexOf("",t),o=e.substring(t+1,i);if(/[&<]/.test(o))return/^script$/i.test(r)?(a.characters(o,0,o.length),i):(o=o.replace(/&#?\w+;/g,n),a.characters(o,0,o.length),i)}return t+1}function re(e,t,r,n){var a=n[r];return null==a&&(t>(a=e.lastIndexOf(""))&&(a=e.lastIndexOf("a}function ne(e,t){for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r])}function ae(e,t,r,n){if("-"===e.charAt(t+2))return"-"===e.charAt(t+3)?(a=e.indexOf("--\x3e",t+4))>t?(r.comment(e,t+4,a-t-4),a+3):(n.error("Unclosed comment"),-1):-1;if("CDATA["==e.substr(t+3,6)){var a=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,a-t-9),r.endCDATA(),a+3}var i=function(e,t){var r,n=[],a=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(a.lastIndex=t,a.exec(e);r=a.exec(e);)if(n.push(r),r[1])return n}(e,t),o=i.length;if(o>1&&/!doctype/i.test(i[0][0])){var s=i[1][0],l=!1,c=!1;o>3&&(/^public$/i.test(i[2][0])?(l=i[3][0],c=o>4&&i[4][0]):/^system$/i.test(i[2][0])&&(c=i[3][0]));var u=i[o-1];return r.startDTD(s,l,c),r.endDTD(),u.index+u[0].length}return-1}function ie(e,t,r){var n=e.indexOf("?>",t);if(n){var a=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);return a?(r.processingInstruction(a[1],a[2]),n+2):-1}return-1}function oe(){this.attributeNames={}}function se(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n")}function le(e){this.options=e||{locator:{}}}function ce(){this.cdata=!1}function ue(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function he(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}function pe(e,t,r){return"string"==typeof e?e.substr(t,r):e.length>=t+r||t?new java.lang.String(e,t,r)+"":e}function de(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}function fe(e){let t=null,r=null;const n=[],a=new $t({locator:{},errorHandler:{warning:e=>{},error:e=>{n.push(e)},fatalError:e=>{n.push(e)}}}).parseFromString(e,"text/xml");if(n.length)throw Error("XML decode error: "+n[0]);const{childNodes:i}=a,o=a.documentElement||null;for(let s=0,l=i.length;l>s;s++){const e=i[s];if(e===o)break;const n=""+e;/^<\?xml[^>]*\?>$/.test(n)&&(t=n),/^]*>$/.test(n)&&(r=n)}if(!o)throw Error("XML decode error: No document element");return{declaration:t,doctype:r,documentElement:o}}function me(e){const{childNodes:t}=e,r=[];for(let n=0,a=t.length;a>n;n++){const a=t[n];if("tagName"in a){r.push(a);continue}const{nodeValue:i}=a;if(i&&!/^\s*$/.test(i))throw Error("Found text children of: "+e.tagName)}return r}function ge(e){const{childNodes:t}=e;let r=null;for(let n=0,a=t.length;a>n;n++){if(n)throw Error("Multiple child elements in: "+e.tagName);const a=t[n];if("tagName"in a||!("data"in a)||!("nodeValue"in a))throw Error("Unexpected child element in: "+e.tagName);r=a}return r}function we(e,t){if(e.tagName!==t)throw Error("Unexpected tagName: "+t)}function be(e){const t=e.length;let r="";for(let n=0;t>n;){const a=e[n++],i=t>n?e[n++]:null,o=t>n?e[n++]:null,s=a<<16|(i||0)<<8|(o||0);r+=Kt[s>>18]+Kt[s>>12&zt]+Kt[null===i?64:s>>6&zt]+Kt[null===o?64:s&zt]}return r}function Ee(e){if("number"==typeof e&&!Number.isInteger(e))throw Error("Value not an integer: "+e)}function ve(e){return e.replace(/\\/g,"/").replace(/([^/])\/+$/,"$1")}function ye(e){return Ie(e,"..namedfork","rsrc")}async function Ne(e,t){if(!wr)return;const r=await Be(e,mr|gr);try{await r.chmod(t)}finally{await r.close()}}async function Te(e,t,r){await He(e,t,r)}async function xe(e,t,r){if(!br)return;const n=await Be(e,mr|gr);try{await n.utimes(t,r)}finally{await n.close()}}async function Se(e,t){await Xe(e,t)}async function De(e){return(await Pe(e)).sort()}async function Ae(e){return Ve(e)}async function _e(e){try{return await Ae(e)}catch(t){const{code:e}=t;if("ENOENT"===e||"ENOTDIR"===e)return null;throw t}}async function qe(e,t,r={}){const{ignoreUnreadableDirectories:n}=r,a=(await De(e)).reverse();for(;a.length;){const r=a.pop(),o=Ie(e,r),s=await Ae(o),l=await t(r,s);if(null===l)break;if(!1===l||!s.isDirectory())continue;let c=[];try{c=await De(o)}catch(i){if(!i||!n||"EACCES"!==i.code)throw i}for(let e=c.length;e--;)a.push(Ie(r,c[e]))}}import{constants as Re,createWriteStream as Le,createReadStream as Ce}from"node:fs";import{join as Ie,resolve as ke,dirname as Oe,basename as Me}from"node:path";import{readlink as Ue,readdir as Pe,lstat as Ve,symlink as Fe,open as Be,utimes as He,chmod as Xe,rm as Ge,mkdir as je,writeFile as $e}from"node:fs/promises";import{Writable as ze,pipeline as Ye,Readable as Ke}from"node:stream";import{promisify as Ze}from"node:util";import{pipeline as Je}from"node:stream/promises";import{spawn as We,spawnSync as Qe}from"node:child_process";var et={},tt={},rt=e({HTML:"text/html",isHTML:function(e){return e===rt.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),nt=e({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===nt.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});tt.assign=function(e,t){if(null===e||"object"!=typeof e)throw new TypeError("target is not an object");for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},tt.find=function(e,t,r){if(void 0===r&&(r=Array.prototype),e&&"function"==typeof r.find)return r.find.call(e,t);for(var n=0;e.length>n;n++)if({}.hasOwnProperty.call(e,n)){var a=e[n];if(t.call(void 0,a,n,e))return a}},tt.freeze=e,tt.MIME_TYPE=rt,tt.NAMESPACE=nt;var at=tt.find,it=tt.NAMESPACE,ot={},st=ot.ELEMENT_NODE=1,lt=ot.ATTRIBUTE_NODE=2,ct=ot.TEXT_NODE=3,ut=ot.CDATA_SECTION_NODE=4,ht=ot.ENTITY_REFERENCE_NODE=5,pt=ot.ENTITY_NODE=6,dt=ot.PROCESSING_INSTRUCTION_NODE=7,ft=ot.COMMENT_NODE=8,mt=ot.DOCUMENT_NODE=9,gt=ot.DOCUMENT_TYPE_NODE=10,wt=ot.DOCUMENT_FRAGMENT_NODE=11,bt=ot.NOTATION_NODE=12,Et={},vt={};Et.INDEX_SIZE_ERR=(vt[1]="Index size error",1),Et.DOMSTRING_SIZE_ERR=(vt[2]="DOMString size error",2);var yt=Et.HIERARCHY_REQUEST_ERR=(vt[3]="Hierarchy request error",3);Et.WRONG_DOCUMENT_ERR=(vt[4]="Wrong document",4),Et.INVALID_CHARACTER_ERR=(vt[5]="Invalid character",5),Et.NO_DATA_ALLOWED_ERR=(vt[6]="No data allowed",6),Et.NO_MODIFICATION_ALLOWED_ERR=(vt[7]="No modification allowed",7);var Nt=Et.NOT_FOUND_ERR=(vt[8]="Not found",8);Et.NOT_SUPPORTED_ERR=(vt[9]="Not supported",9);var Tt=Et.INUSE_ATTRIBUTE_ERR=(vt[10]="Attribute in use",10);Et.INVALID_STATE_ERR=(vt[11]="Invalid state",11),Et.SYNTAX_ERR=(vt[12]="Syntax error",12),Et.INVALID_MODIFICATION_ERR=(vt[13]="Invalid modification",13),Et.NAMESPACE_ERR=(vt[14]="Invalid namespace",14),Et.INVALID_ACCESS_ERR=(vt[15]="Invalid access",15),o.prototype=Error.prototype,a(Et,o),s.prototype={length:0,item:function(e){return e>=0&&this.length>e?this[e]:null},toString:function(e,t){for(var r=[],n=0;this.length>n;n++)$(this[n],r,e,t);return r.join("")},filter:function(e){return[].filter.call(this,e)},indexOf:function(e){return[].indexOf.call(this,e)}},l.prototype.item=function(e){return c(this),this[e]||null},i(l,s),u.prototype={length:0,item:s.prototype.item,getNamedItem:function(e){for(var t=this.length;t--;){var r=this[t];if(r.nodeName==e)return r}},setNamedItem:function(e){var t=e.ownerElement;if(t&&t!=this._ownerElement)throw new o(Tt);var r=this.getNamedItem(e.nodeName);return p(this._ownerElement,this,e,r),r},setNamedItemNS:function(e){var t,r=e.ownerElement;if(r&&r!=this._ownerElement)throw new o(Tt);return t=this.getNamedItemNS(e.namespaceURI,e.localName),p(this._ownerElement,this,e,t),t},removeNamedItem:function(e){var t=this.getNamedItem(e);return d(this._ownerElement,this,t),t},removeNamedItemNS:function(e,t){var r=this.getNamedItemNS(e,t);return d(this._ownerElement,this,r),r},getNamedItemNS:function(e,t){for(var r=this.length;r--;){var n=this[r];if(n.localName==t&&n.namespaceURI==e)return n}return null}},f.prototype={hasFeature:function(e,t){return!0},createDocument:function(e,t,r){var n=new b;if(n.implementation=this,n.childNodes=new s,n.doctype=r||null,r&&n.appendChild(r),t){var a=n.createElementNS(e,t);n.appendChild(a)}return n},createDocumentType:function(e,t,r){var n=new M;return n.name=e,n.nodeName=e,n.publicId=t||"",n.systemId=r||"",n}},m.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,t){return q(this,e,t)},replaceChild:function(e,t){q(this,e,t,_),t&&this.removeChild(t)},removeChild:function(e){return y(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(e){return Y(this.ownerDocument||this,this,e)},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&t.nodeType==ct&&e.nodeType==ct?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t)}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r)for(var n in r)if({}.hasOwnProperty.call(r,n)&&r[n]===e)return n;t=t.nodeType==lt?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&{}.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==lt?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},a(ot,m),a(ot,m.prototype),b.prototype={nodeName:"#document",nodeType:mt,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==wt){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n}return e}return q(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===st&&(this.documentElement=e),e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),y(this,e)},replaceChild:function(e,t){q(this,e,t,_),e.ownerDocument=this,t&&this.removeChild(t),T(e)&&(this.documentElement=e)},importNode:function(e,t){return z(this,e,t)},getElementById:function(e){var t=null;return w(this.documentElement,(function(r){if(r.nodeType==st&&r.getAttribute("id")==e)return t=r,!0})),t},getElementsByClassName:function(e){var t=n(e);return new l(this,(function(r){var a=[];return t.length>0&&w(r.documentElement,(function(i){if(i!==r&&i.nodeType===st){var o=i.getAttribute("class");if(o){var s=e===o;if(!s){var l=n(o);s=t.every((c=l,function(e){return c&&-1!==c.indexOf(e)}))}s&&a.push(i)}}var c})),a}))},createElement:function(e){var t=new R;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new s,(t.attributes=new u)._ownerElement=t,t},createDocumentFragment:function(){var e=new F;return e.ownerDocument=this,e.childNodes=new s,e},createTextNode:function(e){var t=new I;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new k;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new O;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var r=new B;return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r},createAttribute:function(e){var t=new L;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new V;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var r=new R,n=t.split(":"),a=r.attributes=new u;return r.childNodes=new s,r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,a._ownerElement=r,r},createAttributeNS:function(e,t){var r=new L,n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r}},i(b,m),b.prototype.getElementsByTagName=(R.prototype={nodeType:st,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===wt?this.insertBefore(e,null):function(e,t){return t.parentNode&&t.parentNode.removeChild(t),t.parentNode=e,t.previousSibling=e.lastChild,t.nextSibling=null,t.previousSibling?t.previousSibling.nextSibling=t:e.firstChild=t,e.lastChild=t,v(e.ownerDocument,e,t),t}(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||""},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new l(this,(function(t){var r=[];return w(t,(function(n){n===t||n.nodeType!=st||"*"!==e&&n.tagName!=e||r.push(n)})),r}))},getElementsByTagNameNS:function(e,t){return new l(this,(function(r){var n=[];return w(r,(function(a){a===r||a.nodeType!==st||"*"!==e&&a.namespaceURI!==e||"*"!==t&&a.localName!=t||n.push(a)})),n}))}}).getElementsByTagName,b.prototype.getElementsByTagNameNS=R.prototype.getElementsByTagNameNS,i(R,m),L.prototype.nodeType=lt,i(L,m),C.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){this.nodeValue=this.data=e=this.data+e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw Error(vt[yt])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,r){var n=this.data.substring(0,e),a=this.data.substring(e+t);this.nodeValue=this.data=r=n+r+a,this.length=r.length}},i(C,m),I.prototype={nodeName:"#text",nodeType:ct,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n}},i(I,C),k.prototype={nodeName:"#comment",nodeType:ft},i(k,C),O.prototype={nodeName:"#cdata-section",nodeType:ut},i(O,C),M.prototype.nodeType=gt,i(M,m),U.prototype.nodeType=bt,i(U,m),P.prototype.nodeType=pt,i(P,m),V.prototype.nodeType=ht,i(V,m),F.prototype.nodeName="#document-fragment",F.prototype.nodeType=wt,i(F,m),B.prototype.nodeType=dt,i(B,m),H.prototype.serializeToString=function(e,t,r){return X.call(e,t,r)},m.prototype.toString=X;try{if(Object.defineProperty){let e=function(t){switch(t.nodeType){case st:case wt:var r=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&r.push(e(t)),t=t.nextSibling;return r.join("");default:return t.nodeValue}};Object.defineProperty(l.prototype,"length",{get:function(){return c(this),this.$$length}}),Object.defineProperty(m.prototype,"textContent",{get:function(){return e(this)},set:function(e){switch(this.nodeType){case st:case wt:for(;this.firstChild;)this.removeChild(this.firstChild);(e||e+"")&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),K=function(e,t,r){e["$$"+t]=r}}}catch(Dr){}et.DocumentType=M,et.DOMException=o,et.DOMImplementation=f,et.Element=R,et.Node=m,et.NodeList=s,et.XMLSerializer=H;var xt,St,Dt={},At={};(xt=At).XML_ENTITIES=(St=tt.freeze)({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),xt.HTML_ENTITIES=St({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}),xt.entityMap=xt.HTML_ENTITIES;var _t={},qt=tt.NAMESPACE,Rt=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,Lt=RegExp("[\\-\\.0-9"+Rt.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),Ct=RegExp("^"+Rt.source+Lt.source+"*(?::"+Rt.source+Lt.source+"*)?$"),It=0,kt=1,Ot=2,Mt=3,Ut=4,Pt=5,Vt=6,Ft=7;(Z.prototype=Error()).name=Z.name,J.prototype={parse:function(e,t,r){var n=this.domBuilder;n.startDocument(),ne(t,t={}),function(e,t,r,n,a){function i(e){var t,n=e.slice(1,-1);return Object.hasOwnProperty.call(r,n)?r[n]:"#"===n.charAt(0)?(t=parseInt(n.substr(1).replace("x","0x")))>65535?String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t)):String.fromCharCode(t):(a.error("entity not found:"+e),e)}function o(t){if(t>f){var r=e.substring(f,t).replace(/&#?\w+;/g,i);h&&s(f),n.characters(r,0,t-f),f=t}}function s(t,r){for(;t>=c&&(r=u.exec(e));)c=(l=r.index)+r[0].length,h.lineNumber++;h.columnNumber=t-l+1}for(var l=0,c=0,u=/.*(?:\r\n?|\n)|.*$/g,h=n.locator,p=[{currentNSMap:t}],d={},f=0;;){try{var m=e.indexOf("<",f);if(0>m){if(!e.substr(f).match(/^\s*$/)){var g=n.doc,w=g.createTextNode(e.substr(f));g.appendChild(w),n.currentElement=w}return}switch(m>f&&o(m),e.charAt(m+1)){case"/":var b=e.indexOf(">",m+3),E=e.substring(m+2,b).replace(/[ \t\n\r]+$/g,""),v=p.pop();0>b?(E=e.substring(m+2).replace(/[\s<].*/,""),a.error("end tag name: "+E+" is not complete:"+v.tagName),b=m+1+E.length):E.match(/\s_;_++){var q=x[_];s(q.offset),q.locator=W(h,{})}n.locator=A,ee(x,n,S)&&p.push(x),n.locator=h}else ee(x,n,S)&&p.push(x);qt.isHTML(x.uri)&&!x.closed?b=te(e,b,x.tagName,i,n):b++}}catch(Dr){if(Dr instanceof Z)throw Dr;a.error("element parse error: "+Dr),b=-1}b>f?f=b:o(Math.max(m,f)+1)}}(e,t,r,n,this.errorHandler),n.endDocument()}},oe.prototype={setTagName:function(e){if(!Ct.test(e))throw Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,r){if(!Ct.test(e))throw Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},_t.XMLReader=J,_t.ParseError=Z;var Bt=At,Ht=et.DOMImplementation,Xt=tt.NAMESPACE,Gt=_t.ParseError,jt=_t.XMLReader;le.prototype.parseFromString=function(e,t){var r=this.options,n=new jt,a=r.domBuilder||new ce,i=r.errorHandler,o=r.locator,s=r.xmlns||{},l=/\/x?html?$/.test(t),c=l?Bt.HTML_ENTITIES:Bt.XML_ENTITIES;return o&&a.setDocumentLocator(o),n.errorHandler=function(e,t,r){function n(t){var n=e[t];!n&&i&&(n=2==e.length?function(r){e(t,r)}:e),a[t]=n&&function(e){n("[xmldom "+t+"]\t"+e+he(r))}||function(){}}if(!e){if(t instanceof ce)return t;e=t}var a={},i=e instanceof Function;return r=r||{},n("warning"),n("error"),n("fatalError"),a}(i,a,o),n.domBuilder=r.domBuilder||a,l&&(s[""]=Xt.HTML),s.xml=s.xml||Xt.XML,e&&"string"==typeof e?n.parse((r.normalizeLineEndings||se)(e),s,c):n.errorHandler.error("invalid doc source"),a.doc},ce.prototype={startDocument:function(){this.doc=(new Ht).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,r,n){var a=this.doc,i=a.createElementNS(e,r||t),o=n.length;de(this,i),this.currentElement=i,this.locator&&ue(this.locator,i);for(var s=0;o>s;s++){e=n.getURI(s);var l=n.getValue(s),c=(r=n.getQName(s),a.createAttributeNS(e,r));this.locator&&ue(n.getLocator(s),c),c.value=c.nodeValue=l,i.setAttributeNode(c)}},endElement:function(e,t,r){this.currentElement=this.currentElement.parentNode},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var r=this.doc.createProcessingInstruction(e,t);this.locator&&ue(this.locator,r),de(this,r)},ignorableWhitespace:function(e,t,r){},characters:function(e,t,r){if(e=pe.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(e);else n=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(e)&&this.doc.appendChild(n),this.locator&&ue(this.locator,n)}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0)},comment:function(e,t,r){e=pe.apply(this,arguments);var n=this.doc.createComment(e);this.locator&&ue(this.locator,n),de(this,n)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(e,t,r){var n=this.doc.implementation;if(n&&n.createDocumentType){var a=n.createDocumentType(e,t,r);this.locator&&ue(this.locator,a),de(this,a),this.doc.doctype=a}},warning:function(e){console.warn("[xmldom warning]\t"+e,he(this.locator))},error:function(e){console.error("[xmldom error]\t"+e,he(this.locator))},fatalError:function(e){throw new Gt(e,this.locator)}},Dt.__DOMHandler=ce,Dt.normalizeLineEndings=se,Dt.DOMParser=le;var $t=Dt.DOMParser;const zt=63,Yt=255,Kt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Zt=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],Jt="\t",Wt="\n";class Qt{constructor(){}get type(){return this.constructor.TYPE}castTo(e){return this.type===e.TYPE?this:null}castAs(e){const t=this.castTo(e);if(!t)throw Error(`Cannot cast type '${this.type}' to '${e.TYPE}'`);return t}fromXml(e){const{documentElement:t}=fe(e);this.fromXmlElement(t)}}class er extends Qt{static TYPE="boolean";static TAG_NAMES=["true","false"];value=!1;constructor(e=!1){super(),this.value=e}fromXmlElement(e){switch(function(e){const{childNodes:t}=e;if(t.length)throw Error("Unexpected child nodes: "+e.tagName)}(e),e.tagName){case"true":return void(this.value=!0);case"false":return void(this.value=!1);default:throw we(e,"")}}toXml(e=null,t=0){const r=(e?.indentString??Jt).repeat(t);return this.value?r+"":r+""}}class tr extends Qt{static TYPE="data";static TAG_NAMES=["data"];constructor(e=new Uint8Array(0)){super(),this.value=e}fromXmlElement(e){we(e,"data");const t=ge(e)?.nodeValue||"";this.value=function(e){const t=e.length,r=[];e:for(let n,a,i,o,s,l,c=0;t>c;){for(;;){if((s=Zt[e.charCodeAt(c++)])>=0){n=s;break}if(c>=t)break e}for(;;){if((s=Zt[e.charCodeAt(c++)])>=0){a=s;break}if(c>=t)break e}for(;;){if((s=Zt[e.charCodeAt(c++)])>=0){i=s;break}if(c>=t)break e}for(;;){if((s=Zt[e.charCodeAt(c++)])>=0){o=s;break}if(c>=t)break e}switch(l=(n&zt)<<18|(a&zt)<<12|(i&zt)<<6|o&zt,i>zt?o>zt?2:0:o>zt?1:0){case 0:r.push(l>>16&Yt,l>>8&Yt,l&Yt);break;case 1:r.push(l>>16&Yt,l>>8&Yt);break;case 2:r.push(l>>16&Yt)}}return new Uint8Array(r)}(t)}toXml(e=null,t=0){const r=e?.newlineString??Wt,n=e?.dataColumns??68,a=(e?.indentString??Jt).repeat(t);let i=a+"";if(n>0)for(let o=be(this.value);o;o=o.slice(n))i+=`${r}${a}${o.slice(0,n)}`;else i+=`${r}${a}${be(this.value)}`;return i+=`${r}${a}`,i}}const rr=9007199254740991;class nr extends Qt{static TYPE="integer";static TAG_NAMES=["integer"];value=0;constructor(e=0){super(),Ee(e),this.value=e}asBigInt(){return BigInt(this.value)}asNumber(){return+this.value}fromXmlElement(e){we(e,"integer");const t=ge(e)?.nodeValue||"";if(!/^[+-]?\d+$/.test(t))throw Error("Invalid integer data: "+t);const r=+t;this.value=r>rr||-rr>r?BigInt(t):r}toXml(e=null,t=0){const r=(e?.indentString??Jt).repeat(t),n=this.value;return Ee(n),`${r}${n}`}}class ar extends Qt{static TYPE="real";static TAG_NAMES=["real"];value=0;constructor(e=0){super(),this.value=e}fromXmlElement(e){we(e,"real");const t=ge(e)?.nodeValue||"";if(!/^[+-]?(\d+|\d*\.\d+)$/.test(t))throw Error("Invalid real data: "+t);this.value=+t}toXml(e=null,t=0){return`${(e?.indentString??Jt).repeat(t)}${this.value}`}}class ir extends Qt{static TYPE="string";static TAG_NAMES=["string"];value="";constructor(e=""){super(),this.value=e}fromXmlElement(e){we(e,"string"),this.value=ge(e)?.nodeValue||""}toXml(e=null,t=0){return`${(e?.indentString??Jt).repeat(t)}${this.value.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")}`}}let or,sr;class lr extends Qt{static TYPE="dict";static TAG_NAMES=["dict"];static get CHILD_TAG_NAMES(){if(!or){or=new Map;for(const e of[cr,er,tr,lr,nr,ar,ir])for(const t of e.TAG_NAMES)or.set(t,e)}return or}value=new Map;constructor(e=new Map){super(),this.value=e}get size(){return this.value.size}has(e){return this.value.has(e)}get(e){return this.value.get(e)||null}getValue(e){const t=this.get(e);if(!t)throw Error("Key is null: "+e);return t}set(e,t){this.value.set(e,t)}delete(e){this.value.delete(e)}clear(){this.value.clear()}fromXmlElement(e){we(e,"dict");const t=me(e),r=t.length;if(r%2)throw Error("Uneven number of child elements: "+r);const n=new Map;for(let a=0;r>a;a+=2){const e=t[a],r=t[a+1];we(e,"key");const i=ge(e)?.nodeValue||"",o=this.childFromXmlElement(r);n.set(i,o)}this.value=n}childFromXmlElement(e){const{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);const a=new n;return a.fromXmlElement(e),a}toXml(e=null,t=0){const r=e?.indentString??Jt,n=e?.newlineString??Wt,a=r.repeat(t),i=this.value;if(!i.size)return a+"";const o=r.repeat(t+1);let s=a+"";for(const[l,c]of i)s+=`${n}${o}${l.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")}${n}${c.toXml(e,t+1)}`;return s+=`${n}${a}`,s}}class cr extends Qt{static TYPE="array";static TAG_NAMES=["array"];static get CHILD_TAG_NAMES(){if(!sr){sr=new Map;for(const e of[cr,er,tr,lr,nr,ar,ir])for(const t of e.TAG_NAMES)sr.set(t,e)}return sr}value=[];constructor(e=[]){super(),this.value=e}get length(){return this.value.length}get(e){const{value:t}=this;return this.length>e?t[e]:null}getValue(e){const t=this.get(e);if(!t)throw Error("Index out of bounds: "+e);return t}set(e,t){this.value[e]=t}push(...e){this.value.push(...e)}pop(){return this.value.pop()||null}popValue(){const e=this.pop();if(!e)throw Error("Cannot pop empty array");return e}shift(){return this.value.shift()||null}shiftValue(){const e=this.shift();if(!e)throw Error("Cannot shift empty array");return e}fromXmlElement(e){we(e,"array");const t=me(e);this.value=t.map((e=>this.childFromXmlElement(e)))}childFromXmlElement(e){const{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);const a=new n;return a.fromXmlElement(e),a}toXml(e=null,t=0){const r=e?.newlineString??Wt,n=(e?.indentString??Jt).repeat(t),a=this.value;if(!a.length)return n+"";let i=n+"";for(const o of a)i+=`${r}${o.toXml(e,t+1)}`;return i+=`${r}${n}`,i}}const ur='',hr='';class pr{static XML_DECLARATION=ur;static XML_DOCTYPE=hr;xmlDeclaration=ur;xmlDoctype=hr;value=null;constructor(e=null){this.value=e}getValue(){const{value:e}=this;if(!e)throw Error("Value is null");return e}valueCastTo(e){const{value:t}=this;return t?t.castTo(e):null}valueCastAs(e){const t=this.valueCastTo(e);if(!t)throw Error(`Cannot cast value to type '${e.TYPE}'`);return t}fromXml(e){const{declaration:t,doctype:r,documentElement:n}=fe(e);this.fromXmlElement(n,t,r)}fromXmlElement(e,t=null,r=null){const{tagName:n}=e;if("plist"!==n)throw Error("Unexpected root plist tag name: "+n);const a=me(e),i=a.length;if(i>1)throw Error("Multiple root plist child tag: "+i);this.value=i?this.childFromXmlElement(a[0]):null,this.xmlDeclaration=t||"",this.xmlDoctype=r||""}childFromXmlElement(e){return(new lr).childFromXmlElement(e)}toXml(e=null){const t=e?.indentRoot??!1,r=e?.newlineString??Wt,n=this.value;return[...[this.xmlDeclaration,this.xmlDoctype].filter(Boolean),'',...n?[n.toXml(e,t?1:0)]:[],"",""].join(r)}}class dr{constructor(e=null){this.hdiutil=(e?e.hdiutil:null)||"hdiutil"}async attach(e,t=null,r=null){const n=await this._runAttach(this._argsAttach(e,t)),{eject:a,ejectSync:i}=this._createEjects(n);return{devices:n,eject:a,ejectSync:i}}attachSync(e,t=null,r=null){const n=this._runAttachSync(this._argsAttach(e,t)),{eject:a,ejectSync:i}=this._createEjects(n);return{devices:n,eject:a,ejectSync:i}}async eject(e,t=null){await this._runEject(this._argsEject(e,t))}ejectSync(e,t=null){this._runEjectSync(this._argsEject(e,t))}_argsAttach(e,t=null){const r=["attach","-plist"];return t&&(t.readonly&&r.push("-readonly"),t.nobrowse&&r.push("-nobrowse")),r.push(this._fileArg(e)),r}_argsEject(e,t=null){const r=["eject"];return t&&t.force&&r.push("-force"),r.push(this._fileArg(e)),r}async _runAttach(e){const t=[],r=We(this.hdiutil,e);r.stdout.on("data",(e=>{t.push(e)}));const n=await new Promise(((e,t)=>{r.once("exit",e),r.once("error",t)}));if(n)throw Error("Attach failed: hdiutil exit code: "+n);return this._parseDevices(""+Buffer.concat(t))}_runAttachSync(e){const{status:t,error:r,stdout:n}=Qe(this.hdiutil,e);if(r)throw r;if(t)throw Error("Attach failed: hdiutil exit code: "+t);return this._parseDevices(""+n)}async _runEject(e){const t=We(this.hdiutil,e),r=await new Promise(((e,r)=>{t.once("exit",e),t.once("error",r)}));if(r)throw Error("Eject failed: hdiutil exit code: "+r)}_runEjectSync(e){const{status:t,error:r}=Qe(this.hdiutil,e);if(r)throw r;if(t)throw Error("Eject failed: hdiutil exit code: "+t)}_fileArg(e){return e.startsWith("-")?"./"+e:e}_parseDevices(e){const t=new pr;t.fromXml(e);const r=t.valueCastAs(lr).getValue("system-entities").castAs(cr),n=[];for(const a of r.value){const e=a.castAs(lr),t=e.getValue("dev-entry").castAs(ir).value,r=e.getValue("potentially-mountable").castAs(er).value,i=e.get("content-hint"),o=e.get("unmapped-content-hint"),s=e.get("volume-kind"),l=e.get("mount-point"),c={devEntry:t,potentiallyMountable:r};i&&(c.contentHint=i.castAs(ir).value),o&&(c.unmappedContentHint=o.castAs(ir).value),s&&(c.volumeKind=s.castAs(ir).value),l&&(c.mountPoint=l.castAs(ir).value),n.push(c)}return n}_findRootDevice(e){let t=null;for(const r of e)(null===t||t.devEntry.length>r.devEntry.length)&&(t=r);return t}_createEjects(e,t=null){let r=this._findRootDevice(e)?.devEntry,n=null;const a={eject:async(e=null)=>{r&&(await this.eject(r,e),r="",n&&process.off("exit",n))},ejectSync:(e=null)=>{r&&(this.ejectSync(r,e),r="",n&&process.off("exit",n))}};return t&&(n=()=>{a.ejectSync(t)},process.once("exit",n)),a}}let fr=function(e){return e.DIRECTORY="directory",e.FILE="file",e.SYMLINK="symlink",e.RESOURCE_FORK="resource-fork",e}({});const{O_WRONLY:mr,O_SYMLINK:gr}=Re,wr=!!gr,br=!!gr,Er=Ze(Ye);class vr{_triggering=!1;_triggered=!1;_extracted=!1;constructor(e){this.archive=e.archive,this.type=e.type,this.pathRaw=e.pathRaw,this.path=ve(e.pathRaw),this.size=e.size??null,this.sizeComp=e.sizeComp??null,this.mode=e.mode??null,this.uid=e.uid??null,this.gid=e.gid??null,this.uname=e.uname??null,this.gname=e.gname??null,this.atime=e.atime??null,this.mtime=e.mtime??null,this._readData=e.readData??null,this._readRsrc=e.readRsrc??null,this._readSymlink=e.readSymlink??null}get hasNamedVolume(){return this.archive.hasNamedVolumes}get volumeName(){if(this.hasNamedVolume){const{path:e}=this;return e.substring(0,e.indexOf("/"))}return null}get volumePath(){const{path:e}=this;return this.hasNamedVolume?e.substring(e.indexOf("/")+1):e}async stream(){return this._beginExtract(),this._stream()}async read(){this._beginExtract();const e=await this._stream();return e?async function(e){const t=[];let r=0;return await Je(e,new ze({write:(e,n,a)=>{t.push(e),r+=e.length,a()}})),Buffer.concat(t,r)}(e):null}async extract(e,t={}){this._beginExtract(),await this._extract(e,t)}async trigger(e){let t;if(this._triggered)throw Error("Archive entry already triggered");this._triggered=this._triggering=!0;try{t=await e(this)}finally{this._triggering=!1}return t}async setAttributes(e,t=null,r={}){const n=null===t?e:t,{ignorePermissions:a,ignoreTimes:i}=r,{type:o,mode:s,atime:l,mtime:c}=this;let u=!1;switch(o){case fr.FILE:case fr.RESOURCE_FORK:case fr.DIRECTORY:break;case fr.SYMLINK:u=!0;break;default:throw Error("Unsupported path type: "+o)}const h=l||c||null,p=c||l||null;if(!a&&null!==s){const e=u?Ne:Se,t=function(e){return 511&e}(s);await e(n,t)}if(!i&&h&&p){const e=u?xe:Te;await e(n,h,p)}}_beginExtract(){if(!this._triggering)throw Error("Archive entry is not active");if(this._extracted)throw Error("Archive entry can only be extracted once");this._extracted=!0}_errorExtractPathExists(e){return Error("Extract path already exists: "+e)}_errorNoResourceFork(e){return Error("Extract path for resource fork not a file: "+e)}async _extract(e,t){this.archive.afterReadSetAttributesRemove(e);const{type:r}=this;switch(r){case fr.FILE:await this._extractFile(e,t);break;case fr.RESOURCE_FORK:await this._extractResourceFork(e,t);break;case fr.DIRECTORY:await this._extractDirectory(e,t);break;case fr.SYMLINK:await this._extractSymlink(e,t);break;default:throw Error("Unsupported path type: "+r)}}async _extractStreamToFile(e,t,r){const{replace:n}=r;if(await _e(e)){if(!n)throw this._errorExtractPathExists(e);await Ge(e,{recursive:!0,force:!0})}else await je(Oe(e),{recursive:!0});await $e(e,Buffer.alloc(0));const a=await t();a&&await Er(a,Le(e)),await this.setAttributes(e,null,r)}async _extractFile(e,t){const r=this._readData;if(!r)throw Error("Internal error");await this._extractStreamToFile(e,r,t)}async _extractResourceFork(e,t){const r=this._readRsrc;if(!r)throw Error("Internal error");if(t.resourceForkAsFile)return void(await this._extractStreamToFile(e,r,t));const n=await _e(e);if(!n||!n.isFile())throw this._errorNoResourceFork(e);const a=ye(e),i=await r();i?await Er(i,Le(a)):await $e(a,Buffer.alloc(0)),await this.setAttributes(e,null,t)}async _extractDirectory(e,t){const{replace:r}=t,n=await _e(e);if(n){if(!n.isDirectory()){if(!r)throw this._errorExtractPathExists(e);await Ge(e,{recursive:!0,force:!0}),await je(e,{recursive:!0})}}else await je(e,{recursive:!0});this.archive.afterReadSetAttributes(e,this,{...t})}async _extractSymlink(e,t){const r=this._readSymlink;if(!r)throw Error("Internal error");const{replace:n,symlinkAsFile:a}=t;if(await _e(e)){if(!n)throw this._errorExtractPathExists(e);await Ge(e,{recursive:!0,force:!0})}else await je(Oe(e),{recursive:!0});const i=await r();a?await $e(e,i):await async function(e,t){await Fe(t,e)}(e,i),await this.setAttributes(e,null,t)}async _stream(){const{type:e}=this;switch(e){case fr.FILE:return this._streamFile();case fr.RESOURCE_FORK:return this._streamResourceFork();case fr.DIRECTORY:return this._streamDirectory();case fr.SYMLINK:return this._streamSymlink();default:throw Error("Unsupported path type: "+e)}}async _streamFile(){const e=this._readData;if(!e)throw Error("Internal error");return e()}async _streamResourceFork(){const e=this._readRsrc;if(!e)throw Error("Internal error");return e()}async _streamDirectory(){return null}async _streamSymlink(){const e=this._readSymlink;if(!e)throw Error("Internal error");const t=new Ke({read:()=>{e().then((e=>{t.push(e),t.push(null)}),(e=>{t.emit("error",e)}))}});return t}}class yr{static FILE_EXTENSIONS=null;static HAS_NAMED_VOLUMES=!1;Entry=vr;_reading=!1;_afterReadSetAttributes=null;constructor(e){this.path=e}get fileExtensions(){return this.constructor.FILE_EXTENSIONS||null}get hasNamedVolumes(){return this.constructor.HAS_NAMED_VOLUMES}afterReadSetAttributes(e,t,r={}){const n=this._afterReadSetAttributes;if(!n)throw Error("Archive after read callbacks can only be added while reading");n.set(ke(e),{path:e,entry:t,options:r})}afterReadSetAttributesRemove(e){const t=this._afterReadSetAttributes;if(!t)throw Error("Archive after read callbacks can only be removed while reading");t.delete(ke(e))}async read(e){if(this._reading)throw Error("Archive already being read");this._reading=!0,this._afterReadSetAttributes=new Map;try{await this._read(e),await this._afterReadSetAttributesTrigger()}finally{this._afterReadSetAttributes=null,this._reading=!1}}async _afterReadSetAttributesTrigger(){const e=this._afterReadSetAttributes;if(!e)return;const t=[];for(const[r]of e)t.push(r);t.sort(((e,t)=>t.length-e.length));for(const r of t){const t=e.get(r);if(!t)throw Error("Internal error");const{entry:n,path:a,options:i}=t;await n.setAttributes(a,r,i)}}}const Nr={ignoreUnreadableDirectories:!0},Tr={force:!0};class xr extends vr{sizeComp=null;uname=null;gname=null;constructor(e){super(e),this.archive=e.archive,this.size=e.size,this.mode=e.mode,this.uid=e.uid,this.gid=e.gid,this.atime=e.atime,this.mtime=e.mtime}get rsrcPathRaw(){return ye(this.pathRaw)}get rsrcPath(){return ve(ye(this.path))}}class Sr extends yr{static FILE_EXTENSIONS=[".dmg",".iso",".cdr"];static HAS_NAMED_VOLUMES=!0;Entry=xr;mounterMac=new dr;nobrowse=!1;constructor(e){super(e)}async read(e){await super.read(e)}async _read(e){const{mounterMac:t,nobrowse:r}=this,n=async(t,r,n)=>{const a=function(e){return e.isSymbolicLink()?fr.SYMLINK:e.isDirectory()?fr.DIRECTORY:e.isFile()?fr.FILE:null}(n);if(null===a)return!0;const{size:i,mode:o,uid:s,gid:l,atime:c,mtime:u}=n,h=new this.Entry({archive:this,type:a,pathRaw:r,size:i,mode:o,uid:s,gid:l,atime:c,mtime:u,readData:a===fr.FILE?async()=>Ce(t):null,readSymlink:a===fr.SYMLINK?async()=>async function(e){return Ue(e,"buffer")}(t):null}),p=await h.trigger(e);if(!1===p)return null;if(null===p)return!1;if(a===fr.FILE){const n=ye(t),a=await _e(n);if(a){const t=new this.Entry({archive:this,type:fr.RESOURCE_FORK,pathRaw:r,size:a.size,mode:o,uid:s,gid:l,atime:c,mtime:u,readRsrc:async()=>Ce(n)}),i=await t.trigger(e);if(!1===i)return null;if(null===i)return!1}}return!0},a=await t.attach(this.path,{nobrowse:r,readonly:!0},Tr);try{for(const e of a.devices){const{mountPoint:t}=e;if(!t)continue;const r=Me(t);await qe(t,(async(e,a)=>{const i=Ie(t,e),o=Ie(r,e);return n(i,o,a)}),Nr)}}finally{await a.eject(Tr)}}}export{Sr as ArchiveHdi,xr as EntryHdi}; //# sourceMappingURL=hdi-CLiriP2M.mjs.map