@openplayerjs/ads 3.4.0 → 3.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.js +6654 -3051
- package/dist/index.js.map +1 -1
- package/dist/openplayer-ads.js +1 -1
- package/dist/openplayer-ads.js.map +1 -1
- package/dist/types/ad-dom.d.ts +1 -1
- package/dist/types/ad-dom.d.ts.map +1 -1
- package/dist/types/ads.d.ts +86 -66
- package/dist/types/ads.d.ts.map +1 -1
- package/dist/types/index.d.ts +33 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/schedule.d.ts +1 -1
- package/dist/types/simid.d.ts +5 -3
- package/dist/types/simid.d.ts.map +1 -1
- package/dist/types/strategies/csai.d.ts +160 -0
- package/dist/types/strategies/csai.d.ts.map +1 -0
- package/dist/types/strategies/hybrid.d.ts +24 -0
- package/dist/types/strategies/hybrid.d.ts.map +1 -0
- package/dist/types/strategies/scte35.d.ts +28 -0
- package/dist/types/strategies/scte35.d.ts.map +1 -0
- package/dist/types/strategies/ssai.d.ts +37 -0
- package/dist/types/strategies/ssai.d.ts.map +1 -0
- package/dist/types/types.d.ts +131 -2
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openplayer-ads.js","sources":["../../../node_modules/.pnpm/@dailymotion+vast-client@6.4.3/node_modules/@dailymotion/vast-client/dist/vast-client.min.js","../src/vast-parser.ts","../src/ad-dom.ts","../src/caption-manager.ts","../src/omid.ts","../../../node_modules/.pnpm/@dailymotion+vmap@3.3.3/node_modules/@dailymotion/vmap/dist/vmap-js.js","../src/schedule.ts","../src/simid.ts","../src/types.ts","../src/ads.ts","../src/umd.ts","../src/install.ts","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/conventions.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/dom.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/entities.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/sax.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/dom-parser.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/index.js"],"sourcesContent":["function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,adId:e.adId||null,sequence:e.sequence||null,apiFramework:e.apiFramework||null,universalAdIds:[],creativeExtensions:[]}}const t=[\"ADCATEGORIES\",\"ADCOUNT\",\"ADPLAYHEAD\",\"ADSERVINGID\",\"ADTYPE\",\"APIFRAMEWORKS\",\"APPBUNDLE\",\"ASSETURI\",\"BLOCKEDADCATEGORIES\",\"BREAKMAXADLENGTH\",\"BREAKMAXADS\",\"BREAKMAXDURATION\",\"BREAKMINADLENGTH\",\"BREAKMINDURATION\",\"BREAKPOSITION\",\"CLICKPOS\",\"CLICKTYPE\",\"CLIENTUA\",\"CONTENTID\",\"CONTENTPLAYHEAD\",\"CONTENTURI\",\"DEVICEIP\",\"DEVICEUA\",\"DOMAIN\",\"EXTENSIONS\",\"GDPRCONSENT\",\"IFA\",\"IFATYPE\",\"INVENTORYSTATE\",\"LATLONG\",\"LIMITADTRACKING\",\"MEDIAMIME\",\"MEDIAPLAYHEAD\",\"OMIDPARTNER\",\"PAGEURL\",\"PLACEMENTTYPE\",\"PLAYERCAPABILITIES\",\"PLAYERSIZE\",\"PLAYERSTATE\",\"PODSEQUENCE\",\"REGULATIONS\",\"SERVERSIDE\",\"SERVERUA\",\"TRANSACTIONID\",\"UNIVERSALADID\",\"VASTVERSIONS\",\"VERIFICATIONVENDORS\"];function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=[],n=s(e);!t.ERRORCODE||r.isCustomCode||/^[0-9]{3}$/.test(t.ERRORCODE)||(t.ERRORCODE=900),t.CACHEBUSTING=d(Math.round(1e8*Math.random())),t.TIMESTAMP=(new Date).toISOString(),t.RANDOM=t.random=t.CACHEBUSTING;for(const e in t)t[e]=c(t[e]);for(const e in n){const r=n[e];\"string\"==typeof r&&a.push(i(r,t))}return a}function i(e,r){const i=(e=a(e,r)).match(/[^[\\]]+(?=])/g);if(!i)return e;let s=i.filter((e=>t.indexOf(e)>-1));return 0===s.length?e:(s=s.reduce(((e,t)=>(e[t]=-1,e)),{}),a(e,s))}function a(e,t){let r=e;for(const e in t){const i=t[e];r=r.replace(new RegExp(\"(?:\\\\[|%%)(\".concat(e,\")(?:\\\\]|%%)\"),\"g\"),i)}return r}function s(e){return Array.isArray(e)?e.map((e=>e&&e.hasOwnProperty(\"url\")?e.url:e)):e}function n(e){return/^(https?:\\/\\/|\\/\\/)/.test(e)}function o(e,t){for(let r=0;r<t.length;r++)if(l(t[r],e))return!0;return!1}function l(e,t){if(e&&t){const r=Object.getOwnPropertyNames(e),i=Object.getOwnPropertyNames(t);return r.length===i.length&&(e.id===t.id&&e.url===t.url)}return!1}function c(e){return encodeURIComponent(e).replace(/[!'()*]/g,(e=>\"%\".concat(e.charCodeAt(0).toString(16))))}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return e.toString().padStart(t,\"0\")}const u={track:function(e,t,i){r(e,t,i).forEach((e=>{if(\"undefined\"!=typeof window&&null!==window){(new Image).src=e}}))},resolveURLTemplates:r,extractURLsFromTemplates:s,filterUrlTemplates:function(e){return e.reduce(((e,t)=>{const r=t.url||t;return n(r)?e.validUrls.push(r):e.invalidUrls.push(r),e}),{validUrls:[],invalidUrls:[]})},containsTemplateObject:o,isTemplateObjectEqual:l,encodeURIComponentRFC3986:c,replaceUrlMacros:i,isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},flatten:function e(t){return t.reduce(((t,r)=>t.concat(Array.isArray(r)?e(r):r)),[])},joinArrayOfUniqueTemplateObjs:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=Array.isArray(e)?e:[],i=Array.isArray(t)?t:[];return r.concat(i).reduce(((e,t)=>(o(t,e)||e.push(t),e)),[])},isValidTimeValue:function(e){return Number.isFinite(e)&&e>=-2},addLeadingZeros:d,isValidUrl:n,isBrowserEnvironment:function(){return\"undefined\"!=typeof window},formatMacrosValues:function(e){return\"object\"!=typeof e?e:JSON.stringify(e)}};function h(e){return[\"true\",\"TRUE\",\"True\",\"1\"].includes(e)}function p(e){if(null==e)return-1;if(u.isNumeric(e))return parseInt(e);const t=e.split(\":\");if(3!==t.length)return-1;const r=t[2].split(\".\");let i=parseInt(r[0]);2===r.length&&(i+=parseFloat(\"0.\".concat(r[1])));const a=parseInt(60*t[1]),s=parseInt(60*t[0]*60);return isNaN(s)||isNaN(a)||isNaN(i)||a>3600||i>60?-1:s+a+i}const m={childByName:function(e,t){return Array.from(e.childNodes).find((e=>e.nodeName===t))},childrenByName:function(e,t){return Array.from(e.childNodes).filter((e=>e.nodeName===t))},resolveVastAdTagURI:function(e,t){if(!t)return e;if(e.startsWith(\"//\")){const{protocol:t}=location;return\"\".concat(t).concat(e)}if(!e.includes(\"://\")){const r=t.slice(0,t.lastIndexOf(\"/\"));return\"\".concat(r,\"/\").concat(e)}return e},parseBoolean:h,parseNodeText:function(e){return e&&(e.textContent||e.text||\"\").trim()},copyNodeAttribute:function(e,t,r){const i=t.getAttribute(e);i&&r.setAttribute(e,i)},parseAttributes:function(e){return Array.from(e.attributes).reduce(((e,t)=>(e[t.nodeName]=t.nodeValue,e)),{})},parseDuration:p,getStandAloneAds:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((e=>!parseInt(e.sequence,10)))},getSortedAdPods:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((e=>parseInt(e.sequence,10))).sort(((e,t)=>e.sequence-t.sequence))},assignAttributes:function(e,t){e&&Array.from(e).forEach((e=>{let{nodeName:r,nodeValue:i}=e;if(r&&i&&t.hasOwnProperty(r)){let e=i;\"boolean\"==typeof t[r]&&(e=h(e)),t[r]=e}}))},mergeWrapperAdData:function(e,t){var r;e.errorURLTemplates=t.errorURLTemplates.concat(e.errorURLTemplates),e.impressionURLTemplates=t.impressionURLTemplates.concat(e.impressionURLTemplates),e.extensions=t.extensions.concat(e.extensions),t.viewableImpression.length>0&&(e.viewableImpression=[...e.viewableImpression,...t.viewableImpression]),e.followAdditionalWrappers=t.followAdditionalWrappers,e.allowMultipleAds=t.allowMultipleAds,e.fallbackOnNoAd=t.fallbackOnNoAd;const i=(t.creatives||[]).filter((e=>e&&\"companion\"===e.type)),a=i.reduce(((e,t)=>((t.variations||[]).forEach((t=>{(t.companionClickTrackingURLTemplates||[]).forEach((t=>{u.containsTemplateObject(t,e)||e.push(t)}))})),e)),[]);e.creatives=i.concat(e.creatives);const s=t.videoClickTrackingURLTemplates&&t.videoClickTrackingURLTemplates.length,n=t.videoCustomClickURLTemplates&&t.videoCustomClickURLTemplates.length;if(e.creatives.forEach((e=>{if(t.trackingEvents&&t.trackingEvents[e.type])for(const r in t.trackingEvents[e.type]){const i=t.trackingEvents[e.type][r];Array.isArray(e.trackingEvents[r])||(e.trackingEvents[r]=[]),e.trackingEvents[r]=e.trackingEvents[r].concat(i)}\"linear\"===e.type&&(s&&(e.videoClickTrackingURLTemplates=e.videoClickTrackingURLTemplates.concat(t.videoClickTrackingURLTemplates)),n&&(e.videoCustomClickURLTemplates=e.videoCustomClickURLTemplates.concat(t.videoCustomClickURLTemplates)),!t.videoClickThroughURLTemplate||null!==e.videoClickThroughURLTemplate&&void 0!==e.videoClickThroughURLTemplate||(e.videoClickThroughURLTemplate=t.videoClickThroughURLTemplate)),\"companion\"===e.type&&a.length&&(e.variations||[]).forEach((e=>{e.companionClickTrackingURLTemplates=u.joinArrayOfUniqueTemplateObjs(e.companionClickTrackingURLTemplates,a)}))})),t.adVerifications&&(e.adVerifications=e.adVerifications.concat(t.adVerifications)),t.blockedAdCategories&&(e.blockedAdCategories=e.blockedAdCategories.concat(t.blockedAdCategories)),null!==(r=t.creatives)&&void 0!==r&&r.length){const r=t.creatives.filter((e=>{var t;return(null===(t=e.icons)||void 0===t?void 0:t.length)&&!e.mediaFiles.length}));r.length&&(e.creatives=e.creatives.concat(r))}}};function g(t,r){const i=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"companion\",required:null,variations:[]}}(r);return i.required=t.getAttribute(\"required\")||null,i.variations=m.childrenByName(t,\"Companion\").map((e=>{const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,adType:\"companionAd\",width:e.width||0,height:e.height||0,assetWidth:e.assetWidth||null,assetHeight:e.assetHeight||null,expandedWidth:e.expandedWidth||null,expandedHeight:e.expandedHeight||null,apiFramework:e.apiFramework||null,adSlotId:e.adSlotId||null,pxratio:e.pxratio||\"1\",renderingMode:e.renderingMode||\"default\",staticResources:[],htmlResources:[],iframeResources:[],adParameters:null,altText:null,companionClickThroughURLTemplate:null,companionClickTrackingURLTemplates:[],trackingEvents:{}}}(m.parseAttributes(e));t.htmlResources=m.childrenByName(e,\"HTMLResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat(r):e}),[]),t.iframeResources=m.childrenByName(e,\"IFrameResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat(r):e}),[]),t.staticResources=m.childrenByName(e,\"StaticResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat({url:r,creativeType:t.getAttribute(\"creativeType\")||null}):e}),[]),t.altText=m.parseNodeText(m.childByName(e,\"AltText\"))||null;const r=m.childByName(e,\"TrackingEvents\");r&&m.childrenByName(r,\"Tracking\").forEach((e=>{const r=e.getAttribute(\"event\"),i=m.parseNodeText(e);r&&i&&(Array.isArray(t.trackingEvents[r])||(t.trackingEvents[r]=[]),t.trackingEvents[r].push(i))})),t.companionClickTrackingURLTemplates=m.childrenByName(e,\"CompanionClickTracking\").map((e=>({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)}))),t.companionClickThroughURLTemplate=m.parseNodeText(m.childByName(e,\"CompanionClickThrough\"))||null;const i=m.childByName(e,\"AdParameters\");return i&&(t.adParameters={value:m.parseNodeText(i),xmlEncoded:i.getAttribute(\"xmlEncoded\")||null}),t})),i}function v(t,r){let i;const a=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"linear\",duration:0,skipDelay:null,mediaFiles:[],mezzanine:null,interactiveCreativeFile:null,closedCaptionFiles:[],videoClickThroughURLTemplate:null,videoClickTrackingURLTemplates:[],videoCustomClickURLTemplates:[],adParameters:null,icons:[],trackingEvents:{}}}(r);a.duration=m.parseDuration(m.parseNodeText(m.childByName(t,\"Duration\")));const s=t.getAttribute(\"skipoffset\");if(null==s)a.skipDelay=null;else if(\"%\"===s.charAt(s.length-1)&&-1!==a.duration){const e=parseInt(s,10);a.skipDelay=a.duration*(e/100)}else a.skipDelay=m.parseDuration(s);const n=m.childByName(t,\"VideoClicks\");if(n){const e=m.childByName(n,\"ClickThrough\");a.videoClickThroughURLTemplate=e?{id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)}:null,m.childrenByName(n,\"ClickTracking\").forEach((e=>{a.videoClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})})),m.childrenByName(n,\"CustomClick\").forEach((e=>{a.videoCustomClickURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})}))}const o=m.childByName(t,\"AdParameters\");o&&(a.adParameters={value:m.parseNodeText(o),xmlEncoded:o.getAttribute(\"xmlEncoded\")||null}),m.childrenByName(t,\"TrackingEvents\").forEach((e=>{m.childrenByName(e,\"Tracking\").forEach((e=>{let t=e.getAttribute(\"event\");const r=m.parseNodeText(e);if(t&&r){if(\"progress\"===t){if(i=e.getAttribute(\"offset\"),!i)return;t=\"%\"===i.charAt(i.length-1)?\"progress-\".concat(i):\"progress-\".concat(m.parseDuration(i))}Array.isArray(a.trackingEvents[t])||(a.trackingEvents[t]=[]),a.trackingEvents[t].push(r)}}))})),m.childrenByName(t,\"MediaFiles\").forEach((e=>{m.childrenByName(e,\"MediaFile\").forEach((e=>{a.mediaFiles.push(function(e){const t={id:null,fileURL:null,fileSize:0,deliveryType:\"progressive\",mimeType:null,mediaType:null,codec:null,bitrate:0,minBitrate:0,maxBitrate:0,width:0,height:0,apiFramework:null,scalable:null,maintainAspectRatio:null};t.id=e.getAttribute(\"id\"),t.fileURL=m.parseNodeText(e),t.deliveryType=e.getAttribute(\"delivery\"),t.codec=e.getAttribute(\"codec\"),t.mimeType=e.getAttribute(\"type\"),t.mediaType=e.getAttribute(\"mediaType\")||\"2D\",t.apiFramework=e.getAttribute(\"apiFramework\"),t.fileSize=parseInt(e.getAttribute(\"fileSize\")||0),t.bitrate=parseInt(e.getAttribute(\"bitrate\")||0),t.minBitrate=parseInt(e.getAttribute(\"minBitrate\")||0),t.maxBitrate=parseInt(e.getAttribute(\"maxBitrate\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.height=parseInt(e.getAttribute(\"height\")||0);const r=e.getAttribute(\"scalable\");r&&\"string\"==typeof r&&(t.scalable=m.parseBoolean(r));const i=e.getAttribute(\"maintainAspectRatio\");i&&\"string\"==typeof i&&(t.maintainAspectRatio=m.parseBoolean(i));return t}(e))}));const t=m.childByName(e,\"InteractiveCreativeFile\");t&&(a.interactiveCreativeFile=function(e){const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:e.type||null,apiFramework:e.apiFramework||null,variableDuration:m.parseBoolean(e.variableDuration),fileURL:null}}(m.parseAttributes(e));return t.fileURL=m.parseNodeText(e),t}(t));const r=m.childByName(e,\"ClosedCaptionFiles\");r&&m.childrenByName(r,\"ClosedCaptionFile\").forEach((e=>{const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:e.type||null,language:e.language||null,fileURL:null}}(m.parseAttributes(e));t.fileURL=m.parseNodeText(e),a.closedCaptionFiles.push(t)}));const i=m.childByName(e,\"Mezzanine\"),s=function(e,t){const r={};let i=!1;return t.forEach((t=>{e&&e.getAttribute(t)?r[t]=e.getAttribute(t):i=!0})),i?null:r}(i,[\"delivery\",\"type\",\"width\",\"height\"]);if(s){const e={id:null,fileURL:null,delivery:null,codec:null,type:null,width:0,height:0,fileSize:0,mediaType:\"2D\"};e.id=i.getAttribute(\"id\"),e.fileURL=m.parseNodeText(i),e.delivery=s.delivery,e.codec=i.getAttribute(\"codec\"),e.type=s.type,e.width=parseInt(s.width,10),e.height=parseInt(s.height,10),e.fileSize=parseInt(i.getAttribute(\"fileSize\"),10),e.mediaType=i.getAttribute(\"mediaType\")||\"2D\",a.mezzanine=e}}));const l=m.childByName(t,\"Icons\");return l&&m.childrenByName(l,\"Icon\").forEach((e=>{a.icons.push(function(e){const t={program:null,height:0,width:0,xPosition:0,yPosition:0,apiFramework:null,offset:null,duration:0,type:null,staticResource:null,htmlResource:null,iframeResource:null,pxratio:\"1\",iconClickThroughURLTemplate:null,iconClickTrackingURLTemplates:[],iconViewTrackingURLTemplate:null,iconClickFallbackImages:[],altText:null,hoverText:null};t.program=e.getAttribute(\"program\"),t.height=parseInt(e.getAttribute(\"height\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.xPosition=function(e){if(-1!==[\"left\",\"right\"].indexOf(e))return e;return parseInt(e||0)}(e.getAttribute(\"xPosition\")),t.yPosition=function(e){if(-1!==[\"top\",\"bottom\"].indexOf(e))return e;return parseInt(e||0)}(e.getAttribute(\"yPosition\")),t.apiFramework=e.getAttribute(\"apiFramework\"),t.pxratio=e.getAttribute(\"pxratio\")||\"1\",t.offset=m.parseDuration(e.getAttribute(\"offset\")),t.duration=m.parseDuration(e.getAttribute(\"duration\")),t.altText=e.getAttribute(\"altText\"),t.hoverText=e.getAttribute(\"hoverText\"),m.childrenByName(e,\"HTMLResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=m.parseNodeText(e)})),m.childrenByName(e,\"IFrameResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=m.parseNodeText(e)})),m.childrenByName(e,\"StaticResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=m.parseNodeText(e)}));const r=m.childByName(e,\"IconClicks\");if(r){t.iconClickThroughURLTemplate=m.parseNodeText(m.childByName(r,\"IconClickThrough\")),m.childrenByName(r,\"IconClickTracking\").forEach((e=>{t.iconClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})}));const e=m.childByName(r,\"IconClickFallbackImages\");e&&m.childrenByName(e,\"IconClickFallbackImage\").forEach((e=>{t.iconClickFallbackImages.push({url:m.parseNodeText(e)||null,width:e.getAttribute(\"width\")||null,height:e.getAttribute(\"height\")||null})}))}return t.iconViewTrackingURLTemplate=m.parseNodeText(m.childByName(e,\"IconViewTracking\")),t}(e))})),a}function f(t,r){const i=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"nonlinear\",variations:[],trackingEvents:{}}}(r);return m.childrenByName(t,\"TrackingEvents\").forEach((e=>{let t,r;m.childrenByName(e,\"Tracking\").forEach((e=>{t=e.getAttribute(\"event\"),r=m.parseNodeText(e),t&&r&&(Array.isArray(i.trackingEvents[t])||(i.trackingEvents[t]=[]),i.trackingEvents[t].push(r))}))})),m.childrenByName(t,\"NonLinear\").forEach((e=>{const t={id:null,width:0,height:0,expandedWidth:0,expandedHeight:0,scalable:!0,maintainAspectRatio:!0,minSuggestedDuration:0,apiFramework:\"static\",adType:\"nonLinearAd\",type:null,staticResource:null,htmlResource:null,iframeResource:null,nonlinearClickThroughURLTemplate:null,nonlinearClickTrackingURLTemplates:[],adParameters:null};t.id=e.getAttribute(\"id\")||null,t.width=e.getAttribute(\"width\"),t.height=e.getAttribute(\"height\"),t.expandedWidth=e.getAttribute(\"expandedWidth\"),t.expandedHeight=e.getAttribute(\"expandedHeight\"),t.scalable=m.parseBoolean(e.getAttribute(\"scalable\")),t.maintainAspectRatio=m.parseBoolean(e.getAttribute(\"maintainAspectRatio\")),t.minSuggestedDuration=m.parseDuration(e.getAttribute(\"minSuggestedDuration\")),t.apiFramework=e.getAttribute(\"apiFramework\"),m.childrenByName(e,\"HTMLResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=m.parseNodeText(e)})),m.childrenByName(e,\"IFrameResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=m.parseNodeText(e)})),m.childrenByName(e,\"StaticResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=m.parseNodeText(e)}));const r=m.childByName(e,\"AdParameters\");r&&(t.adParameters={value:m.parseNodeText(r),xmlEncoded:r.getAttribute(\"xmlEncoded\")||null}),t.nonlinearClickThroughURLTemplate=m.parseNodeText(m.childByName(e,\"NonLinearClickThrough\")),m.childrenByName(e,\"NonLinearClickTracking\").forEach((e=>{t.nonlinearClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})})),i.variations.push(t)})),i}function T(e){const t=[];return e.forEach((e=>{const r=A(e);r&&t.push(r)})),t}function A(e){if(\"#comment\"===e.nodeName)return null;const t={name:null,value:null,attributes:{},children:[]},r=e.attributes,i=e.childNodes;if(t.name=e.nodeName,e.attributes)for(const e in r)if(r.hasOwnProperty(e)){const i=r[e];i.nodeName&&i.nodeValue&&(t.attributes[i.nodeName]=i.nodeValue)}for(const e in i)if(i.hasOwnProperty(e)){const r=A(i[e]);r&&t.children.push(r)}if(0===t.children.length||1===t.children.length&&[\"#cdata-section\",\"#text\"].indexOf(t.children[0].name)>=0){const r=m.parseNodeText(e);\"\"!==r&&(t.value=r),t.children=[]}return null===(a=t).value&&0===Object.keys(a.attributes).length&&0===a.children.length?null:t;var a}function R(e){return e.getAttribute(\"AdID\")||e.getAttribute(\"adID\")||e.getAttribute(\"adId\")||null}const k={Wrapper:{subElements:[\"VASTAdTagURI\",\"Impression\"]},BlockedAdCategories:{attributes:[\"authority\"]},InLine:{subElements:[\"AdSystem\",\"AdTitle\",\"Impression\",\"AdServingId\",\"Creatives\"]},Category:{attributes:[\"authority\"]},Pricing:{attributes:[\"model\",\"currency\"]},Verification:{oneOfinLineResources:[\"JavaScriptResource\",\"ExecutableResource\"],attributes:[\"vendor\"]},UniversalAdId:{attributes:[\"idRegistry\"]},JavaScriptResource:{attributes:[\"apiFramework\",\"browserOptional\"]},ExecutableResource:{attributes:[\"apiFramework\",\"type\"]},Tracking:{attributes:[\"event\"]},Creatives:{subElements:[\"Creative\"]},Creative:{subElements:[\"UniversalAdId\"]},Linear:{subElements:[\"MediaFiles\",\"Duration\"]},MediaFiles:{subElements:[\"MediaFile\"]},MediaFile:{attributes:[\"delivery\",\"type\",\"width\",\"height\"]},Mezzanine:{attributes:[\"delivery\",\"type\",\"width\",\"height\"]},NonLinear:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"],attributes:[\"width\",\"height\"]},Companion:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"],attributes:[\"width\",\"height\"]},StaticResource:{attributes:[\"creativeType\"]},Icons:{subElements:[\"Icon\"]},Icon:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"]}};function y(e,t){if(!k[e.nodeName]||!k[e.nodeName].attributes)return;const r=k[e.nodeName].attributes.filter((t=>!e.getAttribute(t)));r.length>0&&N({name:e.nodeName,parentName:e.parentNode.nodeName,attributes:r},t)}function E(e,t,r){const i=k[e.nodeName],a=!r&&\"Wrapper\"!==e.nodeName;if(!i||a)return;if(i.subElements){const r=i.subElements.filter((t=>!m.childByName(e,t)));r.length>0&&N({name:e.nodeName,parentName:e.parentNode.nodeName,subElements:r},t)}if(!r||!i.oneOfinLineResources)return;i.oneOfinLineResources.some((t=>m.childByName(e,t)))||N({name:e.nodeName,parentName:e.parentNode.nodeName,oneOfResources:i.oneOfinLineResources},t)}function b(e){return e.children&&0!==e.children.length}function N(e,t){let{name:r,parentName:i,attributes:a,subElements:s,oneOfResources:n}=e,o=\"Element '\".concat(r,\"'\");o+=a?\" missing required attribute(s) '\".concat(a.join(\", \"),\"' \"):s?\" missing required sub element(s) '\".concat(s.join(\", \"),\"' \"):n?\" must provide one of the following '\".concat(n.join(\", \"),\"' \"):\" is empty\",t(\"VAST-warning\",{message:o,parentElement:i,specVersion:4.1})}const w={verifyRequiredValues:function e(t,r,i){if(t&&t.nodeName)if(\"InLine\"===t.nodeName&&(i=!0),y(t,r),b(t)){E(t,r,i);for(let a=0;a<t.children.length;a++)e(t.children[a],r,i)}else 0===m.parseNodeText(t).length&&N({name:t.nodeName,parentName:t.parentNode.nodeName},r)},hasSubElements:b,emitMissingValueWarning:N,verifyRequiredAttributes:y,verifyRequiredSubElements:E};function L(e,t){let{allowMultipleAds:r,followAdditionalWrappers:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=Array.from(e.childNodes).filter((e=>{const t=e.nodeName.toLowerCase();return\"inline\"===t||!1!==i&&\"wrapper\"===t}));for(const i of a){if(m.copyNodeAttribute(\"id\",e,i),m.copyNodeAttribute(\"sequence\",e,i),m.copyNodeAttribute(\"adType\",e,i),\"Wrapper\"===i.nodeName)return{ad:I(i,t),type:\"WRAPPER\"};if(\"InLine\"===i.nodeName)return{ad:C(i,t,{allowMultipleAds:r}),type:\"INLINE\"};const a=i.nodeName.toLowerCase();t(\"VAST-warning\",{message:\"<\".concat(i.nodeName,\"inline\"===a?\"> must be written <InLine>\":\"> must be written <Wrapper>\"),wrongNode:i})}}function C(e,t){let{allowMultipleAds:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return!1===r&&e.getAttribute(\"sequence\")?null:U(e,t)}function U(e,t){let r=[];t&&w.verifyRequiredValues(e,t);const i=Array.from(e.childNodes),a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,sequence:e.sequence||null,adType:e.adType||null,adServingId:null,categories:[],expires:null,viewableImpression:[],system:null,title:null,description:null,advertiser:null,pricing:null,survey:null,errorURLTemplates:[],impressionURLTemplates:[],creatives:[],extensions:[],adVerifications:[],blockedAdCategories:[],followAdditionalWrappers:!0,allowMultipleAds:!1,fallbackOnNoAd:null}}(m.parseAttributes(e));return i.forEach((e=>{switch(e.nodeName){case\"Error\":a.errorURLTemplates.push(m.parseNodeText(e));break;case\"Impression\":a.impressionURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)});break;case\"Creatives\":a.creatives=function(e){const t=[];return e.forEach((e=>{const r={id:e.getAttribute(\"id\")||null,adId:R(e),sequence:e.getAttribute(\"sequence\")||null,apiFramework:e.getAttribute(\"apiFramework\")||null},i=[];let a;m.childrenByName(e,\"UniversalAdId\").forEach((e=>{const t={idRegistry:e.getAttribute(\"idRegistry\")||\"unknown\",value:m.parseNodeText(e)};i.push(t)}));const s=m.childByName(e,\"CreativeExtensions\");s&&(a=T(m.childrenByName(s,\"CreativeExtension\")));for(const s in e.childNodes){const n=e.childNodes[s];let o;switch(n.nodeName){case\"Linear\":o=v(n,r);break;case\"NonLinearAds\":o=f(n,r);break;case\"CompanionAds\":o=g(n,r)}o&&(i&&(o.universalAdIds=i),a&&(o.creativeExtensions=a),t.push(o))}})),t}(m.childrenByName(e,\"Creative\"));break;case\"Extensions\":{const t=m.childrenByName(e,\"Extension\");a.extensions=T(t),a.adVerifications.length||(r=function(e){let t=null,r=[];e.some((e=>t=m.childByName(e,\"AdVerifications\"))),t&&(r=x(m.childrenByName(t,\"Verification\")));return r}(t));break}case\"AdVerifications\":a.adVerifications=x(m.childrenByName(e,\"Verification\"));break;case\"AdSystem\":a.system={value:m.parseNodeText(e),version:e.getAttribute(\"version\")||null};break;case\"AdTitle\":a.title=m.parseNodeText(e);break;case\"AdServingId\":a.adServingId=m.parseNodeText(e);break;case\"Category\":a.categories.push({authority:e.getAttribute(\"authority\")||null,value:m.parseNodeText(e)});break;case\"Expires\":a.expires=parseInt(m.parseNodeText(e),10);break;case\"ViewableImpression\":a.viewableImpression.push(function(e){const t=(e,t)=>{const r=m.parseNodeText(t);return r&&e.push(r),e};return{id:e.getAttribute(\"id\")||null,viewable:m.childrenByName(e,\"Viewable\").reduce(t,[]),notViewable:m.childrenByName(e,\"NotViewable\").reduce(t,[]),viewUndetermined:m.childrenByName(e,\"ViewUndetermined\").reduce(t,[])}}(e));break;case\"Description\":a.description=m.parseNodeText(e);break;case\"Advertiser\":a.advertiser={id:e.getAttribute(\"id\")||null,value:m.parseNodeText(e)};break;case\"Pricing\":a.pricing={value:m.parseNodeText(e),model:e.getAttribute(\"model\")||null,currency:e.getAttribute(\"currency\")||null};break;case\"Survey\":a.survey={value:m.parseNodeText(e),type:e.getAttribute(\"type\")||null};break;case\"BlockedAdCategories\":a.blockedAdCategories.push({authority:e.getAttribute(\"authority\")||null,value:m.parseNodeText(e)})}})),r.length&&(a.adVerifications=a.adVerifications.concat(r)),a}function I(e,t){const r=U(e,t),i=e.getAttribute(\"followAdditionalWrappers\"),a=e.getAttribute(\"allowMultipleAds\"),s=e.getAttribute(\"fallbackOnNoAd\");r.followAdditionalWrappers=!i||m.parseBoolean(i),r.allowMultipleAds=!!a&&m.parseBoolean(a),r.fallbackOnNoAd=s?m.parseBoolean(s):null;let n=m.childByName(e,\"VASTAdTagURI\");if(n?r.nextWrapperURL=m.parseNodeText(n):(n=m.childByName(e,\"VASTAdTagURL\"),n&&(r.nextWrapperURL=m.parseNodeText(m.childByName(n,\"URL\")))),r.creatives.forEach((e=>{if([\"linear\",\"nonlinear\"].includes(e.type)){if(e.trackingEvents){r.trackingEvents||(r.trackingEvents={}),r.trackingEvents[e.type]||(r.trackingEvents[e.type]={});for(const t in e.trackingEvents){const i=e.trackingEvents[t];Array.isArray(r.trackingEvents[e.type][t])||(r.trackingEvents[e.type][t]=[]),i.forEach((i=>{r.trackingEvents[e.type][t].push(i)}))}}e.videoClickTrackingURLTemplates&&(Array.isArray(r.videoClickTrackingURLTemplates)||(r.videoClickTrackingURLTemplates=[]),e.videoClickTrackingURLTemplates.forEach((e=>{r.videoClickTrackingURLTemplates.push(e)}))),e.videoClickThroughURLTemplate&&(r.videoClickThroughURLTemplate=e.videoClickThroughURLTemplate),e.videoCustomClickURLTemplates&&(Array.isArray(r.videoCustomClickURLTemplates)||(r.videoCustomClickURLTemplates=[]),e.videoCustomClickURLTemplates.forEach((e=>{r.videoCustomClickURLTemplates.push(e)})))}})),r.nextWrapperURL)return r}function x(e){const t=[];return e.forEach((e=>{const r={resource:null,vendor:null,browserOptional:!1,apiFramework:null,type:null,parameters:null,trackingEvents:{}},i=Array.from(e.childNodes);m.assignAttributes(e.attributes,r),i.forEach((e=>{let{nodeName:t,textContent:i,attributes:a}=e;switch(t){case\"JavaScriptResource\":case\"ExecutableResource\":r.resource=i.trim(),m.assignAttributes(a,r);break;case\"VerificationParameters\":r.parameters=i.trim()}}));const a=m.childByName(e,\"TrackingEvents\");a&&m.childrenByName(a,\"Tracking\").forEach((e=>{const t=e.getAttribute(\"event\"),i=m.parseNodeText(e);t&&i&&(Array.isArray(r.trackingEvents[t])||(r.trackingEvents[t]=[]),r.trackingEvents[t].push(i))})),t.push(r)})),t}class S{constructor(){this._handlers=[]}on(e,t){if(\"function\"!=typeof t)throw new TypeError(\"The handler argument must be of type Function. Received type \".concat(typeof t));if(!e)throw new TypeError(\"The event argument must be of type String. Received type \".concat(typeof e));return this._handlers.push({event:e,handler:t}),this}once(e,t){return this.on(e,function(e,t,r){const i={fired:!1,wrapFn:void 0};function a(){i.fired||(e.off(t,i.wrapFn),i.fired=!0,r.bind(e)(...arguments))}return i.wrapFn=a,a}(this,e,t))}off(e,t){return this._handlers=this._handlers.filter((r=>r.event!==e||r.handler!==t)),this}emit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];let a=!1;return this._handlers.forEach((t=>{\"*\"===t.event&&(a=!0,t.handler(e,...r)),t.event===e&&(a=!0,t.handler(...r))})),a}removeAllListeners(e){return e?(this._handlers=this._handlers.filter((t=>t.event!==e)),this):(this._handlers=[],this)}listenerCount(e){return this._handlers.filter((t=>t.event===e)).length}listeners(e){return this._handlers.reduce(((t,r)=>(r.event===e&&t.push(r.handler),t)),[])}eventNames(){return this._handlers.map((e=>e.event))}}let D=0,V=0;const O=(e,t)=>{if(!e||!t||e<=0||t<=0)return;V=(V*D+8*e/t)/++D},F={ERRORCODE:900,extensions:[]},P=\"VAST response version not supported\";class B extends S{constructor(){let{fetcher:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),this.maxWrapperDepth=null,this.rootErrorURLTemplates=[],this.errorURLTemplates=[],this.remainingAds=[],this.parsingOptions={},this.fetcher=e||null,this.keepFailedAdPod=!1}trackVastError(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];this.emit(\"VAST-error\",Object.assign({},F,t,...i)),u.track(e,t)}getErrorURLTemplates(){return this.rootErrorURLTemplates.concat(this.errorURLTemplates)}getEstimatedBitrate(){return V}initParsingStatus(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.maxWrapperDepth=e.wrapperLimit||10,this.parsingOptions={allowMultipleAds:e.allowMultipleAds},this.keepFailedAdPod=e.keepFailedAdPod||!1,this.rootURL=\"\",this.resetParsingStatus(),O(e.byteLength,e.requestDuration)}resetParsingStatus(){this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.vastVersion=null}getRemainingAds(e){if(0===this.remainingAds.length)return Promise.reject(new Error(\"No more ads are available for the given VAST\"));const t=e?this.remainingAds:[this.remainingAds.shift()];return this.errorURLTemplates=[],this.resolveAds(t,{wrapperDepth:0,url:this.rootURL}).then((e=>this.buildVASTResponse(e)))}parseVAST(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.initParsingStatus(t),t.isRootVAST=!0,this.parse(e,t).then((e=>this.buildVASTResponse(e)))}buildVASTResponse(e){const t=function(e){let{ads:t,errorURLTemplates:r,version:i}=e;return{ads:t||[],errorURLTemplates:r||[],version:i||null}}({ads:e,errorURLTemplates:this.getErrorURLTemplates(),version:this.vastVersion});return this.completeWrapperResolving(t),t}parseVastXml(e,t){let{isRootVAST:r=!1,url:i=null,wrapperDepth:a=0,allowMultipleAds:s,followAdditionalWrappers:n}=t;if(!e||!e.documentElement||\"VAST\"!==e.documentElement.nodeName){var o;this.emit(\"VAST-ad-parsed\",{type:\"ERROR\",url:i,wrapperDepth:a});const t=\"VideoAdServingTemplate\"===(null==e||null===(o=e.documentElement)||void 0===o?void 0:o.nodeName);throw new Error(t?P:\"Invalid VAST XMLDocument\")}const l=[],c=e.documentElement.childNodes,d=e.documentElement.getAttribute(\"version\");r&&d&&(this.vastVersion=d);for(const e in c){const t=c[e];if(\"Error\"===t.nodeName){const e=m.parseNodeText(t);r?this.rootErrorURLTemplates.push(e):this.errorURLTemplates.push(e)}else if(\"Ad\"===t.nodeName){if(this.vastVersion&&parseFloat(this.vastVersion)<3)s=!0;else if(!1===s&&l.length>1)break;const e=L(t,this.emit.bind(this),{allowMultipleAds:s,followAdditionalWrappers:n});e.ad?(l.push(e.ad),this.emit(\"VAST-ad-parsed\",{type:e.type,url:i,wrapperDepth:a,adIndex:l.length-1,vastVersion:d})):this.trackVastError(this.getErrorURLTemplates(),{ERRORCODE:101})}}return l}parse(e){let{url:t=null,resolveAll:r=!0,wrapperSequence:i=null,previousUrl:a=null,wrapperDepth:s=0,isRootVAST:n=!1,followAdditionalWrappers:o,allowMultipleAds:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=[];this.vastVersion&&parseFloat(this.vastVersion)<3&&n&&(l=!0);try{c=this.parseVastXml(e,{isRootVAST:n,url:t,wrapperDepth:s,allowMultipleAds:l,followAdditionalWrappers:o})}catch(e){return Promise.reject(e)}if(1===c.length&&null!=i&&(c[0].sequence=i),!1===r){const e=m.getSortedAdPods(c),t=m.getStandAloneAds(c);e.length?c=e:t.length&&(c=[t.shift()]),this.remainingAds=t}return this.resolveAds(c,{wrapperDepth:s,previousUrl:a,url:t})}resolveAds(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{wrapperDepth:t,previousUrl:r,url:i}=arguments.length>1?arguments[1]:void 0;const a=[];return r=i,e.forEach((e=>{const i=this.resolveWrappers(e,t,r);a.push(i)})),Promise.all(a).then((e=>u.flatten(e)))}resolveWrappers(e,t,r){const i={...e};return new Promise((e=>{var a;if(t++,!i.nextWrapperURL)return delete i.nextWrapperURL,e(i);if(!this.fetcher)return i.VASTAdTagURI=i.nextWrapperURL,delete i.nextWrapperURL,e(i);if(t>=this.maxWrapperDepth)return i.errorCode=302,delete i.nextWrapperURL,e(i);i.nextWrapperURL=m.resolveVastAdTagURI(i.nextWrapperURL,r);const s=null!==(a=this.parsingOptions.allowMultipleAds)&&void 0!==a?a:i.allowMultipleAds,n=i.sequence;this.fetcher.fetchVAST({url:i.nextWrapperURL,emitter:this.emit.bind(this),maxWrapperDepth:this.maxWrapperDepth,wrapperDepth:t,previousUrl:r,wrapperAd:i}).then((a=>this.parse(a,{url:i.nextWrapperURL,previousUrl:r,wrapperSequence:n,wrapperDepth:t,followAdditionalWrappers:i.followAdditionalWrappers,allowMultipleAds:s}).then((t=>{if(delete i.nextWrapperURL,0===t.length)return i.creatives=[],e(i);t.forEach((e=>{e&&m.mergeWrapperAdData(e,i)})),e(t)})))).catch((t=>{i.errorCode=t.message===P?102:301,i.errorMessage=t.message,e(i)}))}))}completeWrapperResolving(e){if(0===e.ads.length)this.trackVastError(e.errorURLTemplates,{ERRORCODE:303});else for(let t=e.ads.length-1;t>=0;t--){const r=e.ads[t],i=!r.creatives.some((e=>{var t,r;return(null===(t=e.mediaFiles)||void 0===t?void 0:t.length)>0||(null===(r=e.variations)||void 0===r?void 0:r.length)>0}));!r.errorCode&&!i||r.VASTAdTagURI||(this.trackVastError(r.errorURLTemplates.concat(e.errorURLTemplates),{ERRORCODE:r.errorCode||303},{ERRORMESSAGE:r.errorMessage||\"\"},{extensions:r.extensions},{system:r.system}),this.keepFailedAdPod&&r.sequence?r.hasFailed=!0:e.ads.splice(t,1))}}}let M=null;const W={data:{},length:0,getItem(e){return this.data[e]},setItem(e,t){this.data[e]=t,this.length=Object.keys(this.data).length},removeItem(e){delete this.data[e],this.length=Object.keys(this.data).length},clear(){this.data={},this.length=0}};class j{constructor(){this.storage=this.initStorage()}initStorage(){if(M)return M;try{M=\"undefined\"!=typeof window&&null!==window?window.localStorage||window.sessionStorage:null}catch(e){M=null}return M&&!this.isStorageDisabled(M)||(M=W,M.clear()),M}isStorageDisabled(e){const t=\"__VASTStorage__\";try{if(e.setItem(t,t),e.getItem(t)!==t)return e.removeItem(t),!0}catch(e){return!0}return e.removeItem(t),!1}getItem(e){return this.storage.getItem(e)}setItem(e,t){return this.storage.setItem(e,t)}removeItem(e){return this.storage.removeItem(e)}clear(){return this.storage.clear()}}const q=12e4;const K={get:async function(e,t){try{const r=new AbortController,i=setTimeout((()=>{throw r.abort(),new Error(\"URLHandler: Request timed out after \".concat(t.timeout||q,\" ms (408)\"))}),t.timeout||q),a=await fetch(e,{...t,signal:r.signal,credentials:t.withCredentials?\"include\":\"omit\"}).finally((()=>{clearTimeout(i)})),s=function(e){return u.isBrowserEnvironment()&&\"https:\"===window.location.protocol&&e.url.includes(\"http://\")?\"URLHandler: Cannot go from HTTPS to HTTP.\":200===e.status&&e.ok?null:\"URLHandler: \".concat(e.statusText,\" (\").concat(e.status,\")\")}(a);return s?{error:new Error(s),statusCode:a.status}:async function(e){const t=await e.text();let r;r=u.isBrowserEnvironment()?new DOMParser:new((await import(\"@xmldom/xmldom\")).DOMParser);return{xml:r.parseFromString(t,\"text/xml\"),details:{byteLength:t.length,statusCode:e.status,rawXml:t}}}(a)}catch(e){return{error:e,statusCode:\"AbortError\"===e.name?408:null}}}};class H{constructor(){this.URLTemplateFilters=[]}setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.urlHandler=e.urlHandler||e.urlhandler||K,this.fetchingOptions={...e.fetchOptions,timeout:e.timeout||q,withCredentials:Boolean(e.withCredentials)}}addURLTemplateFilter(e){\"function\"==typeof e&&this.URLTemplateFilters.push(e)}removeLastURLTemplateFilter(){this.URLTemplateFilters.pop()}countURLTemplateFilters(){return this.URLTemplateFilters.length}clearURLTemplateFilters(){this.URLTemplateFilters=[]}async fetchVAST(e){var t;let{url:r,maxWrapperDepth:i,emitter:a,wrapperDepth:s=0,previousUrl:n=null,wrapperAd:o=null}=e;const l=Date.now();this.URLTemplateFilters.forEach((e=>{r=e(r)})),a(\"VAST-resolving\",{url:r,previousUrl:n,wrapperDepth:s,maxWrapperDepth:i,timeout:this.fetchingOptions.timeout,wrapperAd:o});const c=await this.urlHandler.get(r,this.fetchingOptions),d=Math.round(Date.now()-l);if(a(\"VAST-resolved\",{url:r,previousUrl:n,wrapperDepth:s,error:(null==c?void 0:c.error)||null,duration:d,statusCode:(null==c?void 0:c.statusCode)||null,...null==c?void 0:c.details}),O(null==c||null===(t=c.details)||void 0===t?void 0:t.byteLength,d),c.error)throw new Error(c.error);return c.xml}}class _{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new j;this.cappingFreeLunch=e,this.cappingMinimumTimeInterval=t,this.fetcher=new H,this.vastParser=new B({fetcher:this.fetcher}),this.storage=r,void 0===this.lastSuccessfulAd&&(this.lastSuccessfulAd=0),void 0===this.totalCalls&&(this.totalCalls=0),void 0===this.totalCallsTimeout&&(this.totalCallsTimeout=0)}addURLTemplateFilter(e){this.fetcher.addURLTemplateFilter(e)}removeLastURLTemplateFilter(){this.fetcher.removeLastURLTemplateFilter()}countURLTemplateFilters(){return this.fetcher.countURLTemplateFilters()}clearURLTemplateFilters(){this.fetcher.clearURLTemplateFilters()}getParser(){return this.vastParser}get lastSuccessfulAd(){return this.storage.getItem(\"vast-client-last-successful-ad\")}set lastSuccessfulAd(e){this.storage.setItem(\"vast-client-last-successful-ad\",e)}get totalCalls(){return this.storage.getItem(\"vast-client-total-calls\")}set totalCalls(e){this.storage.setItem(\"vast-client-total-calls\",e)}get totalCallsTimeout(){return this.storage.getItem(\"vast-client-total-calls-timeout\")}set totalCallsTimeout(e){this.storage.setItem(\"vast-client-total-calls-timeout\",e)}hasRemainingAds(){return this.vastParser.remainingAds.length>0}getNextAds(e){return this.vastParser.getRemainingAds(e)}parseVAST(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.fetcher.setOptions(t),this.vastParser.parseVAST(e,t)}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=Date.now();return t.hasOwnProperty(\"resolveAll\")||(t.resolveAll=!1),this.totalCallsTimeout<r?(this.totalCalls=1,this.totalCallsTimeout=r+36e5):this.totalCalls++,new Promise(((i,a)=>{if(this.cappingFreeLunch>=this.totalCalls)return a(new Error(\"VAST call canceled – FreeLunch capping not reached yet \".concat(this.totalCalls,\"/\").concat(this.cappingFreeLunch)));const s=r-this.lastSuccessfulAd;if(s<0)this.lastSuccessfulAd=0;else if(s<this.cappingMinimumTimeInterval)return a(new Error(\"VAST call canceled – (\".concat(this.cappingMinimumTimeInterval,\")ms minimum interval reached\")));this.vastParser.initParsingStatus(t),this.fetcher.setOptions(t),this.vastParser.rootURL=e,this.fetcher.fetchVAST({url:e,emitter:this.vastParser.emit.bind(this.vastParser),maxWrapperDepth:this.vastParser.maxWrapperDepth}).then((r=>(t.previousUrl=e,t.isRootVAST=!0,t.url=e,this.vastParser.parse(r,t).then((e=>{const t=this.vastParser.buildVASTResponse(e);i(t)}))))).catch((e=>a(e)))}))}}class z extends S{constructor(e,t,r){var i;let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];super(),this.ad=t,this.creative=r,this.variation=a,this.muted=s,this.impressed=!1,this.skippable=!1,this.trackingEvents={},this.trackedProgressEvents=[],this.lastPercentage=0,this._alreadyTriggeredQuartiles={},this.emitAlwaysEvents=[\"creativeView\",\"start\",\"firstQuartile\",\"midpoint\",\"thirdQuartile\",\"complete\",\"resume\",\"pause\",\"rewind\",\"skip\",\"closeLinear\",\"close\"];for(const e in this.creative.trackingEvents){const t=this.creative.trackingEvents[e];this.trackingEvents[e]=t.slice(0)}this.viewableImpressionTrackers=(null===(i=this.ad.viewableImpression)||void 0===i?void 0:i.reduce(((e,t)=>(e.notViewable.push(...t.notViewable),e.viewUndetermined.push(...t.viewUndetermined),e.viewable.push(...t.viewable),e)),{notViewable:[],viewUndetermined:[],viewable:[]}))||{},Object.entries(this.viewableImpressionTrackers).forEach((e=>{let[t,r]=e;r.length&&(this.trackingEvents[t]=r)})),!function(e){return\"linear\"===e.type}(this.creative)?this._initVariationTracking():this._initLinearTracking(),e&&this.on(\"start\",(()=>{e.lastSuccessfulAd=Date.now()}))}_initLinearTracking(){this.linear=!0,this.skipDelay=this.creative.skipDelay,this.setDuration(this.creative.duration),this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates}_initVariationTracking(){if(this.linear=!1,this.skipDelay=-1,this.variation){for(const e in this.variation.trackingEvents){const t=this.variation.trackingEvents[e];this.trackingEvents[e]?this.trackingEvents[e]=this.trackingEvents[e].concat(t.slice(0)):this.trackingEvents[e]=t.slice(0)}\"nonLinearAd\"===this.variation.adType?(this.clickThroughURLTemplate=this.variation.nonlinearClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.nonlinearClickTrackingURLTemplates,this.setDuration(this.variation.minSuggestedDuration)):function(e){return\"companionAd\"===e.adType}(this.variation)&&(this.clickThroughURLTemplate=this.variation.companionClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.companionClickTrackingURLTemplates)}}setDuration(e){u.isValidTimeValue(e)?(this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}):this.emit(\"TRACKER-error\",{message:\"the duration provided is not valid. duration: \".concat(e)})}setProgress(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!u.isValidTimeValue(e)||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given setProgress parameter has the wrong type. progress: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});const i=this.skipDelay||-1;if(-1===i||this.skippable||(i>e?this.emit(\"skip-countdown\",i-e):(this.skippable=!0,this.emit(\"skip-countdown\",0))),this.assetDuration>0){const i=Math.round(e/this.assetDuration*100),a=[];if(e>0){a.push(\"start\");for(let e=this.lastPercentage;e<i;e++)a.push(\"progress-\".concat(e+1,\"%\"));a.push(\"progress-\".concat(e));for(const t in this.quartiles)this.isQuartileReached(t,this.quartiles[t],e)&&(a.push(t),this._alreadyTriggeredQuartiles[t]=!0);this.lastPercentage=i}a.forEach((e=>{this.track(e,{macros:t,once:r})})),e<this.progress&&(this.track(\"rewind\",{macros:t}),this.trackedProgressEvents&&this.trackedProgressEvents.splice(0))}this.progress=e}isQuartileReached(e,t,r){let i=!1;return t<=r&&!this._alreadyTriggeredQuartiles[e]&&(i=!0),i}setMuted(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.muted!==e&&this.track(e?\"mute\":\"unmute\",{macros:t}),this.muted=e):this.emit(\"TRACKER-error\",{message:\"One given setMuted parameter has the wrong type. muted: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setPaused(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.paused!==e&&this.track(e?\"pause\":\"resume\",{macros:t}),this.paused=e):this.emit(\"TRACKER-error\",{message:\"One given setPaused parameter has the wrong type. paused: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setFullscreen(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.fullscreen!==e&&this.track(e?\"fullscreen\":\"exitFullscreen\",{macros:t}),this.fullscreen=e):this.emit(\"TRACKER-error\",{message:\"One given setFullScreen parameter has the wrong type. fullscreen: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setExpand(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.expanded!==e&&(this.track(e?\"expand\":\"collapse\",{macros:t}),this.track(e?\"playerExpand\":\"playerCollapse\",{macros:t})),this.expanded=e):this.emit(\"TRACKER-error\",{message:\"One given setExpand parameter has the wrong type. expanded: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setSkipDelay(e){u.isValidTimeValue(e)?this.skipDelay=e:this.emit(\"TRACKER-error\",{message:\"setSkipDelay parameter does not have a valid value. duration: \".concat(e)})}trackImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.impressed||(this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates,e),this.track(\"creativeView\",{macros:e})):this.emit(\"TRACKER-error\",{message:\"trackImpression parameter has the wrong type. macros: \".concat(e)})}trackViewableImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"viewable\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackViewableImpression given macros has the wrong type. macros: \".concat(e)})}trackNotViewableImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"notViewable\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackNotViewableImpression given macros has the wrong type. macros: \".concat(e)})}trackUndeterminedImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"viewUndetermined\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackUndeterminedImpression given macros has the wrong type. macros: \".concat(e)})}error(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e&&\"boolean\"==typeof t?this.trackURLs(this.ad.errorURLTemplates,e,{isCustomCode:t}):this.emit(\"TRACKER-error\",{message:\"One given error parameter has the wrong type. macros: \".concat(u.formatMacrosValues(e),\", isCustomCode: \").concat(t)})}errorWithCode(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"string\"==typeof e&&\"boolean\"==typeof t?(this.error({ERRORCODE:e},t),console.log(\"The method errorWithCode is deprecated, please use vast tracker error method instead\")):this.emit(\"TRACKER-error\",{message:\"One given errorWithCode parameter has the wrong type. errorCode: \".concat(e,\", isCustomCode: \").concat(t)})}complete(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"complete\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"complete given macros has the wrong type. macros: \".concat(e)})}notUsed(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?(this.track(\"notUsed\",{macros:e}),this.trackingEvents=[]):this.emit(\"TRACKER-error\",{message:\"notUsed given macros has the wrong type. macros: \".concat(e)})}otherAdInteraction(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"otherAdInteraction\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"otherAdInteraction given macros has the wrong type. macros: \".concat(e)})}acceptInvitation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"acceptInvitation\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"acceptInvitation given macros has the wrong type. macros: \".concat(e)})}adExpand(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"adExpand\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"adExpand given macros has the wrong type. macros: \".concat(e)})}adCollapse(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"adCollapse\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"adCollapse given macros has the wrong type. macros: \".concat(e)})}minimize(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"minimize\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"minimize given macros has the wrong type. macros: \".concat(e)})}verificationNotExecuted(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"!=typeof e||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given verificationNotExecuted parameter has to wrong type. vendor: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});if(!this.ad||!this.ad.adVerifications||!this.ad.adVerifications.length)throw new Error(\"No adVerifications provided\");if(!e)throw new Error(\"No vendor provided, unable to find associated verificationNotExecuted\");const r=this.ad.adVerifications.find((t=>t.vendor===e));if(!r)throw new Error(\"No associated verification element found for vendor: \".concat(e));const i=r.trackingEvents;if(i&&i.verificationNotExecuted){const e=i.verificationNotExecuted;this.trackURLs(e,t),this.emit(\"verificationNotExecuted\",{trackingURLTemplates:e})}}overlayViewDuration(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"string\"==typeof e&&\"object\"==typeof t?(t.ADPLAYHEAD=e,this.track(\"overlayViewDuration\",{macros:t})):this.emit(\"TRACKER-error\",{message:\"One given overlayViewDuration parameters has the wrong type. formattedDuration: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}close(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(this.linear?\"closeLinear\":\"close\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"close given macros has the wrong type. macros: \".concat(e)})}skip(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"skip\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"skip given macros has the wrong type. macros: \".concat(e)})}load(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"loaded\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"load given macros has the wrong type. macros: \".concat(e)})}click(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!==e&&\"string\"!=typeof e||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given click parameter has the wrong type. fallbackClickThroughURL: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});this.clickTrackingURLTemplates&&this.clickTrackingURLTemplates.length&&this.trackURLs(this.clickTrackingURLTemplates,t);const r=this.clickThroughURLTemplate||e,i={...t};if(r){this.progress&&(i.ADPLAYHEAD=this.progressFormatted());const e=u.resolveURLTemplates([r],i)[0];this.emit(\"clickthrough\",e)}}trackProgressEvents(e,t,r){const i=parseFloat(e.split(\"-\")[1]);Object.entries(this.trackingEvents).filter((e=>{let[t]=e;return t.startsWith(\"progress-\")})).map((e=>{let[t,r]=e;return{name:t,time:parseFloat(t.split(\"-\")[1]),urls:r}})).filter((e=>{let{time:t}=e;return t<=i&&t>this.progress})).forEach((e=>{let{name:i,urls:a}=e;!r&&this.trackedProgressEvents.includes(i)||(this.emit(i,{trackingURLTemplates:a}),this.trackURLs(a,t),r?delete this.trackingEvents[i]:this.trackedProgressEvents.push(i))}))}track(e){let{macros:t={},once:r=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"track given macros has the wrong type. macros: \".concat(t)});\"closeLinear\"===e&&!this.trackingEvents[e]&&this.trackingEvents.close&&(e=\"close\"),e.startsWith(\"progress-\")&&!e.endsWith(\"%\")&&this.trackProgressEvents(e,t,r);const i=this.trackingEvents[e],a=this.emitAlwaysEvents.indexOf(e)>-1;i?(this.emit(e,{trackingURLTemplates:i}),this.trackURLs(i,t)):a&&this.emit(e,null),r&&(delete this.trackingEvents[e],a&&this.emitAlwaysEvents.splice(this.emitAlwaysEvents.indexOf(e),1))}trackURLs(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{validUrls:a,invalidUrls:s}=u.filterUrlTemplates(e);s.length&&this.emit(\"TRACKER-error\",{message:\"Provided urls are malformed. url: \".concat(s)});const n={...r};this.linear&&(this.creative&&this.creative.mediaFiles&&this.creative.mediaFiles[0]&&this.creative.mediaFiles[0].fileURL&&(n.ASSETURI=this.creative.mediaFiles[0].fileURL),this.progress&&(n.ADPLAYHEAD=this.progressFormatted())),null!==(t=this.creative)&&void 0!==t&&null!==(t=t.universalAdIds)&&void 0!==t&&t.length&&(n.UNIVERSALADID=this.creative.universalAdIds.map((e=>e.idRegistry.concat(\" \",e.value))).join(\",\")),this.ad&&(this.ad.sequence&&(n.PODSEQUENCE=this.ad.sequence),this.ad.adType&&(n.ADTYPE=this.ad.adType),this.ad.adServingId&&(n.ADSERVINGID=this.ad.adServingId),this.ad.categories&&this.ad.categories.length&&(n.ADCATEGORIES=this.ad.categories.map((e=>e.value)).join(\",\")),this.ad.blockedAdCategories&&this.ad.blockedAdCategories.length&&(n.BLOCKEDADCATEGORIES=this.ad.blockedAdCategories.map((e=>e.value)).join(\",\"))),u.track(a,n,i)}convertToTimecode(e){if(!u.isValidTimeValue(e))return\"\";const t=1e3*e,r=Math.floor(t/36e5),i=Math.floor(t/6e4%60),a=Math.floor(t/1e3%60),s=Math.floor(t%1e3);return\"\".concat(u.addLeadingZeros(r,2),\":\").concat(u.addLeadingZeros(i,2),\":\").concat(u.addLeadingZeros(a,2),\".\").concat(u.addLeadingZeros(s,3))}progressFormatted(){return this.convertToTimecode(this.progress)}}export{_ as VASTClient,B as VASTParser,z as VASTTracker,p as parseDuration};\n",null,null,null,null,"function t(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function e(t,e){for(var a=0;a<e.length;a++){var n=e[a];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}var n=a((function e(a){for(var n in t(this,e),this.id=a.getAttribute(\"id\"),this.allowMultipleAds=a.getAttribute(\"allowMultipleAds\"),this.followRedirects=a.getAttribute(\"followRedirects\"),this.vastAdData=null,this.adTagURI=null,this.customData=null,a.childNodes){var i=a.childNodes[n];switch(i.localName){case\"AdTagURI\":this.adTagURI={templateType:i.getAttribute(\"templateType\"),uri:(i.textContent||i.text||\"\").trim()};break;case\"VASTAdData\":for(this.vastAdData=i.firstChild;this.vastAdData&&1!==this.vastAdData.nodeType;)this.vastAdData=this.vastAdData.nextSibling;break;case\"CustomAdData\":this.customData=i}}}));function i(t,e){var a=[];for(var n in t.childNodes){var i=t.childNodes[n];i.nodeName!==e&&e!==\"vmap:\".concat(i.nodeName)&&i.nodeName!==\"vmap:\".concat(e)||a.push(i)}return a}function r(t){var e={attributes:{},children:{},value:{}};e.value=function(t){if(!t||!t.childNodes)return{};var e=t.childNodes,a=[];for(var n in e){var i=e[n];\"#cdata-section\"===i.nodeName&&a.push(i)}if(a&&a.length>0)try{return JSON.parse(a[0].data)}catch(t){}var r=\"\";for(var s in e){var o=e[s];switch(o.nodeName){case\"#text\":r+=o.textContent.trim();break;case\"#cdata-section\":r+=o.data}}return r}(t);var a=t.attributes;if(a)for(var n in a){var i=a[n];i.nodeName&&void 0!==i.nodeValue&&null!==i.nodeValue&&(e.attributes[i.nodeName]=i.nodeValue)}var s=t.childNodes;if(s)for(var o in s){var c=s[o];c.nodeName&&\"#\"!==c.nodeName.substring(0,1)&&(e.children[c.nodeName]=r(c))}return e}var s=function(){function e(a){for(var s in t(this,e),this.timeOffset=a.getAttribute(\"timeOffset\"),this.breakType=a.getAttribute(\"breakType\"),this.breakId=a.getAttribute(\"breakId\"),this.repeatAfter=a.getAttribute(\"repeatAfter\"),this.adSource=null,this.trackingEvents=[],this.extensions=[],a.childNodes){var o=a.childNodes[s];switch(o.localName){case\"AdSource\":this.adSource=new n(o);break;case\"TrackingEvents\":for(var c in o.childNodes){var d=o.childNodes[c];\"Tracking\"===d.localName&&this.trackingEvents.push({event:d.getAttribute(\"event\"),uri:(d.textContent||d.text||\"\").trim()})}break;case\"Extensions\":this.extensions=i(o,\"Extension\").map((function(t){return r(t)}))}}}return a(e,[{key:\"track\",value:function(t,e){for(var a in this.trackingEvents){var n=this.trackingEvents[a];if(n.event===t){var i=n.uri;\"error\"===n.event&&(i=i.replace(\"[ERRORCODE]\",e)),this.tracker(i)}}}},{key:\"tracker\",value:function(t){\"undefined\"!=typeof window&&null!==window&&((new Image).src=t)}}]),e}(),o=a((function e(a){if(t(this,e),!a||!a.documentElement||\"VMAP\"!==a.documentElement.localName)throw new Error(\"Not a VMAP document\");for(var n in this.version=a.documentElement.getAttribute(\"version\"),this.adBreaks=[],this.extensions=[],a.documentElement.childNodes){var o=a.documentElement.childNodes[n];switch(o.localName){case\"AdBreak\":this.adBreaks.push(new s(o));break;case\"Extensions\":this.extensions=i(o,\"Extension\").map((function(t){return r(t)}))}}}));export{o as default};\n",null,null,null,null,null,null,"'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i] || null;\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t\t// Update ownerDocument for each node being inserted\n\t\tvar targetDoc = parent.ownerDocument || parent;\n\t\t_updateOwnerDocument(newFirst, targetDoc);\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Recursively updates the ownerDocument property for a node and all its descendants\n * @param {Node} node\n * @param {Document} newOwnerDocument\n * @private\n */\nfunction _updateOwnerDocument(node, newOwnerDocument) {\n\tif (node.ownerDocument === newOwnerDocument) {\n\t\treturn;\n\t}\n\t\n\tnode.ownerDocument = newOwnerDocument;\n\t\n\t// Update attributes if this is an element\n\tif (node.nodeType === ELEMENT_NODE && node.attributes) {\n\t\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\t\tvar attr = node.attributes.item(i);\n\t\t\tif (attr) {\n\t\t\t\tattr.ownerDocument = newOwnerDocument;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t// Recursively update child nodes\n\tvar child = node.firstChild;\n\twhile (child) {\n\t\t_updateOwnerDocument(child, newOwnerDocument);\n\t\tchild = child.nextSibling;\n\t}\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\t\n\t// Update ownerDocument for the new child and all its descendants\n\tvar targetDoc = parentNode.ownerDocument || parentNode;\n\t_updateOwnerDocument(newChild, targetDoc);\n\t\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\t_updateOwnerDocument(newChild, this);\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\t_updateOwnerDocument(newChild, this);\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\n\t\t// add namespace for current node\n\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',prefixedNodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push(' ', sysid);\n\t\t\t}\n\t\t\tbuf.push('>');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor (var n in node) {\n\t\tif (Object.prototype.hasOwnProperty.call(node, n)) {\n\t\t\tvar v = node[n];\n\t\t\tif (typeof v != \"object\") {\n\t\t\t\tif (v != node2[n]) {\n\t\t\t\t\tnode2[n] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[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]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s</)){\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t if(endIgnoreCaseMach){\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!endMatch){\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t }else{\n\t\t \tparseStack.push(config)\n\t\t }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n"],"names":["e","arguments","length","id","adId","sequence","apiFramework","universalAdIds","creativeExtensions","t","r","a","n","s","ERRORCODE","isCustomCode","test","CACHEBUSTING","d","Math","round","random","TIMESTAMP","Date","toISOString","RANDOM","c","push","i","match","filter","indexOf","reduce","replace","RegExp","concat","Array","isArray","map","hasOwnProperty","url","o","l","Object","getOwnPropertyNames","encodeURIComponent","charCodeAt","toString","padStart","u","track","forEach","window","Image","src","resolveURLTemplates","extractURLsFromTemplates","filterUrlTemplates","validUrls","invalidUrls","containsTemplateObject","isTemplateObjectEqual","encodeURIComponentRFC3986","replaceUrlMacros","isNumeric","isNaN","parseFloat","isFinite","flatten","joinArrayOfUniqueTemplateObjs","isValidTimeValue","Number","addLeadingZeros","isValidUrl","isBrowserEnvironment","formatMacrosValues","JSON","stringify","h","includes","m","childByName","from","childNodes","find","nodeName","childrenByName","resolveVastAdTagURI","startsWith","protocol","location","slice","lastIndexOf","parseBoolean","parseNodeText","textContent","text","trim","copyNodeAttribute","getAttribute","setAttribute","parseAttributes","attributes","nodeValue","parseDuration","parseInt","split","getStandAloneAds","getSortedAdPods","sort","assignAttributes","mergeWrapperAdData","errorURLTemplates","impressionURLTemplates","extensions","viewableImpression","followAdditionalWrappers","allowMultipleAds","fallbackOnNoAd","creatives","type","variations","companionClickTrackingURLTemplates","videoClickTrackingURLTemplates","videoCustomClickURLTemplates","trackingEvents","videoClickThroughURLTemplate","adVerifications","blockedAdCategories","icons","mediaFiles","g","required","adType","width","height","assetWidth","assetHeight","expandedWidth","expandedHeight","adSlotId","pxratio","renderingMode","staticResources","htmlResources","iframeResources","adParameters","altText","companionClickThroughURLTemplate","creativeType","value","xmlEncoded","v","duration","skipDelay","mezzanine","interactiveCreativeFile","closedCaptionFiles","charAt","fileURL","fileSize","deliveryType","mimeType","mediaType","codec","bitrate","minBitrate","maxBitrate","scalable","maintainAspectRatio","variableDuration","language","delivery","program","xPosition","yPosition","offset","staticResource","htmlResource","iframeResource","iconClickThroughURLTemplate","iconClickTrackingURLTemplates","iconViewTrackingURLTemplate","iconClickFallbackImages","hoverText","f","minSuggestedDuration","nonlinearClickThroughURLTemplate","nonlinearClickTrackingURLTemplates","T","A","name","children","keys","R","k","Wrapper","subElements","BlockedAdCategories","InLine","Category","Pricing","Verification","oneOfinLineResources","UniversalAdId","JavaScriptResource","ExecutableResource","Tracking","Creatives","Creative","Linear","MediaFiles","MediaFile","Mezzanine","NonLinear","Companion","StaticResource","Icons","Icon","y","N","parentName","parentNode","E","some","oneOfResources","b","join","message","parentElement","specVersion","w","L","toLowerCase","ad","I","C","wrongNode","U","adServingId","categories","expires","system","title","description","advertiser","pricing","survey","idRegistry","x","version","authority","viewable","notViewable","viewUndetermined","model","currency","nextWrapperURL","resource","vendor","browserOptional","parameters","S","constructor","this","_handlers","on","TypeError","event","handler","once","fired","wrapFn","off","bind","emit","removeAllListeners","listenerCount","listeners","eventNames","D","V","O","F","P","B","fetcher","super","maxWrapperDepth","rootErrorURLTemplates","remainingAds","parsingOptions","keepFailedAdPod","trackVastError","assign","getErrorURLTemplates","getEstimatedBitrate","initParsingStatus","wrapperLimit","rootURL","resetParsingStatus","byteLength","requestDuration","vastVersion","getRemainingAds","Promise","reject","Error","shift","resolveAds","wrapperDepth","then","buildVASTResponse","parseVAST","isRootVAST","parse","ads","completeWrapperResolving","parseVastXml","documentElement","adIndex","resolveAll","wrapperSequence","previousUrl","resolveWrappers","all","VASTAdTagURI","errorCode","fetchVAST","emitter","wrapperAd","catch","errorMessage","ERRORMESSAGE","hasFailed","splice","M","W","data","getItem","setItem","removeItem","clear","j","storage","initStorage","localStorage","sessionStorage","isStorageDisabled","q","K","get","async","AbortController","setTimeout","abort","timeout","fetch","signal","credentials","withCredentials","finally","clearTimeout","status","ok","statusText","error","statusCode","DOMParser","resolve","index$1","xml","parseFromString","details","rawXml","H","URLTemplateFilters","setOptions","urlHandler","urlhandler","fetchingOptions","fetchOptions","Boolean","addURLTemplateFilter","removeLastURLTemplateFilter","pop","countURLTemplateFilters","clearURLTemplateFilters","now","_","cappingFreeLunch","cappingMinimumTimeInterval","vastParser","lastSuccessfulAd","totalCalls","totalCallsTimeout","getParser","hasRemainingAds","getNextAds","z","creative","variation","muted","impressed","skippable","trackedProgressEvents","lastPercentage","_alreadyTriggeredQuartiles","emitAlwaysEvents","viewableImpressionTrackers","entries","_initLinearTracking","_initVariationTracking","linear","setDuration","clickThroughURLTemplate","clickTrackingURLTemplates","assetDuration","quartiles","firstQuartile","midpoint","thirdQuartile","setProgress","isQuartileReached","macros","progress","setMuted","setPaused","paused","setFullscreen","fullscreen","setExpand","expanded","setSkipDelay","trackImpression","trackURLs","trackViewableImpression","trackNotViewableImpression","trackUndeterminedImpression","errorWithCode","console","log","complete","notUsed","otherAdInteraction","acceptInvitation","adExpand","adCollapse","minimize","verificationNotExecuted","trackingURLTemplates","overlayViewDuration","ADPLAYHEAD","close","skip","load","click","progressFormatted","trackProgressEvents","time","urls","endsWith","ASSETURI","UNIVERSALADID","PODSEQUENCE","ADTYPE","ADSERVINGID","ADCATEGORIES","BLOCKEDADCATEGORIES","convertToTimecode","floor","toXmlDocument","String","computeSkipAtSeconds","skipOffset","p","tc","exec","hh","mm","ss","every","parseTimecodeToSeconds","pickBestMediaFile","preferredMediaTypes","normalized","bitRate","raw","candidates","extractSkipOffsetFromCreative","skipdelay","skipoffset","normalize","undefined","obj","extractSimidUrl","rawDoc","interactiveCreativeFiles","InteractiveCreativeFiles","InteractiveCreativeFile","mf","APIFramework","tagName","els","getElementsByTagName","el","extractAdsFromParsed","parsed","direct","vastResponse","adPods","adpods","flattened","pod","Ads","singlePod","adPod","adpod","singleAds","collectPodAds","out","seqRaw","seq","cidx","mediafiles","companions","companionAds","nonLinears","nonLinearAds","mediaFile","creativeIndex","as","MAX_SAFE_INTEGER","bs","collectNonLinearCreatives","nonLinear","NonLinearAds","NonLinears","nl","collectNonLinearFromXml","doc","byLocalName","root","localName","getElementsByTagNameNS","arr","firstChildText","compEls","staticRes","clickThrough","nlEls","iframeRes","htmlRes","iFrameResource","nonLinearClickThrough","buildCaptionsFromVastMediaFileRaw","mediaFileRaw","ccFiles","cc","ClosedCaptionFiles","closedCaptionFile","ClosedCaptionFile","mime_type","lang","extractClosedCaptions","kind","srclang","label","toUpperCase","AdDomManager","overlay","cfg","getAdVideo","getTracker","onSkipCallback","defineProperty","addSessionUnsub","fn","sessionUnsubs","clearSession","clearAdOverlays","resolveContainer","selector","nodeType","found","document","querySelector","HTMLElement","getNonLinearContainer","resolvedNonLinearContainer","nonLinearContainer","nonLinearSelector","getCompanionContainer","resolvedCompanionContainer","companionContainer","companionSelector","resolveMount","media","mountEl","mountSelector","closest","body","ensureOverlayMounted","mount","cs","getComputedStyle","position","style","inset","zIndex","pointerEvents","appendChild","setSafeHTML","html","tpl","createElement","innerHTML","blockedTags","Set","walker","createTreeWalker","content","NodeFilter","SHOW_ELEMENT","toRemove","nextNode","node","currentNode","has","attr","removeAttribute","isJs","isVbscript","isData","isHttp","isSafeDataImage","remove","replaceChildren","cloneNode","safeWindowOpen","rawUrl","URL","href","open","ensureSkipDom","skipWrap","skipBtn","wrap","className","btn","labels","onClick","preventDefault","stopPropagation","addEventListener","EVENT_OPTIONS","removeEventListener","hideSkipUi","display","skipOffsetRaw","skipAtSeconds","setupSkipUIForPodItem","item","update","dur","skipAt","cur","currentTime","remaining","max","ceil","requestSkip","reason","adVideo","currentBreakMeta","emitSkip","trackSkip","break","breakId","dispatchEvent","Event","companionWrap","nonLinearWrap","mountCompanions","container","flexDirection","gap","maxWidth","renderCompanion","childElementCount","companion","companionClickThrough","cursor","StaticResources","IFrameResource","iFrameResources","IFrameResources","HTMLResource","HTMLResources","img","uri","ifr","border","div","trackClick","trackClickThrough","nonLinearSuggestedDurationSeconds","minSuggestedDurationSeconds","ensureNonLinearDom","left","right","bottom","justifyContent","renderNonLinear","nonLinearClickThroughURLTemplate","pickFirst","target","mountNonLinear","mountSimidIframe","iframe","CaptionManager","captionsSignature","listCaptionTracks","list","textTracks","captureActiveCaptionTrack","prevActiveCaptionSig","active","mode","restoreActiveTextTrack","sig","tracks","ensureRawCaptions","captions","fileLanguage","fileType","attachAdCaptionTracks","vtt","created","default","adTrackEls","clearAdTracks","removeAdCaptions","getOmidClient","OmidSessionClient","OmidSession","isAvailable","injectVerificationScript","scriptUrl","params","head","verifications","accessMode","omid","partner","Partner","verificationResources","VerificationScriptResource","sdkAccessMode","AccessMode","DOMAIN","LIMITED","context","Context","setVideoElement","setAccessMode","adSession","AdSession","videoEvents","VideoEvents","adEvents","AdEvents","start","impression","destroyed","triggerSessionStart","impressionOccurred","loaded","isSkippable","isAutoPlay","vastProps","VastProperties","volume","pause","resume","skipped","volumeChange","playerStateChange","state","adUserInteraction","interactionType","bufferStart","bufferFinish","destroy","finish","enumerable","configurable","writable","key","prototype","followRedirects","vastAdData","adTagURI","customData","templateType","firstChild","nextSibling","substring","timeOffset","breakType","repeatAfter","adSource","tracker","adBreaks","getVastInputFromBreakFn","isXml","source","input","sourceType","firstSource","sources","AdScheduler","ctx","warn","onVmapError","isXmlString","getSource","getPrimaryVastLikeSource","inferSourceTypeForUrl","exact","getVastInputFromBreak","getBreakId","at","getPrerollBreak","resolvedBreaks","playedBreaks","breaks","hasExplicitPrerolls","primary","getPostrollBreak","getDueMidrollBreaks","core","pendingPercentBreaks","toAdd","pb","atSec","percent","due","breakTolerance","getDueMidrollBreak","rebuild","combined","vastLikeSources","adSourcesMode","vmap","preload","pendingVmapSrc","vmapPending","vmapLoadPromise","loadVmapAndMerge","normalizeVmapAdSource","extractVastTagUri","URI","parseVmapTimeOffset","pendingPercent","existing","vmapSrc","xmlText","xmlDoc","VMAP","vmapBreaks","prevPendingCount","rawAdBreakCount","ns","rawOffset","vastInline","vastTag","XMLSerializer","serializeToString","libBreakCount","parseVmapFallback","err","_prevPendingCount","byTag","adBreakEls","adSrc","uriEls","dataEls","reset","SIMID_PLAYER","SIMID_MEDIA","SIMID_CREATIVE","SimidSession","callbacks","creativeInfo","Map","messageListener","handleMessage","bindMediaEvents","nextMsgId","msgCounter","getTargetOrigin","_targetOrigin","origin","postMsg","payload","outgoingFormat","contentWindow","postMessage","send","args","messageId","sessionId","timestamp","pending","set","delete","sendResolve","resolvedMessageId","sendReject","parseMessageData","incomingId","msgId","onCreateSession","getMediaState","onCreativeReady","resolvedId","resolves","rejectedId","rejects","onSkip","onStop","onPause","onPlay","clickThroughUrl","onClickThrough","trackingEvent","onTrackingEvent","requestFullscreen","resize","offsetWidth","innerWidth","offsetHeight","innerHeight","durationChange","onRequestChangeAdDuration","onFatal","onLog","initSent","initPromise","creativeData","buildCreativeData","environmentData","buildEnvironmentData","started","playerRect","getBoundingClientRect","videoRect","pw","ph","vw","vh","vol","videoDimensions","top","creativeDimensions","fullscreenElement","fullscreenAllowed","variableDurationAllowed","skippableState","siteUrl","playerWidth","playerHeight","videoDuration","videoVolume","clickThruUrl","clickThruUri","currentSrc","ended","init","remainingTime","stop","adDurationChange","fatal","mediaEventMap","domEvent","simidType","mediaListeners","visibilityHandler","hidden","PluginBus","bus","cb","AdsPlugin","config","normalizeSources","hasExplicitPreroll","hasSourceVastOrVmap","allowNativeControls","resumeContent","debug","interceptPlayForPreroll","autoPlayOnReady","setup","events","vastClient","VASTClient","scheduler","captionMgr","dom","globalUnsubs","startingBreak","contentMedia","contentHadControls","leases","release","getOverlayManager","deactivate","overlayId","userPlayIntent","bindBreakScheduler","bindPrerollInterceptors","forcedMuteUntilInteraction","playAds","vastUrl","playBreakFromVast","playAdsFromXml","vastXml","tryMountSimidLayer","simidUrl","_dom","maybeStartDeferredVmap","vmapWasPending","shouldInterceptNow","shouldInterceptPreroll","userInteracted","guard","pre","startBreak","onNativePlayCapture","capture","current","onTime","earliestBreak","earliestAt","vmapOffset","tol","group","abs","startBreakGroup","onEnded","post","opts","waterfallSources","add","isLastWaterfall","suppressResumeOnError","suppressResumeOnSuccess","suppressResume","startedMain","playable","isBumper","meta","requestPayload","resumeAfter","pauseAndAcquireLease","acquire","owner","loadRawDocBestEffort","buildParsedForNonLinearFromXml","getVastXmlText","XMLDocument","emitLoaded","count","nonLinearItems","playNonLinearOnlyBreak","xmlItems","playNonLinearOnlyBreakFromXml","adEl","seqAttr","cEl","linearEl","mediaFilesEl","rawEl","collectPodAdsFromXml","AdVerifications","Vendor","resources","javaScriptResource","javascriptResource","resArr","verificationParameters","tag","verEls","jsEls","jsEl","paramsEl","extractAdVerifications","omidSession","index","VASTTracker","_lastCreative","mountAdVideo","endPromise","waitForAdEnd","clickThruRaw","videoClicks","simidCreativeInfo","simidSession","_data","_code","_reason","_reject","bindAdSurfaceCommands","bindTrackerAndTelemetry","startAdPlayback","announcer","adEnded","advertisement","items","maxDuration","companionCreative","trackCreativeView","dismissNonLinear","it","tick","elapsed","playsInline","contentPreload","forceMutedForPolicy","autoplay","controls","desiredMuted","desiredVolume","defaultMuted","min","adEndPromise","cleanup","onError","onVisibility","visibilityState","play","captionTracks","overlayMgr","activate","priority","canSeek","fullscreenEl","fullscreenVideoEl","updateOverlay","wantsAutoplayPath","syncingVolume","lastMuted","lastPaused","q25","q50","q75","q100","emitDuration","emitQuartile","quartile","onPlaying","trackResume","trackStart","trackPause","pct","trackFirstQuartile","trackMidpoint","trackThirdQuartile","trackComplete","onVolume","trackMute","trackUnmute","ev","defaultPrevented","tryPlay","p2","querySelectorAll","removeChild","shouldResume","res","normalizeVmapAdSourceFn","extractVastTagUriFn","parseVmapTimeOffsetFn","setSafeHTMLFn","getBreakIdFn","global","OpenPlayerPlugins","factory","install","PlayerCtor","getOwnPropertyDescriptor","getPlugin","plugin","installAds","extend","player","extendAds","OpenPlayerJS","getCore","freeze","object","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","conventions","call","predicate","ac","require$$0","notEmptyString","orderedSetReducer","element","toOrderedSet","splitOnASCIIWhitespace","copy","dest","_extends","Class","Super","pt","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","DOMException","code","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","namespaceURI","_nsMap","prefix","_onAddAttribute","_removeNamedNode","lastIndex","DOMImplementation","Node","_xmlEncoder","_visitNode","callback","Document","_onUpdateChild","newChild","child","_removeChild","previous","previousSibling","next","lastChild","isDocTypeNode","isElementNode","isTextNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","assertPreInsertionValidity1to5","parent","hasValidParentNodeType","hasInsertableNodeType","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","hasDoctypeChildThatIsNotChild","_insertBefore","_inDocumentAssertion","cp","newFirst","newLast","_updateOwnerDocument","newOwnerDocument","Element","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","buf","refNode","lookupPrefix","visibleNamespaces","namespace","needNamespaceDefine","addSerializedAttribute","qualifiedName","attrs","len","prefixedNodeName","defaultNS","ai","nsi","pubid","publicId","sysid","systemId","sub","internalSubset","importNode","deep","node2","attrs2","_ownerElement","setAttributeNode","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","createDocument","doctype","implementation","createElementNS","createDocumentType","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","rtv","getElementsByClassName","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","specified","createEntityReference","pl","createAttributeNS","hasAttribute","getAttributeNode","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent","exports","XML_ENTITIES","amp","apos","gt","lt","quot","HTML_ENTITIES","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","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","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","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","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","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","elinters","ell","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","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","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","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","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","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","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","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","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","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","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","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","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","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","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","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","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","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","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","entityMap","nameStartChar","nameChar","tagNamePattern","ParseError","locator","XMLReader","copyLocator","lineNumber","columnNumber","parseElementStartPart","currentNSMap","entityReplacer","errorHandler","addAttribute","qname","startIndex","attributeNames","fatalError","addValue","attrName","warning","setTagName","closed","appendElement","domBuilder","localNSMap","qName","nsp","nsPrefix","_copy","startPrefixMapping","startElement","endElement","endPrefixMapping","parseHtmlSpecialContent","elStartEnd","elEndStart","characters","fixSelfClosed","closeMap","pos","parseDCC","end","comment","substr","startCDATA","endCDATA","matchs","lastMatch","startDTD","endDTD","parseInstruction","processingInstruction","ElementAttributes","defaultNSMap","startDocument","defaultNSMapCopy","fixedFromCharCode","surrogate1","surrogate2","fromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","currentElement","endMatch","locator2","endDocument","getLocalName","getLocator","getQName","getURI","getValue","sax","require$$1","entities","require$$2","require$$3","normalizeLineEndings","options","DOMHandler","cdata","_locator","_toString","chars","java","hander","xmlns","setDocumentLocator","errorImpl","isCallback","Function","build","msg","buildErrorHandler","documentURI","ins","ignorableWhitespace","ch","apply","charNode","skippedEntity","comm","impl","dt","domParser","__DOMHandler","lib"],"mappings":"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","x_google_ignoreList":[0,5,12,13,14,15,16,17]}
|
|
1
|
+
{"version":3,"file":"openplayer-ads.js","sources":["../src/vast-parser.ts","../src/ad-dom.ts","../../../node_modules/.pnpm/@dailymotion+vmap@3.3.3/node_modules/@dailymotion/vmap/dist/vmap-js.js","../src/schedule.ts","../../../node_modules/.pnpm/@dailymotion+vast-client@6.4.4/node_modules/@dailymotion/vast-client/dist/vast-client.min.js","../src/caption-manager.ts","../src/omid.ts","../src/simid.ts","../src/types.ts","../src/strategies/csai.ts","../src/strategies/hybrid.ts","../src/strategies/scte35.ts","../src/strategies/ssai.ts","../src/ads.ts","../src/umd.ts","../src/install.ts","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/conventions.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/errors.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/grammar.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/dom.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/entities.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/sax.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/dom-parser.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.9.9/node_modules/@xmldom/xmldom/lib/index.js"],"sourcesContent":[null,null,"function t(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function e(t,e){for(var a=0;a<e.length;a++){var n=e[a];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}var n=a((function e(a){for(var n in t(this,e),this.id=a.getAttribute(\"id\"),this.allowMultipleAds=a.getAttribute(\"allowMultipleAds\"),this.followRedirects=a.getAttribute(\"followRedirects\"),this.vastAdData=null,this.adTagURI=null,this.customData=null,a.childNodes){var i=a.childNodes[n];switch(i.localName){case\"AdTagURI\":this.adTagURI={templateType:i.getAttribute(\"templateType\"),uri:(i.textContent||i.text||\"\").trim()};break;case\"VASTAdData\":for(this.vastAdData=i.firstChild;this.vastAdData&&1!==this.vastAdData.nodeType;)this.vastAdData=this.vastAdData.nextSibling;break;case\"CustomAdData\":this.customData=i}}}));function i(t,e){var a=[];for(var n in t.childNodes){var i=t.childNodes[n];i.nodeName!==e&&e!==\"vmap:\".concat(i.nodeName)&&i.nodeName!==\"vmap:\".concat(e)||a.push(i)}return a}function r(t){var e={attributes:{},children:{},value:{}};e.value=function(t){if(!t||!t.childNodes)return{};var e=t.childNodes,a=[];for(var n in e){var i=e[n];\"#cdata-section\"===i.nodeName&&a.push(i)}if(a&&a.length>0)try{return JSON.parse(a[0].data)}catch(t){}var r=\"\";for(var s in e){var o=e[s];switch(o.nodeName){case\"#text\":r+=o.textContent.trim();break;case\"#cdata-section\":r+=o.data}}return r}(t);var a=t.attributes;if(a)for(var n in a){var i=a[n];i.nodeName&&void 0!==i.nodeValue&&null!==i.nodeValue&&(e.attributes[i.nodeName]=i.nodeValue)}var s=t.childNodes;if(s)for(var o in s){var c=s[o];c.nodeName&&\"#\"!==c.nodeName.substring(0,1)&&(e.children[c.nodeName]=r(c))}return e}var s=function(){function e(a){for(var s in t(this,e),this.timeOffset=a.getAttribute(\"timeOffset\"),this.breakType=a.getAttribute(\"breakType\"),this.breakId=a.getAttribute(\"breakId\"),this.repeatAfter=a.getAttribute(\"repeatAfter\"),this.adSource=null,this.trackingEvents=[],this.extensions=[],a.childNodes){var o=a.childNodes[s];switch(o.localName){case\"AdSource\":this.adSource=new n(o);break;case\"TrackingEvents\":for(var c in o.childNodes){var d=o.childNodes[c];\"Tracking\"===d.localName&&this.trackingEvents.push({event:d.getAttribute(\"event\"),uri:(d.textContent||d.text||\"\").trim()})}break;case\"Extensions\":this.extensions=i(o,\"Extension\").map((function(t){return r(t)}))}}}return a(e,[{key:\"track\",value:function(t,e){for(var a in this.trackingEvents){var n=this.trackingEvents[a];if(n.event===t){var i=n.uri;\"error\"===n.event&&(i=i.replace(\"[ERRORCODE]\",e)),this.tracker(i)}}}},{key:\"tracker\",value:function(t){\"undefined\"!=typeof window&&null!==window&&((new Image).src=t)}}]),e}(),o=a((function e(a){if(t(this,e),!a||!a.documentElement||\"VMAP\"!==a.documentElement.localName)throw new Error(\"Not a VMAP document\");for(var n in this.version=a.documentElement.getAttribute(\"version\"),this.adBreaks=[],this.extensions=[],a.documentElement.childNodes){var o=a.documentElement.childNodes[n];switch(o.localName){case\"AdBreak\":this.adBreaks.push(new s(o));break;case\"Extensions\":this.extensions=i(o,\"Extension\").map((function(t){return r(t)}))}}}));export{o as default};\n",null,"function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,adId:e.adId||null,sequence:e.sequence||null,apiFramework:e.apiFramework||null,universalAdIds:[],creativeExtensions:[]}}const t=[\"ADCATEGORIES\",\"ADCOUNT\",\"ADPLAYHEAD\",\"ADSERVINGID\",\"ADTYPE\",\"APIFRAMEWORKS\",\"APPBUNDLE\",\"ASSETURI\",\"BLOCKEDADCATEGORIES\",\"BREAKMAXADLENGTH\",\"BREAKMAXADS\",\"BREAKMAXDURATION\",\"BREAKMINADLENGTH\",\"BREAKMINDURATION\",\"BREAKPOSITION\",\"CLICKPOS\",\"CLICKTYPE\",\"CLIENTUA\",\"CONTENTID\",\"CONTENTPLAYHEAD\",\"CONTENTURI\",\"DEVICEIP\",\"DEVICEUA\",\"DOMAIN\",\"EXTENSIONS\",\"GDPRCONSENT\",\"IFA\",\"IFATYPE\",\"INVENTORYSTATE\",\"LATLONG\",\"LIMITADTRACKING\",\"MEDIAMIME\",\"MEDIAPLAYHEAD\",\"OMIDPARTNER\",\"PAGEURL\",\"PLACEMENTTYPE\",\"PLAYERCAPABILITIES\",\"PLAYERSIZE\",\"PLAYERSTATE\",\"PODSEQUENCE\",\"REGULATIONS\",\"SERVERSIDE\",\"SERVERUA\",\"TRANSACTIONID\",\"UNIVERSALADID\",\"VASTVERSIONS\",\"VERIFICATIONVENDORS\"];function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=[],n=s(e);!t.ERRORCODE||r.isCustomCode||/^[0-9]{3}$/.test(t.ERRORCODE)||(t.ERRORCODE=900),t.CACHEBUSTING=d(Math.round(1e8*Math.random())),t.TIMESTAMP=(new Date).toISOString(),t.RANDOM=t.random=t.CACHEBUSTING;for(const e in t)t[e]=c(t[e]);for(const e in n){const r=n[e];\"string\"==typeof r&&a.push(i(r,t))}return a}function i(e,r){const i=(e=a(e,r)).match(/[^[\\]]+(?=])/g);if(!i)return e;let s=i.filter((e=>t.indexOf(e)>-1));return 0===s.length?e:(s=s.reduce(((e,t)=>(e[t]=-1,e)),{}),a(e,s))}function a(e,t){let r=e;for(const e in t){const i=t[e];r=r.replace(new RegExp(\"(?:\\\\[|%%)(\".concat(e,\")(?:\\\\]|%%)\"),\"g\"),i)}return r}function s(e){return Array.isArray(e)?e.map((e=>e&&e.hasOwnProperty(\"url\")?e.url:e)):e}function n(e){return/^(https?:\\/\\/|\\/\\/)/.test(e)}function o(e,t){for(let r=0;r<t.length;r++)if(l(t[r],e))return!0;return!1}function l(e,t){if(e&&t){const r=Object.getOwnPropertyNames(e),i=Object.getOwnPropertyNames(t);return r.length===i.length&&(e.id===t.id&&e.url===t.url)}return!1}function c(e){return encodeURIComponent(e).replace(/[!'()*]/g,(e=>\"%\".concat(e.charCodeAt(0).toString(16))))}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return e.toString().padStart(t,\"0\")}const u={track:function(e,t,i){r(e,t,i).forEach((e=>{if(\"undefined\"!=typeof window&&null!==window){(new Image).src=e}}))},resolveURLTemplates:r,extractURLsFromTemplates:s,filterUrlTemplates:function(e){return e.reduce(((e,t)=>{const r=t.url||t;return n(r)?e.validUrls.push(r):e.invalidUrls.push(r),e}),{validUrls:[],invalidUrls:[]})},containsTemplateObject:o,isTemplateObjectEqual:l,encodeURIComponentRFC3986:c,replaceUrlMacros:i,isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},flatten:function e(t){return t.reduce(((t,r)=>t.concat(Array.isArray(r)?e(r):r)),[])},joinArrayOfUniqueTemplateObjs:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=Array.isArray(e)?e:[],i=Array.isArray(t)?t:[];return r.concat(i).reduce(((e,t)=>(o(t,e)||e.push(t),e)),[])},isValidTimeValue:function(e){return Number.isFinite(e)&&e>=-2},addLeadingZeros:d,isValidUrl:n,isBrowserEnvironment:function(){return\"undefined\"!=typeof window},formatMacrosValues:function(e){return\"object\"!=typeof e?e:JSON.stringify(e)}};function h(e){return[\"true\",\"TRUE\",\"True\",\"1\"].includes(e)}function p(e){if(null==e)return-1;if(u.isNumeric(e))return parseInt(e);const t=e.split(\":\");if(3!==t.length)return-1;const r=t[2].split(\".\");let i=parseInt(r[0]);2===r.length&&(i+=parseFloat(\"0.\".concat(r[1])));const a=parseInt(60*t[1]),s=parseInt(60*t[0]*60);return isNaN(s)||isNaN(a)||isNaN(i)||a>3600||i>60?-1:s+a+i}const m={childByName:function(e,t){return Array.from(e.childNodes).find((e=>e.nodeName===t))},childrenByName:function(e,t){return Array.from(e.childNodes).filter((e=>e.nodeName===t))},resolveVastAdTagURI:function(e,t){if(!t)return e;if(e.startsWith(\"//\")){const{protocol:t}=location;return\"\".concat(t).concat(e)}if(!e.includes(\"://\")){const r=t.slice(0,t.lastIndexOf(\"/\"));return\"\".concat(r,\"/\").concat(e)}return e},parseBoolean:h,parseNodeText:function(e){return e&&(e.textContent||e.text||\"\").trim()},copyNodeAttribute:function(e,t,r){const i=t.getAttribute(e);i&&r.setAttribute(e,i)},parseAttributes:function(e){return Array.from(e.attributes).reduce(((e,t)=>(e[t.nodeName]=t.nodeValue,e)),{})},parseDuration:p,getStandAloneAds:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((e=>!parseInt(e.sequence,10)))},getSortedAdPods:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((e=>parseInt(e.sequence,10))).sort(((e,t)=>e.sequence-t.sequence))},assignAttributes:function(e,t){e&&Array.from(e).forEach((e=>{let{nodeName:r,nodeValue:i}=e;if(r&&i&&t.hasOwnProperty(r)){let e=i;\"boolean\"==typeof t[r]&&(e=h(e)),t[r]=e}}))},mergeWrapperAdData:function(e,t){var r;e.errorURLTemplates=t.errorURLTemplates.concat(e.errorURLTemplates),e.impressionURLTemplates=t.impressionURLTemplates.concat(e.impressionURLTemplates),e.extensions=t.extensions.concat(e.extensions),t.viewableImpression.length>0&&(e.viewableImpression=[...e.viewableImpression,...t.viewableImpression]),e.followAdditionalWrappers=t.followAdditionalWrappers,e.allowMultipleAds=t.allowMultipleAds,e.fallbackOnNoAd=t.fallbackOnNoAd;const i=(t.creatives||[]).filter((e=>e&&\"companion\"===e.type)),a=i.reduce(((e,t)=>((t.variations||[]).forEach((t=>{(t.companionClickTrackingURLTemplates||[]).forEach((t=>{u.containsTemplateObject(t,e)||e.push(t)}))})),e)),[]);e.creatives=i.concat(e.creatives);const s=t.videoClickTrackingURLTemplates&&t.videoClickTrackingURLTemplates.length,n=t.videoCustomClickURLTemplates&&t.videoCustomClickURLTemplates.length;if(e.creatives.forEach((e=>{if(t.trackingEvents&&t.trackingEvents[e.type])for(const r in t.trackingEvents[e.type]){const i=t.trackingEvents[e.type][r];Array.isArray(e.trackingEvents[r])||(e.trackingEvents[r]=[]),e.trackingEvents[r]=e.trackingEvents[r].concat(i)}\"linear\"===e.type&&(s&&(e.videoClickTrackingURLTemplates=e.videoClickTrackingURLTemplates.concat(t.videoClickTrackingURLTemplates)),n&&(e.videoCustomClickURLTemplates=e.videoCustomClickURLTemplates.concat(t.videoCustomClickURLTemplates)),!t.videoClickThroughURLTemplate||null!==e.videoClickThroughURLTemplate&&void 0!==e.videoClickThroughURLTemplate||(e.videoClickThroughURLTemplate=t.videoClickThroughURLTemplate)),\"companion\"===e.type&&a.length&&(e.variations||[]).forEach((e=>{e.companionClickTrackingURLTemplates=u.joinArrayOfUniqueTemplateObjs(e.companionClickTrackingURLTemplates,a)}))})),t.adVerifications&&(e.adVerifications=e.adVerifications.concat(t.adVerifications)),t.blockedAdCategories&&(e.blockedAdCategories=e.blockedAdCategories.concat(t.blockedAdCategories)),null!==(r=t.creatives)&&void 0!==r&&r.length){const r=t.creatives.filter((e=>{var t;return(null===(t=e.icons)||void 0===t?void 0:t.length)&&!e.mediaFiles.length}));r.length&&(e.creatives=e.creatives.concat(r))}}};function g(t,r){const i=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"companion\",required:null,variations:[]}}(r);return i.required=t.getAttribute(\"required\")||null,i.variations=m.childrenByName(t,\"Companion\").map((e=>{const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,adType:\"companionAd\",width:e.width||0,height:e.height||0,assetWidth:e.assetWidth||null,assetHeight:e.assetHeight||null,expandedWidth:e.expandedWidth||null,expandedHeight:e.expandedHeight||null,apiFramework:e.apiFramework||null,adSlotId:e.adSlotId||null,pxratio:e.pxratio||\"1\",renderingMode:e.renderingMode||\"default\",staticResources:[],htmlResources:[],iframeResources:[],adParameters:null,altText:null,companionClickThroughURLTemplate:null,companionClickTrackingURLTemplates:[],trackingEvents:{}}}(m.parseAttributes(e));t.htmlResources=m.childrenByName(e,\"HTMLResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat(r):e}),[]),t.iframeResources=m.childrenByName(e,\"IFrameResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat(r):e}),[]),t.staticResources=m.childrenByName(e,\"StaticResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat({url:r,creativeType:t.getAttribute(\"creativeType\")||null}):e}),[]),t.altText=m.parseNodeText(m.childByName(e,\"AltText\"))||null;const r=m.childByName(e,\"TrackingEvents\");r&&m.childrenByName(r,\"Tracking\").forEach((e=>{const r=e.getAttribute(\"event\"),i=m.parseNodeText(e);r&&i&&(Array.isArray(t.trackingEvents[r])||(t.trackingEvents[r]=[]),t.trackingEvents[r].push(i))})),t.companionClickTrackingURLTemplates=m.childrenByName(e,\"CompanionClickTracking\").map((e=>({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)}))),t.companionClickThroughURLTemplate=m.parseNodeText(m.childByName(e,\"CompanionClickThrough\"))||null;const i=m.childByName(e,\"AdParameters\");return i&&(t.adParameters={value:m.parseNodeText(i),xmlEncoded:i.getAttribute(\"xmlEncoded\")||null}),t})),i}function v(t,r){let i;const a=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"linear\",duration:0,skipDelay:null,mediaFiles:[],mezzanine:null,interactiveCreativeFile:null,closedCaptionFiles:[],videoClickThroughURLTemplate:null,videoClickTrackingURLTemplates:[],videoCustomClickURLTemplates:[],adParameters:null,icons:[],trackingEvents:{}}}(r);a.duration=m.parseDuration(m.parseNodeText(m.childByName(t,\"Duration\")));const s=t.getAttribute(\"skipoffset\");if(null==s)a.skipDelay=null;else if(\"%\"===s.charAt(s.length-1)&&-1!==a.duration){const e=parseInt(s,10);a.skipDelay=a.duration*(e/100)}else a.skipDelay=m.parseDuration(s);const n=m.childByName(t,\"VideoClicks\");if(n){const e=m.childByName(n,\"ClickThrough\");a.videoClickThroughURLTemplate=e?{id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)}:null,m.childrenByName(n,\"ClickTracking\").forEach((e=>{a.videoClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})})),m.childrenByName(n,\"CustomClick\").forEach((e=>{a.videoCustomClickURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})}))}const o=m.childByName(t,\"AdParameters\");o&&(a.adParameters={value:m.parseNodeText(o),xmlEncoded:o.getAttribute(\"xmlEncoded\")||null}),m.childrenByName(t,\"TrackingEvents\").forEach((e=>{m.childrenByName(e,\"Tracking\").forEach((e=>{let t=e.getAttribute(\"event\");const r=m.parseNodeText(e);if(t&&r){if(\"progress\"===t){if(i=e.getAttribute(\"offset\"),!i)return;t=\"%\"===i.charAt(i.length-1)?\"progress-\".concat(i):\"progress-\".concat(m.parseDuration(i))}Array.isArray(a.trackingEvents[t])||(a.trackingEvents[t]=[]),a.trackingEvents[t].push(r)}}))})),m.childrenByName(t,\"MediaFiles\").forEach((e=>{m.childrenByName(e,\"MediaFile\").forEach((e=>{a.mediaFiles.push(function(e){const t={id:null,fileURL:null,fileSize:0,deliveryType:\"progressive\",mimeType:null,mediaType:null,codec:null,bitrate:0,minBitrate:0,maxBitrate:0,width:0,height:0,apiFramework:null,scalable:null,maintainAspectRatio:null};t.id=e.getAttribute(\"id\"),t.fileURL=m.parseNodeText(e),t.deliveryType=e.getAttribute(\"delivery\"),t.codec=e.getAttribute(\"codec\"),t.mimeType=e.getAttribute(\"type\"),t.mediaType=e.getAttribute(\"mediaType\")||\"2D\",t.apiFramework=e.getAttribute(\"apiFramework\"),t.fileSize=parseInt(e.getAttribute(\"fileSize\")||0),t.bitrate=parseInt(e.getAttribute(\"bitrate\")||0),t.minBitrate=parseInt(e.getAttribute(\"minBitrate\")||0),t.maxBitrate=parseInt(e.getAttribute(\"maxBitrate\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.height=parseInt(e.getAttribute(\"height\")||0);const r=e.getAttribute(\"scalable\");r&&\"string\"==typeof r&&(t.scalable=m.parseBoolean(r));const i=e.getAttribute(\"maintainAspectRatio\");i&&\"string\"==typeof i&&(t.maintainAspectRatio=m.parseBoolean(i));return t}(e))}));const t=m.childByName(e,\"InteractiveCreativeFile\");t&&(a.interactiveCreativeFile=function(e){const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:e.type||null,apiFramework:e.apiFramework||null,variableDuration:m.parseBoolean(e.variableDuration),fileURL:null}}(m.parseAttributes(e));return t.fileURL=m.parseNodeText(e),t}(t));const r=m.childByName(e,\"ClosedCaptionFiles\");r&&m.childrenByName(r,\"ClosedCaptionFile\").forEach((e=>{const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:e.type||null,language:e.language||null,fileURL:null}}(m.parseAttributes(e));t.fileURL=m.parseNodeText(e),a.closedCaptionFiles.push(t)}));const i=m.childByName(e,\"Mezzanine\"),s=function(e,t){const r={};let i=!1;return t.forEach((t=>{e&&e.getAttribute(t)?r[t]=e.getAttribute(t):i=!0})),i?null:r}(i,[\"delivery\",\"type\",\"width\",\"height\"]);if(s){const e={id:null,fileURL:null,delivery:null,codec:null,type:null,width:0,height:0,fileSize:0,mediaType:\"2D\"};e.id=i.getAttribute(\"id\"),e.fileURL=m.parseNodeText(i),e.delivery=s.delivery,e.codec=i.getAttribute(\"codec\"),e.type=s.type,e.width=parseInt(s.width,10),e.height=parseInt(s.height,10),e.fileSize=parseInt(i.getAttribute(\"fileSize\"),10),e.mediaType=i.getAttribute(\"mediaType\")||\"2D\",a.mezzanine=e}}));const l=m.childByName(t,\"Icons\");return l&&m.childrenByName(l,\"Icon\").forEach((e=>{a.icons.push(function(e){const t={program:null,height:0,width:0,xPosition:0,yPosition:0,apiFramework:null,offset:null,duration:0,type:null,staticResource:null,htmlResource:null,iframeResource:null,pxratio:\"1\",iconClickThroughURLTemplate:null,iconClickTrackingURLTemplates:[],iconViewTrackingURLTemplate:null,iconClickFallbackImages:[],altText:null,hoverText:null};t.program=e.getAttribute(\"program\"),t.height=parseInt(e.getAttribute(\"height\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.xPosition=function(e){if(-1!==[\"left\",\"right\"].indexOf(e))return e;return parseInt(e||0)}(e.getAttribute(\"xPosition\")),t.yPosition=function(e){if(-1!==[\"top\",\"bottom\"].indexOf(e))return e;return parseInt(e||0)}(e.getAttribute(\"yPosition\")),t.apiFramework=e.getAttribute(\"apiFramework\"),t.pxratio=e.getAttribute(\"pxratio\")||\"1\",t.offset=m.parseDuration(e.getAttribute(\"offset\")),t.duration=m.parseDuration(e.getAttribute(\"duration\")),t.altText=e.getAttribute(\"altText\"),t.hoverText=e.getAttribute(\"hoverText\"),m.childrenByName(e,\"HTMLResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=m.parseNodeText(e)})),m.childrenByName(e,\"IFrameResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=m.parseNodeText(e)})),m.childrenByName(e,\"StaticResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=m.parseNodeText(e)}));const r=m.childByName(e,\"IconClicks\");if(r){t.iconClickThroughURLTemplate=m.parseNodeText(m.childByName(r,\"IconClickThrough\")),m.childrenByName(r,\"IconClickTracking\").forEach((e=>{t.iconClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})}));const e=m.childByName(r,\"IconClickFallbackImages\");e&&m.childrenByName(e,\"IconClickFallbackImage\").forEach((e=>{t.iconClickFallbackImages.push({url:m.parseNodeText(e)||null,width:e.getAttribute(\"width\")||null,height:e.getAttribute(\"height\")||null})}))}return t.iconViewTrackingURLTemplate=m.parseNodeText(m.childByName(e,\"IconViewTracking\")),t}(e))})),a}function f(t,r){const i=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"nonlinear\",variations:[],trackingEvents:{}}}(r);return m.childrenByName(t,\"TrackingEvents\").forEach((e=>{let t,r;m.childrenByName(e,\"Tracking\").forEach((e=>{t=e.getAttribute(\"event\"),r=m.parseNodeText(e),t&&r&&(Array.isArray(i.trackingEvents[t])||(i.trackingEvents[t]=[]),i.trackingEvents[t].push(r))}))})),m.childrenByName(t,\"NonLinear\").forEach((e=>{const t={id:null,width:0,height:0,expandedWidth:0,expandedHeight:0,scalable:!0,maintainAspectRatio:!0,minSuggestedDuration:0,apiFramework:\"static\",adType:\"nonLinearAd\",type:null,staticResource:null,htmlResource:null,iframeResource:null,nonlinearClickThroughURLTemplate:null,nonlinearClickTrackingURLTemplates:[],adParameters:null};t.id=e.getAttribute(\"id\")||null,t.width=e.getAttribute(\"width\"),t.height=e.getAttribute(\"height\"),t.expandedWidth=e.getAttribute(\"expandedWidth\"),t.expandedHeight=e.getAttribute(\"expandedHeight\"),t.scalable=m.parseBoolean(e.getAttribute(\"scalable\")),t.maintainAspectRatio=m.parseBoolean(e.getAttribute(\"maintainAspectRatio\")),t.minSuggestedDuration=m.parseDuration(e.getAttribute(\"minSuggestedDuration\")),t.apiFramework=e.getAttribute(\"apiFramework\"),m.childrenByName(e,\"HTMLResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=m.parseNodeText(e)})),m.childrenByName(e,\"IFrameResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=m.parseNodeText(e)})),m.childrenByName(e,\"StaticResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=m.parseNodeText(e)}));const r=m.childByName(e,\"AdParameters\");r&&(t.adParameters={value:m.parseNodeText(r),xmlEncoded:r.getAttribute(\"xmlEncoded\")||null}),t.nonlinearClickThroughURLTemplate=m.parseNodeText(m.childByName(e,\"NonLinearClickThrough\")),m.childrenByName(e,\"NonLinearClickTracking\").forEach((e=>{t.nonlinearClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})})),i.variations.push(t)})),i}function T(e){const t=[];return e.forEach((e=>{const r=A(e);r&&t.push(r)})),t}function A(e){if(\"#comment\"===e.nodeName)return null;const t={name:null,value:null,attributes:{},children:[]},r=e.attributes,i=e.childNodes;if(t.name=e.nodeName,e.attributes)for(const e in r)if(r.hasOwnProperty(e)){const i=r[e];i.nodeName&&i.nodeValue&&(t.attributes[i.nodeName]=i.nodeValue)}for(const e in i)if(i.hasOwnProperty(e)){const r=A(i[e]);r&&t.children.push(r)}if(0===t.children.length||1===t.children.length&&[\"#cdata-section\",\"#text\"].indexOf(t.children[0].name)>=0){const r=m.parseNodeText(e);\"\"!==r&&(t.value=r),t.children=[]}return null===(a=t).value&&0===Object.keys(a.attributes).length&&0===a.children.length?null:t;var a}function R(e){return e.getAttribute(\"AdID\")||e.getAttribute(\"adID\")||e.getAttribute(\"adId\")||null}const k={Wrapper:{subElements:[\"VASTAdTagURI\",\"Impression\"]},BlockedAdCategories:{attributes:[\"authority\"]},InLine:{subElements:[\"AdSystem\",\"AdTitle\",\"Impression\",\"AdServingId\",\"Creatives\"]},Category:{attributes:[\"authority\"]},Pricing:{attributes:[\"model\",\"currency\"]},Verification:{oneOfinLineResources:[\"JavaScriptResource\",\"ExecutableResource\"],attributes:[\"vendor\"]},UniversalAdId:{attributes:[\"idRegistry\"]},JavaScriptResource:{attributes:[\"apiFramework\",\"browserOptional\"]},ExecutableResource:{attributes:[\"apiFramework\",\"type\"]},Tracking:{attributes:[\"event\"]},Creatives:{subElements:[\"Creative\"]},Creative:{subElements:[\"UniversalAdId\"]},Linear:{subElements:[\"MediaFiles\",\"Duration\"]},MediaFiles:{subElements:[\"MediaFile\"]},MediaFile:{attributes:[\"delivery\",\"type\",\"width\",\"height\"]},Mezzanine:{attributes:[\"delivery\",\"type\",\"width\",\"height\"]},NonLinear:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"],attributes:[\"width\",\"height\"]},Companion:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"],attributes:[\"width\",\"height\"]},StaticResource:{attributes:[\"creativeType\"]},Icons:{subElements:[\"Icon\"]},Icon:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"]}};function y(e,t){if(!k[e.nodeName]||!k[e.nodeName].attributes)return;const r=k[e.nodeName].attributes.filter((t=>!e.getAttribute(t)));r.length>0&&w({name:e.nodeName,parentName:e.parentNode.nodeName,attributes:r},t)}function E(e,t,r){const i=k[e.nodeName],a=!r&&\"Wrapper\"!==e.nodeName;if(!i||a)return;if(i.subElements){const r=i.subElements.filter((t=>!m.childByName(e,t)));r.length>0&&w({name:e.nodeName,parentName:e.parentNode.nodeName,subElements:r},t)}if(!r||!i.oneOfinLineResources)return;i.oneOfinLineResources.some((t=>m.childByName(e,t)))||w({name:e.nodeName,parentName:e.parentNode.nodeName,oneOfResources:i.oneOfinLineResources},t)}function b(e){return e.children&&0!==e.children.length}function w(e,t){let{name:r,parentName:i,attributes:a,subElements:s,oneOfResources:n}=e,o=\"Element '\".concat(r,\"'\");o+=a?\" missing required attribute(s) '\".concat(a.join(\", \"),\"' \"):s?\" missing required sub element(s) '\".concat(s.join(\", \"),\"' \"):n?\" must provide one of the following '\".concat(n.join(\", \"),\"' \"):\" is empty\",t(\"VAST-warning\",{message:o,parentElement:i,specVersion:4.1})}const N={verifyRequiredValues:function e(t,r,i){if(t&&t.nodeName)if(\"InLine\"===t.nodeName&&(i=!0),y(t,r),b(t)){E(t,r,i);for(let a=0;a<t.children.length;a++)e(t.children[a],r,i)}else 0===m.parseNodeText(t).length&&w({name:t.nodeName,parentName:t.parentNode.nodeName},r)},hasSubElements:b,emitMissingValueWarning:w,verifyRequiredAttributes:y,verifyRequiredSubElements:E};function C(e,t){let{allowMultipleAds:r,followAdditionalWrappers:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=Array.from(e.childNodes).filter((e=>{const t=e.nodeName.toLowerCase();return\"inline\"===t||!1!==i&&\"wrapper\"===t}));for(const i of a){if(m.copyNodeAttribute(\"id\",e,i),m.copyNodeAttribute(\"sequence\",e,i),m.copyNodeAttribute(\"adType\",e,i),\"Wrapper\"===i.nodeName)return{ad:I(i,t),type:\"WRAPPER\"};if(\"InLine\"===i.nodeName)return{ad:L(i,t,{allowMultipleAds:r}),type:\"INLINE\"};const a=i.nodeName.toLowerCase();t(\"VAST-warning\",{message:\"<\".concat(i.nodeName,\"inline\"===a?\"> must be written <InLine>\":\"> must be written <Wrapper>\"),wrongNode:i})}}function L(e,t){let{allowMultipleAds:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return!1===r&&e.getAttribute(\"sequence\")?null:U(e,t)}function U(e,t){let r=[];t&&N.verifyRequiredValues(e,t);const i=Array.from(e.childNodes),a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,sequence:e.sequence||null,adType:e.adType||null,adServingId:null,categories:[],expires:null,viewableImpression:[],system:null,title:null,description:null,advertiser:null,pricing:null,survey:null,errorURLTemplates:[],impressionURLTemplates:[],creatives:[],extensions:[],adVerifications:[],blockedAdCategories:[],followAdditionalWrappers:!0,allowMultipleAds:!1,fallbackOnNoAd:null}}(m.parseAttributes(e));return i.forEach((e=>{switch(e.nodeName){case\"Error\":a.errorURLTemplates.push(m.parseNodeText(e));break;case\"Impression\":a.impressionURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)});break;case\"Creatives\":a.creatives=function(e){const t=[];return e.forEach((e=>{const r={id:e.getAttribute(\"id\")||null,adId:R(e),sequence:e.getAttribute(\"sequence\")||null,apiFramework:e.getAttribute(\"apiFramework\")||null},i=[];let a;m.childrenByName(e,\"UniversalAdId\").forEach((e=>{const t={idRegistry:e.getAttribute(\"idRegistry\")||\"unknown\",value:m.parseNodeText(e)};i.push(t)}));const s=m.childByName(e,\"CreativeExtensions\");s&&(a=T(m.childrenByName(s,\"CreativeExtension\")));for(const s in e.childNodes){const n=e.childNodes[s];let o;switch(n.nodeName){case\"Linear\":o=v(n,r);break;case\"NonLinearAds\":o=f(n,r);break;case\"CompanionAds\":o=g(n,r)}o&&(i&&(o.universalAdIds=i),a&&(o.creativeExtensions=a),t.push(o))}})),t}(m.childrenByName(e,\"Creative\"));break;case\"Extensions\":{const t=m.childrenByName(e,\"Extension\");a.extensions=T(t),a.adVerifications.length||(r=function(e){let t=null,r=[];e.some((e=>t=m.childByName(e,\"AdVerifications\"))),t&&(r=x(m.childrenByName(t,\"Verification\")));return r}(t));break}case\"AdVerifications\":a.adVerifications=x(m.childrenByName(e,\"Verification\"));break;case\"AdSystem\":a.system={value:m.parseNodeText(e),version:e.getAttribute(\"version\")||null};break;case\"AdTitle\":a.title=m.parseNodeText(e);break;case\"AdServingId\":a.adServingId=m.parseNodeText(e);break;case\"Category\":a.categories.push({authority:e.getAttribute(\"authority\")||null,value:m.parseNodeText(e)});break;case\"Expires\":a.expires=parseInt(m.parseNodeText(e),10);break;case\"ViewableImpression\":a.viewableImpression.push(function(e){const t=(e,t)=>{const r=m.parseNodeText(t);return r&&e.push(r),e};return{id:e.getAttribute(\"id\")||null,viewable:m.childrenByName(e,\"Viewable\").reduce(t,[]),notViewable:m.childrenByName(e,\"NotViewable\").reduce(t,[]),viewUndetermined:m.childrenByName(e,\"ViewUndetermined\").reduce(t,[])}}(e));break;case\"Description\":a.description=m.parseNodeText(e);break;case\"Advertiser\":a.advertiser={id:e.getAttribute(\"id\")||null,value:m.parseNodeText(e)};break;case\"Pricing\":a.pricing={value:m.parseNodeText(e),model:e.getAttribute(\"model\")||null,currency:e.getAttribute(\"currency\")||null};break;case\"Survey\":a.survey={value:m.parseNodeText(e),type:e.getAttribute(\"type\")||null};break;case\"BlockedAdCategories\":a.blockedAdCategories.push({authority:e.getAttribute(\"authority\")||null,value:m.parseNodeText(e)})}})),r.length&&(a.adVerifications=a.adVerifications.concat(r)),a}function I(e,t){const r=U(e,t),i=e.getAttribute(\"followAdditionalWrappers\"),a=e.getAttribute(\"allowMultipleAds\"),s=e.getAttribute(\"fallbackOnNoAd\");r.followAdditionalWrappers=!i||m.parseBoolean(i),r.allowMultipleAds=!!a&&m.parseBoolean(a),r.fallbackOnNoAd=s?m.parseBoolean(s):null;let n=m.childByName(e,\"VASTAdTagURI\");if(n?r.nextWrapperURL=m.parseNodeText(n):(n=m.childByName(e,\"VASTAdTagURL\"),n&&(r.nextWrapperURL=m.parseNodeText(m.childByName(n,\"URL\")))),r.creatives.forEach((e=>{if([\"linear\",\"nonlinear\"].includes(e.type)){if(e.trackingEvents){r.trackingEvents||(r.trackingEvents={}),r.trackingEvents[e.type]||(r.trackingEvents[e.type]={});for(const t in e.trackingEvents){const i=e.trackingEvents[t];Array.isArray(r.trackingEvents[e.type][t])||(r.trackingEvents[e.type][t]=[]),i.forEach((i=>{r.trackingEvents[e.type][t].push(i)}))}}e.videoClickTrackingURLTemplates&&(Array.isArray(r.videoClickTrackingURLTemplates)||(r.videoClickTrackingURLTemplates=[]),e.videoClickTrackingURLTemplates.forEach((e=>{r.videoClickTrackingURLTemplates.push(e)}))),e.videoClickThroughURLTemplate&&(r.videoClickThroughURLTemplate=e.videoClickThroughURLTemplate),e.videoCustomClickURLTemplates&&(Array.isArray(r.videoCustomClickURLTemplates)||(r.videoCustomClickURLTemplates=[]),e.videoCustomClickURLTemplates.forEach((e=>{r.videoCustomClickURLTemplates.push(e)})))}})),r.nextWrapperURL)return r}function x(e){const t=[];return e.forEach((e=>{const r={resource:null,vendor:null,browserOptional:!1,apiFramework:null,type:null,parameters:null,trackingEvents:{}},i=Array.from(e.childNodes);m.assignAttributes(e.attributes,r),i.forEach((e=>{let{nodeName:t,textContent:i,attributes:a}=e;switch(t){case\"JavaScriptResource\":case\"ExecutableResource\":r.resource=i.trim(),m.assignAttributes(a,r);break;case\"VerificationParameters\":r.parameters=i.trim()}}));const a=m.childByName(e,\"TrackingEvents\");a&&m.childrenByName(a,\"Tracking\").forEach((e=>{const t=e.getAttribute(\"event\"),i=m.parseNodeText(e);t&&i&&(Array.isArray(r.trackingEvents[t])||(r.trackingEvents[t]=[]),r.trackingEvents[t].push(i))})),t.push(r)})),t}class S{constructor(){this._handlers=[]}on(e,t){if(\"function\"!=typeof t)throw new TypeError(\"The handler argument must be of type Function. Received type \".concat(typeof t));if(!e)throw new TypeError(\"The event argument must be of type String. Received type \".concat(typeof e));return this._handlers.push({event:e,handler:t}),this}once(e,t){return this.on(e,function(e,t,r){const i={fired:!1,wrapFn:void 0};function a(){i.fired||(e.off(t,i.wrapFn),i.fired=!0,r.bind(e)(...arguments))}return i.wrapFn=a,a}(this,e,t))}off(e,t){return this._handlers=this._handlers.filter((r=>r.event!==e||r.handler!==t)),this}emit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];let a=!1;return this._handlers.forEach((t=>{\"*\"===t.event&&(a=!0,t.handler(e,...r)),t.event===e&&(a=!0,t.handler(...r))})),a}removeAllListeners(e){return e?(this._handlers=this._handlers.filter((t=>t.event!==e)),this):(this._handlers=[],this)}listenerCount(e){return this._handlers.filter((t=>t.event===e)).length}listeners(e){return this._handlers.reduce(((t,r)=>(r.event===e&&t.push(r.handler),t)),[])}eventNames(){return this._handlers.map((e=>e.event))}}let D=0,V=0;const O=(e,t)=>{if(!e||!t||e<=0||t<=0)return;V=(V*D+8*e/t)/++D},F={ERRORCODE:900,extensions:[]},P=\"VAST response version not supported\";class B extends S{constructor(){let{fetcher:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),this.maxWrapperDepth=null,this.rootErrorURLTemplates=[],this.errorURLTemplates=[],this.remainingAds=[],this.parsingOptions={},this.fetcher=e||null,this.keepFailedAdPod=!1}trackVastError(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];this.emit(\"VAST-error\",Object.assign({},F,t,...i)),u.track(e,t)}getErrorURLTemplates(){return this.rootErrorURLTemplates.concat(this.errorURLTemplates)}getEstimatedBitrate(){return V}initParsingStatus(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.maxWrapperDepth=e.wrapperLimit||10,this.parsingOptions={allowMultipleAds:e.allowMultipleAds},this.keepFailedAdPod=e.keepFailedAdPod||!1,this.rootURL=\"\",this.resetParsingStatus(),O(e.byteLength,e.requestDuration)}resetParsingStatus(){this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.vastVersion=null}getRemainingAds(e){if(0===this.remainingAds.length)return Promise.reject(new Error(\"No more ads are available for the given VAST\"));const t=e?this.remainingAds:[this.remainingAds.shift()];return this.errorURLTemplates=[],this.resolveAds(t,{wrapperDepth:0,url:this.rootURL}).then((e=>this.buildVASTResponse(e)))}parseVAST(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.initParsingStatus(t),t.isRootVAST=!0,this.parse(e,t).then((e=>this.buildVASTResponse(e)))}buildVASTResponse(e){const t=function(e){let{ads:t,errorURLTemplates:r,version:i}=e;return{ads:t||[],errorURLTemplates:r||[],version:i||null}}({ads:e,errorURLTemplates:this.getErrorURLTemplates(),version:this.vastVersion});return this.completeWrapperResolving(t),t}parseVastXml(e,t){let{isRootVAST:r=!1,url:i=null,wrapperDepth:a=0,allowMultipleAds:s,followAdditionalWrappers:n,wrapperChainId:o=0}=t;if(!e||!e.documentElement||\"VAST\"!==e.documentElement.nodeName){var l;this.emit(\"VAST-ad-parsed\",{type:\"ERROR\",url:i,wrapperDepth:a,wrapperChainId:o});const t=\"VideoAdServingTemplate\"===(null==e||null===(l=e.documentElement)||void 0===l?void 0:l.nodeName);throw new Error(t?P:\"Invalid VAST XMLDocument\")}const c=[],d=e.documentElement.childNodes,u=e.documentElement.getAttribute(\"version\");r&&u&&(this.vastVersion=u);for(const e in d){const t=d[e];if(\"Error\"===t.nodeName){const e=m.parseNodeText(t);r?this.rootErrorURLTemplates.push(e):this.errorURLTemplates.push(e)}else if(\"Ad\"===t.nodeName){if(this.vastVersion&&parseFloat(this.vastVersion)<3)s=!0;else if(!1===s&&c.length>1)break;const e=C(t,this.emit.bind(this),{allowMultipleAds:s,followAdditionalWrappers:n});e.ad?(c.push(e.ad),this.emit(\"VAST-ad-parsed\",{type:e.type,url:i,wrapperDepth:a,adIndex:c.length-1,vastVersion:u,wrapperChainId:o})):this.trackVastError(this.getErrorURLTemplates(),{ERRORCODE:101})}}return c}parse(e){let{url:t=null,resolveAll:r=!0,wrapperSequence:i=null,previousUrl:a=null,wrapperDepth:s=0,isRootVAST:n=!1,followAdditionalWrappers:o,allowMultipleAds:l,wrapperChainId:c=0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=[];this.vastVersion&&parseFloat(this.vastVersion)<3&&n&&(l=!0);try{d=this.parseVastXml(e,{isRootVAST:n,url:t,wrapperDepth:s,allowMultipleAds:l,followAdditionalWrappers:o,wrapperChainId:c})}catch(e){return Promise.reject(e)}if(1===d.length&&null!=i&&(d[0].sequence=i),!1===r){const e=m.getSortedAdPods(d),t=m.getStandAloneAds(d);e.length?d=e:t.length&&(d=[t.shift()]),this.remainingAds=t}return this.resolveAds(d,{wrapperDepth:s,previousUrl:a,url:t,wrapperChainId:c})}resolveAds(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{wrapperDepth:t,previousUrl:r,url:i,wrapperChainId:a=0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=[];return r=i,e.forEach((e=>{const i=this.resolveWrappers(e,t,r,a);s.push(i),0===t&&a++})),Promise.all(s).then((e=>u.flatten(e)))}resolveWrappers(e,t,r,i){const a={...e};return new Promise((e=>{var s;if(t++,!a.nextWrapperURL)return delete a.nextWrapperURL,e(a);if(!this.fetcher)return a.VASTAdTagURI=a.nextWrapperURL,delete a.nextWrapperURL,e(a);if(t>=this.maxWrapperDepth)return a.errorCode=302,delete a.nextWrapperURL,e(a);a.nextWrapperURL=m.resolveVastAdTagURI(a.nextWrapperURL,r);const n=null!==(s=this.parsingOptions.allowMultipleAds)&&void 0!==s?s:a.allowMultipleAds,o=a.sequence;this.fetcher.fetchVAST({url:a.nextWrapperURL,emitter:this.emit.bind(this),maxWrapperDepth:this.maxWrapperDepth,wrapperDepth:t,previousUrl:r,wrapperAd:a,wrapperChainId:i}).then((s=>this.parse(s,{url:a.nextWrapperURL,previousUrl:r,wrapperSequence:o,wrapperDepth:t,followAdditionalWrappers:a.followAdditionalWrappers,allowMultipleAds:n,wrapperChainId:i}).then((t=>{if(delete a.nextWrapperURL,0===t.length)return a.creatives=[],e(a);t.forEach((e=>{e&&m.mergeWrapperAdData(e,a)})),e(t)})))).catch((t=>{a.errorCode=t.message===P?102:301,a.errorMessage=t.message,e(a)}))}))}completeWrapperResolving(e){if(0===e.ads.length)this.trackVastError(e.errorURLTemplates,{ERRORCODE:303});else for(let t=e.ads.length-1;t>=0;t--){const r=e.ads[t],i=!r.creatives.some((e=>{var t,r;return(null===(t=e.mediaFiles)||void 0===t?void 0:t.length)>0||(null===(r=e.variations)||void 0===r?void 0:r.length)>0}));!r.errorCode&&!i||r.VASTAdTagURI||(this.trackVastError(r.errorURLTemplates.concat(e.errorURLTemplates),{ERRORCODE:r.errorCode||303},{ERRORMESSAGE:r.errorMessage||\"\"},{extensions:r.extensions},{system:r.system}),this.keepFailedAdPod&&r.sequence?r.hasFailed=!0:e.ads.splice(t,1))}}}let M=null;const W={data:{},length:0,getItem(e){return this.data[e]},setItem(e,t){this.data[e]=t,this.length=Object.keys(this.data).length},removeItem(e){delete this.data[e],this.length=Object.keys(this.data).length},clear(){this.data={},this.length=0}};class j{constructor(){this.storage=this.initStorage()}initStorage(){if(M)return M;try{M=\"undefined\"!=typeof window&&null!==window?window.localStorage||window.sessionStorage:null}catch(e){M=null}return M&&!this.isStorageDisabled(M)||(M=W,M.clear()),M}isStorageDisabled(e){const t=\"__VASTStorage__\";try{if(e.setItem(t,t),e.getItem(t)!==t)return e.removeItem(t),!0}catch(e){return!0}return e.removeItem(t),!1}getItem(e){return this.storage.getItem(e)}setItem(e,t){return this.storage.setItem(e,t)}removeItem(e){return this.storage.removeItem(e)}clear(){return this.storage.clear()}}const q=12e4;const K={get:async function(e,t){try{const r=new AbortController,i=setTimeout((()=>{throw r.abort(),new Error(\"URLHandler: Request timed out after \".concat(t.timeout||q,\" ms (408)\"))}),t.timeout||q),a=await fetch(e,{...t,signal:r.signal,credentials:t.withCredentials?\"include\":\"omit\"}).finally((()=>{clearTimeout(i)})),s=function(e){return u.isBrowserEnvironment()&&\"https:\"===window.location.protocol&&e.url.includes(\"http://\")?\"URLHandler: Cannot go from HTTPS to HTTP.\":200===e.status&&e.ok?null:\"URLHandler: \".concat(e.statusText,\" (\").concat(e.status,\")\")}(a);return s?{error:new Error(s),statusCode:a.status}:async function(e){const t=await e.text();let r;r=u.isBrowserEnvironment()?new DOMParser:new((await import(\"@xmldom/xmldom\")).DOMParser);return{xml:r.parseFromString(t,\"text/xml\"),details:{byteLength:t.length,statusCode:e.status,rawXml:t}}}(a)}catch(e){return{error:e,statusCode:\"AbortError\"===e.name?408:null}}}};class H{constructor(){this.URLTemplateFilters=[]}setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.urlHandler=e.urlHandler||e.urlhandler||K,this.fetchingOptions={...e.fetchOptions,timeout:e.timeout||q,withCredentials:Boolean(e.withCredentials)}}addURLTemplateFilter(e){\"function\"==typeof e&&this.URLTemplateFilters.push(e)}removeLastURLTemplateFilter(){this.URLTemplateFilters.pop()}countURLTemplateFilters(){return this.URLTemplateFilters.length}clearURLTemplateFilters(){this.URLTemplateFilters=[]}async fetchVAST(e){var t;let{url:r,maxWrapperDepth:i,emitter:a,wrapperDepth:s=0,previousUrl:n=null,wrapperAd:o=null,wrapperChainId:l=0}=e;const c=Date.now();this.URLTemplateFilters.forEach((e=>{r=e(r)})),a(\"VAST-resolving\",{url:r,previousUrl:n,wrapperDepth:s,maxWrapperDepth:i,timeout:this.fetchingOptions.timeout,wrapperAd:o,wrapperChainId:l});const d=await this.urlHandler.get(r,this.fetchingOptions),u=Math.round(Date.now()-c);if(a(\"VAST-resolved\",{url:r,previousUrl:n,wrapperDepth:s,error:(null==d?void 0:d.error)||null,duration:u,statusCode:(null==d?void 0:d.statusCode)||null,wrapperChainId:l,...null==d?void 0:d.details}),O(null==d||null===(t=d.details)||void 0===t?void 0:t.byteLength,u),d.error)throw new Error(d.error);return d.xml}}class _{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new j;this.cappingFreeLunch=e,this.cappingMinimumTimeInterval=t,this.fetcher=new H,this.vastParser=new B({fetcher:this.fetcher}),this.storage=r,void 0===this.lastSuccessfulAd&&(this.lastSuccessfulAd=0),void 0===this.totalCalls&&(this.totalCalls=0),void 0===this.totalCallsTimeout&&(this.totalCallsTimeout=0)}addURLTemplateFilter(e){this.fetcher.addURLTemplateFilter(e)}removeLastURLTemplateFilter(){this.fetcher.removeLastURLTemplateFilter()}countURLTemplateFilters(){return this.fetcher.countURLTemplateFilters()}clearURLTemplateFilters(){this.fetcher.clearURLTemplateFilters()}getParser(){return this.vastParser}get lastSuccessfulAd(){return this.storage.getItem(\"vast-client-last-successful-ad\")}set lastSuccessfulAd(e){this.storage.setItem(\"vast-client-last-successful-ad\",e)}get totalCalls(){return this.storage.getItem(\"vast-client-total-calls\")}set totalCalls(e){this.storage.setItem(\"vast-client-total-calls\",e)}get totalCallsTimeout(){return this.storage.getItem(\"vast-client-total-calls-timeout\")}set totalCallsTimeout(e){this.storage.setItem(\"vast-client-total-calls-timeout\",e)}hasRemainingAds(){return this.vastParser.remainingAds.length>0}getNextAds(e){return this.vastParser.getRemainingAds(e)}parseVAST(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.fetcher.setOptions(t),this.vastParser.parseVAST(e,t)}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=Date.now();return t.hasOwnProperty(\"resolveAll\")||(t.resolveAll=!1),this.totalCallsTimeout<r?(this.totalCalls=1,this.totalCallsTimeout=r+36e5):this.totalCalls++,new Promise(((i,a)=>{if(this.cappingFreeLunch>=this.totalCalls)return a(new Error(\"VAST call canceled – FreeLunch capping not reached yet \".concat(this.totalCalls,\"/\").concat(this.cappingFreeLunch)));const s=r-this.lastSuccessfulAd;if(s<0)this.lastSuccessfulAd=0;else if(s<this.cappingMinimumTimeInterval)return a(new Error(\"VAST call canceled – (\".concat(this.cappingMinimumTimeInterval,\")ms minimum interval reached\")));this.vastParser.initParsingStatus(t),this.fetcher.setOptions(t),this.vastParser.rootURL=e,this.fetcher.fetchVAST({url:e,emitter:this.vastParser.emit.bind(this.vastParser),maxWrapperDepth:this.vastParser.maxWrapperDepth}).then((r=>(t.previousUrl=e,t.isRootVAST=!0,t.url=e,this.vastParser.parse(r,t).then((e=>{const t=this.vastParser.buildVASTResponse(e);i(t)}))))).catch((e=>a(e)))}))}}class z extends S{constructor(e,t,r){var i;let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];super(),this.ad=t,this.creative=r,this.variation=a,this.muted=s,this.impressed=!1,this.skippable=!1,this.trackingEvents={},this.trackedProgressEvents=[],this.lastPercentage=0,this._alreadyTriggeredQuartiles={},this.emitAlwaysEvents=[\"creativeView\",\"start\",\"firstQuartile\",\"midpoint\",\"thirdQuartile\",\"complete\",\"resume\",\"pause\",\"rewind\",\"skip\",\"closeLinear\",\"close\"];for(const e in this.creative.trackingEvents){const t=this.creative.trackingEvents[e];this.trackingEvents[e]=t.slice(0)}this.viewableImpressionTrackers=(null===(i=this.ad.viewableImpression)||void 0===i?void 0:i.reduce(((e,t)=>(e.notViewable.push(...t.notViewable),e.viewUndetermined.push(...t.viewUndetermined),e.viewable.push(...t.viewable),e)),{notViewable:[],viewUndetermined:[],viewable:[]}))||{},Object.entries(this.viewableImpressionTrackers).forEach((e=>{let[t,r]=e;r.length&&(this.trackingEvents[t]=r)})),!function(e){return\"linear\"===e.type}(this.creative)?this._initVariationTracking():this._initLinearTracking(),e&&this.on(\"start\",(()=>{e.lastSuccessfulAd=Date.now()}))}_initLinearTracking(){this.linear=!0,this.skipDelay=this.creative.skipDelay,this.setDuration(this.creative.duration),this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates}_initVariationTracking(){if(this.linear=!1,this.skipDelay=-1,this.variation){for(const e in this.variation.trackingEvents){const t=this.variation.trackingEvents[e];this.trackingEvents[e]?this.trackingEvents[e]=this.trackingEvents[e].concat(t.slice(0)):this.trackingEvents[e]=t.slice(0)}\"nonLinearAd\"===this.variation.adType?(this.clickThroughURLTemplate=this.variation.nonlinearClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.nonlinearClickTrackingURLTemplates,this.setDuration(this.variation.minSuggestedDuration)):function(e){return\"companionAd\"===e.adType}(this.variation)&&(this.clickThroughURLTemplate=this.variation.companionClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.companionClickTrackingURLTemplates)}}setDuration(e){u.isValidTimeValue(e)?(this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}):this.emit(\"TRACKER-error\",{message:\"the duration provided is not valid. duration: \".concat(e)})}setProgress(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!u.isValidTimeValue(e)||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given setProgress parameter has the wrong type. progress: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});const i=this.skipDelay||-1;if(-1===i||this.skippable||(i>e?this.emit(\"skip-countdown\",i-e):(this.skippable=!0,this.emit(\"skip-countdown\",0))),this.assetDuration>0){const i=Math.round(e/this.assetDuration*100),a=[];if(e>0){a.push(\"start\");for(let e=this.lastPercentage;e<i;e++)a.push(\"progress-\".concat(e+1,\"%\"));a.push(\"progress-\".concat(e));for(const t in this.quartiles)this.isQuartileReached(t,this.quartiles[t],e)&&(a.push(t),this._alreadyTriggeredQuartiles[t]=!0);this.lastPercentage=i}a.forEach((e=>{this.track(e,{macros:t,once:r})})),e<this.progress&&(this.track(\"rewind\",{macros:t}),this.trackedProgressEvents&&this.trackedProgressEvents.splice(0))}this.progress=e}isQuartileReached(e,t,r){let i=!1;return t<=r&&!this._alreadyTriggeredQuartiles[e]&&(i=!0),i}setMuted(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.muted!==e&&this.track(e?\"mute\":\"unmute\",{macros:t}),this.muted=e):this.emit(\"TRACKER-error\",{message:\"One given setMuted parameter has the wrong type. muted: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setPaused(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.paused!==e&&this.track(e?\"pause\":\"resume\",{macros:t}),this.paused=e):this.emit(\"TRACKER-error\",{message:\"One given setPaused parameter has the wrong type. paused: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setFullscreen(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.fullscreen!==e&&this.track(e?\"fullscreen\":\"exitFullscreen\",{macros:t}),this.fullscreen=e):this.emit(\"TRACKER-error\",{message:\"One given setFullScreen parameter has the wrong type. fullscreen: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setExpand(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.expanded!==e&&(this.track(e?\"expand\":\"collapse\",{macros:t}),this.track(e?\"playerExpand\":\"playerCollapse\",{macros:t})),this.expanded=e):this.emit(\"TRACKER-error\",{message:\"One given setExpand parameter has the wrong type. expanded: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setSkipDelay(e){u.isValidTimeValue(e)?this.skipDelay=e:this.emit(\"TRACKER-error\",{message:\"setSkipDelay parameter does not have a valid value. duration: \".concat(e)})}trackImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.impressed||(this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates,e),this.track(\"creativeView\",{macros:e})):this.emit(\"TRACKER-error\",{message:\"trackImpression parameter has the wrong type. macros: \".concat(e)})}trackViewableImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"viewable\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackViewableImpression given macros has the wrong type. macros: \".concat(e)})}trackNotViewableImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"notViewable\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackNotViewableImpression given macros has the wrong type. macros: \".concat(e)})}trackUndeterminedImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"viewUndetermined\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackUndeterminedImpression given macros has the wrong type. macros: \".concat(e)})}error(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e&&\"boolean\"==typeof t?this.trackURLs(this.ad.errorURLTemplates,e,{isCustomCode:t}):this.emit(\"TRACKER-error\",{message:\"One given error parameter has the wrong type. macros: \".concat(u.formatMacrosValues(e),\", isCustomCode: \").concat(t)})}errorWithCode(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"string\"==typeof e&&\"boolean\"==typeof t?(this.error({ERRORCODE:e},t),console.log(\"The method errorWithCode is deprecated, please use vast tracker error method instead\")):this.emit(\"TRACKER-error\",{message:\"One given errorWithCode parameter has the wrong type. errorCode: \".concat(e,\", isCustomCode: \").concat(t)})}complete(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"complete\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"complete given macros has the wrong type. macros: \".concat(e)})}notUsed(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?(this.track(\"notUsed\",{macros:e}),this.trackingEvents=[]):this.emit(\"TRACKER-error\",{message:\"notUsed given macros has the wrong type. macros: \".concat(e)})}otherAdInteraction(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"otherAdInteraction\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"otherAdInteraction given macros has the wrong type. macros: \".concat(e)})}acceptInvitation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"acceptInvitation\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"acceptInvitation given macros has the wrong type. macros: \".concat(e)})}adExpand(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"adExpand\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"adExpand given macros has the wrong type. macros: \".concat(e)})}adCollapse(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"adCollapse\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"adCollapse given macros has the wrong type. macros: \".concat(e)})}minimize(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"minimize\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"minimize given macros has the wrong type. macros: \".concat(e)})}verificationNotExecuted(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"!=typeof e||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given verificationNotExecuted parameter has to wrong type. vendor: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});if(!this.ad||!this.ad.adVerifications||!this.ad.adVerifications.length)throw new Error(\"No adVerifications provided\");if(!e)throw new Error(\"No vendor provided, unable to find associated verificationNotExecuted\");const r=this.ad.adVerifications.find((t=>t.vendor===e));if(!r)throw new Error(\"No associated verification element found for vendor: \".concat(e));const i=r.trackingEvents;if(i&&i.verificationNotExecuted){const e=i.verificationNotExecuted;this.trackURLs(e,t),this.emit(\"verificationNotExecuted\",{trackingURLTemplates:e})}}overlayViewDuration(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"string\"==typeof e&&\"object\"==typeof t?(t.ADPLAYHEAD=e,this.track(\"overlayViewDuration\",{macros:t})):this.emit(\"TRACKER-error\",{message:\"One given overlayViewDuration parameters has the wrong type. formattedDuration: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}close(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(this.linear?\"closeLinear\":\"close\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"close given macros has the wrong type. macros: \".concat(e)})}skip(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"skip\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"skip given macros has the wrong type. macros: \".concat(e)})}load(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"loaded\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"load given macros has the wrong type. macros: \".concat(e)})}click(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!==e&&\"string\"!=typeof e||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given click parameter has the wrong type. fallbackClickThroughURL: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});this.clickTrackingURLTemplates&&this.clickTrackingURLTemplates.length&&this.trackURLs(this.clickTrackingURLTemplates,t);const r=this.clickThroughURLTemplate||e,i={...t};if(r){this.progress&&(i.ADPLAYHEAD=this.progressFormatted());const e=u.resolveURLTemplates([r],i)[0];this.emit(\"clickthrough\",e)}}trackProgressEvents(e,t,r){const i=parseFloat(e.split(\"-\")[1]);Object.entries(this.trackingEvents).filter((e=>{let[t]=e;return t.startsWith(\"progress-\")})).map((e=>{let[t,r]=e;return{name:t,time:parseFloat(t.split(\"-\")[1]),urls:r}})).filter((e=>{let{time:t}=e;return t<=i&&t>this.progress})).forEach((e=>{let{name:i,urls:a}=e;!r&&this.trackedProgressEvents.includes(i)||(this.emit(i,{trackingURLTemplates:a}),this.trackURLs(a,t),r?delete this.trackingEvents[i]:this.trackedProgressEvents.push(i))}))}track(e){let{macros:t={},once:r=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"track given macros has the wrong type. macros: \".concat(t)});\"closeLinear\"===e&&!this.trackingEvents[e]&&this.trackingEvents.close&&(e=\"close\"),e.startsWith(\"progress-\")&&!e.endsWith(\"%\")&&this.trackProgressEvents(e,t,r);const i=this.trackingEvents[e],a=this.emitAlwaysEvents.indexOf(e)>-1;i?(this.emit(e,{trackingURLTemplates:i}),this.trackURLs(i,t)):a&&this.emit(e,null),r&&(delete this.trackingEvents[e],a&&this.emitAlwaysEvents.splice(this.emitAlwaysEvents.indexOf(e),1))}trackURLs(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{validUrls:a,invalidUrls:s}=u.filterUrlTemplates(e);s.length&&this.emit(\"TRACKER-error\",{message:\"Provided urls are malformed. url: \".concat(s)});const n={...r};this.linear&&(this.creative&&this.creative.mediaFiles&&this.creative.mediaFiles[0]&&this.creative.mediaFiles[0].fileURL&&(n.ASSETURI=this.creative.mediaFiles[0].fileURL),this.progress&&(n.ADPLAYHEAD=this.progressFormatted())),null!==(t=this.creative)&&void 0!==t&&null!==(t=t.universalAdIds)&&void 0!==t&&t.length&&(n.UNIVERSALADID=this.creative.universalAdIds.map((e=>e.idRegistry.concat(\" \",e.value))).join(\",\")),this.ad&&(this.ad.sequence&&(n.PODSEQUENCE=this.ad.sequence),this.ad.adType&&(n.ADTYPE=this.ad.adType),this.ad.adServingId&&(n.ADSERVINGID=this.ad.adServingId),this.ad.categories&&this.ad.categories.length&&(n.ADCATEGORIES=this.ad.categories.map((e=>e.value)).join(\",\")),this.ad.blockedAdCategories&&this.ad.blockedAdCategories.length&&(n.BLOCKEDADCATEGORIES=this.ad.blockedAdCategories.map((e=>e.value)).join(\",\"))),u.track(a,n,i)}convertToTimecode(e){if(!u.isValidTimeValue(e))return\"\";const t=1e3*e,r=Math.floor(t/36e5),i=Math.floor(t/6e4%60),a=Math.floor(t/1e3%60),s=Math.floor(t%1e3);return\"\".concat(u.addLeadingZeros(r,2),\":\").concat(u.addLeadingZeros(i,2),\":\").concat(u.addLeadingZeros(a,2),\".\").concat(u.addLeadingZeros(s,3))}progressFormatted(){return this.convertToTimecode(this.progress)}}export{_ as VASTClient,B as VASTParser,z as VASTTracker,p as parseDuration};\n",null,null,null,null,null,null,null,null,null,null,null,"'use strict';\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties,\n * including NodeList.\n *\n * @param {T[] | { length: number; [number]: T }} list\n * @param {function (item: T, index: number, list:T[]):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac\n * Allows injecting a custom implementation in tests (`Array.prototype` by default).\n * @returns {T | undefined}\n * @template {unknown} T\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (hasOwn(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * If `Object.getOwnPropertyDescriptors` is available,\n * a new object with all properties of object but without any prototype is created and returned\n * after freezing it.\n *\n * @param {T} object\n * The object to freeze.\n * @param {Pick<ObjectConstructor, 'create' | 'freeze' | 'getOwnPropertyDescriptors'>} [oc=Object]\n * `Object` by default,\n * allows to inject custom object constructor for tests.\n * @returns {Readonly<T>}\n * @template {Object} T\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n * @prettierignore\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object;\n\t}\n\tif (oc && typeof oc.getOwnPropertyDescriptors === 'function') {\n\t\tobject = oc.create(null, oc.getOwnPropertyDescriptors(object));\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object;\n}\n\n/**\n * Implementation for `Object.hasOwn` but ES5 compatible.\n *\n * @param {any} object\n * @param {string | number} key\n * @returns {boolean}\n */\nfunction hasOwn(object, key) {\n\treturn Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Since xmldom can not rely on `Object.assign`,\n * it uses/provides a simplified version that is sufficient for its needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n * @returns {Object}\n * The target with the merged/overridden properties.\n * @throws {TypeError}\n * If target is not an object.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object');\n\t}\n\tfor (var key in source) {\n\t\tif (hasOwn(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n}\n\n/**\n * A number of attributes are boolean attributes.\n * The presence of a boolean attribute on an element represents the `true` value,\n * and the absence of the attribute represents the `false` value.\n *\n * If the attribute is present, its value must either be the empty string, or a value that is\n * an ASCII case-insensitive match for the attribute's canonical name,\n * with no leading or trailing whitespace.\n *\n * Note: The values `\"true\"` and `\"false\"` are not allowed on boolean attributes.\n * To represent a `false` value, the attribute has to be omitted altogether.\n *\n * @see https://html.spec.whatwg.org/#boolean-attributes\n * @see https://html.spec.whatwg.org/#attributes-3\n */\nvar HTML_BOOLEAN_ATTRIBUTES = freeze({\n\tallowfullscreen: true,\n\tasync: true,\n\tautofocus: true,\n\tautoplay: true,\n\tchecked: true,\n\tcontrols: true,\n\tdefault: true,\n\tdefer: true,\n\tdisabled: true,\n\tformnovalidate: true,\n\thidden: true,\n\tismap: true,\n\titemscope: true,\n\tloop: true,\n\tmultiple: true,\n\tmuted: true,\n\tnomodule: true,\n\tnovalidate: true,\n\topen: true,\n\tplaysinline: true,\n\treadonly: true,\n\trequired: true,\n\treversed: true,\n\tselected: true,\n});\n\n/**\n * Check if `name` is matching one of the HTML boolean attribute names.\n * This method doesn't check if such attributes are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} name\n * @returns {boolean}\n * @see {@link HTML_BOOLEAN_ATTRIBUTES}\n * @see https://html.spec.whatwg.org/#boolean-attributes\n * @see https://html.spec.whatwg.org/#attributes-3\n */\nfunction isHTMLBooleanAttribute(name) {\n\treturn hasOwn(HTML_BOOLEAN_ATTRIBUTES, name.toLowerCase());\n}\n\n/**\n * Void elements only have a start tag; end tags must not be specified for void elements.\n * These elements should be written as self-closing like this: `<area />`.\n * This should not be confused with optional tags that HTML allows to omit the end tag for\n * (like `li`, `tr` and others), which can have content after them,\n * so they can not be written as self-closing.\n * xmldom does not have any logic for optional end tags cases,\n * and will report them as a warning.\n * Content that would go into the unopened element,\n * will instead be added as a sibling text node.\n *\n * @type {Readonly<{\n * \tarea: boolean;\n * \tcol: boolean;\n * \timg: boolean;\n * \twbr: boolean;\n * \tlink: boolean;\n * \thr: boolean;\n * \tsource: boolean;\n * \tbr: boolean;\n * \tinput: boolean;\n * \tparam: boolean;\n * \tmeta: boolean;\n * \tembed: boolean;\n * \ttrack: boolean;\n * \tbase: boolean;\n * }>}\n * @see https://html.spec.whatwg.org/#void-elements\n * @see https://html.spec.whatwg.org/#optional-tags\n */\nvar HTML_VOID_ELEMENTS = freeze({\n\tarea: true,\n\tbase: true,\n\tbr: true,\n\tcol: true,\n\tembed: true,\n\thr: true,\n\timg: true,\n\tinput: true,\n\tlink: true,\n\tmeta: true,\n\tparam: true,\n\tsource: true,\n\ttrack: true,\n\twbr: true,\n});\n\n/**\n * Check if `tagName` is matching one of the HTML void element names.\n * This method doesn't check if such tags are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} tagName\n * @returns {boolean}\n * @see {@link HTML_VOID_ELEMENTS}\n * @see https://html.spec.whatwg.org/#void-elements\n */\nfunction isHTMLVoidElement(tagName) {\n\treturn hasOwn(HTML_VOID_ELEMENTS, tagName.toLowerCase());\n}\n\n/**\n * Tag names that are raw text elements according to HTML spec.\n * The value denotes whether they are escapable or not.\n *\n * @see {@link isHTMLEscapableRawTextElement}\n * @see {@link isHTMLRawTextElement}\n * @see https://html.spec.whatwg.org/#raw-text-elements\n * @see https://html.spec.whatwg.org/#escapable-raw-text-elements\n */\nvar HTML_RAW_TEXT_ELEMENTS = freeze({\n\tscript: false,\n\tstyle: false,\n\ttextarea: true,\n\ttitle: true,\n});\n\n/**\n * Check if `tagName` is matching one of the HTML raw text element names.\n * This method doesn't check if such tags are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} tagName\n * @returns {boolean}\n * @see {@link isHTMLEscapableRawTextElement}\n * @see {@link HTML_RAW_TEXT_ELEMENTS}\n * @see https://html.spec.whatwg.org/#raw-text-elements\n * @see https://html.spec.whatwg.org/#escapable-raw-text-elements\n */\nfunction isHTMLRawTextElement(tagName) {\n\tvar key = tagName.toLowerCase();\n\treturn hasOwn(HTML_RAW_TEXT_ELEMENTS, key) && !HTML_RAW_TEXT_ELEMENTS[key];\n}\n/**\n * Check if `tagName` is matching one of the HTML escapable raw text element names.\n * This method doesn't check if such tags are allowed in the context of the current\n * document/parsing.\n *\n * @param {string} tagName\n * @returns {boolean}\n * @see {@link isHTMLRawTextElement}\n * @see {@link HTML_RAW_TEXT_ELEMENTS}\n * @see https://html.spec.whatwg.org/#raw-text-elements\n * @see https://html.spec.whatwg.org/#escapable-raw-text-elements\n */\nfunction isHTMLEscapableRawTextElement(tagName) {\n\tvar key = tagName.toLowerCase();\n\treturn hasOwn(HTML_RAW_TEXT_ELEMENTS, key) && HTML_RAW_TEXT_ELEMENTS[key];\n}\n/**\n * Only returns true if `value` matches MIME_TYPE.HTML, which indicates an HTML document.\n *\n * @param {string} mimeType\n * @returns {mimeType is 'text/html'}\n * @see https://www.iana.org/assignments/media-types/text/html\n * @see https://en.wikipedia.org/wiki/HTML\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring\n */\nfunction isHTMLMimeType(mimeType) {\n\treturn mimeType === MIME_TYPE.HTML;\n}\n/**\n * For both the `text/html` and the `application/xhtml+xml` namespace the spec defines that the\n * HTML namespace is provided as the default.\n *\n * @param {string} mimeType\n * @returns {boolean}\n * @see https://dom.spec.whatwg.org/#dom-document-createelement\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument\n */\nfunction hasDefaultHTMLNamespace(mimeType) {\n\treturn isHTMLMimeType(mimeType) || mimeType === MIME_TYPE.XML_XHTML_APPLICATION;\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02\n * MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype\n * WHATWG HTML Spec\n * @see {@link DOMParser.prototype.parseFromString}\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring\n\t * WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType\n\t * registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/xml`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType\n\t * registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n});\n/**\n * @typedef {'application/xhtml+xml' | 'application/xml' | 'image/svg+xml' | 'text/html' | 'text/xml'}\n * MimeType\n */\n/**\n * @type {MimeType[]}\n * @private\n * Basically `Object.values`, which is not available in ES5.\n */\nvar _MIME_TYPES = Object.keys(MIME_TYPE).map(function (key) {\n\treturn MIME_TYPE[key];\n});\n\n/**\n * Only returns true if `mimeType` is one of the allowed values for\n * `DOMParser.parseFromString`.\n *\n * @param {string} mimeType\n * @returns {mimeType is 'application/xhtml+xml' | 'application/xml' | 'image/svg+xml' | 'text/html' | 'text/xml'}\n *\n */\nfunction isValidMimeType(mimeType) {\n\treturn _MIME_TYPES.indexOf(mimeType) > -1;\n}\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace.\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n});\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.HTML_BOOLEAN_ATTRIBUTES = HTML_BOOLEAN_ATTRIBUTES;\nexports.HTML_RAW_TEXT_ELEMENTS = HTML_RAW_TEXT_ELEMENTS;\nexports.HTML_VOID_ELEMENTS = HTML_VOID_ELEMENTS;\nexports.hasDefaultHTMLNamespace = hasDefaultHTMLNamespace;\nexports.hasOwn = hasOwn;\nexports.isHTMLBooleanAttribute = isHTMLBooleanAttribute;\nexports.isHTMLRawTextElement = isHTMLRawTextElement;\nexports.isHTMLEscapableRawTextElement = isHTMLEscapableRawTextElement;\nexports.isHTMLMimeType = isHTMLMimeType;\nexports.isHTMLVoidElement = isHTMLVoidElement;\nexports.isValidMimeType = isValidMimeType;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","'use strict';\n\nvar conventions = require('./conventions');\n\nfunction extendError(constructor, writableName) {\n\tconstructor.prototype = Object.create(Error.prototype, {\n\t\tconstructor: { value: constructor },\n\t\tname: { value: constructor.name, enumerable: true, writable: writableName },\n\t});\n}\n\nvar DOMExceptionName = conventions.freeze({\n\t/**\n\t * the default value as defined by the spec\n\t */\n\tError: 'Error',\n\t/**\n\t * @deprecated\n\t * Use RangeError instead.\n\t */\n\tIndexSizeError: 'IndexSizeError',\n\t/**\n\t * @deprecated\n\t * Just to match the related static code, not part of the spec.\n\t */\n\tDomstringSizeError: 'DomstringSizeError',\n\tHierarchyRequestError: 'HierarchyRequestError',\n\tWrongDocumentError: 'WrongDocumentError',\n\tInvalidCharacterError: 'InvalidCharacterError',\n\t/**\n\t * @deprecated\n\t * Just to match the related static code, not part of the spec.\n\t */\n\tNoDataAllowedError: 'NoDataAllowedError',\n\tNoModificationAllowedError: 'NoModificationAllowedError',\n\tNotFoundError: 'NotFoundError',\n\tNotSupportedError: 'NotSupportedError',\n\tInUseAttributeError: 'InUseAttributeError',\n\tInvalidStateError: 'InvalidStateError',\n\tSyntaxError: 'SyntaxError',\n\tInvalidModificationError: 'InvalidModificationError',\n\tNamespaceError: 'NamespaceError',\n\t/**\n\t * @deprecated\n\t * Use TypeError for invalid arguments,\n\t * \"NotSupportedError\" DOMException for unsupported operations,\n\t * and \"NotAllowedError\" DOMException for denied requests instead.\n\t */\n\tInvalidAccessError: 'InvalidAccessError',\n\t/**\n\t * @deprecated\n\t * Just to match the related static code, not part of the spec.\n\t */\n\tValidationError: 'ValidationError',\n\t/**\n\t * @deprecated\n\t * Use TypeError instead.\n\t */\n\tTypeMismatchError: 'TypeMismatchError',\n\tSecurityError: 'SecurityError',\n\tNetworkError: 'NetworkError',\n\tAbortError: 'AbortError',\n\t/**\n\t * @deprecated\n\t * Just to match the related static code, not part of the spec.\n\t */\n\tURLMismatchError: 'URLMismatchError',\n\tQuotaExceededError: 'QuotaExceededError',\n\tTimeoutError: 'TimeoutError',\n\tInvalidNodeTypeError: 'InvalidNodeTypeError',\n\tDataCloneError: 'DataCloneError',\n\tEncodingError: 'EncodingError',\n\tNotReadableError: 'NotReadableError',\n\tUnknownError: 'UnknownError',\n\tConstraintError: 'ConstraintError',\n\tDataError: 'DataError',\n\tTransactionInactiveError: 'TransactionInactiveError',\n\tReadOnlyError: 'ReadOnlyError',\n\tVersionError: 'VersionError',\n\tOperationError: 'OperationError',\n\tNotAllowedError: 'NotAllowedError',\n\tOptOutError: 'OptOutError',\n});\nvar DOMExceptionNames = Object.keys(DOMExceptionName);\n\nfunction isValidDomExceptionCode(value) {\n\treturn typeof value === 'number' && value >= 1 && value <= 25;\n}\nfunction endsWithError(value) {\n\treturn typeof value === 'string' && value.substring(value.length - DOMExceptionName.Error.length) === DOMExceptionName.Error;\n}\n/**\n * DOM operations only raise exceptions in \"exceptional\" circumstances, i.e., when an operation\n * is impossible to perform (either for logical reasons, because data is lost, or because the\n * implementation has become unstable). In general, DOM methods return specific error values in\n * ordinary processing situations, such as out-of-bound errors when using NodeList.\n *\n * Implementations should raise other exceptions under other circumstances. For example,\n * implementations should raise an implementation-dependent exception if a null argument is\n * passed when null was not expected.\n *\n * This implementation supports the following usages:\n * 1. according to the living standard (both arguments are optional):\n * ```\n * new DOMException(\"message (can be empty)\", DOMExceptionNames.HierarchyRequestError)\n * ```\n * 2. according to previous xmldom implementation (only the first argument is required):\n * ```\n * new DOMException(DOMException.HIERARCHY_REQUEST_ERR, \"optional message\")\n * ```\n * both result in the proper name being set.\n *\n * @class DOMException\n * @param {number | string} messageOrCode\n * The reason why an operation is not acceptable.\n * If it is a number, it is used to determine the `name`, see\n * {@link https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-258A00AF ExceptionCode}\n * @param {string | keyof typeof DOMExceptionName | Error} [nameOrMessage]\n * The `name` to use for the error.\n * If `messageOrCode` is a number, this arguments is used as the `message` instead.\n * @augments Error\n * @see https://webidl.spec.whatwg.org/#idl-DOMException\n * @see https://webidl.spec.whatwg.org/#dfn-error-names-table\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-17189187\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(messageOrCode, nameOrMessage) {\n\t// support old way of passing arguments: first argument is a valid number\n\tif (isValidDomExceptionCode(messageOrCode)) {\n\t\tthis.name = DOMExceptionNames[messageOrCode];\n\t\tthis.message = nameOrMessage || '';\n\t} else {\n\t\tthis.message = messageOrCode;\n\t\tthis.name = endsWithError(nameOrMessage) ? nameOrMessage : DOMExceptionName.Error;\n\t}\n\tif (Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n}\nextendError(DOMException, true);\nObject.defineProperties(DOMException.prototype, {\n\tcode: {\n\t\tenumerable: true,\n\t\tget: function () {\n\t\t\tvar code = DOMExceptionNames.indexOf(this.name);\n\t\t\tif (isValidDomExceptionCode(code)) return code;\n\t\t\treturn 0;\n\t\t},\n\t},\n});\n\nvar ExceptionCode = {\n\tINDEX_SIZE_ERR: 1,\n\tDOMSTRING_SIZE_ERR: 2,\n\tHIERARCHY_REQUEST_ERR: 3,\n\tWRONG_DOCUMENT_ERR: 4,\n\tINVALID_CHARACTER_ERR: 5,\n\tNO_DATA_ALLOWED_ERR: 6,\n\tNO_MODIFICATION_ALLOWED_ERR: 7,\n\tNOT_FOUND_ERR: 8,\n\tNOT_SUPPORTED_ERR: 9,\n\tINUSE_ATTRIBUTE_ERR: 10,\n\tINVALID_STATE_ERR: 11,\n\tSYNTAX_ERR: 12,\n\tINVALID_MODIFICATION_ERR: 13,\n\tNAMESPACE_ERR: 14,\n\tINVALID_ACCESS_ERR: 15,\n\tVALIDATION_ERR: 16,\n\tTYPE_MISMATCH_ERR: 17,\n\tSECURITY_ERR: 18,\n\tNETWORK_ERR: 19,\n\tABORT_ERR: 20,\n\tURL_MISMATCH_ERR: 21,\n\tQUOTA_EXCEEDED_ERR: 22,\n\tTIMEOUT_ERR: 23,\n\tINVALID_NODE_TYPE_ERR: 24,\n\tDATA_CLONE_ERR: 25,\n};\n\nvar entries = Object.entries(ExceptionCode);\nfor (var i = 0; i < entries.length; i++) {\n\tvar key = entries[i][0];\n\tDOMException[key] = entries[i][1];\n}\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @class\n * @param {string} message\n * @param {any} [locator]\n */\nfunction ParseError(message, locator) {\n\tthis.message = message;\n\tthis.locator = locator;\n\tif (Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nextendError(ParseError);\n\nexports.DOMException = DOMException;\nexports.DOMExceptionName = DOMExceptionName;\nexports.ExceptionCode = ExceptionCode;\nexports.ParseError = ParseError;\n","'use strict';\n\n/**\n * Detects relevant unicode support for regular expressions in the runtime.\n * Should the runtime not accepts the flag `u` or unicode ranges,\n * character classes without unicode handling will be used.\n *\n * @param {typeof RegExp} [RegExpImpl=RegExp]\n * For testing: the RegExp class.\n * @returns {boolean}\n * @see https://node.green/#ES2015-syntax-RegExp--y--and--u--flags\n */\nfunction detectUnicodeSupport(RegExpImpl) {\n\ttry {\n\t\tif (typeof RegExpImpl !== 'function') {\n\t\t\tRegExpImpl = RegExp;\n\t\t}\n\t\t// eslint-disable-next-line es5/no-unicode-regex,es5/no-unicode-code-point-escape\n\t\tvar match = new RegExpImpl('\\u{1d306}', 'u').exec('𝌆');\n\t\treturn !!match && match[0].length === 2;\n\t} catch (error) {}\n\treturn false;\n}\nvar UNICODE_SUPPORT = detectUnicodeSupport();\n\n/**\n * Removes `[`, `]` and any trailing quantifiers from the source of a RegExp.\n *\n * @param {RegExp} regexp\n */\nfunction chars(regexp) {\n\tif (regexp.source[0] !== '[') {\n\t\tthrow new Error(regexp + ' can not be used with chars');\n\t}\n\treturn regexp.source.slice(1, regexp.source.lastIndexOf(']'));\n}\n\n/**\n * Creates a new character list regular expression,\n * by removing `search` from the source of `regexp`.\n *\n * @param {RegExp} regexp\n * @param {string} search\n * The character(s) to remove.\n * @returns {RegExp}\n */\nfunction chars_without(regexp, search) {\n\tif (regexp.source[0] !== '[') {\n\t\tthrow new Error('/' + regexp.source + '/ can not be used with chars_without');\n\t}\n\tif (!search || typeof search !== 'string') {\n\t\tthrow new Error(JSON.stringify(search) + ' is not a valid search');\n\t}\n\tif (regexp.source.indexOf(search) === -1) {\n\t\tthrow new Error('\"' + search + '\" is not is /' + regexp.source + '/');\n\t}\n\tif (search === '-' && regexp.source.indexOf(search) !== 1) {\n\t\tthrow new Error('\"' + search + '\" is not at the first postion of /' + regexp.source + '/');\n\t}\n\treturn new RegExp(regexp.source.replace(search, ''), UNICODE_SUPPORT ? 'u' : '');\n}\n\n/**\n * Combines and Regular expressions correctly by using `RegExp.source`.\n *\n * @param {...(RegExp | string)[]} args\n * @returns {RegExp}\n */\nfunction reg(args) {\n\tvar self = this;\n\treturn new RegExp(\n\t\tArray.prototype.slice\n\t\t\t.call(arguments)\n\t\t\t.map(function (part) {\n\t\t\t\tvar isStr = typeof part === 'string';\n\t\t\t\tif (isStr && self === undefined && part === '|') {\n\t\t\t\t\tthrow new Error('use regg instead of reg to wrap expressions with `|`!');\n\t\t\t\t}\n\t\t\t\treturn isStr ? part : part.source;\n\t\t\t})\n\t\t\t.join(''),\n\t\tUNICODE_SUPPORT ? 'mu' : 'm'\n\t);\n}\n\n/**\n * Like `reg` but wraps the expression in `(?:`,`)` to create a non tracking group.\n *\n * @param {...(RegExp | string)[]} args\n * @returns {RegExp}\n */\nfunction regg(args) {\n\tif (arguments.length === 0) {\n\t\tthrow new Error('no parameters provided');\n\t}\n\treturn reg.apply(regg, ['(?:'].concat(Array.prototype.slice.call(arguments), [')']));\n}\n\n// /**\n// * Append ^ to the beginning of the expression.\n// * @param {...(RegExp | string)[]} args\n// * @returns {RegExp}\n// */\n// function reg_start(args) {\n// \tif (arguments.length === 0) {\n// \t\tthrow new Error('no parameters provided');\n// \t}\n// \treturn reg.apply(reg_start, ['^'].concat(Array.prototype.slice.call(arguments)));\n// }\n\n// https://www.w3.org/TR/xml/#document\n// `[1] document ::= prolog element Misc*`\n// https://www.w3.org/TR/xml11/#NT-document\n// `[1] document ::= ( prolog element Misc* ) - ( Char* RestrictedChar Char* )`\n\n/**\n * A character usually appearing in wrongly converted strings.\n *\n * @type {string}\n * @see https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character\n * @see https://nodejs.dev/en/api/v18/buffer/#buffers-and-character-encodings\n * @see https://www.unicode.org/faq/utf_bom.html#BOM\n * @readonly\n */\nvar UNICODE_REPLACEMENT_CHARACTER = '\\uFFFD';\n// https://www.w3.org/TR/xml/#NT-Char\n// any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.\n// `[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]`\n// https://www.w3.org/TR/xml11/#NT-Char\n// `[2] Char ::= [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]`\n// https://www.w3.org/TR/xml11/#NT-RestrictedChar\n// `[2a] RestrictedChar ::= [#x1-#x8] | [#xB-#xC] | [#xE-#x1F] | [#x7F-#x84] | [#x86-#x9F]`\n// https://www.w3.org/TR/xml11/#charsets\nvar Char = /[-\\x09\\x0A\\x0D\\x20-\\x2C\\x2E-\\uD7FF\\uE000-\\uFFFD]/; // without \\u10000-\\uEFFFF\nif (UNICODE_SUPPORT) {\n\t// eslint-disable-next-line es5/no-unicode-code-point-escape\n\tChar = reg('[', chars(Char), '\\\\u{10000}-\\\\u{10FFFF}', ']');\n}\n\nvar _SChar = /[\\x20\\x09\\x0D\\x0A]/;\nvar SChar_s = chars(_SChar);\n// https://www.w3.org/TR/xml11/#NT-S\n// `[3] S ::= (#x20 | #x9 | #xD | #xA)+`\nvar S = reg(_SChar, '+');\n// optional whitespace described as `S?` in the grammar,\n// simplified to 0-n occurrences of the character class\n// instead of 0-1 occurrences of a non-capturing group around S\nvar S_OPT = reg(_SChar, '*');\n\n// https://www.w3.org/TR/xml11/#NT-NameStartChar\n// `[4] NameStartChar ::= \":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]`\nvar NameStartChar =\n\t/[:_a-zA-Z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/; // without \\u10000-\\uEFFFF\nif (UNICODE_SUPPORT) {\n\t// eslint-disable-next-line es5/no-unicode-code-point-escape\n\tNameStartChar = reg('[', chars(NameStartChar), '\\\\u{10000}-\\\\u{10FFFF}', ']');\n}\nvar NameStartChar_s = chars(NameStartChar);\n\n// https://www.w3.org/TR/xml11/#NT-NameChar\n// `[4a] NameChar ::= NameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]`\nvar NameChar = reg('[', NameStartChar_s, chars(/[-.0-9\\xB7]/), chars(/[\\u0300-\\u036F\\u203F-\\u2040]/), ']');\n// https://www.w3.org/TR/xml11/#NT-Name\n// `[5] Name ::= NameStartChar (NameChar)*`\nvar Name = reg(NameStartChar, NameChar, '*');\n/*\nhttps://www.w3.org/TR/xml11/#NT-Names\n`[6] Names ::= Name (#x20 Name)*`\n*/\n\n// https://www.w3.org/TR/xml11/#NT-Nmtoken\n// `[7] Nmtoken ::= (NameChar)+`\nvar Nmtoken = reg(NameChar, '+');\n/*\nhttps://www.w3.org/TR/xml11/#NT-Nmtokens\n`[8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*`\nvar Nmtokens = reg(Nmtoken, regg(/\\x20/, Nmtoken), '*');\n*/\n\n// https://www.w3.org/TR/xml11/#NT-EntityRef\n// `[68] EntityRef ::= '&' Name ';'` [WFC: Entity Declared] [VC: Entity Declared] [WFC: Parsed Entity] [WFC: No Recursion]\nvar EntityRef = reg('&', Name, ';');\n// https://www.w3.org/TR/xml11/#NT-CharRef\n// `[66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'` [WFC: Legal Character]\nvar CharRef = regg(/&#[0-9]+;|&#x[0-9a-fA-F]+;/);\n\n/*\nhttps://www.w3.org/TR/xml11/#NT-Reference\n- `[67] Reference ::= EntityRef | CharRef`\n- `[66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'` [WFC: Legal Character]\n- `[68] EntityRef ::= '&' Name ';'` [WFC: Entity Declared] [VC: Entity Declared] [WFC: Parsed Entity] [WFC: No Recursion]\n*/\nvar Reference = regg(EntityRef, '|', CharRef);\n\n// https://www.w3.org/TR/xml11/#NT-PEReference\n// `[69] PEReference ::= '%' Name ';'`\n// [VC: Entity Declared] [WFC: No Recursion] [WFC: In DTD]\nvar PEReference = reg('%', Name, ';');\n\n// https://www.w3.org/TR/xml11/#NT-EntityValue\n// `[9] EntityValue ::= '\"' ([^%&\"] | PEReference | Reference)* '\"' | \"'\" ([^%&'] | PEReference | Reference)* \"'\"`\nvar EntityValue = regg(\n\treg('\"', regg(/[^%&\"]/, '|', PEReference, '|', Reference), '*', '\"'),\n\t'|',\n\treg(\"'\", regg(/[^%&']/, '|', PEReference, '|', Reference), '*', \"'\")\n);\n\n// https://www.w3.org/TR/xml11/#NT-AttValue\n// `[10] AttValue ::= '\"' ([^<&\"] | Reference)* '\"' | \"'\" ([^<&'] | Reference)* \"'\"`\nvar AttValue = regg('\"', regg(/[^<&\"]/, '|', Reference), '*', '\"', '|', \"'\", regg(/[^<&']/, '|', Reference), '*', \"'\");\n\n// https://www.w3.org/TR/xml-names/#ns-decl\n// https://www.w3.org/TR/xml-names/#ns-qualnames\n// NameStartChar without \":\"\nvar NCNameStartChar = chars_without(NameStartChar, ':');\n// https://www.w3.org/TR/xml-names/#orphans\n// `[5] NCNameChar ::= NameChar - ':'`\n// An XML NameChar, minus the \":\"\nvar NCNameChar = chars_without(NameChar, ':');\n// https://www.w3.org/TR/xml-names/#NT-NCName\n// `[4] NCName ::= Name - (Char* ':' Char*)`\n// An XML Name, minus the \":\"\nvar NCName = reg(NCNameStartChar, NCNameChar, '*');\n\n/**\nhttps://www.w3.org/TR/xml-names/#ns-qualnames\n\n```\n[7] QName ::= PrefixedName | UnprefixedName\n\t\t\t\t === (NCName ':' NCName) | NCName\n\t\t\t\t === NCName (':' NCName)?\n[8] PrefixedName ::= Prefix ':' LocalPart\n\t\t\t\t\t\t\t\t === NCName ':' NCName\n[9] UnprefixedName ::= LocalPart\n\t\t\t\t\t\t\t\t\t === NCName\n[10] Prefix ::= NCName\n[11] LocalPart ::= NCName\n```\n*/\nvar QName = reg(NCName, regg(':', NCName), '?');\nvar QName_exact = reg('^', QName, '$');\nvar QName_group = reg('(', QName, ')');\n\n// https://www.w3.org/TR/xml11/#NT-SystemLiteral\n// `[11] SystemLiteral ::= ('\"' [^\"]* '\"') | (\"'\" [^']* \"'\")`\nvar SystemLiteral = regg(/\"[^\"]*\"|'[^']*'/);\n\n/*\n https://www.w3.org/TR/xml11/#NT-PI\n ```\n [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))\n [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'\n ```\n target /xml/i is not excluded!\n*/\nvar PI = reg(/^<\\?/, '(', Name, ')', regg(S, '(', Char, '*?)'), '?', /\\?>/);\n\n// https://www.w3.org/TR/xml11/#NT-PubidChar\n// `[13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]`\nvar PubidChar = /[\\x20\\x0D\\x0Aa-zA-Z0-9-'()+,./:=?;!*#@$_%]/;\n\n// https://www.w3.org/TR/xml11/#NT-PubidLiteral\n// `[12] PubidLiteral ::= '\"' PubidChar* '\"' | \"'\" (PubidChar - \"'\")* \"'\"`\nvar PubidLiteral = regg('\"', PubidChar, '*\"', '|', \"'\", chars_without(PubidChar, \"'\"), \"*'\");\n\n// https://www.w3.org/TR/xml11/#NT-CharData\n// `[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)`\n\nvar COMMENT_START = '<!--';\nvar COMMENT_END = '-->';\n// https://www.w3.org/TR/xml11/#NT-Comment\n// `[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'`\nvar Comment = reg(COMMENT_START, regg(chars_without(Char, '-'), '|', reg('-', chars_without(Char, '-'))), '*', COMMENT_END);\n\nvar PCDATA = '#PCDATA';\n// https://www.w3.org/TR/xml11/#NT-Mixed\n// `[51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA' S? ')'`\n// https://www.w3.org/TR/xml-names/#NT-Mixed\n// `[51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? QName)* S? ')*' | '(' S? '#PCDATA' S? ')'`\n// [VC: Proper Group/PE Nesting] [VC: No Duplicate Types]\nvar Mixed = regg(\n\treg(/\\(/, S_OPT, PCDATA, regg(S_OPT, /\\|/, S_OPT, QName), '*', S_OPT, /\\)\\*/),\n\t'|',\n\treg(/\\(/, S_OPT, PCDATA, S_OPT, /\\)/)\n);\n\nvar _children_quantity = /[?*+]?/;\n/*\n `[49] choice ::= '(' S? cp ( S? '|' S? cp )+ S? ')'` [VC: Proper Group/PE Nesting]\n `[50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'` [VC: Proper Group/PE Nesting]\n simplification to solve circular referencing, but doesn't check validity constraint \"Proper Group/PE Nesting\"\n var _choice_or_seq = reg('[', NameChar_s, SChar_s, chars(_children_quantity), '()|,]*');\n ```\n [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?\n === (Name | '(' S? cp ( S? '|' S? cp )+ S? ')' | '(' S? cp ( S? ',' S? cp )* S? ')') ('?' | '*' | '+')?\n !== (Name | [_choice_or_seq]*) ('?' | '*' | '+')?\n ```\n simplification to solve circular referencing, but doesn't check validity constraint \"Proper Group/PE Nesting\"\n var cp = reg(regg(Name, '|', _choice_or_seq), _children_quantity);\n*/\n/*\nInefficient regular expression (High)\nThis part of the regular expression may cause exponential backtracking on strings starting with '(|' and containing many repetitions of '|'.\nhttps://github.com/xmldom/xmldom/security/code-scanning/91\nvar choice = regg(/\\(/, S_OPT, cp, regg(S_OPT, /\\|/, S_OPT, cp), '+', S_OPT, /\\)/);\n*/\n/*\nInefficient regular expression (High)\nThis part of the regular expression may cause exponential backtracking on strings starting with '(,' and containing many repetitions of ','.\nhttps://github.com/xmldom/xmldom/security/code-scanning/92\nvar seq = regg(/\\(/, S_OPT, cp, regg(S_OPT, /,/, S_OPT, cp), '*', S_OPT, /\\)/);\n*/\n\n// `[47] children ::= (choice | seq) ('?' | '*' | '+')?`\n// simplification to solve circular referencing, but doesn't check validity constraint \"Proper Group/PE Nesting\"\nvar children = reg(/\\([^>]+\\)/, _children_quantity /*regg(choice, '|', seq), _children_quantity*/);\n\n// https://www.w3.org/TR/xml11/#NT-contentspec\n// `[46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children`\nvar contentspec = regg('EMPTY', '|', 'ANY', '|', Mixed, '|', children);\n\nvar ELEMENTDECL_START = '<!ELEMENT';\n// https://www.w3.org/TR/xml11/#NT-elementdecl\n// `[45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'`\n// https://www.w3.org/TR/xml-names/#NT-elementdecl\n// `[17] elementdecl ::= '<!ELEMENT' S QName S contentspec S? '>'`\n// because of https://www.w3.org/TR/xml11/#NT-PEReference\n// since xmldom is not supporting replacements of PEReferences in the DTD\n// this also supports PEReference in the possible places\nvar elementdecl = reg(ELEMENTDECL_START, S, regg(QName, '|', PEReference), S, regg(contentspec, '|', PEReference), S_OPT, '>');\n\n// https://www.w3.org/TR/xml11/#NT-NotationType\n// `[58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'`\n// [VC: Notation Attributes] [VC: One Notation Per Element Type] [VC: No Notation on Empty Element] [VC: No Duplicate Tokens]\nvar NotationType = reg('NOTATION', S, /\\(/, S_OPT, Name, regg(S_OPT, /\\|/, S_OPT, Name), '*', S_OPT, /\\)/);\n// https://www.w3.org/TR/xml11/#NT-Enumeration\n// `[59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'`\n// [VC: Enumeration] [VC: No Duplicate Tokens]\nvar Enumeration = reg(/\\(/, S_OPT, Nmtoken, regg(S_OPT, /\\|/, S_OPT, Nmtoken), '*', S_OPT, /\\)/);\n\n// https://www.w3.org/TR/xml11/#NT-EnumeratedType\n// `[57] EnumeratedType ::= NotationType | Enumeration`\nvar EnumeratedType = regg(NotationType, '|', Enumeration);\n\n/*\n```\n[55] StringType ::= 'CDATA'\n[56] TokenizedType ::= 'ID' [VC: ID] [VC: One ID per Element Type] [VC: ID Attribute Default]\n | 'IDREF' [VC: IDREF]\n | 'IDREFS' [VC: IDREF]\n\t | 'ENTITY' [VC: Entity Name]\n\t | 'ENTITIES' [VC: Entity Name]\n\t | 'NMTOKEN' [VC: Name Token]\n\t | 'NMTOKENS' [VC: Name Token]\n [54] AttType ::= StringType | TokenizedType | EnumeratedType\n```*/\nvar AttType = regg(/CDATA|ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS/, '|', EnumeratedType);\n\n// `[60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue)`\n// [WFC: No < in Attribute Values] [WFC: No External Entity References]\n// [VC: Fixed Attribute Default] [VC: Required Attribute] [VC: Attribute Default Value Syntactically Correct]\nvar DefaultDecl = regg(/#REQUIRED|#IMPLIED/, '|', regg(regg('#FIXED', S), '?', AttValue));\n\n// https://www.w3.org/TR/xml11/#NT-AttDef\n// [53] AttDef ::= S Name S AttType S DefaultDecl\n// https://www.w3.org/TR/xml-names/#NT-AttDef\n// [1] NSAttName ::= PrefixedAttName | DefaultAttName\n// [2] PrefixedAttName ::= 'xmlns:' NCName [NSC: Reserved Prefixes and Namespace Names]\n// [3] DefaultAttName ::= 'xmlns'\n// [21] AttDef ::= S (QName | NSAttName) S AttType S DefaultDecl\n// \t\t\t\t\t\t === S Name S AttType S DefaultDecl\n// xmldom is not distinguishing between QName and NSAttName on this level\n// to support XML without namespaces in DTD we can not restrict it to QName\nvar AttDef = regg(S, Name, S, AttType, S, DefaultDecl);\n\nvar ATTLIST_DECL_START = '<!ATTLIST';\n// https://www.w3.org/TR/xml11/#NT-AttlistDecl\n// `[52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'`\n// https://www.w3.org/TR/xml-names/#NT-AttlistDecl\n// `[20] AttlistDecl ::= '<!ATTLIST' S QName AttDef* S? '>'`\n// to support XML without namespaces in DTD we can not restrict it to QName\nvar AttlistDecl = reg(ATTLIST_DECL_START, S, Name, AttDef, '*', S_OPT, '>');\n\n// https://html.spec.whatwg.org/multipage/urls-and-fetching.html#about:legacy-compat\nvar ABOUT_LEGACY_COMPAT = 'about:legacy-compat';\nvar ABOUT_LEGACY_COMPAT_SystemLiteral = regg('\"' + ABOUT_LEGACY_COMPAT + '\"', '|', \"'\" + ABOUT_LEGACY_COMPAT + \"'\");\nvar SYSTEM = 'SYSTEM';\nvar PUBLIC = 'PUBLIC';\n// https://www.w3.org/TR/xml11/#NT-ExternalID\n// `[75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral`\nvar ExternalID = regg(regg(SYSTEM, S, SystemLiteral), '|', regg(PUBLIC, S, PubidLiteral, S, SystemLiteral));\nvar ExternalID_match = reg(\n\t'^',\n\tregg(\n\t\tregg(SYSTEM, S, '(?<SystemLiteralOnly>', SystemLiteral, ')'),\n\t\t'|',\n\t\tregg(PUBLIC, S, '(?<PubidLiteral>', PubidLiteral, ')', S, '(?<SystemLiteral>', SystemLiteral, ')')\n\t)\n);\n\n// https://www.w3.org/TR/xml11/#NT-NDataDecl\n// `[76] NDataDecl ::= S 'NDATA' S Name` [VC: Notation Declared]\nvar NDataDecl = regg(S, 'NDATA', S, Name);\n\n// https://www.w3.org/TR/xml11/#NT-EntityDef\n// `[73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)`\nvar EntityDef = regg(EntityValue, '|', regg(ExternalID, NDataDecl, '?'));\n\nvar ENTITY_DECL_START = '<!ENTITY';\n// https://www.w3.org/TR/xml11/#NT-GEDecl\n// `[71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'`\nvar GEDecl = reg(ENTITY_DECL_START, S, Name, S, EntityDef, S_OPT, '>');\n// https://www.w3.org/TR/xml11/#NT-PEDef\n// `[74] PEDef ::= EntityValue | ExternalID`\nvar PEDef = regg(EntityValue, '|', ExternalID);\n// https://www.w3.org/TR/xml11/#NT-PEDecl\n// `[72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'`\nvar PEDecl = reg(ENTITY_DECL_START, S, '%', S, Name, S, PEDef, S_OPT, '>');\n// https://www.w3.org/TR/xml11/#NT-EntityDecl\n// `[70] EntityDecl ::= GEDecl | PEDecl`\nvar EntityDecl = regg(GEDecl, '|', PEDecl);\n\n// https://www.w3.org/TR/xml11/#NT-PublicID\n// `[83] PublicID ::= 'PUBLIC' S PubidLiteral`\nvar PublicID = reg(PUBLIC, S, PubidLiteral);\n// https://www.w3.org/TR/xml11/#NT-NotationDecl\n// `[82] NotationDecl ::= '<!NOTATION' S Name S (ExternalID | PublicID) S? '>'` [VC: Unique Notation Name]\nvar NotationDecl = reg('<!NOTATION', S, Name, S, regg(ExternalID, '|', PublicID), S_OPT, '>');\n\n// https://www.w3.org/TR/xml11/#NT-Eq\n// `[25] Eq ::= S? '=' S?`\nvar Eq = reg(S_OPT, '=', S_OPT);\n// https://www.w3.org/TR/xml/#NT-VersionNum\n// `[26] VersionNum ::= '1.' [0-9]+`\n// https://www.w3.org/TR/xml11/#NT-VersionNum\n// `[26] VersionNum ::= '1.1'`\nvar VersionNum = /1[.]\\d+/;\n// https://www.w3.org/TR/xml11/#NT-VersionInfo\n// `[24] VersionInfo ::= S 'version' Eq (\"'\" VersionNum \"'\" | '\"' VersionNum '\"')`\nvar VersionInfo = reg(S, 'version', Eq, regg(\"'\", VersionNum, \"'\", '|', '\"', VersionNum, '\"'));\n// https://www.w3.org/TR/xml11/#NT-EncName\n// `[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*`\nvar EncName = /[A-Za-z][-A-Za-z0-9._]*/;\n// https://www.w3.org/TR/xml11/#NT-EncDecl\n// `[80] EncodingDecl ::= S 'encoding' Eq ('\"' EncName '\"' | \"'\" EncName \"'\" )`\nvar EncodingDecl = regg(S, 'encoding', Eq, regg('\"', EncName, '\"', '|', \"'\", EncName, \"'\"));\n// https://www.w3.org/TR/xml11/#NT-SDDecl\n// `[32] SDDecl ::= S 'standalone' Eq ((\"'\" ('yes' | 'no') \"'\") | ('\"' ('yes' | 'no') '\"'))`\nvar SDDecl = regg(S, 'standalone', Eq, regg(\"'\", regg('yes', '|', 'no'), \"'\", '|', '\"', regg('yes', '|', 'no'), '\"'));\n// https://www.w3.org/TR/xml11/#NT-XMLDecl\n// [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'\nvar XMLDecl = reg(/^<\\?xml/, VersionInfo, EncodingDecl, '?', SDDecl, '?', S_OPT, /\\?>/);\n\n/*\n https://www.w3.org/TR/xml/#NT-markupdecl\n https://www.w3.org/TR/xml11/#NT-markupdecl\n `[29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment`\n var markupdecl = regg(elementdecl, '|', AttlistDecl, '|', EntityDecl, '|', NotationDecl, '|', PI_unsafe, '|', Comment);\n*/\n/*\n https://www.w3.org/TR/xml-names/#NT-doctypedecl\n`[28a] DeclSep ::= PEReference | S`\n https://www.w3.org/TR/xml11/#NT-intSubset\n```\n [28b] intSubset ::= (markupdecl | DeclSep)*\n === (markupdecl | PEReference | S)*\n```\n [WFC: PE Between Declarations]\n var intSubset = reg(regg(markupdecl, '|', PEReference, '|', S), '*');\n*/\nvar DOCTYPE_DECL_START = '<!DOCTYPE';\n/*\n https://www.w3.org/TR/xml11/#NT-doctypedecl\n `[28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' intSubset ']' S?)? '>'`\n https://www.afterwardsw3.org/TR/xml-names/#NT-doctypedecl\n `[16] doctypedecl ::= '<!DOCTYPE' S QName (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'`\n var doctypedecl = reg('<!DOCTYPE', S, Name, regg(S, ExternalID), '?', S_OPT, regg(/\\[/, intSubset, /]/, S_OPT), '?', '>');\n*/\n\nvar CDATA_START = '<![CDATA[';\nvar CDATA_END = ']]>';\nvar CDStart = /<!\\[CDATA\\[/;\nvar CDEnd = /\\]\\]>/;\nvar CData = reg(Char, '*?', CDEnd);\n/*\n https://www.w3.org/TR/xml/#dt-cdsection\n `[18] \tCDSect\t ::= \tCDStart CData CDEnd`\n `[19] \tCDStart\t ::= \t'<![CDATA['`\n `[20] \tCData\t ::= \t(Char* - (Char* ']]>' Char*))`\n `[21] \tCDEnd\t ::= \t']]>'`\n*/\nvar CDSect = reg(CDStart, CData);\n\n// unit tested\nexports.chars = chars;\nexports.chars_without = chars_without;\nexports.detectUnicodeSupport = detectUnicodeSupport;\nexports.reg = reg;\nexports.regg = regg;\nexports.ABOUT_LEGACY_COMPAT = ABOUT_LEGACY_COMPAT;\nexports.ABOUT_LEGACY_COMPAT_SystemLiteral = ABOUT_LEGACY_COMPAT_SystemLiteral;\nexports.AttlistDecl = AttlistDecl;\nexports.CDATA_START = CDATA_START;\nexports.CDATA_END = CDATA_END;\nexports.CDSect = CDSect;\nexports.Char = Char;\nexports.Comment = Comment;\nexports.COMMENT_START = COMMENT_START;\nexports.COMMENT_END = COMMENT_END;\nexports.DOCTYPE_DECL_START = DOCTYPE_DECL_START;\nexports.elementdecl = elementdecl;\nexports.EntityDecl = EntityDecl;\nexports.EntityValue = EntityValue;\nexports.ExternalID = ExternalID;\nexports.ExternalID_match = ExternalID_match;\nexports.Name = Name;\nexports.NotationDecl = NotationDecl;\nexports.Reference = Reference;\nexports.PEReference = PEReference;\nexports.PI = PI;\nexports.PUBLIC = PUBLIC;\nexports.PubidLiteral = PubidLiteral;\nexports.QName = QName;\nexports.QName_exact = QName_exact;\nexports.QName_group = QName_group;\nexports.S = S;\nexports.SChar_s = SChar_s;\nexports.S_OPT = S_OPT;\nexports.SYSTEM = SYSTEM;\nexports.SystemLiteral = SystemLiteral;\nexports.UNICODE_REPLACEMENT_CHARACTER = UNICODE_REPLACEMENT_CHARACTER;\nexports.UNICODE_SUPPORT = UNICODE_SUPPORT;\nexports.XMLDecl = XMLDecl;\n","'use strict';\n\nvar conventions = require('./conventions');\nvar find = conventions.find;\nvar hasDefaultHTMLNamespace = conventions.hasDefaultHTMLNamespace;\nvar hasOwn = conventions.hasOwn;\nvar isHTMLMimeType = conventions.isHTMLMimeType;\nvar isHTMLRawTextElement = conventions.isHTMLRawTextElement;\nvar isHTMLVoidElement = conventions.isHTMLVoidElement;\nvar MIME_TYPE = conventions.MIME_TYPE;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * Private DOM Constructor symbol\n *\n * Internal symbol used for construction of all classes whose constructors should be private.\n * Currently used for checks in `Node`, `Document`, `Element`, `Attr`, `CharacterData`, `Text`, `Comment`,\n * `CDATASection`, `DocumentType`, `Notation`, `Entity`, `EntityReference`, `DocumentFragment`, `ProcessingInstruction`\n * so the constructor can't be used from outside the module.\n */\nvar PDC = Symbol();\n\nvar errors = require('./errors');\nvar DOMException = errors.DOMException;\nvar DOMExceptionName = errors.DOMExceptionName;\n\nvar g = require('./grammar');\n\n/**\n * Checks if the given symbol equals the Private DOM Constructor symbol (PDC)\n * and throws an Illegal constructor exception when the symbols don't match.\n * This ensures that the constructor remains private and can't be used outside this module.\n */\nfunction checkSymbol(symbol) {\n\tif (symbol !== PDC) {\n\t\tthrow new TypeError('Illegal constructor');\n\t}\n}\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty.\n *\n * @param {string} input\n * The string to be checked.\n * @returns {boolean}\n * Returns `true` if the input string is not empty, `false` otherwise.\n */\nfunction notEmptyString(input) {\n\treturn input !== '';\n}\n/**\n * Splits a string on ASCII whitespace characters (U+0009 TAB, U+000A LF, U+000C FF, U+000D CR,\n * U+0020 SPACE).\n * It follows the definition from the infra specification from WHATWG.\n *\n * @param {string} input\n * The string to be split.\n * @returns {string[]}\n * An array of the split strings. The array can be empty if the input string is empty or only\n * contains whitespace characters.\n * @see {@link https://infra.spec.whatwg.org/#split-on-ascii-whitespace}\n * @see {@link https://infra.spec.whatwg.org/#ascii-whitespace}\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : [];\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * The current record object to which the element will be added as a key.\n * The object's keys are string types and values are either boolean or undefined.\n * @param {string} element\n * The string to be added as a key to the current record.\n * @returns {Record<string, boolean | undefined>}\n * The updated record object after the addition of the new element.\n */\nfunction orderedSetReducer(current, element) {\n\tif (!hasOwn(current, element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * Converts a string into an ordered set by splitting the input on ASCII whitespace and\n * ensuring uniqueness of elements.\n * This follows the definition of an ordered set from the infra specification by WHATWG.\n *\n * @param {string} input\n * The input string to be transformed into an ordered set.\n * @returns {string[]}\n * An array of unique strings obtained from the input, preserving the original order.\n * The array can be empty if the input string is empty or only contains whitespace characters.\n * @see {@link https://infra.spec.whatwg.org/#ordered-set}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}));\n}\n\n/**\n * Uses `list.indexOf` to implement a function that behaves like `Array.prototype.includes`.\n * This function is used in environments where `Array.prototype.includes` may not be available.\n *\n * @param {any[]} list\n * The array in which to search for the element.\n * @returns {function(any): boolean}\n * A function that accepts an element and returns a boolean indicating whether the element is\n * included in the provided list.\n */\nfunction arrayIncludes(list) {\n\treturn function (element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t};\n}\n\n/**\n * Validates a qualified name based on the criteria provided in the DOM specification by\n * WHATWG.\n *\n * @param {string} qualifiedName\n * The qualified name to be validated.\n * @throws {DOMException}\n * With code {@link DOMException.INVALID_CHARACTER_ERR} if the qualified name contains an\n * invalid character.\n * @see {@link https://dom.spec.whatwg.org/#validate}\n */\nfunction validateQualifiedName(qualifiedName) {\n\tif (!g.QName_exact.test(qualifiedName)) {\n\t\tthrow new DOMException(DOMException.INVALID_CHARACTER_ERR, 'invalid character in qualified name \"' + qualifiedName + '\"');\n\t}\n}\n\n/**\n * Validates a qualified name and the namespace associated with it,\n * based on the criteria provided in the DOM specification by WHATWG.\n *\n * @param {string | null} namespace\n * The namespace to be validated. It can be a string or null.\n * @param {string} qualifiedName\n * The qualified name to be validated.\n * @returns {[namespace: string | null, prefix: string | null, localName: string]}\n * Returns a tuple with the namespace,\n * prefix and local name of the qualified name.\n * @throws {DOMException}\n * Throws a DOMException if the qualified name or the namespace is not valid.\n * @see {@link https://dom.spec.whatwg.org/#validate-and-extract}\n */\nfunction validateAndExtract(namespace, qualifiedName) {\n\tvalidateQualifiedName(qualifiedName);\n\tnamespace = namespace || null;\n\t/**\n\t * @type {string | null}\n\t */\n\tvar prefix = null;\n\tvar localName = qualifiedName;\n\tif (qualifiedName.indexOf(':') >= 0) {\n\t\tvar splitResult = qualifiedName.split(':');\n\t\tprefix = splitResult[0];\n\t\tlocalName = splitResult[1];\n\t}\n\tif (prefix !== null && namespace === null) {\n\t\tthrow new DOMException(DOMException.NAMESPACE_ERR, 'prefix is non-null and namespace is null');\n\t}\n\tif (prefix === 'xml' && namespace !== conventions.NAMESPACE.XML) {\n\t\tthrow new DOMException(DOMException.NAMESPACE_ERR, 'prefix is \"xml\" and namespace is not the XML namespace');\n\t}\n\tif ((prefix === 'xmlns' || qualifiedName === 'xmlns') && namespace !== conventions.NAMESPACE.XMLNS) {\n\t\tthrow new DOMException(\n\t\t\tDOMException.NAMESPACE_ERR,\n\t\t\t'either qualifiedName or prefix is \"xmlns\" and namespace is not the XMLNS namespace'\n\t\t);\n\t}\n\tif (namespace === conventions.NAMESPACE.XMLNS && prefix !== 'xmlns' && qualifiedName !== 'xmlns') {\n\t\tthrow new DOMException(\n\t\t\tDOMException.NAMESPACE_ERR,\n\t\t\t'namespace is the XMLNS namespace and neither qualifiedName nor prefix is \"xmlns\"'\n\t\t);\n\t}\n\treturn [namespace, prefix, localName];\n}\n\n/**\n * Copies properties from one object to another.\n * It only copies the object's own (not inherited) properties.\n *\n * @param {Object} src\n * The source object from which properties are copied.\n * @param {Object} dest\n * The destination object to which properties are copied.\n */\nfunction copy(src, dest) {\n\tfor (var p in src) {\n\t\tif (hasOwn(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n * Extends a class with the properties and methods of a super class.\n * It uses a form of prototypal inheritance, and establishes the `constructor` property\n * correctly(?).\n *\n * It is not clear to the current maintainers if this implementation is making sense,\n * since it creates an intermediate prototype function,\n * which all properties of `Super` are copied onto using `_copy`.\n *\n * @param {Object} Class\n * The class that is to be extended.\n * @param {Object} Super\n * The super class from which properties and methods are inherited.\n * @private\n */\nfunction _extends(Class, Super) {\n\tvar pt = Class.prototype;\n\tif (!(pt instanceof Super)) {\n\t\tfunction t() {}\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt, t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif (pt.constructor != Class) {\n\t\tif (typeof Class != 'function') {\n\t\t\tconsole.error('unknown Class:' + Class);\n\t\t}\n\t\tpt.constructor = Class;\n\t}\n}\n\nvar NodeType = {};\nvar ELEMENT_NODE = (NodeType.ELEMENT_NODE = 1);\nvar ATTRIBUTE_NODE = (NodeType.ATTRIBUTE_NODE = 2);\nvar TEXT_NODE = (NodeType.TEXT_NODE = 3);\nvar CDATA_SECTION_NODE = (NodeType.CDATA_SECTION_NODE = 4);\nvar ENTITY_REFERENCE_NODE = (NodeType.ENTITY_REFERENCE_NODE = 5);\nvar ENTITY_NODE = (NodeType.ENTITY_NODE = 6);\nvar PROCESSING_INSTRUCTION_NODE = (NodeType.PROCESSING_INSTRUCTION_NODE = 7);\nvar COMMENT_NODE = (NodeType.COMMENT_NODE = 8);\nvar DOCUMENT_NODE = (NodeType.DOCUMENT_NODE = 9);\nvar DOCUMENT_TYPE_NODE = (NodeType.DOCUMENT_TYPE_NODE = 10);\nvar DOCUMENT_FRAGMENT_NODE = (NodeType.DOCUMENT_FRAGMENT_NODE = 11);\nvar NOTATION_NODE = (NodeType.NOTATION_NODE = 12);\n\nvar DocumentPosition = conventions.freeze({\n\tDOCUMENT_POSITION_DISCONNECTED: 1,\n\tDOCUMENT_POSITION_PRECEDING: 2,\n\tDOCUMENT_POSITION_FOLLOWING: 4,\n\tDOCUMENT_POSITION_CONTAINS: 8,\n\tDOCUMENT_POSITION_CONTAINED_BY: 16,\n\tDOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,\n});\n\n//helper functions for compareDocumentPosition\n/**\n * Finds the common ancestor in two parent chains.\n *\n * @param {Node[]} a\n * The first parent chain.\n * @param {Node[]} b\n * The second parent chain.\n * @returns {Node}\n * The common ancestor node if it exists. If there is no common ancestor, the function will\n * return `null`.\n */\nfunction commonAncestor(a, b) {\n\tif (b.length < a.length) return commonAncestor(b, a);\n\tvar c = null;\n\tfor (var n in a) {\n\t\tif (a[n] !== b[n]) return c;\n\t\tc = a[n];\n\t}\n\treturn c;\n}\n\n/**\n * Assigns a unique identifier to a document to ensure consistency while comparing unrelated\n * nodes.\n *\n * @param {Document} doc\n * The document to which a unique identifier is to be assigned.\n * @returns {string}\n * The unique identifier of the document. If the document already had a unique identifier, the\n * function will return the existing one.\n */\nfunction docGUID(doc) {\n\tif (!doc.guid) doc.guid = Math.random();\n\treturn doc.guid;\n}\n//-- end of helper functions\n\n/**\n * The NodeList interface provides the abstraction of an ordered collection of nodes,\n * without defining or constraining how this collection is implemented.\n * NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n * You can also access the items of the NodeList with a `for...of` loop.\n *\n * @class NodeList\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * @constructs NodeList\n */\nfunction NodeList() {}\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1\n\t * inclusive.\n\t *\n\t * @type {number}\n\t */\n\tlength: 0,\n\t/**\n\t * Returns the item at `index`. If index is greater than or equal to the number of nodes in\n\t * the list, this returns null.\n\t *\n\t * @param index\n\t * Unsigned long Index into the collection.\n\t * @returns {Node | null}\n\t * The node at position `index` in the NodeList,\n\t * or null if that is not a valid index.\n\t */\n\titem: function (index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\t/**\n\t * Returns a string representation of the NodeList.\n\t *\n\t * @param {unknown} nodeFilter\n\t * __A filter function? Not implemented according to the spec?__.\n\t * @returns {string}\n\t * A string representation of the NodeList.\n\t */\n\ttoString: function (nodeFilter) {\n\t\tfor (var buf = [], i = 0; i < this.length; i++) {\n\t\t\tserializeToString(this[i], buf, nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * Filters the NodeList based on a predicate.\n\t *\n\t * @param {function(Node): boolean} predicate\n\t * - A predicate function to filter the NodeList.\n\t * @returns {Node[]}\n\t * An array of nodes that satisfy the predicate.\n\t * @private\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * Returns the first index at which a given node can be found in the NodeList, or -1 if it is\n\t * not present.\n\t *\n\t * @param {Node} item\n\t * - The Node item to locate in the NodeList.\n\t * @returns {number}\n\t * The first index of the node in the NodeList; -1 if not found.\n\t * @private\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\nNodeList.prototype[Symbol.iterator] = function () {\n\tvar me = this;\n\tvar index = 0;\n\n\treturn {\n\t\tnext: function () {\n\t\t\tif (index < me.length) {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: me[index++],\n\t\t\t\t\tdone: false,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn {\n\t\t\t\t\tdone: true,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\treturn: function () {\n\t\t\treturn {\n\t\t\t\tdone: true,\n\t\t\t};\n\t\t},\n\t};\n};\n\n/**\n * Represents a live collection of nodes that is automatically updated when its associated\n * document changes.\n *\n * @class LiveNodeList\n * @param {Node} node\n * The associated node.\n * @param {function} refresh\n * The function to refresh the live node list.\n * @augments NodeList\n * @constructs LiveNodeList\n */\nfunction LiveNodeList(node, refresh) {\n\tthis._node = node;\n\tthis._refresh = refresh;\n\t_updateLiveList(this);\n}\n/**\n * Updates the live node list.\n *\n * @param {LiveNodeList} list\n * The live node list to update.\n * @private\n */\nfunction _updateLiveList(list) {\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list, 'length', ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (hasOwn(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls, list);\n\t\tlist._inc = inc;\n\t}\n}\n/**\n * Returns the node at position `index` in the LiveNodeList, or null if that is not a valid\n * index.\n *\n * @param {number} i\n * Index into the collection.\n * @returns {Node | null}\n * The node at position `index` in the LiveNodeList, or null if that is not a valid index.\n */\nLiveNodeList.prototype.item = function (i) {\n\t_updateLiveList(this);\n\treturn this[i] || null;\n};\n\n_extends(LiveNodeList, NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used to represent collections of nodes\n * that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal\n * index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n *\n * This implementation only supports property indices, but does not support named properties,\n * as specified in the living standard.\n *\n * @class NamedNodeMap\n * @see https://dom.spec.whatwg.org/#interface-namednodemap\n * @see https://webidl.spec.whatwg.org/#dfn-supported-property-names\n * @constructs NamedNodeMap\n */\nfunction NamedNodeMap() {}\n/**\n * Returns the index of a node within the list.\n *\n * @param {Array} list\n * The list of nodes.\n * @param {Node} node\n * The node to find.\n * @returns {number}\n * The index of the node within the list, or -1 if not found.\n * @private\n */\nfunction _findNodeIndex(list, node) {\n\tvar i = 0;\n\twhile (i < list.length) {\n\t\tif (list[i] === node) {\n\t\t\treturn i;\n\t\t}\n\t\ti++;\n\t}\n}\n/**\n * Adds a new attribute to the list and updates the owner element of the attribute.\n *\n * @param {Element} el\n * The element which will become the owner of the new attribute.\n * @param {NamedNodeMap} list\n * The list to which the new attribute will be added.\n * @param {Attr} newAttr\n * The new attribute to be added.\n * @param {Attr} oldAttr\n * The old attribute to be replaced, or null if no attribute is to be replaced.\n * @returns {void}\n * @private\n */\nfunction _addNamedNode(el, list, newAttr, oldAttr) {\n\tif (oldAttr) {\n\t\tlist[_findNodeIndex(list, oldAttr)] = newAttr;\n\t} else {\n\t\tlist[list.length] = newAttr;\n\t\tlist.length++;\n\t}\n\tif (el) {\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif (doc) {\n\t\t\toldAttr && _onRemoveAttribute(doc, el, oldAttr);\n\t\t\t_onAddAttribute(doc, el, newAttr);\n\t\t}\n\t}\n}\n/**\n * Removes an attribute from the list and updates the owner element of the attribute.\n *\n * @param {Element} el\n * The element which is the current owner of the attribute.\n * @param {NamedNodeMap} list\n * The list from which the attribute will be removed.\n * @param {Attr} attr\n * The attribute to be removed.\n * @returns {void}\n * @private\n */\nfunction _removeNamedNode(el, list, attr) {\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list, attr);\n\tif (i >= 0) {\n\t\tvar lastIndex = list.length - 1;\n\t\twhile (i <= lastIndex) {\n\t\t\tlist[i] = list[++i];\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif (el) {\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif (doc) {\n\t\t\t\t_onRemoveAttribute(doc, el, attr);\n\t\t\t}\n\t\t\tattr.ownerElement = null;\n\t\t}\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength: 0,\n\titem: NodeList.prototype.item,\n\n\t/**\n\t * Get an attribute by name. Note: Name is in lower case in case of HTML namespace and\n\t * document.\n\t *\n\t * @param {string} localName\n\t * The local name of the attribute.\n\t * @returns {Attr | null}\n\t * The attribute with the given local name, or null if no such attribute exists.\n\t * @see https://dom.spec.whatwg.org/#concept-element-attributes-get-by-name\n\t */\n\tgetNamedItem: function (localName) {\n\t\tif (this._ownerElement && this._ownerElement._isInHTMLDocumentAndNamespace()) {\n\t\t\tlocalName = localName.toLowerCase();\n\t\t}\n\t\tvar i = 0;\n\t\twhile (i < this.length) {\n\t\t\tvar attr = this[i];\n\t\t\tif (attr.nodeName === localName) {\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\treturn null;\n\t},\n\n\t/**\n\t * Set an attribute.\n\t *\n\t * @param {Attr} attr\n\t * The attribute to set.\n\t * @returns {Attr | null}\n\t * The old attribute with the same local name and namespace URI as the new one, or null if no\n\t * such attribute exists.\n\t * @throws {DOMException}\n\t * With code:\n\t * - {@link INUSE_ATTRIBUTE_ERR} - If the attribute is already an attribute of another\n\t * element.\n\t * @see https://dom.spec.whatwg.org/#concept-element-attributes-set\n\t */\n\tsetNamedItem: function (attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif (el && el !== this._ownerElement) {\n\t\t\tthrow new DOMException(DOMException.INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n\t\tif (oldAttr === attr) {\n\t\t\treturn attr;\n\t\t}\n\t\t_addNamedNode(this._ownerElement, this, attr, oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/**\n\t * Set an attribute, replacing an existing attribute with the same local name and namespace\n\t * URI if one exists.\n\t *\n\t * @param {Attr} attr\n\t * The attribute to set.\n\t * @returns {Attr | null}\n\t * The old attribute with the same local name and namespace URI as the new one, or null if no\n\t * such attribute exists.\n\t * @throws {DOMException}\n\t * Throws a DOMException with the name \"InUseAttributeError\" if the attribute is already an\n\t * attribute of another element.\n\t * @see https://dom.spec.whatwg.org/#concept-element-attributes-set\n\t */\n\tsetNamedItemNS: function (attr) {\n\t\treturn this.setNamedItem(attr);\n\t},\n\n\t/**\n\t * Removes an attribute specified by the local name.\n\t *\n\t * @param {string} localName\n\t * The local name of the attribute to be removed.\n\t * @returns {Attr}\n\t * The attribute node that was removed.\n\t * @throws {DOMException}\n\t * With code:\n\t * - {@link DOMException.NOT_FOUND_ERR} if no attribute with the given name is found.\n\t * @see https://dom.spec.whatwg.org/#dom-namednodemap-removenameditem\n\t * @see https://dom.spec.whatwg.org/#concept-element-attributes-remove-by-name\n\t */\n\tremoveNamedItem: function (localName) {\n\t\tvar attr = this.getNamedItem(localName);\n\t\tif (!attr) {\n\t\t\tthrow new DOMException(DOMException.NOT_FOUND_ERR, localName);\n\t\t}\n\t\t_removeNamedNode(this._ownerElement, this, attr);\n\t\treturn attr;\n\t},\n\n\t/**\n\t * Removes an attribute specified by the namespace and local name.\n\t *\n\t * @param {string | null} namespaceURI\n\t * The namespace URI of the attribute to be removed.\n\t * @param {string} localName\n\t * The local name of the attribute to be removed.\n\t * @returns {Attr}\n\t * The attribute node that was removed.\n\t * @throws {DOMException}\n\t * With code:\n\t * - {@link DOMException.NOT_FOUND_ERR} if no attribute with the given namespace URI and local\n\t * name is found.\n\t * @see https://dom.spec.whatwg.org/#dom-namednodemap-removenameditemns\n\t * @see https://dom.spec.whatwg.org/#concept-element-attributes-remove-by-namespace\n\t */\n\tremoveNamedItemNS: function (namespaceURI, localName) {\n\t\tvar attr = this.getNamedItemNS(namespaceURI, localName);\n\t\tif (!attr) {\n\t\t\tthrow new DOMException(DOMException.NOT_FOUND_ERR, namespaceURI ? namespaceURI + ' : ' + localName : localName);\n\t\t}\n\t\t_removeNamedNode(this._ownerElement, this, attr);\n\t\treturn attr;\n\t},\n\n\t/**\n\t * Get an attribute by namespace and local name.\n\t *\n\t * @param {string | null} namespaceURI\n\t * The namespace URI of the attribute.\n\t * @param {string} localName\n\t * The local name of the attribute.\n\t * @returns {Attr | null}\n\t * The attribute with the given namespace URI and local name, or null if no such attribute\n\t * exists.\n\t * @see https://dom.spec.whatwg.org/#concept-element-attributes-get-by-namespace\n\t */\n\tgetNamedItemNS: function (namespaceURI, localName) {\n\t\tif (!namespaceURI) {\n\t\t\tnamespaceURI = null;\n\t\t}\n\t\tvar i = 0;\n\t\twhile (i < this.length) {\n\t\t\tvar node = this[i];\n\t\t\tif (node.localName === localName && node.namespaceURI === namespaceURI) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\treturn null;\n\t},\n};\nNamedNodeMap.prototype[Symbol.iterator] = function () {\n\tvar me = this;\n\tvar index = 0;\n\n\treturn {\n\t\tnext: function () {\n\t\t\tif (index < me.length) {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: me[index++],\n\t\t\t\t\tdone: false,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn {\n\t\t\t\t\tdone: true,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\treturn: function () {\n\t\t\treturn {\n\t\t\t\tdone: true,\n\t\t\t};\n\t\t},\n\t};\n};\n\n/**\n * The DOMImplementation interface provides a number of methods for performing operations that\n * are independent of any particular instance of the document object model.\n *\n * The DOMImplementation interface represents an object providing methods which are not\n * dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * **The individual methods describe the differences compared to the specs**.\n *\n * @class DOMImplementation\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core\n * (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n * @constructs DOMImplementation\n */\nfunction DOMImplementation() {}\n\nDOMImplementation.prototype = {\n\t/**\n\t * Test if the DOM implementation implements a specific feature and version, as specified in\n\t * {@link https://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMFeatures DOM Features}.\n\t *\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given\n\t * feature is supported. The different implementations fairly diverged in what kind of\n\t * features were reported. The latest version of the spec settled to force this method to\n\t * always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated\n\t * It is deprecated and modern browsers return true in all cases.\n\t * @function DOMImplementation#hasFeature\n\t * @param {string} feature\n\t * The name of the feature to test.\n\t * @param {string} [version]\n\t * This is the version number of the feature to test.\n\t * @returns {boolean}\n\t * Always returns true.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-5CED94D7 DOM Level 3 Core\n\t */\n\thasFeature: function (feature, version) {\n\t\treturn true;\n\t},\n\t/**\n\t * Creates a DOM Document object of the specified type with its document element. Note that\n\t * based on the {@link DocumentType}\n\t * given to create the document, the implementation may instantiate specialized\n\t * {@link Document} objects that support additional features than the \"Core\", such as \"HTML\"\n\t * {@link https://www.w3.org/TR/DOM-Level-3-Core/references.html#DOM2HTML DOM Level 2 HTML}.\n\t * On the other hand, setting the {@link DocumentType} after the document was created makes\n\t * this very unlikely to happen. Alternatively, specialized {@link Document} creation methods,\n\t * such as createHTMLDocument\n\t * {@link https://www.w3.org/TR/DOM-Level-3-Core/references.html#DOM2HTML DOM Level 2 HTML},\n\t * can be used to obtain specific types of {@link Document} objects.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document`\n\t * instance (with it's `type` set to `'xml'`).\n\t * - `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t *\n\t * @function DOMImplementation.createDocument\n\t * @param {string | null} namespaceURI\n\t * The\n\t * {@link https://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-namespaceURI namespace URI}\n\t * of the document element to create or null.\n\t * @param {string | null} qualifiedName\n\t * The\n\t * {@link https://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-qualifiedname qualified name}\n\t * of the document element to be created or null.\n\t * @param {DocumentType | null} [doctype=null]\n\t * The type of document to be created or null. When doctype is not null, its\n\t * {@link Node#ownerDocument} attribute is set to the document being created. Default is\n\t * `null`\n\t * @returns {Document}\n\t * A new {@link Document} object with its document element. If the NamespaceURI,\n\t * qualifiedName, and doctype are null, the returned {@link Document} is empty with no\n\t * document element.\n\t * @throws {DOMException}\n\t * With code:\n\t *\n\t * - `INVALID_CHARACTER_ERR`: Raised if the specified qualified name is not an XML name\n\t * according to {@link https://www.w3.org/TR/DOM-Level-3-Core/references.html#XML XML 1.0}.\n\t * - `NAMESPACE_ERR`: Raised if the qualifiedName is malformed, if the qualifiedName has a\n\t * prefix and the namespaceURI is null, or if the qualifiedName is null and the namespaceURI\n\t * is different from null, or if the qualifiedName has a prefix that is \"xml\" and the\n\t * namespaceURI is different from \"{@link http://www.w3.org/XML/1998/namespace}\"\n\t * {@link https://www.w3.org/TR/DOM-Level-3-Core/references.html#Namespaces XML Namespaces},\n\t * or if the DOM implementation does not support the \"XML\" feature but a non-null namespace\n\t * URI was provided, since namespaces were defined by XML.\n\t * - `WRONG_DOCUMENT_ERR`: Raised if doctype has already been used with a different document\n\t * or was created from a different implementation.\n\t * - `NOT_SUPPORTED_ERR`: May be raised if the implementation does not support the feature\n\t * \"XML\" and the language exposed through the Document does not support XML Namespaces (such\n\t * as {@link https://www.w3.org/TR/DOM-Level-3-Core/references.html#HTML40 HTML 4.01}).\n\t * @since DOM Level 2.\n\t * @see {@link #createHTMLDocument}\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Living Standard\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Level-2-Core-DOM-createDocument DOM\n\t * Level 3 Core\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM\n\t * Level 2 Core (initial)\n\t */\n\tcreateDocument: function (namespaceURI, qualifiedName, doctype) {\n\t\tvar contentType = MIME_TYPE.XML_APPLICATION;\n\t\tif (namespaceURI === NAMESPACE.HTML) {\n\t\t\tcontentType = MIME_TYPE.XML_XHTML_APPLICATION;\n\t\t} else if (namespaceURI === NAMESPACE.SVG) {\n\t\t\tcontentType = MIME_TYPE.XML_SVG_IMAGE;\n\t\t}\n\t\tvar doc = new Document(PDC, { contentType: contentType });\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype) {\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName) {\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Creates an empty DocumentType node. Entity declarations and notations are not made\n\t * available. Entity reference expansions and default attribute additions do not occur.\n\t *\n\t * **This behavior is slightly different from the one in the specs**:\n\t * - `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - `publicId` and `systemId` contain the raw data including any possible quotes,\n\t * so they can always be serialized back to the original value\n\t * - `internalSubset` contains the raw string between `[` and `]` if present,\n\t * but is not parsed or validated in any form.\n\t *\n\t * @function DOMImplementation#createDocumentType\n\t * @param {string} qualifiedName\n\t * The {@link https://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-qualifiedname qualified\n\t * name} of the document type to be created.\n\t * @param {string} [publicId]\n\t * The external subset public identifier.\n\t * @param {string} [systemId]\n\t * The external subset system identifier.\n\t * @param {string} [internalSubset]\n\t * the internal subset or an empty string if it is not present\n\t * @returns {DocumentType}\n\t * A new {@link DocumentType} node with {@link Node#ownerDocument} set to null.\n\t * @throws {DOMException}\n\t * With code:\n\t *\n\t * - `INVALID_CHARACTER_ERR`: Raised if the specified qualified name is not an XML name\n\t * according to {@link https://www.w3.org/TR/DOM-Level-3-Core/references.html#XML XML 1.0}.\n\t * - `NAMESPACE_ERR`: Raised if the qualifiedName is malformed.\n\t * - `NOT_SUPPORTED_ERR`: May be raised if the implementation does not support the feature\n\t * \"XML\" and the language exposed through the Document does not support XML Namespaces (such\n\t * as {@link https://www.w3.org/TR/DOM-Level-3-Core/references.html#HTML40 HTML 4.01}).\n\t * @since DOM Level 2.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType\n\t * MDN\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living\n\t * Standard\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Level-3-Core-DOM-createDocType DOM\n\t * Level 3 Core\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM\n\t * Level 2 Core\n\t * @see https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md#050\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/#core-ID-Core-DocType-internalSubset\n\t * @prettierignore\n\t */\n\tcreateDocumentType: function (qualifiedName, publicId, systemId, internalSubset) {\n\t\tvalidateQualifiedName(qualifiedName);\n\t\tvar node = new DocumentType(PDC);\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\t\tnode.internalSubset = internalSubset || '';\n\t\tnode.childNodes = new NodeList();\n\n\t\treturn node;\n\t},\n\t/**\n\t * Returns an HTML document, that might already have a basic DOM structure.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - If the first argument is `false` no initial nodes are added (steps 3-7 in the specs are\n\t * omitted)\n\t * - `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t *\n\t * @param {string | false} [title]\n\t * A string containing the title to give the new HTML document.\n\t * @returns {Document}\n\t * The HTML document.\n\t * @since WHATWG Living Standard.\n\t * @see {@link #createDocument}\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument\n\t * @see https://dom.spec.whatwg.org/#html-document\n\t */\n\tcreateHTMLDocument: function (title) {\n\t\tvar doc = new Document(PDC, { contentType: MIME_TYPE.HTML });\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tif (title !== false) {\n\t\t\tdoc.doctype = this.createDocumentType('html');\n\t\t\tdoc.doctype.ownerDocument = doc;\n\t\t\tdoc.appendChild(doc.doctype);\n\t\t\tvar htmlNode = doc.createElement('html');\n\t\t\tdoc.appendChild(htmlNode);\n\t\t\tvar headNode = doc.createElement('head');\n\t\t\thtmlNode.appendChild(headNode);\n\t\t\tif (typeof title === 'string') {\n\t\t\t\tvar titleNode = doc.createElement('title');\n\t\t\t\ttitleNode.appendChild(doc.createTextNode(title));\n\t\t\t\theadNode.appendChild(titleNode);\n\t\t\t}\n\t\t\thtmlNode.appendChild(doc.createElement('body'));\n\t\t}\n\t\treturn doc;\n\t},\n};\n\n/**\n * The DOM Node interface is an abstract base class upon which many other DOM API objects are\n * based, thus letting those object types to be used similarly and often interchangeably. As an\n * abstract class, there is no such thing as a plain Node object. All objects that implement\n * Node functionality are based on one of its subclasses. Most notable are Document, Element,\n * and DocumentFragment.\n *\n * In addition, every kind of DOM node is represented by an interface based on Node. These\n * include Attr, CharacterData (which Text, Comment, CDATASection and ProcessingInstruction are\n * all based on), and DocumentType.\n *\n * In some cases, a particular feature of the base Node interface may not apply to one of its\n * child interfaces; in that case, the inheriting node may return null or throw an exception,\n * depending on circumstances. For example, attempting to add children to a node type that\n * cannot have children will throw an exception.\n *\n * **This behavior is slightly different from the in the specs**:\n * - unimplemented interfaces: `EventTarget`\n *\n * @class\n * @abstract\n * @param {Symbol} symbol\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n * @see https://dom.spec.whatwg.org/#node\n * @prettierignore\n */\nfunction Node(symbol) {\n\tcheckSymbol(symbol);\n}\n\nNode.prototype = {\n\t/**\n\t * The first child of this node.\n\t *\n\t * @type {Node | null}\n\t */\n\tfirstChild: null,\n\t/**\n\t * The last child of this node.\n\t *\n\t * @type {Node | null}\n\t */\n\tlastChild: null,\n\t/**\n\t * The previous sibling of this node.\n\t *\n\t * @type {Node | null}\n\t */\n\tpreviousSibling: null,\n\t/**\n\t * The next sibling of this node.\n\t *\n\t * @type {Node | null}\n\t */\n\tnextSibling: null,\n\t/**\n\t * The parent node of this node.\n\t *\n\t * @type {Node | null}\n\t */\n\tparentNode: null,\n\t/**\n\t * The parent element of this node.\n\t *\n\t * @type {Element | null}\n\t */\n\tget parentElement() {\n\t\treturn this.parentNode && this.parentNode.nodeType === this.ELEMENT_NODE ? this.parentNode : null;\n\t},\n\t/**\n\t * The child nodes of this node.\n\t *\n\t * @type {NodeList}\n\t */\n\tchildNodes: null,\n\t/**\n\t * The document object associated with this node.\n\t *\n\t * @type {Document | null}\n\t */\n\townerDocument: null,\n\t/**\n\t * The value of this node.\n\t *\n\t * @type {string | null}\n\t */\n\tnodeValue: null,\n\t/**\n\t * The namespace URI of this node.\n\t *\n\t * @type {string | null}\n\t */\n\tnamespaceURI: null,\n\t/**\n\t * The prefix of the namespace for this node.\n\t *\n\t * @type {string | null}\n\t */\n\tprefix: null,\n\t/**\n\t * The local part of the qualified name of this node.\n\t *\n\t * @type {string | null}\n\t */\n\tlocalName: null,\n\t/**\n\t * The baseURI is currently always `about:blank`,\n\t * since that's what happens when you create a document from scratch.\n\t *\n\t * @type {'about:blank'}\n\t */\n\tbaseURI: 'about:blank',\n\t/**\n\t * Is true if this node is part of a document.\n\t *\n\t * @type {boolean}\n\t */\n\tget isConnected() {\n\t\tvar rootNode = this.getRootNode();\n\t\treturn rootNode && rootNode.nodeType === rootNode.DOCUMENT_NODE;\n\t},\n\t/**\n\t * Checks whether `other` is an inclusive descendant of this node.\n\t *\n\t * @param {Node | null | undefined} other\n\t * The node to check.\n\t * @returns {boolean}\n\t * True if `other` is an inclusive descendant of this node; false otherwise.\n\t * @see https://dom.spec.whatwg.org/#dom-node-contains\n\t */\n\tcontains: function (other) {\n\t\tif (!other) return false;\n\t\tvar parent = other;\n\t\tdo {\n\t\t\tif (this === parent) return true;\n\t\t\tparent = parent.parentNode;\n\t\t} while (parent);\n\t\treturn false;\n\t},\n\t/**\n\t * @typedef GetRootNodeOptions\n\t * @property {boolean} [composed=false]\n\t */\n\t/**\n\t * Searches for the root node of this node.\n\t *\n\t * **This behavior is slightly different from the in the specs**:\n\t * - ignores `options.composed`, since `ShadowRoot`s are unsupported, always returns root.\n\t *\n\t * @param {GetRootNodeOptions} [options]\n\t * @returns {Node}\n\t * Root node.\n\t * @see https://dom.spec.whatwg.org/#dom-node-getrootnode\n\t * @see https://dom.spec.whatwg.org/#concept-shadow-including-root\n\t */\n\tgetRootNode: function (options) {\n\t\tvar parent = this;\n\t\tdo {\n\t\t\tif (!parent.parentNode) {\n\t\t\t\treturn parent;\n\t\t\t}\n\t\t\tparent = parent.parentNode;\n\t\t} while (parent);\n\t},\n\t/**\n\t * Checks whether the given node is equal to this node.\n\t *\n\t * @param {Node} [otherNode]\n\t * @see https://dom.spec.whatwg.org/#concept-node-equals\n\t */\n\tisEqualNode: function (otherNode) {\n\t\tif (!otherNode) return false;\n\n\t\tif (this.nodeType !== otherNode.nodeType) return false;\n\n\t\tswitch (this.nodeType) {\n\t\t\tcase this.DOCUMENT_TYPE_NODE:\n\t\t\t\tif (this.name !== otherNode.name) return false;\n\t\t\t\tif (this.publicId !== otherNode.publicId) return false;\n\t\t\t\tif (this.systemId !== otherNode.systemId) return false;\n\t\t\t\tbreak;\n\t\t\tcase this.ELEMENT_NODE:\n\t\t\t\tif (this.namespaceURI !== otherNode.namespaceURI) return false;\n\t\t\t\tif (this.prefix !== otherNode.prefix) return false;\n\t\t\t\tif (this.localName !== otherNode.localName) return false;\n\t\t\t\tif (this.attributes.length !== otherNode.attributes.length) return false;\n\t\t\t\tfor (var i = 0; i < this.attributes.length; i++) {\n\t\t\t\t\tvar attr = this.attributes.item(i);\n\t\t\t\t\tif (!attr.isEqualNode(otherNode.getAttributeNodeNS(attr.namespaceURI, attr.localName))) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase this.ATTRIBUTE_NODE:\n\t\t\t\tif (this.namespaceURI !== otherNode.namespaceURI) return false;\n\t\t\t\tif (this.localName !== otherNode.localName) return false;\n\t\t\t\tif (this.value !== otherNode.value) return false;\n\n\t\t\t\tbreak;\n\t\t\tcase this.PROCESSING_INSTRUCTION_NODE:\n\t\t\t\tif (this.target !== otherNode.target || this.data !== otherNode.data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase this.TEXT_NODE:\n\t\t\tcase this.COMMENT_NODE:\n\t\t\t\tif (this.data !== otherNode.data) return false;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (this.childNodes.length !== otherNode.childNodes.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (var i = 0; i < this.childNodes.length; i++) {\n\t\t\tif (!this.childNodes[i].isEqualNode(otherNode.childNodes[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\t/**\n\t * Checks whether or not the given node is this node.\n\t *\n\t * @param {Node} [otherNode]\n\t */\n\tisSameNode: function (otherNode) {\n\t\treturn this === otherNode;\n\t},\n\t/**\n\t * Inserts a node before a reference node as a child of this node.\n\t *\n\t * @param {Node} newChild\n\t * The new child node to be inserted.\n\t * @param {Node | null} refChild\n\t * The reference node before which newChild will be inserted.\n\t * @returns {Node}\n\t * The new child node successfully inserted.\n\t * @throws {DOMException}\n\t * Throws a DOMException if inserting the node would result in a DOM tree that is not\n\t * well-formed, or if `child` is provided but is not a child of `parent`.\n\t * See {@link _insertBefore} for more details.\n\t * @since Modified in DOM L2\n\t */\n\tinsertBefore: function (newChild, refChild) {\n\t\treturn _insertBefore(this, newChild, refChild);\n\t},\n\t/**\n\t * Replaces an old child node with a new child node within this node.\n\t *\n\t * @param {Node} newChild\n\t * The new node that is to replace the old node.\n\t * If it already exists in the DOM, it is removed from its original position.\n\t * @param {Node} oldChild\n\t * The existing child node to be replaced.\n\t * @returns {Node}\n\t * Returns the replaced child node.\n\t * @throws {DOMException}\n\t * Throws a DOMException if replacing the node would result in a DOM tree that is not\n\t * well-formed, or if `oldChild` is not a child of `this`.\n\t * This can also occur if the pre-replacement validity assertion fails.\n\t * See {@link _insertBefore}, {@link Node.removeChild}, and\n\t * {@link assertPreReplacementValidityInDocument} for more details.\n\t * @see https://dom.spec.whatwg.org/#concept-node-replace\n\t */\n\treplaceChild: function (newChild, oldChild) {\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\t/**\n\t * Removes an existing child node from this node.\n\t *\n\t * @param {Node} oldChild\n\t * The child node to be removed.\n\t * @returns {Node}\n\t * Returns the removed child node.\n\t * @throws {DOMException}\n\t * Throws a DOMException if `oldChild` is not a child of `this`.\n\t * See {@link _removeChild} for more details.\n\t */\n\tremoveChild: function (oldChild) {\n\t\treturn _removeChild(this, oldChild);\n\t},\n\t/**\n\t * Appends a child node to this node.\n\t *\n\t * @param {Node} newChild\n\t * The child node to be appended to this node.\n\t * If it already exists in the DOM, it is removed from its original position.\n\t * @returns {Node}\n\t * Returns the appended child node.\n\t * @throws {DOMException}\n\t * Throws a DOMException if appending the node would result in a DOM tree that is not\n\t * well-formed, or if `newChild` is not a valid Node.\n\t * See {@link insertBefore} for more details.\n\t */\n\tappendChild: function (newChild) {\n\t\treturn this.insertBefore(newChild, null);\n\t},\n\t/**\n\t * Determines whether this node has any child nodes.\n\t *\n\t * @returns {boolean}\n\t * Returns true if this node has any child nodes, and false otherwise.\n\t */\n\thasChildNodes: function () {\n\t\treturn this.firstChild != null;\n\t},\n\t/**\n\t * Creates a copy of the calling node.\n\t *\n\t * @param {boolean} deep\n\t * If true, the contents of the node are recursively copied.\n\t * If false, only the node itself (and its attributes, if it is an element) are copied.\n\t * @returns {Node}\n\t * Returns the newly created copy of the node.\n\t * @throws {DOMException}\n\t * May throw a DOMException if operations within {@link Element#setAttributeNode} or\n\t * {@link Node#appendChild} (which are potentially invoked in this method) do not meet their\n\t * specific constraints.\n\t * @see {@link cloneNode}\n\t */\n\tcloneNode: function (deep) {\n\t\treturn cloneNode(this.ownerDocument || this, this, deep);\n\t},\n\t/**\n\t * Puts the specified node and all of its subtree into a \"normalized\" form. In a normalized\n\t * subtree, no text nodes in the subtree are empty and there are no adjacent text nodes.\n\t *\n\t * Specifically, this method merges any adjacent text nodes (i.e., nodes for which `nodeType`\n\t * is `TEXT_NODE`) into a single node with the combined data. It also removes any empty text\n\t * nodes.\n\t *\n\t * This method operates recursively, so it also normalizes any and all descendent nodes within\n\t * the subtree.\n\t *\n\t * @throws {DOMException}\n\t * May throw a DOMException if operations within removeChild or appendData (which are\n\t * potentially invoked in this method) do not meet their specific constraints.\n\t * @since Modified in DOM Level 2\n\t * @see {@link Node.removeChild}\n\t * @see {@link CharacterData.appendData}\n\t */\n\tnormalize: function () {\n\t\tvar child = this.firstChild;\n\t\twhile (child) {\n\t\t\tvar next = child.nextSibling;\n\t\t\tif (next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE) {\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t} else {\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * Checks whether the DOM implementation implements a specific feature and its version.\n\t *\n\t * @deprecated\n\t * Since `DOMImplementation.hasFeature` is deprecated and always returns true.\n\t * @param {string} feature\n\t * The package name of the feature to test. This is the same name that can be passed to the\n\t * method `hasFeature` on `DOMImplementation`.\n\t * @param {string} version\n\t * This is the version number of the package name to test.\n\t * @returns {boolean}\n\t * Returns true in all cases in the current implementation.\n\t * @since Introduced in DOM Level 2\n\t * @see {@link DOMImplementation.hasFeature}\n\t */\n\tisSupported: function (feature, version) {\n\t\treturn this.ownerDocument.implementation.hasFeature(feature, version);\n\t},\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * **This behavior is different from the in the specs**:\n\t * - no node type specific handling\n\t * - uses the internal attribute _nsMap for resolving namespaces that is updated when changing attributes\n\t *\n\t * @param {string | null} namespaceURI\n\t * The namespace URI for which to find the associated prefix.\n\t * @returns {string | null}\n\t * The associated prefix, if found; otherwise, null.\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t * @prettierignore\n\t */\n\tlookupPrefix: function (namespaceURI) {\n\t\tvar el = this;\n\t\twhile (el) {\n\t\t\tvar map = el._nsMap;\n\t\t\t//console.dir(map)\n\t\t\tif (map) {\n\t\t\t\tfor (var n in map) {\n\t\t\t\t\tif (hasOwn(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\treturn n;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tel = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n\t\t}\n\t\treturn null;\n\t},\n\t/**\n\t * This function is used to look up the namespace URI associated with the given prefix,\n\t * starting from this node.\n\t *\n\t * **This behavior is different from the in the specs**:\n\t * - no node type specific handling\n\t * - uses the internal attribute _nsMap for resolving namespaces that is updated when changing attributes\n\t *\n\t * @param {string | null} prefix\n\t * The prefix for which to find the associated namespace URI.\n\t * @returns {string | null}\n\t * The associated namespace URI, if found; otherwise, null.\n\t * @since DOM Level 3\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupnamespaceuri\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI\n\t * @prettierignore\n\t */\n\tlookupNamespaceURI: function (prefix) {\n\t\tvar el = this;\n\t\twhile (el) {\n\t\t\tvar map = el._nsMap;\n\t\t\t//console.dir(map)\n\t\t\tif (map) {\n\t\t\t\tif (hasOwn(map, prefix)) {\n\t\t\t\t\treturn map[prefix];\n\t\t\t\t}\n\t\t\t}\n\t\t\tel = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n\t\t}\n\t\treturn null;\n\t},\n\t/**\n\t * Determines whether the given namespace URI is the default namespace.\n\t *\n\t * The function works by looking up the prefix associated with the given namespace URI. If no\n\t * prefix is found (i.e., the namespace URI is not registered in the namespace map of this\n\t * node or any of its ancestors), it returns `true`, implying the namespace URI is considered\n\t * the default.\n\t *\n\t * **This behavior is different from the in the specs**:\n\t * - no node type specific handling\n\t * - uses the internal attribute _nsMap for resolving namespaces that is updated when changing attributes\n\t *\n\t * @param {string | null} namespaceURI\n\t * The namespace URI to be checked.\n\t * @returns {boolean}\n\t * Returns true if the given namespace URI is the default namespace, false otherwise.\n\t * @since DOM Level 3\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isDefaultNamespace\n\t * @see https://dom.spec.whatwg.org/#dom-node-isdefaultnamespace\n\t * @prettierignore\n\t */\n\tisDefaultNamespace: function (namespaceURI) {\n\t\tvar prefix = this.lookupPrefix(namespaceURI);\n\t\treturn prefix == null;\n\t},\n\t/**\n\t * Compares the reference node with a node with regard to their position in the document and\n\t * according to the document order.\n\t *\n\t * @param {Node} other\n\t * The node to compare the reference node to.\n\t * @returns {number}\n\t * Returns how the node is positioned relatively to the reference node according to the\n\t * bitmask. 0 if reference node and given node are the same.\n\t * @since DOM Level 3\n\t * @see https://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#Node3-compare\n\t * @see https://dom.spec.whatwg.org/#dom-node-comparedocumentposition\n\t */\n\tcompareDocumentPosition: function (other) {\n\t\tif (this === other) return 0;\n\t\tvar node1 = other;\n\t\tvar node2 = this;\n\t\tvar attr1 = null;\n\t\tvar attr2 = null;\n\t\tif (node1 instanceof Attr) {\n\t\t\tattr1 = node1;\n\t\t\tnode1 = attr1.ownerElement;\n\t\t}\n\t\tif (node2 instanceof Attr) {\n\t\t\tattr2 = node2;\n\t\t\tnode2 = attr2.ownerElement;\n\t\t\tif (attr1 && node1 && node2 === node1) {\n\t\t\t\tfor (var i = 0, attr; (attr = node2.attributes[i]); i++) {\n\t\t\t\t\tif (attr === attr1)\n\t\t\t\t\t\treturn DocumentPosition.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + DocumentPosition.DOCUMENT_POSITION_PRECEDING;\n\t\t\t\t\tif (attr === attr2)\n\t\t\t\t\t\treturn DocumentPosition.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + DocumentPosition.DOCUMENT_POSITION_FOLLOWING;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!node1 || !node2 || node2.ownerDocument !== node1.ownerDocument) {\n\t\t\treturn (\n\t\t\t\tDocumentPosition.DOCUMENT_POSITION_DISCONNECTED +\n\t\t\t\tDocumentPosition.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC +\n\t\t\t\t(docGUID(node2.ownerDocument) > docGUID(node1.ownerDocument)\n\t\t\t\t\t? DocumentPosition.DOCUMENT_POSITION_FOLLOWING\n\t\t\t\t\t: DocumentPosition.DOCUMENT_POSITION_PRECEDING)\n\t\t\t);\n\t\t}\n\t\tif (attr2 && node1 === node2) {\n\t\t\treturn DocumentPosition.DOCUMENT_POSITION_CONTAINS + DocumentPosition.DOCUMENT_POSITION_PRECEDING;\n\t\t}\n\t\tif (attr1 && node1 === node2) {\n\t\t\treturn DocumentPosition.DOCUMENT_POSITION_CONTAINED_BY + DocumentPosition.DOCUMENT_POSITION_FOLLOWING;\n\t\t}\n\n\t\tvar chain1 = [];\n\t\tvar ancestor1 = node1.parentNode;\n\t\twhile (ancestor1) {\n\t\t\tif (!attr2 && ancestor1 === node2) {\n\t\t\t\treturn DocumentPosition.DOCUMENT_POSITION_CONTAINED_BY + DocumentPosition.DOCUMENT_POSITION_FOLLOWING;\n\t\t\t}\n\t\t\tchain1.push(ancestor1);\n\t\t\tancestor1 = ancestor1.parentNode;\n\t\t}\n\t\tchain1.reverse();\n\n\t\tvar chain2 = [];\n\t\tvar ancestor2 = node2.parentNode;\n\t\twhile (ancestor2) {\n\t\t\tif (!attr1 && ancestor2 === node1) {\n\t\t\t\treturn DocumentPosition.DOCUMENT_POSITION_CONTAINS + DocumentPosition.DOCUMENT_POSITION_PRECEDING;\n\t\t\t}\n\t\t\tchain2.push(ancestor2);\n\t\t\tancestor2 = ancestor2.parentNode;\n\t\t}\n\t\tchain2.reverse();\n\n\t\tvar ca = commonAncestor(chain1, chain2);\n\t\tfor (var n in ca.childNodes) {\n\t\t\tvar child = ca.childNodes[n];\n\t\t\tif (child === node2) return DocumentPosition.DOCUMENT_POSITION_FOLLOWING;\n\t\t\tif (child === node1) return DocumentPosition.DOCUMENT_POSITION_PRECEDING;\n\t\t\tif (chain2.indexOf(child) >= 0) return DocumentPosition.DOCUMENT_POSITION_FOLLOWING;\n\t\t\tif (chain1.indexOf(child) >= 0) return DocumentPosition.DOCUMENT_POSITION_PRECEDING;\n\t\t}\n\t\treturn 0;\n\t},\n};\n\n/**\n * Encodes special XML characters to their corresponding entities.\n *\n * @param {string} c\n * The character to be encoded.\n * @returns {string}\n * The encoded character.\n * @private\n */\nfunction _xmlEncoder(c) {\n\treturn (\n\t\t(c == '<' && '<') || (c == '>' && '>') || (c == '&' && '&') || (c == '\"' && '"') || '&#' + c.charCodeAt() + ';'\n\t);\n}\n\ncopy(NodeType, Node);\ncopy(NodeType, Node.prototype);\ncopy(DocumentPosition, Node);\ncopy(DocumentPosition, Node.prototype);\n\n/**\n * @param callback\n * Return true for continue,false for break.\n * @returns\n * boolean true: break visit;\n */\nfunction _visitNode(node, callback) {\n\tif (callback(node)) {\n\t\treturn true;\n\t}\n\tif ((node = node.firstChild)) {\n\t\tdo {\n\t\t\tif (_visitNode(node, callback)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} while ((node = node.nextSibling));\n\t}\n}\n\n/**\n * @typedef DocumentOptions\n * @property {string} [contentType=MIME_TYPE.XML_APPLICATION]\n */\n/**\n * The Document interface describes the common properties and methods for any kind of document.\n *\n * It should usually be created using `new DOMImplementation().createDocument(...)`\n * or `new DOMImplementation().createHTMLDocument(...)`.\n *\n * The constructor is considered a private API and offers to initially set the `contentType`\n * property via it's options parameter.\n *\n * @class\n * @param {Symbol} symbol\n * @param {DocumentOptions} [options]\n * @augments Node\n * @private\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document\n * @see https://dom.spec.whatwg.org/#interface-document\n */\nfunction Document(symbol, options) {\n\tcheckSymbol(symbol);\n\n\tvar opt = options || {};\n\tthis.ownerDocument = this;\n\t/**\n\t * The mime type of the document is determined at creation time and can not be modified.\n\t *\n\t * @type {string}\n\t * @see https://dom.spec.whatwg.org/#concept-document-content-type\n\t * @see {@link DOMImplementation}\n\t * @see {@link MIME_TYPE}\n\t * @readonly\n\t */\n\tthis.contentType = opt.contentType || MIME_TYPE.XML_APPLICATION;\n\t/**\n\t * @type {'html' | 'xml'}\n\t * @see https://dom.spec.whatwg.org/#concept-document-type\n\t * @see {@link DOMImplementation}\n\t * @readonly\n\t */\n\tthis.type = isHTMLMimeType(this.contentType) ? 'html' : 'xml';\n}\n\n/**\n * Updates the namespace mapping of an element when a new attribute is added.\n *\n * @param {Document} doc\n * The document that the element belongs to.\n * @param {Element} el\n * The element to which the attribute is being added.\n * @param {Attr} newAttr\n * The new attribute being added.\n * @private\n */\nfunction _onAddAttribute(doc, el, newAttr) {\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI;\n\tif (ns === NAMESPACE.XMLNS) {\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix ? newAttr.localName : ''] = newAttr.value;\n\t}\n}\n\n/**\n * Updates the namespace mapping of an element when an attribute is removed.\n *\n * @param {Document} doc\n * The document that the element belongs to.\n * @param {Element} el\n * The element from which the attribute is being removed.\n * @param {Attr} newAttr\n * The attribute being removed.\n * @param {boolean} remove\n * Indicates whether the attribute is to be removed.\n * @private\n */\nfunction _onRemoveAttribute(doc, el, newAttr, remove) {\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI;\n\tif (ns === NAMESPACE.XMLNS) {\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix ? newAttr.localName : ''];\n\t}\n}\n\n/**\n * Updates `parent.childNodes`, adjusting the indexed items and its `length`.\n * If `newChild` is provided and has no nextSibling, it will be appended.\n * Otherwise, it's assumed that an item has been removed or inserted,\n * and `parent.firstNode` and its `.nextSibling` to re-indexing all child nodes of `parent`.\n *\n * @param {Document} doc\n * The parent document of `el`.\n * @param {Node} parent\n * The parent node whose childNodes list needs to be updated.\n * @param {Node} [newChild]\n * The new child node to be appended. If not provided, the function assumes a node has been\n * removed.\n * @private\n */\nfunction _onUpdateChild(doc, parent, newChild) {\n\tif (doc && doc._inc) {\n\t\tdoc._inc++;\n\t\tvar childNodes = parent.childNodes;\n\t\t// assumes nextSibling and previousSibling were already configured upfront\n\t\tif (newChild && !newChild.nextSibling) {\n\t\t\t// if an item has been appended, we only need to update the last index and the length\n\t\t\tchildNodes[childNodes.length++] = newChild;\n\t\t} else {\n\t\t\t// otherwise we need to reindex all items,\n\t\t\t// which can take a while when processing nodes with a lot of children\n\t\t\tvar child = parent.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tchildNodes[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tchildNodes.length = i;\n\t\t\tdelete childNodes[childNodes.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @param {Node} parentNode\n * The parent node from which the child node is to be removed.\n * @param {Node} child\n * The child node to be removed from the parentNode.\n * @returns {Node}\n * Returns the child node that was removed.\n * @throws {DOMException}\n * With code:\n * - {@link DOMException.NOT_FOUND_ERR} If the parentNode is not the parent of the child node.\n * @private\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n */\nfunction _removeChild(parentNode, child) {\n\tif (parentNode !== child.parentNode) {\n\t\tthrow new DOMException(DOMException.NOT_FOUND_ERR, \"child's parent is not parent\");\n\t}\n\tvar oldPreviousSibling = child.previousSibling;\n\tvar oldNextSibling = child.nextSibling;\n\tif (oldPreviousSibling) {\n\t\toldPreviousSibling.nextSibling = oldNextSibling;\n\t} else {\n\t\tparentNode.firstChild = oldNextSibling;\n\t}\n\tif (oldNextSibling) {\n\t\toldNextSibling.previousSibling = oldPreviousSibling;\n\t} else {\n\t\tparentNode.lastChild = oldPreviousSibling;\n\t}\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n *\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n *\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.CDATA_SECTION_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.DOCUMENT_TYPE_NODE ||\n\t\t\tnode.nodeType === Node.ELEMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE ||\n\t\t\tnode.nodeType === Node.TEXT_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node.\n *\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element.\n *\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node.\n *\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc\n * The document node.\n * @param {Node} child\n * The node that would become the nextSibling if the element would be inserted.\n * @returns {boolean}\n * `true` if an element can be inserted before child.\n * @private\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc\n * The document node.\n * @param {Node} child\n * The node that would become the nextSibling if the element would be inserted.\n * @returns {boolean}\n * `true` if an element can be inserted before child.\n * @private\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Asserts pre-insertion validity of a node into a parent before a child.\n * Throws errors for invalid node combinations that would result in an ill-formed DOM.\n *\n * @param {Node} parent\n * The parent node to insert `node` into.\n * @param {Node} node\n * The node to insert.\n * @param {Node | null} child\n * The node that should become the `nextSibling` of `node`. If null, no sibling is considered.\n * @throws {DOMException}\n * With code:\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If `parent` is not a Document,\n * DocumentFragment, or Element node.\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If `node` is a host-including inclusive\n * ancestor of `parent`. (Currently not implemented)\n * - {@link DOMException.NOT_FOUND_ERR} If `child` is non-null and its `parent` is not\n * `parent`.\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If `node` is not a DocumentFragment,\n * DocumentType, Element, or CharacterData node.\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If either `node` is a Text node and `parent` is\n * a document, or if `node` is a doctype and `parent` is not a document.\n * @private\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(DOMException.NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tDOMException.HIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * Asserts pre-insertion validity of a node into a document before a child.\n * Throws errors for invalid node combinations that would result in an ill-formed DOM.\n *\n * @param {Document} parent\n * The parent node to insert `node` into.\n * @param {Node} node\n * The node to insert.\n * @param {Node | undefined} child\n * The node that should become the `nextSibling` of `node`. If undefined, no sibling is\n * considered.\n * @returns {Node}\n * @throws {DOMException}\n * With code:\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If `node` is a DocumentFragment with more than\n * one element child or has a Text node child.\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If `node` is a DocumentFragment with one\n * element child and either `parent` has an element child, `child` is a doctype, or `child` is\n * non-null and a doctype is following `child`.\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If `node` is an Element and `parent` has an\n * element child, `child` is a doctype, or `child` is non-null and a doctype is following\n * `child`.\n * - {@link DOMException.HIERARCHY_REQUEST_ERR} If `node` is a DocumentType and `parent` has a\n * doctype child, `child` is non-null and an element is preceding `child`, or `child` is null\n * and `parent` has an element child.\n * @private\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @param {Document} parent\n * The parent node to insert `node` into.\n * @param {Node} node\n * The node to insert.\n * @param {Node | undefined} child\n * the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws {DOMException}\n * For several node combinations that would create a DOM that is not well-formed.\n * @throws {DOMException}\n * If `child` is provided but is not a child of `parent`.\n * @private\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * Inserts a node into a parent node before a child node.\n *\n * @param {Node} parent\n * The parent node to insert the node into.\n * @param {Node} node\n * The node to insert into the parent.\n * @param {Node | null} child\n * The node that should become the next sibling of the node.\n * If null, the function inserts the node at the end of the children of the parent node.\n * @param {Function} [_inDocumentAssertion]\n * An optional function to check pre-insertion validity if parent is a document node.\n * Defaults to {@link assertPreInsertionValidityInDocument}\n * @returns {Node}\n * Returns the inserted node.\n * @throws {DOMException}\n * Throws a DOMException if inserting the node would result in a DOM tree that is not\n * well-formed. See {@link assertPreInsertionValidity1to5},\n * {@link assertPreInsertionValidityInDocument}.\n * @throws {DOMException}\n * Throws a DOMException if child is provided but is not a child of the parent. See\n * {@link Node.removeChild}\n * @private\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif (cp) {\n\t\tcp.removeChild(node); //remove and update\n\t}\n\tif (node.nodeType === DOCUMENT_FRAGMENT_NODE) {\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t} else {\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\tif (pre) {\n\t\tpre.nextSibling = newFirst;\n\t} else {\n\t\tparent.firstChild = newFirst;\n\t}\n\tif (child == null) {\n\t\tparent.lastChild = newLast;\n\t} else {\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo {\n\t\tnewFirst.parentNode = parent;\n\t} while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n\t_onUpdateChild(parent.ownerDocument || parent, parent, node);\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\n\treturn node;\n}\n\nDocument.prototype = {\n\t/**\n\t * The implementation that created this document.\n\t *\n\t * @type DOMImplementation\n\t * @readonly\n\t */\n\timplementation: null,\n\tnodeName: '#document',\n\tnodeType: DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @type DocumentType\n\t * @readonly\n\t */\n\tdoctype: null,\n\tdocumentElement: null,\n\t_inc: 1,\n\n\tinsertBefore: function (newChild, refChild) {\n\t\t//raises\n\t\tif (newChild.nodeType === DOCUMENT_FRAGMENT_NODE) {\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile (child) {\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child, refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild: function (oldChild) {\n\t\tvar removed = _removeChild(this, oldChild);\n\t\tif (removed === this.documentElement) {\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn removed;\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode: function (importedNode, deep) {\n\t\treturn importNode(this, importedNode, deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById: function (id) {\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement, function (node) {\n\t\t\tif (node.nodeType == ELEMENT_NODE) {\n\t\t\t\tif (node.getAttribute('id') == id) {\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * Creates a new `Element` that is owned by this `Document`.\n\t * In HTML Documents `localName` is the lower cased `tagName`,\n\t * otherwise no transformation is being applied.\n\t * When `contentType` implies the HTML namespace, it will be set as `namespaceURI`.\n\t *\n\t * __This implementation differs from the specification:__ - The provided name is not checked\n\t * against the `Name` production,\n\t * so no related error will be thrown.\n\t * - There is no interface `HTMLElement`, it is always an `Element`.\n\t * - There is no support for a second argument to indicate using custom elements.\n\t *\n\t * @param {string} tagName\n\t * @returns {Element}\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement\n\t * @see https://dom.spec.whatwg.org/#dom-document-createelement\n\t * @see https://dom.spec.whatwg.org/#concept-create-element\n\t */\n\tcreateElement: function (tagName) {\n\t\tvar node = new Element(PDC);\n\t\tnode.ownerDocument = this;\n\t\tif (this.type === 'html') {\n\t\t\ttagName = tagName.toLowerCase();\n\t\t}\n\t\tif (hasDefaultHTMLNamespace(this.contentType)) {\n\t\t\tnode.namespaceURI = NAMESPACE.HTML;\n\t\t}\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs = (node.attributes = new NamedNodeMap());\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t/**\n\t * @returns {DocumentFragment}\n\t */\n\tcreateDocumentFragment: function () {\n\t\tvar node = new DocumentFragment(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\t/**\n\t * @param {string} data\n\t * @returns {Text}\n\t */\n\tcreateTextNode: function (data) {\n\t\tvar node = new Text(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\tnode.appendData(data);\n\t\treturn node;\n\t},\n\t/**\n\t * @param {string} data\n\t * @returns {Comment}\n\t */\n\tcreateComment: function (data) {\n\t\tvar node = new Comment(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\tnode.appendData(data);\n\t\treturn node;\n\t},\n\t/**\n\t * Returns a new CDATASection node whose data is `data`.\n\t *\n\t * __This implementation differs from the specification:__ - calling this method on an HTML\n\t * document does not throw `NotSupportedError`.\n\t *\n\t * @param {string} data\n\t * @returns {CDATASection}\n\t * @throws {DOMException}\n\t * With code `INVALID_CHARACTER_ERR` if `data` contains `\"]]>\"`.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createCDATASection\n\t * @see https://dom.spec.whatwg.org/#dom-document-createcdatasection\n\t */\n\tcreateCDATASection: function (data) {\n\t\tif (data.indexOf(']]>') !== -1) {\n\t\t\tthrow new DOMException(DOMException.INVALID_CHARACTER_ERR, 'data contains \"]]>\"');\n\t\t}\n\t\tvar node = new CDATASection(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\tnode.appendData(data);\n\t\treturn node;\n\t},\n\t/**\n\t * @param {string} target\n\t * @param {string} data\n\t * @returns {ProcessingInstruction}\n\t */\n\tcreateProcessingInstruction: function (target, data) {\n\t\tvar node = new ProcessingInstruction(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\tnode.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\t/**\n\t * Creates an `Attr` node that is owned by this document.\n\t * In HTML Documents `localName` is the lower cased `name`,\n\t * otherwise no transformation is being applied.\n\t *\n\t * __This implementation differs from the specification:__ - The provided name is not checked\n\t * against the `Name` production,\n\t * so no related error will be thrown.\n\t *\n\t * @param {string} name\n\t * @returns {Attr}\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createAttribute\n\t * @see https://dom.spec.whatwg.org/#dom-document-createattribute\n\t */\n\tcreateAttribute: function (name) {\n\t\tif (!g.QName_exact.test(name)) {\n\t\t\tthrow new DOMException(DOMException.INVALID_CHARACTER_ERR, 'invalid character in name \"' + name + '\"');\n\t\t}\n\t\tif (this.type === 'html') {\n\t\t\tname = name.toLowerCase();\n\t\t}\n\t\treturn this._createAttribute(name);\n\t},\n\t_createAttribute: function (name) {\n\t\tvar node = new Attr(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\tnode.name = name;\n\t\tnode.nodeName = name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\t/**\n\t * Creates an EntityReference object.\n\t * The current implementation does not fill the `childNodes` with those of the corresponding\n\t * `Entity`\n\t *\n\t * @deprecated\n\t * In DOM Level 4.\n\t * @param {string} name\n\t * The name of the entity to reference. No namespace well-formedness checks are performed.\n\t * @returns {EntityReference}\n\t * @throws {DOMException}\n\t * With code `INVALID_CHARACTER_ERR` when `name` is not valid.\n\t * @throws {DOMException}\n\t * with code `NOT_SUPPORTED_ERR` when the document is of type `html`\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-392B75AE\n\t */\n\tcreateEntityReference: function (name) {\n\t\tif (!g.Name.test(name)) {\n\t\t\tthrow new DOMException(DOMException.INVALID_CHARACTER_ERR, 'not a valid xml name \"' + name + '\"');\n\t\t}\n\t\tif (this.type === 'html') {\n\t\t\tthrow new DOMException('document is an html document', DOMExceptionName.NotSupportedError);\n\t\t}\n\n\t\tvar node = new EntityReference(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\tnode.nodeName = name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\t/**\n\t * @param {string} namespaceURI\n\t * @param {string} qualifiedName\n\t * @returns {Element}\n\t */\n\tcreateElementNS: function (namespaceURI, qualifiedName) {\n\t\tvar validated = validateAndExtract(namespaceURI, qualifiedName);\n\t\tvar node = new Element(PDC);\n\t\tvar attrs = (node.attributes = new NamedNodeMap());\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = validated[0];\n\t\tnode.prefix = validated[1];\n\t\tnode.localName = validated[2];\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\t/**\n\t * @param {string} namespaceURI\n\t * @param {string} qualifiedName\n\t * @returns {Attr}\n\t */\n\tcreateAttributeNS: function (namespaceURI, qualifiedName) {\n\t\tvar validated = validateAndExtract(namespaceURI, qualifiedName);\n\t\tvar node = new Attr(PDC);\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.specified = true;\n\t\tnode.namespaceURI = validated[0];\n\t\tnode.prefix = validated[1];\n\t\tnode.localName = validated[2];\n\t\treturn node;\n\t},\n};\n_extends(Document, Node);\n\nfunction Element(symbol) {\n\tcheckSymbol(symbol);\n\n\tthis._nsMap = Object.create(null);\n}\nElement.prototype = {\n\tnodeType: ELEMENT_NODE,\n\t/**\n\t * The attributes of this element.\n\t *\n\t * @type {NamedNodeMap | null}\n\t */\n\tattributes: null,\n\tgetQualifiedName: function () {\n\t\treturn this.prefix ? this.prefix + ':' + this.localName : this.localName;\n\t},\n\t_isInHTMLDocumentAndNamespace: function () {\n\t\treturn this.ownerDocument.type === 'html' && this.namespaceURI === NAMESPACE.HTML;\n\t},\n\t/**\n\t * Implementaton of Level2 Core function hasAttributes.\n\t *\n\t * @returns {boolean}\n\t * True if attribute list is not empty.\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/#core-ID-NodeHasAttrs\n\t */\n\thasAttributes: function () {\n\t\treturn !!(this.attributes && this.attributes.length);\n\t},\n\thasAttribute: function (name) {\n\t\treturn !!this.getAttributeNode(name);\n\t},\n\t/**\n\t * Returns element’s first attribute whose qualified name is `name`, and `null`\n\t * if there is no such attribute.\n\t *\n\t * @param {string} name\n\t * @returns {string | null}\n\t */\n\tgetAttribute: function (name) {\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr ? attr.value : null;\n\t},\n\tgetAttributeNode: function (name) {\n\t\tif (this._isInHTMLDocumentAndNamespace()) {\n\t\t\tname = name.toLowerCase();\n\t\t}\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\t/**\n\t * Sets the value of element’s first attribute whose qualified name is qualifiedName to value.\n\t *\n\t * @param {string} name\n\t * @param {string} value\n\t */\n\tsetAttribute: function (name, value) {\n\t\tif (this._isInHTMLDocumentAndNamespace()) {\n\t\t\tname = name.toLowerCase();\n\t\t}\n\t\tvar attr = this.getAttributeNode(name);\n\t\tif (attr) {\n\t\t\tattr.value = attr.nodeValue = '' + value;\n\t\t} else {\n\t\t\tattr = this.ownerDocument._createAttribute(name);\n\t\t\tattr.value = attr.nodeValue = '' + value;\n\t\t\tthis.setAttributeNode(attr);\n\t\t}\n\t},\n\tremoveAttribute: function (name) {\n\t\tvar attr = this.getAttributeNode(name);\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\tsetAttributeNode: function (newAttr) {\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS: function (newAttr) {\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode: function (oldAttr) {\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS: function (namespaceURI, localName) {\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS: function (namespaceURI, localName) {\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName) != null;\n\t},\n\t/**\n\t * Returns element’s attribute whose namespace is `namespaceURI` and local name is\n\t * `localName`,\n\t * or `null` if there is no such attribute.\n\t *\n\t * @param {string} namespaceURI\n\t * @param {string} localName\n\t * @returns {string | null}\n\t */\n\tgetAttributeNS: function (namespaceURI, localName) {\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr ? attr.value : null;\n\t},\n\t/**\n\t * Sets the value of element’s attribute whose namespace is `namespaceURI` and local name is\n\t * `localName` to value.\n\t *\n\t * @param {string} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {string} value\n\t * @see https://dom.spec.whatwg.org/#dom-element-setattributens\n\t */\n\tsetAttributeNS: function (namespaceURI, qualifiedName, value) {\n\t\tvar validated = validateAndExtract(namespaceURI, qualifiedName);\n\t\tvar localName = validated[2];\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\tif (attr) {\n\t\t\tattr.value = attr.nodeValue = '' + value;\n\t\t} else {\n\t\t\tattr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\t\tattr.value = attr.nodeValue = '' + value;\n\t\t\tthis.setAttributeNode(attr);\n\t\t}\n\t},\n\tgetAttributeNodeNS: function (namespaceURI, localName) {\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\t/**\n\t * Returns a LiveNodeList of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classNames` is an empty string or only contains HTML white space\n\t * characters.\n\t *\n\t * Warning: This returns a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames\n\t * Is a string representing the class name(s) to match; multiple class names are separated by\n\t * (ASCII-)whitespace.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByClassName\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function (classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames);\n\t\treturn new LiveNodeList(this, function (base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base, function (node) {\n\t\t\t\t\tif (node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class');\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames);\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t/**\n\t * Returns a LiveNodeList of elements with the given qualifiedName.\n\t * Searching for all descendants can be done by passing `*` as `qualifiedName`.\n\t *\n\t * All descendants of the specified element are searched, but not the element itself.\n\t * The returned list is live, which means it updates itself with the DOM tree automatically.\n\t * Therefore, there is no need to call `Element.getElementsByTagName()`\n\t * with the same element and arguments repeatedly if the DOM changes in between calls.\n\t *\n\t * When called on an HTML element in an HTML document,\n\t * `getElementsByTagName` lower-cases the argument before searching for it.\n\t * This is undesirable when trying to match camel-cased SVG elements (such as\n\t * `<linearGradient>`) in an HTML document.\n\t * Instead, use `Element.getElementsByTagNameNS()`,\n\t * which preserves the capitalization of the tag name.\n\t *\n\t * `Element.getElementsByTagName` is similar to `Document.getElementsByTagName()`,\n\t * except that it only searches for elements that are descendants of the specified element.\n\t *\n\t * @param {string} qualifiedName\n\t * @returns {LiveNodeList}\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbytagname\n\t */\n\tgetElementsByTagName: function (qualifiedName) {\n\t\tvar isHTMLDocument = (this.nodeType === DOCUMENT_NODE ? this : this.ownerDocument).type === 'html';\n\t\tvar lowerQualifiedName = qualifiedName.toLowerCase();\n\t\treturn new LiveNodeList(this, function (base) {\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base, function (node) {\n\t\t\t\tif (node === base || node.nodeType !== ELEMENT_NODE) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (qualifiedName === '*') {\n\t\t\t\t\tls.push(node);\n\t\t\t\t} else {\n\t\t\t\t\tvar nodeQualifiedName = node.getQualifiedName();\n\t\t\t\t\tvar matchingQName = isHTMLDocument && node.namespaceURI === NAMESPACE.HTML ? lowerQualifiedName : qualifiedName;\n\t\t\t\t\tif (nodeQualifiedName === matchingQName) {\n\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS: function (namespaceURI, localName) {\n\t\treturn new LiveNodeList(this, function (base) {\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base, function (node) {\n\t\t\t\tif (\n\t\t\t\t\tnode !== base &&\n\t\t\t\t\tnode.nodeType === ELEMENT_NODE &&\n\t\t\t\t\t(namespaceURI === '*' || node.namespaceURI === namespaceURI) &&\n\t\t\t\t\t(localName === '*' || node.localName == localName)\n\t\t\t\t) {\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n};\nDocument.prototype.getElementsByClassName = Element.prototype.getElementsByClassName;\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n_extends(Element, Node);\nfunction Attr(symbol) {\n\tcheckSymbol(symbol);\n\n\tthis.namespaceURI = null;\n\tthis.prefix = null;\n\tthis.ownerElement = null;\n}\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr, Node);\n\nfunction CharacterData(symbol) {\n\tcheckSymbol(symbol);\n}\nCharacterData.prototype = {\n\tdata: '',\n\tsubstringData: function (offset, count) {\n\t\treturn this.data.substring(offset, offset + count);\n\t},\n\tappendData: function (text) {\n\t\ttext = this.data + text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function (offset, text) {\n\t\tthis.replaceData(offset, 0, text);\n\t},\n\tdeleteData: function (offset, count) {\n\t\tthis.replaceData(offset, count, '');\n\t},\n\treplaceData: function (offset, count, text) {\n\t\tvar start = this.data.substring(0, offset);\n\t\tvar end = this.data.substring(offset + count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n};\n_extends(CharacterData, Node);\nfunction Text(symbol) {\n\tcheckSymbol(symbol);\n}\nText.prototype = {\n\tnodeName: '#text',\n\tnodeType: TEXT_NODE,\n\tsplitText: function (offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif (this.parentNode) {\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t},\n};\n_extends(Text, CharacterData);\nfunction Comment(symbol) {\n\tcheckSymbol(symbol);\n}\nComment.prototype = {\n\tnodeName: '#comment',\n\tnodeType: COMMENT_NODE,\n};\n_extends(Comment, CharacterData);\n\nfunction CDATASection(symbol) {\n\tcheckSymbol(symbol);\n}\nCDATASection.prototype = {\n\tnodeName: '#cdata-section',\n\tnodeType: CDATA_SECTION_NODE,\n};\n_extends(CDATASection, Text);\n\nfunction DocumentType(symbol) {\n\tcheckSymbol(symbol);\n}\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType, Node);\n\nfunction Notation(symbol) {\n\tcheckSymbol(symbol);\n}\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation, Node);\n\nfunction Entity(symbol) {\n\tcheckSymbol(symbol);\n}\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity, Node);\n\nfunction EntityReference(symbol) {\n\tcheckSymbol(symbol);\n}\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference, Node);\n\nfunction DocumentFragment(symbol) {\n\tcheckSymbol(symbol);\n}\nDocumentFragment.prototype.nodeName = '#document-fragment';\nDocumentFragment.prototype.nodeType = DOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment, Node);\n\nfunction ProcessingInstruction(symbol) {\n\tcheckSymbol(symbol);\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction, CharacterData);\nfunction XMLSerializer() {}\n/**\n * Returns the result of serializing `node` to XML.\n *\n * __This implementation differs from the specification:__ - CDATASection nodes whose data\n * contains `]]>` are serialized by splitting the section at each `]]>` occurrence (following\n * W3C DOM Level 3 Core `split-cdata-sections`\n * default behaviour). A configurable option is not yet implemented.\n *\n * @param {Node} node\n * @param {function} [nodeFilter]\n * @returns {string}\n * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring\n */\nXMLSerializer.prototype.serializeToString = function (node, nodeFilter) {\n\treturn nodeSerializeToString.call(node, nodeFilter);\n};\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(nodeFilter) {\n\tvar buf = [];\n\tvar refNode = (this.nodeType === DOCUMENT_NODE && this.documentElement) || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif (uri && prefix == null) {\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif (prefix == null) {\n\t\t\tvar visibleNamespaces = [\n\t\t\t\t{ namespace: uri, prefix: null },\n\t\t\t\t//{namespace:uri,prefix:''}\n\t\t\t];\n\t\t}\n\t}\n\tserializeToString(this, buf, nodeFilter, visibleNamespaces);\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif ((prefix === 'xml' && uri === NAMESPACE.XML) || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length;\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Literal whitespace other than space that appear in attribute values are serialized as\n * their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces).\n *\n * Well-formed constraint: No < in Attribute Values:\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n *\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n * @prettierignore\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"');\n}\n\nfunction serializeToString(node, buf, nodeFilter, visibleNamespaces) {\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\tvar doc = node.nodeType === DOCUMENT_NODE ? node : node.ownerDocument;\n\tvar isHTML = doc.type === 'html';\n\n\tif (nodeFilter) {\n\t\tnode = nodeFilter(node);\n\t\tif (node) {\n\t\t\tif (typeof node == 'string') {\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch (node.nodeType) {\n\t\tcase ELEMENT_NODE:\n\t\t\tvar attrs = node.attributes;\n\t\t\tvar len = attrs.length;\n\t\t\tvar child = node.firstChild;\n\t\t\tvar nodeName = node.tagName;\n\n\t\t\tvar prefixedNodeName = nodeName;\n\t\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\t\tvar defaultNS;\n\t\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\t\tdefaultNS = attrs.item(ai).value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!defaultNS) {\n\t\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\t\tvar namespace = visibleNamespaces[nsi];\n\t\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\t\tdefaultNS = namespace.namespace;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\t\tvar namespace = visibleNamespaces[nsi];\n\t\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbuf.push('<', prefixedNodeName);\n\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t// add namespaces for attributes\n\t\t\t\tvar attr = attrs.item(i);\n\t\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\t\tvisibleNamespaces.push({\n\t\t\t\t\t\tprefix: attr.localName,\n\t\t\t\t\t\tnamespace: attr.value,\n\t\t\t\t\t});\n\t\t\t\t} else if (attr.nodeName == 'xmlns') {\n\t\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar attr = attrs.item(i);\n\t\t\t\tif (needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n\t\t\t\t\tvar prefix = attr.prefix || '';\n\t\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : 'xmlns', uri);\n\t\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace: uri });\n\t\t\t\t}\n\t\t\t\tserializeToString(attr, buf, nodeFilter, visibleNamespaces);\n\t\t\t}\n\n\t\t\t// add namespace for current node\n\t\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = node.prefix || '';\n\t\t\t\tvar uri = node.namespaceURI;\n\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : 'xmlns', uri);\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace: uri });\n\t\t\t}\n\t\t\t// in XML elements can be closed when they have no children\n\t\t\tvar canCloseTag = !child;\n\t\t\tif (canCloseTag && (isHTML || node.namespaceURI === NAMESPACE.HTML)) {\n\t\t\t\t// in HTML (doc or ns) only void elements can be closed right away\n\t\t\t\tcanCloseTag = isHTMLVoidElement(nodeName);\n\t\t\t}\n\t\t\tif (canCloseTag) {\n\t\t\t\tbuf.push('/>');\n\t\t\t} else {\n\t\t\t\tbuf.push('>');\n\t\t\t\t//if is cdata child node\n\t\t\t\tif (isHTML && isHTMLRawTextElement(nodeName)) {\n\t\t\t\t\twhile (child) {\n\t\t\t\t\t\tif (child.data) {\n\t\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tserializeToString(child, buf, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twhile (child) {\n\t\t\t\t\t\tserializeToString(child, buf, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbuf.push('</', prefixedNodeName, '>');\n\t\t\t}\n\t\t\t// remove added visible namespaces\n\t\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\t\treturn;\n\t\tcase DOCUMENT_NODE:\n\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tvar child = node.firstChild;\n\t\t\twhile (child) {\n\t\t\t\tserializeToString(child, buf, nodeFilter, visibleNamespaces.slice());\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\treturn;\n\t\tcase ATTRIBUTE_NODE:\n\t\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\t\tcase TEXT_NODE:\n\t\t\t/*\n\t\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t\t * except when used as markup delimiters, or within a comment, a processing instruction,\n\t\t\t * or a CDATA section.\n\t\t\t * If they are needed elsewhere, they must be escaped using either numeric character\n\t\t\t * references or the strings `&` and `<` respectively.\n\t\t\t * The right angle bracket (>) may be represented using the string \" > \",\n\t\t\t * and must, for compatibility, be escaped using either `>`,\n\t\t\t * or a character reference when it appears in the string `]]>` in content,\n\t\t\t * when that string is not marking the end of a CDATA section.\n\t\t\t *\n\t\t\t * In the content of elements, character data is any string of characters which does not\n\t\t\t * contain the start-delimiter of any markup and does not include the CDATA-section-close\n\t\t\t * delimiter, `]]>`.\n\t\t\t *\n\t\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t\t */\n\t\t\treturn buf.push(node.data.replace(/[<&>]/g, _xmlEncoder));\n\t\tcase CDATA_SECTION_NODE:\n\t\t\treturn buf.push(g.CDATA_START, node.data.replace(/]]>/g, ']]]]><![CDATA[>'), g.CDATA_END);\n\t\tcase COMMENT_NODE:\n\t\t\treturn buf.push(g.COMMENT_START, node.data, g.COMMENT_END);\n\t\tcase DOCUMENT_TYPE_NODE:\n\t\t\tvar pubid = node.publicId;\n\t\t\tvar sysid = node.systemId;\n\t\t\tbuf.push(g.DOCTYPE_DECL_START, ' ', node.name);\n\t\t\tif (pubid) {\n\t\t\t\tbuf.push(' ', g.PUBLIC, ' ', pubid);\n\t\t\t\tif (sysid && sysid !== '.') {\n\t\t\t\t\tbuf.push(' ', sysid);\n\t\t\t\t}\n\t\t\t} else if (sysid && sysid !== '.') {\n\t\t\t\tbuf.push(' ', g.SYSTEM, ' ', sysid);\n\t\t\t}\n\t\t\tif (node.internalSubset) {\n\t\t\t\tbuf.push(' [', node.internalSubset, ']');\n\t\t\t}\n\t\t\tbuf.push('>');\n\t\t\treturn;\n\t\tcase PROCESSING_INSTRUCTION_NODE:\n\t\t\treturn buf.push('<?', node.target, ' ', node.data, '?>');\n\t\tcase ENTITY_REFERENCE_NODE:\n\t\t\treturn buf.push('&', node.nodeName, ';');\n\t\t//case ENTITY_NODE:\n\t\t//case NOTATION_NODE:\n\t\tdefault:\n\t\t\tbuf.push('??', node.nodeName);\n\t}\n}\nfunction importNode(doc, node, deep) {\n\tvar node2;\n\tswitch (node.nodeType) {\n\t\tcase ELEMENT_NODE:\n\t\t\tnode2 = node.cloneNode(false);\n\t\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tbreak;\n\t\tcase ATTRIBUTE_NODE:\n\t\t\tdeep = true;\n\t\t\tbreak;\n\t\t//case ENTITY_REFERENCE_NODE:\n\t\t//case PROCESSING_INSTRUCTION_NODE:\n\t\t////case TEXT_NODE:\n\t\t//case CDATA_SECTION_NODE:\n\t\t//case COMMENT_NODE:\n\t\t//\tdeep = false;\n\t\t//\tbreak;\n\t\t//case DOCUMENT_NODE:\n\t\t//case DOCUMENT_TYPE_NODE:\n\t\t//cannot be imported.\n\t\t//case ENTITY_NODE:\n\t\t//case NOTATION_NODE:\n\t\t//can not hit in level3\n\t\t//default:throw e;\n\t}\n\tif (!node2) {\n\t\tnode2 = node.cloneNode(false); //false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif (deep) {\n\t\tvar child = node.firstChild;\n\t\twhile (child) {\n\t\t\tnode2.appendChild(importNode(doc, child, deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\n/**\n * Creates a copy of a node from an existing one.\n *\n * @param {Document} doc\n * The Document object representing the document that the new node will belong to.\n * @param {Node} node\n * The node to clone.\n * @param {boolean} deep\n * If true, the contents of the node are recursively copied.\n * If false, only the node itself (and its attributes, if it is an element) are copied.\n * @returns {Node}\n * Returns the newly created copy of the node.\n * @throws {DOMException}\n * May throw a DOMException if operations within setAttributeNode or appendChild (which are\n * potentially invoked in this function) do not meet their specific constraints.\n */\nfunction cloneNode(doc, node, deep) {\n\tvar node2 = new node.constructor(PDC);\n\tfor (var n in node) {\n\t\tif (hasOwn(node, n)) {\n\t\t\tvar v = node[n];\n\t\t\tif (typeof v != 'object') {\n\t\t\t\tif (v != node2[n]) {\n\t\t\t\t\tnode2[n] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (node.childNodes) {\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\t\tcase ELEMENT_NODE:\n\t\t\tvar attrs = node.attributes;\n\t\t\tvar attrs2 = (node2.attributes = new NamedNodeMap());\n\t\t\tvar len = attrs.length;\n\t\t\tattrs2._ownerElement = node2;\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tnode2.setAttributeNode(cloneNode(doc, attrs.item(i), true));\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ATTRIBUTE_NODE:\n\t\t\tdeep = true;\n\t}\n\tif (deep) {\n\t\tvar child = node.firstChild;\n\t\twhile (child) {\n\t\t\tnode2.appendChild(cloneNode(doc, child, deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object, key, value) {\n\tobject[key] = value;\n}\n\n// Returns a new array of direct Element children.\n// Passed to LiveNodeList to implement ParentNode.children.\n// https://dom.spec.whatwg.org/#dom-parentnode-children\nfunction childrenRefresh(node) {\n\tvar ls = [];\n\tvar child = node.firstChild;\n\twhile (child) {\n\t\tif (child.nodeType === ELEMENT_NODE) {\n\t\t\tls.push(child);\n\t\t}\n\t\tchild = child.nextSibling;\n\t}\n\treturn ls;\n}\n\n//do dynamic\ntry {\n\tif (Object.defineProperty) {\n\t\tObject.defineProperty(LiveNodeList.prototype, 'length', {\n\t\t\tget: function () {\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t},\n\t\t});\n\n\t\tObject.defineProperty(Node.prototype, 'textContent', {\n\t\t\tget: function () {\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\n\t\t\tset: function (data) {\n\t\t\t\tswitch (this.nodeType) {\n\t\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\t\twhile (this.firstChild) {\n\t\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (data || String(data)) {\n\t\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.data = data;\n\t\t\t\t\t\tthis.value = data;\n\t\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tfunction getTextContent(node) {\n\t\t\tswitch (node.nodeType) {\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\tvar buf = [];\n\t\t\t\t\tnode = node.firstChild;\n\t\t\t\t\twhile (node) {\n\t\t\t\t\t\tif (node.nodeType !== 7 && node.nodeType !== 8) {\n\t\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t\t}\n\t\t\t\t\treturn buf.join('');\n\t\t\t\tdefault:\n\t\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\n\t\tObject.defineProperty(Element.prototype, 'children', {\n\t\t\tget: function () {\n\t\t\t\treturn new LiveNodeList(this, childrenRefresh);\n\t\t\t},\n\t\t});\n\t\tObject.defineProperty(Document.prototype, 'children', {\n\t\t\tget: function () {\n\t\t\t\treturn new LiveNodeList(this, childrenRefresh);\n\t\t\t},\n\t\t});\n\t\tObject.defineProperty(DocumentFragment.prototype, 'children', {\n\t\t\tget: function () {\n\t\t\t\treturn new LiveNodeList(this, childrenRefresh);\n\t\t\t},\n\t\t});\n\n\t\t__set__ = function (object, key, value) {\n\t\t\t//console.log(value)\n\t\t\tobject['$$' + key] = value;\n\t\t};\n\t}\n} catch (e) {\n\t//ie8\n}\n\nexports._updateLiveList = _updateLiveList;\nexports.Attr = Attr;\nexports.CDATASection = CDATASection;\nexports.CharacterData = CharacterData;\nexports.Comment = Comment;\nexports.Document = Document;\nexports.DocumentFragment = DocumentFragment;\nexports.DocumentType = DocumentType;\nexports.DOMImplementation = DOMImplementation;\nexports.Element = Element;\nexports.Entity = Entity;\nexports.EntityReference = EntityReference;\nexports.LiveNodeList = LiveNodeList;\nexports.NamedNodeMap = NamedNodeMap;\nexports.Node = Node;\nexports.NodeList = NodeList;\nexports.Notation = Notation;\nexports.Text = Text;\nexports.ProcessingInstruction = ProcessingInstruction;\nexports.XMLSerializer = XMLSerializer;\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML\n * Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see {@link XML_ENTITIES}\n * @see {@link DOMParser.parseFromString}\n * @see {@link DOMImplementation.prototype.createHTMLDocument}\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5)\n * Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML\n * Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML\n * Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated\n * Use `HTML_ENTITIES` instead.\n * @see {@link HTML_ENTITIES}\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","'use strict';\n\nvar conventions = require('./conventions');\nvar g = require('./grammar');\nvar errors = require('./errors');\n\nvar isHTMLEscapableRawTextElement = conventions.isHTMLEscapableRawTextElement;\nvar isHTMLMimeType = conventions.isHTMLMimeType;\nvar isHTMLRawTextElement = conventions.isHTMLRawTextElement;\nvar hasOwn = conventions.hasOwn;\nvar NAMESPACE = conventions.NAMESPACE;\nvar ParseError = errors.ParseError;\nvar DOMException = errors.DOMException;\n\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0; //tag name offerring\nvar S_ATTR = 1; //attr name offerring\nvar S_ATTR_SPACE = 2; //attr name end and space offer\nvar S_EQ = 3; //=space?\nvar S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar S_ATTR_END = 5; //attr value end and no space(quot end)\nvar S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7; //closed el<el />\n\nfunction XMLReader() {}\n\nXMLReader.prototype = {\n\tparse: function (source, defaultNSMap, entityMap) {\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap, (defaultNSMap = Object.create(null)));\n\t\tparse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t},\n};\n\n/**\n * Detecting everything that might be a reference,\n * including those without ending `;`, since those are allowed in HTML.\n * The entityReplacer takes care of verifying and transforming each occurrence,\n * and reports to the errorHandler on those that are not OK,\n * depending on the context.\n */\nvar ENTITY_REG = /&#?\\w+;?/g;\n\nfunction parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n\tvar isHTML = isHTMLMimeType(domBuilder.mimeType);\n\tif (source.indexOf(g.UNICODE_REPLACEMENT_CHARACTER) >= 0) {\n\t\terrorHandler.warning('Unicode replacement character detected, source encoding issues?');\n\t}\n\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10),\n\t\t\t\tsurrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\n\tfunction entityReplacer(a) {\n\t\tvar complete = a[a.length - 1] === ';' ? a : a + ';';\n\t\tif (!isHTML && complete !== a) {\n\t\t\terrorHandler.error('EntityRef: expecting ;');\n\t\t\treturn a;\n\t\t}\n\t\tvar match = g.Reference.exec(complete);\n\t\tif (!match || match[0].length !== complete.length) {\n\t\t\terrorHandler.error('entity not matching Reference production: ' + a);\n\t\t\treturn a;\n\t\t}\n\t\tvar k = complete.slice(1, -1);\n\t\tif (hasOwn(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t} else if (k.charAt(0) === '#') {\n\t\t\treturn fixedFromCharCode(parseInt(k.substring(1).replace('x', '0x')));\n\t\t} else {\n\t\t\terrorHandler.error('entity not found:' + a);\n\t\t\treturn a;\n\t\t}\n\t}\n\n\tfunction appendText(end) {\n\t\t//has some bugs\n\t\tif (end > start) {\n\t\t\tvar xt = source.substring(start, end).replace(ENTITY_REG, entityReplacer);\n\t\t\tlocator && position(start);\n\t\t\tdomBuilder.characters(xt, 0, end - start);\n\t\t\tstart = end;\n\t\t}\n\t}\n\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /\\r\\n?|\\n|$/g;\n\tvar locator = domBuilder.locator;\n\n\tfunction position(p, m) {\n\t\twhile (p >= lineEnd && (m = linePattern.exec(source))) {\n\t\t\tlineStart = lineEnd;\n\t\t\tlineEnd = m.index + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t}\n\t\tlocator.columnNumber = p - lineStart + 1;\n\t}\n\n\tvar parseStack = [{ currentNSMap: defaultNSMapCopy }];\n\tvar unclosedTags = [];\n\tvar start = 0;\n\twhile (true) {\n\t\ttry {\n\t\t\tvar tagStart = source.indexOf('<', start);\n\t\t\tif (tagStart < 0) {\n\t\t\t\tif (!isHTML && unclosedTags.length > 0) {\n\t\t\t\t\treturn errorHandler.fatalError('unclosed xml tag(s): ' + unclosedTags.join(', '));\n\t\t\t\t}\n\t\t\t\tif (!source.substring(start).match(/^\\s*$/)) {\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t\t\t\t\tvar text = doc.createTextNode(source.substring(start));\n\t\t\t\t\tif (doc.documentElement) {\n\t\t\t\t\t\treturn errorHandler.error('Extra content at the end of the document');\n\t\t\t\t\t}\n\t\t\t\t\tdoc.appendChild(text);\n\t\t\t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (tagStart > start) {\n\t\t\t\tvar fromSource = source.substring(start, tagStart);\n\t\t\t\tif (!isHTML && unclosedTags.length === 0) {\n\t\t\t\t\tfromSource = fromSource.replace(new RegExp(g.S_OPT.source, 'g'), '');\n\t\t\t\t\tfromSource && errorHandler.error(\"Unexpected content outside root element: '\" + fromSource + \"'\");\n\t\t\t\t}\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch (source.charAt(tagStart + 1)) {\n\t\t\t\tcase '/':\n\t\t\t\t\tvar end = source.indexOf('>', tagStart + 2);\n\t\t\t\t\tvar tagNameRaw = source.substring(tagStart + 2, end > 0 ? end : undefined);\n\t\t\t\t\tif (!tagNameRaw) {\n\t\t\t\t\t\treturn errorHandler.fatalError('end tag name missing');\n\t\t\t\t\t}\n\t\t\t\t\tvar tagNameMatch = end > 0 && g.reg('^', g.QName_group, g.S_OPT, '$').exec(tagNameRaw);\n\t\t\t\t\tif (!tagNameMatch) {\n\t\t\t\t\t\treturn errorHandler.fatalError('end tag name contains invalid characters: \"' + tagNameRaw + '\"');\n\t\t\t\t\t}\n\t\t\t\t\tif (!domBuilder.currentElement && !domBuilder.doc.documentElement) {\n\t\t\t\t\t\t// not enough information to provide a helpful error message,\n\t\t\t\t\t\t// but parsing will throw since there is no root element\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar currentTagName =\n\t\t\t\t\t\tunclosedTags[unclosedTags.length - 1] ||\n\t\t\t\t\t\tdomBuilder.currentElement.tagName ||\n\t\t\t\t\t\tdomBuilder.doc.documentElement.tagName ||\n\t\t\t\t\t\t'';\n\t\t\t\t\tif (currentTagName !== tagNameMatch[1]) {\n\t\t\t\t\t\tvar tagNameLower = tagNameMatch[1].toLowerCase();\n\t\t\t\t\t\tif (!isHTML || currentTagName.toLowerCase() !== tagNameLower) {\n\t\t\t\t\t\t\treturn errorHandler.fatalError('Opening and ending tag mismatch: \"' + currentTagName + '\" != \"' + tagNameRaw + '\"');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar config = parseStack.pop();\n\t\t\t\t\tunclosedTags.pop();\n\t\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\t\tdomBuilder.endElement(config.uri, config.localName, currentTagName);\n\t\t\t\t\tif (localNSMap) {\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (hasOwn(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tend++;\n\t\t\t\t\tbreak;\n\t\t\t\t// end element\n\t\t\t\tcase '?': // <?...?>\n\t\t\t\t\tlocator && position(tagStart);\n\t\t\t\t\tend = parseProcessingInstruction(source, tagStart, domBuilder, errorHandler);\n\t\t\t\t\tbreak;\n\t\t\t\tcase '!': // <!doctype,<![CDATA,<!--\n\t\t\t\t\tlocator && position(tagStart);\n\t\t\t\t\tend = parseDoctypeCommentOrCData(source, tagStart, domBuilder, errorHandler, isHTML);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tlocator && position(tagStart);\n\t\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\t\tvar currentNSMap = parseStack[parseStack.length - 1].currentNSMap;\n\t\t\t\t\t//elStartEnd\n\t\t\t\t\tvar end = parseElementStartPart(source, tagStart, el, currentNSMap, entityReplacer, errorHandler, isHTML);\n\t\t\t\t\tvar len = el.length;\n\n\t\t\t\t\tif (!el.closed) {\n\t\t\t\t\t\tif (isHTML && conventions.isHTMLVoidElement(el.tagName)) {\n\t\t\t\t\t\t\tel.closed = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tunclosedTags.push(el.tagName);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (locator && len) {\n\t\t\t\t\t\tvar locator2 = copyLocator(locator, {});\n\t\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\t\ta.locator = copyLocator(locator, {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdomBuilder.locator = locator2;\n\t\t\t\t\t\tif (appendElement(el, domBuilder, currentNSMap)) {\n\t\t\t\t\t\t\tparseStack.push(el);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (appendElement(el, domBuilder, currentNSMap)) {\n\t\t\t\t\t\t\tparseStack.push(el);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isHTML && !el.closed) {\n\t\t\t\t\t\tend = parseHtmlSpecialContent(source, end, el.tagName, entityReplacer, domBuilder);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tend++;\n\t\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t} else if (e instanceof DOMException) {\n\t\t\t\tthrow new ParseError(e.name + ': ' + e.message, domBuilder.locator, e);\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: ' + e);\n\t\t\tend = -1;\n\t\t}\n\t\tif (end > start) {\n\t\t\tstart = end;\n\t\t} else {\n\t\t\t//Possible sax fallback here, risk of positional error\n\t\t\tappendText(Math.max(tagStart, start) + 1);\n\t\t}\n\t}\n}\n\nfunction copyLocator(f, t) {\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @returns\n * end of the elementStartPart(end of elementEndPart for selfClosed el)\n * @see {@link #appendElement}\n */\nfunction parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler, isHTML) {\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (hasOwn(el.attributeNames, qname)) {\n\t\t\treturn errorHandler.fatalError('Attribute ' + qname + ' redefined');\n\t\t}\n\t\tif (!isHTML && value.indexOf('<') >= 0) {\n\t\t\treturn errorHandler.fatalError(\"Unescaped '<' not allowed in attributes values\");\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(ENTITY_REG, entityReplacer),\n\t\t\tstartIndex\n\t\t);\n\t}\n\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG; //status\n\twhile (true) {\n\t\tvar c = source.charAt(p);\n\t\tswitch (c) {\n\t\t\tcase '=':\n\t\t\t\tif (s === S_ATTR) {\n\t\t\t\t\t//attrName\n\t\t\t\t\tattrName = source.slice(start, p);\n\t\t\t\t\ts = S_EQ;\n\t\t\t\t} else if (s === S_ATTR_SPACE) {\n\t\t\t\t\ts = S_EQ;\n\t\t\t\t} else {\n\t\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"'\":\n\t\t\tcase '\"':\n\t\t\t\tif (\n\t\t\t\t\ts === S_EQ ||\n\t\t\t\t\ts === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t) {\n\t\t\t\t\t//equal\n\t\t\t\t\tif (s === S_ATTR) {\n\t\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"');\n\t\t\t\t\t\tattrName = source.slice(start, p);\n\t\t\t\t\t}\n\t\t\t\t\tstart = p + 1;\n\t\t\t\t\tp = source.indexOf(c, start);\n\t\t\t\t\tif (p > 0) {\n\t\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\t\taddAttribute(attrName, value, start - 1);\n\t\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\t\tthrow new Error(\"attribute value no end '\" + c + \"' match\");\n\t\t\t\t\t}\n\t\t\t\t} else if (s == S_ATTR_NOQUOT_VALUE) {\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\t\terrorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + ')!!');\n\t\t\t\t\tstart = p + 1;\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t} else {\n\t\t\t\t\t//fatalError: no equal before\n\t\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase '/':\n\t\t\t\tswitch (s) {\n\t\t\t\t\tcase S_TAG:\n\t\t\t\t\t\tel.setTagName(source.slice(start, p));\n\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\t\ts = S_TAG_CLOSE;\n\t\t\t\t\t\tel.closed = true;\n\t\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tcase S_ATTR:\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\t\tel.closed = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case S_EQ:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(\"attribute invalid close char('/')\"); // No known test case\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase '': //end document\n\t\t\t\terrorHandler.error('unexpected end of input');\n\t\t\t\tif (s == S_TAG) {\n\t\t\t\t\tel.setTagName(source.slice(start, p));\n\t\t\t\t}\n\t\t\t\treturn p;\n\t\t\tcase '>':\n\t\t\t\tswitch (s) {\n\t\t\t\t\tcase S_TAG:\n\t\t\t\t\t\tel.setTagName(source.slice(start, p));\n\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\t\tbreak; //normal\n\t\t\t\t\tcase S_ATTR_NOQUOT_VALUE: //Compatible state\n\t\t\t\t\tcase S_ATTR:\n\t\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\t\tif (value.slice(-1) === '/') {\n\t\t\t\t\t\t\tel.closed = true;\n\t\t\t\t\t\t\tvalue = value.slice(0, -1);\n\t\t\t\t\t\t}\n\t\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\t\tif (s === S_ATTR_SPACE) {\n\t\t\t\t\t\t\tvalue = attrName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (s == S_ATTR_NOQUOT_VALUE) {\n\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n\t\t\t\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!isHTML) {\n\t\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taddAttribute(value, value, start);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase S_EQ:\n\t\t\t\t\t\tif (!isHTML) {\n\t\t\t\t\t\t\treturn errorHandler.fatalError('AttValue: \\' or \" expected');\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn p;\n\t\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\t\tcase '\\u0080':\n\t\t\t\tc = ' ';\n\t\t\tdefault:\n\t\t\t\tif (c <= ' ') {\n\t\t\t\t\t//space\n\t\t\t\t\tswitch (s) {\n\t\t\t\t\t\tcase S_TAG:\n\t\t\t\t\t\t\tel.setTagName(source.slice(start, p)); //tagName\n\t\t\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_ATTR:\n\t\t\t\t\t\t\tattrName = source.slice(start, p);\n\t\t\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n\t\t\t\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t\t\t//case S_EQ:\n\t\t\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t\t\t//\tvoid();break;\n\t\t\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t\t//ignore warning\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t//not space\n\t\t\t\t\t//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n\t\t\t\t\t//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\t\tswitch (s) {\n\t\t\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\t\t\tif (!isHTML) {\n\t\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\t\t\tstart = p;\n\t\t\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\t\t\terrorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n\t\t\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\t\t\tstart = p;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_EQ:\n\t\t\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\t\t\tstart = p;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t} //end outer switch\n\t\tp++;\n\t}\n}\n\n/**\n * @returns\n * `true` if a new namespace has been defined.\n */\nfunction appendElement(el, domBuilder, currentNSMap) {\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\tvar i = el.length;\n\twhile (i--) {\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif (nsp > 0) {\n\t\t\tvar prefix = (a.prefix = qName.slice(0, nsp));\n\t\t\tvar localName = qName.slice(nsp + 1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName;\n\t\t} else {\n\t\t\tlocalName = qName;\n\t\t\tprefix = null;\n\t\t\tnsPrefix = qName === 'xmlns' && '';\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif (nsPrefix !== false) {\n\t\t\t//hack!!\n\t\t\tif (localNSMap == null) {\n\t\t\t\tlocalNSMap = Object.create(null);\n\t\t\t\t_copy(currentNSMap, (currentNSMap = Object.create(null)));\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS;\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value);\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile (i--) {\n\t\ta = el[i];\n\t\tif (a.prefix) {\n\t\t\t//no prefix attribute has no namespace\n\t\t\tif (a.prefix === 'xml') {\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}\n\t\t\tif (a.prefix !== 'xmlns') {\n\t\t\t\ta.uri = currentNSMap[a.prefix];\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif (nsp > 0) {\n\t\tprefix = el.prefix = tagName.slice(0, nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp + 1);\n\t} else {\n\t\tprefix = null; //important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = (el.uri = currentNSMap[prefix || '']);\n\tdomBuilder.startElement(ns, localName, tagName, el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif (el.closed) {\n\t\tdomBuilder.endElement(ns, localName, tagName);\n\t\tif (localNSMap) {\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (hasOwn(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\n\nfunction parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n\t// https://html.spec.whatwg.org/#raw-text-elements\n\t// https://html.spec.whatwg.org/#escapable-raw-text-elements\n\t// https://html.spec.whatwg.org/#cdata-rcdata-restrictions:raw-text-elements\n\t// TODO: https://html.spec.whatwg.org/#cdata-rcdata-restrictions\n\tvar isEscapableRaw = isHTMLEscapableRawTextElement(tagName);\n\tif (isEscapableRaw || isHTMLRawTextElement(tagName)) {\n\t\tvar elEndStart = source.indexOf('</' + tagName + '>', elStartEnd);\n\t\tvar text = source.substring(elStartEnd + 1, elEndStart);\n\n\t\tif (isEscapableRaw) {\n\t\t\ttext = text.replace(ENTITY_REG, entityReplacer);\n\t\t}\n\t\tdomBuilder.characters(text, 0, text.length);\n\t\treturn elEndStart;\n\t}\n\treturn elStartEnd + 1;\n}\n\nfunction _copy(source, target) {\n\tfor (var n in source) {\n\t\tif (hasOwn(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\n/**\n * @typedef ParseUtils\n * @property {function(relativeIndex: number?): string | undefined} char\n * Provides look ahead access to a singe character relative to the current index.\n * @property {function(): number} getIndex\n * Provides read-only access to the current index.\n * @property {function(reg: RegExp): string | null} getMatch\n * Applies the provided regular expression enforcing that it starts at the current index and\n * returns the complete matching string,\n * and moves the current index by the length of the matching string.\n * @property {function(): string} getSource\n * Provides read-only access to the complete source.\n * @property {function(places: number?): void} skip\n * moves the current index by places (defaults to 1)\n * @property {function(): number} skipBlanks\n * Moves the current index by the amount of white space that directly follows the current index\n * and returns the amount of whitespace chars skipped (0..n),\n * or -1 if the end of the source was reached.\n * @property {function(): string} substringFromIndex\n * creates a substring from the current index to the end of `source`\n * @property {function(compareWith: string): boolean} substringStartsWith\n * Checks if `source` contains `compareWith`, starting from the current index.\n * @property {function(compareWith: string): boolean} substringStartsWithCaseInsensitive\n * Checks if `source` contains `compareWith`, starting from the current index,\n * comparing the upper case of both sides.\n * @see {@link parseUtils}\n */\n\n/**\n * A temporary scope for parsing and look ahead operations in `source`,\n * starting from index `start`.\n *\n * Some operations move the current index by a number of positions,\n * after which `getIndex` returns the new index.\n *\n * @param {string} source\n * @param {number} start\n * @returns {ParseUtils}\n */\nfunction parseUtils(source, start) {\n\tvar index = start;\n\n\tfunction char(n) {\n\t\tn = n || 0;\n\t\treturn source.charAt(index + n);\n\t}\n\n\tfunction skip(n) {\n\t\tn = n || 1;\n\t\tindex += n;\n\t}\n\n\tfunction skipBlanks() {\n\t\tvar blanks = 0;\n\t\twhile (index < source.length) {\n\t\t\tvar c = char();\n\t\t\tif (c !== ' ' && c !== '\\n' && c !== '\\t' && c !== '\\r') {\n\t\t\t\treturn blanks;\n\t\t\t}\n\t\t\tblanks++;\n\t\t\tskip();\n\t\t}\n\t\treturn -1;\n\t}\n\tfunction substringFromIndex() {\n\t\treturn source.substring(index);\n\t}\n\tfunction substringStartsWith(text) {\n\t\treturn source.substring(index, index + text.length) === text;\n\t}\n\tfunction substringStartsWithCaseInsensitive(text) {\n\t\treturn source.substring(index, index + text.length).toUpperCase() === text.toUpperCase();\n\t}\n\n\tfunction getMatch(args) {\n\t\tvar expr = g.reg('^', args);\n\t\tvar match = expr.exec(substringFromIndex());\n\t\tif (match) {\n\t\t\tskip(match[0].length);\n\t\t\treturn match[0];\n\t\t}\n\t\treturn null;\n\t}\n\treturn {\n\t\tchar: char,\n\t\tgetIndex: function () {\n\t\t\treturn index;\n\t\t},\n\t\tgetMatch: getMatch,\n\t\tgetSource: function () {\n\t\t\treturn source;\n\t\t},\n\t\tskip: skip,\n\t\tskipBlanks: skipBlanks,\n\t\tsubstringFromIndex: substringFromIndex,\n\t\tsubstringStartsWith: substringStartsWith,\n\t\tsubstringStartsWithCaseInsensitive: substringStartsWithCaseInsensitive,\n\t};\n}\n\n/**\n * @param {ParseUtils} p\n * @param {DOMHandler} errorHandler\n * @returns {string}\n */\nfunction parseDoctypeInternalSubset(p, errorHandler) {\n\t/**\n\t * @param {ParseUtils} p\n\t * @param {DOMHandler} errorHandler\n\t * @returns {string}\n\t */\n\tfunction parsePI(p, errorHandler) {\n\t\tvar match = g.PI.exec(p.substringFromIndex());\n\t\tif (!match) {\n\t\t\treturn errorHandler.fatalError('processing instruction is not well-formed at position ' + p.getIndex());\n\t\t}\n\t\tif (match[1].toLowerCase() === 'xml') {\n\t\t\treturn errorHandler.fatalError(\n\t\t\t\t'xml declaration is only allowed at the start of the document, but found at position ' + p.getIndex()\n\t\t\t);\n\t\t}\n\t\tp.skip(match[0].length);\n\t\treturn match[0];\n\t}\n\t// Parse internal subset\n\tvar source = p.getSource();\n\tif (p.char() === '[') {\n\t\tp.skip(1);\n\t\tvar intSubsetStart = p.getIndex();\n\t\twhile (p.getIndex() < source.length) {\n\t\t\tp.skipBlanks();\n\t\t\tif (p.char() === ']') {\n\t\t\t\tvar internalSubset = source.substring(intSubsetStart, p.getIndex());\n\t\t\t\tp.skip(1);\n\t\t\t\treturn internalSubset;\n\t\t\t}\n\t\t\tvar current = null;\n\t\t\t// Only in external subset\n\t\t\t// if (char() === '<' && char(1) === '!' && char(2) === '[') {\n\t\t\t// \tparseConditionalSections(p, errorHandler);\n\t\t\t// } else\n\t\t\tif (p.char() === '<' && p.char(1) === '!') {\n\t\t\t\tswitch (p.char(2)) {\n\t\t\t\t\tcase 'E': // ELEMENT | ENTITY\n\t\t\t\t\t\tif (p.char(3) === 'L') {\n\t\t\t\t\t\t\tcurrent = p.getMatch(g.elementdecl);\n\t\t\t\t\t\t} else if (p.char(3) === 'N') {\n\t\t\t\t\t\t\tcurrent = p.getMatch(g.EntityDecl);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'A': // ATTRIBUTE\n\t\t\t\t\t\tcurrent = p.getMatch(g.AttlistDecl);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'N': // NOTATION\n\t\t\t\t\t\tcurrent = p.getMatch(g.NotationDecl);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '-': // COMMENT\n\t\t\t\t\t\tcurrent = p.getMatch(g.Comment);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (p.char() === '<' && p.char(1) === '?') {\n\t\t\t\tcurrent = parsePI(p, errorHandler);\n\t\t\t} else if (p.char() === '%') {\n\t\t\t\tcurrent = p.getMatch(g.PEReference);\n\t\t\t} else {\n\t\t\t\treturn errorHandler.fatalError('Error detected in Markup declaration');\n\t\t\t}\n\t\t\tif (!current) {\n\t\t\t\treturn errorHandler.fatalError('Error in internal subset at position ' + p.getIndex());\n\t\t\t}\n\t\t}\n\t\treturn errorHandler.fatalError('doctype internal subset is not well-formed, missing ]');\n\t}\n}\n\n/**\n * Called when the parser encounters an element starting with '<!'.\n *\n * @param {string} source\n * The xml.\n * @param {number} start\n * the start index of the '<!'\n * @param {DOMHandler} domBuilder\n * @param {DOMHandler} errorHandler\n * @param {boolean} isHTML\n * @returns {number | never}\n * The end index of the element.\n * @throws {ParseError}\n * In case the element is not well-formed.\n */\nfunction parseDoctypeCommentOrCData(source, start, domBuilder, errorHandler, isHTML) {\n\tvar p = parseUtils(source, start);\n\n\tswitch (isHTML ? p.char(2).toUpperCase() : p.char(2)) {\n\t\tcase '-':\n\t\t\t// should be a comment\n\t\t\tvar comment = p.getMatch(g.Comment);\n\t\t\tif (comment) {\n\t\t\t\tdomBuilder.comment(comment, g.COMMENT_START.length, comment.length - g.COMMENT_START.length - g.COMMENT_END.length);\n\t\t\t\treturn p.getIndex();\n\t\t\t} else {\n\t\t\t\treturn errorHandler.fatalError('comment is not well-formed at position ' + p.getIndex());\n\t\t\t}\n\t\tcase '[':\n\t\t\t// should be CDATA\n\t\t\tvar cdata = p.getMatch(g.CDSect);\n\t\t\tif (cdata) {\n\t\t\t\tif (!isHTML && !domBuilder.currentElement) {\n\t\t\t\t\treturn errorHandler.fatalError('CDATA outside of element');\n\t\t\t\t}\n\t\t\t\tdomBuilder.startCDATA();\n\t\t\t\tdomBuilder.characters(cdata, g.CDATA_START.length, cdata.length - g.CDATA_START.length - g.CDATA_END.length);\n\t\t\t\tdomBuilder.endCDATA();\n\t\t\t\treturn p.getIndex();\n\t\t\t} else {\n\t\t\t\treturn errorHandler.fatalError('Invalid CDATA starting at position ' + start);\n\t\t\t}\n\t\tcase 'D': {\n\t\t\t// should be DOCTYPE\n\t\t\tif (domBuilder.doc && domBuilder.doc.documentElement) {\n\t\t\t\treturn errorHandler.fatalError('Doctype not allowed inside or after documentElement at position ' + p.getIndex());\n\t\t\t}\n\t\t\tif (isHTML ? !p.substringStartsWithCaseInsensitive(g.DOCTYPE_DECL_START) : !p.substringStartsWith(g.DOCTYPE_DECL_START)) {\n\t\t\t\treturn errorHandler.fatalError('Expected ' + g.DOCTYPE_DECL_START + ' at position ' + p.getIndex());\n\t\t\t}\n\t\t\tp.skip(g.DOCTYPE_DECL_START.length);\n\t\t\tif (p.skipBlanks() < 1) {\n\t\t\t\treturn errorHandler.fatalError('Expected whitespace after ' + g.DOCTYPE_DECL_START + ' at position ' + p.getIndex());\n\t\t\t}\n\n\t\t\tvar doctype = {\n\t\t\t\tname: undefined,\n\t\t\t\tpublicId: undefined,\n\t\t\t\tsystemId: undefined,\n\t\t\t\tinternalSubset: undefined,\n\t\t\t};\n\t\t\t// Parse the DOCTYPE name\n\t\t\tdoctype.name = p.getMatch(g.Name);\n\t\t\tif (!doctype.name)\n\t\t\t\treturn errorHandler.fatalError('doctype name missing or contains unexpected characters at position ' + p.getIndex());\n\n\t\t\tif (isHTML && doctype.name.toLowerCase() !== 'html') {\n\t\t\t\terrorHandler.warning('Unexpected DOCTYPE in HTML document at position ' + p.getIndex());\n\t\t\t}\n\t\t\tp.skipBlanks();\n\n\t\t\t// Check for ExternalID\n\t\t\tif (p.substringStartsWith(g.PUBLIC) || p.substringStartsWith(g.SYSTEM)) {\n\t\t\t\tvar match = g.ExternalID_match.exec(p.substringFromIndex());\n\t\t\t\tif (!match) {\n\t\t\t\t\treturn errorHandler.fatalError('doctype external id is not well-formed at position ' + p.getIndex());\n\t\t\t\t}\n\t\t\t\tif (match.groups.SystemLiteralOnly !== undefined) {\n\t\t\t\t\tdoctype.systemId = match.groups.SystemLiteralOnly;\n\t\t\t\t} else {\n\t\t\t\t\tdoctype.systemId = match.groups.SystemLiteral;\n\t\t\t\t\tdoctype.publicId = match.groups.PubidLiteral;\n\t\t\t\t}\n\t\t\t\tp.skip(match[0].length);\n\t\t\t} else if (isHTML && p.substringStartsWithCaseInsensitive(g.SYSTEM)) {\n\t\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#doctype-legacy-string\n\t\t\t\tp.skip(g.SYSTEM.length);\n\t\t\t\tif (p.skipBlanks() < 1) {\n\t\t\t\t\treturn errorHandler.fatalError('Expected whitespace after ' + g.SYSTEM + ' at position ' + p.getIndex());\n\t\t\t\t}\n\t\t\t\tdoctype.systemId = p.getMatch(g.ABOUT_LEGACY_COMPAT_SystemLiteral);\n\t\t\t\tif (!doctype.systemId) {\n\t\t\t\t\treturn errorHandler.fatalError(\n\t\t\t\t\t\t'Expected ' + g.ABOUT_LEGACY_COMPAT + ' in single or double quotes after ' + g.SYSTEM + ' at position ' + p.getIndex()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isHTML && doctype.systemId && !g.ABOUT_LEGACY_COMPAT_SystemLiteral.test(doctype.systemId)) {\n\t\t\t\terrorHandler.warning('Unexpected doctype.systemId in HTML document at position ' + p.getIndex());\n\t\t\t}\n\t\t\tif (!isHTML) {\n\t\t\t\tp.skipBlanks();\n\t\t\t\tdoctype.internalSubset = parseDoctypeInternalSubset(p, errorHandler);\n\t\t\t}\n\t\t\tp.skipBlanks();\n\t\t\tif (p.char() !== '>') {\n\t\t\t\treturn errorHandler.fatalError('doctype not terminated with > at position ' + p.getIndex());\n\t\t\t}\n\t\t\tp.skip(1);\n\t\t\tdomBuilder.startDTD(doctype.name, doctype.publicId, doctype.systemId, doctype.internalSubset);\n\t\t\tdomBuilder.endDTD();\n\t\t\treturn p.getIndex();\n\t\t}\n\t\tdefault:\n\t\t\treturn errorHandler.fatalError('Not well-formed XML starting with \"<!\" at position ' + start);\n\t}\n}\n\nfunction parseProcessingInstruction(source, start, domBuilder, errorHandler) {\n\tvar match = source.substring(start).match(g.PI);\n\tif (!match) {\n\t\treturn errorHandler.fatalError('Invalid processing instruction starting at position ' + start);\n\t}\n\tif (match[1].toLowerCase() === 'xml') {\n\t\tif (start > 0) {\n\t\t\treturn errorHandler.fatalError(\n\t\t\t\t'processing instruction at position ' + start + ' is an xml declaration which is only at the start of the document'\n\t\t\t);\n\t\t}\n\t\tif (!g.XMLDecl.test(source.substring(start))) {\n\t\t\treturn errorHandler.fatalError('xml declaration is not well-formed');\n\t\t}\n\t}\n\tdomBuilder.processingInstruction(match[1], match[2]);\n\treturn start + match[0].length;\n}\n\nfunction ElementAttributes() {\n\tthis.attributeNames = Object.create(null);\n}\n\nElementAttributes.prototype = {\n\tsetTagName: function (tagName) {\n\t\tif (!g.QName_exact.test(tagName)) {\n\t\t\tthrow new Error('invalid tagName:' + tagName);\n\t\t}\n\t\tthis.tagName = tagName;\n\t},\n\taddValue: function (qName, value, offset) {\n\t\tif (!g.QName_exact.test(qName)) {\n\t\t\tthrow new Error('invalid attribute:' + qName);\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = { qName: qName, value: value, offset: offset };\n\t},\n\tlength: 0,\n\tgetLocalName: function (i) {\n\t\treturn this[i].localName;\n\t},\n\tgetLocator: function (i) {\n\t\treturn this[i].locator;\n\t},\n\tgetQName: function (i) {\n\t\treturn this[i].qName;\n\t},\n\tgetURI: function (i) {\n\t\treturn this[i].uri;\n\t},\n\tgetValue: function (i) {\n\t\treturn this[i].value;\n\t},\n\t//\t,getIndex:function(uri, localName)){\n\t//\t\tif(localName){\n\t//\n\t//\t\t}else{\n\t//\t\t\tvar qName = uri\n\t//\t\t}\n\t//\t},\n\t//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n\t//\tgetType:function(uri,localName){}\n\t//\tgetType:function(i){},\n};\n\nexports.XMLReader = XMLReader;\nexports.parseUtils = parseUtils;\nexports.parseDoctypeCommentOrCData = parseDoctypeCommentOrCData;\n","'use strict';\n\nvar conventions = require('./conventions');\nvar dom = require('./dom');\nvar errors = require('./errors');\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar hasDefaultHTMLNamespace = conventions.hasDefaultHTMLNamespace;\nvar isHTMLMimeType = conventions.isHTMLMimeType;\nvar isValidMimeType = conventions.isValidMimeType;\nvar MIME_TYPE = conventions.MIME_TYPE;\nvar NAMESPACE = conventions.NAMESPACE;\nvar ParseError = errors.ParseError;\n\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to <https://www.w3.org/TR/xml11/#sec-line-ends>,\n * including some Unicode \"newline\" characters:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA,\n * > 2. the two-character sequence #xD #x85,\n * > 3. the single character #x85,\n * > 4. the single character #x2028,\n * > 5. the single character #x2029,\n * > 6. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n * @prettierignore\n */\nfunction normalizeLineEndings(input) {\n\treturn input.replace(/\\r[\\n\\u0085]/g, '\\n').replace(/[\\r\\u0085\\u2028\\u2029]/g, '\\n');\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {typeof assign} [assign]\n * The method to use instead of `conventions.assign`, which is used to copy values from\n * `options` before they are used for parsing.\n * @property {typeof DOMHandler} [domHandler]\n * For internal testing: The class for creating an instance for handling events from the SAX\n * parser.\n * *****Warning: By configuring a faulty implementation, the specified behavior can completely\n * be broken.*****.\n * @property {Function} [errorHandler]\n * DEPRECATED! use `onError` instead.\n * @property {function(level:ErrorLevel, message:string, context: DOMHandler):void}\n * [onError]\n * A function invoked for every error that occurs during parsing.\n *\n * If it is not provided, all errors are reported to `console.error`\n * and only `fatalError`s are thrown as a `ParseError`,\n * which prevents any further processing.\n * If the provided method throws, a `ParserError` is thrown,\n * which prevents any further processing.\n *\n * Be aware that many `warning`s are considered an error that prevents further processing in\n * most implementations.\n * @property {boolean} [locator=true]\n * Configures if the nodes created during parsing will have a `lineNumber` and a `columnNumber`\n * attribute describing their location in the XML string.\n * Default is true.\n * @property {(string) => string} [normalizeLineEndings]\n * used to replace line endings before parsing, defaults to exported `normalizeLineEndings`,\n * which normalizes line endings according to <https://www.w3.org/TR/xml11/#sec-line-ends>,\n * including some Unicode \"newline\" characters.\n * @property {Object} [xmlns]\n * The XML namespaces that should be assumed when parsing.\n * The default namespace can be provided by the key that is the empty string.\n * When the `mimeType` for HTML, XHTML or SVG are passed to `parseFromString`,\n * the default namespace that will be used,\n * will be overridden according to the specification.\n * @see {@link normalizeLineEndings}\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code from a string\n * into a DOM `Document`.\n *\n * ***xmldom is different from the spec in that it allows an `options` parameter,\n * to control the behavior***.\n *\n * @class\n * @param {DOMParserOptions} [options]\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options) {\n\toptions = options || {};\n\tif (options.locator === undefined) {\n\t\toptions.locator = true;\n\t}\n\n\t/**\n\t * The method to use instead of `conventions.assign`, which is used to copy values from\n\t * `options`\n\t * before they are used for parsing.\n\t *\n\t * @type {conventions.assign}\n\t * @private\n\t * @see {@link conventions.assign}\n\t * @readonly\n\t */\n\tthis.assign = options.assign || conventions.assign;\n\n\t/**\n\t * For internal testing: The class for creating an instance for handling events from the SAX\n\t * parser.\n\t * *****Warning: By configuring a faulty implementation, the specified behavior can completely\n\t * be broken*****.\n\t *\n\t * @type {typeof DOMHandler}\n\t * @private\n\t * @readonly\n\t */\n\tthis.domHandler = options.domHandler || DOMHandler;\n\n\t/**\n\t * A function that is invoked for every error that occurs during parsing.\n\t *\n\t * If it is not provided, all errors are reported to `console.error`\n\t * and only `fatalError`s are thrown as a `ParseError`,\n\t * which prevents any further processing.\n\t * If the provided method throws, a `ParserError` is thrown,\n\t * which prevents any further processing.\n\t *\n\t * Be aware that many `warning`s are considered an error that prevents further processing in\n\t * most implementations.\n\t *\n\t * @type {function(level:ErrorLevel, message:string, context: DOMHandler):void}\n\t * @see {@link onErrorStopParsing}\n\t * @see {@link onWarningStopParsing}\n\t */\n\tthis.onError = options.onError || options.errorHandler;\n\tif (options.errorHandler && typeof options.errorHandler !== 'function') {\n\t\tthrow new TypeError('errorHandler object is no longer supported, switch to onError!');\n\t} else if (options.errorHandler) {\n\t\toptions.errorHandler('warning', 'The `errorHandler` option has been deprecated, use `onError` instead!', this);\n\t}\n\n\t/**\n\t * used to replace line endings before parsing, defaults to `normalizeLineEndings`\n\t *\n\t * @type {(string) => string}\n\t * @readonly\n\t */\n\tthis.normalizeLineEndings = options.normalizeLineEndings || normalizeLineEndings;\n\n\t/**\n\t * Configures if the nodes created during parsing will have a `lineNumber` and a\n\t * `columnNumber`\n\t * attribute describing their location in the XML string.\n\t * Default is true.\n\t *\n\t * @type {boolean}\n\t * @readonly\n\t */\n\tthis.locator = !!options.locator;\n\n\t/**\n\t * The default namespace can be provided by the key that is the empty string.\n\t * When the `mimeType` for HTML, XHTML or SVG are passed to `parseFromString`,\n\t * the default namespace that will be used,\n\t * will be overridden according to the specification.\n\t *\n\t * @type {Readonly<Object>}\n\t * @readonly\n\t */\n\tthis.xmlns = this.assign(Object.create(null), options.xmlns);\n}\n\n/**\n * Parses `source` using the options in the way configured by the `DOMParserOptions` of `this`\n * `DOMParser`. If `mimeType` is `text/html` an HTML `Document` is created,\n * otherwise an XML `Document` is created.\n *\n * __It behaves different from the description in the living standard__:\n * - Uses the `options` passed to the `DOMParser` constructor to modify the behavior.\n * - Any unexpected input is reported to `onError` with either a `warning`,\n * `error` or `fatalError` level.\n * - Any `fatalError` throws a `ParseError` which prevents further processing.\n * - Any error thrown by `onError` is converted to a `ParseError` which prevents further\n * processing - If no `Document` was created during parsing it is reported as a `fatalError`.\n * *****Warning: By configuring a faulty DOMHandler implementation,\n * the specified behavior can completely be broken*****.\n *\n * @param {string} source\n * The XML mime type only allows string input!\n * @param {string} [mimeType='application/xml']\n * the mimeType or contentType of the document to be created determines the `type` of document\n * created (XML or HTML)\n * @returns {Document}\n * The `Document` node.\n * @throws {ParseError}\n * for any `fatalError` or anything that is thrown by `onError`\n * @throws {TypeError}\n * for any invalid `mimeType`\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString\n * @see https://html.spec.whatwg.org/#dom-domparser-parsefromstring-dev\n */\nDOMParser.prototype.parseFromString = function (source, mimeType) {\n\tif (!isValidMimeType(mimeType)) {\n\t\tthrow new TypeError('DOMParser.parseFromString: the provided mimeType \"' + mimeType + '\" is not valid.');\n\t}\n\tvar defaultNSMap = this.assign(Object.create(null), this.xmlns);\n\tvar entityMap = entities.XML_ENTITIES;\n\tvar defaultNamespace = defaultNSMap[''] || null;\n\tif (hasDefaultHTMLNamespace(mimeType)) {\n\t\tentityMap = entities.HTML_ENTITIES;\n\t\tdefaultNamespace = NAMESPACE.HTML;\n\t} else if (mimeType === MIME_TYPE.XML_SVG_IMAGE) {\n\t\tdefaultNamespace = NAMESPACE.SVG;\n\t}\n\tdefaultNSMap[''] = defaultNamespace;\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\n\tvar domBuilder = new this.domHandler({\n\t\tmimeType: mimeType,\n\t\tdefaultNamespace: defaultNamespace,\n\t\tonError: this.onError,\n\t});\n\tvar locator = this.locator ? {} : undefined;\n\tif (this.locator) {\n\t\tdomBuilder.setDocumentLocator(locator);\n\t}\n\n\tvar sax = new XMLReader();\n\tsax.errorHandler = domBuilder;\n\tsax.domBuilder = domBuilder;\n\tvar isXml = !conventions.isHTMLMimeType(mimeType);\n\tif (isXml && typeof source !== 'string') {\n\t\tsax.errorHandler.fatalError('source is not a string');\n\t}\n\tsax.parse(this.normalizeLineEndings(String(source)), defaultNSMap, entityMap);\n\tif (!domBuilder.doc.documentElement) {\n\t\tsax.errorHandler.fatalError('missing root element');\n\t}\n\treturn domBuilder.doc;\n};\n\n/**\n * @typedef DOMHandlerOptions\n * @property {string} [mimeType=MIME_TYPE.XML_APPLICATION]\n * @property {string | null} [defaultNamespace=null]\n */\n/**\n * The class that is used to handle events from the SAX parser to create the related DOM\n * elements.\n *\n * Some methods are only implemented as an empty function,\n * since they are (at least currently) not relevant for xmldom.\n *\n * @class\n * @param {DOMHandlerOptions} [options]\n * @see http://www.saxproject.org/apidoc/org/xml/sax/ext/DefaultHandler2.html\n */\nfunction DOMHandler(options) {\n\tvar opt = options || {};\n\t/**\n\t * The mime type is used to determine if the DOM handler will create an XML or HTML document.\n\t * Only if it is set to `text/html` it will create an HTML document.\n\t * It defaults to MIME_TYPE.XML_APPLICATION.\n\t *\n\t * @type {string}\n\t * @see {@link MIME_TYPE}\n\t * @readonly\n\t */\n\tthis.mimeType = opt.mimeType || MIME_TYPE.XML_APPLICATION;\n\n\t/**\n\t * The namespace to use to create an XML document.\n\t * For the following reasons this is required:\n\t * - The SAX API for `startDocument` doesn't offer any way to pass a namespace,\n\t * since at that point there is no way for the parser to know what the default namespace from\n\t * the document will be.\n\t * - When creating using `DOMImplementation.createDocument` it is required to pass a\n\t * namespace,\n\t * to determine the correct `Document.contentType`, which should match `this.mimeType`.\n\t * - When parsing an XML document with the `application/xhtml+xml` mimeType,\n\t * the HTML namespace needs to be the default namespace.\n\t *\n\t * @type {string | null}\n\t * @private\n\t * @readonly\n\t */\n\tthis.defaultNamespace = opt.defaultNamespace || null;\n\n\t/**\n\t * @type {boolean}\n\t * @private\n\t */\n\tthis.cdata = false;\n\n\t/**\n\t * The last `Element` that was created by `startElement`.\n\t * `endElement` sets it to the `currentElement.parentNode`.\n\t *\n\t * Note: The sax parser currently sets it to white space text nodes between tags.\n\t *\n\t * @type {Element | Node | undefined}\n\t * @private\n\t */\n\tthis.currentElement = undefined;\n\n\t/**\n\t * The Document that is created as part of `startDocument`,\n\t * and returned by `DOMParser.parseFromString`.\n\t *\n\t * @type {Document | undefined}\n\t * @readonly\n\t */\n\tthis.doc = undefined;\n\n\t/**\n\t * The locator is stored as part of setDocumentLocator.\n\t * It is controlled and mutated by the SAX parser to store the current parsing position.\n\t * It is used by DOMHandler to set `columnNumber` and `lineNumber`\n\t * on the DOM nodes.\n\t *\n\t * @type {Readonly<Locator> | undefined}\n\t * @private\n\t * @readonly (the\n\t * sax parser currently sometimes set's it)\n\t */\n\tthis.locator = undefined;\n\t/**\n\t * @type {function (level:ErrorLevel ,message:string, context:DOMHandler):void}\n\t * @readonly\n\t */\n\tthis.onError = opt.onError;\n}\n\nfunction position(locator, node) {\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n\nDOMHandler.prototype = {\n\t/**\n\t * Either creates an XML or an HTML document and stores it under `this.doc`.\n\t * If it is an XML document, `this.defaultNamespace` is used to create it,\n\t * and it will not contain any `childNodes`.\n\t * If it is an HTML document, it will be created without any `childNodes`.\n\t *\n\t * @see http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n\t */\n\tstartDocument: function () {\n\t\tvar impl = new DOMImplementation();\n\t\tthis.doc = isHTMLMimeType(this.mimeType) ? impl.createHTMLDocument(false) : impl.createDocument(this.defaultNamespace, '');\n\t},\n\tstartElement: function (namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t\tvar el = doc.createElementNS(namespaceURI, qName || localName);\n\t\tvar len = attrs.length;\n\t\tappendElement(this, el);\n\t\tthis.currentElement = el;\n\n\t\tthis.locator && position(this.locator, el);\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar namespaceURI = attrs.getURI(i);\n\t\t\tvar value = attrs.getValue(i);\n\t\t\tvar qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator && position(attrs.getLocator(i), attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr);\n\t\t}\n\t},\n\tendElement: function (namespaceURI, localName, qName) {\n\t\tthis.currentElement = this.currentElement.parentNode;\n\t},\n\tstartPrefixMapping: function (prefix, uri) {},\n\tendPrefixMapping: function (prefix) {},\n\tprocessingInstruction: function (target, data) {\n\t\tvar ins = this.doc.createProcessingInstruction(target, data);\n\t\tthis.locator && position(this.locator, ins);\n\t\tappendElement(this, ins);\n\t},\n\tignorableWhitespace: function (ch, start, length) {},\n\tcharacters: function (chars, start, length) {\n\t\tchars = _toString.apply(this, arguments);\n\t\t//console.log(chars)\n\t\tif (chars) {\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif (this.currentElement) {\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t} else if (/^\\s*$/.test(chars)) {\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator, charNode);\n\t\t}\n\t},\n\tskippedEntity: function (name) {},\n\tendDocument: function () {\n\t\tthis.doc.normalize();\n\t},\n\t/**\n\t * Stores the locator to be able to set the `columnNumber` and `lineNumber`\n\t * on the created DOM nodes.\n\t *\n\t * @param {Locator} locator\n\t */\n\tsetDocumentLocator: function (locator) {\n\t\tif (locator) {\n\t\t\tlocator.lineNumber = 0;\n\t\t}\n\t\tthis.locator = locator;\n\t},\n\t//LexicalHandler\n\tcomment: function (chars, start, length) {\n\t\tchars = _toString.apply(this, arguments);\n\t\tvar comm = this.doc.createComment(chars);\n\t\tthis.locator && position(this.locator, comm);\n\t\tappendElement(this, comm);\n\t},\n\n\tstartCDATA: function () {\n\t\t//used in characters() methods\n\t\tthis.cdata = true;\n\t},\n\tendCDATA: function () {\n\t\tthis.cdata = false;\n\t},\n\n\tstartDTD: function (name, publicId, systemId, internalSubset) {\n\t\tvar impl = this.doc.implementation;\n\t\tif (impl && impl.createDocumentType) {\n\t\t\tvar dt = impl.createDocumentType(name, publicId, systemId, internalSubset);\n\t\t\tthis.locator && position(this.locator, dt);\n\t\t\tappendElement(this, dt);\n\t\t\tthis.doc.doctype = dt;\n\t\t}\n\t},\n\treportError: function (level, message) {\n\t\tif (typeof this.onError === 'function') {\n\t\t\ttry {\n\t\t\t\tthis.onError(level, message, this);\n\t\t\t} catch (e) {\n\t\t\t\tthrow new ParseError('Reporting ' + level + ' \"' + message + '\" caused ' + e, this.locator);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error('[xmldom ' + level + ']\\t' + message, _locator(this.locator));\n\t\t}\n\t},\n\t/**\n\t * @see http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning: function (message) {\n\t\tthis.reportError('warning', message);\n\t},\n\terror: function (message) {\n\t\tthis.reportError('error', message);\n\t},\n\t/**\n\t * This function reports a fatal error and throws a ParseError.\n\t *\n\t * @param {string} message\n\t * - The message to be used for reporting and throwing the error.\n\t * @returns {never}\n\t * This function always throws an error and never returns a value.\n\t * @throws {ParseError}\n\t * Always throws a ParseError with the provided message.\n\t */\n\tfatalError: function (message) {\n\t\tthis.reportError('fatalError', message);\n\t\tthrow new ParseError(message, this.locator);\n\t},\n};\n\nfunction _locator(l) {\n\tif (l) {\n\t\treturn '\\n@#[line:' + l.lineNumber + ',col:' + l.columnNumber + ']';\n\t}\n}\n\nfunction _toString(chars, start, length) {\n\tif (typeof chars == 'string') {\n\t\treturn chars.substr(start, length);\n\t} else {\n\t\t//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif (chars.length >= start + length || start) {\n\t\t\treturn new java.lang.String(chars, start, length) + '';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n'endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl'.replace(\n\t/\\w+/g,\n\tfunction (key) {\n\t\tDOMHandler.prototype[key] = function () {\n\t\t\treturn null;\n\t\t};\n\t}\n);\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement(handler, node) {\n\tif (!handler.currentElement) {\n\t\thandler.doc.appendChild(node);\n\t} else {\n\t\thandler.currentElement.appendChild(node);\n\t}\n}\n\n/**\n * A method that prevents any further parsing when an `error`\n * with level `error` is reported during parsing.\n *\n * @see {@link DOMParserOptions.onError}\n * @see {@link onWarningStopParsing}\n */\nfunction onErrorStopParsing(level) {\n\tif (level === 'error') throw 'onErrorStopParsing';\n}\n\n/**\n * A method that prevents any further parsing when any `error` is reported during parsing.\n *\n * @see {@link DOMParserOptions.onError}\n * @see {@link onErrorStopParsing}\n */\nfunction onWarningStopParsing() {\n\tthrow 'onWarningStopParsing';\n}\n\nexports.__DOMHandler = DOMHandler;\nexports.DOMParser = DOMParser;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.onErrorStopParsing = onErrorStopParsing;\nexports.onWarningStopParsing = onWarningStopParsing;\n","'use strict';\nvar conventions = require('./conventions');\nexports.assign = conventions.assign;\nexports.hasDefaultHTMLNamespace = conventions.hasDefaultHTMLNamespace;\nexports.isHTMLMimeType = conventions.isHTMLMimeType;\nexports.isValidMimeType = conventions.isValidMimeType;\nexports.MIME_TYPE = conventions.MIME_TYPE;\nexports.NAMESPACE = conventions.NAMESPACE;\n\nvar errors = require('./errors');\nexports.DOMException = errors.DOMException;\nexports.DOMExceptionName = errors.DOMExceptionName;\nexports.ExceptionCode = errors.ExceptionCode;\nexports.ParseError = errors.ParseError;\n\nvar dom = require('./dom');\nexports.Attr = dom.Attr;\nexports.CDATASection = dom.CDATASection;\nexports.CharacterData = dom.CharacterData;\nexports.Comment = dom.Comment;\nexports.Document = dom.Document;\nexports.DocumentFragment = dom.DocumentFragment;\nexports.DocumentType = dom.DocumentType;\nexports.DOMImplementation = dom.DOMImplementation;\nexports.Element = dom.Element;\nexports.Entity = dom.Entity;\nexports.EntityReference = dom.EntityReference;\nexports.LiveNodeList = dom.LiveNodeList;\nexports.NamedNodeMap = dom.NamedNodeMap;\nexports.Node = dom.Node;\nexports.NodeList = dom.NodeList;\nexports.Notation = dom.Notation;\nexports.ProcessingInstruction = dom.ProcessingInstruction;\nexports.Text = dom.Text;\nexports.XMLSerializer = dom.XMLSerializer;\n\nvar domParser = require('./dom-parser');\nexports.DOMParser = domParser.DOMParser;\nexports.normalizeLineEndings = domParser.normalizeLineEndings;\nexports.onErrorStopParsing = domParser.onErrorStopParsing;\nexports.onWarningStopParsing = domParser.onWarningStopParsing;\n"],"names":["toXmlDocument","xml","DOMParser","parseFromString","String","async","getVastXmlText","input","kind","value","XMLSerializer","serializeToString","res","fetch","ok","Error","status","text","computeSkipAtSeconds","skipOffset","duration","s","trim","endsWith","p","Number","slice","isFinite","tc","m","exec","hh","mm","ss","every","x","parseTimecodeToSeconds","n","pickBestMediaFile","mediaFiles","preferredMediaTypes","Array","isArray","length","normalized","map","type","mimeType","fileURL","url","src","bitrate","bitRate","width","height","raw","filter","Boolean","t","candidates","toLowerCase","sort","a","b","extractSkipOffsetFromCreative","creative","linear","Linear","skipDelay","skipdelay","skipoffset","attributes","k","push","normalize","undefined","obj","v","c","extractSimidUrl","rawDoc","MediaFiles","interactiveCreativeFiles","InteractiveCreativeFiles","interactiveCreativeFile","InteractiveCreativeFile","mf","apiFramework","APIFramework","tagName","els","from","getElementsByTagName","el","getAttribute","textContent","extractAdsFromParsed","parsed","direct","ads","vastResponse","adPods","adpods","flattened","pod","Ads","singlePod","adPod","adpod","singleAds","collectPodAds","out","ad","creatives","Creatives","seqRaw","sequence","seq","cidx","mediafiles","companions","companionAds","nonLinears","nonLinearAds","mediaFile","creativeIndex","as","MAX_SAFE_INTEGER","bs","collectNonLinearCreatives","variations","nonLinear","NonLinearAds","NonLinear","NonLinears","nl","collectNonLinearFromXml","doc","byLocalName","root","localName","getElementsByTagNameNS","arr","firstChildText","compEls","w","h","staticRes","click","staticResource","clickThrough","nlEls","minSuggestedDuration","iframeRes","htmlRes","iFrameResource","htmlResource","nonLinearClickThrough","buildCaptionsFromVastMediaFileRaw","mediaFileRaw","ccFiles","cc","closedCaptionFiles","ClosedCaptionFiles","closedCaptionFile","ClosedCaptionFile","mime_type","language","lang","extractClosedCaptions","f","i","srclang","label","toUpperCase","AdDomManager","constructor","overlay","cfg","getAdVideo","getTracker","onSkipCallback","Object","defineProperty","this","addSessionUnsub","fn","sessionUnsubs","clearSession","off","clearAdOverlays","resolveContainer","selector","nodeType","found","document","querySelector","HTMLElement","getNonLinearContainer","resolvedNonLinearContainer","nonLinearContainer","nonLinearSelector","getCompanionContainer","resolvedCompanionContainer","companionContainer","companionSelector","resolveMount","media","mountEl","mountSelector","closest","parentElement","body","ensureOverlayMounted","mount","cs","window","getComputedStyle","position","style","inset","zIndex","pointerEvents","appendChild","setSafeHTML","html","tpl","createElement","innerHTML","blockedTags","Set","walker","createTreeWalker","content","NodeFilter","SHOW_ELEMENT","toRemove","nextNode","node","currentNode","has","forEach","attr","name","startsWith","removeAttribute","isJs","isVbscript","isData","isHttp","isSafeDataImage","test","remove","replaceChildren","cloneNode","safeWindowOpen","rawUrl","URL","location","href","protocol","open","toString","ensureSkipDom","skipWrap","skipBtn","wrap","className","btn","labels","skip","onClick","e","preventDefault","stopPropagation","addEventListener","EVENT_OPTIONS","removeEventListener","hideSkipUi","display","skipOffsetRaw","skipAtSeconds","setupSkipUIForPodItem","item","log","update","dur","skipAt","cur","currentTime","remaining","Math","max","ceil","requestSkip","reason","adVideo","currentBreakMeta","emitSkip","trackSkip","break","id","breakId","dispatchEvent","Event","companionWrap","nonLinearWrap","mountCompanions","container","flexDirection","gap","maxWidth","renderCompanion","childElementCount","companion","companionClickThroughURLTemplate","clickThroughURLTemplate","companionClickThrough","cursor","StaticResource","staticResources","StaticResources","IFrameResource","iFrameResources","IFrameResources","HTMLResource","htmlResources","HTMLResources","img","uri","ifr","border","div","trackClick","trackClickThrough","nonLinearSuggestedDurationSeconds","minSuggestedDurationSeconds","ensureNonLinearDom","left","right","bottom","justifyContent","renderNonLinear","nonlinearClickThroughURLTemplate","nonLinearClickThroughURLTemplate","pickFirst","target","mountNonLinear","mountSimidIframe","iframe","setAttribute","TypeError","enumerable","configurable","writable","key","prototype","allowMultipleAds","followRedirects","vastAdData","adTagURI","customData","childNodes","templateType","firstChild","nextSibling","nodeName","concat","r","children","JSON","parse","data","o","nodeValue","substring","timeOffset","breakType","repeatAfter","adSource","trackingEvents","extensions","d","event","replace","tracker","Image","documentElement","version","adBreaks","getVastInputFromBreakFn","isXml","source","sourceType","firstSource","sources","getBreakIdFn","at","AdScheduler","ctx","warn","onVmapError","isXmlString","getSource","find","getPrimaryVastLikeSource","inferSourceTypeForUrl","exact","getVastInputFromBreak","getBreakId","getPrerollBreak","resolvedBreaks","once","playedBreaks","breaks","hasExplicitPrerolls","some","primary","getPostrollBreak","getDueMidrollBreaks","core","pendingPercentBreaks","toAdd","pb","atSec","percent","due","breakTolerance","getDueMidrollBreak","rebuild","combined","vastLikeSources","adSourcesMode","vmap","preload","pendingVmapSrc","vmapPending","vmapLoadPromise","loadVmapAndMerge","normalizeVmapAdSource","extractVastTagUri","URI","parseVmapTimeOffset","pendingPercent","existing","vmapSrc","xmlText","then","xmlDoc","VMAP","vmapBreaks","prevPendingCount","rawAdBreakCount","ns","rawOffset","vastInline","vastTag","libBreakCount","splice","parseVmapFallback","err","_prevPendingCount","byTag","adBreakEls","adSrc","uriEls","dataEls","reset","clear","arguments","adId","universalAdIds","creativeExtensions","ERRORCODE","isCustomCode","CACHEBUSTING","round","random","TIMESTAMP","Date","toISOString","RANDOM","match","indexOf","reduce","RegExp","hasOwnProperty","l","getOwnPropertyNames","encodeURIComponent","charCodeAt","padStart","u","track","resolveURLTemplates","extractURLsFromTemplates","filterUrlTemplates","validUrls","invalidUrls","containsTemplateObject","isTemplateObjectEqual","encodeURIComponentRFC3986","replaceUrlMacros","isNumeric","isNaN","parseFloat","flatten","joinArrayOfUniqueTemplateObjs","isValidTimeValue","addLeadingZeros","isValidUrl","isBrowserEnvironment","formatMacrosValues","stringify","includes","childByName","childrenByName","resolveVastAdTagURI","lastIndexOf","parseBoolean","parseNodeText","copyNodeAttribute","parseAttributes","parseDuration","parseInt","split","getStandAloneAds","getSortedAdPods","assignAttributes","mergeWrapperAdData","errorURLTemplates","impressionURLTemplates","viewableImpression","followAdditionalWrappers","fallbackOnNoAd","companionClickTrackingURLTemplates","videoClickTrackingURLTemplates","videoCustomClickURLTemplates","videoClickThroughURLTemplate","adVerifications","blockedAdCategories","icons","g","required","adType","assetWidth","assetHeight","expandedWidth","expandedHeight","adSlotId","pxratio","renderingMode","iframeResources","adParameters","altText","creativeType","xmlEncoded","mezzanine","charAt","fileSize","deliveryType","mediaType","codec","minBitrate","maxBitrate","scalable","maintainAspectRatio","variableDuration","delivery","program","xPosition","yPosition","offset","iframeResource","iconClickThroughURLTemplate","iconClickTrackingURLTemplates","iconViewTrackingURLTemplate","iconClickFallbackImages","hoverText","nonlinearClickTrackingURLTemplates","T","A","keys","R","Wrapper","subElements","BlockedAdCategories","InLine","Category","Pricing","Verification","oneOfinLineResources","UniversalAdId","JavaScriptResource","ExecutableResource","Tracking","Creative","MediaFile","Mezzanine","Companion","Icons","Icon","y","parentName","parentNode","E","oneOfResources","join","message","specVersion","N","C","I","L","wrongNode","U","adServingId","categories","expires","system","title","description","advertiser","pricing","survey","idRegistry","authority","viewable","notViewable","viewUndetermined","model","currency","nextWrapperURL","resource","vendor","browserOptional","parameters","S","_handlers","on","handler","fired","wrapFn","bind","emit","removeAllListeners","listenerCount","listeners","eventNames","D","V","O","F","P","B","fetcher","super","maxWrapperDepth","rootErrorURLTemplates","remainingAds","parsingOptions","keepFailedAdPod","trackVastError","assign","getErrorURLTemplates","getEstimatedBitrate","initParsingStatus","wrapperLimit","rootURL","resetParsingStatus","byteLength","requestDuration","vastVersion","getRemainingAds","Promise","reject","shift","resolveAds","wrapperDepth","buildVASTResponse","parseVAST","isRootVAST","completeWrapperResolving","parseVastXml","wrapperChainId","adIndex","resolveAll","wrapperSequence","previousUrl","resolveWrappers","all","VASTAdTagURI","errorCode","fetchVAST","emitter","wrapperAd","catch","errorMessage","ERRORMESSAGE","hasFailed","M","W","getItem","setItem","removeItem","j","storage","initStorage","localStorage","sessionStorage","isStorageDisabled","q","K","get","AbortController","setTimeout","abort","timeout","signal","credentials","withCredentials","finally","clearTimeout","statusText","error","statusCode","resolve","index$1","details","rawXml","H","URLTemplateFilters","setOptions","urlHandler","urlhandler","fetchingOptions","fetchOptions","addURLTemplateFilter","removeLastURLTemplateFilter","pop","countURLTemplateFilters","clearURLTemplateFilters","now","_","cappingFreeLunch","cappingMinimumTimeInterval","vastParser","lastSuccessfulAd","totalCalls","totalCallsTimeout","getParser","hasRemainingAds","getNextAds","z","variation","muted","impressed","skippable","trackedProgressEvents","lastPercentage","_alreadyTriggeredQuartiles","emitAlwaysEvents","viewableImpressionTrackers","entries","_initLinearTracking","_initVariationTracking","setDuration","clickTrackingURLTemplates","assetDuration","quartiles","firstQuartile","midpoint","thirdQuartile","setProgress","isQuartileReached","macros","progress","setMuted","setPaused","paused","setFullscreen","fullscreen","setExpand","expanded","setSkipDelay","trackImpression","trackURLs","trackViewableImpression","trackNotViewableImpression","trackUndeterminedImpression","errorWithCode","console","complete","notUsed","otherAdInteraction","acceptInvitation","adExpand","adCollapse","minimize","verificationNotExecuted","trackingURLTemplates","overlayViewDuration","ADPLAYHEAD","close","load","progressFormatted","trackProgressEvents","time","urls","ASSETURI","UNIVERSALADID","PODSEQUENCE","ADTYPE","ADSERVINGID","ADCATEGORIES","BLOCKEDADCATEGORIES","convertToTimecode","floor","CaptionManager","captionsSignature","listCaptionTracks","list","textTracks","captureActiveCaptionTrack","prevActiveCaptionSig","active","mode","restoreActiveTextTrack","sig","tracks","ensureRawCaptions","captions","fileLanguage","fileType","attachAdCaptionTracks","vtt","created","default","adTrackEls","clearAdTracks","removeAdCaptions","getOmidClient","OmidSessionClient","OmidSession","isAvailable","injectVerificationScript","scriptUrl","params","head","verifications","accessMode","omid","partner","Partner","verificationResources","VerificationScriptResource","sdkAccessMode","AccessMode","DOMAIN","LIMITED","context","Context","setVideoElement","setAccessMode","adSession","AdSession","videoEvents","VideoEvents","adEvents","AdEvents","start","impression","destroyed","triggerSessionStart","impressionOccurred","loaded","isSkippable","isAutoPlay","vastProps","VastProperties","volume","pause","resume","skipped","volumeChange","playerStateChange","state","adUserInteraction","interactionType","bufferStart","bufferFinish","destroy","finish","SIMID_PLAYER","SIMID_MEDIA","SIMID_CREATIVE","SimidSession","callbacks","creativeInfo","Map","messageListener","handleMessage","bindMediaEvents","nextMsgId","msgCounter","getTargetOrigin","_targetOrigin","origin","postMsg","payload","creativeWindow","contentWindow","outgoingFormat","postMessage","send","args","messageId","sessionId","timestamp","pending","set","delete","sendResolve","resolvedMessageId","sendReject","parseMessageData","Window","incomingId","msgId","onCreateSession","getMediaState","onCreativeReady","resolvedId","resolves","rejectedId","rejects","onSkip","onStop","onPause","onPlay","clickThroughUrl","onClickThrough","trackingEvent","onTrackingEvent","requestFullscreen","resize","offsetWidth","innerWidth","offsetHeight","innerHeight","durationChange","onRequestChangeAdDuration","onFatal","onLog","initSent","initPromise","creativeData","buildCreativeData","environmentData","buildEnvironmentData","started","playerRect","getBoundingClientRect","videoRect","pw","ph","vw","vh","vol","videoDimensions","top","creativeDimensions","fullscreenElement","fullscreenAllowed","variableDurationAllowed","skippableState","siteUrl","playerWidth","playerHeight","videoDuration","videoVolume","clickThruUrl","clickThruUri","currentSrc","ended","init","remainingTime","stop","adDurationChange","fatal","mediaEventMap","domEvent","simidType","mediaListeners","visibilityHandler","hidden","PluginBus","bus","cb","normalizeCsaiConfig","config","merged","csai","normalizeSources","hasExplicitPreroll","hasSourceVastOrVmap","allowNativeControls","resumeContent","debug","interceptPlayForPreroll","autoPlayOnReady","adDelivery","requestInterceptor","eventSink","scteSource","hybrid","resolveScteUrl","CsaiAdStrategy","events","vastClient","VASTClient","scheduler","captionMgr","dom","globalUnsubs","startingBreak","contentMedia","contentHadControls","leases","release","getOverlayManager","deactivate","overlayId","userPlayIntent","_dispatchStartBreak","opts","startBreak","_dispatchStartBreakGroup","startBreakGroup","_dispatchPlayBreakFromVast","meta","playBreakFromVast","_dispatchGetVastXmlText","_dispatchBuildParsedForNonLinear","buildParsedForNonLinearFromXml","_dispatchMountAdVideo","mountAdVideo","_dispatchStartAdPlayback","startAdPlayback","bindBreakScheduler","bindPrerollInterceptors","forcedMuteUntilInteraction","playAds","vastUrl","playAdsFromXml","vastXml","omidSession","simidSession","_dom","maybeStartDeferredVmap","vmapWasPending","shouldInterceptNow","shouldInterceptPreroll","userInteracted","guard","pre","onNativePlayCapture","capture","current","onTime","earliestBreak","earliestAt","vmapOffset","tol","group","abs","onEnded","post","waterfallSources","add","isLastWaterfall","suppressResumeOnError","suppressResumeOnSuccess","suppressResume","startedMain","playable","isBumper","requestPayload","resumeAfter","pauseAndAcquireLease","acquire","owner","loadRawDocBestEffort","XMLDocument","emitLoaded","count","nonLinearItems","playNonLinearOnlyBreak","xmlItems","playNonLinearOnlyBreakFromXml","adEl","seqAttr","cEl","linearEl","mediaFilesEl","rawEl","collectPodAdsFromXml","AdVerifications","Vendor","resources","javaScriptResource","javascriptResource","resArr","verificationParameters","tag","verEls","jsEls","jsEl","paramsEl","extractAdVerifications","index","VASTTracker","_lastCreative","endPromise","waitForAdEnd","simidUrl","clickThruRaw","videoClicks","simidCreativeInfo","_data","_code","_reason","_reject","bindAdSurfaceCommands","bindTrackerAndTelemetry","announcer","adEnded","advertisement","items","maxDuration","companionCreative","trackCreativeView","dismissNonLinear","it","tick","elapsed","playsInline","contentPreload","forceMutedForPolicy","autoplay","controls","hlsEngine","getPlugin","canPlay","attachMedia","adEngineDetach","desiredMuted","desiredVolume","defaultMuted","min","adEndPromise","cleanup","onError","onVisibility","visibilityState","play","captionTracks","overlayMgr","activate","priority","canSeek","fullscreenEl","fullscreenVideoEl","updateOverlay","wantsAutoplayPath","syncingVolume","lastMuted","lastPaused","q25","q50","q75","q100","emitDuration","emitQuartile","quartile","onPlaying","trackResume","trackStart","trackPause","pct","trackFirstQuartile","trackMidpoint","trackThirdQuartile","trackComplete","onVolume","trackMute","trackUnmute","ev","defaultPrevented","tryPlay","p2","querySelectorAll","removeChild","shouldResume","computeSkipAtSecondsDelegate","collectPodAdsDelegate","HybridAdStrategy","decodeSplice","buf","b64","binary","atob","Uint8Array","commandType","flags","outOfNetwork","durationSecs","autoReturn","d0","SsaiAdStrategy","sink","ssai","scanTracks","onAddTrack","bindTrack","cleanups","unsubListChange","onTimeUpdate","checkQuartiles","boundTracks","activeBreaks","onCueChange","handleActiveCues","cues","activeCues","cue","processCue","startTime","ArrayBuffer","cmd","endBreak","endTime","hasSpliceOut","scte35Out","hasSpliceIn","scte35In","rawValue","durationSec","startTimeSec","brk","firedQuartiles","contentSrc","values","elapsedSec","metadata","AdsPlugin","rawConfig","setup","hasScteSource","strategy","resolveUrl","bindScteSource","scteUnsub","prev","onCue","lazyDom","_lazyDom","normalizeVmapAdSourceFn","extractVastTagUriFn","parseVmapTimeOffsetFn","setSafeHTMLFn","global","OpenPlayerPlugins","factory","install","PlayerCtor","getOwnPropertyDescriptor","plugin","installAds","extend","player","extendAds","OpenPlayerJS","getCore","freeze","object","oc","getOwnPropertyDescriptors","create","hasOwn","call","HTML_BOOLEAN_ATTRIBUTES","allowfullscreen","autofocus","checked","defer","disabled","formnovalidate","ismap","itemscope","loop","multiple","nomodule","novalidate","playsinline","readonly","reversed","selected","HTML_VOID_ELEMENTS","area","base","br","col","embed","hr","link","param","wbr","HTML_RAW_TEXT_ELEMENTS","script","textarea","isHTMLMimeType","MIME_TYPE","HTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","_MIME_TYPES","NAMESPACE","SVG","XML","XMLNS","conventions","predicate","ac","hasDefaultHTMLNamespace","isHTMLBooleanAttribute","isHTMLRawTextElement","isHTMLEscapableRawTextElement","isHTMLVoidElement","isValidMimeType","extendError","writableName","DOMExceptionName","require$$0","IndexSizeError","DomstringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","EncodingError","NotReadableError","UnknownError","ConstraintError","DataError","TransactionInactiveError","ReadOnlyError","VersionError","OperationError","NotAllowedError","OptOutError","DOMExceptionNames","isValidDomExceptionCode","DOMException","messageOrCode","nameOrMessage","captureStackTrace","defineProperties","code","ExceptionCode","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","VALIDATION_ERR","TYPE_MISMATCH_ERR","SECURITY_ERR","NETWORK_ERR","ABORT_ERR","URL_MISMATCH_ERR","QUOTA_EXCEEDED_ERR","TIMEOUT_ERR","INVALID_NODE_TYPE_ERR","DATA_CLONE_ERR","ParseError","locator","errors","detectUnicodeSupport","RegExpImpl","UNICODE_SUPPORT","chars","regexp","chars_without","search","reg","self","part","isStr","regg","apply","Char","_SChar","SChar_s","S_OPT","NameStartChar","NameChar","Name","Nmtoken","EntityRef","CharRef","Reference","PEReference","EntityValue","AttValue","NCName","QName","QName_exact","QName_group","SystemLiteral","PI","PubidChar","PubidLiteral","COMMENT_START","Comment","PCDATA","Mixed","contentspec","elementdecl","NotationType","Enumeration","EnumeratedType","AttType","DefaultDecl","AttlistDecl","ABOUT_LEGACY_COMPAT","ABOUT_LEGACY_COMPAT_SystemLiteral","SYSTEM","PUBLIC","ExternalID","ExternalID_match","NDataDecl","ENTITY_DECL_START","GEDecl","PEDef","EntityDecl","PublicID","NotationDecl","Eq","VersionNum","VersionInfo","EncName","XMLDecl","CData","CDSect","grammar","CDATA_START","CDATA_END","COMMENT_END","DOCTYPE_DECL_START","UNICODE_REPLACEMENT_CHARACTER","PDC","Symbol","require$$1","require$$2","checkSymbol","symbol","notEmptyString","orderedSetReducer","element","toOrderedSet","splitOnASCIIWhitespace","validateQualifiedName","qualifiedName","validateAndExtract","namespace","prefix","splitResult","copy","dest","_extends","Class","Super","pt","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","DocumentPosition","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","commonAncestor","docGUID","guid","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","namespaceURI","_nsMap","_onAddAttribute","_removeNamedNode","lastIndex","DOMImplementation","Node","_xmlEncoder","_visitNode","callback","Document","options","opt","contentType","_onUpdateChild","parent","newChild","child","_removeChild","oldPreviousSibling","previousSibling","oldNextSibling","lastChild","isDocTypeNode","isElementNode","isTextNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","assertPreInsertionValidity1to5","hasValidParentNodeType","hasInsertableNodeType","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","hasDoctypeChildThatIsNotChild","_insertBefore","_inDocumentAssertion","cp","newFirst","newLast","Element","Attr","CharacterData","Text","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","nodeFilter","refNode","lookupPrefix","visibleNamespaces","needNamespaceDefine","isHTML","addSerializedAttribute","attrs","len","prefixedNodeName","defaultNS","ai","nsi","canCloseTag","pubid","publicId","sysid","systemId","internalSubset","importNode","deep","node2","attrs2","_ownerElement","setAttributeNode","childrenRefresh","iterator","me","next","done","return","getNamedItem","_isInHTMLDocumentAndNamespace","setNamedItem","getNamedItemNS","setNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","createDocument","doctype","implementation","createElementNS","createDocumentType","createHTMLDocument","htmlNode","headNode","titleNode","createTextNode","baseURI","isConnected","rootNode","getRootNode","contains","other","isEqualNode","otherNode","getAttributeNodeNS","isSameNode","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","appendData","isSupported","lookupNamespaceURI","isDefaultNamespace","compareDocumentPosition","node1","attr1","attr2","chain1","ancestor1","reverse","chain2","ancestor2","ca","removed","importedNode","getElementById","rtv","createDocumentFragment","createComment","createCDATASection","createProcessingInstruction","createAttribute","_createAttribute","specified","createEntityReference","validated","createAttributeNS","getQualifiedName","hasAttributes","hasAttribute","getAttributeNode","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","old","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByClassName","classNames","classNamesSet","nodeClassNames","matches","nodeClassNamesSet","isHTMLDocument","lowerQualifiedName","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent","exports","XML_ENTITIES","amp","apos","gt","lt","quot","HTML_ENTITIES","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","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","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","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","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","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","elinters","ell","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","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","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","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","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","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","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","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","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","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","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","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","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","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","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","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","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","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","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","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","entityMap","XMLReader","defaultNSMap","domBuilder","startDocument","_copy","defaultNSMapCopy","errorHandler","warning","fixedFromCharCode","surrogate1","surrogate2","fromCharCode","entityReplacer","appendText","end","xt","ENTITY_REG","characters","lineStart","lineEnd","linePattern","lineNumber","columnNumber","parseStack","currentNSMap","unclosedTags","tagStart","fatalError","currentElement","fromSource","tagNameRaw","tagNameMatch","currentTagName","tagNameLower","localNSMap","endElement","endPrefixMapping","parseProcessingInstruction","parseDoctypeCommentOrCData","ElementAttributes","parseElementStartPart","closed","locator2","copyLocator","appendElement","parseHtmlSpecialContent","endDocument","addAttribute","qname","startIndex","attributeNames","addValue","attrName","setTagName","qName","nsp","nsPrefix","startPrefixMapping","startElement","elStartEnd","isEscapableRaw","elEndStart","parseUtils","char","substringFromIndex","getIndex","getMatch","skipBlanks","blanks","substringStartsWith","substringStartsWithCaseInsensitive","comment","cdata","startCDATA","endCDATA","groups","SystemLiteralOnly","parsePI","intSubsetStart","parseDoctypeInternalSubset","startDTD","endDTD","processingInstruction","getLocalName","getLocator","getQName","getURI","getValue","sax","entities","require$$3","require$$4","normalizeLineEndings","domHandler","DOMHandler","xmlns","defaultNamespace","_toString","substr","java","setDocumentLocator","impl","ins","ignorableWhitespace","ch","charNode","skippedEntity","comm","dt","reportError","level","_locator","domParser","__DOMHandler","onErrorStopParsing","onWarningStopParsing","lib"],"mappings":"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","x_google_ignoreList":[2,4,16,17,18,19,20,21,22,23]}
|