{"version":3,"file":"js/chunk-vendors-03826e0b.9fb4e070.js","mappings":"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","sources":["webpack://microsoft-academy/./node_modules/@xmldom/xmldom/lib/conventions.js","webpack://microsoft-academy/./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack://microsoft-academy/./node_modules/@xmldom/xmldom/lib/dom.js","webpack://microsoft-academy/./node_modules/@xmldom/xmldom/lib/entities.js","webpack://microsoft-academy/./node_modules/@xmldom/xmldom/lib/index.js","webpack://microsoft-academy/./node_modules/@xmldom/xmldom/lib/sax.js","webpack://microsoft-academy/./node_modules/yup/es/util/printValue.js","webpack://microsoft-academy/./node_modules/yup/es/locale.js","webpack://microsoft-academy/./node_modules/yup/es/Condition.js","webpack://microsoft-academy/./node_modules/yup/es/ValidationError.js","webpack://microsoft-academy/./node_modules/yup/es/util/runTests.js","webpack://microsoft-academy/./node_modules/yup/es/Reference.js","webpack://microsoft-academy/./node_modules/yup/es/util/createValidation.js","webpack://microsoft-academy/./node_modules/yup/es/util/reach.js","webpack://microsoft-academy/./node_modules/yup/es/util/ReferenceSet.js","webpack://microsoft-academy/./node_modules/yup/es/schema.js","webpack://microsoft-academy/./node_modules/yup/es/mixed.js","webpack://microsoft-academy/./node_modules/yup/es/util/isAbsent.js","webpack://microsoft-academy/./node_modules/yup/es/boolean.js","webpack://microsoft-academy/./node_modules/yup/es/string.js","webpack://microsoft-academy/./node_modules/yup/es/number.js","webpack://microsoft-academy/./node_modules/yup/es/util/isodate.js","webpack://microsoft-academy/./node_modules/yup/es/date.js","webpack://microsoft-academy/./node_modules/yup/es/util/sortFields.js","webpack://microsoft-academy/./node_modules/yup/es/util/sortByKeyOrder.js","webpack://microsoft-academy/./node_modules/yup/es/object.js","webpack://microsoft-academy/./node_modules/yup/es/array.js","webpack://microsoft-academy/./node_modules/yup/es/util/isSchema.js","webpack://microsoft-academy/./node_modules/yup/es/util/toArray.js","webpack://microsoft-academy/./node_modules/yup/lib/locale.js","webpack://microsoft-academy/./node_modules/yup/lib/util/printValue.js"],"sourcesContent":["'use strict'\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 = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\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 * 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.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\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\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\tif(source && typeof source === 'string'){\n\t\tsax.parse(source,defaultNSMap,entityMap);\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.DOMParser = DOMParser;\n\n/**\n * @deprecated Import/require from main entry point instead\n */\nexports.DOMImplementation = dom.DOMImplementation;\n\n/**\n * @deprecated Import/require from main entry point instead\n */\nexports.XMLSerializer = dom.XMLSerializer;\n","var conventions = require(\"./conventions\");\n\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} current\n * @param {string} element\n * @returns {Record}\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\tdest[p] = src[p];\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 this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || 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\t\t\n\t\t\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\t\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\tthis.insertBefore(newChild,oldChild);\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\tif(map[n] == namespaceURI){\n \t\t\t\t\treturn n;\n \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(prefix in map){\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}\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\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\t//console.log(1)\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}\n\t}\n}\n\n/**\n * attributes;\n * children;\n * \n * writeable properties:\n * nodeValue,Attr:value,CharacterData:data\n * prefix\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\t_onUpdateChild(parentNode.ownerDocument,parentNode);\n\treturn child;\n}\n/**\n * preformance key(refChild == null)\n */\nfunction _insertBefore(parentNode,newChild,nextChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tcp.removeChild(newChild);//remove and update\n\t}\n\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = newChild.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn newChild;\n\t\t}\n\t\tvar newLast = newChild.lastChild;\n\t}else{\n\t\tnewFirst = newLast = newChild;\n\t}\n\tvar pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = nextChild;\n\t\n\t\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparentNode.firstChild = newFirst;\n\t}\n\tif(nextChild == null){\n\t\tparentNode.lastChild = newLast;\n\t}else{\n\t\tnextChild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parentNode;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);\n\t//console.log(parentNode.lastChild.nextSibling == null)\n\tif (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnewChild.firstChild = newChild.lastChild = null;\n\t}\n\treturn newChild;\n}\nfunction _appendSingleChild(parentNode,newChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tvar pre = parentNode.lastChild;\n\t\tcp.removeChild(newChild);//remove and update\n\t\tvar pre = parentNode.lastChild;\n\t}\n\tvar pre = parentNode.lastChild;\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = pre;\n\tnewChild.nextSibling = null;\n\tif(pre){\n\t\tpre.nextSibling = newChild;\n\t}else{\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);\n\treturn newChild;\n\t//console.log(\"__aa\",parentNode.lastChild.nextSibling == null)\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\tif(this.documentElement == null && newChild.nodeType == ELEMENT_NODE){\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),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\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.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\t\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\t\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\t\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\t\t\t\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\t\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\t\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\t\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 in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml/#CleanAttrVals\n * @see https://www.w3.org/TR/xml/#NT-AttValue\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<&\"]/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\t\t\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');\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('');\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 */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&]/g,_xmlEncoder)\n\t\t\t.replace(/]]>/g, ']]>')\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\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( \"\");\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', lt:'<', quot:'\"'})\n\n/**\n * A map of currently 241 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://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 lt: '<',\n gt: '>',\n amp: '&',\n quot: '\"',\n apos: \"'\",\n Agrave: \"À\",\n Aacute: \"Á\",\n Acirc: \"Â\",\n Atilde: \"Ã\",\n Auml: \"Ä\",\n Aring: \"Å\",\n AElig: \"Æ\",\n Ccedil: \"Ç\",\n Egrave: \"È\",\n Eacute: \"É\",\n Ecirc: \"Ê\",\n Euml: \"Ë\",\n Igrave: \"Ì\",\n Iacute: \"Í\",\n Icirc: \"Î\",\n Iuml: \"Ï\",\n ETH: \"Ð\",\n Ntilde: \"Ñ\",\n Ograve: \"Ò\",\n Oacute: \"Ó\",\n Ocirc: \"Ô\",\n Otilde: \"Õ\",\n Ouml: \"Ö\",\n Oslash: \"Ø\",\n Ugrave: \"Ù\",\n Uacute: \"Ú\",\n Ucirc: \"Û\",\n Uuml: \"Ü\",\n Yacute: \"Ý\",\n THORN: \"Þ\",\n szlig: \"ß\",\n agrave: \"à\",\n aacute: \"á\",\n acirc: \"â\",\n atilde: \"ã\",\n auml: \"ä\",\n aring: \"å\",\n aelig: \"æ\",\n ccedil: \"ç\",\n egrave: \"è\",\n eacute: \"é\",\n ecirc: \"ê\",\n euml: \"ë\",\n igrave: \"ì\",\n iacute: \"í\",\n icirc: \"î\",\n iuml: \"ï\",\n eth: \"ð\",\n ntilde: \"ñ\",\n ograve: \"ò\",\n oacute: \"ó\",\n ocirc: \"ô\",\n otilde: \"õ\",\n ouml: \"ö\",\n oslash: \"ø\",\n ugrave: \"ù\",\n uacute: \"ú\",\n ucirc: \"û\",\n uuml: \"ü\",\n yacute: \"ý\",\n thorn: \"þ\",\n yuml: \"ÿ\",\n nbsp: \"\\u00a0\",\n iexcl: \"¡\",\n cent: \"¢\",\n pound: \"£\",\n curren: \"¤\",\n yen: \"¥\",\n brvbar: \"¦\",\n sect: \"§\",\n uml: \"¨\",\n copy: \"©\",\n ordf: \"ª\",\n laquo: \"«\",\n not: \"¬\",\n shy: \"­­\",\n reg: \"®\",\n macr: \"¯\",\n deg: \"°\",\n plusmn: \"±\",\n sup2: \"²\",\n sup3: \"³\",\n acute: \"´\",\n micro: \"µ\",\n para: \"¶\",\n middot: \"·\",\n cedil: \"¸\",\n sup1: \"¹\",\n ordm: \"º\",\n raquo: \"»\",\n frac14: \"¼\",\n frac12: \"½\",\n frac34: \"¾\",\n iquest: \"¿\",\n times: \"×\",\n divide: \"÷\",\n forall: \"∀\",\n part: \"∂\",\n exist: \"∃\",\n empty: \"∅\",\n nabla: \"∇\",\n isin: \"∈\",\n notin: \"∉\",\n ni: \"∋\",\n prod: \"∏\",\n sum: \"∑\",\n minus: \"−\",\n lowast: \"∗\",\n radic: \"√\",\n prop: \"∝\",\n infin: \"∞\",\n ang: \"∠\",\n and: \"∧\",\n or: \"∨\",\n cap: \"∩\",\n cup: \"∪\",\n 'int': \"∫\",\n there4: \"∴\",\n sim: \"∼\",\n cong: \"≅\",\n asymp: \"≈\",\n ne: \"≠\",\n equiv: \"≡\",\n le: \"≤\",\n ge: \"≥\",\n sub: \"⊂\",\n sup: \"⊃\",\n nsub: \"⊄\",\n sube: \"⊆\",\n supe: \"⊇\",\n oplus: \"⊕\",\n otimes: \"⊗\",\n perp: \"⊥\",\n sdot: \"⋅\",\n Alpha: \"Α\",\n Beta: \"Β\",\n Gamma: \"Γ\",\n Delta: \"Δ\",\n Epsilon: \"Ε\",\n Zeta: \"Ζ\",\n Eta: \"Η\",\n Theta: \"Θ\",\n Iota: \"Ι\",\n Kappa: \"Κ\",\n Lambda: \"Λ\",\n Mu: \"Μ\",\n Nu: \"Ν\",\n Xi: \"Ξ\",\n Omicron: \"Ο\",\n Pi: \"Π\",\n Rho: \"Ρ\",\n Sigma: \"Σ\",\n Tau: \"Τ\",\n Upsilon: \"Υ\",\n Phi: \"Φ\",\n Chi: \"Χ\",\n Psi: \"Ψ\",\n Omega: \"Ω\",\n alpha: \"α\",\n beta: \"β\",\n gamma: \"γ\",\n delta: \"δ\",\n epsilon: \"ε\",\n zeta: \"ζ\",\n eta: \"η\",\n theta: \"θ\",\n iota: \"ι\",\n kappa: \"κ\",\n lambda: \"λ\",\n mu: \"μ\",\n nu: \"ν\",\n xi: \"ξ\",\n omicron: \"ο\",\n pi: \"π\",\n rho: \"ρ\",\n sigmaf: \"ς\",\n sigma: \"σ\",\n tau: \"τ\",\n upsilon: \"υ\",\n phi: \"φ\",\n chi: \"χ\",\n psi: \"ψ\",\n omega: \"ω\",\n thetasym: \"ϑ\",\n upsih: \"ϒ\",\n piv: \"ϖ\",\n OElig: \"Œ\",\n oelig: \"œ\",\n Scaron: \"Š\",\n scaron: \"š\",\n Yuml: \"Ÿ\",\n fnof: \"ƒ\",\n circ: \"ˆ\",\n tilde: \"˜\",\n ensp: \" \",\n emsp: \" \",\n thinsp: \" \",\n zwnj: \"‌\",\n zwj: \"‍\",\n lrm: \"‎\",\n rlm: \"‏\",\n ndash: \"–\",\n mdash: \"—\",\n lsquo: \"‘\",\n rsquo: \"’\",\n sbquo: \"‚\",\n ldquo: \"“\",\n rdquo: \"”\",\n bdquo: \"„\",\n dagger: \"†\",\n Dagger: \"‡\",\n bull: \"•\",\n hellip: \"…\",\n permil: \"‰\",\n prime: \"′\",\n Prime: \"″\",\n lsaquo: \"‹\",\n rsaquo: \"›\",\n oline: \"‾\",\n euro: \"€\",\n trade: \"™\",\n larr: \"←\",\n uarr: \"↑\",\n rarr: \"→\",\n darr: \"↓\",\n harr: \"↔\",\n crarr: \"↵\",\n lceil: \"⌈\",\n rceil: \"⌉\",\n lfloor: \"⌊\",\n rfloor: \"⌋\",\n loz: \"◊\",\n spades: \"♠\",\n clubs: \"♣\",\n hearts: \"♥\",\n diams: \"♦\"\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\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\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\t\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(k in entityMap){\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\t\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\t\t\t\t\t\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\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// 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(qname, value, startIndex)\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).replace(/&#?\\w+;/g,entityReplacer);\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).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\t//console.log(attrName,value,start,p)\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\t//console.dir(el)\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\tcase S_ATTR_SPACE:\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.replace(/&#?\\w+;/g,entityReplacer), 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).replace(/&#?\\w+;/g,entityReplacer);\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\t\t\t\t\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\tdomBuilder.endPrefixMapping(prefix) \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('',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\t\t\t\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('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//